UBL Naming and Design Rules SC

Re: [ubl-ndrsc] Rule: 115 and 116 Containers

  • 1.  Re: [ubl-ndrsc] Rule: 115 and 116 Containers

    Posted 07-21-2003 04:55
    On Sat, 19 Jul 2003, Anthony B. Coates wrote:
    
    >>** Reply to message from Chin Chee-Kai <cheekai@softml.net> on Fri, 18 Jul 2003
    >>10:07:30 +0800 (SGT)
    >>
    >>> Bill's container illustated the context under which the
    >>> container's proponent wishes to argue for having containers,
    >>> ie to wrap those with cardinalities 1..n (and then forgetting
    >>> to talk about 0..n again) with a TYPED container.  This is
    >>> exactly what Bill tried to illustrate with <SuperfluousContainer>.
    >>
    >>I may not correctly understand what you mean here, but if you mean that Arofan,
    >>Stephen, and myself forgot to mention the 0..n case, we did cover it, although
    >>perhaps the wording of the proposal obscures things a bit.  Just in case, I'll
    >>summarise the proposal.  Suppose that the <Thing> element has cardinality M..N.
    >>Then
    >>
    >>1. If N <= 1 (i.e. <Thing> is 0..1 or 1..1), then <Thing> does not have a
    >>container.
    >>2. If N >= 2 (e.g. 0..2, 1..2, 2..2, 0..3, 1..3, ...) then <Thing> has a
    >><ThingList> container.
    >>3. If M = 0, the cardinality of <Thing> inside <ThingList> is 1..N, and the
    >>cardinality of <ThingList> is 0..1.
    >>4. If M >= 1, the cardinality of <Thing> inside <ThingList> is M..N, and the
    >>cardinality of <ThingList> is 1..1.
    >>
    >>I hope that helps.
    
    I must have been utterly confused with the 4-rules again,
    and didn't mean to imply that Arofan, Stephen nor yourself
    had missed out on things.
    
    These if-thens are much clearer, Tony.  They handle clearly
    case-by-case and illustrated with examples.  These should've 
    been in  the 4-rules in the first place.
    
    There was a part in the 4-rules that mentioned about 
    containers being optional for 0..n.  I'm sorry for being
    sloppy here as I can't dig back to point out precisely 
    which of the 4-rules said that, but just recall from memory.
    The part that's not clear is that when a container for 0..n
    is said to be "optional", it means (or at least one interpretation
    can mean) when it is time to instantiate, it is optionally
    up to the creator to instantiate the container or not.
    
    Something like your third if-then hasn't yet said, for
    an example case of Thing being 0..2, whether <ThingList> 
    should be 0 or should be 1.  if-then-2 says <ThingList>
    should exist.  if-then-3 says <ThingList> can be 0 or 1.
    I'm sure the answer is clear in your minds, but the rules
    haven't made that undisputably clear.
    
    Do the if-thens apply in order?
    
    Anyway, your if-thens still help to clear up the more fuzzy
    areas.  Great works for the 3 of you to clarify them.
    
    And I'm still critical of even having Tops and Containers.
    
    (And please don't take any of these personally, and none
    has been intended).
    
    
    
    Best Regards,
    Chin Chee-Kai
    SoftML
    Tel: +65-6820-2979
    Fax: +65-6743-7875
    Email: cheekai@SoftML.Net
    http://SoftML.Net/