I am more familiar with UDDI than SAWSDL, so please bear that in
mind.
SUMMARY:
Change your example
if:usesTaxonomy="uddi:uddi.org:ubr:categorization:naics:1997"
DISCUSSION
There is no SAWSDL use case document as far as I can tell, but the
example [2] seems to suggest that someone wants to register a service in
UDDI for which exists a SAWSDL description. Basically, this is a
two step process analogous to WSDL. That is,
1. Register the WSDL/SAWSDL in UDDI creating one or more tModels
[3], then
2. Register a service in UDDI with a binding whose "technical
fingerprint" references these tModels.
[3]
http://tinyurl.com/aqq6q (link to TN "Using WSDL in a UDDI
Registry")
Step 1 often involves automation where you enter the URL of a WSDL
document into a form, and when you submit the form there is a
"cataloging function" that publishes to UDDI. It would
create one tModel for the portType (WSDL 1.1). The example from [3]
is below
<tModel
tModelKey="uuid:e8cf1163-8234-4b35-865f-94a7322e40c3" >
<name>
StockQuotePortType
</name>
<overviewDoc>
<overviewURL>
http://location/sample.wsdl
<overviewURL>
<overviewDoc>
<categoryBag>
<keyedReference
tModelKey="uuid:d01987d1-ab2e-3013-9be2-2a66eb99d824"
keyName="portType
namespace"
keyValue="
http://example.com/stockquote/" />
<keyedReference
tModelKey="uuid:6e090afa-33e5-36eb-81b7-1ca18373f457"
keyName="WSDL
type"
keyValue="portType" />
</categoryBag>
</tModel>
For example, the local name of the portType (WSDL 1.1) would become the
name element for a portType tModel. This portType tModel would have
a categoryBag that includes triples for the taxonomy, keyName, and
keyValue (within that taxonomy). Note that taxonomy is identified
using another tModelKey. This triple is called a
keyedReference. The cataloging function would look at the
targetNamespace and use it as the keyValue with the XML Namespace
Category System (identified by
tModelKey="uuid:d01987d1-ab2e-3013-9be2-2a66eb99d824".
The overviewURL points to the WSDL representation. The tModel is
categorized with keyValue="portType", which makes this a
"portType tModel"; that is, a tModel categorized as portType
using the WSDL Type Category System (identified by the V2 tModelKey
uuid:6e090afa-33e5-36eb-81b7-1ca18373f457).
In step 2 the service is registered in UDDI. The example from [3]
is below.
<businessService
serviceKey="102b114a-52e0-4af4-a292-02700da543d4"
businessKey="1e65ea29-4e0f-4807-8098-d352d7b10368">
<name>Stock Quote Service</name>
<bindingTemplates>
<bindingTemplate
bindingKey="f793c521-0daf-434c-8700-0e32da232e74"
serviceKey="102b114a-52e0-4af4-a292-02700da543d4">
<accessPoint
URLType="http">
http://location/sample</accessPoint>
<tModelInstanceDetails>
<tModelInstanceInfo
tModelKey="uuid:49662926-f4a5-4ba5-b8d0-32ab388dadda">
<description
xml:lang="en">
The wsdl:binding that this wsdl:port implements. The instanceParms
specifies the port local name.
</description>
<instanceDetails>
<instanceParms>StockQuotePort</instanceParms>
</instanceDetails>
</tModelInstanceInfo>
<tModelInstanceInfo
tModelKey="uuid:e8cf1163-8234-4b35-865f-94a7322e40c3">
<description xml:lang="en">
The wsdl:portType that this wsdl:port implements.
</description>
</tModelInstanceInfo>
</tModelInstanceDetails>
</bindingTemplate>
</bindingTemplates>
<categoryBag>
...
</categoryBag>
</businessService>
The "technical fingerprint" is he collection of tModel
references found in the tModelInstanceDetails
of a bindingTemplate. Note that the tModelKey for the portType
tModel (uuid:49662926-f4a5-4ba5-b8d0-32ab388dadda) is one of the keys in
the technical fingerprint of the example above.
The SAWSDL issue [1] references [4].
NAICS 1997 is identified in [4] by
tmodelKey="uddi:uddi.org:ubr:categorization:naics:1997".
There is also a 2002 version which is identified in UDDI by a different
key.
[4]
http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm
The SAWSDL example [3] suggests some additional work in the
cataloging function.
It would need to retrieve the representation identified by the
modelRefence that it found in the SAWSDL file:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:if="
http://www.w3.org/2002/ws/sawsdl/spec/ontology/interface#">
<if:Category rdf:about="urn:Electronics"
if:hasValue="443112"
if:usesTaxonomy="
http://naics.com/"/>
</rdf:RDF>
The cataloging function would then need to somehow map
if:usesTaxonomy to the tModelKey for the NAICS taxonomy.
This mapping would be easier if
if:usesTaxonomy="uddi:uddi.org:ubr:categorization:naics:1997"
using http://naics.com/
is not a good example because it is ambiguous and difficult to map to a
specific taxonomy registered in UDDI.
Even if the tModel for NAICS pointed to
http://naics.com in the
overviewURL, UDDI does not support a find_tModel query that lets you look
at the overviewURL.
You would need some sort of inference in the cataloging function that is
unlikely to exist without human intervention.
if:hasValue maps well to the uddi:keyValue.
rdf:about maps to uddi:keyName, but keyName is simply a label for human
consumption, the real category is defined by the keyValue and the
tModelKey that identifies the taxonomy.
There is probably more that an SAWSDL cataloging function should do, but
its probably out of scope for the SAWSDL WG (and this email).
When I get some time I'll try to expand on these possibilities.
Paul
At 03:18 PM 2006-09-12, Jacek Kopecky wrote:
Dear Pierre,
we had two issues originated by you, 19 and 20 in [1], and the group
resolved both of them. I'm writing you to let you know of those
resolutions and to solicit your feedback on whether the current
specification addresses your issue. We are not very familiar with
UDDI
so we aren't sure if there could be more done towards good
integration
with it.
In particular, I invite you to review our appendix with
Categorization
Examples [2] - it intends to be UDDI-friendly, and to show how
SAWSDL
could interoperate in a way with UDDI.
If you have concerns that it doesn't help, we would welcome concrete
suggestions or proposals for changes. 8-)
Hope it helps,
on behalf of the SAWSDL WG,
Jacek Kopecky
[1]
http://www.w3.org/2002/ws/sawsdl/issues/
[2]
http://www.w3.org/2002/ws/sawsdl/spec/SAWSDL.html#Categorization