W3C home > Mailing lists > Public > www-webont-wg@w3.org > March 2002

LANG: ONX round 2 was Re: LANG: OWL non-xml syntax

From: Jonathan Borden <jonathan@openhealth.org>
Date: Sun, 24 Mar 2002 05:15:57 -0500
Message-ID: <013901c1d31c$e4fb3d20$0301a8c0@ne.client2.attbi.com>
To: "Frank van Harmelen" <Frank.van.Harmelen@cs.vu.nl>, "WebOnt WG" <www-webont-wg@w3.org>
Frank, et al.

I have had another go through reworking the abstract syntax (and filling in
the terminals). A few points:

1) I have globally replaced productions like

"classID" with "Class" where

Class ::= "class" classID? ( (super|Slot| DefinedClassDesc)* )

that is to say, if you want to use a classID simply do:

class ex:foo

or

class <#foo>

and if you want to create an anonymous class definition simply do

class ( subClassOf( class ex:foo) )

or to create a named class definition:

class ex:bar (subClassOf( class <#foo>)
                    property <#baz> (
                                dataValue(xsd:string("a red rope"))
                                )
                    property <#bop> ( range(class ex:another) )
                    )

Same for individialID => Individual, propertyID => Property etc. This usage
fits nicely with the RDF/XML syntax

This feels to me like a 'frame based approach' is this correct?

2) I have moved "cardinality" et al. to the "frame" section. I agree that
"required" "singleValued" etc are easy to understand than cardinalities
_yet_ cardinalities really aren't that hard ... everyone who uses XML Schema
deals with cardinalities etc. The most important reasons are that:

a) this issue is orthogonal to frame vs. DL (though is apropos to simple vs.
complex)
b) the production for "Description" can be greatly simplified

3) Having done (2) it seems that there is still no distinguishing syntax for
Primitive vs. Defined in the Frame based syntax -- from your last message I
take away that the distinguishing features of a DefinedClass in DAML+OIL are
the presence of:

oneOf | intersectionOf | unionOf | complementOf

Is this true? Since these are only in the DL part, and removing cardinality
et al. (which really aren't frame vs. DL) _from a syntactic point of view_
is the presence of one of these the only distinguishing feature of

a) frame vs. DL
b) primitive vs. defined

Please have another look at
http://www.openhealth.org/WOWG/OWLnonXMLsyntax.txt

other related questions:

-what if a class is subclassed from both "oneOf" and slot descriptor e.g.
inherits from both a primitive and defined class, is it automatically
defined?
- the frame part has the EnumeratedClass production, isn't this the same as
"oneOf" ?

[...]
>
> All of this is DL-style modelling in its full expressive but hard-to-grasp
> glory. Do you see why the frame-style modelling is so much easier to grasp
> (but also much less expressive)? And why having only section 4 as OWL (ie
> having only DAML+OIL) would make the language very hard to grasp for many
people?
>

Yes I see your point, but I am trying to pin down the essential differences
a little better.

To say that
<Property rdf:ID="foo">
        <rdf:value>34</rdf:value>
</Property>

defines a class of all things that have 'foo=34' is a bit conceptual, but on
the other hand:

<Class>
    <Restriction>
            <onProperty rdf:resource="#foo">
            <toValue>34</toValue>
    </Restriction>
</Class>

reads to me: a class which has the property of a restriction on the value of
the "foo" property to "34"

i.e. it is not that hard for me to grasp this -- admittedly it is not an
introductory concept.

At this point, it is a bit more confusing to me why having the properties

"oneOf, intersectionOf ..." make something either description as opposed to
frame based, or defined as opposed to primitive...

What I would like to do is to present the language in a logical fashion,
introduce users to things they need to know, and lead them into more
advanced topics. Clearly this is extremely important.

(Perhaps the answer is to present the entire language as 'frame based' but
with a few advanced topics etc.)

> PS:
> I'm not sure why you thought it should be different?
> I'm guessing now, but the iteration you were looking for happens in the
> production DefinedClass and PrimitiveClass: a class is defined as one or
more
> <description>'s.

Yes I see, I missed the second Defined and Primitive class defns.
>
> Hope this helped.
>

Very much, I hope I am making sense.

Jonathan
Received on Saturday, 23 March 2002 17:10:56 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:57:48 GMT