Re: How can i define a slot for a concept?

Thomas Russ <[email protected]>
Newsgroups gmane.comp.ai.powerloom
Message-ID <[email protected]>
On Jun 1, 2004, at 12:14 AM, 石 崇德 wrote:

>    Thanks for your answering.    Maybe i can describe the problem like 
> this: i have a concept PERSON, and i want to attach some information 
> on it, like NAME, AGE, etc. I can use relation to express this, but 
> this always makes me confused. it's not easy to find which relation 
> attaches to which concept.

The general idea is that many of such relations are not necessarily 
bound all that tightly to particular concepts.  For example, NAME and 
AGE could apply just as reasonably to things like WINE or MOVIES or 
many other things.  That means you either have to attach the relations 
so far up the hierarchy that it isn't really all that helpful to know 
the attachment, or else you end up having an ontology that isn't that 
easy to extend when you need to add the additional relations.  The 
general principle of PowerLoom is that it should be easy to attach the 
information for those relations anyplace that it makes sense.

The idea that relations or functions like NAME or AGE have an 
independent meaning is a bit different from frame or object 
representations.  That is because PowerLoom is based on logic, and 
classical logic doesn't have slots.  It has predicates and functions.  
Now we depart in some ways from a strict classical logic and introduce 
some additional distinctions (such as concepts), but the underlying 
idea behind PowerLoom is that it uses a logical formulation of the 
ontologies.

In that spirit, the question of "which relation attaches to which 
concept" really becomes more one of the semantics of the relation.  If 
it makes sense to assert the relation about some entity, then you can 
do it.  For example, typically cars don't have names (in the sense of 
individual names, rather than model names).  But some special cars, and 
some people's personal cars have been given names.  Hot rods like 
"Greased Lightning" in the film "Grease" are an example of a care that 
would have a name.  So you gain a lot of flexibility in your 
representation by allowing relations and functions to exist as entities 
of their own.

That said, PowerLoom does have various predicates that allow you to 
make some statements along the lines that you suggest.  These are the 
so-called frame predicates.  They were introduced to enable users to 
construct descriptions similar to various frame-based representation 
systems.  Look at the relations that begin with the string "RANGE-", 
which are used to make type and number assertions about relations.  One 
could produce a model, for example, like the following:

(deffunction age

One could also use RANGE and DOMAIN assertions on relations and 
functions, but this may not do quite what you expect.  In PowerLoom, 
these sorts of constraints are not type restrictions, but rather 
inference procedures.  So if one were to assert that

   (assert (domain age person))
   (assert (age bottle-of-wine-23 5))

then PowerLoom would conclude that BOTTLE-OF-WINE-23 is of type person:

   (ask (person bottle-of-wine-23))  =>  TRUE

This is because PowerLoom uses the information about domains and ranges 
for inference.  Since age has a domain of Person, everything with an 
age must also be a person, and PowerLoom con use that rule in its 
reasoning.

>  I learn something about other knowledge representation language or 
> system. Some of them seems more clear in the whole structure. So i 
> wonder whether i can use slots or something similar.       And i also 
> want to ask a question: what's the defference between powerloom and 
> other KB language/system, like protege?

Well, there are a number of differences.

Broadly speaking, there are a number of KB language families and I can 
only give a very brief overview here.

Frame systems.  This is a representation system that uses terms such as 
slots, facets and restrictions.  The organization is by classes.  Slots 
do not have an independent existence, but belong to classes and have 
restrictions and other facets.  Protégé was initially based on a 
frame-like language, although it has evolved into more of a graphical 
editor that can support various underlying representation systems.  
Frames are closest to its native organization, but there are plug-ins 
that allow its use in other systems, such as description logics.

Semantic nets.  A more general formalism whereby the meaning of a 
concept is determined by links to other entities.

Description logics.  A specialized form of logic that is tailored to 
writing descriptions.  Typically a description logic will come with a 
concept classifier that works on specialized structural descriptions.  
Some examples of description logics are KL-ONE, Loom (our previous 
system), FaCT, OWL.  These systems have relations and functions that 
are separate from concepts.  They also have specialized forms for 
building descriptions based on the structure of concepts and relations. 
  For example, one can write a concept like
    Parent =  Person and at-least 1 child
and have the system understand that.  The logic in description logics 
is intentionally restricted in its expressive power so that tractable 
(and sometimes complete) classification algorithms can be run.  
Protégé, for example, also has an OWL backend, so it can be used to 
create and edit description-logic knowledge bases.

First-order logic.  First order predicate calculus.  This is a highly 
expressive language which does not allow a tractable and complete 
reasoner to be built.  A pure form of this language would be KIF 
(Knowledge Interchange Format).  It is also the basis for the PowerLoom 
representation system.  PowerLoom wants to provide a highly expressive 
language so that you can express the meaning of the domain, with the 
addition of pragmatic reasoners and inference procedures to allow its 
manipulation.  This allows one to express certain concepts that would 
not be possible to express in a typical description logic, like
    Person with more sons than daughters.
PowerLoom has a necessarily incomplete concept classifier, as well as a 
natural logic deduction engine.  It is also augmented with some other 
specialized reasoners.


>    I am sorry for bothering you so much. I am a graduate student and 
> learn not much in KB and  Ontology, i just learn powerloom for a short 
> time, maybe i am not clear in some concepts. Thanks for your help.

I realize that the overview above is necessarily brief and not a full 
tutorial, but I hope I have provided at least enough terminology to 
allow to find additional in-depth material on your own.

>
> _________________________________________________________________
> 享用世界上最大的电子邮件系统― MSN Hotmail。  http://www.hotmail.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.