@prefix : <http://example.org/cp2077/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://example.org/cp2077> a owl:Ontology ; rdfs:label "Cyberpunk 2077 ontology" .

:Thing a owl:Class .
:Agent a owl:Class ; rdfs:subClassOf :Thing .
:Character a owl:Class ; rdfs:subClassOf :Agent .
:Organization a owl:Class ; rdfs:subClassOf :Agent .
:Corporation a owl:Class ; rdfs:subClassOf :Organization .
:Gang a owl:Class ; rdfs:subClassOf :Organization .
:Government a owl:Class ; rdfs:subClassOf :Organization .
:Event a owl:Class ; rdfs:subClassOf :Thing .
:Quest a owl:Class ; rdfs:subClassOf :Event .
:MainJob a owl:Class ; rdfs:subClassOf :Quest .
:SideJob a owl:Class ; rdfs:subClassOf :Quest .
:HistoricalEvent a owl:Class ; rdfs:subClassOf :Event .
:Location a owl:Class ; rdfs:subClassOf :Thing .
:Concept a owl:Class ; rdfs:subClassOf :Thing .
:Character owl:disjointWith :Organization, :Location .
:Quest owl:disjointWith :HistoricalEvent .

:familyOf a owl:ObjectProperty, owl:SymmetricProperty ; rdfs:label "family of" ; rdfs:domain :Character ; rdfs:range :Character .
:partnerOf a owl:ObjectProperty, owl:SymmetricProperty ; rdfs:label "partner of" ; rdfs:domain :Character ; rdfs:range :Character .
:memberOf a owl:ObjectProperty ; rdfs:label "member of / affiliated with" ; rdfs:domain :Character ; rdfs:range :Organization ; owl:inverseOf :hasMember .
:hasMember a owl:ObjectProperty ; rdfs:label "has member" ; rdfs:domain :Organization ; rdfs:range :Character ; owl:inverseOf :memberOf .
:participatesIn a owl:ObjectProperty ; rdfs:label "participates in" ; rdfs:domain :Character ; rdfs:range :Quest ; owl:inverseOf :hasParticipant .
:hasParticipant a owl:ObjectProperty ; rdfs:label "has participant" ; rdfs:domain :Quest ; rdfs:range :Character ; owl:inverseOf :participatesIn .
:givenBy a owl:ObjectProperty ; rdfs:label "quest given by" ; rdfs:domain :Quest ; rdfs:range :Agent ; owl:inverseOf :gives .
:gives a owl:ObjectProperty ; rdfs:label "gives quest" ; rdfs:domain :Agent ; rdfs:range :Quest ; owl:inverseOf :givenBy .
:precedes a owl:ObjectProperty, owl:TransitiveProperty ; rdfs:label "precedes" ; rdfs:domain :Quest ; rdfs:range :Quest ; owl:inverseOf :follows .
:follows a owl:ObjectProperty, owl:TransitiveProperty ; rdfs:label "follows" ; rdfs:domain :Quest ; rdfs:range :Quest ; owl:inverseOf :precedes .
:associatedWith a owl:ObjectProperty ; rdfs:label "associated with (lore)" ; rdfs:domain :Character ; rdfs:range :Thing .
:mentions a owl:ObjectProperty ; rdfs:label "mentions (weak, from biography)" ; rdfs:domain :Character ; rdfs:range :Character .
:status a owl:DatatypeProperty .
:gender a owl:DatatypeProperty .
:occupation a owl:DatatypeProperty .
:role a owl:DatatypeProperty .
:born a owl:DatatypeProperty .
:died a owl:DatatypeProperty .
:aka a owl:DatatypeProperty .
:voicedBy a owl:DatatypeProperty .
:summary a owl:DatatypeProperty .
:url a owl:DatatypeProperty .
