- From: Joshua Lieberman <jlieberman@tumblingwalls.com>
- Date: Wed, 18 May 2016 08:02:01 -0400
- To: "Little, Chris" <chris.little@metoffice.gov.uk>
- Cc: Andrea Perego <andrea.perego@jrc.ec.europa.eu>, Linda van den Brink <l.vandenbrink@geonovum.nl>, Rob Atkinson <rob@metalinkage.com.au>, Frans Knibbe <frans.knibbe@geodan.nl>, SDW WG Public List <public-sdw-wg@w3.org>, Andreas Harth <harth@kit.edu>
Best to consider this an alternative "asSVG" serialization, I would think. --Josh Sent from my iPhone > On May 18, 2016, at 7:43 AM, Little, Chris <chris.little@metoffice.gov.uk> wrote: > > Andrea, Linda, and others, > > At the risk of complicating matters, is it worth testing this approach by considering another existing W3C language for describing polygons? > > SVG (versions 1, 1.1, 1.2, 2) currently has a well implemented mini-language for paths, which also supports turtle-like graphics, and various short cuts when there are lots of coordinates. There is also a polygon syntax, but this is more restrictive in that curved lines (not 'straight') not allowed. > > Chris > > -----Original Message----- > From: Andrea Perego [mailto:andrea.perego@jrc.ec.europa.eu] > Sent: Wednesday, May 18, 2016 11:29 AM > To: Linda van den Brink > Cc: Rob Atkinson; Joshua Lieberman; Frans Knibbe; SDW WG Public List; Andreas Harth > Subject: Re: Good practice for publishing geometry of a thing as different geometry types? > > Hi, Linda. > > Please see my comments inline. > >> On 18/05/2016 9:50, Linda van den Brink wrote: >> Hi all, >> >> Interesting thread this – we should indeed somehow turn this into >> content for the BP. >> >> I think the consensus is at least that >> - The geometry of a thing is a model of its real world shape. >> - Geometries can be expressed in different ways. >> >> And perhaps >> - Use a separate geometry for each way you want to express it >> (although I don’t know if you all agree) >> >> We should describe the different levels of choice, i.e. as Josh described: >> >> Serialization of the geometry, i.e. WKT or GML (or …) > > Just to note again the approach used in GeoDCAT-AP for this: > > https://lists.w3.org/Archives/Public/public-sdw-wg/2015Jun/0167.html > > Basically, this is specified by using multiple instances of locn:geometry, with different literals: > > dct:Location locn:geometry > "POLYGON((-180 90,180 90,180 -90,-180 -90,-180 90))"^^gsp:wktLiteral , > "<gml:Envelope > srsName=\"http://www.opengis.net/def/crs/OGC/1.3/CRS84\"><gml:lowerCorner>-180 > -90</gml:lowerCorner><gml:upperCorner>180 > 90</gml:upperCorner></gml:Envelope>"^^gsp:gmlLiteral , > > "{\"type\":\"Polygon\",\"crs\":{\"type\":\"name\",\"properties\":{\"name\":\"urn:ogc:def:crs:OGC:1.3:CRS84\"}},\"coordinates\":[[[-180,90],[180,90],[180,-90],[-180,-90],[-180,90]]]}"^^ns0:json > . > > Of course, this doesn't solve the issue of whether these are representations of the same geometry or of different geometries, but the GeoDCAT-AP WG saw this as a practical solution to provide users alternative geometry encodings. > >> CRS (I like Rob’s comparison with language choice) >> >> Realization on different scales/generalization levels >> >> Kind of model (boundary, centroid, …) >> >> And possible approaches for each of these. To which extend can content >> negotiation be used? > > There's existing work we can refer to for this, especially in relation to the use of HTTP URIs for geometries. E.g.: > > > 1. Ian Davis's work (dating back to 2003): > > http://vocab.org/placetime/2003/05/geopoint-wgs84-20030516 > > The service is not maintained, as far as I can see, but a (no longer > working) example is: > > http://placetime.com/geopoint/wgs84/X-126.817Y46.183 > > > 2. Ordnance Survey - e.g.: > > http://data.ordnancesurvey.co.uk/id/geometry/37256-10 > > Geometries can be obtained in HTML, RDF/XML, Turtle, JSON. But I'm not > sure whether HTTP conneg is supported here. In case, John Goodwin should > be able to provide more details. > > > 3. The work done in the framework of the GADM project, mentioned by > Andreas (cc'ed) in Amersfoort: > > http://gadm.geovocab.org/ > > > 4. I have a conflict of interests here, but a few years ago I've also > set up an experimental API for geometry URIs, able to serve geometries, > in arbitrary CRSs, in different encodings / representations via conneg. > Discussing with Andreas, the approach seems to be in line with the one > used in GADM. > > There's not yet an online demo (but should be available soon). In any > case, source code and documentation is on GH: > > https://github.com/andrea-perego/geoiri/wiki > > The supported formats are HTML, RDF (different serialisations), WKT, > GML, KML, GeoJSON. > > An example of the RDF/XML output is here: > > https://github.com/andrea-perego/geoiri/blob/master/examples/point(0_0).rdf > > As you will be able to see, the different encodings / representations > are modelled by linking them from the geometry with dct:hasFormat, > whereas alternative RDF geometry representations are related with > owl:sameAs: > > <http://some.site/geoiri/id/geometry/4326/point(0_0)> > foaf:primaryTopicOf > <http://some.site/geoiri/doc/geometry/4326/point(0_0)> ; > rdfs:label "Geometry (WKT): POINT(0 0) - EPSG:4326 (WGS 84)"@en ; > owl:sameAs > <http://some.site/geoiri/id/geometry/4326/point(0_0)#geosparql> ; > owl:sameAs <http://some.site/geoiri/id/geometry/4326/point(0_0)#wgs84> ; > owl:sameAs > <http://some.site/geoiri/id/geometry/4326/point(0_0)#schema.org> ; > owl:sameAs <http://placetime.com/geopoint/wgs84/X0Y0> ; > owl:sameAs <http://geohash.org/s0000000000000000000> ; > owl:sameAs <geo:0,0;u=0;crs=wgs84> . > > > Cheers, > > Andrea > > >> >> >> >> Linda >> >> >> >> *Van:*Rob Atkinson [mailto:rob@metalinkage.com.au] >> *Verzonden:* vrijdag 13 mei 2016 02:44 >> *Aan:* Joshua Lieberman; Frans Knibbe >> *CC:* SDW WG Public List >> *Onderwerp:* Re: Good practice for publishing geometry of a thing as >> different geometry types? >> >> >> >> Lots of overlapping concerns here - but one unified way of looking at >> this is to look at the OpenWorld approach - if we assume an object can >> have properties we dont know about (yet) then we have a basic model for >> an object >> >> - object has an identifier and is a member of a set (a registration >> viewpoint) >> >> We can then provide an addition view of that object, with a "named >> collection of properties" using the Linked Data API semantics - but >> basically what we do every time we define a FeatureType. so for >> "spatial" features we have >> >> - object isa FeatureType has p1,p2,p3 etc >> >> >> >> This view can then be accessed in multiple serialisations (Content-type >> negotiation) and potentially also language negotiation. >> >> >> >> So in principle one identifier maps to multiple resources. An we accept >> that if we work on the web. >> >> >> >> but there is no reason to limit the number of views to 1 - and if we >> accept the Web architecture that would be an inconsistent thing to do >> anyway. >> >> >> >> So - you can have >> >> >> >> FeatureTypes with multiple geometry properties >> >> >> >> AND/OR >> >> >> >> Multiple FeatureTypes (e.g. simple features) bound to different geometry >> models >> >> >> >> AND/OR >> >> >> >> content negotiation to access different encodings of a feature ( perhaps >> CRS choice is analagous to language choice for text?) >> >> >> >> but you do probably end up with an architectural requirement to >> advertise what views are available... :-) >> >> >> >> In summary, I recommend publishing multiple encodings using different >> information models, but consistent under an OpenWorld interpretation - >> i.e. you should not have different models using the same property >> predicate with different values unless it is truly a multi-valued >> property and these are separate valid values. My suspicion is that >> owl:sameAs ought to apply across instances using different views >> (multiple "information resources" c.f. http-range-14) - as in you can >> safely mix the assertions about the object from multiple views. This >> last point needs some serious thinking, but I believe the fundamental >> pattern of supporting multiple views is an inevitable consequence of the >> Web architecture and the potential for multiple clients. >> >> >> >> Cheers >> >> Rob Atkinson >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> On Wed, 11 May 2016 at 00:44 Joshua Lieberman >> <jlieberman@tumblingwalls.com <mailto:jlieberman@tumblingwalls.com>> wrote: >> >> Franz, >> >> >> >> There are certainly many shades of difference that can distinguish >> how models are constructed and expressed. Serialization may be the >> equivalent (in a literal) of the difference between RDF/XML and >> Turtle. It’s complicated for CRS since WKT requires any CRS >> different from EPSG4326 to be explicitly included in the text >> string, although in principle it’s the same geometry. The next step >> up is probably realization of a geometry for different scales / >> levels of generalization. These are all the same conceptual geometry >> but with a different realization in coordinate positions. If we go >> to the difference between a feature boundary and a feature centroid, >> that’s more clearly a different geometric model of the feature. It’s >> less clear that there is a difference in geometry type between a >> road centerline and a road marginal line, although it’s clearly a >> different property of the feature. >> >> >> >> From a practical viewpoint of geometries living independently on the >> Web that can be both discovered and linked to features, it makes >> sense for these properties (CRS, geometric object type, generality) >> to be top level functional geometry properties, and there should be >> a set of feature geometry properties (envelope, centroid, boundary, >> hull, buffer are in 19107) so that the appropriate property can be >> chosen for a given application and people don’t all end up in Kansas >> looking for something in the USA because the centroid property is >> not identified as such. >> >> >> >> Whether alternate serializations should be allowed in one geometry >> object is less clear. It is ambiguous in 19107, not allowed in GML, >> generally not in Simple Features, and not forbidden in GeoSPARQL. My >> sense is that serializations themselves are easily transformable and >> multiple coordinate strings are too useful for composite geometries >> and other purposes to risk confusion. GeoJSON is an issue here >> because it requires one serialization and one CRS to be present >> whether or not another one is desirable. There doesn’t seem to be an >> prohibition against multiple geometry elements per feature, though, >> so it makes sense to put different serializations into different >> GeoJSON geometry objects as an extension to support JSON-LD / RDF >> (not recognized by the GeoJSON specification, of course). >> >> >> >> Josh >> >> >> >> >> >> On May 10, 2016, at 6:09 AM, Frans Knibbe >> <frans.knibbe@geodan.nl <mailto:frans.knibbe@geodan.nl>> wrote: >> >> >> >> Hello Josh, all, >> >> >> >> Sorry for misunderstanding what you meant. But it is good to >> share thoughts about when and how to split geometry data in >> different objects. Probably things like this deserve a place in >> the BP document. >> >> >> >> You mentioned different serializations. That makes me wonder >> what a serialization is. If I change the CRS or the type of a >> geometry, I get a new geometry. That more or less follows from >> the definition that a geometry is a model of a shape. If I use a >> different CRS or different geometry type, I use a different >> model. In other words, if the actual sequence of numbers in the >> coordinates changes, we have a new geometry. So is that sequence >> of numbers the serialization? I could use the same numbers in a >> WKT string or in a GML object. Isn't that also serialization? >> Probably we need two terms, one for different sequences of >> coordinates, and one for packaging the same sequence of >> coordinates in different ways. In notice that the GeoSPARQL >> standard talks of WKT and GML as different serializations. >> >> >> >> To me it would make sense to let the same coordinate sequence in >> different data types be part of the same geometry - they are >> different expressions of the same model. For example: >> >> >> >> ex:geom6789 >> >> a geom:Geometry, geom:Point ; >> >> geom:crs <http://www.opengis.net/def/crs/EPSG/0/28992> ; >> >> geosparql:asWKT "<http://www.opengis.net/def/crs/EPSG/0/28992> >> POINT(131216.968 461378.333)"^^geosparql:wktLiteral ; >> >> geosparql:asGML "<gml:Point >> srsName="EPSG:28992"><gml:coordinates>131216.968,461378.333</gml:coordinates></gml:Point>"^^geosparql:gmlLiteral >> . >> >> >> >> Regards, >> >> Frans >> >> >> >> >> >> >> >> >> >> 2016-05-09 18:05 GMT+02:00 Joshua Lieberman >> <jlieberman@tumblingwalls.com >> <mailto:jlieberman@tumblingwalls.com>>: >> >> Yes, of course a geometry is a model. For that matter, a feature >> is a model, but one that directly references the “real world". >> The question was really whether multiple serializations can be >> included in a geometry, e.g. for different scales or CRS’s. It >> makes sense to me, but upon investigation, it is just not >> something that is practiced, although there is no present axiom >> in GeoSPARQL that prevents it. It doesn’t seem to be an explicit >> part of either 19107 or GML, and the general semantic is that >> multiple positions represent a composite serialization of a >> geometry, not alternate ones. >> >> >> >> So we should probably stick with each unique combination of role >> (centroid, etc. are actually defined terms in 19107), scale, >> CRS, interpolation method, etc. as a distinct geometry. >> >> >> >> Backlinks from geometry to feature are problematic. If >> geometries are to be stored separately, it’s probably to share them. >> >> >> >> Josh >> >> >> >> >> >> On May 9, 2016, at 9:50 AM, Bill Roberts <bill@swirrl.com >> <mailto:bill@swirrl.com>> wrote: >> >> >> >> But I suspect at the heart of your comments is the >> question what a geometry really is. There are at least >> two possibledefinitions: >> A) The geometry of a thing is its real world shape. >> B) The geometry of a thing is a model of its real world >> shape. >> >> >> >> I agree: in practice, (B) is always the case. No >> representation of geometry will be completely accurate, and >> different levels of approximation (different models) are >> appropriate in different contexts. >> >> >> >> >> >> >> >> On 9 May 2016 at 15:35, Frans Knibbe <frans.knibbe@geodan.nl >> <mailto:frans.knibbe@geodan.nl>> wrote: >> >> Hello Josh, >> >> >> >> It could be possible to add more context to the geometries, >> to express that they are a footprint or a centroid for >> instance. But I think that extra context will not be crucial >> for many use cases. Especially since there is no standard >> vocabulary for that extra meaning yet (although the >> vocabulary I try to use does have a centroid >> property: http://data.ign.fr/def/geometrie#centroid). >> >> >> >> But I suspect at the heart of your comments is the question >> what a geometry really is. There are at least two possible >> definitions: >> >> A) The geometry of a thing is its real world shape. >> >> B) The geometry of a thing is a model of its real world shape. >> >> >> >> I think I silently use definition B. But if others assume >> definition A that could lead to problems. I am ashamed to >> have to admit that I don't know the official OGC party line >> in this case. But it would be great if an updated GeoSPARQL >> standard could have a direct link to a core definition of >> geometry. >> >> >> >> As for your last example (two coordinate strings that differ >> in their CRS) in my line of thinking (adherent of definition >> B) that would be modelled as separate geometries. An >> extended example: >> >> >> >> ex:location1234 >> >> a dcterms:Location ; >> >> locn:geometry ex:geom1234_1, ex:geom1234_2, >> ex:geom1234_3, ex_geom1234_4 ; >> >> >> >> ex:geom1234_1 >> >> a geom:Geometry, locn:Geometry, geom:Point ; >> >> locn:location ex:location123 ; >> >> geom:crs <http://www >> <http://www/>.opengis.net/def/crs/EPSG/0/28992> ; >> >> geosparql:asWKT "<http://www >> <http://www/>.opengis.net/def/crs/EPSG/0/28992> >> POINT(...)"^^geosparql:wktLiteral . >> >> >> >> ex:geom1234_2 >> >> a geom:Geometry, locn:Geometry, geom:Polygon ; >> >> locn:location ex:location123 ; >> >> geom:crs <http://www >> <http://www/>.opengis.net/def/crs/EPSG/0/28992> ; >> >> geosparql:asWKT "<http://www >> <http://www/>.opengis.net/def/crs/EPSG/0/28992> >> POLYGON(...)"^^geosparql:wktLiteral . >> >> >> >> ex:geom1234_3 >> >> a geom:Geometry, locn:Geometry, geom:Point ; >> >> locn:location ex:location123 ; >> >> geom:crs <http://www >> <http://www/>.opengis.net/def/crs/OGC/1.3/CRS84> ; >> >> geosparql:asWKT "POINT(...)"^^geosparql:wktLiteral . >> >> >> >> ex:geom1234_4 >> >> a geom:Geometry, locn:Geometry, geom:Polygon ; >> >> locn:location ex:location123 ; >> >> geom:crs <http://www >> <http://www/>.opengis.net/def/crs/OGC/1.3/CRS84> ; >> >> geosparql:asWKT "POLYGON(...)"^^geosparql:wktLiteral . >> >> >> >> >> >> Note that I also included a backlink from geometry to >> location (locn:location). >> >> >> >> The question still is: can this be considered a good >> practice, given currently available standards/vocabularies? >> >> >> >> Regards, >> >> Frans >> >> >> >> >> >> >> >> >> >> >> >> >> >> 2016-05-04 19:10 GMT+02:00 Joshua Lieberman >> <jlieberman@tumblingwalls.com >> <mailto:jlieberman@tumblingwalls.com>>: >> >> Do you mean: >> >> >> >> ex:location1234 >> >> a dcterms:Location, ex:feature ; >> >> ex:centroid ex:geom1234 ; >> >> ex:footprint ex:geom6789 . >> >> >> >> ex:geom1234 >> >> a geom:Geometry, gsp:Point ; >> >> geom:crs <http://www.opengis.net/def/crs/EPSG/0/28992> ; >> >> gsp:asWKT >> "<http://www.opengis.net/def/crs/EPSG/0/28992> >> POINT(...)"^^geosparql:wktLiteral . >> >> >> >> ex:geom6789 >> >> a geom:Geometry, gsp:Polygon ; >> >> geom:crs <http://www.opengis.net/def/crs/EPSG/0/28992> ; >> >> gsp:asWKT >> "<http://www.opengis.net/def/crs/EPSG/0/28992> >> POLYGON(...)"^^geosparql:wktLiteral . >> >> >> >> In that case, the range of gsp:asWKT is not a geometry, but >> a set of coordinate positions locating the geometry, so >> “POLYGON” is the format of the coordinate string, not the >> geometry class per se. >> >> >> >> >> >> The coordinate information is more problematic, since one >> could easily want to have >> >> >> >> ex:geom6789 >> >> a geom:Geometry, gsp:Polygon ; >> >> geom:crs <http://www.opengis.net/def/crs/EPSG/0/28992> ; >> >> gsp:asWKT >> "<http://www.opengis.net/def/crs/EPSG/0/28992> >> POLYGON(...)"^^geosparql:wktLiteral . >> >> gsp:asWKT "POLYGON(...)"^^geosparql:wktLiteral . >> >> gap:asGML “…” >> >> >> >> I consider asWKT to be problematic for this reason, and one >> ground for updating the GeoSPARQL standard. >> >> >> >> >> >> Josh > > -- > Andrea Perego, Ph.D. > Scientific / Technical Project Officer > European Commission DG JRC > Institute for Environment & Sustainability > Unit H06 - Digital Earth & Reference Data > Via E. Fermi, 2749 - TP 262 > 21027 Ispra VA, Italy > > https://ec.europa.eu/jrc/ >
Received on Wednesday, 18 May 2016 12:03:24 UTC