【发布时间】:2019-04-26 06:08:03
【问题描述】:
我是 SPARQL 的新手,我正在尝试根据主题的 内容 选择一个属性。例如,使用下面的RDF数据,我想返回包含“var2_1”的结果:
<rdf:Description rdf:about="http://www.ontologydesignpatterns.org/ont/fred/domain.owl#var0">
<rdf:type rdf:resource="http://www.ontologydesignpatterns.org/ont/fred/domain.owl#var2_0"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.ontologydesignpatterns.org/ont/fred/domain.owl#var1">
<rdf:type rdf:resource="http://www.ontologydesignpatterns.org/ont/fred/domain.owl#var2_1"/>
</rdf:Description>
这是我正在编写的查询,但它没有返回任何内容,而且我似乎找不到指定主题应包含“var1”的方法:
SELECT ?t
WHERE {
?s rdf:type ?t
FILTER regex(?s, "var1")
}
我希望能帮助您以正确的方式执行此操作。
【问题讨论】:
-
资源是通过URI来标识的,而且你知道URI,那为什么还要使用REGEX呢?你有一个特定的用例吗?我的意思是,在极少数情况下您不知道完整的 URI,但只要您事先知道,最好按照下面的答案进行操作。此外,SPARQL 引擎效率更高,因为它可以使用一些数据库索引。
-
只是为了您将来使用 RDF 和 SPARQL 工作。如果您以接近 SPARQL 查询语法的 Turtle 语法查看数据,这将有很大帮助
-
太好了,谢谢 AKSW,我要去看看 Turtle!