Re: miscellaneous comments was Re: Model draft
"tom.petch" <cfinss@dial.pipex.com> Tue, 08 January 2008 11:34 UTC
Message-Id: <TUE.8.JAN.2008.123457.0100.>
Date: Tue, 08 Jan 2008 12:34:57 +0100
From: "tom.petch" <cfinss@dial.pipex.com>
Subject: Re: miscellaneous comments was Re: Model draft
Comments: To: "Joel M. Halpern" <joel@stevecrocker.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
All ok with me. The only other thought I have is with threshold for events where you could specify a type of character string rather than uint32 leaving the user to coerce the string into a number as appropriate. Representing numbers as strings always seems clumsy to me but I think of it here because the XML canonical representation is a character string. Tom Petch ----- Original Message ----- From: "Joel M. Halpern" <joel@stevecrocker.com> To: "tom.petch" <cfinss@dial.pipex.com> Sent: Monday, January 07, 2008 11:43 PM Subject: Re: miscellaneous comments was Re: Model draft > Thanks. Comments where further clarification helps / is needed. > (Exchange is between Tom Petch and myself. Headers removed as there are > only two conversants.) > > tom.petch wrote: > > Joel > > > > cutting the ones I think we agree on, comments in line > > > > Tom Petch. > > > > > > >>> 4.7.3. <outputPorts> Element to Define LFB Outputs > >>> This is indicated by a "yes" value > >>> (the default value is "no"). > >>> > >>> **+ The XML has default of 0 - I see no indication which is yes and which > > no; > >>> some XML users define a truthValue, of yes or no. > >> Not sure what you are asking for. The attribute definition says that > >> the attribute is optional and has a default of "no". Folks have run > >> this through XML vereifiers and it seems okay. > >> > > > > What I am looking at in the Schema is > > <xsd:simpleType name="booleanType"> > > <xsd:restriction base="xsd:string"> > > <xsd:enumeration value="0"/> > > <xsd:enumeration value="1"/> > > </xsd:restriction> > > </xsd:simpleType> > > > > from which I cannot tell whether you intend 0 means true or 0 means false, so > > syntactically valid but semantically ambiguous to me. I am used to both in > > other languages and prefer the XML-Schema approach which allows, to quote > > > > 3.2.2.1 Lexical representation > > An instance of a datatype that is defined as .boolean. can have the following > > legal literals {true, false, 1, 0}. > > > > so using true and false is - to me - clearer. > > Arggg. I thought we had cleaned up all those inconsistencies. I will > go check and make it consistent. Probably using true / false, but I > need to review what we did elsewhere because the most important goal is > consistency. > > > > >>> > >>> 4.7.4. <components> Element to Define LFB Operational Components > >>> The <component> element also MUST have an componentID attribute, > >>> which is a numeric value used by the ForCES protocol. > >>> > >>> **+ The XML allows this to be a negative integer; is this intended?? ditto > >>> eventid > >> No, it is not acceptable for IDs to be negative. Is there a standard > >> XML schema datatype for non-negative integer? Or do I have to define a > >> simple subrange myself in the document? > >> > > > > Um, this has thrown me. What is uint32? I had taken it to be unsigned integer, > > like the XSD unsignedInt and so ranging from 0 to 4Gig. XSD defines short, int, > > long and unsignedshort, unsignedint, unsignedlong and I tend to take these for > > granted. > > Your right, all I need is to switch those to uint32. My mistake. > > >>> 4.7.6.1. <eventTarget> Element > >>> **+ must <eventTarget> reside in the same LFBClass definition as the event > >>> definition?? > >> Yes, eventTarget must be a field in the LFB in which the event is > >> defined. All the reporting parts must also be in that LFB (although not > >> necessarily in the same component as the eventTarget.) I do not expect > >> the schema to capture this constraint. I thought the event text covered > >> this. Please look again. If it is not covered, I would appreciate > >> suggestions as to how to make it clear. > >> > > > > It was rather that I was seeing this as a constraint, that in a large and > > complex system, one approach would be to split by type, to have all the > > datatypes in a module, all the frametypes in another and to split events from > > components, but this last is not allowed. I worked this out from the XML, from > > naming scopes, so I am not sure that it is explicitly stated in this secton > > I think it is explicitly stated. Events are (I would say MUST be, but > it is even more intrinsic than that) defined as part of the LFB > definition. Unlike data structure definitions, they can not be factored > out and referenced. > Part of the reason for this is that it seemed to me (and others when we > were working on it) that different contexts will want different events, > even for data of the same type. > > >>> > >>> <name>threshold</name> > >>> </optional > >>> <typeRef>uint32</typeRef> > >>> **+ again curious why uint32 as it excludes a negative threshold?? > >> I started writing a defense of this. Then I realized that it is mostly > >> just that we didn't think about the case of a signed value. The main > >> problem I have now is that if I define it as signed, how does a CE > >> specify a large (2^31 or more) threshold for an unsigned field? > >> Suggestions? > >> > > > > As above, I tend to take the XSD basic types of (unsigned)short, int and long > > for granted, the last allowing for 64bit > > In this case (unlike the element ID above) that doesn't help. The > thresholds value is not an XML value at all. It is a Forces data type > value. And the threshold may be for use with a signed or unsigned > element. So I am not sure what the right way to define the threshold > itself is. My temptation is to leave the definition as uint32, and note > that if applied to a signed value, it will be interpreted by the FE as a > signed quantity for comparison purposes. Ugly, but at least well > defined. I would like something better. > > > > >>> 8.4. Events > >>> If a laser oscillates in power near the 15 mark, one could get a lot > >>> of notifications. (If it flips back and forth between 9 and 10, each > >>> flip down will generate an event.) > >>> > >>> **+why should oscillation between 9 and 10 generate any events? around 15 > > yes, > >>> but I do not see the relevance of 10 and 9 > >> That should be 14 and 15, not 9 and 10. > >> > > good:-) If the threshold is 15 precisely and the value fluctuates betwen 15 > > precisely and lower values, then will that generate multiple events? ie are we > > talking strictly greater than, or greater or equal to? or is that a corner case > > to leave up to implementers? I am easy either way. > > If hysteresis is not specified for the event, then a detectable > oscillation near the threshold will produce a cascade of events. That > is mandatory, which is why the hysteresis is so important. > > > Yours, > Joel > >
- Re: miscellaneous comments was Re: Model draft Joel M. Halpern
- Re: miscellaneous comments was Re: Model draft tom.petch
- Re: miscellaneous comments was Re: Model draft Joel M. Halpern
- Re: miscellaneous comments was Re: Model draft tom.petch
- Re: miscellaneous comments was Re: Model draft Joel M. Halpern
- miscellaneous comments was Re: Model draft tom.petch