Frank,
> Jonathan Borden wrote:
>
> > It has been claimed that allowing nested class definitions in OWL would
give
> > difficulties for tools that wish to roundtrip ontologies. I don't think
that
> > that alone would be the case for the following reason:
> >
> > One of the properties of the RDF/XML syntax is that an OWL class
definition
> > with nested class definitions can be converted into a form consisting of
> > multiple 'top level' classes. [follows example]
>
>
> It is exactly as you say.
>
> Indeed, tool builders for DAML+OIL
> have reported problems with "round tripping": once a "frame-style"
> DAML+OIL ontology has been parsed into RDF triples, it is very hard,
> if not impossible, to reconstruct the original grouping of the
> statements from those statements, causing he "frame-style" to be lost
(even
> though the formal meaning remains identical), just as happens in
> your example.
As I have shown, for every class definition using nested syntax there exists
an equivalent set of class definitoins that use 'top-level' syntax. We agree
that the triples are in some way equivalent (modulo bNodes that are given
explicit names in the top level syntax).
> The point is very well documented in [1].
>
> An important feature of the OWL Light segment is that it's > *only*<
syntax is
> of slots grouped into frames, so it doesn't suffer from the problem of
> flattening grouped definitions into multiple top-level statements.
>
You see, I am saying that the ability to flatten is a _feature_ not a
problem. A tool which uses the 'frame-style' can regenerate the
'frame-style' by regenerating the RDF graph, repacing all bNodes with a
name, perhaps a random name such as "genid()".
What I am saying is that if the tool _only_ uses the top level syntax
(equivalent) and always converts nested syntax into top level, then the
created ontologies can be roundtripped. Certainly roundtrippind _nested_
ontologies will be difficult, but the whole point of "OWL-Lite" is that the
ontology editor will only use the top level syntax. Ok, so convert nested
into top level (its all the same to RDF) and just use top level.
Perhaps I am missing something? Of course the other option is to edit your
ontologies as XML and parse as RDF when needed. This is how most XML
systems do things, e.g. even though XML is parsed into an internal object
model e.g. the DOM, _editors_ don't edit the DOM, they edit the XML. Indeed
if I were writing an ontology editor, I would edit your abstract syntax
directly and then generate XML/RDF from that. I will say more about this
later.
Jonathan