2 votes

Chaînes GML en Turtle

J'essaie d'utiliser le vocabulaire GeoSPARQL de l'OGC dans un fichier Turtle. Voici un fragment :

:spatialextent
 a geosparql:Geometry;
 geosparql:asGML "<gml:Polygon srsName="EPSG:28992"><gml:exterior><gml:LinearRing><gml:posList srsDimension="2">97372 487153 97372 580407 149636 580407 149636 487153 97372 487153</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon>"^^geosparql:gmlLiteral;
 .

Cette notation est rejetée par le validateur RDF en ligne que j'utilise : http://www.rdfabout.com/demo/validator/ à cause des guillemets, par exemple "EPSG:28992". Ce problème peut être résolu en remplaçant les guillemets doubles par des guillemets simples. Je pense que cela n'invalidera pas le GML. Mais je préfère garder les guillemets doubles car c'est ainsi que le GML est généré.

En RDF/XML, la solution serait d'utiliser un bloc CDATA, comme ceci (Exemple tiré du document GeoSPARQL. Oui, c'est du WKT mais le même principe s'applique) :

<sf:Polygon rdf:about="http://example.org/ApplicationSchema#AExactGeom">
 <geo:asWKT rdf:datatype= "http://www.opengis.net/ont/geosparql#wktLiteral">
  <![CDATA[<http://www.opengis.net/def/crs/OGC/1.3/CRS84> Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5,-83.6 34.5, -83.6 34.1))]]>
 </geo:asWKT>
</sf:Polygon>

Existe-t-il un moyen de faire une telle chose en tortue ? Ou existe-t-il d'autres moyens de gérer un tel cas ?

Merci d'avance !

2voto

user205512 Points 4848

Juste échapper les caractères incriminés , remplaçant " avec \" :

:spatialextent
    a geosparql:Geometry;
    geosparql:asGML 
        "<gml:Polygon srsName=\"EPSG:28992\"><gml:exterior><gml:LinearRing><gml:posList srsDimension=\"2\">97372 487153 97372 580407 149636 580407 149636 487153 97372 487153</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon>"^^geosparql:gmlLiteral;
.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X