Proportional overlap

We will be creating Linksets that indicate how Features (GeoSPARQL Feature class objects) in one dataset are spatially related to Features in another. For this we need to express proportionality of polygonal overlap.

We think that if we record overlap objects as Features and record their area (see previous discussion on this list about area) while retaining the areas of the overlapping polygons, we will have all we need. We could, of course, store the Geometry of each overlap feature if needed. 

We suggest the following axiomatic extensions to GeoSPARQL to allow us to do this:

# GeoSPARQL doesn’t declare inverse properties
geo:sfContains owl:inverseOf geo:sf:Within .

# if ex:A geo:sfContains ex:X and ex:B geo:sfContains :ex:X, 
# using above we can interpret the second triple as ex:X geo:sfWithin :B 
# then ex:A geo:sf:Overlaps ex:B with proportionally 
# being contained in the relative areas of A, B & X
sp:transitiveSfOverlap 
  rdfs:subPropertyOf geo:sfOverlap ;
  rdfs:label "transitive Simple Features overlaps" ;
  rdfs:comment "The domain object overlaps (geo:sfOverlap) the range object by virtue of both objects containing (geo:sfContains) an intermediary object." ;
  rdfs:domain :SpatialObject ;  # as inherited
  rdfs:range :SpatialObject ;  # as inherited
  owl:propertyChainAxiom ( 
    geo:sfContains
    geo:sfWithin
  ) .  

Area recorded simply like this:

ex:A
    a geo:Feature ;
    db:area [
      qudt:numericValue "200"^^xsd:decimal ;
      qudt:unit         qudt:SquareMeter .
    ] ;
    geo:sfContains _:1 .

_:1  # the overlap Feature
    a geo:Feature ;
    db:area [
      qudt:numericValue "40"^^xsd:decimal ;
      qudt:unit         qudt:SquareMeter .
    ] .

ex:B 
    a geo:Feature ;
    db:area [
      qudt:numericValue "400"^^xsd:decimal ;
      qudt:unit         qudt:SquareMeter .
    ] ;
    geo:sfContains _:1 .

So, using the above, 20% of ex:A overlaps 10% of ex:B.

We will add these axioms, after testing, to our extension of GeoSPARQL and will interested to see them appear in a GeoSPARQL v2.

Thoughts, suggestions?

Nick

Received on Monday, 7 January 2019 06:15:12 UTC