@prefix dcterms: .
@prefix foaf: .
@prefix owl: .
@prefix rdf: .
@prefix rdfs: .
@prefix skos: .
@prefix xapi: .
@prefix xml: .
@prefix xsd: .
xapi: a owl:Ontology ;
rdfs:label "xAPI Ontology"@en ;
dcterms:created "2015-11-19"^^xsd:date ;
dcterms:modified "2017-08-11"^^xsd:date ;
rdfs:comment "This ontology contains the classes and properties that are used when for semantically expressing the structure and relationships of xAPI data."@en .
xapi:AllDisjointClasses a owl:AllDisjointClasses ;
owl:members ( xapi:Actor xapi:Verb xapi:Object xapi:Context xapi:Result xapi:Authority xapi:Attachments ) .
#################################################################
### Statement Classes
#################################################################
xapi:Statement a owl:Class ;
rdfs:label "Statement"@en ;
rdfs:comment "The Class used to represent a Statement object in xAPI."@en .
xapi:SubStatement a owl:Class ;
rdfs:label "SubStatement"@en ;
rdfs:comment "The Class used to represent a SubStatement object in xAPI."@en ;
rdfs:subClassOf xapi:Statement .
xapi:StatementRef a owl:Class ;
rdfs:label "StatementRef"@en ;
rdfs:comment "The Class used to represent a StatementRef object in xAPI."@en ;
rdfs:subClassOf xapi:Object .
#################################################################
### Statement Properties
#################################################################
xapi:stored a owl:DatatypeProperty ;
rdfs:label "stored"@en ;
rdfs:comment "The time at which a Statement is stored by the LRS. This can be any time between when the LRS receives the Statement and when it is written to storage. Formatted in milliseconds according to ISO 8601's normal format."@en ;
rdfs:domain xapi:Statement ;
rdfs:range xsd:dateTime .
xapi:timeStamp a owl:DatatypeProperty ;
rdfs:label "timeStamp"@en ;
rdfs:comment "Timestamps represent a specific time and are formatted in milliseconds according to ISO 8601's normal format."@en ;
rdfs:domain xapi:Statement ;
rdfs:range xsd:dateTime .
xapi:version a owl:AnnotationProperty ;
rdfs:label "version"@en ;
rdfs:comment "The Statement’s associated xAPI version, formatted according to Semantic Versioning 1.0.0." ;
rdfs:domain xapi:Statement ;
rdfs:range xsd:string .
#################################################################
# Property Unions - For properties used by more than one Class
#################################################################
xapi:NamePropertyUnion a owl:Class ;
rdfs:label "NamePropertyUnion"@en ;
rdfs:comment "The Class used to create a multiple domain axiom for the name property so it can be used with multiple Classes."@en ;
owl:unionOf (xapi:Actor xapi:Account xapi:Agent xapi:Group xapi:ActivityDefinition xapi:StatementRef) .
xapi:name a owl:DatatypeProperty ;
rdfs:label "name"@en ;
rdfs:comment "A property used to provide the name of an object in xAPI."@en ;
rdfs:domain xapi:NamePropertyUnion ;
rdfs:range xsd:string .
xapi:display a owl:DatatypeProperty ;
rdfs:label "display"@en ;
rdfs:comment "A property used to provide the title (in a specific language) of an object in xAPI."@en ;
rdfs:domain xapi:DisplayPropertyUnion ;
rdfs:range rdf:langString .
xapi:DisplayPropertyUnion a owl:Class ;
rdfs:label "NamePropertyUnion"@en ;
rdfs:comment "The Class used to create a multiple domain axiom for the display property so it can be used with multiple Classes."@en ;
owl:unionOf (xapi:Verb xapi:Attachments) .
xapi:DescriptionPropertyUnion a owl:Class ;
rdfs:label "DescriptionPropertyUnion"@en ;
rdfs:comment "The Class used to create a multiple domain axiom for the description property so it can be used with multiple Classes."@en ;
owl:unionOf (xapi:Object xapi:ActivityDefinition xapi:InteractionComponent xapi:ContextActivities xapi:Attachments) .
xapi:description a owl:DatatypeProperty ;
rdfs:label "description"@en ;
rdfs:comment "A property used to provide the textual description (in a specific language) of an object in xAPI."@en ;
rdfs:domain xapi:DescriptionPropertyUnion ;
rdfs:range rdf:langString .
xapi:ExtensionsUnion a owl:Class ;
rdfs:label "ExtensionsUnion"@en ;
rdfs:comment "The Class used to create a multiple domain axiom for the extensions property so it can be used with multiple Classes."@en ;
owl:unionOf (xapi:ActivityExtension xapi:ResultExtension xapi:ContextExtension) .
xapi:extensions a owl:ObjectProperty ;
rdfs:label "extensions"@en ;
rdfs:comment "A property used to define the extensions object in xAPI."@en ;
rdfs:domain xapi:ExtensionsUnion .
xapi:MemberUnion a owl:Class ;
rdfs:label "MemberUnion"@en ;
rdfs:comment "The Class used to create a multiple domain axiom for the member property so it can be used with multiple Classes."@en ;
owl:unionOf (xapi:Agent xapi:Group xapi:Authority xapi:Attachments) .
xapi:member a owl:DatatypeProperty ;
rdfs:label "member"@en ;
rdfs:comment "A property used to provide the members of a group object in xAPI."@en ;
rdfs:domain xapi:MemberUnion .
xapi:ObjectTypeUnion a owl:Class ;
rdfs:label "ObjectTypeUnion"@en ;
rdfs:comment "The Class used to create a multiple domain axiom for the objectType property so it can be used with multiple Classes."@en ;
owl:unionOf (xapi:Statement xapi:Actor xapi:Object xapi:Authority) .
xapi:objectType a owl:DatatypeProperty ;
rdfs:label "objectType"@en ;
rdfs:comment "A property used to provide the objectType in xAPI."@en ;
rdfs:domain xapi:ObjectTypeUnion ;
rdfs:range xsd:string .
xapi:IDUnion a owl:Class ;
rdfs:label "IDUnion"@en ;
rdfs:comment "The Class used to create a multiple domain axiom for the id property so it can be used with multiple Classes."@en ;
owl:unionOf (xapi:Statement xapi:StatementRef) .
xapi:id a owl:DatatypeProperty ;
rdfs:label "id"@en ;
rdfs:comment "A property used to provide the UUID identifier of a Statement or SubStatement object in xAPI."@en ;
rdfs:domain xapi:IDUnion ;
owl:onDatatype xsd:string ;
owl:withRestrictions ( xsd:pattern "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[8-9a-bA-B][0-9a-fA-F]{3}-[0-9a-fA-F]{12}" ) .
#################################################################
### Actor Classes
#################################################################
xapi:Actor a owl:Class ;
rdfs:label "Actor"@en ;
rdfs:comment "The Class used for the Actor object in xAPI."@en ;
rdfs:subClassOf xapi:Statement .
xapi:Agent a owl:Class ;
rdfs:label "Agent"@en ;
rdfs:comment "The Class used for the Agent object in xAPI."@en ;
rdfs:subClassOf xapi:Actor .
xapi:Account a owl:Class ;
rdfs:label "Account"@en ;
rdfs:comment "The Class used for the Account object in xAPI."@en ;
rdfs:subClassOf xapi:Actor .
xapi:Group a owl:Class ;
rdfs:label "Group"@en ;
rdfs:comment "The Class used for an Anonymous or Identified Group object in xAPI."@en ;
rdfs:subClassOf xapi:Actor .
#################################################################
### Actor Properties
#################################################################
xapi:mbox a owl:DatatypeProperty ;
rdfs:label "mbox"@en ;
rdfs:comment "The required format is mailto:user@emailaddress. Only email addresses that have only ever been and will ever be assigned to this Agent, but no others, SHOULD be used for this property and mbox_sha1sum." ;
rdfs:domain xapi:Actor ;
rdfs:subPropertyOf foaf:mbox .
xapi:mbox_sha1sum a owl:DatatypeProperty ;
rdfs:label "mbox_sha1sum"@en ;
rdfs:comment "The hex-encoded SHA1 hash of a mailto IRI (i.e. the value of an mbox property). An LRS MAY include Agents with a matching hash when a request is based on an mbox." ;
rdfs:domain xapi:Actor ;
rdfs:subPropertyOf foaf:mbox_sha1sum .
xapi:openid a owl:DatatypeProperty ;
rdfs:label "openid"@en ;
rdfs:comment "An openID that uniquely identifies the Agent." ;
rdfs:domain xapi:Actor ;
rdfs:range xsd:anyURI .
xapi:homePage a owl:DatatypeProperty ;
rdfs:label "homePage"@en ;
rdfs:comment "The canonical home page for the system the account is on. This is based on FOAF's accountServiceHomePage." ;
rdfs:domain xapi:Account ;
rdfs:range xsd:anyURI ;
rdfs:subPropertyOf foaf:accountServiceHomepage .
#################################################################
### Verb Classes
#################################################################
xapi:Verb a owl:Class ;
rdfs:label "Verb"@en ;
rdfs:comment "The Class used for a Verb object in xAPI."@en ;
rdfs:subClassOf skos:Concept ;
rdfs:subClassOf xapi:Statement .
#################################################################
### Object/Activity Classes
#################################################################
xapi:Object a owl:Class ;
rdfs:label "Object"@en ;
rdfs:comment "The Class used for the Object in xAPI."@en ;
rdfs:subClassOf xapi:Statement .
xapi:Activity a owl:Class ;
rdfs:label "Activity"@en ;
rdfs:comment "The Class used for the Activity Object in xAPI."@en ;
rdfs:subClassOf xapi:Object ;
rdfs:subClassOf skos:Concept .
xapi:ActivityDefinition a owl:Class ;
rdfs:label "Activity"@en ;
rdfs:comment "The Class used for the ActivityDefinition object in xAPI."@en ;
rdfs:subClassOf xapi:Activity ;
rdfs:subClassOf skos:Concept .
xapi:ActivityType a owl:Class ;
rdfs:label "ActivityType"@en ;
rdfs:comment "The Class for an Activity Type in an xAPI vocabulary or profile."@en ;
rdfs:subClassOf skos:Concept ;
rdfs:subClassOf xapi:ActivityDefinition .
xapi:InteractionComponent a owl:Class ;
rdfs:label "InteractionComponent"@en ;
rdfs:comment "The Class used for an interaction component activity definition in xAPI."@en .
#################################################################
### Object/Activity Properties
#################################################################
xapi:choices a owl:ObjectProperty ;
rdfs:label "choices"@en ;
rdfs:comment "The property used to provide an array of choices when used with the choice interactionType."@en ;
rdfs:domain xapi:ActivityDefinition ;
rdfs:range xapi:InteractionComponent .
xapi:correctResponsesPattern a owl:DatatypeProperty ;
rdfs:label "correctResponsesPattern"@en ;
rdfs:comment "The property used to provide an array of strings representing the correct response to the interactionType."@en ;
rdfs:domain xapi:ActivityDefinition ;
rdfs:range xsd:string .
xapi:extensions a owl:ObjectProperty ;
rdfs:label "extensions"@en ;
rdfs:comment "The property used to provide a map of any other domain-specific properties relevant to the Statement."@en ;
rdfs:domain xapi:ActivityDefinition .
xapi:interactionType a owl:DatatypeProperty ;
rdfs:label "interactionType"@en ;
rdfs:comment "The property used to provide the type of interaction activity. Possible values are: true-false, choice, fill-in, long-fill-in, matching, performance, sequencing, likert, numeric or other."@en ;
rdfs:domain xapi:ActivityDefinition ;
rdfs:range xsd:string .
xapi:interactionId a owl:DatatypeProperty ;
rdfs:label "interactionID"@en ;
rdfs:comment "The property used to provide an identifier for the interaction component or interaction activity."@en ;
rdfs:domain xapi:InteractionComponent ;
rdfs:range xsd:string .
xapi:moreInfo a owl:ObjectProperty ;
rdfs:label "moreInfo"@en ;
rdfs:comment "The property used to provide a link to a human-readable document about the Activity, which could also include a way to launch the activity."@en ;
rdfs:domain xapi:ActivityDefinition ;
rdfs:range xsd:anyURI .
xapi:name a owl:DatatypeProperty ;
rdfs:label "name"@en ;
rdfs:comment "The property used to provide a textual name of the activity and language map."@en ;
rdfs:domain xapi:ActivityDefinition ;
rdfs:range rdf:langString .
xapi:scale a owl:ObjectProperty ;
rdfs:label "scale"@en ;
rdfs:comment "An interaction component property used with the likert interactionType."@en ;
rdfs:domain xapi:ActivityDefinition ;
rdfs:range xapi:InteractionComponent .
xapi:source a owl:ObjectProperty ;
rdfs:label "source"@en ;
rdfs:comment "An interaction component property used with the matching interactionType."@en ;
rdfs:domain xapi:ActivityDefinition ;
rdfs:range xapi:InteractionComponent .
xapi:steps a owl:ObjectProperty ;
rdfs:label "steps"@en ;
rdfs:comment "An interaction component property used with the performance interactionType."@en ;
rdfs:domain xapi:ActivityDefinition ;
rdfs:range xapi:InteractionComponent .
xapi:target a owl:ObjectProperty ;
rdfs:label "target"@en ;
rdfs:comment "An interaction component property used with the matching interactionType."@en ;
rdfs:domain xapi:ActivityDefinition ;
rdfs:range xapi:InteractionComponent .
xapi:type a owl:ObjectProperty ;
rdfs:label "type"@en ;
rdfs:comment "The ActivityDefinition property used to identify the IRI of the ActivityType."@en ;
rdfs:domain xapi:ActivityDefinition ;
rdfs:range xapi:ActivityType .
#################################################################
### Extension Classes
#################################################################
xapi:Extension a owl:Class ;
rdfs:label "Extension"@en ;
rdfs:comment "The Class used for the Extension object in xAPI."@en ;
rdfs:subClassOf skos:Concept .
xapi:ContextExtension a owl:Class ;
rdfs:label "ContextExtension"@en ;
rdfs:comment "The Class used to classify a ContextExtension in xAPI."@en ;
rdfs:subClassOf xapi:Extension .
xapi:ResultExtension a owl:Class ;
rdfs:label "ResultExtension"@en ;
rdfs:comment "The Class used to classify a ResultExtension in xAPI."@en ;
rdfs:subClassOf xapi:Extension .
xapi:ActivityExtension a owl:Class ;
rdfs:label "ActivityExtension"@en ;
rdfs:comment "The Class used to classify an ActivityExtension in xAPI."@en ;
rdfs:subClassOf xapi:Extension .
#################################################################
### Result Classes
#################################################################
xapi:Result a owl:Class ;
rdfs:label "Result"@en ;
rdfs:comment "The Class used for a Result object in xAPI."@en ;
rdfs:subClassOf xapi:Statement .
xapi:Score a owl:Class ;
rdfs:label "Score"@en ;
rdfs:comment "The Class used for a Score object in xAPI."@en ;
rdfs:subClassof xapi:Result .
#################################################################
### Result Properties
#################################################################
xapi:completion a owl:DatatypeProperty ;
rdfs:label "completion"@en ;
rdfs:comment "A property used to provide the completion status (true or false) of a Result object in xAPI."@en ;
rdfs:domain xapi:Result ;
rdfs:range xsd:boolean .
xapi:duration a owl:DatatypeProperty ;
rdfs:label "duration"@en ;
rdfs:comment "Period of time over which the Statement occurred. Formatted according to ISO 8601 with a precision of 0.01 seconds"@en ;
rdfs:domain xapi:Result ;
rdfs:range xsd:duration .
xapi:response a owl:DatatypeProperty ;
rdfs:label "response"@en ;
rdfs:comment "A property used to provide a textual response in the Result object."@en ;
rdfs:domain xapi:Result ;
rdfs:range xsd:string .
xapi:success a owl:DatatypeProperty ;
rdfs:label "success"@en ;
rdfs:comment "A property used to provide the success status (true or false) of a Result object in xAPI."@en ;
rdfs:domain xapi:Result ;
rdfs:range xsd:boolean .
#################################################################
### Context Classes
#################################################################
xapi:Context a owl:Class ;
rdfs:label "Context"@en ;
rdfs:comment "The Class used for an Context object in xAPI."@en ;
rdfs:subClassOf xapi:Statement .
xapi:ContextActivities a owl:Class ;
rdfs:label "ContextActivities"@en ;
rdfs:comment "The Class used for a ContextActivities object in xAPI."@en ;
rdfs:subClassOf xapi:Context .
#################################################################
### Context Properties
#################################################################
xapi:registration a owl:DatatypeProperty ;
rdfs:label "registration"@en ;
rdfs:comment "A property used to provide the registration UUID identifier of a Context object in xAPI."@en ;
rdfs:domain xapi:Context ;
owl:onDatatype xsd:string ;
owl:withRestrictions ( xsd:pattern "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[8-9a-bA-B][0-9a-fA-F]{3}-[0-9a-fA-F]{12}" ) .
xapi:category a owl:ObjectProperty ;
rdfs:label "category"@en ;
rdfs:comment "The property used to provide an an Activity used to categorize the Statement. The category property SHOULD be used to indicate a profile of xAPI behaviors, as well as other categorizations."@en ;
rdfs:domain xapi:ContextActivities .
xapi:parent a owl:ObjectProperty ;
rdfs:label "parent"@en ;
rdfs:comment "The property used to provide a direct relation to the Activity which is the Object of the Statement. In almost all cases there is only one sensible parent or none, not multiple."@en ;
rdfs:domain xapi:ContextActivities .
xapi:grouping a owl:ObjectProperty ;
rdfs:label "grouping"@en ;
rdfs:comment "The property used to provide an an indirect relation to the Activity which is the Object of the Statement."@en ;
rdfs:domain xapi:ContextActivities .
xapi:other a owl:ObjectProperty ;
rdfs:label "other"@en ;
rdfs:comment "The property used to provide an contextActivity relationship that doesn't fit one of the other properties."@en ;
rdfs:domain xapi:ContextActivities .
#################################################################
### Authority Classes
#################################################################
xapi:Authority a owl:ObjectProperty ;
rdfs:label "Authority"@en ;
rdfs:comment "The Class used for the Authority object in xAPI. The Authority is the Agent or Group who is asserting this Statement is true. Verified by the LRS based on authentication. Set by LRS if not provided or if a strong trust relationship between the Learning Record Provider and LRS has not been established."@en ;
rdfs:subClassOf xapi:Statement .
#################################################################
### Attachments Classes
#################################################################
xapi:Attachments a owl:Class ;
rdfs:label "Attachments"@en ;
rdfs:comment "The Class used for the Attachments object in xAPI."@en ;
rdfs:subClassOf xapi:Statement .
xapi:AttachmentUsageType a owl:Class ;
rdfs:label "AttachmentUsageType"@en ;
rdfs:comment "."@en ;
rdfs:subClassOf skos:Concept ;
rdfs:subClassOf xapi:Attachments .
#################################################################
### Attachment Properties
#################################################################
xapi:usageType a owl:DatatypeProperty ;
rdfs:label "usageType"@en;
rdfs:comment "An Attachment property specifically used to identify the usage of an attachment."@en;
rdfs:domain xapi:Attachments ;
rdfs:range xapi:AttachmentUsageType .
xapi:contentType a owl:DatatypeProperty ;
rdfs:label "contentType"@en;
rdfs:comment "An Attachment property specifically used to identify the media type of the attachment."@en;
rdfs:domain xapi:Attachments .
xapi:length a owl:DatatypeProperty ;
rdfs:label "length"@en;
rdfs:comment "An Attachment property used to identify the length of data in octets."@en;
rdfs:domain xapi:Attachments .
xapi:sha2 a owl:DatatypeProperty ;
rdfs:label "sha2"@en;
rdfs:comment "An Attachment property used to provide a SHA-2 has of the attachment data."@en;
rdfs:domain xapi:Attachments ;
rdfs:range xsd:string .
xapi:fileURL a owl:DatatypeProperty ;
rdfs:label "fileURL"@en;
rdfs:comment "An Attachment property used to provide an IRL/URL where the attachment data can be retrieved."@en;
rdfs:domain xapi:Attachments ;
rdfs:range xsd:string .
#################################################################
### Document Resource Classes
#################################################################
xapi:DocumentResource a owl:Class ;
rdfs:label "DocumentResource"@en ;
rdfs:comment "The Class used for Document Resources data in xAPI."@en ;
rdfs:subClassOf skos:Concept .
xapi:StateResource a owl:Class ;
rdfs:label "StateResource"@en ;
rdfs:comment "The Class used for State Resource data in xAPI."@en ;
rdfs:subClassOf xapi:DocumentResource .
xapi:AgentProfileResource a owl:Class ;
rdfs:label "AgentProfileResource"@en ;
rdfs:comment "The Class used for Agent Profile data in xAPI."@en ;
rdfs:subClassOf xapi:DocumentResource .
xapi:ActivityProfileResource a owl:Class ;
rdfs:label "ActivityProfileResource"@en ;
rdfs:comment "The Class used for Activity profile data in xAPI."@en ;
rdfs:subClassOf xapi:DocumentResource .
#################################################################
### Document Resource Properties
#################################################################