- From: Camara Melgosa, Javier <JCAMARA@softwareag.es>
- Date: Thu, 9 Dec 2004 11:20:07 +0100
- To: public-sws-ig@w3.org
- Message-ID: <1C8C5F8C3092D711BA7900B0D0FEBDBA029394B0@sag-es.es.sag>
Hi all. Maybe this is sort of a too basic question, but there he goes. One of the things that most puzzles me when I read the OWL-S overview is that it describes the information that can be specified for existing web services, but it gives almost no clue on how this information could be used, i.e. its dynamics. I guess the idea is, once one has some OWL-S documents, to load them into some OWL engine and then start doing queries (reasoning) on them as one whishes. (Whatever you think about the rest of this message, I reckon that in order for people to better understand OWL-S you should include some examples not only on representation of existing services, but also on how agents would use them.) For me, this is somewhat like having the relational model, but no SQL or ODBC/JDBC. I.e. one can take some OWL / OWL-S compatible product, load the OWL-S documents into it and then start exploting them using the tools and APIs of the product; but each such product has very different features and ways to use it. It is as if UDDI would have included only the XSchema models but not the API specs or the WS APIs; then one could create a XML DB with this model and start querying it (well, at least now there is XQuery here) - but UDDI has more than that. I understand that this is not the goal of OWL-S, but anyway I think this is needed in order for it to be a success; otherwise there will be so much variety out there that OWL-S descriptions may well end up having to be tailored for each case. For example, how can discovery of web services be performed if one has OWL-S? The overview does not tell. I guess it is up to one to use the Profile at will. E.g. one could look only at the results and effects of the profile, and leaving the task of dealing with inputs and preconditions to the WS compositor (e.g. if a precondition is not met, maybe by calling another WS we can fulfill it - for me this is one of the main goals of composition). If one has no previous knowledge about the ontologies used for results and effects, then all one can use to discover services is search for things being equivalent (in OWL terms) to the things we are looking for. So if we are requesting results Rr, then we will look for existing profiles with results Re equivalent to Rr. (At least one result being equivalent, or all of them? Up to the discoverer, I guess). However, I think this is somewhat limited and not much beyond what UDDI does. E.g. maybe Re is not equivalent but part of Rr, and Re can be completed later (e.g. through composition) to get the full Rr. Is this part of a new relationship (to be made up by every discoverer)? Or can it be achieved by unionOf et al OWL constructs and so leveraged by any discoverer? Now, if we have some previous knowledge (beyond OWL and OWL-S) about the ontology of results and effects being used, one can issue queries about them, e.g. "look for results equivalentTo Rr, or equivalent to Re". Let's distinguish between the user of the discoverer (i.e. the equivalent to a UDDI client) and the discoverer itself (i.e. the equivalent to a UDDI server). If this previous knowledge about Re and Rr is owned by the user of the discoverer, then the discoverer is not much more than sort of a OWL query engine, and then every user of the discoverer must know about Re containedIn Rr, so every one of them requesting Rr must issue the proper query. However, if it is the discoverer who knows about Re containedIn Rr then every user must just state that it wants Rr to be performed, and leaving the discoverer deal with the details, which is the way I would like a discoverer to work. But assumming we want generic, not hard-wired discoverers, how is this knowledge defined to them? For example, let's take what I believe to be a realistic internal corporate integration scenario: let it be Rr "the department D of the person P in which it performs the role R" (being P and R parameters), and Re "all the departments Di of the person P" (being P a parameter). Re is useful to perform Rr (the resulting Di must be filtered after retrieved, but anyway the goal is met), but they are not equivalent - but how does the discoverer know this, without knowing about the ontology in which these results are expressed? Can this be expressed using static relationships between OWL classes or instances? Maybe a way of doing so is having Re an instance of some DepartmentOfAPerson class, and Rr a instance of some DepartmentOfAPersonWithARole class which is also subclass of DepartmentOfAPerson . I guess a discoverer could leverage this in some way (however, it is up to it). Nonetheless, given the large number of different data concepts (Person, Address, Name, ...) available in an internal corporate integration, this does not look like appealing to me. For me, a good way of expressing all this is to have Re and Rr being instances of the same Retrieval class, and then having some logic condition, associated to this Retrieval class (i.e. with previous knowledge about it), checking when a Retrieval R1 is useful for obtaining a Retrieval R2 . And then making this logic condition available to the discoverer, along with the ontology in which the Retrieval class is defined. And also more logic conditions like this for the composition. This is, I would propose for OWL-S to define a basic and extensible ontology for effects and results, including in them these logic conditions to be invoked by discoverers and compositors. Any opinions on all that? Thank you very much for your time anyway -- Javier Cámara (jcamara@softwareag.es <mailto:jcamara@softwareag.es> ) Software Architect, Software AG España, S.A. Ronda de la Luna, 22; 28760 Tres Cantos (Spain) +34 91 807 9400, fax +34 91 807 9447
Received on Thursday, 9 December 2004 10:17:36 UTC