Warning:
This wiki has been archived and is now read-only.

Procedure Process

From Spatial Data on the Web Working Group
Jump to: navigation, search

These Options relate to Issue-89 and have been proposed in relation to Action-265. Please note that the removal of the Process/Procedure class from SOSA as proposed in Issue-89 is not possible, as it would violate the goal that SOSA instances are valid SSN instances, since in SSN the object of the sensingMethodUsed or usedProcess relation would be an instance of a class, not a literal.

Implementation in SSN Old

ssn.ttl

###  http://purl.oclc.org/NET/ssnx/ssn#Process
ssn:Process rdf:type owl:Class ;
 rdfs:label "Process" ;
  rdfs:subClassOf DUL:Method ,
   [ rdf:type owl:Restriction ;
     owl:onProperty ssn:hasOutput ;
     owl:someValuesFrom ssn:Output
   ] ,
   [ rdf:type owl:Restriction ;
     owl:onProperty ssn:hasOutput ;
     owl:allValuesFrom ssn:Output
   ] ,
   [ rdf:type owl:Restriction ;
     owl:onProperty ssn:hasInput ;
     owl:allValuesFrom ssn:Input
   ] ;
  rdfs:seeAlso "http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Model#Process" ;
  rdfs:isDefinedBy "http://purl.oclc.org/NET/ssnx/ssn" ;
  skos:definition "A process has an output and possibly inputs and, for a composite process, describes the temporal and dataflow dependencies and relationships amongst its parts. [SSN XG]" ;
  dc:source "http://www.w3.org/2005/Incubator/ssn/" .

ssn:Process is a DUL:Method, which is "a Description that defines or uses concepts in order to guide carrying out actions aimed at a solution with respect to a problem." It is a subclass of DUL:SocialObject and thus, distinctively different from the actual real world process that is defined as Process in DUL. SSN chose to use the OML/O&M naming (which mixes Process and Procedures, using the relationship procedures to relate a Sensor to the actual Process), but this means, SSN uses the term Process differently to DUL and more importantly, it uses the word process where the word "workflow", "plan", "process description", "procedure" etc. are common practice in the workflow/process management domain, cf. http://www.workflowpatterns.com/documentation/documents/TC-1011_term_glossary_v3.pdf and in upper level ontologies.

Some clarification on the use of 'Process' in O&M from Simon Cox (talk) 01:56, 13 February 2017 (UTC)
O&M followed SensorML in using the term 'Process'. SensorML did not distinguish between reusable Process, and a Process instance (i.e. an event or activity). In O&M the scope of Process was narrowed to the potentially reusable system or alogrithm that was applied in the context of an observation event or activity. Unfortunately this pushed the O&M concept Process into disjoint semantic space compared to other uses of the term (e.g. BFO, workflow applications), so I strongly support dropping the name Process. Note also that classes OM_Process and SF_Process are both abstract classes with no attributes and almost no associations so are effectively stubs - so not much baggage. In the om-lite/sam-lite OWL implementations they have no specific properties or constraints.
Furthermore, in O&M the procedure (recipe) and sensor or sampling-equipement are conflated into a single class. In my proposed mapping from SOSA to O&M. I propose that OM_Process and SF_Process should actually be mapped to a union of (Sensor + SensingProcedure) and (SamplingDevice + SamplingProcedure) respectively, in order to match the semantics from O&M.

Therefore Procedure was introduced in SOSA as of Option 1.

Option 1: Rename Process to Procedure

Please note that only relevant axioms for this example are shown in the classes/properties below.

ssnx.ttl

oldssn:Process a owl:Class ;
  rdfs:label "Process"@en ;
  skos:definition """A process has an output and possibly inputs and, for a composite process,
                describes the temporal and dataflow dependencies and relationships amongst its parts. [SSN XG]"""@en ;
  owl:deprecated true ; 
  owl:equivalentClass sosa:Procedure ;
  rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> .
 
oldssn:sensingMethodUsed rdf:type owl:ObjectProperty ;
  rdfs:label "sensing method used"@en ;
  skos:definition """A (measurement) procedure is a detailed description of a measurement according to one or more
                measurement principles and to a given measurement method, based on a measurement model and
                including any calculation to obtain a measurement result [VIM 2.6]"""@en ;
  owl:deprecated true ; 
  owl:equivalentProperty sosa:usedProcedure ;
  rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> .

sosa.ttl

sosa:Procedure a rdfs:Class, owl:Class ;
  rdfs:label "Procedure"@en ;
  skos:definition "A procedure is a workflow, protocol, plan, algorithm, or computational method specifying
               how to make an observation or how to perform an actuation."@en ;
  rdfs:isDefinedBy sosa: .
  
sosa:usedProcedure a owl:ObjectProperty ;
 rdfs:label "used procedure"@en ;
 skos:definition """A relation to link to a re-usable procedure used in making an observation
               or actuation typically through a sensor or actuator."""@en ;
 schema:domainIncludes sosa:Actuation ;
 schema:domainIncludes sosa:Observation ;
 schema:rangeIncludes sosa:Procedure ;
 rdfs:isDefinedBy sosa: .

ssn.ttl

sosa:Procedure 
  rdfs:label "Procedure"@en ;
  rdfs:comment """A Procedure has an output and possibly inputs and, for a composite procedure,
               describes the temporal and dataflow dependencies and relationships amongst its parts."""@en ;
  rdfs:subClassOf ssn:DeploymentRelatedProcedure ,
    [ owl:onProperty ssn:deployedOnPlatform ; owl:allValuesFrom sosa:Platform ] ,
    [ owl:onProperty ssn:deployedSystem ; owl:allValuesFrom ssn:System ] .

Pros

  • The confusing use of the term Process is resolved as it aligns better with DUL and its mapping to Method (rather than the real world Process). It also untangles the mixing of Process and Procedure in O&M/OML and uses the terminology from the OML procedure relation for the actual method (class) Procedure.
  • It allows the use of usedProcedure to be used for Actuation and, if included, for Sampling too, rather than introducing a separate relation in addition to sensingMethodUsed.

Cons

  • Other classes and properties in SSN would need to be changed, i.e. ssn:DeploymentRelatedProcess and it's relation ssn:deploymentProcessPart. Since they are not used in the wild (https://w3c.github.io/sdw/ssn-usage/), they could be deprecated rather than renamed.
  • Looking at the definition, oldssn:Process seems to be more general than sosa:Procedure
  • oldssn:Process does not cover Sampling
  • Looking at the definition, oldssn:sensingMethodUsed seems to be more specific than sosa:usedProcedure

Option 2: Use Process in SOSA

ssnx.ttl

oldssn:Process a owl:Class ;
  rdfs:label "Process"@en ;
  skos:definition """A process has an output and possibly inputs and, for a composite process,
                describes the temporal and dataflow dependencies and relationships amongst its parts. [SSN XG]"""@en ;
  owl:deprecated true ; 
  owl:equivalentClass sosa:Process ;
  rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> .

oldssn:sensingMethodUsed a owl:ObjectProperty ;
 rdfs:label "sensing method used"@en ;
 skos:definition """A (measurement) procedure is a detailed description of a measurement according to one or more
               measurement principles and to a given measurement method, based on a measurement model and
               including any calculation to obtain a measurement result [VIM 2.6]"""@en ;
 owl:deprecated true ; 
 owl:equivalentProperty sosa:sensingMethodUsed ;
 rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> .

sosa.ttl

sosa:Process a rdfs:Class, owl:Class ;
 skos:definition """A process is a workflow, protocol, plan, algorithm, or computational method specifying
               how to make an observation or how to perform an actuation."""@en .

sosa:sensingMethodUsed a owl:ObjectProperty ;
 rdfs:label ""sensing method used"@en ;
 skos:definition """A relation to link to a re-usable process used in making an observation
               typically through a sensor."""@en ;
 schema:domainIncludes sosa:Observation ;
 schema:rangeIncludes sosa:Procedure ;
 rdfs:isDefinedBy sosa: .

sosa:actuationMethodUsed a owl:ObjectProperty ;
 rdfs:label "actuation method used"@en .
 skos:definition ""A relation to link to a re-usable process used in making an actuation
               typically through an actuator."@en ;
 schema:domainIncludes sosa:Actuation ;
 schema:rangeIncludes sosa:Procedure ;
 rdfs:isDefinedBy sosa: .

ssn.ttl

sosa:Process a owl:Class ;
  rdfs:label "Process"@en ;
  rdfs:comment """A Process has an output and possibly inputs and, for a composite process,
               describes the temporal and dataflow dependencies and relationships amongst its parts." ;
  rdfs:subClassOf ssn:DeploymentRelatedProcess ,
    [ owl:onProperty ssn:deployedOnPlatform ; owl:allValuesFrom sosa:Platform ] ,
    [ owl:onProperty ssn:deployedSystem ; owl:allValuesFrom ssn:System ] ;

Pros

  • No change to SSN is required.

Cons

  • The confusing naming in SOSA/SSN is not resolved and Process is used in SOSA which is an overloaded term in a programming context on the Web too. The confusion with Process in DUL remains.
  • Potentially confusing with the notion of Process in SensorML ("4.25. Process: An operation that takes one or more inputs, and based on a set of parameters, and a methodology generates one or more outputs.")
  • A separate relation has to be introduced for Actuation and, if included, for Sampling.

Option 3: Similar to Option 1 but different alignment

ssnx.ttl

oldssn:Process a owl:Class ;
  rdfs:label "Process"@en ;
  skos:definition """A process has an output and possibly inputs and, for a composite process,
                describes the temporal and dataflow dependencies and relationships amongst its parts. [SSN XG]"""@en ;
  owl:deprecated true ; 
  rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> .
 
 sosa:Procedure rdfs:subClassOf oldssn:Process .
   
oldssn:sensingMethodUsed rdf:type owl:ObjectProperty ;
  rdfs:label "sensing method used"@en ;
  skos:definition """A (measurement) procedure is a detailed description of a measurement according to one or more
                measurement principles and to a given measurement method, based on a measurement model and
                including any calculation to obtain a measurement result [VIM 2.6]"""@en ;
  owl:deprecated true ; 
  rdfs:subPropertyOf sosa:usedProcedure ;
  rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> .

sosa.ttl

same as in option 1

ssn.ttl

same as in option 1

Pros

  • The confusing use of the term Process is resolved as it aligns better with DUL and its mapping to Method (rather than the real world Process). It also untangles the mixing of Process and Procedure in O&M/OML and uses the terminology from the OML procedure relation for the actual method (class) Procedure.
  • It allows the use of usedProcedure to be used for Actuation and, if included, for Sampling too, rather than introducing a separate relation in addition to sensingMethodUsed.
  • given the SSN semantics, `SELECT * WHERE { ?x sosa:usedProcedure ?y } ` does return the instances that were linked by `oldssn:sensingMethodUsed`

Cons

  • Other classes and properties in SSN would need to be changed, i.e. ssn:DeploymentRelatedProcess and it's relation ssn:deploymentProcessPart. Since they are not used in the wild (https://w3c.github.io/sdw/ssn-usage/), they could be deprecated rather than renamed.
  • oldssn:Process does not cover Sampling
  • given the SSN semantics, `SELECT * WHERE { ?x a sosa:Procedure } ` does not return the instances of oldssn:Process

Option 4: Similar to 1, but definitions a bit generalized

ssnx.ttl

oldssn:Process a owl:Class ;
  rdfs:label "Process"@en ;
  skos:definition """A process has an output and possibly inputs and, for a composite process,
                describes the temporal and dataflow dependencies and relationships amongst its parts. [SSN XG]"""@en ;
  owl:deprecated true ; 
  owl:equivalentClass sosa:Procedure ;
  rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> .
 
oldssn:sensingMethodUsed rdf:type owl:ObjectProperty ;
  rdfs:label "sensing method used"@en ;
  skos:definition """A (measurement) procedure is a detailed description of a measurement according to one or more
                measurement principles and to a given measurement method, based on a measurement model and
                including any calculation to obtain a measurement result [VIM 2.6]"""@en ;
  owl:deprecated true ; 
  owl:equivalentProperty sosa:usedProcedure ;
  rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> .

sosa.ttl

sosa:Procedure a rdfs:Class, owl:Class ;
  rdfs:label "Procedure"@en ;
  skos:definition "A procedure is a workflow, protocol, plan, algorithm, or computational method specifying
               how to make an observation, perform an actuation, perform sampling, etc."@en ;
  rdfs:isDefinedBy sosa: .
  
sosa:usedProcedure a owl:ObjectProperty ;
 rdfs:label "used procedure"@en ;
 skos:definition """A relation to link to a re-usable procedure used in making an observation, actuation, sampling, etc.
              typically through a sensor, actuator, etc."""@en ;
 schema:domainIncludes sosa:Actuation ;
 schema:domainIncludes sosa:Observation ;
 schema:rangeIncludes sosa:Procedure ;
 rdfs:isDefinedBy sosa: .

ssn.ttl

sosa:Procedure 
  rdfs:label "Procedure"@en ;
  rdfs:subClassOf ssn:DeploymentRelatedProcedure ,
    [ owl:onProperty ssn:deployedOnPlatform ; owl:allValuesFrom sosa:Platform ] ,
    [ owl:onProperty ssn:deployedSystem ; owl:allValuesFrom ssn:System ] .

Pros

  • The confusing use of the term Process is resolved as it aligns better with DUL and its mapping to Method (rather than the real world Process). It also untangles the mixing of Process and Procedure in O&M/OML and uses the terminology from the OML procedure relation for the actual method (class) Procedure.
  • It allows the use of usedProcedure to be used for Actuation and for Sampling too, rather than introducing a separate relation in addition to sensingMethodUsed.
  • the alignemnt does not contradicts the definition
  • given the SSN semantics, `SELECT * WHERE { ?x sosa:usedProcedure ?y } ` does return the instances that were linked by `oldssn:sensingMethodUsed`
  • given the SSN semantics, `SELECT * WHERE { ?x a sosa:Procedure } ` does return the instances of oldssn:Process

Cons

  • Other classes and properties in SSN would need to be changed, i.e. ssn:DeploymentRelatedProcess and it's relation ssn:deploymentProcessPart. Since they are not used in the wild (https://w3c.github.io/sdw/ssn-usage/), they could be deprecated rather than renamed.