我本周末试图教自己如何针对数据源运行API查询,在这种情况下是data.gov。起初我以为我使用的是一个简单的SQL变体,但在这种情况下我似乎必须使用SPARQL。
我已经阅读了文档,下载了Twinkle,并且似乎无法让它运行起来。以下是我正在运行的查询示例。我基本上试图在科罗拉多州丹佛市找到所有无效的加油站。
{{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是一个综合的来源,有许多很好的例子。