is possible programmatically add optional clause sparql query using jena arq api? programmatically take query:
select ?concept ?p ?o {?s ?p ?o . } limit 10 to this:
select ?concept ?p ?o ?test { ?s ?p ?o optional { ?concept <http://www.test.com/test> ?test } } limit 10 through arq it's simple add additional result variable ?test:
query q = queryfactory.create(query) query.addresultvar(var); but i've found in api docs , trawling across net it's not possible add optional clause. need use different library?
yes can. see this introduction topic on apache jena site.
your starting point getting query pattern:
element pattern = q.getquerypattern(); that elementgroup if remember correctly. add optional in there:
((elementgroup) pattern).addelement(new elementoptional(...)); the ... bit elementtriplesblock, pretty straightforward.
inelegant, however. in general i'd recommend using visitors , algebra representation, direct route should work.
Comments
Post a Comment