valueData, valueSpecifier, etc.

Looking some more at the value* properties in Process.owl, I noticed 
something odd.

Each Binding is supposed to have exactly one of:

valueData | valueForm | valueSource | valueType | valueFunction


To enforce this, valueForm, valueFunction and valueType are made 
subproperties of a property valueSpecifier, and a maxCardinality on 
binding for valueSpecificer is given. valueSource is given a separate 
maxCardinality, because it is an ObjectProperty, and thus cannot be made 
a subproperty of the DatatypeProperty valueSpecificer.

So far, so good. But the odd thing is that valueData, which *is* a 
DatatypeProperty, is also NOT made a subproperty of valueSpecificer. 
Instead, it is also given a separate maxCardinality, and there is a 
consfusing comment on valueData that it should be "one of the three 
possible properties used to specify a value for a Binding". There are 
*five* such properties, not three.

Secondly, the comment goes on to say that "as we cannot do that, we 
treat it separately". Why can't we do that, i.e. why not make valueData 
a subclass of valueSpecificer? It looks like this comment was meant for 
valueSource, which is really the only one that needs special treatment. 
So my recommendation would be to

1) Make valueData a subclass of valueSpecifier
2) Give valueData a range of XMLLiteral
3) Remove the maxCardinality on Binding for valueData
4) Move the comment on valueData to valueSource, and change the "three" 
to "five".

/Daniel

Received on Tuesday, 23 November 2004 00:01:57 UTC