假设我有一些耶拿查询对象:
String query = "SELECT * WHERE{ ?s <some_uri> ?o ...etc. }";
Query q = QueryFactory.create(query, Syntax.syntaxARQ);
在查询中获取三元组的所有主题的最佳方法是什么?最好不必手动进行任何字符串解析/操作。
例如,给定一个查询
SELECT * WHERE {
?s ?p ?o;
?p2 ?o2.
?s2 ?p3 ?o3.
?s3 ?p4 ?o4.
<http://example.com> ?p5 ?o5.
}
我希望返回一些看起来像的列表
[?s, ?s2, ?s3, <http://example.com>]
换句话说,我想要查询中所有主题的列表。即使只有那些是变量的主题或那些是文字/uris的主题也会很有用,但我想在查询中找到所有主题的列表。
我知道有一些方法可以返回结果变量 ( Query.getResultVars
) 和一些其他信息(请参阅http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/query/Query.html),但是我似乎找不到任何可以专门获取查询主题的内容(所有结果变量的列表也将返回谓词和对象)。
任何帮助表示赞赏。