Sparql 元素转换ApacheJena

Sparql 元素转换ApacheJena,sparql,jena,arq,Sparql,Jena,Arq,我有这样一个问题: SELECT ?r ?r1 ?r2 ?r3 ?r4 WHERE { ?r ?r1 ?r2 ; ?r3 ?r4 } 我想用一个可选元素转换每个三元组,如: SELECT ?r ?r1 ?r2 ?r3 ?r4 ?r5 WHERE { {?r ?r1 ?r2 .} OPTIONAL {?r ?r1 ?r5 .} {?r ?r3 ?r4 .} OPTIONAL {?r ?r3 ?r5 .} } 基本上,我尝试访问所有El

我有这样一个问题:

SELECT  ?r ?r1 ?r2 ?r3 ?r4
WHERE
  { ?r  ?r1  ?r2 ;
        ?r3  ?r4
  }
我想用一个可选元素转换每个三元组,如:

SELECT  ?r ?r1 ?r2 ?r3 ?r4 ?r5
WHERE
  { {?r  ?r1  ?r2 .} OPTIONAL {?r ?r1 ?r5 .}
    {?r   ?r3  ?r4 .} OPTIONAL {?r ?r3 ?r5 .}
  }
基本上,我尝试访问所有ElementPathBlock,找到一个三元组并将其转换为:

{r?r1?r2.}
转换为
{r?r1?r2.}可选的{r?r1?r5.}


但是我不能在访问元素时修改它。在Jena有没有办法做到这一点?

我的意思是,你可以使用也可以不使用?我通过扩展类解决了这个问题。然后我实现了我想要的转换。我是说,你能不能使用?我通过扩展类解决了这个问题。然后我习惯于实现我想要的转变。