Проблема заключается в следующем: при синтаксическом анализе запроса sparql я получаю упрощенный код ast и мне нужно передать его сторонней библиотеке для дальнейшей обработки, но функциональные возможности из коробки (rdf4j) не позволяют передавать astв машиночитаемом формате, только tex, я хотел бы получить в формате json.
StringBuilder qb = new StringBuilder();
qb.append(" PREFIX has_vaccine_allergen: <http://purl.obolibrary.org/obo/VO_0000531>\n" +
" PREFIX chicken_egg_protein_allergen: <http://purl.obolibrary.org/obo/VO_0000912> \n" +
" SELECT distinct ?vaccine_label ?vaccine \n" +
" FROM <http://purl.obolibrary.org/obo/merged/VO>\n" +
" WHERE {\n" +
" ?vaccine rdfs:label ?vaccine_label .\n" +
" ?vaccine rdfs:subClassOf ?vaccine_restriction .\n" +
" ?vaccine_restriction owl:onProperty has_vaccine_allergen:; owl:someValuesFrom chicken_egg_protein_allergen: .\n" +
"\t}");
SPARQLParser parser = new SPARQLParser();
ParsedTupleQuery q = (ParsedTupleQuery)parser.parseQuery(qb.toString(), null);
TupleExpr te = q.getTupleExpr();
System.out.println(te);
Результат выполнения кода:
SelectQuery
[PrefixDecl (prefix=has_vaccine_allergen), PrefixDecl (prefix=chicken_egg_protein_allergen), SelectQuery]
Distinct
Projection
ProjectionElemList
ProjectionElem "vaccine_label"
ProjectionElem "vaccine"
Join
Join
Join
StatementPattern
Var (name=vaccine)
Var (name=_const_9285ccfc_uri, value=http://www.w3.org/2000/01/rdf-schema#label, anonymous)
Var (name=vaccine_label)
StatementPattern
Var (name=vaccine)
Var (name=_const_4592be07_uri, value=http://www.w3.org/2000/01/rdf-schema#subClassOf, anonymous)
Var (name=vaccine_restriction)
StatementPattern
Var (name=vaccine_restriction)
Var (name=_const_a509c4e0_uri, value=http://www.w3.org/2002/07/owl#onProperty, anonymous)
Var (name=_const_3319983d_uri, value=http://purl.obolibrary.org/obo/VO_0000531, anonymous)
StatementPattern
Var (name=vaccine_restriction)
Var (name=_const_6539d60c_uri, value=http://www.w3.org/2002/07/owl#someValuesFrom, anonymous)
Var (name=_const_3319a704_uri, value=http://purl.obolibrary.org/obo/VO_0000912, anonymous)
Мне нужно получить его в формате json