@prefix : <https://w3id.org/sulo/sulo.ttl#> .
@prefix cc: <http://creativecommons.org/ns#> .
@prefix mod: <https://w3id.org/mod#> .
@prefix omv: <http://omv.ontoware.org/2005/05/ontology#> .
@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 dcat: <http://www.w3.org/ns/dcat#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sulo: <https://w3id.org/sulo/> .
@prefix schema: <https://schema.org/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@base <https://w3id.org/sulo/sulo.ttl#> .

<https://w3id.org/sulo/sulo.ttl> rdf:type owl:Ontology ;
                                  dcterms:alternative "SULO"@en ;
                                  dcterms:created "2024-11-11" ;
                                  dcterms:language <http://lexvo.org/id/iso639-1/en> ;
                                  dcterms:license <https://creativecommons.org/publicdomain/zero/1.0> ;
                                  dcterms:modified "2025-03-13" ;
                                  rdfs:comment "The Simplified Upper Level Ontology (SULO) is ontology with a minimal set of classes and relations to guide the development of a personal health knowledge graph."@en ;
                                  rdfs:label "Simplified Upper Level Ontology"@en ;
                                  owl:versionInfo "0.2.0" ;
                                  dcat:accessURL <https://w3id.org/sulo/sulo.ttl> ;
                                  foaf:homepage <https://github.com/AIDAVA-DEV/sulo> ;
                                  schema:funding "This work is partially supported by the AIDAVA project (GA 101057062), as part of the European Union's Horizon Europe research and innovation programme."@en ;
                                  mod:definitionProperty rdfs:comment ;
                                  mod:hasRepresentationLanguage omv:OWL ;
                                  mod:hasSyntax <http://www.w3.org/ns/formats/Turtle> ;
                                  mod:prefLabelProperty rdfs:label .

#################################################################
#    Annotation properties
#################################################################

###  http://purl.org/dc/terms/alternative
dcterms:alternative rdf:type owl:AnnotationProperty .


###  http://purl.org/dc/terms/created
dcterms:created rdf:type owl:AnnotationProperty .


###  http://purl.org/dc/terms/language
dcterms:language rdf:type owl:AnnotationProperty .


###  http://purl.org/dc/terms/license
dcterms:license rdf:type owl:AnnotationProperty .


###  http://purl.org/dc/terms/modified
dcterms:modified rdf:type owl:AnnotationProperty .


###  http://www.w3.org/2004/02/skos/core#example
<http://www.w3.org/2004/02/skos/core#example> rdf:type owl:AnnotationProperty .


###  http://www.w3.org/ns/dcat#accessURL
dcat:accessURL rdf:type owl:AnnotationProperty .


###  http://xmlns.com/foaf/0.1/homepage
foaf:homepage rdf:type owl:AnnotationProperty .


###  https://schema.org/funding
schema:funding rdf:type owl:AnnotationProperty .


###  https://w3id.org/mod#definitionProperty
mod:definitionProperty rdf:type owl:AnnotationProperty .


###  https://w3id.org/mod#hasRepresentationLanguage
mod:hasRepresentationLanguage rdf:type owl:AnnotationProperty .


###  https://w3id.org/mod#hasSyntax
mod:hasSyntax rdf:type owl:AnnotationProperty .


###  https://w3id.org/mod#prefLabelProperty
mod:prefLabelProperty rdf:type owl:AnnotationProperty .


#################################################################
#    Datatypes
#################################################################

###  http://www.w3.org/2001/XMLSchema#date
xsd:date rdf:type rdfs:Datatype .


#################################################################
#    Object Properties
#################################################################

###  https://w3id.org/sulo/atTime
sulo:atTime rdf:type owl:ObjectProperty ;
            rdfs:subPropertyOf owl:topObjectProperty ;
            owl:inverseOf sulo:isTimeOf ;
            rdfs:domain owl:Thing ;
            rdfs:range sulo:Time ;
            dcterms:alternative "existsAt"@en ;
            rdfs:comment "a relation between any thing and the time in which it occurs at."@en ;
            rdfs:label "at time"@en .


###  https://w3id.org/sulo/hasDirectPart
sulo:hasDirectPart rdf:type owl:ObjectProperty ;
                   rdfs:subPropertyOf sulo:hasPart ;
                   owl:inverseOf sulo:isDirectPartOf ;
                   rdfs:comment "has direct part is a non-transitive parthood relation that can be used to specify cardinality constraints between a whole and its parts."@en ;
                   rdfs:label "has direct part" .


###  https://w3id.org/sulo/hasFeature
sulo:hasFeature rdf:type owl:ObjectProperty ;
                owl:inverseOf sulo:isFeatureOf ;
                rdfs:domain [ rdf:type owl:Class ;
                              owl:unionOf ( sulo:Object
                                            sulo:Process
                                          )
                            ] ;
                rdfs:range sulo:Feature ;
                rdfs:comment "has feature is a relation between a thing and an internal, contextual, or externally attributed characteristic."@en ;
                rdfs:label "has feature"@en .


###  https://w3id.org/sulo/hasMember
sulo:hasMember rdf:type owl:ObjectProperty ;
               owl:inverseOf sulo:isItemIn ;
               rdfs:domain sulo:Set ;
               rdfs:range owl:Thing ;
               rdfs:comment "has item is a relation between a collection and an item contained therein."@en ;
               rdfs:label "has item"@en .


###  https://w3id.org/sulo/hasPart
sulo:hasPart rdf:type owl:ObjectProperty ;
             rdfs:subPropertyOf sulo:isLocatedIn ;
             owl:inverseOf sulo:isPartOf ;
             rdf:type owl:TransitiveProperty ,
                      owl:ReflexiveProperty ;
             rdfs:comment "has part is a transitive, reflexive and antisymmetric relation between a whole and itself or a whole and its part." ;
             rdfs:label "has part"@en .


###  https://w3id.org/sulo/hasParticipant
sulo:hasParticipant rdf:type owl:ObjectProperty ;
                    owl:inverseOf sulo:isParticipantIn ;
                    rdfs:domain sulo:Process ;
                    rdfs:range sulo:Object ;
                    owl:propertyChainAxiom ( sulo:hasParticipant
                                             [ owl:inverseOf sulo:hasFeature
                                             ]
                                           ) ;
                    rdfs:comment "has participant is a relation that describes the participation of a (non-process) thing in a process."@en ;
                    rdfs:label "has participant"@en .


###  https://w3id.org/sulo/isDirectPartOf
sulo:isDirectPartOf rdf:type owl:ObjectProperty ;
                    rdfs:subPropertyOf sulo:isPartOf ;
                    rdfs:comment "is direct part is a non-transitive parthood relation that can be used to specify cardinality constraints between a part and its whole."@en ;
                    rdfs:label "is direct part of"@en .


###  https://w3id.org/sulo/isFeatureOf
sulo:isFeatureOf rdf:type owl:ObjectProperty ;
                 rdfs:domain sulo:Feature ;
                 rdfs:range [ rdf:type owl:Class ;
                              owl:unionOf ( sulo:Object
                                            sulo:Process
                                          )
                            ] ;
                 rdfs:comment "is feature of is a relation between an internal, contextual, or externally attributed characteristic and some Thing."@en ;
                 rdfs:label "is feature of"@en .


###  https://w3id.org/sulo/isItemIn
sulo:isItemIn rdf:type owl:ObjectProperty ;
              rdfs:subPropertyOf owl:topObjectProperty ;
              rdfs:domain owl:Thing ;
              rdfs:range sulo:Set ;
              rdfs:comment "has item is a relation between an item and the collection in which it contained."@en ;
              rdfs:label "is item in"@en .


###  https://w3id.org/sulo/isLocatedIn
sulo:isLocatedIn rdf:type owl:ObjectProperty ;
                 rdfs:subPropertyOf owl:topObjectProperty ;
                 owl:inverseOf sulo:isLocationOf ;
                 rdf:type owl:TransitiveProperty ;
                 dcterms:alternative "has location"@en ;
                 rdfs:comment "A is located in B iff the spatialtemporal region occupied by B is the spatialtemporal region occupied by A."@en ;
                 rdfs:label "is located in"@en .


###  https://w3id.org/sulo/isLocationOf
sulo:isLocationOf rdf:type owl:ObjectProperty ,
                           owl:TransitiveProperty ;
                  rdfs:comment "A is location of B iff the spatialtemporal region occupied by A is the spatialtemporal region occupied by B."@en ;
                  rdfs:label "is location of"@en .


###  https://w3id.org/sulo/isPartOf
sulo:isPartOf rdf:type owl:ObjectProperty ;
              rdfs:subPropertyOf sulo:isLocationOf ;
              rdf:type owl:TransitiveProperty ,
                       owl:ReflexiveProperty ;
              rdfs:comment "is part of is a transitive, reflexive and antisymmetric relation between a part and itself or a part and a whole."@en ;
              rdfs:label "is part of"@en .


###  https://w3id.org/sulo/isParticipantIn
sulo:isParticipantIn rdf:type owl:ObjectProperty ;
                     rdfs:domain sulo:Object ;
                     rdfs:range sulo:Process ;
                     rdfs:comment "is participant in is a relation to relate an object and the process in which it participates."@en ;
                     rdfs:label "is participant in"@en .


###  https://w3id.org/sulo/isPrecededBy
sulo:isPrecededBy rdf:type owl:ObjectProperty ;
                  owl:inverseOf sulo:precedes ;
                  rdfs:domain sulo:Process ;
                  rdfs:range sulo:Process ;
                  rdfs:comment "A relation in which one process occurs after to another process."@en ;
                  rdfs:label "is preceded by"@en .


###  https://w3id.org/sulo/isReferredIn
sulo:isReferredIn rdf:type owl:ObjectProperty ;
                  owl:inverseOf sulo:refersTo ;
                  rdfs:domain owl:Thing ;
                  rdfs:range sulo:InformationObject ;
                  rdfs:comment "is referred in is relation between an object that is the subject of an information object."@en ;
                  rdfs:label "is referred in"@en .


###  https://w3id.org/sulo/isTimeOf
sulo:isTimeOf rdf:type owl:ObjectProperty ;
              rdfs:domain sulo:Time ;
              rdfs:range owl:Thing ;
              rdfs:comment "a relation between a time and an object that occurs within it."@en ;
              rdfs:label "is time of" .


###  https://w3id.org/sulo/precedes
sulo:precedes rdf:type owl:ObjectProperty ;
              rdfs:domain sulo:Process ;
              rdfs:range sulo:Process ;
              rdfs:comment "A relation in which one process occurs prior to another process."@en ;
              rdfs:label "precedes" .


###  https://w3id.org/sulo/refersTo
sulo:refersTo rdf:type owl:ObjectProperty ;
              rdfs:domain sulo:InformationObject ;
              rdfs:range owl:Thing ;
              rdfs:comment "refers to is a binary relation between an information object and any other object that it mentions, describes, represents, encodes, or otherwise provides information about."@en ;
              rdfs:label "refers to"@en .


#################################################################
#    Data properties
#################################################################

###  https://w3id.org/sulo/hasValue
sulo:hasValue rdf:type owl:DatatypeProperty ,
                       owl:FunctionalProperty ;
              rdfs:domain sulo:InformationObject ;
              rdfs:comment "has value is the (only) data type attribute to store the values of information objects."@en ;
              rdfs:label "has value"@en .


#################################################################
#    Classes
#################################################################

###  https://w3id.org/sulo/Capability
sulo:Capability rdf:type owl:Class ;
                rdfs:subClassOf sulo:Feature ;
                rdfs:comment "A capability is a feature that describes what an entity is able to do, under some set of circumstances."@en ;
                rdfs:label "capability" ;
                <http://www.w3.org/2004/02/skos/core#example> "the capability to fly, the capabilty to reduce the activation energy of a chemical reaction, the capability to reason"@en .


###  https://w3id.org/sulo/Duration
sulo:Duration rdf:type owl:Class ;
              rdfs:subClassOf sulo:Time ,
                              [ rdf:type owl:Restriction ;
                                owl:onProperty sulo:hasValue ;
                                owl:someValuesFrom [ rdf:type rdfs:Datatype ;
                                                     owl:onDatatype xsd:float ;
                                                     owl:withRestrictions ( [ xsd:minInclusive "0.0"^^xsd:float
                                                                            ]
                                                                          )
                                                   ]
                              ] ;
              rdfs:comment "Duration is a temporal quantity that represents the extent or (non-negative) amount of time that elapses between two temporal points, typically the start and end of a time interval."@en ;
              rdfs:label "duration"@en .


###  https://w3id.org/sulo/EndTime
sulo:EndTime rdf:type owl:Class ;
             rdfs:subClassOf sulo:TimeInstant ;
             rdfs:comment "an end time is a time instant at the end of a process/time interval."@en ;
             rdfs:label "end time"@en .


###  https://w3id.org/sulo/Feature
sulo:Feature rdf:type owl:Class ;
             rdfs:subClassOf sulo:Object ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty sulo:isFeatureOf ;
                               owl:someValuesFrom [ rdf:type owl:Class ;
                                                    owl:unionOf ( sulo:Object
                                                                  sulo:Process
                                                                )
                                                  ]
                             ] ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty sulo:hasPart ;
                               owl:allValuesFrom sulo:Feature
                             ] ;
             owl:disjointWith sulo:SpatialObject ;
             owl:disjointUnionOf ( sulo:Capability
                                   sulo:InformationObject
                                   sulo:Quality
                                   sulo:Role
                                 ) ;
             rdfs:comment "A feature is any characteristic that stems from the intrisinc structure and/or context"@en ;
             rdfs:label "feature"@en ;
             <http://www.w3.org/2004/02/skos/core#example> "the capability to fly, a collection of cards, a measured height of 170cm."@en .


###  https://w3id.org/sulo/InformationObject
sulo:InformationObject rdf:type owl:Class ;
                       rdfs:subClassOf sulo:Feature ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty sulo:hasPart ;
                                         owl:allValuesFrom sulo:InformationObject
                                       ] ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty sulo:hasValue ;
                                         owl:allValuesFrom rdfs:Literal
                                       ] ;
                       rdfs:comment "an information object is a feature that represents, is about, or encodes some information."@en ;
                       rdfs:label "information object"@en .


###  https://w3id.org/sulo/Object
sulo:Object rdf:type owl:Class ;
            rdfs:subClassOf [ rdf:type owl:Class ;
                              owl:complementOf [ rdf:type owl:Restriction ;
                                                 owl:onProperty sulo:hasPart ;
                                                 owl:someValuesFrom sulo:Process
                                               ]
                            ] ,
                            [ rdf:type owl:Restriction ;
                              owl:onProperty sulo:hasPart ;
                              owl:allValuesFrom sulo:Object
                            ] ;
            owl:disjointWith sulo:Process ;
            rdfs:comment "An object is an entity that maintains its identity through time, and does not have processes as its parts." ;
            rdfs:label "object"@en ;
            <http://www.w3.org/2004/02/skos/core#example> "a heart, the function to pump blood, the role of a doctor"@en .


###  https://w3id.org/sulo/Process
sulo:Process rdf:type owl:Class ;
             rdfs:subClassOf [ rdf:type owl:Restriction ;
                               owl:onProperty sulo:hasPart ;
                               owl:allValuesFrom sulo:Process
                             ] ;
             rdfs:comment "a process is a entity that unfolds in time, has temporal parts, and has objects that participate in the process."@en ;
             rdfs:label "process"@en ;
             <http://www.w3.org/2004/02/skos/core#example> "the process of diagnosing a problem condition, the process of walking down the street, the process of teaching a class"@en .


###  https://w3id.org/sulo/Quality
sulo:Quality rdf:type owl:Class ;
             rdfs:subClassOf sulo:Feature ;
             rdfs:comment "A quality is a feature that is intrinsically associated with its bearer (or its parts)."@en ,
                          "the color of an apple, the smoothness of skin, the brightness of a star, the speed of an event"@en ;
             rdfs:label "quality"@en .


###  https://w3id.org/sulo/Quantity
sulo:Quantity rdf:type owl:Class ;
              rdfs:subClassOf sulo:InformationObject ,
                              [ rdf:type owl:Restriction ;
                                owl:onProperty sulo:hasPart ;
                                owl:someValuesFrom sulo:Unit
                              ] ;
              rdfs:comment "A quantity is an informational object that contains the magnitude (and unit) of an attribute."@en ;
              rdfs:label "quantity"@en .


###  https://w3id.org/sulo/Role
sulo:Role rdf:type owl:Class ;
          rdfs:subClassOf sulo:Feature ;
          rdfs:comment "A role is a feature that describes a context-dependent behaviour."@en ;
          rdfs:label "role"@en ;
          <http://www.w3.org/2004/02/skos/core#example> "a teacher, a student, a catalyst, a substrate, a product, a patient"@en .


###  https://w3id.org/sulo/Set
sulo:Set rdf:type owl:Class ;
         rdfs:subClassOf sulo:InformationObject ,
                         [ rdf:type owl:Restriction ;
                           owl:onProperty sulo:hasMember ;
                           owl:allValuesFrom owl:Thing
                         ] ;
         rdfs:comment "A set is an information object for which there may be zero or more items."@en ;
         rdfs:label "set"@en ;
         <http://www.w3.org/2004/02/skos/core#example> "a stamp collection, a murder of crows, the arm of a clinical trial"@en .


###  https://w3id.org/sulo/SpatialObject
sulo:SpatialObject rdf:type owl:Class ;
                   rdfs:subClassOf sulo:Object ,
                                   [ rdf:type owl:Restriction ;
                                     owl:onProperty sulo:hasPart ;
                                     owl:allValuesFrom sulo:SpatialObject
                                   ] ;
                   rdfs:comment "A spatial object is an object that occupies space"@en ;
                   rdfs:label "spatial object"@en ;
                   <http://www.w3.org/2004/02/skos/core#example> "a mountain, a planet, a photon, the lining of the stomach, the cavity of the stomach, the space between mars and earth"@en .


###  https://w3id.org/sulo/StartTime
sulo:StartTime rdf:type owl:Class ;
               rdfs:subClassOf sulo:TimeInstant ;
               rdfs:comment "a start time is a time instant at the beginning of a process/time interval."@en ;
               rdfs:label "start time"@en .


###  https://w3id.org/sulo/Time
sulo:Time rdf:type owl:Class ;
          rdfs:subClassOf sulo:Quantity ;
          owl:disjointUnionOf ( sulo:Duration
                                sulo:TimeInstant
                                sulo:TimeInterval
                              ) ;
          rdfs:comment "time is a quantity pertaining to the duration of some interval of time or a particular instant of time (against some frame of reference)."@en ;
          rdfs:label "time"@en .


###  https://w3id.org/sulo/TimeInstant
sulo:TimeInstant rdf:type owl:Class ;
                 rdfs:subClassOf sulo:Time ,
                                 [ rdf:type owl:Restriction ;
                                   owl:onProperty sulo:hasValue ;
                                   owl:allValuesFrom [ rdf:type rdfs:Datatype ;
                                                       owl:unionOf ( xsd:date
                                                                     xsd:dateTime
                                                                     xsd:dateTimeStamp
                                                                   )
                                                     ]
                                 ] ;
                 rdfs:comment "time instant is a quantity of time a particular moment in time."@en ;
                 rdfs:label "time instant"@en .


###  https://w3id.org/sulo/TimeInterval
sulo:TimeInterval rdf:type owl:Class ;
                  rdfs:subClassOf sulo:Time ,
                                  [ rdf:type owl:Restriction ;
                                    owl:onProperty sulo:hasDirectPart ;
                                    owl:someValuesFrom sulo:EndTime
                                  ] ,
                                  [ rdf:type owl:Restriction ;
                                    owl:onProperty sulo:hasDirectPart ;
                                    owl:someValuesFrom sulo:StartTime
                                  ] ,
                                  [ rdf:type owl:Restriction ;
                                    owl:onProperty sulo:hasPart ;
                                    owl:someValuesFrom sulo:Duration
                                  ] ,
                                  [ rdf:type owl:Restriction ;
                                    owl:onProperty sulo:hasPart ;
                                    owl:someValuesFrom sulo:Unit
                                  ] ,
                                  [ rdf:type owl:Restriction ;
                                    owl:onProperty sulo:hasValue ;
                                    owl:allValuesFrom xsd:float
                                  ] ;
                  rdfs:comment "A time interval is a quantity for a continuous and bounded extent of time, characterized by a start time and an end time."@en ;
                  rdfs:label "time interval" .


###  https://w3id.org/sulo/Unit
sulo:Unit rdf:type owl:Class ;
          rdfs:subClassOf sulo:Quantity ;
          rdfs:comment "a unit is a standardized quantity that is used as a reference for a particular quantity."@en ;
          rdfs:label "unit" .


#################################################################
#    General axioms
#################################################################

[ rdf:type owl:AllDisjointClasses ;
  owl:members ( sulo:Capability
                sulo:InformationObject
                sulo:Quality
                sulo:Role
              )
] .


###  Generated by the OWL API (version 4.5.26.2023-07-17T20:34:13Z) https://github.com/owlcs/owlapi