使用SPARQL获取标签的类,子类,超类,属性和实例

时间:2012-08-05 21:50:32

标签: rdf sparql

我有一个名为forgiveness的标签,我想使用SPARQL查询语言获取此标签的类,子类,超类,属性和实例。请问我该如何构建这些查询?您的回复非常受欢迎。

1 个答案:

答案 0 :(得分:3)

正如评论中所述,问题的要点是找到数据集中所有出现的文字。

在RDF三元组(sujbect,property,object)中,文字只能作为对象出现。在这种情况下,我们不关心主题和财产是什么。一切都被接受了。

以下查询就是这样(请注意我们只想要'forgiveness'作为英文单词):

SELECT * WHERE{
 ?subject ?property "forgiveness"@en .
}

针对DBpedia sparql endpoint运行它会产生一些结果。你可以尝试一下。我必须说这是DBpedia上一个非常罕见的文字。

另一种方法是使用过滤器而不是普通文字。无论大小写如何,以下查询都会找到'forgiveness'

SELECT * WHERE{
 ?subject ?property ?literal .
 FILTER regex(?literal, "forgiveness", "i")
}

regex的第二个参数是要匹配的模式。您可以实现的不仅仅是不区分大小写。有关详细信息,请查看XQuery regular expression language