SPAR的SPIN表示形式

问题描述 投票:1回答:1

是否有一个API可以帮助将(SPARQL查询的)SPIN表示形式转换回其SPARQL查询形式?

发件人:

[ 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> ]
                                   ] )
] .

收件人:

SELECT *
WHERE {
    ?s ?p ?o .
}

提前感谢。

sparql rdf jena semantic-web spin-rdf
1个回答
0
投票

我知道两个基于Sena的基于耶拿的API。

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

请注意,第一个(原始)API也可以与现代耶拿(3.13.x)一起使用,至少您的任务可以在这种情况下解决。第二个API尚未发布Maven,但可以通过jitpack包含到您的项目中。

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

[ONT-API测试范围的SpinTransformer就是这种方法的演示,它通过sp:text将基于SPARQL的查询转换为等效形式。

© www.soinside.com 2019 - 2024. All rights reserved.