[jboss-svn-commits] JBL Code SVN: r35107 - in labs/jbossesb/workspace/johan.kumps/product/services: semantics and 21 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Sep 10 14:45:03 EDT 2010


Author: johan.kumps
Date: 2010-09-10 14:45:01 -0400 (Fri, 10 Sep 2010)
New Revision: 35107

Added:
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.properties
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.xml
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/arq-2.8.1.jar
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/aterm-java-1.6.jar
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/axis-1.4.jar
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/build-time/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/classes.jar
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/commons-discovery-0.2.jar
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/icu4j-3.4.4.jar
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/iri-0.7.jar
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/jena-2.6.2.jar
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/pellet-2.0.jar
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/relaxngDatatype-20020414.jar
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/upnp-1.0.jar
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/xsdlib-20030225.jar
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/DiscoveryAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/SPARQLDiscoveryAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/invocation/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/invocation/ServiceInvocationAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AbstractSelectionAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/FirstMatchSelectionAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/RandomMatchSelectionAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/SelectionAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OWLKnowledgeBaseManager.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryService.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryServiceMBean.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ConceptValueType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/DataValueType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ExpectedOutputType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/InputType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectFactory.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectValueType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryRequestType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryResponseType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/package-info.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/utils/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/utils/Constants.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/deployment.xml
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-esb.xml
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-scanning.xml
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/common.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/fault.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jbm-queue-service.xml
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jndi.properties
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/log4j.xml
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/owls-registry-service.xml
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/request.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/response.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/test/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/test/java/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/test/resources/
Log:
Intial version semantics service

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.properties
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.properties	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.properties	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,4 @@
+esb.product.lib.dir=../../build/jbossesb/lib
+esb.main.lib=../../build/lib
+esb.product.lib.ext=../../lib/ext
+services.base.build=../base-project-build.xml
\ No newline at end of file

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.xml	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.xml	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,17 @@
+<project name="semantics" default="test" basedir=".">
+	
+	<property file="build.properties"/>
+	<!-- Import the base Ant build script... -->
+	<import file="${services.base.build}"/>
+	
+	<property name="additional.deploys" value="*.xsd"/>
+	
+	<target name="test" depends="base.test"/>
+	
+	<target name="deploy" depends="esb">
+		<copy todir="C:/jb/product/build/jbossesb-server-4.7/server/default/deploy/semantics.esb">
+		          <fileset dir="C:/jb/product/services/semantics/build/semantics.esb"/>
+		      </copy>
+	</target>
+
+</project>
\ No newline at end of file

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/arq-2.8.1.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/arq-2.8.1.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/aterm-java-1.6.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/aterm-java-1.6.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/axis-1.4.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/axis-1.4.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/classes.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/classes.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/commons-discovery-0.2.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/commons-discovery-0.2.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/icu4j-3.4.4.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/icu4j-3.4.4.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/iri-0.7.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/iri-0.7.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/jena-2.6.2.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/jena-2.6.2.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/pellet-2.0.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/pellet-2.0.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/relaxngDatatype-20020414.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/relaxngDatatype-20020414.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/upnp-1.0.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/upnp-1.0.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/xsdlib-20030225.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/xsdlib-20030225.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/DiscoveryAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/DiscoveryAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/DiscoveryAction.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,19 @@
+package org.jboss.soa.esb.services.semantics.actions.discovery;
+
+import org.jboss.soa.esb.message.Message;
+
+public interface DiscoveryAction {
+	
+	
+	
+	// Error messages
+	public static final String NO_MATCHING_SERVICES = "No matching services were found based on the user query";
+	
+	/**
+	 * Method discovering services based on the given service query. 
+	 * Only one service will be returned to be automatically invoked.
+	 * @return the found service based on the given query.
+	 */
+	public Message discover(Message message) throws Exception;
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/SPARQLDiscoveryAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/SPARQLDiscoveryAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/SPARQLDiscoveryAction.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,254 @@
+package org.jboss.soa.esb.services.semantics.actions.discovery;
+
+import java.io.StringReader;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.actions.ActionLifecycleException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.semantics.configuration.OWLKnowledgeBaseManager;
+import org.jboss.soa.esb.services.semantics.model.ExpectedOutputType;
+import org.jboss.soa.esb.services.semantics.model.InputType;
+import org.jboss.soa.esb.services.semantics.model.ServiceQueryRequestType;
+import org.jboss.soa.esb.services.semantics.utils.Constants;
+import org.mindswap.common.ClosableIterator;
+import org.mindswap.common.Variable;
+import org.mindswap.exceptions.ParseException;
+import org.mindswap.owl.OWLEntity;
+import org.mindswap.owl.OWLIndividual;
+import org.mindswap.owl.OWLKnowledgeBase;
+import org.mindswap.owl.OWLValue;
+import org.mindswap.owls.vocabulary.OWLS;
+import org.mindswap.query.QueryLanguage;
+import org.mindswap.query.ValueMap;
+import org.xml.sax.InputSource;
+
+/**
+ * This class is the SPARQL implementation of the DiscoveryAction interface.
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ *
+ */
+public class SPARQLDiscoveryAction extends AbstractActionLifecycle implements
+		DiscoveryAction {
+	
+    /**
+     * The Logger instance for this action
+     */
+    private static Logger logger = Logger.getLogger(SPARQLDiscoveryAction.class);
+
+	protected ConfigTree _config = null;
+
+	private JAXBContext jaxbContext = null;
+	private Unmarshaller unmarshaller = null;
+	
+
+	/*
+	 * 
+	 */
+	public SPARQLDiscoveryAction(ConfigTree config) throws ActionLifecycleException {
+		_config = config;
+		try {
+			jaxbContext = JAXBContext.newInstance(Constants.SEMANTIC_MODEL_PACKAGE);
+			unmarshaller = jaxbContext.createUnmarshaller();
+		} catch (JAXBException e) {
+			logger.error(e.getMessage());
+			throw new ActionLifecycleException(e);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.jboss.soa.esb.services.semantics.actions.matchmaking.DiscoveryAction#discover(org.jboss.soa.esb.message.Message)
+	 */
+	public Message discover(Message message) throws ActionProcessingException {
+        if(logger.isDebugEnabled()) {
+            logger.debug("Message received: [" + message + "].");
+        }        
+		ServiceQueryRequestType serviceQuery = this.parseServiceQuery(message);
+
+		List<URI> matchedServiceURIs = this.getMatchedServiceURIs(serviceQuery);
+		if(logger.isDebugEnabled()) {
+            logger.debug("Discovered service URIs: [");
+            URI current = null;
+            for (Iterator<URI> iter = matchedServiceURIs.iterator(); iter.hasNext();){
+            	current = iter.next();
+            	logger.debug("                          " + current + ",");	
+            }
+            logger.debug("].");
+        }
+		message.getBody().add(Constants.DISCOVERED_SERVICE_URIS_MESSAGE_KEY, matchedServiceURIs);
+		
+		//TODO nodig?
+		if (serviceQuery.getInputs() != null){
+			message.getBody().add(Constants.CONSUMER_INPUTS_MESSAGE_KEY, serviceQuery.getInputs());
+		}
+		return message;
+
+	}
+
+	/**
+	 * Method extracting a ServiceQueryRequestType instance out of the given Message
+	 * @param message the Message instance to use to extract a ServiceQueryRequestType instance
+	 * @return the extracted ServiceQueryRequestType instance
+	 * @throws JAXBException
+	 */
+	private ServiceQueryRequestType parseServiceQuery(Message message)
+			throws ActionProcessingException {
+		final String request = (String) message.getBody().get();
+
+		InputSource requestInputSource = new InputSource(new StringReader(
+				request));
+
+		try {
+			ServiceQueryRequestType serviceQueryRequestType = (ServiceQueryRequestType) ((JAXBElement) this.unmarshaller
+					.unmarshal(requestInputSource)).getValue();
+			if(logger.isDebugEnabled()) {
+	            logger.debug("Parsed ServiceQueryRequest: [" + serviceQueryRequestType + "].");
+	        }
+			return serviceQueryRequestType;
+		} catch (JAXBException e) {
+			logger.error(e.getMessage());
+			throw new ActionProcessingException(e);
+		}
+
+	}
+
+	/**
+	 * Method building a SPARQL query based on the given user query
+	 * @param serviceQuery the user query to use
+	 * @return the created SPARQL query string
+	 * @throws ActionProcessingException if something goes wrong during the building
+	 */
+	private String buildSPARQLQuery(ServiceQueryRequestType serviceQuery) throws ActionProcessingException{
+		// TODO zouden we hier eigenlijk niet nodig mogen hebben. Zie syntax
+		// SPARQL!
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+		StringBuffer queryBuffer = new StringBuffer(
+					"PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
+					+ "PREFIX pr: <http://www.daml.org/services/owl-s/1.2/Profile.owl#> "
+					+ "PREFIX prc: <http://www.daml.org/services/owl-s/1.2/Process.owl#> "
+					+ "PREFIX concepts: <http://www.example.org/concepts.owl#> "
+					+ "PREFIX sr: <http://www.daml.org/services/owl-s/1.2/Service.owl#> "
+					+ "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> "
+					+ "SELECT ?s WHERE {" 
+					+ "?s sr:presents ?o. ");
+
+		// inputs mapping
+		if (serviceQuery.getInputs() != null){
+			List<InputType> serviceQueryInputs = serviceQuery.getInputs().getInput();
+			InputType currentInput = null;
+			int count = 0;
+			for (Iterator<InputType> iter = serviceQueryInputs.iterator(); iter
+					.hasNext();) {
+				currentInput = iter.next();
+				// TODO kan er gezocht worden op concept? Niet steeds eerst de naam
+				// op basis van de URI ophalen!
+				OWLEntity ontologyInput;
+				try {
+					ontologyInput = owlKnowledgeBase.getEntity(new URI(
+							currentInput.getClazz()));
+				} catch (URISyntaxException e) {
+					logger.error(e.getMessage());
+					throw new ActionProcessingException(e);
+				}
+				queryBuffer.append("?o pr:hasInput ?in" + count +". ");
+				queryBuffer.append("?in" + count +" prc:parameterType \"" + currentInput.getClazz() + "\"^^xsd:anyURI. ");
+				count++;
+			}
+		}
+
+		// outputs mapping
+		if (serviceQuery.getOutputs() != null){
+			List<ExpectedOutputType> serviceQueryOutputs = serviceQuery
+				.getOutputs().getOutput();
+		
+			ExpectedOutputType currentOut = null;
+			int count = 0;
+			for (Iterator<ExpectedOutputType> iter = serviceQueryOutputs.iterator(); iter
+					.hasNext();) {
+				currentOut = iter.next();
+				// TODO kan er gezocht worden op concept? Niet steeds eerst de naam
+				// op basis van de URI ophalen!
+				OWLEntity type;
+				try {
+					type = owlKnowledgeBase.getEntity(new URI(currentOut
+							.getClazz()));
+				} catch (URISyntaxException e) {
+					logger.error(e.getMessage());
+					throw new ActionProcessingException(e);
+				}
+				queryBuffer.append("?o pr:hasOutput ?out" + count +". ");
+				queryBuffer.append("?out" + count +" prc:parameterType \"" + currentOut.getClazz() + "\"^^xsd:anyURI. ");
+				count++;
+			}
+		}
+
+		queryBuffer.append("} ");
+		
+		if(logger.isDebugEnabled()) {
+            logger.debug("SPARQL Query: [" + queryBuffer + "].");
+        }
+
+		return queryBuffer.toString();
+	}
+
+	/**
+	 * Method executing the SPARQL query to retrieve the URI of the service matching the given query.
+	 * @param serviceQuery the query to use to retrieve matching services
+	 * @return the URI of the matching service
+	 * @throws ActionProcessingException
+	 */
+	private List<URI> getMatchedServiceURIs(ServiceQueryRequestType serviceQuery) throws ActionProcessingException
+			 {
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+
+		List<ValueMap<Variable, OWLValue>> services = new ArrayList<ValueMap<Variable, OWLValue>>();
+		ClosableIterator<ValueMap<Variable, OWLValue>> results = null;
+		try {
+			results = owlKnowledgeBase.makeQuery(
+					this.buildSPARQLQuery(serviceQuery), QueryLanguage.SPARQL)
+					.execute(null);
+			while (results.hasNext()) {
+				services.add(results.next());
+			}
+		} catch (ParseException e) {
+			logger.error(e.getMessage());
+			throw new ActionProcessingException(e);
+		} finally {
+			if (results != null)
+				results.close();
+		}
+		List<URI> matchedServices = new ArrayList<URI>();
+		if (services.size() > 0){
+			ValueMap<Variable, OWLValue> current = null;
+			OWLIndividual currentIndividual = null;
+			for (Iterator<ValueMap<Variable, OWLValue>> iter = services.iterator(); iter.hasNext();){
+				current = iter.next();
+				currentIndividual = current.getIndividualValue("s");
+				matchedServices.add(currentIndividual.getURI());
+			}
+		}
+		
+		if(logger.isDebugEnabled()) {
+            logger.debug("Number of matching services: [" + matchedServices.size() + "].");
+        }
+		return matchedServices;
+
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/invocation/ServiceInvocationAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/invocation/ServiceInvocationAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/invocation/ServiceInvocationAction.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,292 @@
+package org.jboss.soa.esb.services.semantics.actions.invocation;
+
+import java.io.ByteArrayOutputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.PropertyException;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.semantics.actions.selection.SelectionAction;
+import org.jboss.soa.esb.services.semantics.configuration.OWLKnowledgeBaseManager;
+import org.jboss.soa.esb.services.semantics.model.ConceptValueType;
+import org.jboss.soa.esb.services.semantics.model.DataValueType;
+import org.jboss.soa.esb.services.semantics.model.InputType;
+import org.jboss.soa.esb.services.semantics.model.ObjectFactory;
+import org.jboss.soa.esb.services.semantics.model.ObjectValueType;
+import org.jboss.soa.esb.services.semantics.model.ServiceQueryResponseType;
+import org.jboss.soa.esb.services.semantics.model.ServiceQueryRequestType.Inputs;
+import org.jboss.soa.esb.services.semantics.model.ServiceQueryResponseType.Outputs;
+import org.jboss.soa.esb.services.semantics.utils.Constants;
+import org.mindswap.exceptions.ExecutionException;
+import org.mindswap.owl.OWLClass;
+import org.mindswap.owl.OWLDataProperty;
+import org.mindswap.owl.OWLIndividual;
+import org.mindswap.owl.OWLIndividualList;
+import org.mindswap.owl.OWLKnowledgeBase;
+import org.mindswap.owl.OWLObjectProperty;
+import org.mindswap.owl.OWLValue;
+import org.mindswap.owls.OWLSFactory;
+import org.mindswap.owls.process.Process;
+import org.mindswap.owls.process.execution.ProcessExecutionEngine;
+import org.mindswap.owls.process.variable.Input;
+import org.mindswap.owls.process.variable.Output;
+import org.mindswap.query.ValueMap;
+
+/**
+ * This service invocation action invoking the selected service.
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ *
+ */
+public class ServiceInvocationAction extends AbstractActionLifecycle {
+
+	/**
+	 * The Logger instance for this action
+	 */
+	private static Logger logger = Logger
+			.getLogger(ServiceInvocationAction.class);
+
+	private JAXBContext jaxbContext = null;
+	private Marshaller marshaller = null;
+	
+	public ServiceInvocationAction(ConfigTree config) {
+		try {
+			jaxbContext = JAXBContext.newInstance(Constants.SEMANTIC_MODEL_PACKAGE);
+			marshaller = jaxbContext.createMarshaller();
+		} catch (JAXBException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Method executing the service identified by the given {@link java.net.URI}
+	 * using the given inputs.
+	 * 
+	 * @param serviceURI
+	 *            the service to be executed.
+	 * @param inputs
+	 *            the inputs to be used when invoking the service
+	 * @return the outputs generated by the service upon invocation.
+	 * @throws URISyntaxException
+	 */
+	public Message invoke(Message message) throws ActionProcessingException {
+
+		URI serviceURI = (URI) message.getBody().get(
+				Constants.SELECTED_SERVICE_URI_MESSAGE_KEY);
+		String messageID = (String) message.getBody().get("messageID");
+
+		List<InputType> userInputs = ((Inputs) message.getBody().get(Constants.CONSUMER_INPUTS_MESSAGE_KEY))
+				.getInput();
+
+		//If a service is found --> start the invocation sequence
+		if (serviceURI != null) {
+			OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+			Process process = owlKnowledgeBase.getService(serviceURI).getProcess();
+
+			ProcessExecutionEngine processExecutionEngine = OWLSFactory
+					.createExecutionEngine();
+
+			ValueMap<Output, OWLValue> outputs = new ValueMap<Output, OWLValue>();
+
+			try {
+				outputs = processExecutionEngine.execute(process, this.buildProcessInputs(userInputs, process, serviceURI),
+						owlKnowledgeBase);
+			} catch (ExecutionException e) {
+				logger.error(e.getMessage());
+				throw new ActionProcessingException(e);
+			}
+			
+			return this.buildResponseMessage(this.buildServiceQueryResponseType(messageID, outputs, process), message);
+		} else {
+			// return error message
+			return message;
+		}
+	}
+
+	/**
+	 * This method converts the consumer inputs into the parameters for the execution engine
+	 * @param userInputs the consumer inputs to convert
+	 * @param process the process inputs
+	 * @param serviceURI the uri of the service to invoke
+	 * @return the inputs for the execution engine
+	 */
+	private ValueMap<Input, OWLValue> buildProcessInputs(
+			List<InputType> userInputs,  Process process, URI serviceURI) {
+		// initialize the input values to be empty
+		ValueMap<Input, OWLValue> inputs = new ValueMap<Input, OWLValue>();
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+		
+
+		OWLIndividualList<Input> processInputs = process.getInputs();
+		InputType currentUserInput = null;
+
+		OWLClass rootClass = null;
+		OWLIndividual rootIndividual = null;
+
+		DataValueType currentDataValue = null;
+		OWLDataProperty currentDataProperty = null;
+
+		ObjectValueType currentObjectValue = null;
+		OWLClass currentObjectValueClass = null;
+		OWLIndividual currentObjectValueIndividual = null;
+		OWLObjectProperty currentObjectProperty = null;
+		DataValueType currentObjectValueDataValue = null;
+		OWLDataProperty currentObjectValueDataProperty = null;
+
+		// String currentProcessInputLocalName = null;
+
+		try {
+			// looping over all given inputs
+			for (int i = 0; i < userInputs.size(); i++) {
+				currentUserInput = userInputs.get(i);
+				// root instance
+				rootClass = owlKnowledgeBase.getClass(new URI(currentUserInput
+						.getClazz()));
+				rootIndividual = owlKnowledgeBase.createInstance(rootClass,
+						null);
+
+				if (logger.isDebugEnabled()) {
+					logger.debug("rootClass : " + rootClass);
+					logger.debug("rootIndividual : " + rootIndividual);
+				}
+				// Lowering all datavalues
+				for (Iterator<DataValueType> dataValueIterator = currentUserInput
+						.getDataValue().iterator(); dataValueIterator.hasNext();) {
+					currentDataValue = dataValueIterator.next();
+					currentDataProperty = owlKnowledgeBase
+							.getDataProperty(new URI(currentDataValue.getName()));
+					if (logger.isDebugEnabled()) {
+						logger.debug("currentDataProperty : "
+								+ currentDataProperty);
+					}
+					rootIndividual.addProperty(currentDataProperty,
+							currentDataValue.getValue());
+				}
+				// transfering all objectvalues
+				for (Iterator<ObjectValueType> objectValueIterator = currentUserInput
+						.getObjectValue().iterator(); objectValueIterator
+						.hasNext();) {
+					currentObjectValue = objectValueIterator.next();
+					currentObjectValueClass = owlKnowledgeBase
+							.getClass(new URI(currentObjectValue.getClazz()));
+					currentObjectValueIndividual = owlKnowledgeBase
+							.createInstance(currentObjectValueClass, null);
+
+					if (logger.isDebugEnabled()) {
+						logger.debug("currentObjectValueClass : "
+								+ currentObjectValueClass);
+						logger.debug("currentObjectValueIndividual : "
+								+ currentObjectValueIndividual);
+					}
+					// looping data values of the current object value
+					for (Iterator<DataValueType> objectValueDataValueIterator = currentObjectValue
+							.getDataValue().iterator(); objectValueDataValueIterator
+							.hasNext();) {
+						currentObjectValueDataValue = objectValueDataValueIterator
+								.next();
+						currentObjectValueDataProperty = owlKnowledgeBase
+								.getDataProperty(new URI(
+										currentObjectValueDataValue.getName()));
+						currentObjectValueIndividual.addProperty(
+								currentObjectValueDataProperty,
+								currentObjectValueDataValue.getValue());
+
+						if (logger.isDebugEnabled()) {
+							logger.debug("currentObjectValueDataProperty : "
+									+ currentObjectValueDataProperty);
+						}
+					}
+					// owlKnowledgeBase.getEntity(URI.create(currentObjectValue.getConcept())).getLocalName()
+
+					currentObjectProperty = owlKnowledgeBase
+							.getObjectProperty(URI.create(currentObjectValue
+									.getName()));
+					rootIndividual.addProperty(currentObjectProperty,
+							currentObjectValueIndividual);
+				}
+				if (logger.isDebugEnabled()) {
+					logger.debug("Genereted RDF : "
+							+ rootIndividual.toRDF(true, true));
+				}
+
+				// get the parameter using the local name
+				inputs.setValue(process.getInput(processInputs.get(0)
+						.getLocalName()), rootIndividual);
+			}
+
+		} catch (URISyntaxException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return inputs;
+	}
+
+	/**
+	 * This message builds a ServiceQueryResponseType instance based on the outputs of the service
+	 * @param messageId the id of the consumer request
+	 * @param outputs the service outputs (effects)
+	 * @param process the process being invoked
+	 * @return the ServiceQueryResponseType containing the effects of the service
+	 */
+	private ServiceQueryResponseType buildServiceQueryResponseType(String messageId, ValueMap<Output, OWLValue> outputs, Process process){
+		
+		OWLIndividualList<Output> processOutputs = process.getOutputs();
+		Output currentOutput = null;
+
+		ServiceQueryResponseType serviceQueryResponse = ObjectFactory
+				.getInstance().createServiceQueryResponseType();
+		serviceQueryResponse.setId(messageId);
+		Outputs serviceOutputs = ObjectFactory.getInstance()
+				.createServiceQueryResponseTypeOutputs();
+
+		for (int i = 0; i < processOutputs.size(); i++) {
+			currentOutput = processOutputs.get(i);
+			ConceptValueType output = ObjectFactory.getInstance()
+					.createConceptValueType();
+			output.setConcept(currentOutput.getURI().toString());
+			output.setDataValue(outputs.getDataValue(
+					currentOutput.getName()).toString());
+			serviceOutputs.getOutput().add(output);
+		}
+		serviceQueryResponse.setOutputs(serviceOutputs);
+		
+		return serviceQueryResponse;
+	}
+
+	/**
+	 * Method marshalling the ServiceQueryResponseType into an XML document to be added to the Message this action returns
+	 * @param serviceQueryResponseType the ServiceQueryResponseType instance to marshal to an XML document
+	 * @param message the message to contain the ServiceQueryResponseType as an XML document
+	 * @return the message to be returned by this action
+	 */
+	private Message buildResponseMessage(ServiceQueryResponseType serviceQueryResponseType, Message message){
+		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+		try {
+			this.marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
+					Boolean.TRUE);
+			this.marshaller.marshal(ObjectFactory.getInstance()
+					.createServiceQueryResponse(serviceQueryResponseType),outStream);
+			message.getBody().add(outStream.toString());
+		} catch (PropertyException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (JAXBException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return message;
+	}
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AbstractSelectionAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AbstractSelectionAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AbstractSelectionAction.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,25 @@
+package org.jboss.soa.esb.services.semantics.actions.selection;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.message.Message;
+import org.mindswap.owls.service.Service;
+
+public abstract class AbstractSelectionAction implements SelectionAction{
+	/**
+     * The Logger instance for this action
+     */
+    private static Logger logger = Logger.getLogger(AbstractSelectionAction.class);
+
+	public abstract Message select(Message message) throws Exception;
+	
+	protected void printServiceInfo(Service service) {
+		if (logger.isDebugEnabled()){
+			logger.debug("Service metadata : ");
+			logger.debug("-------------------");
+			logger.debug("Service URI: " + service.getURI().toString());
+			logger.debug("Service Name: " + service.getLabel(null));
+			logger.debug("Service Description: " + service.getProfile().getTextDescription());
+		}
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/FirstMatchSelectionAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/FirstMatchSelectionAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/FirstMatchSelectionAction.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,48 @@
+package org.jboss.soa.esb.services.semantics.actions.selection;
+
+import java.net.URI;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.semantics.actions.discovery.DiscoveryAction;
+import org.jboss.soa.esb.services.semantics.configuration.OWLKnowledgeBaseManager;
+import org.jboss.soa.esb.services.semantics.utils.Constants;
+
+/**
+ * This discoveryAction selects 1 service out of the services matching the user query.
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ *
+ */
+public class FirstMatchSelectionAction extends AbstractSelectionAction {
+	
+	/**
+     * The Logger instance for this action
+     */
+    private static Logger logger = Logger.getLogger(FirstMatchSelectionAction.class);
+    
+	protected ConfigTree _config = null;
+	
+	public FirstMatchSelectionAction(ConfigTree config) {
+		_config = config;
+	}
+
+	public Message select(Message message) throws ActionProcessingException {
+		List<URI> matchedServices = (List<URI>) message.getBody().get(Constants.DISCOVERED_SERVICE_URIS_MESSAGE_KEY);
+		if (matchedServices.size() > 0){
+			if(logger.isDebugEnabled()) {
+	            this.printServiceInfo(OWLKnowledgeBaseManager
+	    				.getInstance().getOwlKnowledgeBase().getService(matchedServices.get(0)));
+	        } 
+			message.getBody().add(Constants.SELECTED_SERVICE_URI_MESSAGE_KEY, matchedServices.get(0));
+		} else {
+			logger.error(DiscoveryAction.NO_MATCHING_SERVICES + "[BUG : Exception should not be encountered here]");
+			throw new ActionProcessingException(DiscoveryAction.NO_MATCHING_SERVICES);
+		}
+		return message;
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/RandomMatchSelectionAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/RandomMatchSelectionAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/RandomMatchSelectionAction.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,61 @@
+package org.jboss.soa.esb.services.semantics.actions.selection;
+
+import java.net.URI;
+import java.util.List;
+import java.util.Random;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionLifecycleException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.semantics.actions.discovery.DiscoveryAction;
+import org.jboss.soa.esb.services.semantics.utils.Constants;
+
+/**
+ * This discoveryAction selects 1 service out of the services matching the user query randomly.
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ *
+ */
+public class RandomMatchSelectionAction implements SelectionAction {
+	
+	/**
+     * The Logger instance for this action
+     */
+    private static Logger logger = Logger.getLogger(RandomMatchSelectionAction.class);
+    
+    private Random generator = null;
+    
+	protected ConfigTree _config = null;
+	
+	public RandomMatchSelectionAction(ConfigTree config) {
+		_config = config;
+	}
+    
+	/**
+	 * Initializes the RandomMatchSelectionAction.
+	 * 
+	 * @throws ActionLifecycleException in case somthing goes wrong during initialization.
+	 */
+	public void initialize() throws ActionLifecycleException{
+		this.generator = new Random();
+	}
+
+	public Message select(Message message) throws ActionProcessingException {
+		List<URI> matchedServices = (List<URI>) message.getBody().get(Constants.DISCOVERED_SERVICE_URIS_MESSAGE_KEY);
+		URI selectedServiceURI = null;
+		if (matchedServices.size() > 0){
+			selectedServiceURI = matchedServices.get(generator.nextInt(matchedServices.size()));
+			if(logger.isDebugEnabled()) {
+	            logger.debug("Selected service: [" + selectedServiceURI + "].");
+	        } 
+			message.getBody().add(Constants.SELECTED_SERVICE_URI_MESSAGE_KEY, selectedServiceURI);
+		} else {
+			logger.error(DiscoveryAction.NO_MATCHING_SERVICES + "[BUG : Exception should not be encountered here]");
+			throw new ActionProcessingException(DiscoveryAction.NO_MATCHING_SERVICES);
+		}
+		return message;
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/SelectionAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/SelectionAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/SelectionAction.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,14 @@
+package org.jboss.soa.esb.services.semantics.actions.selection;
+
+import org.jboss.soa.esb.message.Message;
+
+public interface SelectionAction {
+
+	/**
+	 * Method discovering services based on the given service query. 
+	 * Only one service will be returned to be automatically invoked.
+	 * @return the found service based on the given query.
+	 */
+	public Message select(Message message) throws Exception;
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OWLKnowledgeBaseManager.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OWLKnowledgeBaseManager.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OWLKnowledgeBaseManager.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,51 @@
+package org.jboss.soa.esb.services.semantics.configuration;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.mindswap.owl.OWLFactory;
+import org.mindswap.owl.OWLKnowledgeBase;
+
+public class OWLKnowledgeBaseManager{
+	
+	private static OWLKnowledgeBaseManager instance = null;
+	
+	private OWLKnowledgeBase owlKnowledgeBase = null;
+	
+	private OWLKnowledgeBaseManager(){
+		this.init();
+	}
+	
+	public static OWLKnowledgeBaseManager getInstance(){
+		if (instance == null){
+			instance = new OWLKnowledgeBaseManager();
+		}
+		return instance;
+	}
+	
+	public OWLKnowledgeBase getOwlKnowledgeBase(){
+		return this.owlKnowledgeBase;
+	}
+	
+	private void init(){
+		this.owlKnowledgeBase = OWLFactory.createKB();
+		this.owlKnowledgeBase.setReasoner("Pellet");
+		
+		//Load default service ontologies
+		try {
+//			this.owlKnowledgeBase.read(new URI("C:/projecten/JBossESB/ssoa/owls-api-3.0/getMessage.owl"));
+			this.owlKnowledgeBase.read(new URI("file://C:/projecten/JBossESB/ssoa/owls-api-3.0/getGreeting-Simulated.owl"));
+			this.owlKnowledgeBase.read(new URI("file://C:/projecten/JBossESB/ssoa/owls-api-3.0/GetWeather2-Simulated.owl"));
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (URISyntaxException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+	
+	
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryService.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryService.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryService.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.semantics.configuration;
+
+import org.jboss.system.ServiceMBeanSupport;
+import org.mindswap.owl.OWLKnowledgeBase;
+
+/**
+ * MBean controlling the OWL Service Registry service initialisation.
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ */
+public class OwlServiceRegistryService extends ServiceMBeanSupport implements
+		OwlServiceRegistryServiceMBean {
+	@Override
+	protected void startService() throws Exception {
+		System.out.println("OwlServiceRegistryService.startService() called!");
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+
+		// register configured services.
+		super.startService();
+	}
+
+	@Override
+	protected void stopService() throws Exception {
+		super.stopService();
+		// own destroy
+		System.out.println("OwlServiceRegistryService.stopService() called!");
+	}
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryServiceMBean.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryServiceMBean.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryServiceMBean.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.semantics.configuration;
+
+import org.jboss.system.ServiceMBean;
+
+/**
+ * Interface for the OWL Service Registry service initialisation MBean.
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ */
+public interface OwlServiceRegistryServiceMBean extends ServiceMBean
+{
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ConceptValueType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ConceptValueType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ConceptValueType.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,122 @@
+
+package org.jboss.soa.esb.services.semantics.model;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ConceptValueType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ConceptValueType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="concept" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;choice>
+ *           &lt;element name="dataValue" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *           &lt;element name="individualValue" type="{http://jboss.org/soa/esb/services/semantics/model}ConceptValueType"/>
+ *         &lt;/choice>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ConceptValueType", propOrder = {
+    "concept",
+    "dataValue",
+    "individualValue"
+})
+public class ConceptValueType implements Serializable{
+
+    @XmlElement(required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String concept;
+    protected String dataValue;
+    protected ConceptValueType individualValue;
+
+    /**
+     * Gets the value of the concept property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getConcept() {
+        return concept;
+    }
+
+    /**
+     * Sets the value of the concept property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setConcept(String value) {
+        this.concept = value;
+    }
+
+    /**
+     * Gets the value of the dataValue property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDataValue() {
+        return dataValue;
+    }
+
+    /**
+     * Sets the value of the dataValue property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDataValue(String value) {
+        this.dataValue = value;
+    }
+
+    /**
+     * Gets the value of the individualValue property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ConceptValueType }
+     *     
+     */
+    public ConceptValueType getIndividualValue() {
+        return individualValue;
+    }
+
+    /**
+     * Sets the value of the individualValue property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ConceptValueType }
+     *     
+     */
+    public void setIndividualValue(ConceptValueType value) {
+        this.individualValue = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/DataValueType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/DataValueType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/DataValueType.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,123 @@
+
+package org.jboss.soa.esb.services.semantics.model;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for DataValueType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="DataValueType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="class" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="value" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "DataValueType", propOrder = {
+    "clazz",
+    "name",
+    "value"
+})
+public class DataValueType  implements Serializable{
+
+    @XmlElement(name = "class", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String clazz;
+    @XmlElement(required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String name;
+    @XmlElement(required = true)
+    protected String value;
+
+    /**
+     * Gets the value of the clazz property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getClazz() {
+        return clazz;
+    }
+
+    /**
+     * Sets the value of the clazz property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setClazz(String value) {
+        this.clazz = value;
+    }
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ExpectedOutputType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ExpectedOutputType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ExpectedOutputType.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,64 @@
+
+package org.jboss.soa.esb.services.semantics.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ExpectedOutputType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ExpectedOutputType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="class" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ExpectedOutputType", propOrder = {
+    "clazz"
+})
+public class ExpectedOutputType {
+
+    @XmlElement(name = "class", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String clazz;
+
+    /**
+     * Gets the value of the clazz property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getClazz() {
+        return clazz;
+    }
+
+    /**
+     * Sets the value of the clazz property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setClazz(String value) {
+        this.clazz = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/InputType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/InputType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/InputType.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,132 @@
+
+package org.jboss.soa.esb.services.semantics.model;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for InputType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="InputType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="class" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="dataValue" type="{http://jboss.org/soa/esb/services/semantics/model}DataValueType" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="objectValue" type="{http://jboss.org/soa/esb/services/semantics/model}ObjectValueType" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "InputType", propOrder = {
+    "clazz",
+    "dataValue",
+    "objectValue"
+})
+public class InputType implements Serializable {
+
+    @XmlElement(name = "class", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String clazz;
+    protected List<DataValueType> dataValue;
+    protected List<ObjectValueType> objectValue;
+
+    /**
+     * Gets the value of the clazz property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getClazz() {
+        return clazz;
+    }
+
+    /**
+     * Sets the value of the clazz property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setClazz(String value) {
+        this.clazz = value;
+    }
+
+    /**
+     * Gets the value of the dataValue property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the dataValue property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getDataValue().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link DataValueType }
+     * 
+     * 
+     */
+    public List<DataValueType> getDataValue() {
+        if (dataValue == null) {
+            dataValue = new ArrayList<DataValueType>();
+        }
+        return this.dataValue;
+    }
+
+    /**
+     * Gets the value of the objectValue property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the objectValue property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getObjectValue().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link ObjectValueType }
+     * 
+     * 
+     */
+    public List<ObjectValueType> getObjectValue() {
+        if (objectValue == null) {
+            objectValue = new ArrayList<ObjectValueType>();
+        }
+        return this.objectValue;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectFactory.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectFactory.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectFactory.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,140 @@
+
+package org.jboss.soa.esb.services.semantics.model;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.jboss.soa.esb.services.semantics.model package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _ServiceQueryRequest_QNAME = new QName("http://jboss.org/soa/esb/services/semantics/model", "serviceQueryRequest");
+    private final static QName _ServiceQueryResponse_QNAME = new QName("http://jboss.org/soa/esb/services/semantics/model", "serviceQueryResponse");
+    
+    private static final ObjectFactory INSTANCE = new ObjectFactory();
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.jboss.soa.esb.services.semantics.model
+     * 
+     */
+    private ObjectFactory() {
+    }
+
+    public static ObjectFactory getInstance(){
+    	return INSTANCE;
+    }
+    /**
+     * Create an instance of {@link ServiceQueryRequestType.Outputs }
+     * 
+     */
+    public ServiceQueryRequestType.Outputs createServiceQueryRequestTypeOutputs() {
+        return new ServiceQueryRequestType.Outputs();
+    }
+
+    /**
+     * Create an instance of {@link ExpectedOutputType }
+     * 
+     */
+    public ExpectedOutputType createExpectedOutputType() {
+        return new ExpectedOutputType();
+    }
+
+    /**
+     * Create an instance of {@link ServiceQueryResponseType }
+     * 
+     */
+    public ServiceQueryResponseType createServiceQueryResponseType() {
+        return new ServiceQueryResponseType();
+    }
+
+    /**
+     * Create an instance of {@link ServiceQueryResponseType.Outputs }
+     * 
+     */
+    public ServiceQueryResponseType.Outputs createServiceQueryResponseTypeOutputs() {
+        return new ServiceQueryResponseType.Outputs();
+    }
+
+    /**
+     * Create an instance of {@link InputType }
+     * 
+     */
+    public InputType createInputType() {
+        return new InputType();
+    }
+
+    /**
+     * Create an instance of {@link DataValueType }
+     * 
+     */
+    public DataValueType createDataValueType() {
+        return new DataValueType();
+    }
+
+    /**
+     * Create an instance of {@link ConceptValueType }
+     * 
+     */
+    public ConceptValueType createConceptValueType() {
+        return new ConceptValueType();
+    }
+
+    /**
+     * Create an instance of {@link ServiceQueryRequestType.Inputs }
+     * 
+     */
+    public ServiceQueryRequestType.Inputs createServiceQueryRequestTypeInputs() {
+        return new ServiceQueryRequestType.Inputs();
+    }
+
+    /**
+     * Create an instance of {@link ObjectValueType }
+     * 
+     */
+    public ObjectValueType createObjectValueType() {
+        return new ObjectValueType();
+    }
+
+    /**
+     * Create an instance of {@link ServiceQueryRequestType }
+     * 
+     */
+    public ServiceQueryRequestType createServiceQueryRequestType() {
+        return new ServiceQueryRequestType();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ServiceQueryRequestType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://jboss.org/soa/esb/services/semantics/model", name = "serviceQueryRequest")
+    public JAXBElement<ServiceQueryRequestType> createServiceQueryRequest(ServiceQueryRequestType value) {
+        return new JAXBElement<ServiceQueryRequestType>(_ServiceQueryRequest_QNAME, ServiceQueryRequestType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ServiceQueryResponseType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://jboss.org/soa/esb/services/semantics/model", name = "serviceQueryResponse")
+    public JAXBElement<ServiceQueryResponseType> createServiceQueryResponse(ServiceQueryResponseType value) {
+        return new JAXBElement<ServiceQueryResponseType>(_ServiceQueryResponse_QNAME, ServiceQueryResponseType.class, null, value);
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectValueType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectValueType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectValueType.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,129 @@
+
+package org.jboss.soa.esb.services.semantics.model;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ObjectValueType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ObjectValueType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="class" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="dataValue" type="{http://jboss.org/soa/esb/services/semantics/model}DataValueType" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ObjectValueType", propOrder = {
+    "clazz",
+    "name",
+    "dataValue"
+})
+public class ObjectValueType implements Serializable {
+
+    @XmlElement(name = "class", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String clazz;
+    @XmlElement(required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String name;
+    protected List<DataValueType> dataValue;
+
+    /**
+     * Gets the value of the clazz property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getClazz() {
+        return clazz;
+    }
+
+    /**
+     * Sets the value of the clazz property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setClazz(String value) {
+        this.clazz = value;
+    }
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the dataValue property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the dataValue property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getDataValue().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link DataValueType }
+     * 
+     * 
+     */
+    public List<DataValueType> getDataValue() {
+        if (dataValue == null) {
+            dataValue = new ArrayList<DataValueType>();
+        }
+        return this.dataValue;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryRequestType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryRequestType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryRequestType.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,260 @@
+
+package org.jboss.soa.esb.services.semantics.model;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ServiceQueryRequestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ServiceQueryRequestType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="inputs" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 &lt;sequence>
+ *                   &lt;element name="input" type="{http://jboss.org/soa/esb/services/semantics/model}InputType" maxOccurs="unbounded"/>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="outputs" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 &lt;sequence>
+ *                   &lt;element name="output" type="{http://jboss.org/soa/esb/services/semantics/model}ExpectedOutputType" maxOccurs="unbounded"/>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ServiceQueryRequestType", propOrder = {
+    "id",
+    "inputs",
+    "outputs"
+})
+public class ServiceQueryRequestType {
+
+    @XmlElement(required = true)
+    protected String id;
+    protected ServiceQueryRequestType.Inputs inputs;
+    protected ServiceQueryRequestType.Outputs outputs;
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = value;
+    }
+
+    /**
+     * Gets the value of the inputs property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ServiceQueryRequestType.Inputs }
+     *     
+     */
+    public ServiceQueryRequestType.Inputs getInputs() {
+        return inputs;
+    }
+
+    /**
+     * Sets the value of the inputs property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ServiceQueryRequestType.Inputs }
+     *     
+     */
+    public void setInputs(ServiceQueryRequestType.Inputs value) {
+        this.inputs = value;
+    }
+
+    /**
+     * Gets the value of the outputs property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ServiceQueryRequestType.Outputs }
+     *     
+     */
+    public ServiceQueryRequestType.Outputs getOutputs() {
+        return outputs;
+    }
+
+    /**
+     * Sets the value of the outputs property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ServiceQueryRequestType.Outputs }
+     *     
+     */
+    public void setOutputs(ServiceQueryRequestType.Outputs value) {
+        this.outputs = value;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       &lt;sequence>
+     *         &lt;element name="input" type="{http://jboss.org/soa/esb/services/semantics/model}InputType" maxOccurs="unbounded"/>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "input"
+    })
+    public static class Inputs implements Serializable {
+
+        @XmlElement(required = true)
+        protected List<InputType> input;
+
+        /**
+         * Gets the value of the input property.
+         * 
+         * <p>
+         * This accessor method returns a reference to the live list,
+         * not a snapshot. Therefore any modification you make to the
+         * returned list will be present inside the JAXB object.
+         * This is why there is not a <CODE>set</CODE> method for the input property.
+         * 
+         * <p>
+         * For example, to add a new item, do as follows:
+         * <pre>
+         *    getInput().add(newItem);
+         * </pre>
+         * 
+         * 
+         * <p>
+         * Objects of the following type(s) are allowed in the list
+         * {@link InputType }
+         * 
+         * 
+         */
+        public List<InputType> getInput() {
+            if (input == null) {
+                input = new ArrayList<InputType>();
+            }
+            return this.input;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       &lt;sequence>
+     *         &lt;element name="output" type="{http://jboss.org/soa/esb/services/semantics/model}ExpectedOutputType" maxOccurs="unbounded"/>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "output"
+    })
+    public static class Outputs implements Serializable {
+
+        @XmlElement(required = true)
+        protected List<ExpectedOutputType> output;
+
+        /**
+         * Gets the value of the output property.
+         * 
+         * <p>
+         * This accessor method returns a reference to the live list,
+         * not a snapshot. Therefore any modification you make to the
+         * returned list will be present inside the JAXB object.
+         * This is why there is not a <CODE>set</CODE> method for the output property.
+         * 
+         * <p>
+         * For example, to add a new item, do as follows:
+         * <pre>
+         *    getOutput().add(newItem);
+         * </pre>
+         * 
+         * 
+         * <p>
+         * Objects of the following type(s) are allowed in the list
+         * {@link ExpectedOutputType }
+         * 
+         * 
+         */
+        public List<ExpectedOutputType> getOutput() {
+            if (output == null) {
+                output = new ArrayList<ExpectedOutputType>();
+            }
+            return this.output;
+        }
+
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryResponseType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryResponseType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryResponseType.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,163 @@
+
+package org.jboss.soa.esb.services.semantics.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ServiceQueryResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ServiceQueryResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="outputs">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 &lt;sequence>
+ *                   &lt;element name="output" type="{http://jboss.org/soa/esb/services/semantics/model}ConceptValueType" maxOccurs="unbounded"/>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ServiceQueryResponseType", propOrder = {
+    "id",
+    "outputs"
+})
+public class ServiceQueryResponseType {
+
+    @XmlElement(required = true)
+    protected String id;
+    @XmlElement(required = true)
+    protected ServiceQueryResponseType.Outputs outputs;
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = value;
+    }
+
+    /**
+     * Gets the value of the outputs property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ServiceQueryResponseType.Outputs }
+     *     
+     */
+    public ServiceQueryResponseType.Outputs getOutputs() {
+        return outputs;
+    }
+
+    /**
+     * Sets the value of the outputs property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ServiceQueryResponseType.Outputs }
+     *     
+     */
+    public void setOutputs(ServiceQueryResponseType.Outputs value) {
+        this.outputs = value;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       &lt;sequence>
+     *         &lt;element name="output" type="{http://jboss.org/soa/esb/services/semantics/model}ConceptValueType" maxOccurs="unbounded"/>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "output"
+    })
+    public static class Outputs {
+
+        @XmlElement(required = true)
+        protected List<ConceptValueType> output;
+
+        /**
+         * Gets the value of the output property.
+         * 
+         * <p>
+         * This accessor method returns a reference to the live list,
+         * not a snapshot. Therefore any modification you make to the
+         * returned list will be present inside the JAXB object.
+         * This is why there is not a <CODE>set</CODE> method for the output property.
+         * 
+         * <p>
+         * For example, to add a new item, do as follows:
+         * <pre>
+         *    getOutput().add(newItem);
+         * </pre>
+         * 
+         * 
+         * <p>
+         * Objects of the following type(s) are allowed in the list
+         * {@link ConceptValueType }
+         * 
+         * 
+         */
+        public List<ConceptValueType> getOutput() {
+            if (output == null) {
+                output = new ArrayList<ConceptValueType>();
+            }
+            return this.output;
+        }
+
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/package-info.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/package-info.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/package-info.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://jboss.org/soa/esb/services/semantics/model", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.jboss.soa.esb.services.semantics.model;

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/utils/Constants.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/utils/Constants.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/utils/Constants.java	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,19 @@
+package org.jboss.soa.esb.services.semantics.utils;
+
+import org.jboss.soa.esb.services.semantics.model.ServiceQueryRequestType;
+
+/**
+ * Class containing constants used by the semantics JBoss ESB service
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ *
+ */
+public class Constants {
+
+	public static final String DISCOVERED_SERVICE_URIS_MESSAGE_KEY = "discoveredServiceURIs";
+	public static final String CONSUMER_INPUTS_MESSAGE_KEY = "consumerInputs";
+	public static final String SELECTED_SERVICE_URI_MESSAGE_KEY = "selectedServiceURI";
+	
+	public static final String SEMANTIC_MODEL_PACKAGE = ServiceQueryRequestType.class.getPackage().getName();
+	
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/deployment.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/deployment.xml	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/deployment.xml	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jbossesb-deployment>
+	<depends>jboss.esb:deployment=jbossesb.esb</depends>
+	<depends>jboss.esb:service=OWLServiceRegistryService</depends>
+<!--	<depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb</depends>-->
+</jbossesb-deployment>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-esb.xml	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-esb.xml	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,38 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
+	xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
+	parameterReloadSecs="5">
+
+	<providers>
+		<jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
+			<jms-bus busid="quickstartEsbChannel">
+				<jms-message-filter dest-type="QUEUE"
+					dest-name="queue/semanticServiceInvoker"
+					selector="serviceName='SemanticServiceInvoker'" />
+			</jms-bus>
+
+		</jms-provider>
+	</providers>
+
+	<services>
+		<service category="SSOA" name="SemanticServiceInvoker"
+			description="Service the semantic service consumer invokes to achieve its goal">
+			<listeners>
+				<jms-listener name="SemanticServiceInvoker" busidref="quickstartEsbChannel"
+					maxThreads="1" />
+			</listeners>
+			<actions inXsd="/request.xsd" outXsd="/response.xsd"
+				faultXsd="/fault.xsd" validate="false">
+				<action name="discover"
+					class="org.jboss.soa.esb.services.semantics.actions.discovery.SPARQLDiscoveryAction"
+					process="discover" />
+				<action name="select"
+					class="org.jboss.soa.esb.services.semantics.actions.selection.FirstMatchSelectionAction"
+					process="select" />
+				<action name="invoke"
+					class="org.jboss.soa.esb.services.semantics.actions.invocation.ServiceInvocationAction"
+					process="invoke" />
+			</actions>
+		</service>
+	</services>
+</jbossesb>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-scanning.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-scanning.xml	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-scanning.xml	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,3 @@
+<scanning xmlns="urn:jboss:scanning:1.0">
+	<!-- prevent scanning for annotations -->
+</scanning>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/common.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/common.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/common.xsd	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,38 @@
+<xs:schema version="1.0" targetNamespace="http://jboss.org/soa/esb/services/semantics/model"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:tns="http://jboss.org/soa/esb/services/semantics/model">
+
+	<xs:complexType name="ConceptValueType">
+		<xs:sequence>
+			<xs:element name="concept" type="xs:anyURI"/>
+			<xs:choice>
+				<xs:element name="dataValue" type="xs:string"/>
+				<xs:element name="individualValue" type="tns:ConceptValueType"/>
+			</xs:choice>			
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="InputType">
+		<xs:sequence>
+			<xs:element name="class" type="xs:anyURI"/>
+			<xs:element name="dataValue" type="tns:DataValueType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="objectValue" type="tns:ObjectValueType" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="DataValueType">
+		<xs:sequence>
+			<xs:element name="class" type="xs:anyURI"/>
+			<xs:element name="name" type="xs:anyURI"/>
+			<xs:element name="value" type="xs:string"/>
+		</xs:sequence>
+	</xs:complexType>
+
+	<xs:complexType name="ObjectValueType">
+		<xs:sequence>
+			<xs:element name="class" type="xs:anyURI"/>
+			<xs:element name="name" type="xs:anyURI"/>
+			<xs:element name="dataValue" type="tns:DataValueType" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>	
+</xs:schema>
+

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/fault.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/fault.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/fault.xsd	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,9 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi"  xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+  <xs:element name="sayFault" type="x1:fault"/>
+  <xs:complexType name="fault">
+    <xs:sequence>
+      <xs:element name="code" type="xs:string"/>
+      <xs:element name="faultString" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+</xs:schema>
\ No newline at end of file

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jbm-queue-service.xml	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jbm-queue-service.xml	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=semanticServiceInvoker"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=semanticServiceInvoker_reply"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<!--<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	  <mbean code="org.jboss.jms.server.destination.QueueService"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb_reply"
+    xmbean-dd="xmdesc/Queue-xmbean.xml">
+	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+	<depends>jboss.messaging:service=PostOffice</depends>
+  </mbean>
+--></server>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jndi.properties
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jndi.properties	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jndi.properties	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,4 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jnp.interfaces
+

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/log4j.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/log4j.xml	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/log4j.xml	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Log4j Configuration                                                  -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+   | For more configuration infromation and examples see the Jakarta Log4j
+   | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+   <!-- ============================== -->
+   <!-- Append messages to the console -->
+   <!-- ============================== -->
+
+   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <param name="Target" value="System.out"/>
+      <param name="Threshold" value="INFO"/>
+
+      <layout class="org.apache.log4j.PatternLayout">
+         <!-- The default pattern: Date Priority [Category] Message\n -->
+         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
+      </layout>
+   </appender>
+
+   <!-- ================================= -->
+   <!-- Preserve messages in a local file -->
+   <!-- ================================= -->
+
+   <!-- A size based file rolling appender -->
+   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="File" value="./listener.log"/>
+     <param name="Append" value="false"/>
+     <param name="MaxFileSize" value="500KB"/>
+     <param name="MaxBackupIndex" value="1"/>
+
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+     </layout>	    
+   </appender>
+
+   <!-- ================ -->
+   <!-- Limit categories -->
+   <!-- ================ -->
+
+   <category name="org.jboss.soa.esb.services.semantics.actions.discovery">
+      <priority value="DEBUG"/>
+   </category>
+   <category name="org.jboss">
+      <priority value="WARN"/>
+   </category>
+   <category name="org.jboss.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.jboss.internal.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.apache">
+      <priority value="ERROR"/>
+   </category>
+   <category name="quickstart">
+      <priority value="DEBUG"/>
+   </category>
+   <!-- ======================= -->
+   <!-- Setup the Root category -->
+   <!-- ======================= -->
+
+   <root>
+      <appender-ref ref="CONSOLE"/>
+      <appender-ref ref="FILE"/>
+   </root>
+
+</log4j:configuration>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/owls-registry-service.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/owls-registry-service.xml	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/owls-registry-service.xml	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<server>
+   <mbean code="org.jboss.soa.esb.services.semantics.configuration.OwlServiceRegistryService"
+      name="jboss.esb:service=OWLServiceRegistryService">
+   </mbean>
+</server>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/request.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/request.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/request.xsd	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,38 @@
+<xs:schema version="1.0" targetNamespace="http://jboss.org/soa/esb/services/semantics/model"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:tns="http://jboss.org/soa/esb/services/semantics/model">
+	
+	<xs:include schemaLocation="common.xsd"/>
+
+	<xs:element name="serviceQueryRequest" type="tns:ServiceQueryRequestType">
+		<xs:annotation>
+			<xs:documentation></xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:complexType name="ServiceQueryRequestType">
+		<xs:sequence>
+			<xs:element name="id" type="xs:string" minOccurs="1" />
+			<xs:element name="inputs" minOccurs="0">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="input" type="tns:InputType" maxOccurs="unbounded"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="outputs" minOccurs="0">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="output" type="tns:ExpectedOutputType" maxOccurs="unbounded"/>
+					</xs:sequence>					
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+
+	<xs:complexType name="ExpectedOutputType">
+		<xs:sequence>
+			<xs:element name="class" type="xs:anyURI"/>			
+		</xs:sequence>
+	</xs:complexType>
+</xs:schema>
+

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/response.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/response.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/response.xsd	2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,24 @@
+<xs:schema version="1.0" targetNamespace="http://jboss.org/soa/esb/services/semantics/model"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:tns="http://jboss.org/soa/esb/services/semantics/model">
+
+	<xs:include schemaLocation="common.xsd"/>
+	<xs:element name="serviceQueryResponse" type="tns:ServiceQueryResponseType">
+		<xs:annotation>
+			<xs:documentation></xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:complexType name="ServiceQueryResponseType">
+		<xs:sequence>
+			<xs:element name="id" type="xs:string" minOccurs="1" />
+			<xs:element name="outputs">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="output" type="tns:ConceptValueType" maxOccurs="unbounded"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+</xs:schema>
+



More information about the jboss-svn-commits mailing list