RE: Contradictions regarding transitivity of wsdl:import

On Mon, 2005-04-18 at 12:17, Arthur Ryman wrote:
> David,
> 
> I don't think this works in general. The reason is that documents
> refer to each other so there really isn't a component model for each
> document..

I now understand that that is the current design of the component
model.  I was suggesting that instead there should be a component model
for each WSDL 2.0 document (i.e., each wsdl:description element
information item), along the lines of option 2 that you propose below.

> 
> You could have a document that didn't refer to any other document, and
> that would have a component model. That is a "leaf" node.
> 
> Document can actually have circular references to eachother. The spec
> permits this. The component model therefore must include all the
> components in order to satisfy the intercomponent references.
> 
> My reading of the spec is that all components belong to a single
> instance of the component model. The instance is defined by a root
> document and the set of documents it references.
> 
> There are two possible ways we could improve the clarity of the spec:
> 
> Option 1. Rename the Description Component to the Component Model
> 
> This actually eliminates the Description component altogether and
> replaces it with an object called the Component Model. The spec talks
> a lot about the component model, but never actually defines it. We can
> make it clear that the component model contains all the components
> from all the documents processed.
> 
> Option 2. Define the Component Model to be a set of Description
> Components, and restrict each Description component to only contain
> the components defined in it

Yes, I think this approach would be a considerably clearer and more
straightforward way to go.  However, I would nitpick about the word
"set".  "Directed graph" would be more precise:  A given WSDL 2.0
document would have a single Description component, which may refer to
other Description components (if the original WSDL 2.0 document imports
other documents, for example), thus representing a directed graph.

> 
> This makes the mapping between Description components and documents
> clearer. 

Yes, and we need people to understand our spec.  We have already
received complaints about how hard it is to understand.   

> It introduces the technical subtlety of what to do about duplicated
> components. We currently allow duplicate components to come from
> different documents as long as the components are equivalent. To
> resolve component references, we need to pick a particular component
> among the set of equivant components (or formally introduce the notion
> of equivalence class and make component references resolve to those).

I think we have that subtlety already, but you're right it will have to
be resolved differently.  There are several ways it could be handled.  I
doubt equivalence classes would be needed.  One way is for each
Description component to have an {imported descriptions} property.  Then
if a new document is imported, ignore it if its corresponding
Description component is already in that set.


-- 
David Booth <dbooth@w3.org>

Received on Tuesday, 19 April 2005 01:53:22 UTC