PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX vgo: <http://purl.org/net/VideoGameOntology#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

vgo:Veteran a rdfs:Class ;
  rdfs:label "Veteran"@en ;
  rdfs:comment "The vgo:Veteran achievement is an award that is given for accumulating a lot of play hours or game actions. For example, vgo:Veteran could be playing thousand hours of World of Tanks or making 100 goals in ice hockey game."@en ;
  rdfs:subClassOf vgo:Achievement .

vgo:isAchievementInGame a rdf:Property ;
  rdfs:label "is achievement in game"@en ;
  rdfs:comment "The property vgo:isAchievementInGame asserts that a specific vgo:Achievement can be earned in a particular vgo:Game. An achievement must belong to a certain game."@en ;
  rdfs:domain vgo:Achievement ;
  rdfs:range vgo:Game .

vgo:isAchievedInSession a rdf:Property ;
  rdfs:label "is achieved in session"@en ;
  rdfs:comment "The property vgo:isAchievedInSession asserts the receiving of an achievement to a certain gameplay session. This enables to keep track of what achievements a player has gained during one gameplay session."@en ;
  rdfs:domain vgo:Achievement ;
  rdfs:range vgo:Session .

vgo:Player a rdfs:Class ;
  rdfs:label "Player"@en ;
  rdfs:comment "The vgo:Player describes the entity playing the game. This can be either a human or a computer. vgo:Player class is used to keep a profile of a certain playing entity and to connect all the games, achievements and characters he/she has. The vgo:Player is a subclass of foaf:Person as it contains all relative information of a certain person."@en ;
  rdfs:subClassOf <http://xmlns.com/foaf/0.1/Agent> .

vgo:username a rdf:Property ;
  rdfs:label "username"@en ;
  rdfs:comment "The username connects player to a text string which describes the username a player has."@en ;
  rdfs:domain vgo:Player ;
  rdfs:range xsd:string .

vgo:isFriendWithPlayer a rdf:Property ;
  rdfs:label "is friend with player"@en ;
  rdfs:comment "The vgo:isFriendWithPlayer describes a connection between players. The property is used to model the friends a player has and with whom he might be playing games with. The friends of a player are not bound necessarily to particular game, but can be describe the friendly playing relationship in overall."@en ;
  rdfs:domain vgo:Player ;
  rdfs:range vgo:Player ;
  rdfs:subPropertyOf <http://xmlns.com/foaf/0.1/knows> .

vgo:playsGame a rdf:Property ;
  rdfs:label "plays game"@en ;
  rdfs:comment "the vgo:playsGame property asserts which games has the vgo:Player played at any point of time."@en ;
  rdfs:domain vgo:Player ;
  rdfs:range vgo:Game .

vgo:livesIn a rdf:Property ;
  rdfs:label "lives in"@en ;
  rdfs:comment "The vgo:livesIn describes the connection between a player and his place of existence in the real-world. A vgo:Player is connected to wgs84:SpatialThing as that has descriptions for places where people live and contains more detailed information of them, such as continents and regions."@en ;
  rdfs:domain vgo:Player ;
  rdfs:range <http://dbpedia.org/ontology/PopulatedPlace> .

vgo:ownsAchievement a rdf:Property ;
  rdfs:label "owns achievement"@en ;
  rdfs:comment "The vgo:ownsAchievement links the vgo:Player to the particular vgo:Achievement earned in a game."@en ;
  rdfs:domain vgo:Player ;
  rdfs:range vgo:Achievement .

vgo:ownsCharacter a rdf:Property ;
  rdfs:label "owns character"@en ;
  rdfs:comment "The vgo:ownsCharacter property asserts which characters are owned by a specific player. A player can have multiple characters in one game and this connection is used to define all the different characters a player could be playing. Even though a player deletes, trades or loses his/her character in any way, the connection can be kept to contain the player’s history of owned characters."@en ;
  rdfs:domain vgo:Player ;
  rdfs:range vgo:Character .

vgo:isPlayerInSession a rdf:Property ;
  rdfs:label "is player in session"@en ;
  rdfs:comment "The vgo:isPlayerInSession property connects vgo:Player to a specific vgo:Session. This property is used to keep track of the gameplay sessions the player has played and what has happened in those sessions. For example vgo:Player may have participated in a this can be a one round of Counter-Strike or played one hour session of mario."@en ;
  rdfs:domain vgo:Player ;
  rdfs:range vgo:Session .

vgo:LoseEvent a rdfs:Class ;
  rdfs:label "lose event"@en ;
  rdfs:comment "vgo:LoseEvent describes an event that is related to character/player losing something in a game. This is a subclass of GameEvent as gaining something is related to a specific game. For example, a player can lose a character due to trade with another player. Another example would be a character losing item due to consuming it."@en ;
  rdfs:subClassOf vgo:GameEvent .

vgo:isEventRelatedToItem a rdf:Property ;
  rdfs:label "is event related to item"@en ;
  rdfs:comment "The vgo:isEventRelatedToItem property asserts an event to a specific item. This property is used to describe an event that includes an item in one way or another. For example, an event where character gains a new sword can be described with this relation."@en ;
  rdfs:domain vgo:InstantaneousEvent ;
  rdfs:range vgo:Item .

vgo:isEventTriggeredByCharacter a rdf:Property ;
  rdfs:label "is event triggered by character"@en ;
  rdfs:comment "The vgo:isEventTriggeredByCharacter connects the vgo:InstantaneousEvent to specific vgo:Character. This describes that an event is often caused by a character. The character in question can be either a character controlled by a player or a computer. For example, both player and non-player characters can trigger a character death event."@en ;
  rdfs:domain vgo:InstantaneousEvent ;
  rdfs:range vgo:Character .

vgo:eventName a rdf:Property ;
  rdfs:label "event name"@en ;
  rdfs:comment "name connects InstantaneousEvent a text string. This allows the event to have a name to recognize it for."@en ;
  rdfs:domain vgo:InstantaneousEvent ;
  rdfs:range xsd:string .

vgo:eventTime a rdf:Property ;
  rdfs:label "event time"@en ;
  rdfs:comment "time describes the connection of InstantaneousEvent happening at a certain moment of time. time Conncets the event to a DateTime value that describes the moment when the event happened."@en ;
  rdfs:domain vgo:InstantaneousEvent ;
  rdfs:range xsd:dateTime .

vgo:unlocksAchievement a rdf:Property ;
  rdfs:label "unlocks achievement"@en ;
  rdfs:comment "The vgo:unlocksAchievement property asserts an event to a certain achievement. An achievement is always unlocked as a consequence of some event. For example, eating the 100th piece of cake unlocks the “Cake Eater” achievement."@en ;
  rdfs:domain vgo:InstantaneousEvent ;
  rdfs:range vgo:Achievement .

vgo:isEventInSession a rdf:Property ;
  rdfs:label "is event in session"@en ;
  rdfs:comment "The vgo:isEventInSession property links an event to a specific gameplay session. An event always happens during a certain session and this property enables to link the events to that session. For example, an event of moving the queen in game of chess should be connected to a session of chess."@en ;
  rdfs:domain vgo:InstantaneousEvent ;
  rdfs:range vgo:Session .

vgo:isEventInGame a rdf:Property ;
  rdfs:label "is event in game"@en ;
  rdfs:comment "The vgo:isEventInGame property asserts an event to a specific game. An event always happens inside a specific a game."@en ;
  rdfs:domain vgo:InstantaneousEvent ;
  rdfs:range vgo:Game .

vgo:isEventAssociatedToPlayer a rdf:Property ;
  rdfs:label "is event associated to player"@en ;
  rdfs:comment "The vgo:isEventAssociatedToPlayer property asserts an event to a specific vgo:Player. A player may have caused an event to happen through the actions of his/her character and this property is used to connect the real person to the event."@en ;
  rdfs:domain vgo:InstantaneousEvent ;
  rdfs:range vgo:Player .

vgo:Virtuosity a rdfs:Class ;
  rdfs:label "Virtuosity"@en ;
  rdfs:comment "The vgo:Virtuosity describes an achievement that is awarded for playing masterfully in the game. Examples of virtuous play could be finishing the game without saving at all, dying zero times or preventing an opposing team from scoring any goals in a soccer game."@en ;
  rdfs:subClassOf vgo:Achievement .

vgo:Collection a rdfs:Class ;
  rdfs:label "Collection"@en ;
  rdfs:comment "The vgo:Collection type of achievement is typically rewarded from collecting an amount of certain items in a game. An example of vgo:Collection would be obtaining a full set of christmas clothes for a character to wear or collecting every possible flower in the game."@en ;
  rdfs:subClassOf vgo:Achievement .

vgo:Curiosity a rdfs:Class ;
  rdfs:label "Curiosity"@en ;
  rdfs:comment "The vgo:Curiosity describes funny random things that can happen or be found in the game. An example could be jumping from the Eiffel tower without dying or following a comupter controlled character’s activities for one hour."@en ;
  rdfs:subClassOf vgo:Achievement .

vgo:Luck a rdfs:Class ;
  rdfs:label "Luck"@en ;
  rdfs:comment "The vgo:Lucky describes an achievement that is awarded to the player in a lucky situation. An example of vgo:Lucky achievement would be winning in a lottery or throwing “Yahtzee” without re-rolling the dice."@en ;
  rdfs:subClassOf vgo:Achievement .

vgo:HardMode a rdfs:Class ;
  rdfs:label "hard mode"@en ;
  rdfs:comment "The vgo:HardMode achievement describes succeeding in a game on a high difficulty level. An example could be completing the “Doom” game on Nightmare difficulty level."@en ;
  rdfs:subClassOf vgo:Achievement .

vgo:Leaderboard a rdfs:Class ;
  rdfs:label "Leaderboard"@en ;
  rdfs:comment "The vgo:Leaderboard class describes a ranking system of the players. There can be multiple rankings in a game, for example, the kill-count ranking of Modern Warfare or the best time listing of Formula 1 game."@en .

vgo:isLeaderboardInGame a rdf:Property ;
  rdfs:label "is leaderboard in game"@en ;
  rdfs:comment "optional"@en ;
  rdfs:domain vgo:Leaderboard ;
  rdfs:range vgo:Game .

vgo:GainEvent a rdfs:Class ;
  rdfs:label "gain event"@en ;
  rdfs:comment "The vgo:GainEvent describes an event that is related to character/player gaining something in a game. This is a subclass of vgo:GameEvent as gaining something is related to a specific game. For example, a player can gain a new character, achievement or item."@en ;
  rdfs:subClassOf vgo:GameEvent .

<http://purl.org/goodrelations/v1#ProductOrService> a rdfs:Class .

vgo:GameEvent a rdfs:Class ;
  rdfs:label "game event"@en ;
  rdfs:comment "The vgo:GameEvent describes an event that takes place in a game without straight player interaction. GameEvents are often very specific for each game. Examples of vgo:GameEvent could be an enemy dying, connecting to a multiplayer server, loading a new level or playing an animation."@en ;
  rdfs:subClassOf vgo:InstantaneousEvent .

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

vgo:Minigame a rdfs:Class ;
  rdfs:label "Minigame"@en ;
  rdfs:comment "The vgo:Minigame achievement describes success in mini-games that have been included in a certain game but are not vital for completing the game. An example could be to complete all the Pizza deliveries in GTA minigame or gaining over 100 dollars while playing poker in Red Dead Redemption."@en ;
  rdfs:subClassOf vgo:Achievement .

vgo:Item a rdfs:Class ;
  rdfs:label "Item"@en ;
  rdfs:comment "A vgo:Item portrays any item that exists in a game. The item can either be just visual part of the game or a concrete usable item. As an example an item could be a drinkable potion, a magical sword or just a flower pot."@en .

vgo:hasFeature a rdf:Property ;
  rdfs:label "has feature"@en ;
  rdfs:comment "The vgo:hasFeature property indicates what is a vgo:Feature (or ability) of a particular vgo:Item. For example, a fire sword, a healing staff or boots of flight connects item to a feature it can have. An item with connection to potable feature would make the item potable."@en ;
  rdfs:domain vgo:Item ;
  rdfs:range vgo:Feature .

vgo:isItemInGame a rdf:Property ;
  rdfs:label "is item in game"@en ;
  rdfs:comment "The vgo:isItemInGame is used to specify which item belongs to a particular game. An item cannot exist alone and thus should always be associated to a certain game."@en ;
  rdfs:domain vgo:Item ;
  rdfs:range vgo:Game .

vgo:PlayerEvent a rdfs:Class ;
  rdfs:label "player event"@en ;
  rdfs:comment "The vgo:PlayerEvent describes a vgo:InstantaneousEvent that is caused by the player. For example jumping in the game, throwing an item or pressing a joystick button."@en ;
  rdfs:subClassOf vgo:InstantaneousEvent .

<http://schema.org/Product> a rdfs:Class .

<http://dbpedia.org/ontology/PopulatedPlace> a rdfs:Class .

vgo:Fandom a rdfs:Class ;
  rdfs:label "Fandom"@en ;
  rdfs:comment "The vgo:Fandom achievement is related to doing some true fan activities. An example of vgo:Fandom could be purchasing a collectors edition of the game or attending a fan gathering."@en ;
  rdfs:subClassOf vgo:Achievement .

vgo:MenuEvent a rdfs:Class ;
  rdfs:label "menu event"@en ;
  rdfs:comment "The vgo:MenuEvent describes an event that is related to interacting with the ingame menu. An example of menu event is muting sounds, changing graphic settings, changing gameplay difficulty or remapping game controls."@en ;
  rdfs:subClassOf vgo:InstantaneousEvent .

vgo:Session a rdfs:Class ;
  rdfs:label "Session"@en ;
  rdfs:comment "The vgo:Session class describes a session of gameplay. A session can be a single round of chess, a round of Counter-Strike, one half-time of soccer or one race of Formula 1. vgo:Session class can be used to store gameplay information, especially for analytical reasons."@en .

vgo:involvesCharacter a rdf:Property ;
  rdfs:label "involves character"@en ;
  rdfs:comment "optional"@en ;
  rdfs:domain vgo:Session ;
  rdfs:range vgo:Character .

vgo:startTime a rdf:Property ;
  rdfs:label "start time"@en ;
  rdfs:comment "startTime describes the starting moment in time of a single Session. startTime connects the session to a DateTime value which holds the moment when the session started."@en ;
  rdfs:domain vgo:Session ;
  rdfs:range xsd:dateTime .

vgo:endTime a rdf:Property ;
  rdfs:label "end time"@en ;
  rdfs:comment "endTime describes the ending moment in time of a single Session. endTime connects the session to a DateTime value which holds the moment when the session ended."@en ;
  rdfs:domain vgo:Session ;
  rdfs:range xsd:dateTime .

vgo:involvesPlayer a rdf:Property ;
  rdfs:label "involves player"@en ;
  rdfs:comment "optional"@en ;
  rdfs:domain vgo:Session ;
  rdfs:range vgo:Player .

vgo:involvesAchievement a rdf:Property ;
  rdfs:label "involves achievement"@en ;
  rdfs:comment "optional"@en ;
  rdfs:domain vgo:Session ;
  rdfs:range vgo:Achievement .

vgo:isSessionInGame a rdf:Property ;
  rdfs:label "is session in game"@en ;
  rdfs:comment "The vgo:isSessionInGame property links a vgo:Session to a certain vgo:Game. Each gameplay session must belong to a certain game."@en ;
  rdfs:domain vgo:Session ;
  rdfs:range vgo:Game .

vgo:PlayingArea a rdfs:Class ;
  rdfs:label "playing area"@en ;
  rdfs:comment "The vgo:PlayingArea is the description of a place where the gameplay takes place. All of the games have some kind of area where they are played in. An example of playing areas could be football field in soccer game, a race track from a racing game or a star system of EVE Online."@en .

vgo:Achievement a rdfs:Class ;
  rdfs:label "Achievement"@en ;
  rdfs:comment """The vgo:Achievement is a reward gained in a game due to some event accomplished in the game. Achievements are commonly used in game industry to reward players for having accomplished tasks in the game. 
This ontology defines various subclasses of vgo:Achievement, which are all based on the classification presented by Markus Montola et al. [Markus Montola, Timo Nummenmaa, Andrés Lucero, Marion Boberg, and Hannu Korhonen, 2009, “Applying game achievement systems to enhance user experience in a photo sharing service”, In Proceedings of the 13th International MindTrek Conference: Everyday Life in the Ubiquitous Era (MindTrek '09)] http://dl.acm.org/citation.cfm?id=1621859"""@en .

vgo:Tutorial a rdfs:Class ;
  rdfs:label "Tutorial"@en ;
  rdfs:comment "The vgo:Tutorial achievement is  awarded to a player for trying out various features of the game. This is often related to learning how to play the game, how the controls work and how the game logic works. An example of vgo:Tutorial could be testing out newly gained special equipment or just playing through the in-game tutorial in the beginning."@en ;
  rdfs:subClassOf vgo:Achievement .

vgo:Character a rdfs:Class ;
  rdfs:label "Character"@en ;
  rdfs:comment "A vgo:Character is any actor that can exists in a game. A character  can be a human-like creature as seen traditionally in video games. However, a character could also be a car, a paddle in game of Pong or spaceship of a space shooter game. This is often contextually related to the gameplay of a certain game. A character can be either controller by a player or by a computer."@en .

vgo:isCharacterInSession a rdf:Property ;
  rdfs:label "is character in session"@en ;
  rdfs:comment "The vgo:isCharacterInSession property connects the vgo:Character to a vgo:Session. A character participates in a game session (e.g., a football match or a counter strike round) during a period of time. As players can have multiple characters, a character needs to be connected to the session, in order to know which of those characters participated in the certain session."@en ;
  rdfs:domain vgo:Character ;
  rdfs:range vgo:Session .

vgo:ownsItem a rdf:Property ;
  rdfs:label "owns item"@en ;
  rdfs:comment "The vgo:ownsItem describes ownership of an item. A vgo:Item is always owned by a certain vgo:Character. A vgo:Character can own multiple vgo:Items and this relationship is used to keep track of the character’s owned items. Even though players may lose items, the vgo:ownsItem connection is still held with the item. This approach allows to keep track of character’s history of owned items."@en ;
  rdfs:domain vgo:Character ;
  rdfs:range vgo:Item .

vgo:isCharacterInGame a rdf:Property ;
  rdfs:label "is character in game"@en ;
  rdfs:comment "vgo:isCharacterInGame property describes the relation between a vgo:Character and a vgo:Game. a vgo:Character always belongs to a certain game."@en ;
  rdfs:domain vgo:Character ;
  rdfs:range vgo:Game .

vgo:Game a rdfs:Class ;
  rdfs:label "Game"@en ;
  rdfs:comment """The vgo:Game class describes a game product that can be played by a player.
Examples of games are Pong, Grand Theft Auto, Pokemon and Need for Speed."""@en .

vgo:hasPlayingArea a rdf:Property ;
  rdfs:label "has playing area"@en ;
  rdfs:comment "The vgo:hasPlayingArea property asserts a gaming area to a specific game. In every game, the gameplay takes place in some playing area."@en ;
  rdfs:domain vgo:Game ;
  rdfs:range vgo:PlayingArea .

vgo:hasGameGenre a rdf:Property ;
  rdfs:label "has game genre"@en ;
  rdfs:comment "The vgo:hasGameGenre property specifies that a game belongs to a certain game genre. For example, Pong would be an arcade game and Mario a platformer."@en ;
  rdfs:domain vgo:Game ;
  rdfs:range vgo:Genre .

<http://purl.org/dc/terms/creator> a rdf:Property ;
  rdfs:domain vgo:Game ;
  rdfs:range <http://xmlns.com/foaf/0.1/Agent> .

vgo:hasItem a rdf:Property ;
  rdfs:label "has item"@en ;
  rdfs:comment "The vgo:hasItem property specifies that a game has a specific item. A game often contains more than one items."@en ;
  rdfs:domain vgo:Game ;
  rdfs:range vgo:Item .

vgo:hasCharacter a rdf:Property ;
  rdfs:label "has character"@en ;
  rdfs:comment "The vgo:hasCharacter property specifies that a game has a specific character. A game can have more than one characters involved."@en ;
  rdfs:domain vgo:Game ;
  rdfs:range vgo:Character .

vgo:releaseDate a rdf:Property ;
  rdfs:label "release date"@en ;
  rdfs:comment "releaseDate connects a game to a time which describes the release date of the game."@en ;
  rdfs:domain vgo:Game ;
  rdfs:range xsd:dateTime .

vgo:hasAchievement a rdf:Property ;
  rdfs:label "has achievement"@en ;
  rdfs:comment "The vgo:hasAchievement property specifies that a game has a specific achievement. A game often contains more than one achievement that can be awarded to the players."@en ;
  rdfs:domain vgo:Game ;
  rdfs:range vgo:Achievement .

vgo:hasLeaderboard a rdf:Property ;
  rdfs:label "has leaderboard"@en ;
  rdfs:comment "The vgo:hasLeaderboard specifies that a leaderboard belongs to a particular game. A game can have one or more leaderboards that keep track of ranking of the players. For example a leaderboard could be ranking of who has the most soccer game victories or who has the fastest lap in a Formula 1 game."@en ;
  rdfs:domain vgo:Game ;
  rdfs:range vgo:Leaderboard .

vgo:Completion a rdfs:Class ;
  rdfs:label "Completion"@en ;
  rdfs:comment "The vgo:Completion type of achievement is usually rewarded from successfully completing a certain goal or subgoal in a game. An example of vgo:Completion would be to save a princess from a burning tower or completing all side-quests in a game."@en ;
  rdfs:subClassOf vgo:Achievement .

vgo:InAppPurchaseEvent a rdfs:Class ;
  rdfs:label "in-app purchase event"@en ;
  rdfs:comment "The vgo:InAppPurchaseEvent describes an event that is related to making a purchase with real money inside a game. This is a subclass of InstantaneousEvent because it happens at certain moment in time. An example of vgo:InAppPurchaseEvent would be unlocking secret levels with real money or purchasing better equipment with real money."@en ;
  rdfs:subClassOf vgo:InstantaneousEvent .

vgo:purchasesGameOffering a rdf:Property ;
  rdfs:label "purchases game offering"@en ;
  rdfs:comment "The vgo:purchasesGameOffering property aseerts a vgo:InAppPurchaseEvent to a specific vgo:GameProduct. This property describes what is purchased by the in-app purchase event that the player has done."@en ;
  rdfs:domain vgo:InAppPurchaseEvent ;
  rdfs:range vgo:GameProduct .

vgo:Multiplayer a rdfs:Class ;
  rdfs:label "Multiplayer"@en ;
  rdfs:comment "The vgo:Multiplayer achievement describes anything that can be awarded to one or multiple players due to their gameplay in multiplayer. For example, this could be winning 10 Team Fortress matches in a row with the same team or getting killed ten times in a row in Counter-Strike."@en ;
  rdfs:subClassOf vgo:Achievement .

vgo:Loyalty a rdfs:Class ;
  rdfs:label "Loyalty"@en ;
  rdfs:comment "The vgo:Loyalty achievement is used to give recognition to loyal players. For example, this could be an achievement received after subscribing to the game for a year."@en ;
  rdfs:subClassOf vgo:Achievement .

vgo:Feature a rdfs:Class ;
  rdfs:label "Feature"@en ;
  rdfs:comment "vgo:Feature describes an ability or characteristic. For example, a sword could have “damage dealing” ability and a bottle of water could be “potable”."@en .

vgo:Genre a rdfs:Class ;
  rdfs:label "Genre"@en ;
  rdfs:comment "The vgo:Genre class describes the genre a game belongs to. All of the games have at least one genre. Examples of this are RPG, Simulator and Adventure"@en .

vgo:Paragon a rdfs:Class ;
  rdfs:label "Paragon"@en ;
  rdfs:comment "The vgo:Paragon is a rare achievement that is given only to limited number of players. An example of vgo:Paragon achievement could be the first player to finish a game under 10 hours or the first ten players to complete the game 100% through."@en ;
  rdfs:subClassOf vgo:Achievement .

vgo:InstantaneousEvent a rdfs:Class ;
  rdfs:label "instantaneous event"@en ;
  rdfs:comment "The vgo:InstantaneousEvent class describes an event that happens during the gameplay at a certain moment in time. This can be a player gaining an achievement, killing an enemy or making an in-app purchase."@en .

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

vgo:GameProduct a rdfs:Class ;
  rdfs:label "game product"@en ;
  rdfs:comment """A vgo:GameProduct is anything that is for sale inside a game. These can be either normal game items purchased with in-game currency or with real world money. An example of vgo:GameProduct could be a consumable health potion bought with real money, a better weapon or some visual improvement (e.g. Hats in Steam). Basically a game product can be anything, a character, an item or an achievement.
GameProduct is a subclass of Good Relations: ProductOrService & schema:Product. Since vgo:GameProduct is a type of buyable product, it reuses the properties available in the schema and Good Relations, such as currency price, validity of the offer and so on."""@en ;
  rdfs:subClassOf <http://purl.org/goodrelations/v1#ProductOrService> , <http://schema.org/Product> .

vgo:SpecialPlayStyle a rdfs:Class ;
  rdfs:label "special play style"@en ;
  rdfs:comment "The vgo:SpecialPlayStyle achievement is awarded to players after playing a game in special fashion. Often this is something harder than the regular play and requires more player experience to excel in it. An example of vgo:SpecialPlayStyle could be to complete a game without any violence or against a timer."@en ;
  rdfs:subClassOf vgo:Achievement .

<http://xmlns.com/foaf/0.1/knows> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .
