Ich versuche, Remote-Endpunkte abzufragen und bekomme Eulen: sameAs-Mappings, ich habe sowohl RDFLib als auch Redland ausprobiert, aber beides funktionierte nicht für mich, wahrscheinlich befasse ich mich nicht mit Namespaces.
Hier ist mein Versuch in RDFLib:
%Vor%Und hier ist Redland:
%Vor%Können Sie bitte einen Hinweis geben, was in einem von denen falsch ist? Noch eine Schwierigkeit, die ich habe: Ist es möglich, Dataset-Name des Objekts zu bekommen? Zum Beispiel: wenn es gibt:
%Vor%Kann ich in diesem Beispiel den Namen der "Dbpedia" bekommen? Oder irgendein anderer Datensatz, mit dem ich sameAs verlinke? (Oder wahrscheinlich könnte ich gerade interessiert Datensatznamen in der Objekt-String nachschlagen) Vielen Dank sehr viel im Voraus
Verschiedene Dinge:
Sie haben Recht, Sie müssen einen beliebigen URI innerhalb von <
>
einfügen. Die richtige Abfrage lautet:
... sehen Sie die Ergebnisse hier .
FROM
ist nicht in rdflib oder redland implementiert, wie Sie denken. Es ruft keine entfernten SPARQL-Endpunkte ab, sondern ruft entfernte Graphen oder Graphen mit diesem Namen in einem lokalen Geschäft ab. In deinem Fall möchtest du SERVICE
benutzen, siehe wie es hier mit Jena funktioniert . Leider implementieren weder rdflib noch redland die SERVICE
-Klausel für SPARQL, aber es gibt Workarounds, um dies zu beheben.
Eine mögliche Lösung ist die Verwendung von SPARQLWrapper für python . Es ist trivial, hier haben Sie Ihren Code mit dieser Bibliothek:
%Vor%Wie Sie sehen können, wird der Remote-SPARQL-Endpunkt zu einem Parameter außerhalb der Abfrage.
Redland unterstützt derzeit nicht die Verwendung von SPARQL-Endpunkten in FROM. Was Sie hier verwenden, sind Grafiknamen , die Sie in den RDF-Datensatz laden. Wird auch als Redland-Kontext bezeichnet, wenn Sie ein Tripel (s, p, o) + c mit etwas wie model.context_add_statement(statement, context)
Rasqal GIT unterstützt das Parsen von SERVICE
, führt es aber noch nicht in einer Abfrage aus.
Sie könnten auch Virtuoso mit RedLand in Erwägung ziehen, wenn Sie den SPARQL-FED "Service implementieren "Parameter für die Ausführung von Remote-Abfragen, wie in diesen Online-Beispielen
demonstriertEs gibt eine weitere einfache Lösung im Blog-Eintrag unter Ссылка was den Code ziemlich sauber hält. Es verwendet auch SPARQLWrapper.