RE: Declarations in OWL 1.1

Hello,

I'm not sure whether I understood Peter's e-mail correctly, so please let me recapitulate.

The solution T2+D2 says:

- Add the typing triples to each ontology whether an entity is used.
- Encode declarations in rdf:type.

I'm not sure how this solves the typing errors problem; also, it has problems w.r.t. declarations.

You might be able to solve the typing error problem within one ontology, but not across the imported ontologies. Assume that O
imports O', an entity e is "declared" in O', but O uses e. Then, because of D2, the ontology O' contains a typing triple for e.
However, because of T2, the ontology O contains the typing triple for e as well. Now, it is not clear at all where e has been
declared: in O or in O'? Hence, while you can check for correct typing within one ontology O, you can't check whether you are
reusing correctly the vocabulary that has been declared in O'.



Furthermore, in this solution, we should make declarations obligatory, and not optional. That is, we should extend the structural
specification and say that adding an axiom to an ontology containing an entity that has not been declared *in this ontology* is
incorrect. Here is an explanation why.

Assume that an ontology O uses an entity e, but does not declare e. This is perfectly possible in the structural specification,
which is fully typed, so it does not really need declarations. Assume now that you save O into an RDF graph. Since O uses e, the
serialization will contain a typing triple for e. Now when you load the serialization, you don't know whether the typing triple was
introduced because (i) you used e in the ontology but e has not been declared, or (ii) you declared e in the ontology, or (ii) both.
In a way, the RDF parsing problem is ill-defined.

The only way to fix this is to say that, at the level of the structural specification, each entity must be declared in the ontology
it is used. Now, you can safely parse each typing triple into a declaration -- you simply know that the declaration must be there.

It seems to me that T2 and D2 are actually incompatible with the true spirit of declarations. If we were to go with that solution,
then we might save ourselves the trouble and not introduce a concept of declarations in the first place.

Regards,

	Boris

> -----Original Message-----
> From: Peter F. Patel-Schneider [mailto:pfps@research.bell-labs.com]
> Sent: 16 December 2007 16:55
> To: boris.motik@comlab.ox.ac.uk
> Cc: public-owl-wg@w3.org
> Subject: Re: Declarations in OWL 1.1
> 
> From: "Boris Motik" <boris.motik@comlab.ox.ac.uk>
> Subject: Declarations in OWL 1.1
> Date: Sat, 15 Dec 2007 20:02:41 -0000
> 
> > Hello,
> >
> > At the F2F meeting, I was asked to provide some information about OWL
> > declarations, so here it is.
> >
> > Why declarations?
> > -----------------
> 
> [...]
> 
> > 1. You should be able to put an entity into an ontology
> > =======================================================
> 
> [...]
> 
> > 2. You should prevent "spelling errors"
> > =======================================
> 
> [...]
> 
> > 3. Typing
> > =========
> 
> [...]
> 
> > Solutions
> > ---------
> 
> [...]
> 
> > D2. Use rdf:type
> > ================
> >
> > We take rdf:type as declarations. This is *possible* only with T1 and T3
> > solution for typing. In the case of T3, this requires each
> > entity to be declared; for T1 declarations can be made optional.
> 
> Soluton T2 (a use of an entity requires a typing triple in the ontology
> for that entity) along with D2 solves the spelling errors problem and
> the typing problem.  It is just that it doesn't solve the "which
> entities are 'declared' in this ontology" issue.  If you don't care
> about this issue, then T2+D2 is quite acceptable.
> 
> > Regards,
> >
> > 	Boris
> 
> peter

Received on Sunday, 16 December 2007 18:11:40 UTC