(12/16/02) Semantic Matchmaker (still in the alpha stage)- contains the following components:
(clicking on the screenshots will display the enlarged image)
| 1. DAML-S Parser:
The user enters the web service URI and reference ID (e.g. UDDI-ID) and the program parses the DAML-S service description to obtain service parameters such as inputs, preconditions, outputs, effects and attributes. The service can be subsequently added to the database and the program uses a set of hash tables to maintain cross-links between ontology elements and web service references. |
Screenshot 1 |
|
2. Ontology Mapper: The user can provide a set of mappings between any pair of ontologies (alternatively external mappings generated using the OntProfiler tool or specified in a local RDF/DAML file can be borrowed). Jess is used to make additional inferences based on the mappings specified. These mappings greatly enhance the results returned by the matchmaking engine by translating across ontologies. Example of Mapping and subsequent Inferencing: Suppose we have the following three assertions made by the user (see Screenshot 2): 1. class Work in one ontology is the union of class Location and class Activity from another ontology. 2. class Work is the same class as class Event in another ontology 3. class Process is a subclass of class Event These assertions are stored in the mapping.daml file, which is auto-generated by the program. The file can then be fed into the Jess Engine, based on which Jess makes the following inferences: see Screenshot 3 Process is a subclass of Work Location is a subclass of Work Activity is a subclass of Work (As can be seen, the notation used for displaying inferred classes in the Filter Table, is a prefix of - '*' for Equivalent Classes, '^' for Superclasses and 'v' for Subclasses) Also note that these inferences supplement the straightforward inferencing that results from within the same ontology (hence the additional inferences as shown i.e. classes Course and Research are subclass of Work).
|
Screenshot 2
Screenshot 3
|
| 3. Service Filter / Browser:
The user can enter ontology elements in the filter table and the corresponding web services available are displayed as shown. Whenever an ontology element is added to a specific filter, additional elements (obtained by equivalence, subsumption/plug-in) are simultaneously added to the filter, based on inferences made from the ontology mappings. (the user can optionally remove these inferred elements)
|
Screenshot 4 |
|
4. Planner: The user can provide a service request using the filter table and the program attempts to find a composite set of web services that can achieve the desired task using a simple recursive algorithm (the internal storage representation used helps speed up the process). Example of Chaining (see screenshot): Suppose there are two web services: 1. ISBNFinder - which takes as input a book name (linked to class String in some ontology, say 1) and returns as output that book's ISBN number (linked to class ISBN in some ontology, say 2) 2. BNPrice - which takes as input a book's ISBN number (linked to the same class ISBN from ontology 2) and returns as output its price (class Currency in some other ontology, say 3) Feeding class String from ontology 1 as an input and class Currency from ontology 3 as an output to the Web Service Filter Table does not find any single web service. However, the planner helps to chain the two web services mentioned above to achieve the desired result
|
Screenshot 5 |
(12/18/02) A newer version of the Matchmaker (v1.1-alpha) is now available:
Download only the program source/class files here
Download the related API used (Jena, Jess, RIC - older version) here
Installation Instructions:
1. Unzip the 2 zip files (linked above) to a new directory. You don't need to download the API zip file if you already have Jena, Jess and the older version of Michael's RIC installed on your box.
2. Run the Matchmaker by executing 'SMM.bat' at the console from inside the directory





