简体   繁体   English

protege reasoner 不报告违反 GCI 的错误

[英]protege reasoner not report error for violation of GCI

My main goal with Protege an ontology building at present is consistency checking.我目前使用 Protege 构建本体的主要目标是一致性检查。 To that end I'm starting with small tests.为此,我从小测试开始。

In this case I want to insist that any "instance" of a class with a certain property necessarily has another property.在这种情况下,我要坚持认为,具有某个属性的 class 的任何“实例”都必然具有另一个属性。

Following this thread from a long time ago I wrote the following GCI:很久以前的这个线程之后,我编写了以下 GCI:

expression and (structureType value structureItem) SubClassOf hasAuthor min 1 person

By this I mean to state that: any class that is an expression that has the property structureType whose value is structureItem must have or necessarily has at least one property hasAuthor我的意思是 state 是:任何 class 是一个expression ,其值为structureItem structureType具有或必须具有至少一个属性hasAuthor

But when I run the reasoner in Protege with such an expression WITHOUT a hasAuthor property I don't get any error.但是,当我在 Protege 中使用这样一个没有hasAuthor属性的expression运行推理器时,我没有收到任何错误。

Is there something wrong with my rule or am I expecting something from the reasoner that it is not designed to do.我的规则是否有问题,或者我是否期望推理者做一些事情,而它不是设计用来做的。

What happens has nothing to do with Open World Assumption.发生的事情与开放世界假设无关。 More on that later.稍后再谈。


In order to show how normal the reasoner is behaving, let me simplify a bit your GCI.为了显示推理器的行为有多正常,让我稍微简化一下你的 GCI。 Let's consider the class Father and the property hasChild and the following GCI:让我们考虑 class Father和属性hasChild和以下 GCI:

Father  SubClassOf  hasChild min 1

This is saying that fathers have at least one child.这就是说父亲至少有一个孩子。 This is common sense knowledge.这是常识知识。 Now, if I add the fact that:现在,如果我添加以下事实:

Antoine  Type  Father

your question suggests that it should be detected as an error.您的问题表明它应该被检测为错误。 If you think about the knowledge we are representing here, it should be clear that interpreting this as an error is going against normal reasoning.如果您考虑我们在这里所代表的知识,应该清楚地将其解释为错误是违反正常推理的。 If I meet you and tell you:如果我遇见你并告诉你:

Antoine is a father, You know.安托万是一位父亲,你知道的。 fathers have at least one child.父亲至少有一个孩子。

you would probably not startle and say:你可能不会吃惊地说:

You are wrong, Antoine!你错了,安托万!

because what I say is just plain, consistent, reasonable knowledge.因为我所说的只是简单的、一致的、合理的知识。 OWL is a knowledge representation language. OWL 是一种知识表示语言。 What is reasonable and consistent in everyone's knowledge is reasonable and consistent in OWL.在每个人的认知中合理和一致的,在 OWL 中也是合理和一致的。 OWL does not create errors from unsaid obligations. OWL 不会因未说明的义务而产生错误。 A subClassOf relation is not an obligation to provide the proof of being in the superclass in order to be able to be in the subclass. subClassOf关系不是提供在超类中的证明以便能够在子类中的义务。 A GCI just provides some truth about the world it describes. GCI 只是提供了关于它所描述的世界的一些真相。 So if I state that Antoine is a father, then I can conclude that Antoine has a child, it's as simple as that.所以如果我说安托万是父亲,那么我可以断定安托万有孩子,就这么简单。

You are probably confusing concept inclusions with some sort of constraint.您可能将概念包含与某种约束混淆了。 But interpreting GCIs as such constraints or obligation completely defies the purpose of ontologies.但是将 GCI 解释为此类约束或义务完全违背了本体的目的。 If you have:如果你有:

StackOverflowUser  SubClassOf  Person
Jeff  Type  StackOverflowUser

you would have to prove that Jeff is indeed a person to avoid the system throwing an error?.您必须证明 Jeff 确实是一个人才能避免系统抛出错误? So you would have to put what ought to be logical conclusions as explicit facts.所以你必须把应该是合乎逻辑的结论作为明确的事实。 That's the opposite of the idea of reasoning and inferences!这与推理和推理的想法相反!


Now, let us go back to OWA.现在,让我们 go 回到 OWA。 Some clarification about what OWA is, and is not, must be made.必须对 OWA 是什么和不是什么做一些澄清。

First, surprisingly, the Open World Assumption is not an assumption.首先,令人惊讶的是,开放世界假设并不是一个假设。 It is named so in order to satisfy the pleasing esthetics of the parallel between Closed World Assumption (CWA) and the absence of Closed World Assumption.之所以这样命名,是为了满足封闭世界假设(CWA)与封闭世界假设不存在之间的平行美感。 The complementary of "Closed" is "Open", so it must be the case that the opposite of Closed World Assumption is Open World Assumption. “封闭”的补充是“开放”,所以封闭世界假设的反面必然是开放世界假设。

But it would be a mistake to qualify as an "assumption" the absence of an assumption.但是,如果没有假设,则将其限定为“假设”是错误的。 So this begs the question "what is the Closed World Assumption?"所以这就引出了一个问题“什么是封闭世界假设?” then.然后。

CWA is a concept of first order logic (FOL), defined in the context of database theory. CWA 是一阶逻辑 (FOL) 的概念,在数据库理论的上下文中定义。 Databases usually keep records of "positive statements" -- which can be formalised as FOL atoms like hasChild(Antoine, R.) -- but not "negative statements" -- formalised as negative literals like ¬hasChild(Antoine, Jeff) .数据库通常保留“肯定陈述”的记录——可以形式化为诸如hasChild(Antoine, R.)类的 FOL 原子——但不是“否定陈述”——形式化为¬hasChild(Antoine, Jeff)类的否定文字。 In a database of genealogical records, it would be insane to keep a record of all the pairs of things x and y such that ¬hasChild(x, y) .在家谱记录的数据库中,保留所有xy对的记录是很疯狂的,这样¬hasChild(x, y) Instead, it is reasonable to assume that if hasChild(x, y) is not present in the database, then it follows that ¬hasChild(x, y) .相反,可以合理地假设如果hasChild(x, y)不存在于数据库中,则遵循¬hasChild(x, y) This is the essence of CWA.这就是 CWA 的精髓。

However, this needs further clarification, as it is often misinterpreted by people invoking OWA/CWA.然而,这需要进一步澄清,因为它经常被调用 OWA/CWA 的人误解。 Some people define CWA as the assumption that what cannot be deduced from a knowledge base or ontology is assumed to be false.有些人将 CWA 定义为假设不能从知识库或本体中推断出的东西被假定为错误的假设。 This is not CWA.这不是 CWA。 If it were the case, then whenever we cannot conclude φ nor ¬φ, we would assume that both φ and ¬φ are false, which is a contradiction.如果是这样,那么每当我们不能得出 φ 和 ¬φ 的结论时,我们就会假设 φ 和 ¬φ 都是假的,这是一个矛盾。 So the true formalisation of CWA (as defined by Raimond Reiter in 1978, and as formalised by database scientists and logicians for many decades) is the following:因此,CWA 的真正形式化(由 Raimond Reiter 在 1978 年定义,并由数据库科学家和逻辑学家几十年来形式化)如下:

“if no proof of a positive ground literal exists, then the negation of that literal is assumed true” [R. “如果不存在积极基础文字的证据,则假定该文字的否定为真” [R. Reiter, On Closed World Data Bases, 1978] Reiter,关于封闭的世界数据库,1978 年]

More completely, given a FOL theory T, the closed world theory CW(T) of T is the theory T ∪ {¬φ |更完整地说,给定 FOL 理论 T,T 的封闭世界理论 CW(T) 是理论 T ∪ {¬φ | φ is a ground atom and T ⊬ φ}. φ 是基原子,T ⊬ φ}。 Making the CWA on a theory T means reasoning with CW(T) instead of T for the purposes of logical deductions or query answering.基于理论 T 进行 CWA 意味着使用 CW(T) 而不是 T 进行推理,以进行逻辑推理或查询回答。

On the theory T = {∀ x .Father( x ) → ∃ y .hasChild( x , y ), Father(Antoine)}, the CWA leads to the conclusions ¬hasChild(Antoine, Antoine), ¬hasChild(Antoine, Jeff), etc. but not to Error(T), nor to that CW(T) is inconsistent.根据理论 T = {∀ x .Father( x ) → ∃ y .hasChild( x , y ), Father(Antoine)},CWA 得出结论 ¬hasChild(Antoine, Antoine), ¬hasChild(Antoine, Jeff ) 等,但不是 Error(T),也不是 CW(T) 不一致。

In conclusion, if CWA is irrelevant to whether T has an error or is inconsistent, then so is OWA.总之,如果 CWA 与 T 是否有错误或不一致无关,那么 OWA 也是如此。 I don't know what Ivo Velitchkov and Stanislav Kralin have in mind when they refer to OWA, but whatever it is, it is foreign to the scientific literature on the topic that I'm aware of.我不知道 Ivo Velitchkov 和 Stanislav Kralin 在提到 OWA 时的想法,但不管是什么,它与我所知道的有关该主题的科学文献是陌生的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM