Parar consultas SPARQL

Preciso testar uma certa propriedade estrutural de alguns milhões de consultas SPARQL e, para isso, preciso da estrutura doWHERE declaração. Atualmente, estou tentando usar o fyzz para fazer isso, mas infelizmente sua documentação não é muito útil. A análise de consultas é fácil, o problema é que não consegui recuperar a estrutura da instrução. Por exemplo

>>> from fyzz import parse
>>> a=parse("SELECT * WHERE {?x a ?y . {?x a ?z}}")
>>> b=parse("SELECT * WHERE {?x a ?y OPTIONAL {?x a ?z}}")
>>> a.where==b.where
True
>>> a.where
[(SparqlVar('x'), ('', 'a'), SparqlVar('y')), (SparqlVar('x'), ('', 'a'), SparqlVar('y'))]

Existe uma maneira de recuperar a árvore de análise real no fyzz em vez de apenas os triplos, ou alguma outra ferramenta que me permita fazer isso? O RDFLib parece ter tido um analisador de bisonte SPARQL no passado, mas não consigo encontrá-lo nordflib ourdfextras.sparql pacotes.

Obrigad

questionAnswers(2)

yourAnswerToTheQuestion