【问题标题】:How to write a nested DL query如何编写嵌套 DL 查询
【发布时间】:2013-10-15 18:21:10
【问题描述】:

我想在 Protege 中编写一个嵌套的深度学习查询。我可以运行一个简单的查询,例如:

Person 和 hasFather 值 PersonA

它检索父亲为 PersonA 的所有人员的名称。但我希望 PersonA 值也应该从一些查询中检索,例如

Person 和 hasFather 值(Person 和 hasSon 值 PersonB)

Protege 中显示语法错误。请帮助我正确的格式。

【问题讨论】:

    标签: owl protege description-logic dlquery


    【解决方案1】:

    原因

    Person and hasFather value (Person and hasSon value PersonB)
    

    是一个语法错误不是它是“嵌套的”,而是value需要一个个体,而(Person and hasSon value PersonB)是一个。如果你使用

    Person and hasFather some (Person and hasSon value PersonB)
    

    相反,您应该准备就绪。此查询要求的个人是父亲是人,而人 B 是儿子的人。也就是说,它要求 B 的兄弟姐妹,即 B 父亲的其他孩子。

    例如,这里有一个关于辛普森家族的查询,巴特和丽莎的父亲是荷马,荷马是他们的孩子:

    数据是:

    @prefix :      <http://www.example.org/families#> .
    @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
    @prefix owl:   <http://www.w3.org/2002/07/owl#> .
    @prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
    @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
    @prefix families: <http://www.example.org/families#> .
    
    <http://www.example.org/families>
            a       owl:Ontology .
    
    families:Person  a  owl:Class .
    
    families:hasFather  a  owl:ObjectProperty .
    
    families:hasChild  a  owl:ObjectProperty .
    
    families:Bart  a            owl:NamedIndividual , families:Person ;
            families:hasFather  families:Homer .
    
    families:Lisa  a            owl:NamedIndividual , families:Person ;
            families:hasFather  families:Homer .
    
    families:Homer  a          owl:NamedIndividual , families:Person ;
            families:hasChild  families:Bart , families:Lisa .
    
    families:Milhouse  a  owl:NamedIndividual , families:Person .
    

    【讨论】:

      猜你喜欢
      • 2020-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-13
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多