...
Die folgende Ausführungen gründen sich in der aktuellen Umsetzung im LinkedData-Service der DNB.
Kurzfassung
Verknüpfe die Repräsentation der Karte mit der Repräsentation der Geometrie mit dcterms:spatial
. Beschreibe die Geometrien mit WKT (Well-known Text) und verwende dabei den Datentyp geo:asWKTLiteral
.
Beispiel:
@prefix sf: <http://www.opengis.net/ont/sf#> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix bibo: <http://purl.org/ontology/bibo/> .
<http://d-nb.info/1105671259> a bibo:Map , bibo:Document ;
dc:title "Sehkarte Ostfriesland, Jadebusen, Elbe" ;
dcterms:spatial [
a sf:Polygon ;
geo:asWKT "Polygon (( +006.666666 +054.166666, +006.666666 +053.500000, +008.666666 +053.500000, +008.666666 +054.166666, +006.666666 +054.166666 ))"^^geo:wktLiteral .
] .
Unterscheidung zwischen Karte und Geometrie
...
WKT ist eine Mikrosyntax zur Beschreibung von Geometrien. Als erstes kommt ein Schlüsselwort, das die Art der Geometrie beschreibt, z. B. POINT
, POLYGON
oder LINE
. Darauf folgt ein oder mehrere Koordinatenpaare, die die Geometrie beschreibt, z. B. POINT(0 0)
oder POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))
(Polygone können auch Löcher haben, die kommen dann in weitere geklammerte Bereiche innerhalb der äußeren Klammern: POLYGON((äußerer Ring)(Loch1)(Loch2))
). Die Koordinaten sind immer dezimale Koordinaten, nie Grad-Minute-Sekunde. In dem Datentyp wktLiteral
, die GeoSPARQL definiert, kann man vor dem Schlüsselwort auch in spitzen Klammern einen URI stellen, der das verwendete CRS definiert, z. B. <http://www.opengis.net/def/crs/EPSG/0/4326>Point(33.95 -83.38)
. Wenn kein CRS-URI spezifiziert wird, ist der Default <http://www.opengis.net/def/crs/OGC/1.3/CRS84>
, was WGS 84 mit Axenordung long-lat bedeutet.
Umsetzung der Geometrien im LinkedDat-Service der DNB
Für die Geometrien, die die Karten abbilden, werden keine eigenständigen Ressourcen gebildet, sondern sie werden als bNodes an die Karten gehängt. Für einige Kartentypen, z. B. Stadtpläne, erfassen wir nur die Mittelpunktkoordinaten, daher gibt es nur ein Koordinatenpaar. In den Fällen, wenn die Eckkoordinaten des Kartenausschnittes erfasst werden, sind mehrere Koordinatenpaare vorhanden, die als Polygon mit nur einem äußeren Ring beschrieben werden. Wir verwenden immer das default CRS (CRS84 = Koordinaten nach WGS84 mit Axenfolge long-lat).
Wichtig bei der Umsetzung ist die korrekte Axenfolge (longitud latitud) und dass bei Polygonen die Ringe geschlossen sein müssen (also müssen die ersten und die letzten Koordinatenpaare gleich sein) und dass die Koordinatenpaare des äußeren Rings gegen den Uhrzeigersinn gehen, währen die inneren Ringe im Uhrzeigersinn gehen.
Beispiel für Punktkoordinaten
@prefix sf: <http://www.opengis.net/ont/sf#> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix bibo: <http://purl.org/ontology/bibo/> .
<http://d-nb.info/1120048540> a bibo:Map , bibo:Document ;
dc:title "Brüssel" ;
dcterms:spatial [
a sf:Point ;
geo:asWKT "Point ( +004.348611 +050.850277 )"^^geo:wktLiteral .
] .
Beispiel für Eckkoordinaten
@prefix sf: <http://www.opengis.net/ont/sf#> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix bibo: <http://purl.org/ontology/bibo/> .
<http://d-nb.info/1105671259> a bibo:Map , bibo:Document ;
dc:title "Sehkarte Ostfriesland, Jadebusen, Elbe" ;
dcterms:spatial [
a sf:Polygon ;
geo:asWKT "Polygon (( +006.666666 +054.166666, +006.666666 +053.500000, +008.666666 +053.500000, +008.666666 +054.166666, +006.666666 +054.166666 ))"^^geo:wktLiteral .
] .
;
a sf:Polygon .