opengeospatial / ogc-geosparql

Public Repository for the OGC GeoSPARQL Standards Working Group
77 stars 20 forks source link

Add inverse of `hasGeometry` #4

Closed dr-shorthair closed 3 years ago

dr-shorthair commented 4 years ago

Pointer from a geometry to the feature(s) that it is the geometry for - e.g. from GEOX

Detail from opengeospatial/geosemantics-dwg#73

akuckartz commented 4 years ago

Which usecases exist for inverses ?

dr-shorthair commented 4 years ago

We have a Geometry Data Store which is managed separate from the Feature Store. The inverse property allows the source of the geometry in the store to be explicit.

I know that some people consider inverse-properties to be an anti-pattern, because of synchronisation risks. And it is certainly true that the Geometry Store could just have the direct triples likeFeature99 geo:hasGeometry Geometry88 . stored alongside Geometry88 a geo:Geometry .. But in this case it is the existence of the two stores that creates the risk, not the existence of the inverse predicate.

akuckartz commented 4 years ago

@dr-shorthair

We have a Geometry Data Store which is managed separate from the Feature Store.

That is an interesting and probably not unusual aspect of such architectures.

And it is certainly true that the Geometry Store could just have the direct triples like Feature99 geo:hasGeometry Geometry88 .

So it is as easy to not use the inverse triples? Or do they have any significant advantages?

mathib commented 4 years ago

@akuckartz : you mean not using owl:inverseOf, but a custom property (ex:inverseProperyOf) without reasoning consequences?

akuckartz commented 4 years ago

@mathib No, I do not understand why isGeometryOf is needed when triples like Feature99 geo:hasGeometry Geometry88 can be used (instead of Geometry88 geo:isGeometryOf geo:Feature99).

HolgerKnublauch commented 4 years ago

Please don't add inverse properties. They create unnecessary complexity.

jabhay commented 4 years ago

MoSCoW poll created

nicholascar commented 3 years ago

Closing this issue due to discussions with @dr-shorthair as he and I see this property as superfluous.