基于pizza本体RDF片段,已知实体与关系如何编写SPARQL查询对应对象?
针对该场景的SPARQL查询语句
你给出的Pizza本体片段中,hasBase的取值约束是通过OWL Restriction结构挂载在Pizza类的rdfs:subClassOf属性下的,对应查询语句如下:
# 先定义命名空间前缀,简化URI书写 PREFIX pizza: <http://www.co-ode.org/ontologies/pizza/pizza.owl#> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> # 指定要返回的宾语变量为?object SELECT ?object WHERE { # 匹配Pizza类的父类约束中的OWL限制节点 pizza:Pizza rdfs:subClassOf ?restriction . # 匹配限制节点的属性:限制的属性为hasBase,取值范围为我们要找的宾语 ?restriction a owl:Restriction ; owl:onProperty pizza:hasBase ; owl:someValuesFrom ?object . }
如果你后续处理的是直接存在<Pizza, hasBase, PizzaBase>这类显式三元组的数据集,不需要走OWL限制结构,可以使用更简洁的查询:
PREFIX pizza: <http://www.co-ode.org/ontologies/pizza/pizza.owl#> SELECT ?object WHERE { pizza:Pizza pizza:hasBase ?object . }
执行上述查询后,返回的?object结果就是你需要的PizzaBase实体。
内容的提问来源于stack exchange,提问作者gedman
相关产品推荐
相关产品推荐

