Re: Ontologies =?= Languages

>pat:
> > sandro:
> > > pat:
> > > > sandro:
> > > > >The idea (I think) is that the languages are themselves just
> > > > >ontologies.
> > > >
> > > > That doesn't make sense. Really, it doesnt. What you could do, is to
> > > > use an ontology to describe the SYNTAX of another language, which is
> > > > in fact what you are doing in your example. But then you need to
> > > > somehow USE that syntax to say what you need to say, not just REFER
> > > > to it.
> > >
> > >What is the difference between an ontology and a language?
> >
> > Like that between programs and programming languages. Ontologies are
> > written in languages. Once the rules of the language are given, then
> > you can write lots of different ontologies in it; but without the
> > language, you can't get started. It would be like writing code in a
> > language that hadnt been invented yet, and expecting it to compile
> > itself.
> >
> > > They both
> > >involve parties communicating using some shared notions about the
> > >structure of their domain of discourse and some symbols with shared
> > >denotation, as far as I can tell.
> >
> > But the ontologies consist of assertions about the domain only by
> > virtue of the semantic rules supplied by the language they are
> > written in.
>
>I agree that one can express an ontology in a language.  In that case
>clearly the ontology and the language are different things.
>
>My question is about when you use them each to communicate about the
>same domain.  An ontology for discussing fruit -vs- a language for
>discussing fruit.

Hmmm. A language for describing fruit would have to have a semantics 
of fruit, which is quite a stretch for a formal semantics.

>Is DAML+OIL an ontology for discussing ontologies,
>or a language for discussing ontologies?

Neither, it is a language for describing classes, mostly. A set of 
DAML+OIL assertions *is* an ontology; it doesn't *describe* an 
ontology.

>
>I think the ontology is somewhat more abstract -- it can't have its
>own syntax -- but I'm not sure where to draw the line.  Maybe an
>ontology for fruit + a logic language (eg FOL) == a language for
>discussing fruit?

That would be my way of putting it, yes. Logic makes a distinction 
between logical and nonlogical vocabulary (== reserved word vs. 
identifier), where the logical vocabulary is all the marks whose 
meaning is determined by the language itself (eg the connectives, 
quantifiers, maybe things like modalities, whatever) and the rest 
(constant symbols, relation and function names) is just names as far 
as the logic is concerned, so it you want them to mean something then 
you have to write axioms(/sentences/rules) to specify their meanings. 
(There are some interesting issues here, BTW, eg do you consider '=' 
to be logical or nonlogical? If its logical you don't need to write 
axioms like (forall (?x ?y)(implies (= ?x ?y)(= ?y ?x)))), but you do 
need to implement your reasoner so that it checks all the cases of 
equality and inequality. ) You would expect a reasoner to guarantee 
that inferences involving logical symbols work out right (ie are 
valid wrt the semantics) but it would treat nonlogical symbols just 
as blank names, and any meanings they are supposed to ahve would 
arise from reasoning over the axioms that use them.  By an 'ontology' 
I mean just a collection of axioms.

> Here I'm thinking of an ontology as a vocabulary
>(a set of symbols denoting mostly properties of fruit) with a shared
>understanding of their meaning.

Ah, thats not quite what I mean. In the formal ontology world, 
'ontology' means more like a set of axioms which are supposed to 
represent that shared understanding.

>
>But if we're layering on ground atomic binary predicates, then what's
>the difference?   What's the difference between an ontology for fruit
>layered on that base and a language for fruit layered on that base?

The difference is that an ontology would assume the semantics of that 
base, and that would be its logical symbols. So if they couldnt say 
very much, it won't be able to say very much. I'm not sure what a 
layering a *language* on a base means, but if it means implementing 
the language on that base as a datastructure (eg say implementing 
prolog in LISP) then the semantics of the base is irrelevant, and the 
layered *language* would presumably have its own semantics, which 
might be completely different from that of the base. The difference 
is whether 'layering on' means using as a language with a semantics, 
or using as in implementation technique, ie encoding in 
datastructures.

Does this all make sense to y'all? I guess it seems so second-nature 
to me that its hard to see how not to see it this way.

Pat Hayes

---------------------------------------------------------------------
IHMC					(850)434 8903   home
40 South Alcaniz St.			(850)202 4416   office
Pensacola,  FL 32501			(850)202 4440   fax
phayes@ai.uwf.edu 
http://www.coginst.uwf.edu/~phayes

Received on Saturday, 19 May 2001 22:15:15 UTC