我如何查询Data.gov

时间:2016-04-23 14:57:00

标签: sparql

我本周末试图教自己如何针对数据源运行API查询,在这种情况下是data.gov。起初我以为我使用的是一个简单的SQL变体,但在这种情况下我似乎必须使用SPARQL。

我已经阅读了文档,下载了Twinkle,并且似乎无法让它运行起来。以下是我正在运行的查询示例。我基本上试图在科罗拉多州丹佛市找到所有无效的加油站。

{{1}}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

SPARQL是RDF三元组的图形模式语言。查询由一组“基本图形模式”组成,这些模式由<subject><predicate><object>形式的三重模式描述。 RDF使用URI定义主题和谓词,对象是URI(对象属性)或文字(数据类型或语言标记属性)。因此,查询中的每个三元模式必须具有三个实体。

由于我们没有您的数据示例,我将提供一种探索数据的方法。我们假设您的前缀已正确定义,我怀疑它 - 它不是REST API URL,而是实体本身的URI。然后你可以尝试以下方法:

PREFIX station: <http://api.data.gov/nrel...>
SELECT *
WHERE
{  ?s station:network ?network .
}

...设置PREFIX以正确表示network的命名空间。然后查看?network的绑定,并找出它们如何代表null。让我们说它是一个字符串,如你所示。然后查询看起来像:

PREFIX station: <http://api.data.gov/nrel...>
SELECT ?s
WHERE
{  ?s station:network "null" .
}

SPARQL中没有like,但您可以使用FILTER子句使用regex或SPARQL的其他字符串匹配功能。

请拜托,请谷歌“SPARQL”和“RDF”。有很多关于SPARQL的信息,而W3C's SPARQL 1.1 Query Language Recommendation是一个综合的来源,有许多很好的例子。