Game Ontology

                      Bogdan Țicău -

                 Marius-Andrei Cureleț - mar...

2       Game Ontology Structure

       The ontology we created has six classes: Game Characters, Game Entity
Game Ontology        3

           Besides properties we also created individuals, characters and game types,

Game Ontology     5

    <owl:ObjectProperty rdf:about="#hasInputDevice">
        <rdfs:domain rdf:resource="#Game_Types"...

Game Ontology     7

gy.owl#2-Dimensional_Gameplay -->


Game Ontology   9


Game Ontology   11




     gy.owl#Avatar_:_The_Game -->

Game Ontology        13


         The result will be all the Characters that belong to a type of game that has
First Person Point of View. T...
Game Ontology   15



   2.   http://pro...
Upcoming SlideShare
Loading in...5

Game Ontology


Published on

Game Ontology

1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Game Ontology

  1. 1. Game Ontology Bogdan Țicău - Marius-Andrei Cureleț - 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 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. 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 "" > <!ENTITY xsd "" > <!ENTITY owl2xml " xml#" > <!ENTITY rdfs " schema#" > <!ENTITY rdf " syntax-ns#" >]> <rdf:RDF xmlns=" eOntology.owl#" xml:base=" GameOntology.owl" xmlns:owl2xml=" xml#" xmlns:GameOntology=" es/2010/0/GameOntology.owl#" xmlns:xsd="" xmlns:rdfs="" xmlns:owl="" xmlns:rdf=" syntax-ns#" <owl:Ontology rdf:about=""/> <!--
  4. 4. 4 /////////////////////////////////////////////////////// //////////////////////////////// // // Object Properties // /////////////////////////////////////////////////////// //////////////////////////////// --> <!-- gy.owl#hasCameraType --> <owl:ObjectProperty rdf:about="#hasCameraType"> <rdfs:range rdf:resource="#Camera_Binding"/> <rdfs:domain rdf:resource="#Game_Types"/> </owl:ObjectProperty> <!-- gy.owl#hasCharacter --> <owl:ObjectProperty rdf:about="#hasCharacter"> <rdfs:range rdf:resource="#Game_Characters"/> <rdfs:domain rdf:resource="#Game_Types"/> </owl:ObjectProperty> <!-- gy.owl#hasGameplayRules --> <owl:ObjectProperty rdf:about="#hasGameplayRules"> <rdfs:domain rdf:resource="#Game_Types"/> <rdfs:range rdf:resource="#Gameplay_Rules"/> </owl:ObjectProperty> <!-- gy.owl#hasInputDevice -->
  5. 5. Game Ontology 5 <owl:ObjectProperty rdf:about="#hasInputDevice"> <rdfs:domain rdf:resource="#Game_Types"/> <rdfs:range rdf:resource="#Input_Devices"/> </owl:ObjectProperty> <!-- gy.owl#hasPointOfView --> <owl:ObjectProperty rdf:about="#hasPointOfView"> <rdfs:domain rdf:resource="#Game_Types"/> <rdfs:range rdf:resource="#Point_Of_View"/> </owl:ObjectProperty> <!-- gy.owl#hasTimeSegmentation --> <owl:ObjectProperty rdf:about="#hasTimeSegmentation"> <rdfs:domain rdf:resource="#Game_Types"/> <rdfs:range rdf:resource="#Temporal_Coordination"/> </owl:ObjectProperty> <!-- 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. 6 /////////////////////////////////////////////////////// //////////////////////////////// // // Classes // /////////////////////////////////////////////////////// //////////////////////////////// --> <!-- gy.owl#0-Dimension_Gameplay --> <owl:Class rdf:about="#0-Dimension_Gameplay"> <rdfs:subClassOf rdf:resource="#Cardinality_of_Gameplay"/> </owl:Class> <!-- gy.owl#1-Dimensional_Gameplay --> <owl:Class rdf:about="#1-Dimensional_Gameplay"> <rdfs:subClassOf rdf:resource="#Cardinality_of_Gameplay"/> </owl:Class> <!-- gy.owl#1-Dimensional_Gameworld --> <owl:Class rdf:about="#1-Dimensional_Gameworld"> <rdfs:subClassOf rdf:resource="#Cardinality_Of_Gameworld"/> </owl:Class>
  7. 7. Game Ontology 7 <!-- gy.owl#2-Dimensional_Gameplay --> <owl:Class rdf:about="#2-Dimensional_Gameplay"> <rdfs:subClassOf rdf:resource="#Cardinality_of_Gameplay"/> </owl:Class> <!-- gy.owl#Action --> <owl:Class rdf:about="#Action"> <rdfs:subClassOf rdf:resource="#Game_Types"/> </owl:Class> <!-- 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. 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> <!-- 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. 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. 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. 11. Game Ontology 11 </owl:Class> <!-- /////////////////////////////////////////////////////// //////////////////////////////// // // Individuals // /////////////////////////////////////////////////////// //////////////////////////////// --> <!-- gy.owl#Alex_Mercer --> <Fictional rdf:about="#Alex_Mercer"> <rdf:type rdf:resource="&owl;Thing"/> <isCharacterFrom rdf:resource="#Prototype"/> </Fictional> <!-- gy.owl#Alistair --> <Fictional rdf:about="#Alistair"> <rdf:type rdf:resource="&owl;Thing"/> <isCharacterFrom rdf:resource="#Dragon_Age:_Origins"/> </Fictional> <!-- gy.owl#Antharas --> <Fictional_NPC rdf:about="#Antharas"> <rdf:type rdf:resource="&owl;Thing"/> <isCharacterFrom rdf:resource="#Lineage_2"/> </Fictional_NPC>
  12. 12. 12 <!-- gy.owl#Avatar_:_The_Game --> <Adventure rdf:about="#Avatar_:_The_Game"> <rdf:type rdf:resource="&owl;Thing"/> </Adventure> <!-- 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> <!-- gy.owl#Gordon_Freeman --> <Fictional rdf:about="#Gordon_Freeman"> <rdf:type rdf:resource="&owl;Thing"/> <isCharacterFrom rdf:resource="#Half_Life_- _Episode_2"/> </Fictional>
  13. 13. Game Ontology 13 <!-- gy.owl#Half_Life_-_Episode_2 --> <owl:Thing rdf:about="#Half_Life_-_Episode_2"> <rdf:type rdf:resource="#First_Person_Shooter"/> </owl:Thing> <!-- 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. 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. 15. Game Ontology 15 References 1. 2. 3. 4. 5. 6. &tag=subnav;all