@prefix : <http://w3id.org/CEON/ontology/processODP/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix odp: <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

dcterms:contributor a owl:AnnotationProperty .

dcterms:created a owl:AnnotationProperty .

dcterms:creator a owl:AnnotationProperty .

dcterms:description a owl:AnnotationProperty .

dcterms:issued a owl:AnnotationProperty .

dcterms:license a owl:AnnotationProperty .

dcterms:publisher a owl:AnnotationProperty .

dcterms:title a owl:AnnotationProperty .

vann:preferredNamespacePrefix a owl:AnnotationProperty .

vann:preferredNamespaceUri a owl:AnnotationProperty .

: a owl:Ontology ;
    dcterms:contributor "Eva Blomqvist",
        "Mikael Lindecrantz",
        "Robin Keskisärkkä" ;
    dcterms:created "2025-05-20"^^xsd:date ;
    dcterms:creator "Huanyu Li" ;
    dcterms:description "A core ODP of the CEON ontology network, defining aspects of the process concept." ;
    dcterms:issued "2025-06-30"^^xsd:date ;
    dcterms:license "https://creativecommons.org/licenses/by/4.0/" ;
    dcterms:publisher "Onto-DESIDE" ;
    dcterms:title "Circular Economy Ontology Network (CEON) - Process ODP" ;
    vann:preferredNamespacePrefix "ceon-processODP" ;
    vann:preferredNamespaceUri "http://w3id.org/CEON/ontology/processODP/" ;
    odp:coversRequirements "Covers the following requirements from Onto-DESIDE D3.1: CVN-Process-3,4,5, C3-1, C4-2, C4-5, C4-7, C4-9, C13-2, E2-6",
        "Covers the following requirements from Onto-DESIDE D3.2: CE1-1, CE3-5, CE7-4, CE7-5, CE8-2, CE10-7, CE12-1, C3-1, C4-2, C4-5, C4-7, C4-9, C13-2, E1-9, E2-6, E3-7, T10-1." ;
    rdfs:comment "A core ODP of the CEON ontology network, defining aspects of the process concept." ;
    rdfs:seeAlso <https://github.com/LiUSemWeb/CEON> ;
    owl:priorVersion 0.4 ;
    owl:versionIRI <http://w3id.org/CEON/ontology/processODP/0.5/> ;
    owl:versionInfo 0.5 .

:duringTime a owl:ObjectProperty ;
    rdfs:label "during time" ;
    rdfs:comment "The time interval during which something, e.g. a process or event, takes place." ;
    rdfs:range :TimeInterval .

:endTime a owl:DatatypeProperty ;
    rdfs:label "end time" ;
    rdfs:comment "Represents the end time of a time interval." ;
    rdfs:domain :TimeInterval ;
    rdfs:range xsd:dateTime .

:occursAtLocation a owl:ObjectProperty ;
    rdfs:label "occurs at location" ;
    rdfs:comment "The location in which something (e.g. an event or process) takes place, e.g. the factory location where something is manufactured." ;
    rdfs:range <http://w3id.org/CEON/ontology/location/Location> ;
    rdfs:subPropertyOf :isSettingFor .

:startTime a owl:DatatypeProperty ;
    rdfs:label "start time" ;
    rdfs:comment "Represents the start time of a time interval." ;
    rdfs:domain :TimeInterval ;
    rdfs:range xsd:dateTime .

odp:coversRequirements a owl:AnnotationProperty .

xsd:date a rdfs:Datatype .

<http://w3id.org/CEON/ontology/location/Location> a owl:Class .

:Situation a owl:Class ;
    rdfs:label "Situation" ;
    rdfs:comment "A situation that may involve some resources and actors, i.e. a state of affairs at a certain point in time." ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:onProperty :isSettingFor ;
            owl:someValuesFrom owl:Thing ] .

:Event a owl:Class ;
    rdfs:label "Event" ;
    rdfs:comment "Something that happens within a given context or (short) timeframe." ;
    rdfs:subClassOf [ a owl:Class ;
            owl:intersectionOf ( [ a owl:Restriction ;
                        owl:onProperty :hasInput ;
                        owl:someValuesFrom owl:Thing ] [ a owl:Restriction ;
                        owl:onProperty :hasOutput ;
                        owl:someValuesFrom owl:Thing ] ) ],
        [ a owl:Restriction ;
            owl:allValuesFrom :Event ;
            owl:onProperty :hasPart ] .

:hasInput a owl:ObjectProperty ;
    rdfs:label "has input" ;
    rdfs:comment "The inputs to a process or event." ;
    rdfs:domain :Process .

:hasOutput a owl:ObjectProperty ;
    rdfs:label "has output" ;
    rdfs:comment "The output of a process or event." ;
    rdfs:domain :Process .

:hasPart a owl:ObjectProperty,
        owl:TransitiveProperty ;
    rdfs:label "has part" ;
    rdfs:comment "A process or event can consist of several parts, which are sub-processes (e.g. steps) or events." .

:isSettingFor a owl:ObjectProperty ;
    rdfs:label "is the setting for" ;
    rdfs:comment "The thing(s) that this situation is the setting for, e.g. a resource that is in a certain state." ;
    rdfs:domain :Situation .

:Process a owl:Class ;
    rdfs:label "Process" ;
    rdfs:comment "Something that takes place over a (longer) period of time and changes some state of affairs."@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom [ a owl:Class ;
                    owl:unionOf ( :Event :Process ) ] ;
            owl:onProperty :hasPart ],
        [ a owl:Class ;
            owl:intersectionOf ( [ a owl:Restriction ;
                        owl:onProperty :hasInput ;
                        owl:someValuesFrom owl:Thing ] [ a owl:Restriction ;
                        owl:onProperty :hasOutput ;
                        owl:someValuesFrom owl:Thing ] ) ] .

:TimeInterval a owl:Class ;
    rdfs:label "Time Interval" ;
    rdfs:comment "A temporal entity has a starting time and an ending time." .

