
I am confused by the template mechanism in the draft. The normative text seems inconsistent w/ the Job example and nothing is very clear to me. 1) Is there a way to express schema-like constraints on the presence or absence of Terms? The main text made me think that a domain-specific term must appear in the Terms section of the template and then be qualified if necessary by CreationConstraints. Must the offer Terms appear with the same document structure (including document-order) as the template Terms element? What about optional fields or fields with variable cardinality? The job template example in the appendix shows an empty Terms element in the template and then has CreationConstraints/Item elements which make XPath references as //ServiceDescriptionTerm/someJobThing! This makes no sense to me, first because the references do not match anything in the template and second because they are not even rooted in the template or Terms elements, so the structure is underconstrained if it is meant to imply the presence of such terms. Shouldn't we require a wrapping element around XPath expressions to indicate how they are interpreted against template or offer documents? 2) What is the matching rule for template content to determine if an offer or agreement is consistent with a template? Must all of the CreationConstraints/Item elements be able to reference a structure in the offer? Must a structure satisfy all content restrictions which reference it? Isn't the spec odd in stating that offers MUST match and providers MUST reject non-matching offers when the matching semantics are not really well-defined? Shouldn't this all be treated as hints anyway, with freedom for both parties to offer and/or accept non-matching agreements if they like? 3) Shouldn't CreationConstraints/Constraint have open content? It seems like this is a hold-over from when we were trying to handle extensibility through schema extension. The specification text says it is am empty element which must be extended. Shouldn't it be a non-derivable type w/ xsd:any##other child? 4) What are the rule for using templates? MUST an offer be based on a template? MUST a provider publish templates at all? SHOULD the provider use the optional Template/Name field? 5) Should the base specification include template syntax to describe compositions of terms? It seems like there should be a way to express compositions of terms without having to enumerate specific composition instances as separate templates. Unless I have misunderstood the generality of the existing syntax, do we need a new form of template or some other extensibility hook to allow more general templates? Should the overall template handling rules be liberalized to either have a wildcard template or an understanding that domain-specific template mechanisms may be in place which capture complex or precise templating scenarios which cannot be adequately projected into the basic template syntax? 6) Should we drop templates from the first version? If the above questions cannot be answered and addressed shortly, is it better to produce a standard w/o templates or to delay until we can solve these problems? What is the use case requirement for determining of the spec mechanism is good enough to publish? I am not confident that we really know how to, for example, express constraints against a single complex JSDL service description term with its optional parts. karl -- Karl Czajkowski karlcz@univa.com

Hello:I also have had many questions from people considering implementing WS-Agreement on the templates. I had not realized that there were so many issues, but if it is as Karl says, I would opt for 6) even if it means inter-operability issues might become a bit vague.. Toshi Karl Czajkowski wrote:
I am confused by the template mechanism in the draft. The normative text seems inconsistent w/ the Job example and nothing is very clear to me.
1) Is there a way to express schema-like constraints on the presence or absence of Terms?
The main text made me think that a domain-specific term must appear in the Terms section of the template and then be qualified if necessary by CreationConstraints. Must the offer Terms appear with the same document structure (including document-order) as the template Terms element? What about optional fields or fields with variable cardinality?
The job template example in the appendix shows an empty Terms element in the template and then has CreationConstraints/Item elements which make XPath references as //ServiceDescriptionTerm/someJobThing! This makes no sense to me, first because the references do not match anything in the template and second because they are not even rooted in the template or Terms elements, so the structure is underconstrained if it is meant to imply the presence of such terms. Shouldn't we require a wrapping element around XPath expressions to indicate how they are interpreted against template or offer documents?
2) What is the matching rule for template content to determine if an offer or agreement is consistent with a template?
Must all of the CreationConstraints/Item elements be able to reference a structure in the offer? Must a structure satisfy all content restrictions which reference it?
Isn't the spec odd in stating that offers MUST match and providers MUST reject non-matching offers when the matching semantics are not really well-defined? Shouldn't this all be treated as hints anyway, with freedom for both parties to offer and/or accept non-matching agreements if they like?
3) Shouldn't CreationConstraints/Constraint have open content?
It seems like this is a hold-over from when we were trying to handle extensibility through schema extension. The specification text says it is am empty element which must be extended. Shouldn't it be a non-derivable type w/ xsd:any##other child?
4) What are the rule for using templates?
MUST an offer be based on a template? MUST a provider publish templates at all? SHOULD the provider use the optional Template/Name field?
5) Should the base specification include template syntax to describe compositions of terms?
It seems like there should be a way to express compositions of terms without having to enumerate specific composition instances as separate templates. Unless I have misunderstood the generality of the existing syntax, do we need a new form of template or some other extensibility hook to allow more general templates?
Should the overall template handling rules be liberalized to either have a wildcard template or an understanding that domain-specific template mechanisms may be in place which capture complex or precise templating scenarios which cannot be adequately projected into the basic template syntax?
6) Should we drop templates from the first version?
If the above questions cannot be answered and addressed shortly, is it better to produce a standard w/o templates or to delay until we can solve these problems? What is the use case requirement for determining of the spec mechanism is good enough to publish? I am not confident that we really know how to, for example, express constraints against a single complex JSDL service description term with its optional parts.
karl

Comments inline. Heiko owner-graap-wg@ggf.org wrote on 04/25/2005 02:10:06 AM:
I am confused by the template mechanism in the draft. The normative text seems inconsistent w/ the Job example and nothing is very clear to me.
1) Is there a way to express schema-like constraints on the presence or absence of Terms?
The main text made me think that a domain-specific term must appear in the Terms section of the template and then be qualified if necessary by CreationConstraints. Must the offer Terms appear with the same document structure (including document-order) as the template Terms element? What about optional fields or fields with variable cardinality?
The job template example in the appendix shows an empty Terms element in the template and then has CreationConstraints/Item elements which make XPath references as //ServiceDescriptionTerm/someJobThing! This makes no sense to me, first because the references do not match anything in the template and second because they are not even rooted in the template or Terms elements, so the structure is underconstrained if it is meant to imply the presence of such terms. Shouldn't we require a wrapping element around XPath expressions to indicate how they are interpreted against template or offer documents?
I guess the example templates in the fall draft are all incomplete, hence difficult to assess. I don't understand what you mean with the "wrapping element". XPath has this selection expression that hopefully matches one or more parts of the name, context or terms section, which are supposed to be present in the template. Agreement clients can then fill in any structure compliant with constraints.
2) What is the matching rule for template content to determine if an offer or agreement is consistent with a template?
Must all of the CreationConstraints/Item elements be able to reference a structure in the offer? Must a structure satisfy all content restrictions which reference it?
Isn't the spec odd in stating that offers MUST match and providers MUST reject non-matching offers when the matching semantics are not really well-defined? Shouldn't this all be treated as hints anyway, with freedom for both parties to offer and/or accept non-matching agreements if they like?
Agreed. In a no tso loosely couple scenario, one might not want to publish templates because, e.g., just one integer value is variable and the client creates agreement offers just by string concatenation. I propose to delete the requirement on template compliance, probably the whole section.
3) Shouldn't CreationConstraints/Constraint have open content?
It seems like this is a hold-over from when we were trying to handle extensibility through schema extension. The specification text says it is am empty element which must be extended. Shouldn't it be a non-derivable type w/ xsd:any##other child?
ok
4) What are the rule for using templates?
MUST an offer be based on a template? MUST a provider publish templates at all? SHOULD the provider use the optional Template/Name field?
As discussed above, no, from a spec point of view. In reality, one would probably mostly use it to come up with agreement offers that both parties can understand.
5) Should the base specification include template syntax to describe compositions of terms?
It seems like there should be a way to express compositions of terms without having to enumerate specific composition instances as separate templates. Unless I have misunderstood the generality of the existing syntax, do we need a new form of template or some other extensibility hook to allow more general templates?
Should the overall template handling rules be liberalized to either have a wildcard template or an understanding that domain-specific template mechanisms may be in place which capture complex or precise templating scenarios which cannot be adequately projected into the basic template syntax?
I didn't quite understand you issue. Related to this: We might want to introduce a description of alternatives of terms that apply in the constraint section, probably also using the WS-Policy compositors.
6) Should we drop templates from the first version?
If the above questions cannot be answered and addressed shortly, is it better to produce a standard w/o templates or to delay until we can solve these problems? What is the use case requirement for determining of the spec mechanism is good enough to publish? I am not confident that we really know how to, for example, express constraints against a single complex JSDL service description term with its optional parts.
Absolutely not. I think they are central to most but not the most trivial scenarios. And actually, we are not in such a bad shape and they work well, according to our experience.

On Apr 28, Heiko Ludwig loaded a tape reading:
I guess the example templates in the fall draft are all incomplete, hence difficult to assess. I don't understand what you mean with the "wrapping element". XPath has this selection expression that hopefully matches one or more parts of the name, context or terms section, which are supposed to be present in the template. Agreement clients can then fill in any structure compliant with constraints.
Let me try to rephrase my question as two separate questions. First, regarding XPath, I may not be good enough with it to be understanding the examples. Are XPath expressions always "rooted" or can they match arbitrary sub-structures (analogous to anchored versus non-anchored regular expression matching)? I am guessing from your comment that they are unanchored. If they can be anchored, do we say something strong enough about what the root is for anchored matches, e.g. that it is rooted at the wsag:template element or at the client's corresponding wsag:offer element? My other question about structural constraints was echoed in multiple questions but not directly enough to be clear. I had always expected (and intented, in my early contributions to this spec) that templates were going to be the mechanism to "rescue" us from the open content model. However, I do not see how this is the case at all. I would like to be able to: A. Restrict the domain-specific service description term type(s) which MAY appear in an offer from the provider's point of view. B. Restrict the nesting/composition of service description terms, e.g. limit the form of logical compositions the provider will process. Maybe this is coupled with (A) in a syntax language or with your proposal below about using compositors in templates? C. Restrict the nesting/composition of open content extensions which MAY appear in any particular service description term open content "slot". D. Express dependencies/implications such as if X appears, then so MUST Y. E. Cover variable-cardinality scenarios for the above. At present, I do not understand which of these (or other) purposes is being addressed by the agreement syntax in the template nor by the constraints syntax. If a term shows up in the agreement syntax part, MUST that term show up in offers based on the template? MAY more than one instance of the term show up? MAY other terms show up which are not listed here? Can constraints using xsd:restriction express restrictions on the nested element structure, or just on simple type fields? If xsd:restriction is powerful enough, is that a good idea? MUST there be a structure in the offer that matches each constraint in the template? Or MAY completely unconstrained structures appear? This is what I meant before by what is the matching rule. A much more complete semantics must be provided, e.g. turn the template into a logical constraint system which is applied to an offer to see if it "satisfies" the template or not.
I didn't quite understand you issue. Related to this: We might want to introduce a description of alternatives of terms that apply in the constraint section, probably also using the WS-Policy compositors.
I would like to hear more about this to understand what you are proposing and how it fits in w/ the above questions.
Absolutely not. I think they are central to most but not the most trivial scenarios. And actually, we are not in such a bad shape and they work well, according to our experience.
I agree they are important. I was only trying to be fair and admit that I do not quite understand the scope of what is "there" nor the magnitude of the can of worms I am opening. :-) I do think we need to make drastic repairs to the presentation even if the current technical solution is adequate. I find it worrisome if I cannot figure out what the spec is actually saying, since I thought I understood the template problem before! Another concern for me is that there needs to be tractable ways to normalize or query templates. For this stuff to really fly, we need to assume a discovery system will aggregate templates from many different providers and provide a meaningful and efficient way for a prospective client to search for templates that have the right structural properties! There is a tension and the offer/template model needs to "recurse" so to speak and not just end up with an "insert oracle here" layer in the architecture. karl -- Karl Czajkowski karlcz@univa.com
participants (3)
-
Heiko Ludwig
-
Karl Czajkowski
-
nakata