(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

/langs/usage-policy#

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

This project receives funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No. 731601

Legal Notice | Privacy Policy