SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
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       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;
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



    ///////////////////////////////////////////////////////
    ////////////////////////////////
        //
        // 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 -->
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



    ///////////////////////////////////////////////////////
    ////////////////////////////////
        //
        // 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>
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


                    <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>
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


                     <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>
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




         <!--
     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>
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




         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.
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

Más contenido relacionado

Similar a Game Ontology Defines Game Genres

Ludo: An Ontology to Create Linked Data Driven Serious Games
Ludo: An Ontology to Create Linked Data Driven Serious GamesLudo: An Ontology to Create Linked Data Driven Serious Games
Ludo: An Ontology to Create Linked Data Driven Serious GamesOscar Rodríguez Rocha
 
Item generation using rule based randomization algorithms in RPG games
Item generation using rule based randomization algorithms in RPG gamesItem generation using rule based randomization algorithms in RPG games
Item generation using rule based randomization algorithms in RPG gamesRejosh Samuel
 
Eight Rules for Making Your First Great Game
Eight Rules for Making Your First Great GameEight Rules for Making Your First Great Game
Eight Rules for Making Your First Great GameNick Pruehs
 
BYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal EngineBYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal EngineMichael Sheyahshe
 
Web Game Development
Web Game DevelopmentWeb Game Development
Web Game DevelopmentSabin Buraga
 
Gaming with Open Source Frameworks
Gaming with Open Source FrameworksGaming with Open Source Frameworks
Gaming with Open Source FrameworksAlmog Koren
 
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...Ontico
 
Learning to Play Complex Games
Learning to Play Complex GamesLearning to Play Complex Games
Learning to Play Complex Gamesbutest
 
GAMEPREZ Gamejam@HackerDojo
GAMEPREZ Gamejam@HackerDojoGAMEPREZ Gamejam@HackerDojo
GAMEPREZ Gamejam@HackerDojokatchwreck
 
The Guerrilla Guide to Game Code
The Guerrilla Guide to Game CodeThe Guerrilla Guide to Game Code
The Guerrilla Guide to Game CodeGuerrilla
 
GameWorkshop Pres 2
GameWorkshop Pres 2GameWorkshop Pres 2
GameWorkshop Pres 2jlaquinte
 
Hybrid Game Development with GameSalad
Hybrid Game Development with GameSaladHybrid Game Development with GameSalad
Hybrid Game Development with GameSaladmirahman
 
Fun with Functional Programming in Clojure - John Stevenson - Codemotion Amst...
Fun with Functional Programming in Clojure - John Stevenson - Codemotion Amst...Fun with Functional Programming in Clojure - John Stevenson - Codemotion Amst...
Fun with Functional Programming in Clojure - John Stevenson - Codemotion Amst...Codemotion
 
Digital Dragons 2023 (1).pdf
Digital Dragons 2023 (1).pdfDigital Dragons 2023 (1).pdf
Digital Dragons 2023 (1).pdfMarta Fijak
 
Final project report of a game
Final project report of a gameFinal project report of a game
Final project report of a gameNadia Nahar
 
Game object models - Game Engine Architecture
Game object models - Game Engine ArchitectureGame object models - Game Engine Architecture
Game object models - Game Engine ArchitectureShawn Presser
 
20210809 story book_driven_new_system_development_nuxtjs
20210809 story book_driven_new_system_development_nuxtjs20210809 story book_driven_new_system_development_nuxtjs
20210809 story book_driven_new_system_development_nuxtjs虎の穴 開発室
 

Similar a Game Ontology Defines Game Genres (20)

Ludo: An Ontology to Create Linked Data Driven Serious Games
Ludo: An Ontology to Create Linked Data Driven Serious GamesLudo: An Ontology to Create Linked Data Driven Serious Games
Ludo: An Ontology to Create Linked Data Driven Serious Games
 
Item generation using rule based randomization algorithms in RPG games
Item generation using rule based randomization algorithms in RPG gamesItem generation using rule based randomization algorithms in RPG games
Item generation using rule based randomization algorithms in RPG games
 
Segap project(lncs)
Segap project(lncs)Segap project(lncs)
Segap project(lncs)
 
LARP gamepaly approach
LARP gamepaly approachLARP gamepaly approach
LARP gamepaly approach
 
Eight Rules for Making Your First Great Game
Eight Rules for Making Your First Great GameEight Rules for Making Your First Great Game
Eight Rules for Making Your First Great Game
 
BYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal EngineBYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal Engine
 
Web Game Development
Web Game DevelopmentWeb Game Development
Web Game Development
 
Gaming with Open Source Frameworks
Gaming with Open Source FrameworksGaming with Open Source Frameworks
Gaming with Open Source Frameworks
 
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
 
Learning to Play Complex Games
Learning to Play Complex GamesLearning to Play Complex Games
Learning to Play Complex Games
 
GAMEPREZ Gamejam@HackerDojo
GAMEPREZ Gamejam@HackerDojoGAMEPREZ Gamejam@HackerDojo
GAMEPREZ Gamejam@HackerDojo
 
The Guerrilla Guide to Game Code
The Guerrilla Guide to Game CodeThe Guerrilla Guide to Game Code
The Guerrilla Guide to Game Code
 
GameWorkshop Pres 2
GameWorkshop Pres 2GameWorkshop Pres 2
GameWorkshop Pres 2
 
Hybrid Game Development with GameSalad
Hybrid Game Development with GameSaladHybrid Game Development with GameSalad
Hybrid Game Development with GameSalad
 
Fun with Functional Programming in Clojure - John Stevenson - Codemotion Amst...
Fun with Functional Programming in Clojure - John Stevenson - Codemotion Amst...Fun with Functional Programming in Clojure - John Stevenson - Codemotion Amst...
Fun with Functional Programming in Clojure - John Stevenson - Codemotion Amst...
 
xAPI Application Profile for Serious Games
xAPI Application Profile for Serious GamesxAPI Application Profile for Serious Games
xAPI Application Profile for Serious Games
 
Digital Dragons 2023 (1).pdf
Digital Dragons 2023 (1).pdfDigital Dragons 2023 (1).pdf
Digital Dragons 2023 (1).pdf
 
Final project report of a game
Final project report of a gameFinal project report of a game
Final project report of a game
 
Game object models - Game Engine Architecture
Game object models - Game Engine ArchitectureGame object models - Game Engine Architecture
Game object models - Game Engine Architecture
 
20210809 story book_driven_new_system_development_nuxtjs
20210809 story book_driven_new_system_development_nuxtjs20210809 story book_driven_new_system_development_nuxtjs
20210809 story book_driven_new_system_development_nuxtjs
 

Último

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Último (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

Game Ontology Defines Game Genres

  • 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