7

我对包含的文件运行 sparql 查询

<User rdf:about="#RJ">
<hasName rdf:datatype="http://www.w3.org/2001/XMLSchema#string">RJ</hasName>
</User>

我只想返回名称,即“RJ”,但是当我输入查询时

SELECT ?name
FROM <example.com> 
WHERE { 
       assign:RJ assign:hasName ?name .   
}  

其中assign是我返回的正确命名空间:

"RJ" ^^<http://www.w3.org/2001/XMLSchema#string>

有人对如何删除 sparql noob 的 xml 模式类型有任何建议吗?

提前致谢

4

1 回答 1

10

您是否可以这样做取决于您使用的 SPARQL 实现。在 SPARQL 1.0 下这是不可能的,但是使用SPARQL 1.1,现在大多数实现都广泛支持它,并在 2013 年 3 月成为 W3C 推荐,您可以使用如下项目表达式:

SELECT (STR(?name) AS ?StringName)
FROM <example.com>
WHERE {
    assign:RJ assign:hasName ?name
}

基本上,项目表达式允许您使用任何有效的 SPARQL 表达式,您可以在其他地方使用它来根据先前绑定的变量计算新值。

于 2009-12-07T21:56:14.843 回答