- From: Laurent Henocque <laurent.henocque@gmail.com>
- Date: Tue, 06 Jun 2006 22:19:45 +0200
- To: Jacek Kopecky <jacek.kopecky@deri.org>
- CC: Rama Akkiraju <akkiraju@us.ibm.com>, SAWSDL public list <public-ws-semann@w3.org>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Jacek Kopecky wrote:
> Laurent,
>
> I wonder why you disagree with
>
> <element name="fullName" type="xsd:string"
> sawsdl:modelReference="ontology#FullName ontology#FirstName ontology#LastName"/>
>
> (Note that XML disallows multiple instances of an attribute with the
> same name, instead multiple modelReferences can be a URI list like
> above.)
ok, but we can have
<element name="fullName" type="xsd:string">
<sawsdl:modelReference="ontology#FullName">
<sawsdl:modelReference="ontology#FirstName">
<sawsdl:modelReference="ontology#LastName">
</element>
can't we? (just to make sure :-))
I dislike this because I understand FullName as an aggregate of FirstName and LastName, and I believe that holding the
knowledge of this fact is precisely the purpose of the ontology. So it's like we're mixin two layers. Going from a full
name to a first name is a 'data extraction'. I think the work of deciding that a partial mapping can be achieved must be
left to reasoning mechanisms.
However, I strongly support multiple references, and I would'nt like to be overzealous here.
>
> It seems that you have in mind some kind of specification of what
> modelReference actually means, related to your request about
> schemaMapping being a bijection.
Yes, I tend to think that an element is an instantiation for its modelReference(s). From a software engineering
standpoint, I would feel very comfortable for explaining what semantic annotations are if I could say:
"if you annotate element E with concept C, you mean that this E is a kind of C" (as we are used to for inheritance for
example)
I cannot say "a 'fullName' is an 'ontology#FirstName'" nor the opposite.
If we are to keep this possibility, I vote for making it explicit, so that searching tools are not mislead.
>
> I always viewed modelReference as something relatively vague, like "this
> schema or wsdl component describes a thing that is also described by the
> model reference", which in case of composite values could also mean that
> the model reference describes a part of (or a bigger thing than) the
> schema or wsdl component.
I think the group must formulate a very precise statement about what it means to 'semantically annotate', because I do
not agree with your point. If you remove 'semantically', ok, but here, no.
>
> For example, on WSDL operation level, one model reference could describe
> the precondition, other could describe the effect; and similarly on a
> composite simpleType (like the fullName above) one model reference could
> describe the last name part and other could describe the first name
> part.
I'd rather use one model reference to describe an 'aggregation of' the first name and last name. If a string is
structured, why would we lose this structure in the semantics? This seems counterproductive, don't you think?
Laurent
>
> We may have another issue here, on which many of the current issues
> would be dependent.
>
> Hope it makes sense,
>
> Jacek
>
>
> On Tue, 2006-06-06 at 14:56 +0200, Laurent Henocque wrote:
> I am also convinced that any complex data can be serialized in a string (names, dates, or more) and hence the
> distinction between "simple" and "complex" has no semantical grounds but simply amounts to syntax.
>
> I would also like to comment on your earlier suggestions (I am sorry a large number of issues seem to interact)
>
> * references to "partial matches"
>
> Going back to your several emails, I have the feeling that there may exist a confusion between references/mappings and
> mediators. In my opinion, when annotating a WS, you should not have to list all possible mediations that exist from the
> "main" designated reference to any other "related" type, even if as you said, this might be inserted automatically. To
> support this, I would raise the dangerous issue that the introduction of a mediation from "Date" to "someType" would
> suppose to update all the SAWSDLs that have Dates inside...
>
> So I fully disagree with this:
>
>>>> <element name="fullName" type=xsd:string
>>>> sawsdl:modelReference="ontology#FullName"
>>>> sawsdl:modelReference="ontology#FirstName"
>>>> sawsdl:modelReference="ontology#LastName"/>
> and would solely expect this:
>
>>>> <element name="fullName" type=xsd:string
>>>> sawsdl:modelReference="ontology#FullName"/>
> But, this raises a very interesting issue (Jacek I sent a separate email for this):
> When annotating an element: do we need to enforce the condition that there exists a one to one between the element type
> space and the set of ontology instances?
> If negative: what happens when a mapping raises an error? Do we have to provide hooks for error handlers in the
> specification?
>
> (the example above illustrates this: it is not possible to convert from a first fame to a full name)
>
> * Lifting and lowering mappings
>
> I think that we want semantics because we want to deal with discovery and mediation issues at an abstract, ontological
> level. Henceforth, when attaching a modelReference to a WSDL element, my view would be that what is potentially needed
> for invocation are both:
> * lifting mappings : they take plain data and convert them to instances in the corresponding ontology. My understanding
> is that at our level, we cannot make a single guess as to what this target ontology might look like. So a mapping can
> solely ny a URI.
> * lowering mappings : (again a URI) that take an ontology instance an convert it to data at the WSDL level.
>
> ('lifting', 'lowering' and 'mediation' belong to the DIP project's terminology)
>
> Having this allows WS to interact via the logical system during invocation or composition by sequences: lifting /
> mediation / lowering. Note that this intuition is the main argument for attaching mappings to the references they
> "implement". However, the statement of mappings (to and from type/reference) could be made globally in the
> specification, since this information is shared across all occurences of the "type".
>
> * Discovery
>
> Thinking about discovery: how a WS having a partially matching type can be discovered is beyond the scope of the SAWSDL
> WG, since it amounts to reasoning. In fact, if one is looking for a "lastName", a query to her favorite reasoner should
> come out with a ranking of matching ontologies sorted by relevance. Then a query to the WS repository would return the
> targets, accordingly sorted.
>
> Laurent
>
>
>
> Rama Akkiraju wrote:
>>>> Well, may be we don't need to distinguish simple and complex types after
>>>> all. I sent that previous note too soon. :-). Here is a counter example
>>>> where a simple type may also need a schema mapping (not necessarily for
>>>> discovery but to support invocation)
>>>>
>>>>
>>>> <element name="fullName" type=xsd:string />
>>>>
>>>> Say that in the ontology, there is a class called 'FullName' with two
>>>> subparts 'FirstName' and 'LastName'. Then this simple type can be annotated
>>>> in mulitple ways.
>>>>
>>>> <element name="fullName" type=xsd:string
>>>> sawsdl:modelReference="ontology#FullName" />
>>>>
>>>> or
>>>>
>>>> <element name="fullName" type=xsd:string
>>>> sawsdl:modelReference="ontology#FullName"
>>>> sawsdl:modelReference="ontology#FirstName"
>>>> sawsdl:modelReference="ontology#LastName"/>
>>>>
>>>> Both these above options are useful in discovery but may not be useful in
>>>> invocation if the service interface to be matched with has elements
>>>> 'firstName' and 'lastName')
>>>>
>>>> or
>>>>
>>>> <element name="fullName" type=xsd:string
>>>> sawsdl:modelReference="ontology#FullName"
>>>> sawsdl:modelReference="ontology#FirstName"
>>>> sawsdl:modelReference="ontology#LastName"
>>>> sawsdl:schemaMapping="URI#FullNameTokenizationLogicToMapToFirstNameAndLastName"/>
>>>>
>>>> This one has all the modelReferences that could aid in discovery and also
>>>> has a string tokenization transformation function that provides explicit
>>>> mappings to first name and last name.
>>>>
>>>> Regards
>>>> Rama Akkiraju
>>>>
>>>> Rama Akkiraju/Watson/IBM wrote on 06/05/2006 05:59:03 PM:
>>>>
>>>>> Kunal,
>>>>>
>>>>> Were you referring to precedence issues on these two examples?
>>>>> because if so, these examples don't really present such issue. In
>>>>> example 1, complex type annotaton doesn't really say anything about
>>>>> what annotations apply to leaf node elements. So, there is no conflict.
>>>>>
>>>>> I think when you mention conflicts you are talking about in the
>>>>> context where a schema mapping is specified at a complex type in
>>>>> addition to model references on the contained elements. If so, if I
>>>>> understand you correctly you are making two independent points in
>>>>> this e-mail. Is that correct?
>>>>>
>>>>> So, here is a summary of why we need to distinguish between simple
>>>>> and complex types based on all the discussions.
>>>>>
>>>>> a simple type can only have model references and no schema mappings
>>>>> where as a complex type can have both model references and schema
>>>>> mappings. These schema mappings specified at a complex type can have
>>>>> an implication on the model references of simple types contained in
>>>>> a complex type. That's why we need to differentiate simple and complex
>>>> types.
>>>>> Regards
>>>>> Rama Akkiraju
>>>>>
>>>>> kunal.verma1@gmail.com wrote on 06/05/2006 05:25:13 PM:
>>>>>
>>>>>> Jacek,
>>>>>>
>>>>>> From our point of view, it would be nice to be able to annotate
>>>>>> complexTypes, elements and simpleTypes. Jacek's example illustrates
>>>>>> the first two (note, we changed the outer element to complexType).
>>>>>> The second example illustrates the use of a simpleType.
>>>>>>
>>>>>> Example 1:
>>>>>>
>>>>>> <complexType name="Name" sawsdl:modelReference="ontology#name">
>>>>>> <sequence>
>>>>>> <element name="Title" sawsdl:modelReference="ontology#title"/>
>>>>>> <element name="First"
>>>> sawsdl:modelReference="ontology#firstName"/>
>>>>>> <element name="Last"
>>>> sawsdl:modelReference="ontology#familyName"/>
>>>>>> </sequence>
>>>>>> </complexType>
>>>>>>
>>>>>> Example 2:
>>>>>>
>>>>>> <xs:simpleType name="fahrenheitWaterTemp"
>>>>>> sawsdl:modelReference="ontology#FahrenheitWaterTemperature">
>>>>>> <xs:restriction base="xs:number">
>>>>>> <xs:fractionDigits value="2"/>
>>>>>> <xs:minExclusive value="0.00"/>
>>>>>> <xs:maxExclusive value="100.00"/>
>>>>>> </xs:restriction>
>>>>>> </xs:simpleType>
>>>>>>
>>>>>> Finally, allowing annotations for both elements and complexTypes
>>>>>> begs the question of which takes precedence when used together. As
>>>>>> pointed out by Laurent in http://lists.w3.org/Archives/P
>>>>>> ublic/public-ws-semann/2006May/ 0043, the approach of giving the
>>>>>> element annotation precedence over the type annotation seems like
>>>>>> the way to go.
>>>>>>
>>>>>> "If some internal annotation exists for a complex type as well, any
>>>>>> "where used" annotation takes precedence over the internal one."
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>> John Miller and Kunal Verma
>>>>>>
>>>>>>
>>>>>> On 6/5/06, Jacek Kopecky <jacek.kopecky@deri.org > wrote:
>>>>>>> Hi all,
>>>>>>>
>>>>>>> below is an excerpt from Rama's analysis of the relation of
>>>>>>> modelReference and schemaMapping. The quoted part restricts
>>>>>>> modelReferences to be allowed only on schema leaf elements.
>>>>>>>
>>>>>>> On Sun, 2006-06-04 at 13:40 -0400, Rama Akkiraju wrote:
>>>>>>>> Definition of Simple modelReference:
>>>>>>>> ModelReferences that point to a single concept in the ontology via
>>>>>>>> one-to-one association. Simple modelReferences are specified
>>>>> at the level
>>>>>>>> of individual (leaf) elements in an XSD.
>>>>>>> Rama, I wonder why you have the restriction?
>>>>>>>
>>>>>>> Using the common structured name example, one could have something
>>>> like
>>>>>>> this:
>>>>>>>
>>>>>>> <element name="Name" sawsdl:modelReference="ontology#name">
>>>>>>> <sequence>
>>>>>>> <element name="Title" sawsdl:modelReference="ontology#title"/>
>>>>>>> <element name="First"
>>>> sawsdl:modelReference="ontology#firstName"/>
>>>>>>> <element name="Last"
>>>> sawsdl:modelReference="ontology#familyName"/>
>>>>>>> </sequence>
>>>>>>> </element>
>>>>>>>
>>>>>>> Basically, there is a trivial one-to-one correspondence between the
>>>>>>> element Name and the ontology class "name". Do you think that
>>>> expressing
>>>>>>> this correspondence with modelReference may be harmful?
>>>>>>>
>>>>>>> Best regards,
>>>>>>>
>>>>>>> Jacek
>>>>>>>
>>>>>>>
>>>>>>>
>>>>
>>>>
> --
> *************************************************************************
> Laurent Henocque
> Maître de Conférences Hdr
> tel: +33 6 83 88 20 01
> Enseignant à l'Ecole Supérieure d'Ingénieurs de Luminy - Marseille
> http://www.esil.univ-mrs.fr
> Chercheur au Laboratoire des Sciences de l'Information et des Systèmes - Marseille
> http://www.lsis.org
>
> clé publique open pgp / open pgp public key :
> http://www.esil.univ-mrs.fr/~henocque/0x987E183.pub.asc
> ************************************************************************
>>
- --
*************************************************************************
Laurent Henocque
Maître de Conférences Hdr
tel: +33 6 83 88 20 01
Enseignant à l'Ecole Supérieure d'Ingénieurs de Luminy - Marseille
http://www.esil.univ-mrs.fr
Chercheur au Laboratoire des Sciences de l'Information et des Systèmes - Marseille
http://www.lsis.org
clé publique open pgp / open pgp public key :
http://www.esil.univ-mrs.fr/~henocque/0x987E183.pub.asc
************************************************************************
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFEheNhIF1tz5h+GDARAv6qAJ9Ui0emmuCDIpMQqHISp+nyCcnZ8wCfQ5rL
Omy/SAH6okXJ/H9aH65fm/w=
=gdA8
-----END PGP SIGNATURE-----
Received on Tuesday, 6 June 2006 20:19:56 UTC