OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

obix-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: [obix-comment] Contract inheritance


>If the  contract has children with hrefs, then those children can be used
>as contracts themselves which seems to be a different problem than
>inheriting hrefs.  Or maybe I misunderstood your question?

No misunderstanding.  That was exactly my comment.  The children can be used
as contracts themselves (referred to hereafter as internal contracts) when
children href's are specified in the contract.  The obvious place these
contracts would be used is in the instances implementing the top-level
contract.  If the children parts of the instance are not addressable (no
href inheritance), what is the point of having them be types?  I believe it
is morally wrong to apply an internal contract to an object that is not a
child of an object conforming to the parent contract.  Of course, that's
just philosophy and there is certainly room for disagreement.

So my question then is: Is there some way other than href inheritance to
accomplish the goal of knowing all the addressable parts of an object based
solely on type information (gotten from a reference) without requiring a
client to query every instance?

The idea would be to use a facility similar to the BACnet object list to
obtain a list of references to objects and based solely on that knowledge be
able to query parts of the objects.
 
The comment about addressing being an implementation detail rather than a
contract detail is interesting.  I believe that you should have a choice and
that if you choose to make it a contract detail then there is no issue with
"uninheriting" the addressing.  If the contract says that children are
addressable then they must be addressable.  You would have to define a
similar type with non-addressable children if you wanted instances without
addressable parts.

In any event, I believe you understand the issue well enough, so you can
decide whether further discussion is warranted at this point.




>Regarding ref elements, the "is" attribute of a ref denotes the contract of
>what the ref points to.  Maybe this isn't spelled out very well, although
>the spec uses this feature itself for Lobby.about:

That's what we were looking for - the spec does not call that out explicitly
and should.




Dave Richards
drichards@trane.com



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]