[Top] [All Lists]

Re: [ontolog-forum] cyclic and acyclic definitions

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: Jawit Kien <jawit.kien@xxxxxxxxx>
Date: Wed, 22 Apr 2009 14:28:51 -0500
Message-id: <9f9644bb0904221228j26044dc7h3a13c91c34e8022d@xxxxxxxxxxxxxx>

On Wed, Apr 22, 2009 at 12:37 AM, Bart Gajderowicz <bgajdero@xxxxxxxxxx> wrote:
Thank you for your analysis and feedback.

BG>> Let me state that my original intention was to find a way to model
>> cyclic definitions in a complete system. My approach was to convert
>> cyclic to acyclic definitions, via context. My envisioned result is
>> purely hierarchical, for the purpose of comparing 2 hierarchies, not
>> their instances.

JK> Your result is hierarchical or a hierarchy?  You defining a function that
> has a result which is a hiearchy, or are you describing the result
> (presumably of the comparison operation) as being able to be described
> as a matching some defintion of "hierarchy", hence able to use the
> adjective "hierarchical" to describe it.

My models and result are both hierarchies.

> I assume a cyclic definition is one that uses the defined term in the
> definition of that term. like saying a cat is a cat with black fur.
> Or, a #$Thing is an instance of a #$Collection and a #$Collection is
> an instance of a #$Thing.

That's what my definition of cyclic is as well. The transitive example
was a distinction I would try to make between objects and their
relationships in different context. In one context they are
transitive, in another they are not. This was a response to Azamat's

JK> I've been told that Set theory does allow self-references in definitions but
> Mereology Theory does not. Which are you using?

Mereology Theory. The only reason is that cyclic definitions would
introduce incompleteness into FOL sentences.

How does a cyclic definition introduce incompleteness?
Maybe I don't know what incompleteness means for a logical theory.
Does "incompleteness" mean that you can prove a contradiction,
and then since you are saying a contradiction is true, then anything
possible you want to say is true as well? 

>> AA> There is much bigger problem here, the semantic one.
>> > Nobody can describe natural phenomena with logical syntax. Otherwise
>> > science
>> > would be redundant.

JK> Don't you agree that logical syntax (and the meanings from FOPL) just
> provide a different tool to describe phenomena? Isn't the point of
> science to describe things, so a more precise tool to describe it would
> be better?

I agree, and that's what I'm after.

Good. At least we have a goal that I agree with.

>> AA> 1. a denotation rule (reference), indicating the physical referent p;
>> I don't have to be concerned with indexicality of physical objects,
>> only classification through the fact that at some point, a particle
>> with similar attributes existed, and had a certain relationship to
>> something else, and was classified as type of X particle.
JK> You said "at some point" is that a physical location, or a point in time?
> or at some step in a logical inference?

At some point in time.

I seem to recall that if you are not explicitly using time as a variable in a logical
system, then you have to deal with "timeless" things that are always true rather
than being concerned with what used to exist or what could exist.

The first idea I thought of as timeless was "all apples are red" but then I remember
that apples start off green, and then turn red, and then I guess, turn brown and mushy,
ending with it black and gnarly. So I can't really say that is timeless.

My next reaction was that I could use a 4-d representation like Matthew West
suggests sometimes. But then I realised that if any particular apple over time
has several colors, then I guess the four-dimensional apple really has a series
of colors (indexed by the "time-slice" you are interested in)

This would work, and would let "colorOf" be a predicate that only makes sense for
a timeslice rather than for the 4 dimensional apple.  The thing is, that I can easily
imagine this "colorOf" being a relation between a 4-dimensional apple and a
green-red-brown-black "color column" because really, the apply isn't green and then
red, it actually becomes less green and more red over a time range, likewise for
each of the other color changes. Likewise I can imagine that the "sizeof" predicate
when a 4-dim predicate, would connect to a column of numbers+units, kindof
like a function mapping a time-marker to a size, I guess, because at any particular
time the apple has only one particular size.  I said a time-marker, because, while
a universal time since the beginning of the universe, so to speak, could be the
input, I think it more general to talk of a time since the apple was plucked from
the tree, or summat like that.  A relative time like that would let you use the same
function over and over again for different apples, since presumably apples that
are sufficiently alike will change color at about the same rate.

Of course, I might be confused.

JK> When you say "particle" are you
> just trying to be more general than just saying "object" or "thing" or are
> you thinking of sub atomic particles, or particles in a language?

Particle was just used here from previous examples, and should be
taken as "object" or "thing".

JK> I'm sorry, even when I try to state what you just said formally, I get too
> many questions.
>       classification - the act of assigning something a class
> or   classification - the hierarchy of classes and subclasses that could be
>                         used assign some thing a class.

The main one is "classification - the act of assigning something a class".
This is what I'm trying to do. I can identify a Cat as a Species, but
I can also identify Cat as an instance called Fido, and the context of
my classification changes.

Okay, so the context is some kind of group of true statements which
are used to make sense of what happens when you do the activity of
classifying something ("assigning something a class"). I guess this
is indistinguishable from a microtheory, but someone who knows more
about will have to weigh in to see if I am guess right.
By the way, I assume you made a typo when you said you would identify
a Cat as an instance named Fido. and really meant that you would classify
an instance named Fido as an instance of the class named Cat.

Thinking of this, I guess when I said "an instance named Fido", I must
be thinking of something like  "an instance of #$Thing named Fido"
where #$Thing is a generalization of Cat.

The secondary one is something that would be achieved through an
empirical method.  What I mean here is that I don't know in how many
ways I can classify a Cat.  If I have only experienced gray Cats, I
wouldn't even think of classifying them by Colour. If at some point I
find a cat which is Black, I have to add Colour to my classification.

I guess I'm thinking of databases where a "colorOf" column would exist
for each instance. But what if you add Colour as part of your classification
but you don't know what color a particular instance might happen to be?
Would the value of Colour attached to the colorOf predicate be in
some kind of vague "super-position" where it is all possible colours at the
same time? And if so, what about Classifications that REQUIRE the
colorOf predicate to have some particular value, like I assume a BlackCat
classification would require. Is the instance both a BlackCat and a
TabbyCat and a GreyFn(Cat) at the same time?
Or do you have some way of adding a "Colour" that isn't actually a color
but rather the "Unknown" Color, which is kind of default true until you
actually know what color that particular Instance may happen to be?
Then does BlackCat have some kind of exception rule that says all
cats that have UnknownColor as the "colorOf" are possibly instances?

I guess a Fuzzy Logic value of a probability of Black colour makes sense.
something like if you know apriori that 25% of all cats are black then
the value of colorOf when Unknown has a 25% blackness. If all the other
colors have less than 25% probability of being true then the system
could do some kind of default logic where it assumes that the cat is
a BlackCat until it has information to the contrary.  This would necessitate
that the system was a non-monotonic reasoner I guess, which I have been
told is actually quite hard to implement.

Or am I confusing the probability of something being true with the percentage
of certainty that something is true?

Remember the Black Swan example.  Bob says All Swans are white. If Bob
goes to New Zealand, he finds black swans, and his premise is wrong.
Well, I would say, through fuzzy logic, that he's not wrong, only less
right.  This is how I'm hoping to add uncertainty to this
classification. As a whole, I can use universal quantification and
assign a degrees of truth to an entire class. As an individual, I can
use existential quantification and assign a degree of truth to that
object in terms of a context.

Does assigning a degree of truth to a class mean anything? How can a class
be true or false? I thought only sentences could be true and false. Or are you
using some shorthand (metonymy?) to mean that the "truth" of a class is the
same as the truth of some sentence that holds for every instance of the class?
I can imagine a pool of sentences that are all true of every instance, a pool
of sentences that are thought to be true of every instance because no counter
example has yet been found, as well as two corresponding pools of sentences
that are all false or are thought to be false.  These would correspond to
"sufficient" true sentences, I guess for some kind of modal logic instead of
a First Order Predicate Logic (FOPL).  These sentences could be tied together
to make some kind of grand single sentence with logical AND between each
one. I don't really know what you would do for a more fuzzy kind of logic.
Would you have pools of sentences that are only thought to be true if some
kind of guard condition is true? maybe like an IF-THEN statement or a WHEN
statement? But this seems to be just a way to keep a single class when the
natural thing would be just to make sub-classes where the guard condition
is known to be true, and then put those dependent pools in as the known-true
and the thought-to-be-true pools of the sub-class.

I guess if you had a pool of sentences that could be combined with a logical
OR between each one, that would be something like a "necessarily" true
condition for the class using modal logic. There would be similary necessarily
thought-to-be-true, "necessarily false" and "necessarily-thought-to-be-false"
pools as well.

If I don't really understand how "necessarily true" and "sufficiently true" work
for modal logic, could someone tell me where I am wrong?

The reason I think that these would be useful in an ontology is that if you have
a predicate like "weightOf" which is used in one of these 8? pools about
instances of a class, and you have some instance of #$Thing which you don't
know if it is an instance of a class, but you do know that the predicate doesn't
make sense for the instance, you can immediately reject it as being an instance
of the class. And I guess you could say you know that it is an instance of the
NOT-class (is that called a ~Cat in this example?) that John Sowa talks
about in some of his writings.

If you don't actually have a true or false value for each sentence, (and recursively
for each predicate-on-some-values ) but you have some kind of fuzzy truth number
instead, I guess you can use a FUZZY-AND and a FUZZY-OR logical connector
above on the sentences.  The thing I don't know is how do you know what
fuzzy-truth number to attach to a particular sentence or predicate?  It seems that
the fuzzy-truth operations sound good on a slide show, but aren't really useful
in real knowledge base.

Could someone enlighten me please about how you actually do this fuzzy logic
stuff ?

JK> similar attributes - how is this different that having a "certain
> relationship"
> aren't attributes relationships too? what makes the "certain relationship"
> special enough? and don't attributes refer to something else as well?

In FOL, predicates can be properties or relationships. The
interpretation would be: properties are atomic; attributes can be
structures themselves.  As structures, they are relationships with
other objects.

so relationships refer to "external" entities and  properties refer to "internal" entities?
Does each class have a list of each so you can tell the difference? Is a property just
a monadic predicate? What kind of structure are you thinking of? A C struct?
a list of properties and methods like some object oriented languages use?
a mathematical structure like a ring or field or partial order or something more exotic?

JK> I assume "type of X particle"  is another way of saying the particle can be
> assigned to the class X.  Why do you use the word "type" here instead of
> class?

I was defining the "type of" context for R10, not the class of X. In
my very limited example they are either as a 'category' or 'instance.'

I'm still confused, could you elaborate a little more?

BG>> I wouldn't use temporal information to identify a particular particle,
>> but I could use the recorded speed of some particle, to identify
>> others as belonging to a group that behave in a similar manner.

JK> If we are talking about physics and atomic particles, isn't there some
> kind of law that says you can't know location and some other quality at the
> same time?

It's the Heisenberg uncertainty principle. In my response, I was
giving an example of how I would use the information available for
classification. This would be the second classification I mentioned
above. Nothing to do with particles specifically.

That's the principle I was thinking of. So even if you aren't really talking
about particles, is there a similar principle that holds between some set
of attributes/qualities/properties/markers/relationships/truth-valued-connectors ?
I guess this would have to be a discussion in its own right...

Do you envision associating with each individual thing in the computer
the reasons why that individual is an instance of a particular class? 
I assume you are allowing an individual to be an instance of more than one
class.  I guess if you don't, you could identify an "individual" as a group of instances
all of which are known to be the "same thing" but which really is the
instance of the thing as one class or are the instance of the thing as some other class.
Like if Fido was a three-legged talking dog, then the label "Fido" would get you to
the group of items, and one item in the group is "Fido as an instance of the class Dog"
and another item is "Fido as an instance of three-legged Things" and another item
is "Fido as a talking thing", but since you have a single inheritance hierarchy, each
item has just a single path up to the root. As long as  you have control over what happens
when a word is used to describe something in the computer, you could do this kind
of slight-of-hand and no one could tell if you had a single-hierarchy or a multiple-hierarchy.
but maybe it would make inference more efficient or something.


BG>> If I implement some uncertainty measures, something like fuzzy logic,
>> at some level in the system, most likely at the last steps of
>> inference, I could dynamically calculate class membership or inclusion
>> based on empirical data.

JK> I assume you mean class membership in the particles that are acting in
> a certain way historically, which is what you were talking about before.
> Why would inference, fuzzy logic or uncertainty even come up?

I can classify something based on fuzzy sets. I can say that a Gray
Cat belongs 50% in the Black Cat set, and 50% in the White Cat set. I
can apply statistical inference. I can only say that, once I found a
contradiction in my definition of a Cat where I assumed all cats where
Black. The ultimate goal is to find an automated ontology mapping
algorithm.  If I have two conflicting definitions, I can spot
differences. It's not a trivial step, I realize.  But if the
definitions are the same, and still someone points out that a
difference exists, then I can look at the observations which led the
ontologists to make that definition, and get a better understanding of
what a Cat is, and realize that there actually Gray, Black, and White
cats. The fact that the Colour even matters is a clue, the values are
a bonus.

That kind of makes sense. I don't know what statistical inference really
means. Have you got a link I could follow to read more about it?
Is this the same thing as Bayesian probablilties where you can tell
the difference between whether something is an actual conclustion
or just a coincidence?  I seem to recall something like that in school.

BG>>  This may be used to either reach a new level
>> of granularity, or resolve conflicting definitions, that are not
>> available through reasoning alone. I can equate this to defining a
>> structure for 2 molecules, X and Z, but resorting to experiments to
>> see how they interact. If up to that point, X and a new molecule Y
>> were structurally equivalent, but reacted differently to Z, I could
>> say that structurally X and Y are the same, but they are different in
>> the context of "reaction with Z".

JK> You  seem to be using "reaction with Z" as a way of classifying X & Y.
> how is this different from the attributes and relationships  you talked
> about earlier?

It's actually not.  I'm looking for ways to identify relationships in
different contexts. A "reaction" is a different type of relationship,
in the context of 'reacting' to something.

so I guess reaction as you use it here is a metaphor based on a chemical
reaction? Does the metaphor allow for things that are catalysts in that they
aren't actually part of the reaction, but when they are around they make the
reaction happen faster?  I guess if you are using a reaction as a metaphor
for the logical inferencing process,  there could be some facts that make
the inferencing happen quicker.

Such as if you know who someone's father is and who that person's
father is, you could conclude who the original person's grandfather might be.
Of course if you have a candidate grandfather, you still have to find out
if the father's father is the same person as the the candidate grandfather.
It could be that you have two aliases for the same person, or that the
candidate grandfather is actually not the paternal grandfather at all, but
is the maternal grandfather.

But maybe you aren't using a chemical reaction as the basis for your
metaphor and you mean something else like an allergic reaction or
a physics action-reaction as the basis for what you are trying to say?

JK> By the way, now you seem to be talking about molecules instead
> of particles. I'm very confused about the actual things you are trying
> to classify.  Unless this is some metaphor that I don't understand.

I should stick to cats and dogs. Actually, my next step is defining
this within some domain, like integer numbers, so my examples and
explanations are more consistent, and I'm not talking about apples and
dogs. I can then expand that to rationals, reals, etc. Then someday,
cats and dogs.

Nah, numbers are boring unless you have a mathematical ontology.
Use cats and dogs, and maybe even mooses. (moosen? meese?)

BG>> In addition to structural information:
>> (forall x,z (R(x,z) iff exists y, s.t. R(x,y) ^ R(y,z)))
>> ... I add something along the lines of:
>> (forall x,z (R1(x,z) iff exists y, s.t. R(x,y) ^ R(y,z)) ^ R2(x,y) ^
>> R2(y,z) )
>> Where R2(a,b) could be:
>> R2(a,b) => a.id < b.id
>>  OR
>> R2(a,b) => a.country is part of b.continent
JK> Does you added axiom mean that
>  you basically add a transitive axiom for R  & R2 at the same time?
>  doesn't the original axion mean that the relation R obeys a  transitive
> axiom ?

Yes, but I want to use that same relation R10 to express transitivity
in different contexts. For that I need a new clause (R2), which checks
the context.

Is this definition of context fundamentally a different approach than attaching the
pools of statements to a class like I outlined above?  It feels like context-sensitive
in the same way that context-sensitive left-hand-sides exist in a context-sensitive
grammar, but which kind of left-hand-sides are disallowed in context-free grammars.

BG>> You can define ranges like this for error checking in XML,
>> specifically ranges in OWL to define variations in objects. So that's
>> nothing new.
>> Back to my proposed way of handling cyclic definitions, by changing
>> the attributes and properties to acyclic definitions:
>> Following Azamat's questions:
>> I could perhaps define relationships this way to determine if A and B
>> are transitive hierarchies with R10(A,B) (see below):

JK> so A is a transitive hierarchy, and B is a transitive hierarchy.
> ( actually, I presume they are actually variables  that stand for two
> specific transitive hierarchies )  I think of a hierarchy as being
> iso-morphic to a tree of nodes.  Thus R10 is a relationship
> between trees.


BG>> 1. restrained by the class inclusion relationships
>> K-9 is a Species is-a Animal
JK> so K-9 is a class,  Species is a class,  Animal is a Class,
> Species is a  specialized class of Animal
> and K-9 is an instance of the class Species ?
> presumably both A & B are each a hierarchy of classes?
> so my tree-of-nodes has each node as a class?


BG>> 2. restrained by the the class membership relationship
>> Fido is a K-9

JK> Fido is an instance of the class K-9 ?
> What is the tie to A and B? Is Fido an instance of A and
> at the same time an instance of B ?  But what does it
> mean to be an instance of a hierarchy? I would have thought
> an instance of a hierarchy was a tree, but now you seem
> to be defining instance as a relationship between some
> other group of things to the classes that are the nodes
> in the trees. so Fido can't be an instance of A or B,
> I guess, unless Fido is the name for some tree which
> can be classified as a "K-9".

Yes Fido would have its own tree, but since Fido is an instance, it
would be compared to the predicates of the 'instances' context, which
have a hierarchy of classification rules., separate from the context
of the subclass/superclass hierarchy.

Whoa. Fido would have its own tree? Are  you saying Fido is a tree?
I thought it was a node in a tree, or actually the name of two nodes,
one in each tree?

You also just threw in a hierachy of classification rules rather
than a hierarchy of nodes.  This is moving from a taxonomy to a formal
ontology, I think.  Are these classification rules generalizations of each
other, or are they independent of each other? Are these classification
rules the pools that I talked about earlier? or some other beastie?

BG>> In the context of **structural categories**:
>> R10(K-9, Animal) holds
>> R10(Fido, Animal) doesn't hold, because Fido is not a subcategory of
>> Animal, only an instance of it.

JK> R10 is an un-named relation that holds between the class K-9 and the class
> Animal
> ? But where do A and B come into this? I thought R10 was taking hierarchies,
> not elements of a hierarchy.

R10 tells you whether A and B have a transitive relationship between them.

um. did you mean to say that the nodes (classes) of A have a transitive relationship between
each other, and there is a transitive relationship between the nodes (classes) of B?

or did you mean there is some kind of tree that has trees (A & B) as nodes, and there is some
kind of relationship between those trees that is transitive?

BG>> In the context of **instances**:
>> R10(K-9, Animal) does not hold because you need an instance attributes
>> to start with.

JK> What does this mean? an instance attribute to start with? Are we following
> some path, that I haven't seen explicated yet, which has an instance
> attribute
> (presumably a relation on instances) as the "starting point" of the path?

Yes, there is a path, sort of. I shouldn't have said "start with", as
it implied something I didn't intend. What I meant was that Fido can
only exist as an instance. Notice I said the context of **instances**.
R10 holds only if it's in the right context. K-9 and Animal have a
subclass/superclass relation, not an instance-of relation, like Fido
and K-9. I realize that K-9 can be an instance of a subclass of
Animal, and that this can be misleading.

To my way of thinking, Fido can't "exist as an instance". Fido has to
exist as an instance of Some Class.  I thought K-9 and Animal have
a subclass/superclass (class-generalization) relationship between them.
In my mind, if X is a subclass of Y, then it doesn't make sense to say
that X is an instance of Y.  Hmm. maybe I need to take that back. I
can imagine saying that #$Dog is a collection of individuals, thus each
of those individuals are instances of the class #$Dog.  So since each
of those individuals are also instances of the class/collection #$Thing,
then #$Dog is a subclass of #$Thing.  But #$Dog is an individual as
well as being a class/collection, so it is a an instance of #$Thing as
well.   Is there any other counter example? My gut says that #$Thing
as the Universal Set gets a special case that other class/collections
can't get, notably because #$Thing is an individual as well, and is
an instance of itself.  (That recursive kind of relationship that started
this whole thread)

BG>> Both of these hold because Fido is an instance of K-9, which is a
>> subclassOf Animal.
>> R10(Fido, K-9) hold
>> R10(Fido, Animal) holds

JK> whoa, didn't you just say a paragraph ago that F10(Fido,Animal) does NOT
> hold?

In the **structural categories** context it does not hold.  In the
**instance** context it does.  Fido is not a subclass of Animal, in
the same way as Species is. In the context of **instances** however,
the two relations above hold:
Fido is K-9 - as an instance
K-9 is a Animal as a subclass
so Fido is an Animal - as an instance
BUT: Fido is not a subclass of Animal.  The cardinality of Animal
subclasses doesn't change if we add Marmaduke to the mix.  The only
change is to the cardinality of instances of Animals.

This mostly makes sense. But one question...
How do I know what context I'm in? Is this where Situational Logic comes in?
I wasn't too sure what it was and what people mean by it.

BG>> I'm not sure how this distinction would work, but one possibility is
>> types:
>> (forall x,y R10(x,y) iff (x.type == y.type))
>> ... where R is a subclassOf relation, and R1 is a special R relation
>> with type check for transitivity using R10:
>> (forall x,z (R1(x,z) iff exists y, s.t. R(x,y) ^ R(y,z)) ^ R10(x,z))
>> Fido.type => 'instance'
>> K-9.type => 'category'
>> Species.type => 'category'
>> Animal.type => 'category'
>> Note that Fido could never be of type 'category' with Animal, only
>> instance.
>> If we wanted to look at Fido's individual parts, they would be Fido's
>> paw, Fido's tail, etc, transitive to K-9's-paw, K-9's-tail. I'd have
>> to prevent Animals from having paws.  Perhaps through empirical means,
>> where I find an instance Giraffe named Mindy which is an animal but
>> does not have paws.

So this "type" property is some kind of property whose value is the name
of another property?  Is it a single valued property? or is it possible that
the sentence is true where
ThereExists FOO such that (FOO.type='instance') Logical-AND (FOO.type='category')

JK> It seems that you are engaging in some logical conclusion that almost makes
> sense, but not quite there. If Animal is a category, which I assume is
> something
> like a #$Collection, it is not of the same natural kind as Fido, so you
> can't
> infer along an instance-of chain which has two categories in it.

That's exactly right.

Hey, I'm getting some of what you are saying...

JK> in other words, since Fido is an instance of K-9 then the instances of K-9
> have the same predicates as Fido, but K-9 is a collection, so it will have
> the predicates for collections. not the predicates for instances of K-9.
> by transitivity, I would assume that since K-9 is a specialization of
> Animal,
> then if Fido is an instance of K-9, then Fido is an instance of Animal.
> hence the the predicates that apply to instances of Animal would also
> apply to Fido as well.  I would NOT assume that the predicates that apply
> to K-9 also apply to the instances of Animal, as presumably there could
> be other specializations of Animal which are disjoint from K-9.
> The predicates that applied to the instances of Animal would apply to
> the instances of some other specialization of Animal (call it Feline),
> as well as K-9. That is what it mans to say that K-9 is a specialization
> of Animal. (or that Feline is a specialization of Animal)

Again, exactly right.  I needed to use specialization here. It's the
predicates that change from context to context.

Specialization of the predicates or specialization of the classes?
I think I was using generalization/specialization to talk about the relationship
between the classes.  I recall that there is also something like
specPreds and genlPreds that is defined over predicates too.


Bart Gajderowicz
MSc Candidate, '10
Dept. of Computer Science
Ryerson University

Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (01)

<Prev in Thread] Current Thread [Next in Thread>