2

我写了一个 Sparql 查询。

PREFIX table:<http://www.daml.org/2003/01/periodictable/PeriodicTable#>
SELECT ?name ?color
FROM <PeriodicTable.owl>
WHERE
{ ?element table:group ?group.
  ?group table:name "Noble Gas".
  ?element table:name ?name.
  ?element table:color ?color.
}

我得到的输出带有附加的模式标签,如下所示:

| "chlorine"^^<http://www.w3.org/2001/XMLSchema#string>    | "green"^^<again link>

等等... |

为什么会发生这种情况,我应该如何纠正它?

4

1 回答 1

3

在您查询的 RDF 数据中有类型化文字,顾名思义,类型化文字是与数据类型相关联的文字。

RDF 和 SPARQL 遵从XML Schema Datatypes的通用数据类型,因此为什么您会在输出中看到这些特定的 URIS。

STR()您可以让 SPARQL 引擎使用以下函数从值中剥离数据类型:

PREFIX table:<http://www.daml.org/2003/01/periodictable/PeriodicTable#>

SELECT (STR(?name) AS ?NameString) (STR(?color) AS ?ColourString)
FROM <PeriodicTable.owl>
WHERE
{ 
  ?element table:group ?group.
  ?group table:name "Noble Gas".
  ?element table:name ?name.
  ?element table:color ?color.
}

这需要一个支持 SPARQL 1.1 的 SPARQL 引擎,因为它使用了SELECT 表达式功能,现在大多数 SPARQL 引擎都将支持这一点。

于 2013-05-02T23:57:11.350 回答