[Sigia-l] CMS and IA-Ontologies vs. Data Modelling-LONG
Nuno Lopes
nbplopes at netcabo.pt
Thu Jan 30 07:17:33 EST 2003
Hi Lisa,
Lisa wrote:
>This may be an area of differentiation. I can't speak
>for all systems, but the ones I worked on didn't have
>instances of predicates. It really didn't make sense
>in our system as predicates can take any class or
>instance of a class as arguments.
Let me try to explain what Links are in OOA. I believe that if Ontology
theory is complete then Links need to exist, but its existence need not
to be explicit from the point of view of information modeling (in OOA it
is not explicit either). In OO Modeling objects (instances) do not
really exist explicitly but are spurred when the interpretation of it
takes on.
Suppose X and Y are classes, and pA is some association (predicate) that
relates class X to Y (X pA Y, or pA(X, Y)). If when interpreting the
model I find the object [X] of class X and [Y] of class Y, then pA([X],
[Y]) may or not be true right? But again suppose when interpreting the
predicate I find that pA([X], [Y]) = True, in OOA [pA([X], [Y])] is
actually an instance of pA(X, Y) (in other words it links object [A] to
[Y], so a Link).
>Multiple inheritance is alive and well in ontology development! It is
>considered a key and necessary feature. There is a tradeoff between
ease of
>development/consistency and redundancy. What other "patterns" are you
>speaking of?
I see. To demonstrate why multiple inheritance is most often not needed
let me try to provide a sample.
Let's say we have a class called Human (I avoided the use of Person,
because a human is only a Person when acknowledged by society).
Ontologically a Person is a Human so Person is a subclass of Human. So
far so good! Now let's say we have two more Classes Father and Employee.
We could say that Father is a subclass of Person and so is Employee. The
difference is that Father has a predicate called isParentOf(Person,
Person) and Employee has a predicate called isEmployeeOf(Person,
Employer).
The questions are:
Can be an Employee a Person?
Can be a Parent a Person?
Can an Employee be a Parent?
If we say yes to everything then multiple inheritances are needed for
sure.
Human
Person
Employee
Parent
Parent
Employee
Organization
Employer
Humm, but I can't have that in OOA and I suspect that neither in
Ontologies, so let's flatten the model.
Human
Person
Employee -> Parent & Employee
Parent -> Parent & Employee
Note: The class Parent & Employee is both subclass of Employee and
Parent.
But still this rise some issues. Apart from scope overlapping in
practical terms the Employer may no necessarily view an Employee as a
Parent and a Parent. In fact the duty of the employer to the employee
only goes to the extent of an employment contract that is regulated by
laws that may or not encompass the rights of a Person according to for
example the Human Rights organization. This definition fluctuates from
domain to domain (culture to culture, government to government). One
solution could be change the predicate isEmployeedOf to
isEmployeeOf(Person, Employer, Contract), but then again other similar
issues rise.
If we say that the answer to the questions is no, everything becomes
simpler. We can argue to that the questions were ill formulated, because
there is definitely a relationship between a Parent and Employee and
Person but not necessarily a [is of] kind of relationship. The kind of
relationship that exists is more of a Role.
So we have:
Human
Person
Person Role
Employee
Parent
Organization
Organization Roles
Employer
The Person class can have a predicate called hasTheRoleOf(Person Role).
The Person Role has a predicate called developedBy(Person).
Has you can see what seams to be a multiple inheritance it may not be in
reality. One can argue that the first model was not a good one, but my
point is that experience has shown that multiple inheritances it is only
needed in very few extreme cases. I understand that in linguistics it
may be needed, but IMO that is only because language we try to take
language out of the context (in other words we try to normalize language
according by using partial functions).
>prevent "semantic drift"
The tool of multiple inheritance is the very own that poise the speech
into semantic drift like my own at the moment :) (Process of discovery).
>In CycL, for instance, there is quantification over logical statements.
This is interesting. Do you use some fuzzy scheme to quantify the degree
of truthfulness of a predicate? What kind of quantification scheme is
used?
Well this is all interesting indeed, but I'm more interested in playing
the pipe of pure technology and pragmatics at the moment. I've read in
your other posts that you have the role of IA ;) in a number of web
projects.
>Cyc has a bunch of optimizations on popular predicates operating
>in the inference engine.
What are these predicates?
What classes of logical connections do they represent?
What kind of tools and technologies you use to develop Ontologies for
your sites? Do you use Cyc?
What kind of features within the theory of Ontologies that you actually
use to produce meta-data useful for search engines (using the tools of
course?
Do you use a generic engine (solution) or the inference engine is custom
made to your particular needs?
How do you feed the model with content (the instances)?
How do you implement the predicates?
Thanks a lot Lisa.
Best regards,
Nuno Lopes
-----Original Message-----
From: sigia-l-admin at asis.org [mailto:sigia-l-admin at asis.org] On Behalf
Of lisa colvin
Sent: quinta-feira, 30 de Janeiro de 2003 3:04
To: Nuno Lopes
Cc: sigia-l at asis.org
Subject: RE: [Sigia-l] CMS and IA-Ontologies vs. Data Modelling-LONG
Hi Nuno!
> So basically unless the study of
> Ontologies brings new
> modeling artifacts that OOA does not have on its
> nature it may well be that it does not bring
anything new
> from the engineering point of view.
Correct. Most of the current research in ontologies
has been on the more practical side: correctly
integrating multiple ontologies; developing logical
principles for ontology creation to prevent "semantic
drift", and the challenges of using ontologies in
applications.
> Or probably a multidisciplinary effort could bring
some light on this theme.
Definitely. "Ontology" is term that gets thrown around
to describe any number of things, which is confusing.
Ironically, part of the purpose of having an ontology
is to have a common language ;)
> Individuals are
> instances of a Class
> right? So if they are in OOA they are called Class
> Instances (also Objects) not individuals.
Sorry! Sloppy of me. I meant "instances", not
individuals. I'm not sure if instantiation works the
same.
> Instances exists not
> only for Classes in OOA but also Associations (Slots
> of type Instance)
> in this case OOA calls these type of instances
Links.
This may be an area of differentiation. I can't speak
for all systems, but the ones I worked on didn't have
instances of predicates. It really didn't make sense
in our system as predicates can take any class or
instance of a class as arguments.
> So can in OOA. Actually multiple inheritance (a
> class having multiple
> super classes) in a practical point of view was
> abandoned. It was found
> that it does not actually map the perceived reality
> that well and
> creates "feature" overlap. Instead other patterns
> were discovered that
> can map the world more faithfully.
>
Multiple inheritance is alive and well in ontology
development! It is considered a key and necessary
feature. There is a tradeoff between ease of
development/consistency and redundancy. What other
"patterns" are you speaking of?
> >So you are not just restricting values, but also
> potentially the type
> of >classes that can be arguments to that predicate.
> These "type"
> restrictions >are very helpful in many applications,
> like natural
> language
> >processing.
>
> Very interesting indeed. I'm not sure if I fully
> understand thought. Do
> predicates exist without classes? If no, then a
> predicate must be
> related to at least one class right, this
> considering that predicates can be unary (The Root
Class)?
Exactly!
> Sub classes my restrict the "predicate"
> (association) but restrictions can only be made
> along the set of sub classes of that Root class.
What I was thinking was this :
Define: DRINK
(isa DRINK BinaryPredicate)
(arg1Isa DRINK SentientBeing)
(arg2Isa DRINK PotableObject)
So what this says is that the 1st argument to DRINK
must be an instance of the SentientBeing class (or its
subclasses) and the 2nd argument must be an instance
of the Potable Object class. This is written in
pseudo-cycl.
This is useful for many things, including metaphoric
understandings (which I used to work on).In this case,
we know that the second argument to DRINK must be a
PotableObject so if I say "I drank the glass" then it
is unacceptable, but there may be some
reinterpretation rules that could remap containers to
the objects they contain if there is a constraint type
violation. But I digress. ;)
If so in OOA the same
> can be defined easily.
> As I remember Prolog we could make question over
> predicates too. Most OO
In CycL, for instance, there is quantification over
logical statements. It's true that performance is
hindered by such flexibility which is why Cyc has a
bunch of optimizations on popular predicates operating
in the inference engine.
> Hum I understand. But to be honest the state of the
> art sample about
> wines provided in the articles do not use that
> feature. I would like to discuss the reasons of this
fact.
I don't think the wine examples are state-of-the-art.
I think the purpose of the wine example is to show
multiple inheritance along a faceted hierarchy which
is only one end of the spectrum of ontology
development.
> Can you provide me
> with some links and point to me what you think is
> relevant in the light of my statements?
Nicola Guarino is the best source for the logical
underpinnings of ontology development. He's quoted the
most. Some of the reading is a bit dense, so not for
bedside! ;)
http://ontology.ip.rm.cnr.it/Publications.html
Thanks for this conversation, Nuno. It's very helpful.
;)lisa
__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
------------
When replying, please *trim your post* as much as possible.
*Plain text, please; NO Attachments
ASIST IA 03 Summit: Making Connections
http://www.asist-events.org/IASummit2003/
Searchable list archive: http://www.info-arch.org/lists/sigia-l/
________________________________________
Sigia-l mailing list -- post to: Sigia-l at asis.org
Changes to subscription: http://mail.asis.org/mailman/listinfo/sigia-l
More information about the Sigia-l
mailing list