【发布时间】:2015-04-15 18:45:00
【问题描述】:
是否可以通过 SPARQL 查询的某个属性的类来查询过滤器? 我有一个描述电影的本体,我希望展示所有在欧洲拍摄的电影。
当前的 SPARQL 查询如下:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX cinema: <http://example.com/ontologies/cinemachain#>
SELECT ?film ?location
WHERE {
?film rdf:type cinema:Film .
?film cinema:wasFilmedAt ?location .
FILTER(?location rdfs:subClassOf cinema:Europe) .
}
where 子句的前两行给出了所有电影及其位置的列表。如何使用过滤器向我返回位置是cinema:Europe 子类的结果?
【问题讨论】:
-
“地点是电影院的子类:欧洲” 地点似乎不太可能是某物的子类。毕竟,“homeMovie wasFilmedAt myHouse”可能是真的,但 myHouse 将是 Location 的 instance,而不是 Location 的子类。您的意思是您想要类型是欧洲子类的位置吗? (我仍然不确定这意味着什么,因为欧洲似乎是一个实例,而不是一个类......)
-
在这个特定的本体中,cinema:Europe 是cinema:Location 的子类。这样我们就可以轻松地按大陆识别特定位置。对于这个过滤器,我想找到所有位置是欧洲成员的电影。你知道我如何使用 SPARQL 做到这一点吗?
标签: sparql owl protege rdfs protege4