
Dear Team, Please find the attached file that lists comments/feedbacks with my answers and action lists (I apologize the list is not complete) which I would like to discuss on the call tomorrow. Thank you very much for comments and feedbacks. Best Regards, Jun Tatemura ---- From Paul Anderson ------------- 1) 7.2.1 - there doesn't seem to be an explicit statement of how the "extends" resources on sub-elements are resolved (as in the given example). I'm assuming that that "extends" attributes on any sub-elements are evaluated before the "extends" attributes on the element itself - is this correct? 2) 7.2.2 (1) - I'm assuming that any "extends" attributes on sub-elements of n' are evaluated at this time (as above). Is this correct? [Answer] Since prototype reference resolution merges only immediate children (resolution not applied to descendants recursively), the order of resolution between ancestors and descendants does not matter. Note that children do not import attributes from the prototype children For example, suppose we have three trees a1(b1(c1,d1),e1) (a1 has children b1 and e1, b1 has children c1 and d1) f2(b2(c2,g2),h2) i3(c3,g3,j3) k4(c4,d4) and a1 extends f2, b1 extends i3, b2 extends k4. If we resolve a1 then b1: a1(b1(c1,d1),h2,e1) a1(b1(c1,g3,j3,d1),h2,e1) If we resolve b1 then a1: a1(b1(c1,g3,j3,d1),e1) a1(b1(c1,g3,j3,d1),h2,e1) resolution of b2 (with k4) does not affect to the final result at all regardless of its timing (since b2 subtree is completely replaced by b1 subtree) [Proposed Action] Add a sentence that state the order does not matter. 3) 7.2.2.1 (2.2) I think the e should be e' ? [Answer] Yes. it should be e' [Proposed Action] correct it 4) In the "hierarchical prototype reference" example on page 16, am I right in thinking that the first extends="WebServer" is redundant (in this case)? This is just to confirm my understanding of the semantics - things might be different, for example if (1) and (2) above were different. [Answer] Yes, the first one (/AppPlatform/WebServer/@cdl:extends) is redundant (has no effect) for /MyApp. Since children do not inherit attributes from prototype children, we need the second one (/MyApp/WebServer/@cdl:extends) to let /MyApp/WebServer have default children. 5) Are the template/reference semantics identical to SmartFrog? I've probably missed the discussions on "why" certain things are being done the way they are, but it would be really helpful to have some indication of this where there are important reasons. I was particularly interested in .... [Answer] Yes, our discussion done before is mising in the specification itself. I think we may want a separate informational document -- probably what we may call "CDDLM Primer" that covers design principles, integration, and use cases of our three pieces of CDDLM specification. It would wrap up our discussions and efforts on ver 1.0 started since the Foundation document. 6) It doesn't look like there is any multiple inheritance - is this correct? Was it considered? [Answer] No we have not considered multiple inheritance. 7) The fact that inheritance applies to the immediate children only seems to cause some difficulties - was there some specific reason for doing things this way? [Answer] This decision has been made based on consistency with SmartFrog. In addition to this reason, I also had some concern on deep inheritance: - The user needs to be aware of deep tree structre to expect the resolution result. This may cause unexprected inheritance. - How can we replace a subtree of prototype with "null"? We can only replace leaf values. 8) Is it possible to separate the template resolution phase from the other phases? ie. Could I write a transform that took an arbitrary CDL document and generated a semantically equivalent document that contains no templates? If this is the case, why would would I not want to resolve out all the templates before deploying the document? [Answer] Yes. The template resolution can be completely preprocessed before any other type of resolution (except resolution of "import", of course). The reason why this resolution is not been done on the requesters side is, I guess, we think resolution processing can be a part of services offered to the requester. (of cource, the requesters can do it by themselves if they want). --From Bryan Murray (via Dejan)---- [Comment] I don't think section 3.3 adds anything to the spec. If SmartFrog CDL or some other CDL is also published from CDDLM, then there is value in keeping it. However, if these are just other proprietary front-end languages that have no bearing on this spec, I would remove this section. [Answer] I have no strong opinion on that. I would suggest we can remove it so far and put it later again in "CDDLM Primer" (or similar document that wraps up entire CDDLM pieces) [Proposed Action] solicit opinions from others in WG [Comment] I did not understand part of the pseudo-schema used in section 6. Are the documentation and property list elements tied together somehow? Does a property list element contain either a documentation element or some property elements - this is what the schema says now? My guess is that you want to say that a property list contains an optional documentation element and any number of property lists. Also, a property list can also contain an optional documentation element. To do this I think you could change PropertyListType to use sequence instead of choice and remove the min/maxOccurs. The pseudo-schema would look like this: <cdl:configuration> <cdl:documentation ...>xs:any</cdl:documentation> ? <!-- PropertyList --> * </cdl:configuration> ? If you want to explicitly require configuration to only hav property lists and property lists to be able to have either properties or property lists, you will need to types. [Answer] I tried to mean that cdl:documentation can be inserted anywhere...I will think about better description. [Comment] Section 7.2.2.1, #2.1: Should it be the same name and namespace? If it is just the same name, then all property names would have to have a unique local name and I think youwould run into a lot of problems. [Answer] Yes, it should be namespace-aware. [Action] Add a clarification sentence. [Comment] Section 7.2.2.1, #2.2: I the the italic e should be e'. [Answer] Yes, it should be so (as mentioned above) [Comment] Section 7.2.2.1: instead of saying append to 'last' of node list, you might want to say 'end' of node list. [Answer] This meant "end" or "tail" (as Steve suggested) [Proposed Action] change it to either "end" or "tail" [Comment] 7.2.3: Statement towards bottom of p 14: "When a child element is overridden, its value is fully replaced." This means that even if you want to tweak a single property, you need to re-write the entire property list. This could be a burden for large property lists. [Answer] This is related to Paul's previous comments: why not inherit deep structure? The main reason was I tried to make the language semantics as consistent with SmartFrog as possible. For this design choice, we rely on the fact that SmartFrog is working well without that. [Comment] 7.2.3, para starting "Another way to achieve hierarchical ...": This is not obvious, I don't know if I would advertize it or not. Its hard for me to wrap my mind around this - it seems to be warping inheritance. [Answer] This is a consequence from the design choice mentioned above. [Comment] Figure 4: The ref and refRoot attributes seem to be very complicated. How about using the cdl:configuration (or cdl:system) node as the root. This way 'a' does not become '/' - it would be '/a' which makes more sense to me. And 'b' nodes can be accessed just as easily without needing refRoot. [Answer] I did not take that design choice since it will be also complicated when combined with inheritance. For example: <a><b cdl:ref="/a/c"/><c>..</c></a> <d cdl:extends="a">...</d> should d be resolved to <d><b cdl:ref="/a/c"/>...</d> or <d><b cdl:ref="/d/c"/>...</d> ? ---- From Keisuke Fukui - We will appreciate a more detailed explanation for each object in the figure. For example, what are the meanings of the term "events" and "observer" illustrated in figure 5 in chapter 11? [Answer] After adding detailed resolition procedures in Section 7, we may not need Section 11 anymore (historically, this section has been itroduced to make the section structure similar to the SmartFrog document...). [Proposed Action] Shall I remove Section 11 and move some of description into Section 7? - A glossary might be helpful to readers. For example, the word "property" is first used in section 3.2.1, but I was not sure what it represents in the CDL context until section 5.1. And the word "CDL" is used after section 6.1 with no explanation. [Answer] I would handle word inconsistency/ambiguity issues by revising instead of adding a glossary. I would apreciate if someone points out more terminology issue examples. [Proposed Action] I may need to revise Section 3. - We will appreciate the conceptual modeling written in section 3.1. Are the concepts (e.g. Configurable Components, System, ...) used throughout the series of CDDLM specifications? If so, a more detailed explanation is expected. It must be a great help for understanding the entire picture of CDDLM. I believe it should be here rather than in separate documents. I needed to put a bit abstract model so that it will be consistent with other two specs coming later. A concrete model of CDDLM should be written in a document like "CDDLM Primer"... [Proposed Action] Now that I have two document draft, I may revise Section 3. - The language requirements are defined in each released document (foundation document / SF-CDL / XML-CDL) and they are slightly different each other. We will appreciate a bit clarification or justification for it. [Answer] Requirements to SF-CDL and XML-CDL are by definition different (that's why we have two languages)... It may be a good idea to revisit these requirements issue, though. - The existing CDL specification defines the generic mechanism for inheritance and reference, but who defines the standard vocabularies to describe services and resources? We are not sure if configuration descriptions can be interoperable without standard vocabularies. [Answer] Vocabularies must be defined and standardized for each application domain. That is way beyond the scope of CDL itself. - In chapter 2 and 3, the relationship between XML-CDL and SF-CDL is explained prior to the detailed explanation of configuration description. Unless they are being used together, I guess it may be better placed in appendixes. The main part of the document should be standalone I believe. [Answer] As answered to Bryan above, we may remove it and put it to another document. -------------------- From Steve (not covered all...)----- - Notation of '?' and '*' in Section 6 I will add explanation of notation just as other WS related spects do. - semantics of '/..'? The path expression must be a subset of XPath 1.0. Since there is no parent node of the root node, it should not be a varid path. - procedure of Import I would limit URIs to be absolute