Convert tuples to json using rdf4j(使用rdf4j将元组转换为json)
本文介绍了使用rdf4j将元组转换为json的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问题是这样的:在解析SPARQL查询时,我得到了简化的ast,我需要将它传递给第三方库进行进一步处理,但开箱即用的功能(Rdf4j)不允许以机器可读的格式传输ast,我只想以json格式接收tex。
StringBuilder qb = new StringBuilder();
qb.append(" PREFIX has_vaccine_allergen: <http://purl.obolibrary.org/obo/VO_0000531>
" +
" PREFIX chicken_egg_protein_allergen: <http://purl.obolibrary.org/obo/VO_0000912>
" +
" SELECT distinct ?vaccine_label ?vaccine
" +
" FROM <http://purl.obolibrary.org/obo/merged/VO>
" +
" WHERE {
" +
" ?vaccine rdfs:label ?vaccine_label .
" +
" ?vaccine rdfs:subClassOf ?vaccine_restriction .
" +
" ?vaccine_restriction owl:onProperty has_vaccine_allergen:; owl:someValuesFrom chicken_egg_protein_allergen: .
" +
" }");
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格式
RDF4J
首先:TupleExpr
对象(及其下面的树)不是抽象语法树,而是推荐答案的查询代数模型。如果希望直接处理SPARQL查询的AST,可以使用SyntaxTreeBuilder.parseQuery(queryString)
接收实际的AST。也就是说,对AST或代数模型执行查询重新处理可以起作用,这在一定程度上取决于您的输出到底应该做什么,哪一个是最佳选择。
AbstractASTVisitor
是一个很好的起点(确保您选择了正确的起点,RDF4J有两个:一个用于SeRQL,一个用于SPARQL)。对于查询代数模型,从AbstractQueryModelVisitor
开始。在RDF4J代码库本身中有大量实现这两种方法的示例。典型的模式是覆盖要定义自己行为的meet
方法,并在处理不是叶的节点时注意在末尾调用super.meet()
。
这篇关于使用rdf4j将元组转换为json的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:使用rdf4j将元组转换为json
基础教程推荐
猜你喜欢
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01