SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à 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虎の穴 開発室
 

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

Dernier

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Dernier (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

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