SPARQL查询中的无关模式标记

时间:2013-05-02 22:47:21

标签: sparql

我写了一个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>

依旧...... |

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

1 个答案:

答案 0 :(得分:3)

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

对于常见数据类型,RDF和SPARQL推迟到XML Schema Datatypes,因此您可以在输出中看到这些特定的URIS。

您可以让SPARQL引擎使用STR()函数从数据中删除数据类型,如下所示:

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 Expressions功能,现在大多数SPARQL引擎都支持这一功能。