使用Jena ARQ向SPARQL查询添加可选子句
是否可以使用Jena ARQ API以编程方式向SPARQL查询添加可选子句? 我希望以编程方式执行此查询:使用Jena ARQ向SPARQL查询添加可选子句,sparql,semantic-web,jena,Sparql,Semantic Web,Jena,是否可以使用Jena ARQ API以编程方式向SPARQL查询添加可选子句? 我希望以编程方式执行此查询: select ?concept ?p ?o where {?s ?p ?o . } limit 10 为此: SELECT ?concept ?p ?o ?test WHERE { ?s ?p ?o OPTIONAL { ?concept <http://www.test.com/test> ?test } } LIMIT 10 但是从我在API文档中发现的情
select ?concept ?p ?o where {?s ?p ?o . } limit 10
为此:
SELECT ?concept ?p ?o ?test WHERE
{
?s ?p ?o
OPTIONAL { ?concept <http://www.test.com/test> ?test }
}
LIMIT 10
但是从我在API文档中发现的情况来看,在网络上拖网是不可能添加可选条款的。我需要使用其他库吗?可以。请参阅ApacheJena站点上的
您的出发点是获得:
如果我没记错的话,那将是一个ElementGroup
。在此处添加可选选项:
((ElementGroup) pattern).addElement(new ElementOptional(...));
…
位将是一个非常简单的参数
然而,这并不雅观。总的来说,我建议使用访问者和代数表示法,但这种直接的方法应该有效
((ElementGroup) pattern).addElement(new ElementOptional(...));