(You can download this ontology as an OWL file.)
The following is the formulation in functional syntax of the Usage Policy Language Ontology with identifier
The documentation can be found in Policy Language V1 (deliverable D2.1).
# NAMESPACE DEFINITIONS Prefix(spl:=</langs/usage-policy#>) Prefix(owl:=<http://www.w3.org/2002/07/owl#>) Prefix(rdf:=<http://www.w3.org/1999/02/22-rdf-syntax-ns#>) Prefix(xml:=<http://www.w3.org/XML/1998/namespace>) Prefix(xsd:=<http://www.w3.org/2001/XMLSchema#>) Prefix(rdfs:=<http://www.w3.org/2000/01/rdf-schema#>) # ONTOLOGY IRI AND ITS VERSION Ontology( </langs/usage-policy-ontology> </langs/usage-policy-ontology/1.0> # LIST OF ALL CLASSES AND PROPERTIES Declaration(Class(spl:AnyData)) Declaration(Class(spl:AnyDuration)) Declaration(Class(spl:AnyLocation)) Declaration(Class(spl:AnyProcessing)) Declaration(Class(spl:AnyPurpose)) Declaration(Class(spl:AnyRecipient)) Declaration(Class(spl:AnyStorage)) Declaration(Class(spl:Authorization)) Declaration(Class(spl:Null)) Declaration(ObjectProperty(spl:hasData)) Declaration(ObjectProperty(spl:hasDuration)) Declaration(ObjectProperty(spl:hasLocation)) Declaration(ObjectProperty(spl:hasProcessing)) Declaration(ObjectProperty(spl:hasPurpose)) Declaration(ObjectProperty(spl:hasRecipient)) Declaration(ObjectProperty(spl:hasStorage)) Declaration(DataProperty(spl:durationInDays)) # HERE WE SAY: # 1) THAT ALL PROPERTIES ARE FUNCTIONAL # 2) WHICH ARE THEIR DOMAIN AND RANGE FunctionalObjectProperty(spl:hasData) ObjectPropertyDomain(spl:hasData spl:Authorization) ObjectPropertyRange(spl:hasData spl:AnyData) FunctionalObjectProperty(spl:hasDuration) ObjectPropertyDomain(spl:hasDuration spl:AnyStorage) ObjectPropertyRange(spl:hasDuration spl:AnyDuration) FunctionalObjectProperty(spl:hasLocation) ObjectPropertyDomain(spl:hasLocation spl:AnyStorage) ObjectPropertyRange(spl:hasLocation spl:AnyLocation) FunctionalObjectProperty(spl:hasProcessing) ObjectPropertyDomain(spl:hasProcessing spl:Authorization) ObjectPropertyRange(spl:hasProcessing spl:AnyProcessing) FunctionalObjectProperty(spl:hasPurpose) ObjectPropertyDomain(spl:hasPurpose spl:Authorization) ObjectPropertyRange(spl:hasPurpose spl:AnyPurpose) FunctionalObjectProperty(spl:hasRecipient) ObjectPropertyDomain(spl:hasRecipient spl:Authorization) ObjectPropertyRange(spl:hasRecipient ObjectUnionOf(spl:AnyRecipient spl:Null)) FunctionalObjectProperty(spl:hasStorage) ObjectPropertyDomain(spl:hasStorage spl:Authorization) ObjectPropertyRange(spl:hasStorage ObjectUnionOf(spl:AnyStorage spl:Null)) FunctionalDataProperty(spl:durationInDays) DataPropertyDomain(spl:durationInDays spl:AnyStorage) DataPropertyRange(spl:durationInDays xsd:positiveInteger) # THE FOLLOWING CLASSES ARE MUTUALLY DISJOINT DisjointClasses( spl:AnyData spl:AnyDuration spl:AnyLocation spl:AnyProcessing spl:AnyPurpose spl:AnyRecipient spl:AnyStorage spl:Authorization spl:Null ) # AN AUTHORIZATION IS ANYTHING THAT HAS THE # DATA, PROCESSING, PURPOSE, RECIPIENT, STORAGE ATTRIBUTES EquivalentClasses(<spl:Authorization> ObjectIntersectionOf( ObjectSomeValuesFrom(<spl:hasData> owl:Thing) ObjectSomeValuesFrom(<spl:hasProcessing> owl:Thing) ObjectSomeValuesFrom(<spl:hasPurpose> owl:Thing) ObjectSomeValuesFrom(<spl:hasRecipient> owl:Thing) ObjectSomeValuesFrom(<spl:hasStorage> owl:Thing) ) ) )# end of ontology