SPARQL的自旋表示

SPARQL的自旋表示,sparql,rdf,jena,semantic-web,spin-rdf,Sparql,Rdf,Jena,Semantic Web,Spin Rdf,有没有API可以帮助将SPARQL查询的SPIN表示形式转换回其SPARQL查询形式 发件人: 提前感谢。我知道两个基于jena的API可用于SPIN 您可以使用基于jena arq:3.0.4的org.topbraid:shacl:1.0.1,也可以使用注释org.spinrdf:spinrdf:3.0.0-SNAPSHOT中提到的,这是第一个的分支,但名称空间已更改,依赖项已更新 请注意,第一个原始API也可以与现代jena 3.13.x一起使用,至少在这种情况下您的任务可以得到解决。 第二

有没有API可以帮助将SPARQL查询的SPIN表示形式转换回其SPARQL查询形式

发件人:


提前感谢。

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

您可以使用基于jena arq:3.0.4的org.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.apache.jena.rdf.model.rdfNodeClass)将其强制转换为org.topbaid.spin.model.Select或org.spinrdf.model.Select。 然后toString将返回带有模型前缀的所需查询。 注意,所有的个性都已经通过静态初始化包含到模型中


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

当我使用一个通用搜索引擎时,第一个问题是-它不适合您吗?
[ 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 .
}