Abfrage von DBpedia mit SPARQL und Jena
Kann ich nicht verstehen, wie kann ich die Abfrage von DBpedia mit Jena. In den tutorials wie hier(Listing 4) - Modell ist wie folgt initialisiert:
//Open the bloggers RDF graph from the filesystem
InputStream in = new FileInputStream(new File("bloggers.rdf"));
//Create an empty in-memory model and populate it from the graph
Model model = ModelFactory.createMemModelMaker().createModel();
model.read(in,null); //null base URI, since model URIs are absolute
in.close();
Sagen wir mal ich möchte eine Abfrage schreiben, wird die Liste der Kirchen in Paris. In SPARQL wird es Aussehen (entnommen aus diese mailing-Liste Nachricht):
PREFIX p: <http://dbpedia.org/property/>
PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX category: <http://dbpedia.org/resource/Category:>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX geo: <http://www.georss.org/georss/>
SELECT DISTINCT ?m ?n ?p ?d
WHERE {
?m rdfs:label ?n.
?m skos:subject ?c.
?c skos:broader category:Churches_in_Paris.
?m p:abstract ?d.
?m geo:point ?p
FILTER ( lang(?n) = "fr" )
FILTER ( lang(?d) = "fr" )
}
Wie diese Abfrage Aussehen, die in Java? Besonders bin ich daran interessiert, wie das Modell-Objekt initialisiert wird.
- Möchten Sie wissen, wie zum ausführen von SPARQL-Abfragen in Jena, oder ein Verfahren ausführt, die eine entsprechende Abfrage auf diese ein?
- Ja. Eigentlich habe ich eine Antwort gefunden, die ich suchte, aber ich würde schauen mit Freude auf Ihre Antwort. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie Tonnen und Tonnen von Seiten fand ich die Antwort. Vielleicht habe ich nicht die Frage stellen deutlich genug, aber wie auch immer unten ist der code, der für mich gearbeitet.
Diese Antwort fand ich auf dbpedia-Diskussion http://www.mail-archive.com Seite.
"SELECT DISTINCT ?m ?n ?p ?d"+ "WHERE {"
führt zu "SELECT DISTINCT ... ?dWHERE {` mit einer variable namensdWHERE
(und das ist noch legal, da dieWHERE
in einer SPARQL-wo ist optional; D. H.,select ?x { }
undselect ?x WHERE {}
sind die gleichen)." FILTER ( lang(?n) = "fr" )"+
. Aber oben auf, dass, language-tags, sollten verglichen werden mit langMatches:filter langMatches(lang(?n),'fr')
.