Angenommen ich einige jena Abfrage Objekt haben:Wie bekomme ich alle Themen einer Jena Query?
String query = "SELECT * WHERE{ ?s <some_uri> ?o ...etc. }";
Query q = QueryFactory.create(query, Syntax.syntaxARQ);
Was wäre der beste Weg sein, alle Themen der Tripel in der Abfrage zu bekommen? Vorzugsweise ohne manuell eine String-Analyse/-Manipulation durchführen zu müssen.
Zum Beispiel gegeben eine Abfrage
SELECT * WHERE {
?s ?p ?o;
?p2 ?o2.
?s2 ?p3 ?o3.
?s3 ?p4 ?o4.
<http://example.com> ?p5 ?o5.
}
Ich hoffe, würde eine Liste zurückgegeben zu haben, die
[?s, ?s2, ?s3, <http://example.com>]
Mit anderen Worten: wie
aussieht, ich die Liste aller Fächer in einer Abfrage möge. Es wäre sogar nützlich, nur die Subjekte zu haben, die Variablen oder Literale/Uris sind, aber ich würde gerne eine Liste aller Themen in der Abfrage finden.Ich weiß, es gibt Methoden, um die Ergebnisvariablen (Query.getResultVars
) und einige andere Informationen (siehe http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/query/Query.html) zurückgeben, aber ich kann nichts finden, die speziell die Themen der Abfrage erhalten (eine Liste aller Ergebnisse Variablen würden auch die Prädikate und Objekte zurückgeben).
Jede Hilfe wird geschätzt.
Ist die Abfragezeichenfolge angegeben oder können Sie sie ändern? Weil Ihr Problem ganz einfach durch Ändern der Abfrage gelöst werden kann. – Sentry
Ich glaube, ich habe endlich verstanden, was du meinst. Sie wollen nicht alle Themen im Ergebnis, sondern alle Bindungsvariablen für Themen in der Abfrage, oder? Wenn ja, mach es in der Frage deutlicher. – Sentry
Warum nicht über Ergebnis vars? Möchten Sie eine Tabelle mit Ergebnisvariablen erstellen? wenn nicht, bitte geben Sie ein Beispiel. –