Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [higgins-dev] Model Expressiveness

On #1, I disagree.  That is, if IAttributeValueModel.isSimple() == true, then it does imply that the value type is some basic XML Schema type.  Maybe I'm not understanding what's being said.


On #2, the Higgins Data Model is not clear (IMO).  I don't think we've ever actually made the statement that there can be:

- subject types that are sub types of other subject types,

- attribute sub types of other attribute types, or

- value types that are sub-types of other value types (aside from what sub-typing already exists in XML schema.  Even then, I don't think we've even gone as far as saying you can put an xsd:byte into a value which is said to be of type xsd:integer (byte is a subtype of integer in XML Schema)).


If we want this behavior, we'll need to define what aspects of the supertypes are inherited (or not) and which aspects can be overridden on the subtypes.  


On #3, would this be done by allowing IModel.getType to return multiple URIs?


I don't know what IAttributeModel.isDirect() is for.  I specifically asked Valery in http://dev.eclipse.org/mhonarc/lists/higgins-dev/msg03624.html but got no response.  I propose we remove it.


If no one objects to me removing IAttrbuteValueModel.get*Cardinality() I'll do it.  We might as well do it before the end of 1.0


Jim



>>> "Tom Doman" <tdoman@xxxxxxxxxx> 12/19/07 5:47 PM >>>
My goal in this iteration is to make generation of an OWL ontology possible through the IModel interface and thus, able to be written once for every Context Provider.  That is, getSchema() could be written once for all.  We may not be able or wish to support everything that OWL supports (just as we may not wish to support everything an LDAP schema might), however, we need to support basic data model constructs that the IModel interface currently does not.  Many of the issues I raise below are a result of this goal.  That is, I cannot express things in the current IModel that need to be expressed in an OWL ontology (or, as I said, most data models).

1. IsSimple() - Just because a given IAttributeValueModel is simple, does not imply that it's type is a basic xsd type.  If it isn't already a basic xsd type, I believe it should only be required to "eventually" be a subProperty something that is a basic xsd type.  The model API should provide for this possibility.
2. Hierarchies - Any given DS or Attribute Model may be a sub-class (or sub-property) of another model element.
3. Equivalencies - Any given DS or Attribute Model may be equivalent to another model element.

Other ancillary items:
1. isDirect() on IAttributeModel - What does this mean?
2. Are we ready to remove deprecated APIs on IAttributeValueModel now?

FWIW, a lot of this is inspired by my current getSchema() implementation which yields an OWL ontology which I've attached here for your reference.

Thanks,
Tom



Back to the top