Załóżmy, że mam jakiś przedmiot zapytania Jena:Jak zdobyć wszystkie tematy kwerendy Jeny?
String query = "SELECT * WHERE{ ?s <some_uri> ?o ...etc. }";
Query q = QueryFactory.create(query, Syntax.syntaxARQ);
Jaki byłby najlepszy sposób, aby uzyskać wszystkie tematami trójek w kwerendzie? Najlepiej bez konieczności ręcznego parsowania/manipulowania ciągami.
Na przykład, biorąc pod uwagę zapytanie
SELECT * WHERE {
?s ?p ?o;
?p2 ?o2.
?s2 ?p3 ?o3.
?s3 ?p4 ?o4.
<http://example.com> ?p5 ?o5.
}
Mam nadzieję, że wrócił jakieś listy, która wygląda jak
[?s, ?s2, ?s3, <http://example.com>]
Innymi słowy, chcę wykaz wszystkich przedmiotów w zapytaniu. Nawet użyteczne byłyby tylko te tematy, które były zmiennymi lub literałami/uris, ale chciałbym znaleźć listę wszystkich tematów w zapytaniu.
Wiem, że istnieją metody zwracania zmiennych wynikowych (Query.getResultVars
) i kilka innych informacji (patrz http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/query/Query.html), ale nie mogę znaleźć niczego, co pozwoli uzyskać konkretne tematy zapytania (lista wszystkich wyników zmienne zwrócą również predykaty i obiekty).
Każda pomoc doceniona.
Czy podano ciąg zapytania lub czy można go zmienić? Ponieważ twój problem można rozwiązać dość łatwo, zmieniając zapytanie. – Sentry
Myślę, że w końcu zrozumiałem, co masz na myśli. Nie chcesz wszystkich podmiotów w wyniku, ale wszystkie zmienne wiążące dla podmiotów w zapytaniu, prawda? Jeśli tak, prosimy o bardziej oczywiste pytanie. – Sentry
dlaczego nie itrerating vars wyników? Czy chcesz utworzyć tabelę z wynikami vars? jeśli nie, podaj przykład. –