Existing services, such as WSDL services, can easily be made into OpenKnoweldge peers. This depends on a translation process so that an OKC is created for each service. This will allow the first-order constraints to function as service inputs and outputs.

The first-order terms that we match do not distinguish between inputs and outputs in the same manner as, for example, WSDL. Instead, both inputs and outputs are arguments of the same predicate. In Prolog notation, this is indicated by using a + for an input and a - for an output. Thus the term:

purchase(-Price,+Vehicle,+Number)

indicates that Vehicle and Number are inputs and Price is an output. During run-time, we can distinguish between inputs and outputs because inputs must be instantiated and outputs must be uninstantiated. In order to use our tree matching techniques for web services, we therefore make use of an automated translation process we have created that will map between a first-order term such as the above and a standard WSDL representation of the same information. This approach can also be used for other kinds of services in addition to web services; all that is required is that a translation process is created to convert between the representation of the service and our first-order terms.

This translation process has been written for WSDL services. For services using different kinds of representations, translation processes would have to be written.

Egglue Powered