Angenommen, ich habe ein Jena-Query-Objekt:
%Vor%Was wäre der beste Weg, um alle Themen der Tripel in der Abfrage zu bekommen? Vorzugsweise ohne manuell eine String-Analyse / -Manipulation durchführen zu müssen.
Zum Beispiel bei einer Abfrage
%Vor%Ich hoffe, ich habe eine Liste zurückgegeben, die aussieht wie
%Vor%Mit anderen Worten, ich möchte die Liste aller Themen in einer Abfrage. 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ß, dass es Methoden gibt, die Ergebnisvariablen ( Query.getResultVars
) und einige andere Informationen zurückzugeben (siehe Ссылка ), aber ich kann nichts finden, was spezifisch die Subjekte der Abfrage bekommt (eine Liste aller Ergebnisvariablen würde auch die Prädikate und Objekte zurückgeben) ).
Jede Hilfe wird geschätzt.
Interessante Frage. Was Sie tun müssen, ist durch die Abfrage zu gehen, und für jeden Block von Tripeln durchlaufen und den ersten Teil betrachten.
Der stabilste Weg dazu ist ein Element-Walker, der jeden Teil der Abfrage durchläuft. Es mag in Ihrem Fall übertrieben erscheinen, aber Abfragen können alle möglichen Dinge enthalten, einschließlich FILTERs
, OPTIONALs
und verschachtelt SELECTs
. Wenn Sie den Walker verwenden, können Sie das ignorieren und sich nur auf das konzentrieren, was Sie wollen:
Tags und Links java sparql jena semantic-web