【发布时间】:2016-10-10 04:15:03
【问题描述】:
请帮助我处理 SPARQL 查询。
我有一个“建筑”类作为owl:Thing 的子类的本体。 “建筑”有自己的子类,如:教堂、医疗、商店。
这些子类中的每一个都有自己的标签(seeAlso)。例如:商店有超市、面包店、市场等标签。教堂有教堂、大教堂等标签。
个体看起来像这样:
我需要做一个 SPARQL 查询,它将根据标签检索个人。
因此,假设我想获取具有seeAlso“面包店”类型标签的该子类的所有个体。在这种情况下,我希望得到 bakery1 和 Supermarket1
我已经试过了,但是这个查询似乎是错误的:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?individual ?class ?label
WHERE {
?individual rdf:type owl:NamedIndividual .
?class rdf:type owl:Class .
FILTER(?label="bakery")
}
如果我删除带有FILTER 的行,我将只得到个人和类,而不是它们应该相互关联。 Protege 只是返回给我所有可能的连接类 - 个人
【问题讨论】: