W3C home > Mailing lists > Public > public-owl-wg@w3.org > December 2007

Re: Declarations in OWL 1.1

From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
Date: Mon, 17 Dec 2007 05:00:02 -0500 (EST)
Message-Id: <20071217.050002.98046107.pfps@research.bell-labs.com>
To: boris.motik@comlab.ox.ac.uk
Cc: public-owl-wg@w3.org

From: "Boris Motik" <boris.motik@comlab.ox.ac.uk>
Subject: RE: Declarations in OWL 1.1
Date: Sun, 16 Dec 2007 18:10:49 -0000

> 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'.

Agreed, but neither does do declarations, as currently stated, solve
this problem, because multiple declarations are allowed for an entity,
leading to the exact same problem as described above.

> 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.

This depends on how you want declarations to work.  I would be happy
with a solution that does make declarations mandatory in the functional
syntax and uses declarations to disambiguate the syntax.  I don't view
this as the same as eliminating declarations at all, instead I view it
as similar to the situation in object-oriented programming languages,
where parameter declarations are repeated in specializations.

> Regards,
> 	Boris

Received on Monday, 17 December 2007 10:20:55 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:41:41 UTC