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