首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SPIN表示为SPARQL

SPIN表示为SPARQL
EN

Stack Overflow用户
提问于 2019-10-28 23:19:22
回答 1查看 160关注 0票数 1

有没有API可以帮助将SPIN表示( SPARQL查询)转换回SPARQL查询形式?

发自:

代码语言:javascript
运行
复制
[ a                              <http://spinrdf.org/sp#Select> ;
  <http://spinrdf.org/sp#where>  ( [ <http://spinrdf.org/sp#object>  [ <http://spinrdf.org/sp#varName>
                                                       "o"^^<http://www.w3.org/2001/XMLSchema#string> ] ;
                                     <http://spinrdf.org/sp#predicate>
                                             [ <http://spinrdf.org/sp#varName>
                                                       "p"^^<http://www.w3.org/2001/XMLSchema#string> ] ;
                                     <http://spinrdf.org/sp#subject>
                                             [ <http://spinrdf.org/sp#varName>
                                                       "s"^^<http://www.w3.org/2001/XMLSchema#string> ]
                                   ] )
] .

至:

代码语言:javascript
运行
复制
SELECT *
WHERE {
    ?s ?p ?o .
}

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-10-29 15:10:44

我知道两个使用SPIN的基于jena的API。

您可以使用基于jena-arq:3.0.4org.topbraid:shacl:1.0.1,也可以使用注释org.spinrdf:spinrdf:3.0.0-SNAPSHOT中提到的,后者是第一个的分支,但具有更改的名称空间和更新的依赖项。

注第一个(原始的) API也可以在现代的jena (3.13.x)上工作,至少你的任务可以在这种情况下得到解决。第二个API还没有maven发行版,但可以通过jitpack将其包含到您的项目中。

要解决这个问题,您需要找到根org.apache.jena.rdf.model.Resource,并使用jena多态性将其转换为org.topbraid.spin.model.Select (或org.spinrdf.model.Select) (即操作org.apache.jena.rdf.model.RDFNode#as(Class))。然后,#toString()将返回带有模型前缀的所需查询。请注意,所有个性都已通过静态初始化包含在模型中。

这种方法的一个演示是来自ONT-API test-scope的SpinTransformer,它将基于SPARQL的查询转换为与sp:text等价的形式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58593629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档