SPARQL-Abfrage auf dem entfernten Remote-Endpunkt RDFLib / Redland

8

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

    
user52028778 04.05.2011, 18:17
quelle

4 Antworten

12

Verschiedene Dinge:

Sie haben Recht, Sie müssen einen beliebigen URI innerhalb von < > einfügen. Die richtige Abfrage lautet:

%Vor%

... 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.

    
Manuel Salvadores 05.05.2011, 08:12
quelle
3

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)

laden

Rasqal GIT unterstützt das Parsen von SERVICE , führt es aber noch nicht in einer Abfrage aus.

    
dajobe 05.05.2011 20:48
quelle
1

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

demonstriert     
hwilliams 05.05.2011 13:29
quelle
1

Es gibt eine weitere einfache Lösung im Blog-Eintrag unter Ссылка was den Code ziemlich sauber hält. Es verwendet auch SPARQLWrapper.

    
Col Wilson 19.01.2012 22:54
quelle

Tags und Links