Re: UFDTF Metamodeling Document

From: "Conrad Bock" <conrad.bock@nist.gov>
Subject: RE: UFDTF Metamodeling Document
Date: Wed, 28 Nov 2007 11:45:13 -0500

> Peter, 
> 
>  > > - I would expect the draft metamodel document
>  >  >     (http://www.w3.org/2007/OWL/wiki/MOF-Based_Metamodel) is part
>  >  >     of the user-facing documents, at a similar level and audience
>  >  >     as the reference manual.  It's important that this and the
>  >  >     OMG's Ontology Definition Metamodel for OWL are aligned,
>  >  >     because OMG is perceived as the primary source for MOF-based
>  >  >     metamodels.
> 
>  >  Is where any particular reason to make the metamodel document a
>  >  recommendation track document?  
> 
> It would be fine with me if it weren't, because it would reduce
> cross-talk with OMG.  Not sure what Elisa and Evan think.  I
> misunderstood which draft documents were on the recommendation track.
> BTW, I assume draft documents that are not never included in the
> recommedation track will just remain unofficial work of the WG?

They can be "submissions"/notes, which gives them some official status,
and permanency.

[...]

>  >  >     Even with no metamodeling, the use of a name as an instance of
>  >  >     owl:class and as the type for an individual are of course
>  >  >     related.  For example, if M1:car is an instance of owl:Class,
>  >  >     it is also the type for M0:johns-car.  This is also true for
>  >  >     metamodeling, see next.
> 
>  >  I don't understand this in an OWL 1.1 context.  In the functional
>  >  syntax for OWL 1.1 there is no owl:class.
> 
> Was referring to what I thought would be in the XML interchange format,
> which some users would be looking at, see OWL 1 example [1] in
> http://www.w3.org/2007/OWL/wiki/OWLMetamodeling.  I'm assuming OWL 1.1
> will be backward compatible enough to support that sort of syntax.
> 
>  >  If by M1:car you are referring to some MOF or OMG constructs and not
>  >  some IRI, then please include a pointer to some place that provides
>  >  an understanding of what these constructs mean.
> 
> I meant that in the OWL 1 sense (namespace:name).  See example above.

Then I don't see any reason that M1:car is the "type" of M0:johns-car.

>  > > - Finally, we should address a common use of metamodeling that
>  >  >     extends OWL for modeling languages.  This defines subclasses
>  >  >     of owl:Class with additional properties that have values on
>  >  >     the instances of the subclass.  For example, uml:Class as a
>  >  >     subtype owl:Class would add characteristics of classes
>  >  >     peculiar to UML, such as isAbstract.  This does not imply any
>  >  >     DL reasoning on owl:class its subtypes (these are only used to
>  >  >     type instances, which are only created, read/queried,
>  >  >     modified, and deleted), or introduce any constraints that
>  >  >     would affect DL reasoning on the instances of instances of
>  >  >     owl:class.
> 
>  >  How would these extensions work in OWL 1.1?  
> 
> That's my question.  :)  They work in OWL 1, including reasoners (see
> example above), so I was expecting OWL 1.1 would be backward compatible
> in this.

Well, they don't work in OWL DL, only in OWL Full, as subclassing
owl:Class is outside of OWL DL.  They also don't work in OWL 1.1, as OWL
1.1 is (currently) only has a DL-style definition.

>  > How could it be guaranteed that there are no effects to the DL
>  > reasoning paradigm?
> 
> If the modeler subclasses owl:Class or owl:Property in a way that
> affects DL reasoners, then they're in OWL Full.  We can't make
> guarantees when we can't control the modeler.  However, the applications
> I'm aware of would be introducing properties or restrictions in
> subclasses that would either
> 
>   - not affect DL reasoning, or
> 
>   - affect it in a way that can be expressed in DL (eg,
>     uml:class.isAbstract is equivalent to making the class equivalent to
>     union of its subclasses), or
> 
>   - the affect would be unspecified and not accounted for by DL
>     reasoners.

Yes, but how can you be sure that you aren't affecting DL reasoning or
even affecting it in an "acceptable" manner?  For example, if the
isAbstract property above has a range, then providing an illegal value
would affect DL reasoning.  Determining whether the modelling affects DL
reasoning could, in the worst case, require complete OWL Full reasoning.

>  >  (I can see at least one way of setting up this sort of thing in OWL
>  >  1.1, but I don't know whether it would suit this usage because I
>  >  don't know what is supposed to happen.)
> 
> Would be very interested to hear about it.

Sure, just use the OWL 1.1 metamodelling facilities in an obvious
manner.  Set up a class, say uml:Class, and say things like:

	SubClass( <umlclass> ... )
	ClassAssertion( <umlclass> uml:Class )

You can even add information to the UML classes by adding information to
the ClassAssertion axiom.

However, as I don't what you want to have happen, I don't know whether
this meets your needs.


> Conrad

peter

Received on Wednesday, 28 November 2007 17:08:44 UTC