PREFIX gamemodel: <http://ns.inria.fr/ludo/v1/gamemodel#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

gamemodel:GameResult a rdfs:Class ;
  rdfs:label "Game Result"@en .

gamemodel:DecidingCondition a rdfs:Class ;
  rdfs:label "Deciding Condition"@en ;
  rdfs:subClassOf gamemodel:Intelligence .

gamemodel:Training-basedStructure a rdfs:Class ;
  rdfs:label "Training-based Structure"@en ;
  rdfs:subClassOf gamemodel:GameStructure .

gamemodel:hasPedagogicEventIndicator a rdf:Property ;
  rdfs:label "Has Pedagogic Event Indicator"@en ;
  rdfs:domain gamemodel:GameStructure ;
  rdfs:range gamemodel:PedagogicEventIndicator .

gamemodel:hasGameContext a rdf:Property ;
  rdfs:label "Has Game Context"@en ;
  rdfs:domain gamemodel:GameStructure ;
  rdfs:range gamemodel:GameContext .

gamemodel:Checkbox a rdfs:Class ;
  rdfs:label "Checkbox"@en ;
  rdfs:subClassOf gamemodel:GUIComponent .

gamemodel:GamePhysics a rdfs:Class ;
  rdfs:label "Game Physics"@en ;
  rdfs:comment "Defines the physicality of the game world. It encompasses the collision world and environment forces."@en .

gamemodel:Score a rdfs:Class ;
  rdfs:label "Score"@en ;
  rdfs:subClassOf gamemodel:GameAttribute .

gamemodel:RawResult a rdfs:Class ;
  rdfs:label "Raw result"@en ;
  rdfs:subClassOf gamemodel:GameResult .

gamemodel:DifficultyIndicator a rdfs:Class ;
  rdfs:label "Difficulty Indicator"@en ;
  rdfs:comment "A value associated to the difficulty of the game scenario"@en .

gamemodel:hasDifficultyIndicatorValue a rdf:Property ;
  rdfs:label "Difficulty"@en ;
  rdfs:comment "Has difficulty indicator value"@en ;
  rdfs:domain gamemodel:DifficultyIndicator ;
  rdfs:range xsd:integer .

gamemodel:GamePlayer a rdfs:Class ;
  rdfs:label "Game Player"@en ;
  rdfs:comment "The user of the game application who provides inputs to the game system as part of the gaming activity."@en ;
  rdfs:subClassOf <http://xmlns.com/foaf/0.1/Person> .

gamemodel:hasGameControl a rdf:Property ;
  rdfs:label "Has Game Control"@en ;
  rdfs:domain gamemodel:GamePlayer ;
  rdfs:range gamemodel:GameControl .

gamemodel:hasInventory a rdf:Property ;
  rdfs:label "Has Inventory"@en ;
  rdfs:domain gamemodel:GamePlayer ;
  rdfs:range gamemodel:Inventory .

gamemodel:hasGameRecord a rdf:Property ;
  rdfs:label "Has Game Record"@en ;
  rdfs:domain gamemodel:GamePlayer ;
  rdfs:range gamemodel:GameRecord .

gamemodel:GameControl a rdfs:Class ;
  rdfs:label "Game Control"@en ;
  rdfs:comment "Provides game player the channel to control game objects"@en .

gamemodel:hasInputEvent a rdf:Property ;
  rdfs:label "Has Input Event"@en ;
  rdfs:domain gamemodel:GameControl ;
  rdfs:range gamemodel:InputEvent .

gamemodel:hasGameControlInterface a rdf:Property ;
  rdfs:label "Has Game Control Interface"@en ;
  rdfs:domain gamemodel:GameControl ;
  rdfs:range gamemodel:GameControlInterface .

gamemodel:Scenario-basedStructure a rdfs:Class ;
  rdfs:label "Scenario-based Structure"@en ;
  rdfs:subClassOf gamemodel:GameStructure .

gamemodel:GameAttribute a rdfs:Class ;
  rdfs:label "Game Attribute"@en ;
  rdfs:comment "Data properties that represent a game objects vitality, physical being, cognitive state and ownership."@en .

gamemodel:GameAct a rdfs:Class ;
  rdfs:label "Game Act"@en ;
  rdfs:comment "The performance of a game object in a game event. It consists of a game object and a game acting script that describe how the game object should move, animate, sound and interact with other game object in a game scenario."@en .

gamemodel:hasGameActingScript a rdf:Property ;
  rdfs:label "Game Acting Script"@en ;
  rdfs:domain gamemodel:GameAct ;
  rdfs:range gamemodel:GameActingScript .

gamemodel:hasGameActObject a rdf:Property ;
  rdfs:label "Has Game Act Object"@en ;
  rdfs:domain gamemodel:GameAct ;
  rdfs:range gamemodel:GameObject .

gamemodel:Animation a rdfs:Class ;
  rdfs:label "Animation"@en ;
  rdfs:comment "An animation defines the virtual performance of a game object without reference of the position of the game object as a whole."@en .

gamemodel:hasAnimationType a rdf:Property ;
  rdfs:label "Has Animation Type"@en ;
  rdfs:comment "Defines the animation type, either 2D or 3D"@en ;
  rdfs:domain gamemodel:Animation ;
  rdfs:range xsd:string .

gamemodel:PedagogicEventIndicator a rdfs:Class ;
  rdfs:label "Pedagogic Event Indicator"@en ;
  rdfs:comment "Each game section is associated with one or more pedagogic events from the Gagnes nine events of instructions"@en .

gamemodel:hasPedagogicEvent a rdf:Property ;
  rdfs:label "Pedagogic Event"@en ;
  rdfs:comment "Associates each game section with one or more pedagogic events from the Gagne's nine events of instructions. These events ordered in sequence are (1) gaining attention, (2) informing learning objectives, (3) recalling prior learning, (4) presenting learning content, (5) providing learning guidance, (6) eliciting performance, (7) provide feedback, (8) assess performance and, (9) enhance retention and transfer."@en ;
  rdfs:domain gamemodel:PedagogicEventIndicator ;
  rdfs:range xsd:string .

gamemodel:ComputedResult a rdfs:Class ;
  rdfs:label "Computed result"@en ;
  rdfs:subClassOf gamemodel:GameResult .

gamemodel:ArtRequirement a rdfs:Class ;
  rdfs:label "Art Requirement"@en ;
  rdfs:comment "Art requirements related the game through expressive written text"@en .

gamemodel:GameInteractionRule a rdfs:Class ;
  rdfs:label "Game Interaction Rule"@en ;
  rdfs:comment "It dictates the outcome of the interaction from two game objects."@en ;
  rdfs:subClassOf gamemodel:GameRule .

gamemodel:hasInteractionCondition a rdf:Property ;
  rdfs:label "Interaction Condition"@en ;
  rdfs:comment "It refers to the state of actor or the state of the game world"@en ;
  rdfs:domain gamemodel:GameInteractionRule ;
  rdfs:range xsd:string .

gamemodel:hasInteractionRuleSubject a rdf:Property ;
  rdfs:label "Interaction Rule Subject"@en ;
  rdfs:domain gamemodel:GameInteractionRule ;
  rdfs:range gamemodel:GameObject .

gamemodel:hasInteractionRuleOutcome a rdf:Property ;
  rdfs:label "Interaction Rule Outcome"@en ;
  rdfs:domain gamemodel:GameInteractionRule ;
  rdfs:range gamemodel:GameInteractionRuleOutcome .

gamemodel:hasInteractionRuleActor a rdf:Property ;
  rdfs:label "Interaction Rule Actor"@en ;
  rdfs:domain gamemodel:GameInteractionRule ;
  rdfs:range gamemodel:GameObject .

gamemodel:CompleteGameStructure a rdfs:Class ;
  rdfs:label "Complete Game Structure"@en ;
  rdfs:subClassOf gamemodel:GameStructure .

gamemodel:VirtualCamera a rdfs:Class ;
  rdfs:label "Virtual Camera"@en ;
  rdfs:comment "Viewport to the game world"@en .

gamemodel:hasVirtualCameraPosition a rdf:Property ;
  rdfs:label "Has Virtual Camera Position"@en ;
  rdfs:comment "Position of the virtual camera in the game world"@en ;
  rdfs:domain gamemodel:VirtualCamera ;
  rdfs:range xsd:string .

gamemodel:InventoryState a rdfs:Class ;
  rdfs:label "Inventory State"@en ;
  rdfs:comment "The inventory is defined to hold a limited supply of consumable for a game object."@en ;
  rdfs:subClassOf gamemodel:ObjectAttribute .

gamemodel:hasInventoryQuantity a rdf:Property ;
  rdfs:label "Has inventory quantity"@en ;
  rdfs:domain gamemodel:InventoryState ;
  rdfs:range xsd:integer .

gamemodel:GoalCondition a rdfs:Class ;
  rdfs:label "Goal Condition"@en ;
  rdfs:comment "The goal condition checks a track-able value against a constant value defined by the game designer to determine if the game objective has been met or not. The game objective is marked as achieve once the goal condition has been satisfied."@en .

gamemodel:hasGoalConditionDescription a rdf:Property ;
  rdfs:label "Goal Condition description"@en ;
  rdfs:comment "The description of the goal condition"@en ;
  rdfs:domain gamemodel:GoalCondition ;
  rdfs:range <https://w3id.org/linkml/Any> .

gamemodel:Vital a rdfs:Class ;
  rdfs:label "Vital"@en ;
  rdfs:comment "Game designers can choose to represent the game object using a single vital definition such as life or further elaborate the vitality of a game object into interrelated attributes such as health, energy, strength, social and etc. "@en ;
  rdfs:subClassOf gamemodel:GameAttribute .

gamemodel:GameEnvironment a rdfs:Class ;
  rdfs:label "Game Environment"@en ;
  rdfs:comment "Represents the composition of the virtual world by populating the virtual space with game objects."@en .

gamemodel:Area a rdfs:Class .

gamemodel:Appearance a rdfs:Class ;
  rdfs:label "Appearance"@en ;
  rdfs:comment "The visual appearance of a game object"@en .

gamemodel:InputEvent a rdfs:Class .

gamemodel:Presentation-basedStructure a rdfs:Class ;
  rdfs:label "Presentation-based Structure"@en ;
  rdfs:subClassOf gamemodel:GameStructure .

gamemodel:ObjectVitality a rdfs:Class ;
  rdfs:label "Object Vitality"@en ;
  rdfs:comment "Vitality of an object such as life or interrelated attributes such as health, energy, strength, social and etc."@en ;
  rdfs:subClassOf gamemodel:ObjectAttribute .

gamemodel:hasObjectVitalityValue a rdf:Property ;
  rdfs:label "Object Vitality Value"@en ;
  rdfs:domain gamemodel:ObjectVitality ;
  rdfs:range xsd:integer .

gamemodel:hasObjectVitality a rdf:Property ;
  rdfs:label "Has Object Vitality"@en ;
  rdfs:comment "Vitality of an object such as life or interrelated attributes such as health, energy, strength, social and etc."@en ;
  rdfs:domain gamemodel:ObjectVitality ;
  rdfs:range xsd:string .

gamemodel:GamePresentation a rdfs:Class ;
  rdfs:label "Game Presentation"@en ;
  rdfs:comment "A virtual canvas that holds media components and GUI components to form a game menu, a game notification or a cut-scene to present information about the game and allow them to navigate through the game structure"@en ;
  rdfs:subClassOf gamemodel:GameContext .

gamemodel:Navigate a rdfs:Class ;
  rdfs:label "Navigate"@en .

<http://rdfs.org/ns/void#Dataset> a rdfs:Class .

gamemodel:GameActingScript a rdfs:Class ;
  rdfs:label "Game Acting Script"@en ;
  rdfs:comment "Is composed by one or more acting coordination that instruct how a specific game object act in a defined sequence."@en .

gamemodel:hasActingCoordination a rdf:Property ;
  rdfs:label "Has Game Acting Coordination"@en ;
  rdfs:comment "The coordination of a game object can involve appear (for generation and re- spawning of game object), animating an action, playing a sound, moving towards a checkpoint, interacting with another game object or a composition of these."@en ;
  rdfs:domain gamemodel:GameActingScript ;
  rdfs:range xsd:string .

gamemodel:GameStructure a rdfs:Class ;
  rdfs:label "Game Structure"@en ;
  rdfs:comment "Describes the architecture and flow of the game. It segments game into game sections. A game section is composed of a game context, pedagogic event indicator and event trigger."@en .

gamemodel:GUIComponent a rdfs:Class .

gamemodel:Mass a rdfs:Class ;
  rdfs:label "Mass"@en ;
  rdfs:comment "The mass that affects the motion of the game object"@en ;
  rdfs:subClassOf gamemodel:ObjectAttribute .

gamemodel:hasMass a rdf:Property ;
  rdfs:label "Mass"@en ;
  rdfs:comment "The amount of matter of an object in Kilograms."@en ;
  rdfs:domain gamemodel:Mass ;
  rdfs:range xsd:float .

gamemodel:GameRecord a rdfs:Class ;
  rdfs:label "Game Record"@en ;
  rdfs:comment "A game record is a log of game players achievements in the game"@en .

gamemodel:hasGameResult a rdf:Property ;
  rdfs:label "Has Game Result"@en ;
  rdfs:domain gamemodel:GameRecord ;
  rdfs:range gamemodel:GameResult .

gamemodel:Force a rdfs:Class ;
  rdfs:label "Force"@en ;
  rdfs:comment "A motion is subject to a force"@en .

gamemodel:hasNormalForce a rdf:Property ;
  rdfs:label "Normal force"@en ;
  rdfs:comment "The normal force"@en ;
  rdfs:domain gamemodel:Force ;
  rdfs:range xsd:float .

gamemodel:Intelligence a rdfs:Class ;
  rdfs:label "Intelligence"@en ;
  rdfs:comment "Provides game object the ability to decide, navigate and even learn."@en .

gamemodel:SeriousGame a rdfs:Class ;
  rdfs:label "Serious Game"@en .

gamemodel:hasGameTheme a rdf:Property ;
  rdfs:label "Has Game Theme"@en ;
  rdfs:domain gamemodel:SeriousGame ;
  rdfs:range gamemodel:GameTheme .

gamemodel:hasGameKnowledgeBase a rdf:Property ;
  rdfs:label "Has Game Knowledge-Base"@en ;
  rdfs:domain gamemodel:SeriousGame ;
  rdfs:range gamemodel:GameKnowledgeBase .

gamemodel:hasGamePlayer a rdf:Property ;
  rdfs:label "Has Game Player"@en ;
  rdfs:domain gamemodel:SeriousGame ;
  rdfs:range gamemodel:GamePlayer .

gamemodel:hasGameStructure a rdf:Property ;
  rdfs:label "Has Game Structure"@en ;
  rdfs:domain gamemodel:SeriousGame ;
  rdfs:range gamemodel:GameStructure .

gamemodel:Motion a rdfs:Class ;
  rdfs:label "Motion"@en ;
  rdfs:comment "Motion refers to the actual translation of game object position in the game world. A motion is subject to a force and also constraints (external force)."@en .

gamemodel:hasForce a rdf:Property ;
  rdfs:label "Has force"@en ;
  rdfs:domain gamemodel:Motion ;
  rdfs:range gamemodel:Force .

gamemodel:hasConstraint a rdf:Property ;
  rdfs:label "Has constraint"@en ;
  rdfs:domain gamemodel:Motion ;
  rdfs:range gamemodel:Constraint .

gamemodel:EventTrigger a rdfs:Class ;
  rdfs:label "Event Trigger"@en ;
  rdfs:comment "Event triggers are used to invoke the transition between game sections and activate the game events within a game scenario"@en .

gamemodel:hasEventTriggerCommand a rdf:Property ;
  rdfs:label "Has Event trigger command"@en ;
  rdfs:domain gamemodel:EventTrigger ;
  rdfs:range xsd:string .

gamemodel:hasEventTriggerClass a rdf:Property ;
  rdfs:label "Has Event Trigger Class"@en ;
  rdfs:comment "Event triggers are used to invoke the transition between game sections and activate the game events within a game scenario. They can be classified into four distinct classes, namely: Input trigger detects user input via hardware interface or graphical user interface (GUI); Time trigger is essentially a countdown timer with an interval value with frequency of once, to repeat infinitely or to repeat finitely; Proximity trigger like input trigger has a hotspot that detects the collision of a specified game object, a class of game object or a group of game objects from different classes; Game mechanics trigger is associated to a range of game application related of events such media event, game event and simulation event. Each event trigger is associated with a command that specify the transition between game sections or activation of a game event."@en ;
  rdfs:domain gamemodel:EventTrigger ;
  rdfs:range xsd:string .

<http://ns.inria.fr/ludo/v1/gamepresentation#FrontEndDisplay> a rdfs:Class .

gamemodel:GameScoringRule a rdfs:Class ;
  rdfs:label "Game Scoring Rule"@en ;
  rdfs:comment "Only applies to game player and it defines what to be awarded to the game player when a scoring condition is met."@en ;
  rdfs:subClassOf gamemodel:GameRule .

gamemodel:hasScoringCondition a rdf:Property ;
  rdfs:label "Scoring Condition"@en ;
  rdfs:comment "Every game scoring rule has a scoring condition which has no direct relation with interaction. It can be derived from the state of a game object (e.g. enemy is dead or fire is extinguished), the input statistics (e.g. accuracy is above 80%), the time (e.g. respond is less than 5 seconds or level completed in less than 5 minutes), or the game objective (e.g. objective 1, 2 and 5 are met)."@en ;
  rdfs:domain gamemodel:GameScoringRule ;
  rdfs:range xsd:string .

gamemodel:hasSoringRuleOutcome a rdf:Property ;
  rdfs:label "Scoring Rule Outcome"@en ;
  rdfs:comment "The outcome of an Scoring Rule"@en ;
  rdfs:domain gamemodel:GameScoringRule ;
  rdfs:range xsd:string .

gamemodel:GameObjective a rdfs:Class ;
  rdfs:label "Game Objective"@en ;
  rdfs:comment "Represents the goal associated to a game scenario"@en .

gamemodel:hasGoalCondition a rdf:Property ;
  rdfs:label "Has Goal Condition"@en ;
  rdfs:domain gamemodel:GameObjective ;
  rdfs:range gamemodel:GoalCondition .

gamemodel:GameKnowledgeBase a rdfs:Class ;
  rdfs:label "Game Knowledge Base"@en ;
  rdfs:comment "A Knowledge Base to be used by the game."@en ;
  rdfs:subClassOf <http://rdfs.org/ns/void#Dataset> .

gamemodel:Graphic a rdfs:Class .

gamemodel:ObjectImage a rdfs:Class ;
  rdfs:label "Object Image"@en ;
  rdfs:comment "The object image is represented using one or more image components"@en ;
  rdfs:subClassOf gamemodel:Appearance .

gamemodel:GameTempo a rdfs:Class ;
  rdfs:label "Game Tempo"@en ;
  rdfs:comment "Represents the realtion between the pace of the time in a game and the time in the real world."@en .

gamemodel:hasTempoScale a rdf:Property ;
  rdfs:label "Game tempo scale"@en ;
  rdfs:comment "The tempo scale at which the time is passing. This can be used for slow motion effects. When timeScale is 1.0 the time is passing as fast as realtime. When timeScale is 0.5 the time is passing 2x slower than realtime. When timeScale is set to zero the game is basically paused if all your functions are frame rate independent.y. Based on: http://docs.unity3d.com/ScriptReference/Time-timeScale.html"@en ;
  rdfs:domain gamemodel:GameTempo ;
  rdfs:range xsd:double .

gamemodel:hasText a rdfs:Class ;
  rdfs:label "Has text"@en .

gamemodel:GameSimulation a rdfs:Class ;
  rdfs:label "Game Simulation"@en ;
  rdfs:comment "Represents the simulation of a game scenario and is governed by a set of rules that define the interactivity, physical and temporal properties of the virtual world. It has game rules, game dimension, game tempo and game physics."@en ;
  rdfs:subClassOf gamemodel:GameContext .

gamemodel:hasGameTempo a rdf:Property ;
  rdfs:label "Has Game Tempo"@en ;
  rdfs:domain gamemodel:GameSimulation ;
  rdfs:range gamemodel:GameTempo .

gamemodel:hasGameScenario a rdf:Property ;
  rdfs:label "Has Game Scenario"@en ;
  rdfs:domain gamemodel:GameSimulation ;
  rdfs:range gamemodel:GameScenario .

gamemodel:hasGameRule a rdf:Property ;
  rdfs:label "Has Game Rule"@en ;
  rdfs:comment "This property relates a Game Simulation with a Game Rule"@en ;
  rdfs:domain gamemodel:GameSimulation ;
  rdfs:range gamemodel:GameRule .

gamemodel:hasFrontEndDisplay a rdf:Property ;
  rdfs:label "Has front end display"@en ;
  rdfs:domain gamemodel:GameSimulation ;
  rdfs:range <http://ns.inria.fr/ludo/v1/gamepresentation#FrontEndDisplay> .

gamemodel:hasGameDimention a rdf:Property ;
  rdfs:label "Has Game Dimention"@en ;
  rdfs:domain gamemodel:GameSimulation ;
  rdfs:range gamemodel:GameDimension .

<http://xmlns.com/foaf/0.1/Person> a rdfs:Class .

gamemodel:Inventory a rdfs:Class ;
  rdfs:label "Inventory"@en ;
  rdfs:comment "Inventory presents the idea where player can own a number of game objects in the game as part of the game play. An inventory can be a collection of weapons in a shooter game or a collection of magic spell and potions in a role-playing game. In games such as Resident Evil 5 (www.residentevil.com), a game player can hold 9 items in the inventory at any one time."@en .

gamemodel:Button a rdfs:Class ;
  rdfs:label "Button"@en ;
  rdfs:subClassOf gamemodel:GUIComponent .

gamemodel:Sound a rdfs:Class .

gamemodel:GameEvent a rdfs:Class ;
  rdfs:label "Game Event"@en ;
  rdfs:comment "Is the happening associated to a game scenario. A game event is composed of a set of game act and an event trigger which initiate the game event."@en .

gamemodel:hasGameAct a rdf:Property ;
  rdfs:label "Has Game Act"@en ;
  rdfs:domain gamemodel:GameEvent ;
  rdfs:range gamemodel:GameAct .

gamemodel:Constraint a rdfs:Class ;
  rdfs:label "Constraint"@en ;
  rdfs:comment "External forces"@en .

gamemodel:VitalUpdate a rdfs:Class ;
  rdfs:label "Vital Update"@en ;
  rdfs:comment "Revises the value of vitals for a game object as a measure that takes into account the cost of an action inflicted to the object or the cost of performing an action."@en .

gamemodel:GameObject a rdfs:Class ;
  rdfs:label "Game Object"@en ;
  rdfs:comment "Represents virtual things that populate the game world and can be designed to have a combination of abilities such as decision making, moving, acting and responding to surroundings and game players input simulating their existence in the game world."@en .

gamemodel:hasAppearance a rdf:Property ;
  rdfs:label "Has appearance"@en ;
  rdfs:domain gamemodel:GameObject ;
  rdfs:range gamemodel:Appearance .

gamemodel:hasAction a rdf:Property ;
  rdfs:label "Has action"@en ;
  rdfs:domain gamemodel:GameObject ;
  rdfs:range gamemodel:Action .

gamemodel:hasIntelligences a rdf:Property ;
  rdfs:label "Has Intelligences"@en ;
  rdfs:domain gamemodel:GameObject ;
  rdfs:range gamemodel:Intelligence .

gamemodel:GameScenario a rdfs:Class ;
  rdfs:label "Game Scenario"@en ;
  rdfs:comment "A description of a situation which require game player to overcome a number of challenges in order to achieve the defined objectives. It is also commonly termed as game level in gaming jargon."@en .

gamemodel:hasDifficultyIndicator a rdf:Property ;
  rdfs:label "Has difficulty indicator"@en ;
  rdfs:domain gamemodel:GameScenario ;
  rdfs:range gamemodel:DifficultyIndicator .

gamemodel:hasGameEvent a rdf:Property ;
  rdfs:label "Has Game Event"@en ;
  rdfs:domain gamemodel:GameScenario ;
  rdfs:range gamemodel:GameEvent .

gamemodel:hasVirtualCamera a rdf:Property ;
  rdfs:label "Has Virtual Camera"@en ;
  rdfs:domain gamemodel:GameScenario ;
  rdfs:range gamemodel:VirtualCamera .

gamemodel:hasGameEnvironment a rdf:Property ;
  rdfs:label "Has Game Environment"@en ;
  rdfs:domain gamemodel:GameScenario ;
  rdfs:range gamemodel:GameEnvironment .

gamemodel:GameTheme a rdfs:Class ;
  rdfs:label "Game Theme"@en ;
  rdfs:comment "Describes most of the art requirements related the game through expressive written text."@en .

gamemodel:hasArtRequirement a rdf:Property ;
  rdfs:label "Has art requirement"@en ;
  rdfs:domain gamemodel:GameTheme ;
  rdfs:range gamemodel:ArtRequirement .

gamemodel:ObjectAttribute a rdfs:Class ;
  rdfs:label "Object Atrribute"@en ;
  rdfs:comment "Data properties that represent a game objects vitality, physical being, cognitive state and ownership"@en .

gamemodel:GameControlInterface a rdfs:Class ;
  rdfs:label "Game Control Interface"@en .

gamemodel:hasHardwareInterface a rdf:Property ;
  rdfs:label "Has hardware Interface"@en ;
  rdfs:comment "Examples of hardware interface include keyboard, mouse, gamepad, joystick, motionsensor, camera and microphone."@en ;
  rdfs:domain gamemodel:GameControlInterface ;
  rdfs:range xsd:string .

gamemodel:SoidityState a rdfs:Class ;
  rdfs:label "Solidity State"@en ;
  rdfs:comment "The solidity state defines if a game object is solid, whereas the mass affects the motion of the game object."@en ;
  rdfs:subClassOf gamemodel:ObjectsAttribute .

gamemodel:isSolid a rdf:Property ;
  rdfs:label "Solidity"@en ;
  rdfs:domain gamemodel:SoidityState ;
  rdfs:range xsd:boolean .

<http://xmlns.com/foaf/0.1/Organization> a rdfs:Class .

gamemodel:GameContext a rdfs:Class ;
  rdfs:label "Game Context"@en ;
  rdfs:comment "Describes the type of game content presented to game players in a game presentation or game simulation."@en .

gamemodel:GameRule a rdfs:Class ;
  rdfs:label "Game Rule"@en ;
  rdfs:comment "States the relationship between game objects and game world, and the effect of an interaction. It can either be a Game Scoring Rule or Game Interaction Rule."@en .

gamemodel:Action a rdfs:Class ;
  rdfs:label "Action"@en ;
  rdfs:comment "The action of a game object, it consists of motion, animation, sound and vital updates."@en .

gamemodel:hasSound a rdf:Property ;
  rdfs:label "Has Sound"@en ;
  rdfs:domain gamemodel:Action ;
  rdfs:range gamemodel:Sound .

gamemodel:hasAnimation a rdf:Property ;
  rdfs:label "Has animation"@en ;
  rdfs:domain gamemodel:Action ;
  rdfs:range gamemodel:Animation .

gamemodel:hasVitalUpdate a rdf:Property ;
  rdfs:label "Has Vital Update"@en ;
  rdfs:domain gamemodel:Action ;
  rdfs:range xsd:double .

gamemodel:hasMotion a rdf:Property ;
  rdfs:label "Has Motion"@en ;
  rdfs:domain gamemodel:Action ;
  rdfs:range gamemodel:Motion .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object"@en .

gamemodel:ObjectsAttribute a rdfs:Class ;
  rdfs:label "Objects attribute"@en .

gamemodel:GameInteractionRuleOutcome a rdfs:Class ;
  rdfs:label "Interaction Rule Outcome"@en ;
  rdfs:comment "Outcome of an Interaction Rule"@en .

gamemodel:hasInteractionRuleOutcomeOperation a rdf:Property ;
  rdfs:label "Interaction Rule Outcome Operation"@en ;
  rdfs:comment "Rewarding the player with any game object can mean give (add) or take away (subtract) an item or increase (add) or decrease (subtract) in the value of an attribute to provide the game player the advantage to succeed in the game."@en ;
  rdfs:domain gamemodel:GameInteractionRuleOutcome ;
  rdfs:range xsd:string .

gamemodel:hasMatter a rdf:Property ;
  rdfs:label "Interaction Rule Outcome Matter"@en ;
  rdfs:comment "Each game rule is paired with an outcome which has a matter and an operation to add or subtract a value from the matter. Matter in the context of game refers to an item, an attribute or permission."@en ;
  rdfs:domain gamemodel:GameInteractionRuleOutcome ;
  rdfs:range xsd:string .

gamemodel:Video a rdfs:Class .

gamemodel:Learn a rdfs:Class ;
  rdfs:label "Learn"@en .

gamemodel:GameDimension a rdfs:Class ;
  rdfs:label "Game Dimension"@en ;
  rdfs:comment "Represents the virtual space in which the game simulation takes place in 2D or 3D."@en .

gamemodel:hasGameDimension a rdf:Property ;
  rdfs:label "Has Game Dimension"@en ;
  rdfs:comment "The game dimension refers to the virtual space of which the game simulation takes place. It can either be 2D or 3D."@en ;
  rdfs:domain gamemodel:GameDimension ;
  rdfs:range xsd:string .

gamemodel:hasArea a rdf:Property ;
  rdfs:label "Has area"@en ;
  rdfs:comment "Relates an Area with any component to be represented graphically on the game screen, sucha as GUI components and Media components"@en ;
  rdfs:range gamemodel:Area .

gamemodel:hasEventTrigger a rdf:Property ;
  rdfs:label "Has event trigger"@en ;
  rdfs:comment "The property to relate a Game Structure or a Game Event with an Event Trigger"@en ;
  rdfs:range gamemodel:EventTrigger .

gamemodel:hasGameAttribute a rdf:Property ;
  rdfs:label "Has Game Attribute"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

gamemodel:hasGameObject a rdf:Property ;
  rdfs:label "Has Game Object"@en ;
  rdfs:comment "This property applies for a Game Environment, a Serious Game and an Inventory"@en ;
  rdfs:range gamemodel:GameObject .

gamemodel:hasGameObjective a rdf:Property ;
  rdfs:label "Has Game Objective"@en ;
  rdfs:comment "This property relates with a Game Objective. Can be used for Game Scenario and Inventory objects."@en ;
  rdfs:range gamemodel:GameObjective .

gamemodel:hasGamePhysics a rdf:Property ;
  rdfs:label "Has Game Physics"@en ;
  rdfs:range xsd:string .

gamemodel:hasText a rdf:Property ;
  rdfs:label "Has text"@en ;
  rdfs:range xsd:string .

gamemodel:hasURI a rdf:Property ;
  rdfs:label "URI"@en ;
  rdfs:comment "Uniform Resource Identifier"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .
