Your SlideShare is downloading. ×
Game Ontology
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Game Ontology

717
views

Published on

Game Ontology

Game Ontology


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
717
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
29
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Game Ontology Bogdan Țicău - bogdan.ticau@infoiasi.ro Marius-Andrei Cureleț - marius.curelet@infoiasi.ro Computer Science Faculty, ”Al. I. Cuza” University of Iasi Software Systems Engineering specialization 1 The need for a Game Ontology In the past couple of years we have witnessed the emergence of a very large number electronic games, with different and often interleaving characteristics that lead to difficulties in categorizing them. What characters, input/output device, rules, entities, objectives describes every game can be challenging for someone who wants to know what game type they are seeing. A formal approach is needed so that a game type can be recognized, possibly automatically, from a game review, description. A big problem in thoroughly categorizing an electronic game is technology which has evolved a lot in the past years and is making very hard to define in abstract the type. Now lots of graphics mask the logic and flow behind the game, so we need to define the basics that make an electronic game, from all points of view, paying attention to the depth of the abstraction. Some game genres can be sometimes hard to distinguish as they contain similar characteristics and only after several reviews can be surely classified, also there are games that have some part that is from one genre and another part from another genre. We created a game ontology that accounts for all of these problems and resolves them, each game having certain characteristics that describe it and that can be classified as a specific type. The main issue that had to be resolved was defining the relationships between the classes that we determined to be relevant in the process of describing a game genre. Whether or not these properties’ connections in terms of game description translated into disjoint classes in the ontology was the basis of our workflow. The end result had to allow very precise queries to be performed on our ontology so that no erroneous classifications would emerge.
  • 2. 2 2 Game Ontology Structure The ontology we created has six classes: Game Characters, Game Entity Manipulation, Game Interface, Game Objectives, Game Rules, Game Types. We used Protégé 4.0 to design the ontology and the code presented is generated by it. Game characters represent the characters in the game, playable or not, fictional or historically accurate. Game entity manipulation are the ways someone can manipulate entities of any kind in the game. Actions that a player can make in the game can be simple, like collide, remove, rotate, or compound that involve more than one simple action, like transport resources. Game interface contains the input that a game takes and what it outputs, the presentation of a game. Input devices and input method are subclasses of input and input method contains the number of entities that can be manipulated and the manipulation method, direct or indirect. The presentation class refers to how the game shows itself to the player: game world cardinality, the software and hardware behind the presentation of the game world. Game objectives contain ways to measure the progress in a game, what to do and by whom. Game rules represent the constraints of the game on the player and on the game world, how things work, what is allowed and not allowed, basically what happens in a situation. Game types contain the actual genres of electronic games: Action, Board, Puzzle, Role-Playing, Shooter, Simulator, Strategy and their appropriate sub-genres. We also created object properties: ─ hasCameraType that is applied for a game type with a certain camera positioning; ─ hasCharacter says that a game has a certain character; ─ hasCharacterType states that a game has a certain type of character; ─ hasInputDevice states that a game has an input device; ─ isCharacterFrom that is applied for a certain character that is from a certain game, it is inverse with hasCharacter; ─ hasGameplayRules says that rules a game has; ─ hasTimeSegmentation tells what kind of time flow a game has; ─ hasPointOfView represents the point of view(POV) in a game;
  • 3. Game Ontology 3 Besides properties we also created individuals, characters and game types, fictional or historically accurate characters and games from different genres. We also created some queries to show the different properties and relations between these individuals. 3 Game ontology The full code of the ontology is located in GameOntology.owl, in the following section we present only a few classes, properties, individuals. <?xml version="1.0"?> <!DOCTYPE rdf:RDF [ <!ENTITY owl "http://www.w3.org/2002/07/owl#" > <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" > <!ENTITY owl2xml "http://www.w3.org/2006/12/owl2- xml#" > <!ENTITY rdfs "http://www.w3.org/2000/01/rdf- schema#" > <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf- syntax-ns#" >]> <rdf:RDF xmlns="http://www.semanticweb.org/ontologies/2010/0/Gam eOntology.owl#" xml:base="http://www.semanticweb.org/ontologies/2010/0/ GameOntology.owl" xmlns:owl2xml="http://www.w3.org/2006/12/owl2- xml#" xmlns:GameOntology="http://www.semanticweb.org/ontologi es/2010/0/GameOntology.owl#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf- syntax-ns#" <owl:Ontology rdf:about=""/> <!--
  • 4. 4 /////////////////////////////////////////////////////// //////////////////////////////// // // Object Properties // /////////////////////////////////////////////////////// //////////////////////////////// --> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#hasCameraType --> <owl:ObjectProperty rdf:about="#hasCameraType"> <rdfs:range rdf:resource="#Camera_Binding"/> <rdfs:domain rdf:resource="#Game_Types"/> </owl:ObjectProperty> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#hasCharacter --> <owl:ObjectProperty rdf:about="#hasCharacter"> <rdfs:range rdf:resource="#Game_Characters"/> <rdfs:domain rdf:resource="#Game_Types"/> </owl:ObjectProperty> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#hasGameplayRules --> <owl:ObjectProperty rdf:about="#hasGameplayRules"> <rdfs:domain rdf:resource="#Game_Types"/> <rdfs:range rdf:resource="#Gameplay_Rules"/> </owl:ObjectProperty> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#hasInputDevice -->
  • 5. Game Ontology 5 <owl:ObjectProperty rdf:about="#hasInputDevice"> <rdfs:domain rdf:resource="#Game_Types"/> <rdfs:range rdf:resource="#Input_Devices"/> </owl:ObjectProperty> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#hasPointOfView --> <owl:ObjectProperty rdf:about="#hasPointOfView"> <rdfs:domain rdf:resource="#Game_Types"/> <rdfs:range rdf:resource="#Point_Of_View"/> </owl:ObjectProperty> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#hasTimeSegmentation --> <owl:ObjectProperty rdf:about="#hasTimeSegmentation"> <rdfs:domain rdf:resource="#Game_Types"/> <rdfs:range rdf:resource="#Temporal_Coordination"/> </owl:ObjectProperty> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#isCharacterFrom --> <owl:ObjectProperty rdf:about="#isCharacterFrom"> <rdf:type rdf:resource="&owl;FunctionalProperty"/> <rdfs:domain rdf:resource="#Game_Characters"/> <rdfs:range rdf:resource="#Game_Types"/> <owl:inverseOf rdf:resource="#hasCharacter"/> </owl:ObjectProperty> <!--
  • 6. 6 /////////////////////////////////////////////////////// //////////////////////////////// // // Classes // /////////////////////////////////////////////////////// //////////////////////////////// --> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#0-Dimension_Gameplay --> <owl:Class rdf:about="#0-Dimension_Gameplay"> <rdfs:subClassOf rdf:resource="#Cardinality_of_Gameplay"/> </owl:Class> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#1-Dimensional_Gameplay --> <owl:Class rdf:about="#1-Dimensional_Gameplay"> <rdfs:subClassOf rdf:resource="#Cardinality_of_Gameplay"/> </owl:Class> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#1-Dimensional_Gameworld --> <owl:Class rdf:about="#1-Dimensional_Gameworld"> <rdfs:subClassOf rdf:resource="#Cardinality_Of_Gameworld"/> </owl:Class>
  • 7. Game Ontology 7 <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#2-Dimensional_Gameplay --> <owl:Class rdf:about="#2-Dimensional_Gameplay"> <rdfs:subClassOf rdf:resource="#Cardinality_of_Gameplay"/> </owl:Class> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#Action --> <owl:Class rdf:about="#Action"> <rdfs:subClassOf rdf:resource="#Game_Types"/> </owl:Class> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#First_Person_Shooter --> <owl:Class rdf:about="#First_Person_Shooter"> <rdfs:subClassOf rdf:resource="#Shooter"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasCameraType"/> <owl:allValuesFrom rdf:resource="#First-person_Point_of_View"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasInputDevice"/> <owl:someValuesFrom rdf:resource="#Mouse"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasCameraType"/>
  • 8. 8 <owl:allValuesFrom rdf:resource="#Targeted_Camera"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasInputDevice"/> <owl:someValuesFrom rdf:resource="#Keyboard"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#Platform --> <owl:Class rdf:about="#Platform"> <rdfs:subClassOf rdf:resource="#Action"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasGameplayRules"/> <owl:someValuesFrom rdf:resource="#Level"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasEntityManipulationMethod"/> <owl:someValuesFrom rdf:resource="#Direct_Manipulation"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasGameplayRules"/> <owl:someValuesFrom rdf:resource="#Lives"/> </owl:Restriction> </rdfs:subClassOf>
  • 9. Game Ontology 9 <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasCharacterType"/> <owl:someValuesFrom rdf:resource="#Fictional"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasGameplayRules"/> <owl:someValuesFrom rdf:resource="#Gameworld_Exhaustion"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasGameplayRules"/> <owl:someValuesFrom rdf:resource="#Puzzle"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasGameplayRules"/> <owl:someValuesFrom rdf:resource="#Wave"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasGameplayRules"/> <owl:someValuesFrom rdf:resource="#Difficulty_Levels"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasGameplayRules"/>
  • 10. 10 <owl:someValuesFrom rdf:resource="#Bonus_Stage"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasTimeSegmentation"/> <owl:someValuesFrom rdf:resource="#Rounds"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasGameplayRules"/> <owl:allValuesFrom> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdf:Description rdf:about="#2-Dimensional_Gameplay"/> <rdf:Description rdf:about="#3-Dimensional_Gameplay"/> </owl:unionOf> </owl:Class> </owl:allValuesFrom> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasGameplayRules"/> <owl:someValuesFrom rdf:resource="#Boss_Challenge"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasGameplayRules"/> <owl:someValuesFrom rdf:resource="#Mission"/> </owl:Restriction> </rdfs:subClassOf>
  • 11. Game Ontology 11 </owl:Class> <!-- /////////////////////////////////////////////////////// //////////////////////////////// // // Individuals // /////////////////////////////////////////////////////// //////////////////////////////// --> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#Alex_Mercer --> <Fictional rdf:about="#Alex_Mercer"> <rdf:type rdf:resource="&owl;Thing"/> <isCharacterFrom rdf:resource="#Prototype"/> </Fictional> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#Alistair --> <Fictional rdf:about="#Alistair"> <rdf:type rdf:resource="&owl;Thing"/> <isCharacterFrom rdf:resource="#Dragon_Age:_Origins"/> </Fictional> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#Antharas --> <Fictional_NPC rdf:about="#Antharas"> <rdf:type rdf:resource="&owl;Thing"/> <isCharacterFrom rdf:resource="#Lineage_2"/> </Fictional_NPC>
  • 12. 12 <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#Avatar_:_The_Game --> <Adventure rdf:about="#Avatar_:_The_Game"> <rdf:type rdf:resource="&owl;Thing"/> </Adventure> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#Baal --> <Fictional_NPC rdf:about="#Baal"> <rdf:type rdf:resource="&owl;Thing"/> <isCharacterFrom rdf:resource="#Diablo"/> </Fictional_NPC> <Historically_Accurate_NPC rdf:about="#George_Washington"> <rdf:type rdf:resource="&owl;Thing"/> <isCharacterFrom rdf:resource="#Civilization_IV"/> </Historically_Accurate_NPC> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#Gordon_Freeman --> <Fictional rdf:about="#Gordon_Freeman"> <rdf:type rdf:resource="&owl;Thing"/> <isCharacterFrom rdf:resource="#Half_Life_- _Episode_2"/> </Fictional>
  • 13. Game Ontology 13 <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#Half_Life_-_Episode_2 --> <owl:Thing rdf:about="#Half_Life_-_Episode_2"> <rdf:type rdf:resource="#First_Person_Shooter"/> </owl:Thing> <!-- http://www.semanticweb.org/ontologies/2010/0/GameOntolo gy.owl#Jake_Sully --> <Fictional rdf:about="#Jake_Sully"> <rdf:type rdf:resource="&owl;Thing"/> <isCharacterFrom rdf:resource="#Avatar_:_The_Game"/> </Fictional> 4 Game ontology queries The result will be all the individuals from Shooter class (all games of type Shooter) that have a Mouse for the Input Device. This is a characteristic for First Person Shooter games and so the query will return all the games of this type.
  • 14. 14 The result will be all the Characters that belong to a type of game that has First Person Point of View. This characteristic is specific for adventure type games, so the query will return characters from the games Prototype, Avatar and Half Life: Episode 2, Alex Mercer and Jake Sully. The result will be all the Characters that belong to a type of game that offers the possibility to the gamer of moving his character and to detect collisions with other objects. These features are specific to adventure type games and the query will return the characters from the games Prototype and Avatar, Alex Mercer and Jake Sully. The result will be all the games whose Objectives can be completed through Score and Time. This is a characteristic for Real Time Strategy games, the query will return games of this type, Command and Conquer: Red Alert 3.
  • 15. Game Ontology 15 References 1. http://owl.cs.manchester.ac.uk/tutorials/protegeowltutorial/ 2. http://protegewiki.stanford.edu/index.php/DLQueryTab 3. http://www.co-ode.org/resources/reference/manchester_syntax/ 4. http://protegewiki.stanford.edu/index.php/Protege4GettingStarted 5. http://protegewiki.stanford.edu/index.php/Protege4UserDocs 6. http://www.gamespot.com/games.html?type=games&platform=5&mode=top &tag=subnav;all