Tuesday, October 31, 2006

Importing OWL Ontologies to DBEStudio



The following presentation illustrates the process of importing an already exisiting OWL-DL ontology into DBEStudio to be reused in our BML Models:

ImportingOntologiesintoDBEStudio.pdf

DBEStudio 0.2.2 Released



For those like me that havent upgraded their DBEStudio yet or havent realised, there is a new release which includes bug fixes and some new features.

For instructions on how to update or how to install it, please visit the DBEStudio site:
http://dbestudio.sourceforge.net

Wednesday, October 18, 2006

Creating your Own (DBE) Semantic Search Engine

The DBE by default comes with 2 different search engine interfaces. One is integrated within the DBEStudio (QFSDT or Query Formulator and Semantic Discovery Tool) as a Eclipse perspecive and the other is integrated within the, soon to be released, DBE Portal, which in turn is also based on the QFSDT codebase.

If for whatever reason the default ones are not enough or if you want to create a complete new way of searching for DBE real world and software services, it is not too difficult to create your own.

If we keep things simple, we can quickly extend the portal QFSDT library and create our own semantic search engine with, literally, 10 lines of code.


As an example, the figure below illustrates what the user interface of the DBE Portal displays when we enter a search query. Please note that the query used uses the DBE query language. For example, if I want to search for restaurants in Nottingham, a potential query based on the BML models that I used and deployed as part of the ServiceManifests is:

Restaurants location=Nottingham

The results are:


The previous screenshot shows the basis of performing a search operation. First of all we need to create an instance of ServiceSearcher, which takes no arguments.

ServiceSearcher serviceSearcher = new ServiceSearcher()


After we obtain an instance of ServiceSearcher, we call the getServices method with one argument of type String.

Vector v = serviceSearcher.getServices(String s);


Where in our case s = "MyID4Searching##### Restaurant location=Nottingham"

The argument contains in reality two different parameters separated by the string “####”. The first parameter specifies a search ID that can be used to performed asynchronous search across several Semantic Registries. To keep things simple, we assume that we only search in one SR (the local one as configured in qfsdt.portal settings, not shown on this example).




The second parameter is the query itself, which in this case is:
"Restaurant location=Nottingham"

When the query returns we obtain a Vector in which each element is a String[] containing 4 elements: the SMID of the service, the rating according to our query, and two more related to the Service Name/Description and URL.



The example can be downloaded here:
Main.java

Tags:

Swallow 0.2.12 Released



Swallow 0.2.12 has been released, including many bug fixes and new features. For more info:
http://swallow.sourceforge.net/

For downloading it:
http://sourceforge.net/project/showfiles.php?group_id=138511&package_id=151956

Tuesday, October 03, 2006

DBE Recommender Visualisations (V.0000001)




ButterflyRepresentation.pdf

I have been working/thinking towards a way to represent service recommendations in a Service Oriented Architecture (SOA) . The visualisation tries to be exploratory, as a way to experience the "service landscape" available given a user profile/user history and current business processes. Currently there is a growing interest on recommenders for online systems, whatever their nature. Think of Amazon and their "Customers that bought this....".

Within the DBE context, the role of the recommender is to tell you which services could be a good match given your preferences and your runtime history. However and not surprisingly, it turns out that doing Business Process matching in an ad-hoc basis is hard stuff [1] at the technical service description level. The lack of semantics do not help either [2].

Reading some of the literature regarding SOAs, I have discovered that someone [3] came with a list of what the features of SOAs:

- Services are discoverable and dynamically bound

- Services are self-contained and modular

- Services stress interoperability

- Services are loosely coupled

- Services have a network-addressable interface

- Services have coarse-grained interfaces

- Services are location-transparent

- Services are composable

- Service-oriented architecture supports self-healing

Saying all this is easier said that done, specially having something that will work across organisations (where is public UDDI now? apparently someone pulled the plug!) rather than just one place/one organisation.

The idea behind the visualisation is to let the user play and quickly interact with service landscapes while making visible implicitly / explicitly the different SOA properties of the services . That’s why it is Version 0.00001 and there are still lots of work to be done.

Also, the user interface should enable the user to discover new services that might be relevant for a need that the user does not know he/she has yet, serendipity style. By enabling exploring/serendipity, it is possible that users discover new services that might be useful to improve a business process or to create a new business opportunities.



The principal idea behind the graphics is that if an SME is displayed at the centre, two rings could represent the service landscape, from the current services (one ring) to other recommended services. By chance, this representation allows you to see the services and the SME icon on the middle as a buttefly (left wing/right wing) with a bit of imagination.

The data was generated from a simulation that used Collaborative Filtering [4] techniques using the Taste toolkit[5] from a dataset that approximates SME behaviour, and the interaction design and visuals are done with Prefuse[6].

See the PDF for details:
ButterflyRepresentation.pdf


References

[1] B. Mahleko, A.Wombacher, P.Fankhauser, “Process Annotated Service
Discovery Facilitated by an n-Gram Based Index”, in proceedings of
IEEE International Conference on e-Technology, e-Commerce and e-
Service (EEE), 2005, pages 2–8.

[2] R. Krummenacher, M. Hepp, A. Polleres, C. Bussler and D. Fensel,
“WWW or What Is Wrong with Web Services”, in proceedings of the
2005 IEEE European Conf on Web Services, 2005.

[3] J.Borenstein and J. Fox, “Enterprise Semantics: Aligning Service-
Oriented Architecture with the Business”, WebServices Journal,vol. 5,
no.4, 2005, pages 30-34.

[4] J. L. Herlocker , J. A. Konstan, L. G. Terveen University of Minnesota, Minneapolis, MN, John T. Riedl University of Minnesota, Minneapolis, Evaluating collaborative filtering recommender systems ACM Transactions on Information Systems (TOIS) a Volume 22 , Issue 1 (January 2004) Pages: 5 - 53

[5] Taste. Collaborative Filtering for Java. http://taste.sourceforge.net/

[6] Prefuse. Interactive Information Visualisation Toolkit. http://prefuse.org/

Tags: