Supponiamo che io sono un po 'oggetto query jena:Come ottenere tutti gli argomenti di una query Jena?
String query = "SELECT * WHERE{ ?s <some_uri> ?o ...etc. }";
Query q = QueryFactory.create(query, Syntax.syntaxARQ);
Quale sarebbe il modo migliore per ottenere tutti i soggetti delle triple nella query? Preferibilmente senza dover eseguire manualmente l'analisi/manipolazione delle stringhe.
Ad esempio, data una query
SELECT * WHERE {
?s ?p ?o;
?p2 ?o2.
?s2 ?p3 ?o3.
?s3 ?p4 ?o4.
<http://example.com> ?p5 ?o5.
}
spererei di essere tornato qualche lista che si presenta come
[?s, ?s2, ?s3, <http://example.com>]
In altre parole, voglio che la lista di tutti i soggetti in una query. Anche avere solo quei soggetti che erano variabili o quelli che erano letterali/uris sarebbe stato utile, ma mi piacerebbe trovare un elenco di tutti gli argomenti nella query.
So che esistono metodi per restituire le variabili di risultato (Query.getResultVars
) e alcune altre informazioni (vedere http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/query/Query.html), ma non riesco a trovare nulla che ottenga specificamente gli argomenti della query (un elenco di tutti i risultati le variabili restituirebbero anche i predicati e gli oggetti).
Qualsiasi aiuto apprezzato.
È la stringa di query fornita o è possibile modificarla? Perché il tuo problema può essere risolto facilmente cambiando la query. – Sentry
Penso di aver finalmente capito cosa intendi. Non vuoi che tutti i soggetti nel risultato, ma tutte le variabili vincolanti per i soggetti nella query, giusto? Se è così, ti preghiamo di renderlo più ovvio nella domanda. – Sentry
perché non itrerating su risultati vars? vuoi creare un tavolo con i risultati vars? se no, per favore, fai un esempio. –