【问题标题】:min cardinality not working as expected in Protege最小基数在 Protege 中没有按预期工作
【发布时间】:2018-01-18 12:00:46
【问题描述】:

我是 Protege / OWL 的初学者,我无法理解为什么最大基数有效而最小基数无效。 我尝试过 Hermit Pellet 和 Fact 作为推理者。我知道开放世界假设,但这对我来说似乎不合逻辑。

我想表达的是,一场婚姻活动中必须至少有 2 个人。

类:MarriageEvent

等效于:

这行得通: MarriageEvent and is_event_of max 2 Person

这不是: MarriageEvent and is_event_of min 2 Person

所有个体都被声明为不同的个体。

我的本​​体:

 <?xml version="1.0"?>
 <Ontology xmlns="http://www.w3.org/2002/07/owl#"
 xml:base="http://www.semanticweb.org/anato/ontologies/2017/7/untitled-ontology-184"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:xml="http://www.w3.org/XML/1998/namespace"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
 ontologyIRI="http://www.semanticweb.org/anato/ontologies/2017/7/untitled-ontology-184">
<Prefix name="owl" IRI="http://www.w3.org/2002/07/owl#"/>
<Prefix name="rdf" IRI="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
<Prefix name="xml" IRI="http://www.w3.org/XML/1998/namespace"/>
<Prefix name="xsd" IRI="http://www.w3.org/2001/XMLSchema#"/>
<Prefix name="rdfs" IRI="http://www.w3.org/2000/01/rdf-schema#"/>
<Declaration>
    <NamedIndividual IRI="#Peter"/>
</Declaration>
<Declaration>
    <NamedIndividual IRI="#Julia"/>
</Declaration>
<Declaration>
    <ObjectProperty IRI="#is_event_of"/>
</Declaration>
<Declaration>
    <NamedIndividual IRI="#Max"/>
</Declaration>
<Declaration>
    <Class IRI="#Person"/>
</Declaration>
<Declaration>
    <NamedIndividual IRI="#Event_Marriage"/>
</Declaration>
<Declaration>
    <Class IRI="#MarriageEvent"/>
</Declaration>
<EquivalentClasses>
    <Class IRI="#MarriageEvent"/>
    <ObjectIntersectionOf>
        <Class IRI="#MarriageEvent"/>
        <ObjectMinCardinality cardinality="2">
            <ObjectProperty IRI="#is_event_of"/>
            <Class IRI="#Person"/>
        </ObjectMinCardinality>
    </ObjectIntersectionOf>
</EquivalentClasses>
<EquivalentClasses>
    <Class IRI="#MarriageEvent"/>
    <ObjectIntersectionOf>
        <Class IRI="#MarriageEvent"/>
        <ObjectMaxCardinality cardinality="2">
            <ObjectProperty IRI="#is_event_of"/>
            <Class IRI="#Person"/>
        </ObjectMaxCardinality>
    </ObjectIntersectionOf>
</EquivalentClasses>
<DisjointClasses>
    <Class IRI="#MarriageEvent"/>
    <Class IRI="#Person"/>
</DisjointClasses>
<ClassAssertion>
    <Class IRI="#MarriageEvent"/>
    <NamedIndividual IRI="#Event_Marriage"/>
</ClassAssertion>
<ClassAssertion>
    <Class IRI="#Person"/>
    <NamedIndividual IRI="#Julia"/>
</ClassAssertion>
<ClassAssertion>
    <Class IRI="#Person"/>
    <NamedIndividual IRI="#Max"/>
</ClassAssertion>
<ClassAssertion>
    <Class IRI="#Person"/>
    <NamedIndividual IRI="#Peter"/>
</ClassAssertion>
<DifferentIndividuals>
    <NamedIndividual IRI="#Event_Marriage"/>
    <NamedIndividual IRI="#Julia"/>
    <NamedIndividual IRI="#Max"/>
    <NamedIndividual IRI="#Peter"/>
</DifferentIndividuals>
<ObjectPropertyAssertion>
    <ObjectProperty IRI="#is_event_of"/>
    <NamedIndividual IRI="#Event_Marriage"/>
    <NamedIndividual IRI="#Julia"/>
</ObjectPropertyAssertion>
<ObjectPropertyAssertion>
    <ObjectProperty IRI="#is_event_of"/>
    <NamedIndividual IRI="#Event_Marriage"/>
    <NamedIndividual IRI="#Peter"/>
</ObjectPropertyAssertion>
<SubObjectPropertyOf>
    <ObjectProperty IRI="#is_event_of"/>
    <ObjectProperty abbreviatedIRI="owl:topObjectProperty"/>
</SubObjectPropertyOf>
<IrreflexiveObjectProperty>
    <ObjectProperty IRI="#is_event_of"/>
</IrreflexiveObjectProperty>
<ObjectPropertyDomain>
    <ObjectProperty IRI="#is_event_of"/>
    <Class IRI="#MarriageEvent"/>
</ObjectPropertyDomain>
<ObjectPropertyRange>
    <ObjectProperty IRI="#is_event_of"/>
    <Class IRI="#Person"/>
</ObjectPropertyRange>
</Ontology>

<!-- Generated by the OWL API (version 4.2.8.20170104-2310) https://github.com/owlcs/owlapi -->

【问题讨论】:

  • 嗯,“这行得通”和“这不行”是什么意思?
  • 我的意思是,如果我有 3 个人,推理者会抱怨,但如果我在 is_event_of 房地产中只有 1 个人,则不会抱怨。好像没有应用最小基数限制。
  • 假设MarriageEventis_event_of Max,声明Person等价于{Max, Julia, Peter},并创建两个否定属性断言。
  • 好吧,这行得通,但不是很方便。因为我每次都必须为每个婚姻和每个人声明这一点。我计划再增加至少 16 个人……还有其他可能的方法吗?或者,如果不说所有其他人都不属于这种关系,就不能在 OWA 中表达 2 个人必须与 doman 婚姻事件发生在 is_event_of 中?
  • 制作递归类等价公理的想法是什么?你说A EquivalentTo A and (p min 3 C)。这在逻辑上是多余的

标签: owl protege cardinality


【解决方案1】:

min 2 Person 不会抱怨因为开放世界假设而只认识一个人的婚姻。仅仅因为婚礼的第二方不知道,并不意味着它不存在。

【讨论】:

    【解决方案2】:

    诸如 OWL 之类的语义 Web 语言做出了开放世界的假设。这 原则上,网络中没有特定声明意味着, 该声明尚未明确作出,无论 不管它是真的还是假的,不管我们是否 相信它是真的还是假的。本质上,由于没有 单独的陈述,演绎推理者不能(也不能)推断 声明是错误的。

    https://en.wikipedia.org/wiki/Open-world_assumption

    没有关于第二个人存在的声明并不意味着不存在第二个人。

    【讨论】:

      猜你喜欢
      • 2019-03-26
      • 2015-03-23
      • 2014-01-26
      • 2012-02-06
      • 2014-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      相关资源
      最近更新 更多