Skip to Content

Some days ago linked-data expert Daniel Koller who asked me on Twitter why I’m disappointed with existing semantic web service standards. Those standards are very ambitious as enabler for service governance and even automatic composition of services. I answered in a long series of tweets – perhaps the longest series I ever tweeted so I thought I could be worth to blog.

In the past  I learned that semantic web service standards are difficult and so is SOA governance in an enterprise architecture. SAP has already a powerful design time for web services together with lots of documentation how to use it on SDN. Enterprise Services Repository&Registry . The ESR is far more than a graphical WSDL editor: it supports graphical object models and relationships between them. It allows classifications of service interfaces using the existing meta model which is the stored in the Services Registry. The latter is a UDDI compliant tool for service exposition and discovery – but as general world wide web standards they failed because of the distributed nature of the web.

And this leads me to some important point: people submit standards that could be useful -hopefully. But I’m not sure whether those standards address people’s needs. As a consequence it would be useful if we would start a discussion whether tool support for web services is sufficient or we need better tools and perhaps new standards.

The Properties of Enterprise Services

SOAP web services are difficult because they rely on very complex standards XML Schema, WSDL, SOAP whose complexity needs to be tamed using other standards like WS-I Basic Profile. But none of those standards guarantees semantic interoperability and well designed web services which have common data model, quality criteria like idempotency. So well designed SOAP web services have to be built using guidelines – SAP calls such services “Enterprise Services”. Those are developed within the Enterprise Service Repository (ESR) and they are documented in SAP Solution Manager and in enterprise service workplace.

The enterprise service workplace tells us a lot about SAP Enterprise Services: http://esworkplace.sap.com/ – most of the information can be maintained in ESR:

  • Is it a A2X, A2A or B2B service?
  • To which business object / business scenario does it belong?
  • What are its operations and data types?
  • From which global data types are the data types derived?
  • Is it a change or update service?
  • Is it synchronous or asynchronous?
  • Is it idempotent?
  • Is it released?

In fact these additional information define the semantics of a web service: They define properties of web services.

There is only one weakness because some important properties are coded using naming conventions. Let me give an example: If you want to develop an Enterprise Service that checks whether deletion of an purchase order is possible you have to chose the name “PurchaseOrderCancelCheckQuery” for the operation. These names are related to business objects and various communications patterns. It would be nice if there automatics checks whether those naming conventions are correct. Therefore we need two things: at first the possibility to enrich service definitions with metadata and automatic checks of services definitions against the metadata – a kind of ABAP Code Inspector for Web Services.

And there is another problem: above list of properties is not complete – let me give some additional examples:

  • What about methods for mass changes? Is it a bulk or bundle service?
  • What is the winning strategy when there are parallel request? Is it “first one wins”, “last one wins” or “everybody wins”?
  • If the value of code lists is related to customizing within the backend system?
  • Which part of the payload is relevant for idempotent behaviour?
  • Can I use the service or have I to implement a certain business process in the SAP backend first perhaps by switching on a certain enhancement and doing  customizing?

Let me summarize: SAP provides a methodology for developing web services and offers tool support for enterprise services that follow these guidelines. With those tools we can define standardizes properties of enterprise services. We can link them to business objects and so we obtain a precise semantics of services. There are only a few things that could be improved.

In fact there a bunch of similar standards which provide huge frameworks describing information models, message exchange patterns and even the technical layer (see HL7 for example http://xml.coverpages.org/ni2004-05-06-a.html ). If you want to exchange SOAP messages to those systems you’ll have to achieve an understanding of the semantics of their exposed SOA services. The question is whether tools from knowledge management can help you or if you have to learn the underlying information models, message exchange patterns and so on from scratch. So the question is whether other SOA installation provide tools like SAP’s ES workplace? So I got curious whether if there is a web standard that makes it possible to describe the semantics in a generic way as a kind of “SOA esperanto” which could help to bridge the gap between different “SOA worlds”.

What about existing standards?

Some time ago I read about OWL-S (OWL-S: Semantic Markup for Web Services – see  http://www.daml.org/services/owl-s/1.1/overview/ ) which is quite promising but I’m not sure whether this standard addresses above mentioned aspects. OWL-S is allows to define a co called profile for defining additional features (including input and preconditions) of web services that are useful for discovery processes, a process model and the so called grounding that links the gab between the process model and the request / response information. In fact OWL-S has a good tool support based on Eclipse, so it is easy for you to do your first steps: http://thesemanticway.wordpress.com/2008/12/15/installing-owl-s-ide-eclipse-plugin/ .  For me it is one of the most promising standards.

There lots of more of those standards and decided to do some research. Let’s have a look at Semantic Web Services Language (SWSL), W3C Member Submission 9 from September 2005  http://www.w3.org/Submission/2005/SUBM-SWSF-SWSL-20050909/ When I looked into the header of the specification I got sceptical: nearly everyone of the submitters was a teacher at a university. The chapter 2 began with promising words:

The SWSL-Rules language is designed to provide support for a variety of tasks that range from service profile specification to service discovery, contracting, policy specification, and so on.”

Wow – this sounds great! So I got curious and read on:

 

“The core of the language consists of the pure Horn subset of SWSL-Rules. The monotonic Lloyd-Topor (Mon LT) extension [Lloyd87] of the core permits disjunctions in the rule body and conjunction and implication in the rule head. NAF is an extension that allows negation in the rule body, which is interpreted as negation-as-failure. More specifically, negation is interpreted using the so called well-founded semantics [VanGelder91]. The nonmonotonic Lloyd-Topor extension (Nonmon LT) further permits quantifiers and implication in the rule body. The Courteous rules [Grosof99a] extension introduces two new features.”

This reminded me of my lectures in mathematical logic years ago and especially of the exam: I learned a lot but obviously the wrong things so after some minutes I had to admit that I couldn’t answer the questions. After I rushed over the rest specification I felt the same frustration like in my exam. I appreciate formal representation of concepts but I f every Semantic Web specification is written that way Semantic Web will be an intellectual game of theoretical computer scientists.

The next standard I looked at was the Semantic Web Services Ontology (SWSO) from September 2005: http://www.w3.org/Submission/2005/SUBM-SWSF-SWSO-20050909/ . It starts promising:

“FLOWS is intended to enable reasoning about essential aspects of Web service behavior, for a variety of different purposes and contexts. Some targeted purposes are to support (a) descriptions of Web services that enable automated discovery, composition, and verification, and (b) creation of declarative descriptions of a Web service, that can be mapped (either automatically or through a systematic process) to executable specifications.”

But it took only some lines until the mathematical logic bubble began:

“It is important to note that the specification of the FLOWS ontology in first-order logic does not presuppose that the automated reasoning tasks described above will be realized using a first-order logic theorem prover…”

There are more Semantic Web standards and perhaps I’ll find the time to look at them in depth

Some of them seem to be readable and to understand the others I’ll have to find my books about mathematical logic before I start reading.

But one thing is for sure: I don’t expect Semantic Web standards to be simple because it’s about web crawling bots with reasoning capabilities but I am asking which one of the above standards will be ever implemented outside a university. Most IT people won’t understand them and there won’t be any flourishing community that will contribute pieces of software compared to Eclipse.

What Web 3.0 can learn from Web 2.0

I learned that Semantic Web Services are difficult: The specifications are hard to understand often you need detailed knowledge about dozens of W3C standards and understanding of mathematical logic. There are only a few implementations of those standards so it’s hard to learn them by playing with simple show cases. Nevertheless I won’t give up and blog about some standards which seem to be promising at least for me.

But one thing seems to be obvious: Most standards come from academia and I doubt that they reflect what people need. I would suggest that we should look what are the challenges in service creation, maintenance and SOA governance in general and how semantic techniques could help.

Without any implementation only a few people will understand standards. Every new standard should provide an implementation and there should be a community discussing and evolving standards and related technology. We should start to explain semantic technology in YouTube and build prototypes.

To report this post you need to login first.

6 Comments

You must be Logged on to comment or reply to a post.

  1. Greg Chase
    Great blog – very educational.  My personal experience with standards are related to JSOs.  And generally I found that competing commercial interests drove those.  For example, I was involved in JDO (Java Data Objects) which was being driven by a consortium of object oriented data base developers.  And we found ourselves in a political debate against those that had other interests to drive.

    Its interesting how you point out that many of the standards are essentially “too academic.”  To me the issue is that they don’t really solve any specific commercial problems.  This isn’t any different than a technology that fails to address actual business problems – a concern people have had about SOA in general.

    (0) 
    1. Tobias Trapp Post author
      Hi Greg,

      thx for the feedback. Some times ago I had to implement EDI processes and found the underlying specifications confusing because many things have been unclear. In this case an FAQ or a formal specification (XML Schema) would have helped. Formal specifications are helpful but if only some specialised mathematicians can understand them they are of no use in my opinion.

      When I wrote this blog I hope I could encourage some standard architects to start the discussion with practitioners like us to ask what we really need in our SOA projects or to promote their ideas so that we can discuss whether it can solve a commercial issue.

      Cheers,
      Tobias

      (0) 
  2. Pim de Wit
    nice blog, i had the same question for some time but never took the time to do some background study on this topic. Thanks or this insight.
    My theory is that standards will always lack behind the innovation that software vendors (like SAP) want to bring to the market. A company by itself can be agile in developing his definitions (like enterprise services). Waiting for standardization committees just will not work here. From a theoretical point of view the academics will try to fill in. From a business point of view it will be “the biggest dog(s) on the block” that provide guidance based on commercial reasons.
    (0) 
  3. Miloslav Mil
    Have you met with Semantics of Business Vocabulary and Business Rules (SBVR)? A product/solution supposedly integrated with PI by mean generator of data services (EJB/POJO/REST/WSDL) uses business semantics glossary for decoupling business semantics from implementation details.

    Thanks for blogs about semantics in SAP systems/products and Best Regards

    (0) 
    1. Tobias Trapp Post author
      Yes, I heard about SBVR but not in SAP context. IMHO it is very important for two reasons: we are starting SOA projects to achieve agility – but creation of well defined services is a heavy weight task. To make SOA agile we have to separate processes from decision logic and expose is as a service. It would be great if business rules could be defined centrally and processed in many systems in an enterprise architecture: SAP and non-SAP systems. But therefore we need standards. But a second aspect catches my interest: SBVR is about logic and natural language – and I think this has the potential of cutting edge technology.

      Well, there are so much different approaches and so much things to learn. I hope people from community will start to blog about their experience with semantics.

      Best regards,
      Tobias Trapp

      (0) 
      1. Miloslav Mil
        Yes, there is dilema – agility vs. holistic approach… good start may be standard ESR content, but there is no semantics interoperability between ESR and enterprise models… e.g. I don’t know how search for certain service from ARIS to ESR is done…
        (0) 

Leave a Reply