# Issue 298: Bottom up Development / evolution of the model

Posted by Martin on 4/1/2016

Dear Carlo, all,

I attach a text I have just written about a discussion we had in the last

CRM-SIG meeting.

In the first place, I'd like to have your, Carlo's, corrections and OK for this

text, and further George's and Maria's opinions on the matter.

Obviously, there is here another issue of "open world" on the categorical level,

and the aspect of the ontology being a partial representation of the possible worlds,

whereas so far we have defined the ontology to be universal but the knowledge of instances to be limited. Has that ever been investigated????

I'd suggest this to become part of our methodological text material to be developed.

Related references most welcome.

Martin's text is here

Posted by Carlo on 11/1/2016

I read through your document and was not sure to get the point. So, before commenting, I made a little annotation to be sure we are on the same page. The annotation is very brief and is reported in the attachment. Please let me have your feedback (a yes or a no, basically).

Carlo's text is here

Posted by martin on 11/1/2016

On 11/1/2016 7:12 μμ, Carlo Meghini at ISTI CNR wrote:

> Dear Martin,

>

> I wish you a great 2016!

>

> I read through your document and was not sure to get the point. So, before commenting, I made a little annotation to be sure we are on the same page. The annotation is very brief and is reported in the attachment. Please let me have your feedback (a yes or a no, basically).

Yes, that is correct. In the sequence, I state that practically we often don't know the set of potential "borrowers" etc.

Posted by Carlo on 18/1/2016

Dear Martin,

I think the point is that the logical formalisation worries about ACTUAL truth, not POTENTIAL truths. Let us consider again the property of (some person) borrowing (some book). There are two things that you may want to say about this property:

(1) any borrower is a person, actually.

(2) any person is a potential borrower.

The current formalisation focusses on (1). If you want to also express (2) (which in UML would be said as "borrowing is a partial property") then you need a different kind of logic, one that allows to express possibilities. For instance you may use a modal operator (symbol POSS) for possibility and say that (statement number 1)

(forall xy) [Person(x) AND Book(y)] IMPLIES POSS Borrows(x,y)

(which reads: for any person and any book, it is possible that that person borrows that book)

On the surface, it would appear that this statement conveys a lot more knowledge than the “canonical" statement

(forall xy) Borrows(x,y) IMPLIES [Person(x) AND Book(y)]

But, technically, this is the case only if we want to ask questions about what is possible, i.e. questions like

POSS Borrows(x,y)

(which reads: give me all individuals x and y such that it is possible that x borrows y) If we include the above statement 1 in the KB, this query would give as answer all (person,book) pairs.

But if we stay with queries that do not involve possibilities, then the canonical statement already tells us all. Notice that you may verify whether is it possible that a dog borrow a book by trying to insert into the KB the statements

Dog(fido)

Borrows(fido,waverley)

you get as a consequence of this and the canonical statement

Person(fido)

and by simply saying that Person and Dog are disjoint, you get a contradiction, so it is not possible that a Dog borrows a book.

Hope this is readable and helpful.

posted by Martin on 18/1/2016

Dear Carlo,

This is helpful, but I want to say more. Let me explain:

On 18/1/2016 1:26 μμ, Carlo Meghini at ISTI CNR wrote:

> Dear Martin,

>

> I think the point is that the logical formalisation worries about ACTUAL truth, not POTENTIAL truths.

Absolutely!

> Let us consider again the property of (some person) borrowing (some book). There are two things that you may want to say about this property:

>

> (1) any borrower is a person, actually.

> (2) any person is a potential borrower.

>

> The current formalisation focusses on (1). If you want to also express (2) (which in UML would be said as "borrowing is a partial property") then you need a different kind of logic, one that allows to express possibilities. For instance you may use a modal operator (symbol POSS) for possibility and say that (statement number 1)

>

> (forall xy) [Person(x) AND Book(y)] IMPLIES POSS Borrows(x,y)

>

> (which reads: for any person and any book, it is possible that that person borrows that book)

>

> On the surface, it would appear that this statement conveys a lot more knowledge than the “canonical" statement

>

> (forall xy) Borrows(x,y) IMPLIES [Person(x) AND Book(y)]**Yes!**

>

> But, technically, this is the case only if we want to ask questions about what is possible, i.e. questions like

>

> POSS Borrows(x,y)

>

> (which reads: give me all individuals x and y such that it is possible that x borrows y) If we include the above statement 1 in the KB, this query would give as answer all (person,book) pairs.

>

> But if we stay with queries that do not involve possibilities, then the canonical statement already tells us all. Notice that you may verify whether is it possible that a dog borrow a book by trying to insert into the KB the statements

>

> Dog(fido)

> Borrows(fido,waverley)

>

> you get as a consequence of this and the canonical statement

>

> Person(fido)

>

> and by simply saying that Person and Dog are disjoint, you get a contradiction, so it is not possible that a Dog borrows a book.**Yes!**

With my text, I did not want to propose to use a different kind of logic. I wanted to discuss the methodology of ontology engineering, how we transfer our world knowledge into the logical form, and which relation the logical form will have to our anticipation of reality. The problem is, that we would like to ensure that a class in the CRM always fulfills (1) and (2) for each property, but that we do not have the global knowledge to do so. That means, that we will violate either (1) or (2) necessarily in practice.

Now, this is no more a logical problem. It is a problem of optimizing incomplete categorical knowledge with a model which claims complete world knowledge on a categorical level. The problem I describe occurs, when my world knowledge improves.

So, repeating, if my world knowledge would be static, I'll take care that (1) always holds, and (2) only partially: "for MOST x, Person(x) IMPLIES POSS borrows...."

Now, this causes the non-logical problem, that ensuring (1), we create a complement of all possible borrowers, which in practice invites users to misinterpret the property "borrows" when they reach this impossible area.

If we then understand our world better, and want to exlude these models, we create a backwards incompatible update.

Therefore, we conclude as a good practice, rather to violate (1) with respect to reality, by taking the domain deliberately narrower, but to guarantee (2), however formally in the model maintain (1) and ignore (2).

My point was, that this can be interpreted as a global restriction of the domain of validity of the whole model.

In other words, if I find out that a non-person really can borrow a book in this sense in reality, I just state that the set this non-person belongs to, was not yet in the scope of my model. Then I change my model to include this set, and have a new ontology, which again formally claims (1), but is committed to a wider domain.

This reasoning is THE key to justifying bottom-up development. It is really important for all of us to understand this.

Comments?