DATAtourisme

Blazegraph erreur import rdf+xml

Bonjour à toutes et tous.
Je lance des tests d’exploitation des données et je rencontre un soucis pour importer les flux dans le moteur sémantique blazegraph.

Utilisation de gui de blazegraph :

  • tentative d’import via fichier local : une erreur de taille de fichier trop volumineux survient (les rdf font 500 mégas environ) l’import ne se fait pas

  • tentative d’import via url ou filepath : des erreurs Java :

  • java.util.concurrent.ExecutionException: org.openrdf.rio.RDFParseException: org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 7; The element type « meta » must be terminated by the matching end-tag «  » (…)

  • java.util.concurrent.ExecutionException: java.net.UnknownHostException: G
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:192)
    at com.bigdata.rdf.sail.webapp.BigdataServlet.submitApiTask(BigdataServlet.java:294) (…)

Et enfin en ligne de commande :

retourne une erreur "Content-Type not recognize as RDF: application/x-form-urlencoded

Si vous avez une idée de comment importer le flux dans le moteur sémantique je suis preneur :slight_smile:

Emmanuel

Bonjour,

Pour la ligne de commande curl il manque un @ devant le nom du fichier :

curl -X POST -H 'Content-Type:application/rdf+xml' --data-binary '@monfichier.rdf' http://localhost:9999/blazegraph/namespace/kb/sparql

Pourriez vous essayer cette ligne de commande ?

Si le retour de cette commande vous indique un problème de mémoire, cela peux venir de la configuration de Blazegraph.
Votre instance de Blazegraph est elle dans un container Docker ou lancée directement ?

Le paramètre java s’appelle Xmx et se configure ici

Cordialement.

1 « J'aime »

Bonjour,
j’avais bien tenté avec le « @ » (j’ai du le supprimer en changement le vrai nom du fichier afin de coller l’url ici).
Par sécurité je viens de re tenter et j’ai la même erreur.

J’ai deux flux rdf+xml et les deux me retourne la même erreur :

Content-Type not recognized as RDF: application/x-www-form-urlencoded

Blazegraph est lancé directement, la machine a 14Go de ram, et le server démarré avec 8Go et idem.

ERROR: uri=[file://xxx.rdf], context-uri=[]
java.util.concurrent.ExecutionException: java.net.UnknownHostException: G
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at com.bigdata.rdf.sail.webapp.BigdataServlet.submitApiTask(BigdataServlet.java:294)
at com.bigdata.rdf.sail.webapp.InsertServlet.doPostWithURIs(InsertServlet.java:400)
at com.bigdata.rdf.sail.webapp.InsertServlet.doPost(InsertServlet.java:119)
at com.bigdata.rdf.sail.webapp.RESTServlet.doPost(RESTServlet.java:303)
at com.bigdata.rdf.sail.webapp.MultiTenancyServlet.doPost(MultiTenancyServlet.java:195)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
(…)

et si je tente d’ouvrir directement le dernier flux :

ERROR: uri=[https://diffuseur.datatourisme.gouv.fr/flux/xxx/download/complete], context-uri=[]
java.util.concurrent.ExecutionException: org.openrdf.rio.RDFParseException: org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 7; The element type « meta » must be terminated by the matching end-tag «  ».
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at com.bigdata.rdf.sail.webapp.BigdataServlet.submitApiTask(BigdataServlet.java:294)
at com.bigdata.rdf.sail.webapp.InsertServlet.doPostWithURIs(InsertServlet.java:400)
at com.bigdata.rdf.sail.webapp.InsertServlet.doPost(InsertServlet.java:119)

Dans tout ce malheur, je viens de réussir de faire un import en installant un serveur apache qui fournit le flux a blazegraph et ce dernier a importé sans erreur le rdf !

Bonjour,

J’ai bien noté que vous avez trouvé une solution à travers le serveur apache. Je poste ce message pour d’autres utilisateurs qui auraient le même problème que vous avez pu avoir avec la commande curl.

Sous Windows avec l’invite de commande (cmd prompt) la commande curl ne supporte pas les simples quote : ' .
(le problème ne se pose pas avec Cygwin, sous Linux ou sous Mac)

Du coup la commande que j’ai présentée dans mon précédent message utilise le header Content-type par défaut qui est : application/x-www-form-urlencoded et qui retourne l’erreur que vous avez constaté.

Conclusion: si vous êtes sous Windows et que vous utilisez curl à travers l’invite de commande, vous pouvez utiliser la commande suivante :

curl -X POST -H "Content-Type:application/rdf+xml" --data-binary @monfichier.rdf "http://localhost:9999/blazegraph/namespace/kb/sparql"

Cordialement.