Generic vs Specific Modeling

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

Some application that uses generic properties modeling will not be interoperable with another that uses foi-specific modeling of properties. We should make this clear somewhere, and potentially explain some of the pro and cons of each way to model things. An example that shows the options on how to model FOI differently is given at: https://www.w3.org/2015/spatial/wiki/GageHeightExample

Generic vs Specific Properties

If we assume that it is tolerable to have both ex:Temperature and <myRoomTemperature> as instances of sosa:ObservableProperty, then:

1. graph (a) contradicts existing axiom (b):

a. <obs> sosa:observedProperty ex:Temperature , <myRoomTemperature> .
b. sosa:Observation subClassOf sosa:observedProperty EXACTLY 1 

Generic vs Specific Sensors, Actuators, Samplers

if we assume that it is tolerable to have both ex:GalaxyS4 and <myGalaxyS4> as instances of sosa:Sensor, then:

1. graph (a) contradicts existing axiom (b):

a. <obs> sosa:madeBySensor ex:GalaxyS4 , <myGalaxyS4> .
b. sosa:Observation subClassOf sosa:madeBySensor EXACTLY 1 

2. graph (a) contradicts existing axiom (b):

a. <act> sosa:madeByActuator ex:GalaxyS4 , <myGalaxyS4> .
b. sosa:Actuation subClassOf sosa:madeByActuator EXACTLY 1 


if we assume that it is tolerable to have both ex:Drill and <myDrill> as instances of sosa:Sampler, then:

1. graph (a) contradicts existing axiom (b):

a. <obs> sosa:madeBySampler ex:Drill , <myDrill> .
b. sosa:Sampling subClassOf sosa:madeBySampler EXACTLY 1 

2. graph (a) contradicts existing axiom (b): a. <act> sosa:madeByActuator ex:GalaxyS4 , <myGalaxyS4> . b. sosa:Actuation subClassOf sosa:madeByActuator EXACTLY 1

Pros and Cons

  • It is easier to describe the speed of a specific car if there is an instance somewhere that represents that.
  • It is easier to process SOSA if there is no subclassing.
  • It is easier to describe the capabilities at the level of ex:GalaxyS4, although one do it in a perfect OWL-way as follows:
ex:GalaxyS4 a owl:Class ; 
 rdfs:subClassOf sosa:Sensor , ssn:System ;
 rdfs:subClassOf [ 
   owl:onProperty ssn-system:hasOperatingRange ;
   owl:hasValue <MyGalaxyS4#TemperatureOperatingRange> ] ;
 rdfs:subClassOf [ 
   owl:onProperty ssn-system:hasOperatingRange ;
   owl:hasValue <MyGalaxyS4#HumidityOperatingRange> ] .

<MyGalaxyS4> a ex:GalaxyS4, sosa:Sensor, ssn:System .