You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by en...@apache.org on 2010/12/29 19:04:22 UTC

svn commit: r1053689 [1/6] - in /incubator/stanbol/trunk/kres: eu.iksproject.kres.api/ eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/ eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/registry/ eu.ikspro...

Author: enridaga
Date: Wed Dec 29 18:04:19 2010
New Revision: 1053689

URL: http://svn.apache.org/viewvc?rev=1053689&view=rev
Log:
STANBOL-10
Applying patch posted by Alessandro Adamou.
Before that, applied a conversion for consistent line ending.

Added:
    incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/SpaceType.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/KReSConf/
    incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/KReSConf/rmi_config.owl
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/resources/META-INF/conf/catalog.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/KReSConf/
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/KReSConf/rmi_config.owl
Modified:
    incubator/stanbol/trunk/kres/eu.iksproject.kres.api/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/registry/KReSRegistryLoader.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Recipe.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Rule.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/Classify.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/ConsistencyCheck.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/Enrichment.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMOntResource.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMRootResource.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMScopeOntologyResource.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMScopeResource.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/Activator.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ONManager.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/io/OntologyRegistryIRISource.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/AbstractOntologySpaceImpl.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/CoreOntologySpaceImpl.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/CustomOntologySpaceImpl.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/OntologyIndexImpl.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/OntologyScopeFactoryImpl.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/OntologyScopeImpl.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/OntologySpaceFactoryImpl.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/SessionOntologySpaceImpl.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/registry/model/impl/RegistryLoader.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/session/KReSSessionManagerImpl.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/session/ScopeSessionSynchronizer.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/util/OntologyUtils.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/org/stlab/xd/utils/RDFSLabelGetter.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/Namespace.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestIndexing.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestOntologyScope.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestOntologySpaces.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/registry/TestRegistry.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/session/TestSessions.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.ontologies/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.reasoners/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.reasoners/src/main/java/eu/iksproject/kres/reasoners/KReSReasonerImpl.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSAddRecipe.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSRuleStore.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSSetRuleStore.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/resources/RuleOntology/rmi_config.owl
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSAddRecipeTest.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSAddRuleTest.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSGetRecipeTest.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSGetRuleTest.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSLoadRuleFileTest.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSRemoveRecipeTest.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSRemoveRuleTest.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSRuleStoreTest.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.manager/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.manager/src/main/java/eu/iksproject/kres/semion/manager/SemionManagerImpl.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.reengineer.db/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.reengineer.db/src/main/java/eu/iksproject/kres/semion/reengineer/db/DBExtractor.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.reengineer.db/src/test/java/eu/iksproject/kres/semion/reengineer/db/DBExtractorTest.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.reengineer.xml/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.reengineer.xml/src/main/java/eu/iksproject/kres/semion/reengineer/xml/XMLExtractor.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.reengineer.xml/src/test/java/eu/iksproject/kres/semion/reengineer/xml/XMLReengineerTest.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.refactorer/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.refactorer/src/main/java/eu/iksproject/kres/semion/refactorer/SemionRefactorerImpl.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.refactorer/src/test/java/eu/iksproject/kres/semion/refactorer/SemionRefactoringTest.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.shared/dependency/hermit124/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.shared/dependency/mysql/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.shared/dependency/owlapi3/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.shared/dependency/owllink102/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.shared/dependency/xerces/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.shared/transformation/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.storage.provider/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.storage.provider/src/main/java/eu/iksproject/kres/storage/provider/OntologyStorageProviderImpl.java
    incubator/stanbol/trunk/kres/eu.iksproject.kres.storage/pom.xml
    incubator/stanbol/trunk/kres/eu.iksproject.kres.storage/src/main/java/eu/iksproject/kres/storage/ClerezzaStorage.java

Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.api/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.api/pom.xml?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.api/pom.xml (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.api/pom.xml Wed Dec 29 18:04:19 2010
@@ -7,14 +7,14 @@
 	<parent>
 		<groupId>eu.iksproject</groupId>
 		<artifactId>eu.iksproject.kres.parent</artifactId>
-		<version>0.6-SNAPSHOT</version>
+		<version>0.7</version>
 		<relativePath>../parent/pom.xml</relativePath>
 	</parent>
 
 	<groupId>eu.iksproject</groupId>
 	<artifactId>eu.iksproject.kres.api</artifactId>
 	<packaging>bundle</packaging>
-	<version>0.6-SNAPSHOT</version>
+	<version>${kres-version}</version>
 
 	<name>IKS KReS API</name>
 	<description>KReS API</description>
@@ -23,7 +23,7 @@
 
 	<properties>
 		<jersey-version>1.1.5.1</jersey-version>
-		<kres-version>0.6-SNAPSHOT</kres-version>
+		<kres-version>0.7</kres-version>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 	</properties>
 
@@ -36,7 +36,7 @@
 				<configuration>
 					<instructions>
 						<Export-Package>
-							eu.iksproject.kres.api.*;version=${pom.version},
+							eu.iksproject.kres.api.*;version=${kres-version},
 							com.hp.hpl.jena.*,
 							com.ibm.icu.*,
 							com.sun.jersey.*,

Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/SpaceType.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/SpaceType.java?rev=1053689&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/SpaceType.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/SpaceType.java Wed Dec 29 18:04:19 2010
@@ -0,0 +1,17 @@
+package eu.iksproject.kres.api.manager.ontology;
+
+public enum SpaceType {
+
+	CORE("core"), CUSTOM("custom"), SESSION("session");
+
+	private SpaceType(String suffix) {
+		this.suffix = suffix;
+	}
+
+	private String suffix;
+
+	public String getIRISuffix() {
+		return suffix;
+	}
+
+}

Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/registry/KReSRegistryLoader.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/registry/KReSRegistryLoader.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/registry/KReSRegistryLoader.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/registry/KReSRegistryLoader.java Wed Dec 29 18:04:19 2010
@@ -26,7 +26,7 @@ public interface KReSRegistryLoader {
 
 	public boolean hasLibrary(Registry reg, IRI libraryID);
 
-	public boolean isPrintingLoadedOntologies();
+//	public boolean isPrintingLoadedOntologies();
 
 	public void loadLocations() throws RegistryContentException;
 	
@@ -40,5 +40,5 @@ public interface KReSRegistryLoader {
 	 */
 	public Set<Registry> loadRegistriesEager(IRI physicalIRI);
 
-	public void setPrintLoadedOntologies(boolean doPrint);
+//	public void setPrintLoadedOntologies(boolean doPrint);
 }

Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/KReSConf/rmi_config.owl
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/KReSConf/rmi_config.owl?rev=1053689&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/KReSConf/rmi_config.owl (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/KReSConf/rmi_config.owl Wed Dec 29 18:04:19 2010
@@ -0,0 +1,174 @@
+<?xml version="1.0"?>
+<rdf:RDF xmlns="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#"
+     xml:base="http://kres.iks-project.eu/ontology/meta/rmi_config.owl"
+     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+     xmlns:sequence="http://www.ontologydesignpatterns.org/cp/owl/sequence.owl#"
+     xmlns:owl="http://www.w3.org/2002/07/owl#"
+     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
+     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+     xmlns:rmi="http://kres.iks-project.eu/ontology/meta/rmi.owl#">
+    <owl:Ontology rdf:about="http://kres.iks-project.eu/ontology/meta/rmi_config.owl">
+        <owl:imports rdf:resource="http://ontologydesignpatterns.org/ont/iks/kres/rmi.owl"/>
+    </owl:Ontology>
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Object Properties
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    
+
+
+    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#endWith -->
+
+    <owl:ObjectProperty rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#endWith"/>
+    
+
+
+    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#hasRule -->
+
+    <owl:ObjectProperty rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#hasRule"/>
+    
+
+
+    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#startWith -->
+
+    <owl:ObjectProperty rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#startWith"/>
+    
+
+
+    <!-- http://www.ontologydesignpatterns.org/cp/owl/sequence.owl#directlyPrecedes -->
+
+    <owl:ObjectProperty rdf:about="http://www.ontologydesignpatterns.org/cp/owl/sequence.owl#directlyPrecedes"/>
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Data properties
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    
+
+
+    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#hasBodyAndHead -->
+
+    <owl:DatatypeProperty rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#hasBodyAndHead"/>
+    
+
+
+    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#hasDescription -->
+
+    <owl:DatatypeProperty rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#hasDescription"/>
+    
+
+
+    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#hasSequence -->
+
+    <owl:DatatypeProperty rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#hasSequence"/>
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Classes
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    
+
+
+    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#KReSRule -->
+
+    <owl:Class rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#KReSRule"/>
+    
+
+
+    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#Recipe -->
+
+    <owl:Class rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#Recipe"/>
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Individuals
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    
+
+
+    <!-- http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRecipeA -->
+
+    <owl:NamedIndividual rdf:about="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRecipeA">
+        <rdf:type rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi.owl#Recipe"/>
+        <rmi:hasDescription rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Some description here</rmi:hasDescription>
+        <rmi:hasSequence rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://eu.iksproject.kres/KReSOntologyRules.owl#MyRuleB,http://eu.iksproject.kres/KReSOntologyRules.owl#MyRuleA</rmi:hasSequence>
+        <rmi:hasRule rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleA"/>
+        <rmi:endWith rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleA"/>
+        <rmi:hasRule rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleB"/>
+        <rmi:startWith rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleB"/>
+    </owl:NamedIndividual>
+    
+
+
+    <!-- http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleA -->
+
+    <owl:NamedIndividual rdf:about="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleA">
+        <rdf:type rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi.owl#KReSRule"/>
+        <rmi:hasDescription rdf:datatype="http://www.w3.org/2001/XMLSchema#string">An example of description for my rule A</rmi:hasDescription>
+        <rmi:hasBodyAndHead rdf:datatype="http://www.w3.org/2001/XMLSchema#string">BodyA -&gt; BodyB</rmi:hasBodyAndHead>
+    </owl:NamedIndividual>
+    
+
+
+    <!-- http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleB -->
+
+    <owl:NamedIndividual rdf:about="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleB">
+        <rdf:type rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi.owl#KReSRule"/>
+        <rmi:hasDescription rdf:datatype="http://www.w3.org/2001/XMLSchema#string">An example of description..for my rule B</rmi:hasDescription>
+        <rmi:hasBodyAndHead rdf:datatype="http://www.w3.org/2001/XMLSchema#string">BodyB -&gt; HeadB</rmi:hasBodyAndHead>
+        <sequence:directlyPrecedes rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleA"/>
+    </owl:NamedIndividual>
+    
+
+
+    <!-- http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRecipe -->
+
+    <owl:NamedIndividual rdf:about="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRecipe">
+        <rdf:type rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi.owl#Recipe"/>
+        <rmi:hasDescription rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A single rule recipe.</rmi:hasDescription>
+        <rmi:hasSequence rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentRule</rmi:hasSequence>
+        <rmi:endWith rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRule"/>
+        <rmi:hasRule rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRule"/>
+        <rmi:startWith rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRule"/>
+    </owl:NamedIndividual>
+    
+
+
+    <!-- http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRule -->
+
+    <owl:NamedIndividual rdf:about="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRule">
+        <rdf:type rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi.owl#KReSRule"/>
+        <rmi:hasDescription rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A rule to inference if a person has an uncle.</rmi:hasDescription>
+        <rmi:hasBodyAndHead rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ProvaParent = &lt;http://www.semanticweb.org/ontologies/2010/6/ProvaParent.owl#&gt; . rule1[ has(ProvaParent:hasParent, ?x, ?y) . has(ProvaParent:hasBrother, ?y, ?z) -&gt; has(ProvaParent:hasUncle, ?x, ?z) ]</rmi:hasBodyAndHead>
+    </owl:NamedIndividual>
+</rdf:RDF>
+
+
+
+<!-- Generated by the OWL API (version 3.0.0.1413) http://owlapi.sourceforge.net -->
+

Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/pom.xml?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/pom.xml (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/pom.xml Wed Dec 29 18:04:19 2010
@@ -7,13 +7,13 @@
 	<parent>
 		<groupId>eu.iksproject</groupId>
 		<artifactId>eu.iksproject.kres.parent</artifactId>
-		<version>0.6-SNAPSHOT</version>
+		<version>0.7</version>
 		<relativePath>../parent/pom.xml</relativePath>
 	</parent>
 
 	<groupId>eu.iksproject</groupId>
 	<artifactId>eu.iksproject.kres.jersey</artifactId>
-	<version>0.6-SNAPSHOT</version>
+	<version>${kres-version}</version>
 	<packaging>bundle</packaging>
 
 	<name>IKS KReS Jersey JAX-RS API and front-end</name>
@@ -22,7 +22,8 @@
 	<properties>
 		<jersey-version>1.1.5.1</jersey-version>
 		<pax-exam-version>1.2.0</pax-exam-version>
-		<kres-version>0.6-SNAPSHOT</kres-version>
+		<kres-version>0.7</kres-version>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 	</properties>
 
 	<dependencies>
@@ -252,6 +253,12 @@
             <scope>provided</scope>
 	    </dependency>
 		<dependency>
+			<groupId>eu.iksproject</groupId>
+			<artifactId>eu.iksproject.kres.storage.provider</artifactId>
+			<version>${kres-version}</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
 			<groupId>com.hp.hpl.jena</groupId>
 			<artifactId>jena</artifactId>
 			<version>2.6.2</version>

Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Recipe.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Recipe.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Recipe.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Recipe.java Wed Dec 29 18:04:19 2010
@@ -5,19 +5,14 @@
 
 package eu.iksproject.kres.jersey.manager;
 
-import eu.iksproject.kres.api.rules.RuleStore;
-import eu.iksproject.kres.jersey.resource.NavigationMixin;
-import eu.iksproject.kres.rules.manager.KReSAddRecipe;
-import eu.iksproject.kres.rules.manager.KReSGetRecipe;
-import eu.iksproject.kres.rules.manager.KReSRemoveRecipe;
-import eu.iksproject.kres.rules.manager.KReSRuleStore;
-import eu.iksproject.kres.api.format.KReSFormat;
 import java.util.HashMap;
+import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
 import java.util.Vector;
+
 import javax.servlet.ServletContext;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -33,8 +28,8 @@ import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
+
 import org.semanticweb.owlapi.apibinding.OWLManager;
-import org.semanticweb.owlapi.io.RDFXMLOntologyFormat;
 import org.semanticweb.owlapi.model.AddImport;
 import org.semanticweb.owlapi.model.IRI;
 import org.semanticweb.owlapi.model.OWLDataFactory;
@@ -45,59 +40,102 @@ import org.semanticweb.owlapi.model.OWLO
 import org.semanticweb.owlapi.model.OWLOntology;
 import org.semanticweb.owlapi.model.OWLOntologyChange;
 import org.semanticweb.owlapi.model.OWLOntologyStorageException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import com.sun.jersey.api.view.ImplicitProduces;
+import eu.iksproject.kres.api.format.KReSFormat;
+import eu.iksproject.kres.api.manager.KReSONManager;
+import eu.iksproject.kres.api.rules.RuleStore;
+import eu.iksproject.kres.api.storage.OntologyStoreProvider;
+import eu.iksproject.kres.jersey.resource.NavigationMixin;
+import eu.iksproject.kres.manager.ONManager;
+import eu.iksproject.kres.rules.manager.KReSAddRecipe;
+import eu.iksproject.kres.rules.manager.KReSGetRecipe;
+import eu.iksproject.kres.rules.manager.KReSRemoveRecipe;
+import eu.iksproject.kres.rules.manager.KReSRuleStore;
+import eu.iksproject.kres.storage.provider.OntologyStorageProviderImpl;
 
 /**
  *
  * @author elvio
  */
-@Path("/recipe")///{uri:.+}")
+@Path("/recipe")
+// /{uri:.+}")
 //@ImplicitProduces(MediaType.TEXT_HTML + ";qs=2")
 public class Recipe extends NavigationMixin{
 
+	protected KReSONManager onm;
+
+	private Logger log = LoggerFactory.getLogger(getClass());
+
     private RuleStore kresRuleStore;
+	private OntologyStoreProvider storeProvider;
 
    /**
      * To get the KReSRuleStore where are stored the rules and the recipes
      *
-     * @param servletContext {To get the context where the REST service is running.}
+	 * @param servletContext
+	 *            {To get the context where the REST service is running.}
      */
     public Recipe(@Context ServletContext servletContext){
-       this.kresRuleStore = (RuleStore) servletContext.getAttribute(RuleStore.class.getName());
+		this.kresRuleStore = (RuleStore) servletContext
+				.getAttribute(RuleStore.class.getName());
+		this.onm = (KReSONManager) servletContext
+				.getAttribute(KReSONManager.class.getName());
+		this.storeProvider = (OntologyStoreProvider) servletContext
+				.getAttribute(OntologyStoreProvider.class.getName());
+		// Contingency code for missing components follows.
+		/*
+		 * FIXME! The following code is required only for the tests. This should
+		 * be removed and the test should work without this code.
+		 */
+		if (storeProvider == null) {
+			log
+					.warn("No OntologyStoreProvider in servlet context. Instantiating manually...");
+			storeProvider = new OntologyStorageProviderImpl();
+		}
+		if (onm == null) {
+			log
+					.warn("No KReSONManager in servlet context. Instantiating manually...");
+			onm = new ONManager(storeProvider.getActiveOntologyStorage(),
+					new Hashtable<String, Object>());
+		}
        if (kresRuleStore == null) {
-           System.err.println("WARNING: KReSRuleStore with stored rules and recipes is missing in ServletContext. A new instance has been created.");
-           this.kresRuleStore = new KReSRuleStore("");
-           System.err.println("PATH TO OWL FILE LOADED: "+kresRuleStore.getFilePath());
-            /*throw new IllegalStateException(
-                    "KReSRuleStore with stored rules and recipes is missing in ServletContext");*/
+			log
+					.warn("No KReSRuleStore with stored rules and recipes found in servlet context. Instantiating manually with default values...");
+			this.kresRuleStore = new KReSRuleStore(onm,
+					new Hashtable<String, Object>(), "");
+			log
+					.debug("PATH TO OWL FILE LOADED: "
+							+ kresRuleStore.getFilePath());
         }
     }
 
    /**
-     * Get a recipe with its rules from the rule base (that is the ontology that contains the rules and the recipe).
+	 * Get a recipe with its rules from the rule base (that is the ontology that
+	 * contains the rules and the recipe).
      *
-     * @param uri {A string contains the IRI full name of the recipe.}
+	 * @param uri
+	 *            {A string contains the IRI full name of the recipe.}
      * @return Return: <br/>
-     *       200 The recipe is retrieved (import declarations point to KReS Services) <br/>
+	 *         200 The recipe is retrieved (import declarations point to KReS
+	 *         Services) <br/>
      *       404 The recipe does not exists in the manager <br/>
      *       500 Some error occurred 
      *
      */
     @GET
     @Path("/{uri:.+}")
-    @Produces(value={KReSFormat.RDF_XML,
-    				 KReSFormat.TURTLE,
-    				 KReSFormat.OWL_XML, 
-    				 KReSFormat.FUNCTIONAL_OWL, 
-    				 KReSFormat.MANCHESTER_OWL,
-    				 KReSFormat.RDF_JSON})
+	@Produces(value = { KReSFormat.RDF_XML, KReSFormat.TURTLE,
+			KReSFormat.OWL_XML, KReSFormat.FUNCTIONAL_OWL,
+			KReSFormat.MANCHESTER_OWL, KReSFormat.RDF_JSON })
     public Response getRecipe(@PathParam("uri") String uri){
       try{
 
        KReSGetRecipe rule = new KReSGetRecipe(kresRuleStore);
 
-       //String ID = kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
+			// String ID =
+			// kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
        
        if(uri.equals("all")){
 
@@ -108,32 +146,48 @@ public class Recipe extends NavigationMi
             return Response.status(Status.NOT_FOUND).build();
         }else{
             
-            //The recipe is retrieved (import declarations point to KReS Services)
+					// The recipe is retrieved (import declarations point to
+					// KReS Services)
             OWLOntology onto = kresRuleStore.getOntology();
-            OWLOntology newmodel = OWLManager.createOWLOntologyManager().createOntology(onto.getOntologyID());
-            OWLDataFactory factory = onto.getOWLOntologyManager().getOWLDataFactory();
+					OWLOntology newmodel = OWLManager
+							.createOWLOntologyManager().createOntology(
+									onto.getOntologyID());
+					OWLDataFactory factory = onto.getOWLOntologyManager()
+							.getOWLDataFactory();
 
-            Iterator<OWLOntology> importedonto = onto.getDirectImports().iterator();
+					Iterator<OWLOntology> importedonto = onto
+							.getDirectImports().iterator();
             List<OWLOntologyChange> additions = new LinkedList<OWLOntologyChange>();
-            OWLDataFactory auxfactory = onto.getOWLOntologyManager().getOWLDataFactory();
+					OWLDataFactory auxfactory = onto.getOWLOntologyManager()
+							.getOWLDataFactory();
 
             while(importedonto.hasNext()){
                 OWLOntology auxonto = importedonto.next();
-                additions.add(new AddImport(newmodel,auxfactory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
+						additions.add(new AddImport(newmodel, auxfactory
+								.getOWLImportsDeclaration(auxonto
+										.getOWLOntologyManager()
+										.getOntologyDocumentIRI(auxonto))));
             }
 
             if(!additions.isEmpty())
-                newmodel.getOWLOntologyManager().applyChanges(additions);
+						newmodel.getOWLOntologyManager()
+								.applyChanges(additions);
 
             for(int i = 0; i<recipe.size(); i++){
-                OWLNamedIndividual ind = factory.getOWLNamedIndividual(recipe.get(i));
+						OWLNamedIndividual ind = factory
+								.getOWLNamedIndividual(recipe.get(i));
                 Set<OWLIndividualAxiom> ax = onto.getAxioms(ind);
-                newmodel.getOWLOntologyManager().addAxioms(newmodel,ax);
+						newmodel.getOWLOntologyManager()
+								.addAxioms(newmodel, ax);
 
             }
             
             try {
-            	OWLManager.createOWLOntologyManager().saveOntology(newmodel, newmodel.getOWLOntologyManager().getOntologyFormat(newmodel), System.out);
+						OWLManager.createOWLOntologyManager().saveOntology(
+								newmodel,
+								newmodel.getOWLOntologyManager()
+										.getOntologyFormat(newmodel),
+								System.out);
     		} catch (OWLOntologyStorageException e) {
     			// TODO Auto-generated catch block
     			e.printStackTrace();
@@ -150,30 +204,44 @@ public class Recipe extends NavigationMi
             //The recipe deos not exists in the manager
             return Response.status(Status.NOT_FOUND).build();
         }else{
-            //The recipe is retrieved (import declarations point to KReS Services)
+					// The recipe is retrieved (import declarations point to
+					// KReS Services)
             OWLOntology onto = kresRuleStore.getOntology();
 
-            OWLDataFactory factory = onto.getOWLOntologyManager().getOWLDataFactory();
-            OWLObjectProperty prop = factory.getOWLObjectProperty(IRI.create("http://kres.iks-project.eu/ontology/meta/rmi.owl#hasRule"));
-            OWLNamedIndividual ind = factory.getOWLNamedIndividual(IRI.create(uri));
-            Set<OWLIndividual> value = ind.getObjectPropertyValues(prop, onto);
+					OWLDataFactory factory = onto.getOWLOntologyManager()
+							.getOWLDataFactory();
+					OWLObjectProperty prop = factory
+							.getOWLObjectProperty(IRI
+									.create("http://kres.iks-project.eu/ontology/meta/rmi.owl#hasRule"));
+					OWLNamedIndividual ind = factory.getOWLNamedIndividual(IRI
+							.create(uri));
+					Set<OWLIndividual> value = ind.getObjectPropertyValues(
+							prop, onto);
             Set<OWLIndividualAxiom> ax = onto.getAxioms(ind);
             
             Iterator<OWLIndividual> iter = value.iterator();
 
-            OWLOntology newmodel = OWLManager.createOWLOntologyManager().createOntology(onto.getOntologyID());
+					OWLOntology newmodel = OWLManager
+							.createOWLOntologyManager().createOntology(
+									onto.getOntologyID());
 
-            Iterator<OWLOntology> importedonto = onto.getDirectImports().iterator();
+					Iterator<OWLOntology> importedonto = onto
+							.getDirectImports().iterator();
             List<OWLOntologyChange> additions = new LinkedList<OWLOntologyChange>();
-            OWLDataFactory auxfactory = onto.getOWLOntologyManager().getOWLDataFactory();
+					OWLDataFactory auxfactory = onto.getOWLOntologyManager()
+							.getOWLDataFactory();
 
             while(importedonto.hasNext()){
                 OWLOntology auxonto = importedonto.next();
-                additions.add(new AddImport(newmodel,auxfactory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
+						additions.add(new AddImport(newmodel, auxfactory
+								.getOWLImportsDeclaration(auxonto
+										.getOWLOntologyManager()
+										.getOntologyDocumentIRI(auxonto))));
             }
 
             if(!additions.isEmpty())
-                newmodel.getOWLOntologyManager().applyChanges(additions);
+						newmodel.getOWLOntologyManager()
+								.applyChanges(additions);
 
             newmodel.getOWLOntologyManager().addAxioms(newmodel,ax);
 
@@ -182,11 +250,16 @@ public class Recipe extends NavigationMi
                 ind = (OWLNamedIndividual) iter.next();
                 ax = onto.getAxioms(ind);
               
-                newmodel.getOWLOntologyManager().addAxioms(newmodel,ax);
+						newmodel.getOWLOntologyManager()
+								.addAxioms(newmodel, ax);
             }
 
             try {
-            	OWLManager.createOWLOntologyManager().saveOntology(newmodel, newmodel.getOWLOntologyManager().getOntologyFormat(newmodel), System.out);
+						OWLManager.createOWLOntologyManager().saveOntology(
+								newmodel,
+								newmodel.getOWLOntologyManager()
+										.getOntologyFormat(newmodel),
+								System.out);
     		} catch (OWLOntologyStorageException e) {
     			// TODO Auto-generated catch block
     			e.printStackTrace();
@@ -204,8 +277,11 @@ public class Recipe extends NavigationMi
 
    /**
      * To add a recipe without rules.
-     * @param recipe {A string contains the IRI of the recipe to be added}
-     * @param description {A string contains a description of the rule}
+	 * 
+	 * @param recipe
+	 *            {A string contains the IRI of the recipe to be added}
+	 * @param description
+	 *            {A string contains a description of the rule}
      * @return Return: <br/>
      *      200 The recipe has been added<br/>
      *      409 The recipe has not been added<br/>
@@ -213,21 +289,21 @@ public class Recipe extends NavigationMi
      */
     @POST
     @Consumes(MediaType.MULTIPART_FORM_DATA)
-    @Produces(value={KReSFormat.RDF_XML,
-    				 KReSFormat.TURTLE,
-    				 KReSFormat.OWL_XML,
-    				 KReSFormat.FUNCTIONAL_OWL,
-    				 KReSFormat.MANCHESTER_OWL,
-    				 KReSFormat.RDF_JSON})
-    public Response addRecipe(@FormParam(value="recipe") String recipe,@FormParam(value="description") String description){
+	@Produces(value = { KReSFormat.RDF_XML, KReSFormat.TURTLE,
+			KReSFormat.OWL_XML, KReSFormat.FUNCTIONAL_OWL,
+			KReSFormat.MANCHESTER_OWL, KReSFormat.RDF_JSON })
+	public Response addRecipe(@FormParam(value = "recipe") String recipe,
+			@FormParam(value = "description") String description) {
 
         try{
 
             KReSAddRecipe instance = new KReSAddRecipe(kresRuleStore);
 
-            //String ID = kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
+			// String ID =
+			// kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
 
-            boolean ok = instance.addSimpleRecipe(IRI.create(recipe), description);
+			boolean ok = instance.addSimpleRecipe(IRI.create(recipe),
+					description);
                 
                 if(!ok){
 
@@ -245,9 +321,10 @@ public class Recipe extends NavigationMi
 
    /**
      * To delete a recipe
-     * @param recipe {A tring contains an IRI of the recipe}
-     * @return
-     *      200 The recipe has been deleted<br/>
+	 * 
+	 * @param recipe
+	 *            {A tring contains an IRI of the recipe}
+	 * @return 200 The recipe has been deleted<br/>
      *      409 The recipe has not been deleted<br/>
      *      500 Some error occurred
      */
@@ -260,7 +337,8 @@ public class Recipe extends NavigationMi
             
             KReSRemoveRecipe instance = new KReSRemoveRecipe(kresRuleStore);
 
-            //String ID = kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
+			// String ID =
+			// kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
 
             boolean ok = instance.removeRecipe(IRI.create(recipe));
             

Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Rule.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Rule.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Rule.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Rule.java Wed Dec 29 18:04:19 2010
@@ -5,27 +5,16 @@
 
 package eu.iksproject.kres.jersey.manager;
 
-import eu.iksproject.kres.api.rules.RuleStore;
-import eu.iksproject.kres.jersey.resource.NavigationMixin;
-import eu.iksproject.kres.rules.manager.KReSAddRecipe;
-import eu.iksproject.kres.rules.manager.KReSAddRule;
-import eu.iksproject.kres.rules.manager.KReSGetRecipe;
-import eu.iksproject.kres.rules.manager.KReSGetRule;
-import eu.iksproject.kres.rules.manager.KReSRemoveRecipe;
-import eu.iksproject.kres.rules.manager.KReSRemoveRule;
-import eu.iksproject.kres.rules.manager.KReSRuleStore;
-import eu.iksproject.kres.api.format.KReSFormat;
-
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.Collection;
 import java.util.HashMap;
+import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
 import java.util.Vector;
+
 import javax.servlet.ServletContext;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -42,24 +31,32 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
 
-import org.codehaus.jettison.json.JSONArray;
 import org.semanticweb.owlapi.apibinding.OWLManager;
-import org.semanticweb.owlapi.io.RDFXMLOntologyFormat;
-import org.semanticweb.owlapi.model.AddAxiom;
 import org.semanticweb.owlapi.model.AddImport;
 import org.semanticweb.owlapi.model.IRI;
-import org.semanticweb.owlapi.model.OWLAxiom;
 import org.semanticweb.owlapi.model.OWLDataFactory;
-import org.semanticweb.owlapi.model.OWLIndividual;
 import org.semanticweb.owlapi.model.OWLIndividualAxiom;
 import org.semanticweb.owlapi.model.OWLNamedIndividual;
-import org.semanticweb.owlapi.model.OWLObjectProperty;
-import org.semanticweb.owlapi.model.OWLObjectPropertyAssertionAxiom;
 import org.semanticweb.owlapi.model.OWLOntology;
 import org.semanticweb.owlapi.model.OWLOntologyChange;
-import org.semanticweb.owlapi.model.OWLOntologyCreationException;
-import org.semanticweb.owlapi.model.OWLOntologyManager;
 import org.semanticweb.owlapi.model.OWLOntologyStorageException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import eu.iksproject.kres.api.format.KReSFormat;
+import eu.iksproject.kres.api.manager.KReSONManager;
+import eu.iksproject.kres.api.rules.RuleStore;
+import eu.iksproject.kres.api.storage.OntologyStoreProvider;
+import eu.iksproject.kres.jersey.resource.NavigationMixin;
+import eu.iksproject.kres.manager.ONManager;
+import eu.iksproject.kres.rules.manager.KReSAddRecipe;
+import eu.iksproject.kres.rules.manager.KReSAddRule;
+import eu.iksproject.kres.rules.manager.KReSGetRecipe;
+import eu.iksproject.kres.rules.manager.KReSGetRule;
+import eu.iksproject.kres.rules.manager.KReSRemoveRecipe;
+import eu.iksproject.kres.rules.manager.KReSRemoveRule;
+import eu.iksproject.kres.rules.manager.KReSRuleStore;
+import eu.iksproject.kres.storage.provider.OntologyStorageProviderImpl;
 
 /**
  *
@@ -70,40 +67,74 @@ import org.semanticweb.owlapi.model.OWLO
 @Path("/rule")
 public class Rule extends NavigationMixin{
 
-    private static RuleStore kresRuleStore;
+	protected KReSONManager onm;
+	protected OntologyStoreProvider storeProvider;
+
+	private Logger log = LoggerFactory.getLogger(getClass());
+
+	private RuleStore kresRuleStore;
     private HashMap<IRI, String> map;
     private String desc;
 
    /**
      * To get the KReSRuleStore where are stored the rules and the recipes
      *
-     * @param servletContext {To get the context where the REST service is running.}
+	 * @param servletContext
+	 *            {To get the context where the REST service is running.}
      */
     public Rule(@Context ServletContext servletContext){
-       this.kresRuleStore = (RuleStore) servletContext.getAttribute(RuleStore.class.getName());
-       
+		this.kresRuleStore = (RuleStore) servletContext
+				.getAttribute(RuleStore.class.getName());
+		this.onm = (KReSONManager) servletContext
+				.getAttribute(KReSONManager.class.getName());
+		this.storeProvider = (OntologyStoreProvider) servletContext
+				.getAttribute(OntologyStoreProvider.class.getName());
+		// Contingency code for missing components follows.
+		/*
+		 * FIXME! The following code is required only for the tests. This should
+		 * be removed and the test should work without this code.
+		 */
+		if (storeProvider == null) {
+			log
+					.warn("No OntologyStoreProvider in servlet context. Instantiating manually...");
+			storeProvider = new OntologyStorageProviderImpl();
+		}
+		if (onm == null) {
+			log
+					.warn("No KReSONManager in servlet context. Instantiating manually...");
+			onm = new ONManager(storeProvider.getActiveOntologyStorage(),
+					new Hashtable<String, Object>());
+		}
        if (kresRuleStore == null) {
-           System.err.println("WARNING: KReSRuleStore with stored rules and recipes is missing in ServletContext. A new instance has been created.");
-           this.kresRuleStore = new KReSRuleStore("");
-           System.err.println("PATH TO OWL FILE LOADED: "+kresRuleStore.getFilePath());
-            /*throw new IllegalStateException(
-                    "KReSRuleStore with stored rules and recipes is missing in ServletContext");*/
+			log
+					.warn("No KReSRuleStore with stored rules and recipes found in servlet context. Instantiating manually with default values...");
+			this.kresRuleStore = new KReSRuleStore(onm,
+					new Hashtable<String, Object>(), "");
+			log
+					.debug("PATH TO OWL FILE LOADED: "
+							+ kresRuleStore.getFilePath());
         }
     }
 
    /**
-     * Get a rule from the rule base (that is the ontology that contains the rules and the recipe).
-     * curl -v -X GET http://localhost:8080/kres/rule/http://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentRule
-     * @param uri {A string contains the IRI full name of the rule.}
+	 * Get a rule from the rule base (that is the ontology that contains the
+	 * rules and the recipe). curl -v -X GET
+	 * http://localhost:8080/kres/rule/http
+	 * ://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentRule
+	 * 
+	 * @param uri
+	 *            {A string contains the IRI full name of the rule.}
      * @return Return: <br/>
-     *       200 The rule is retrieved (import declarations point to KReS Services) <br/>
+	 *         200 The rule is retrieved (import declarations point to KReS
+	 *         Services) <br/>
      *       404 The rule does not exists in the manager <br/>
      *       500 Some error occurred
      *
      */
     @GET
     @Path("/{uri:.+}")
-    @Produces(value={KReSFormat.RDF_XML,KReSFormat.TURTLE,KReSFormat.OWL_XML})
+	@Produces(value = { KReSFormat.RDF_XML, KReSFormat.TURTLE,
+			KReSFormat.OWL_XML })
     public Response getRule(@PathParam("uri") String uri){
  
       try{
@@ -119,29 +150,44 @@ public class Rule extends NavigationMixi
         }else{
 
             OWLOntology onto = kresRuleStore.getOntology();
-            OWLOntology newmodel = OWLManager.createOWLOntologyManager().createOntology(onto.getOntologyID());
-            OWLDataFactory factory = onto.getOWLOntologyManager().getOWLDataFactory();
+					OWLOntology newmodel = OWLManager
+							.createOWLOntologyManager().createOntology(
+									onto.getOntologyID());
+					OWLDataFactory factory = onto.getOWLOntologyManager()
+							.getOWLDataFactory();
 
-            Iterator<OWLOntology> importedonto = onto.getDirectImports().iterator();
+					Iterator<OWLOntology> importedonto = onto
+							.getDirectImports().iterator();
             List<OWLOntologyChange> additions = new LinkedList<OWLOntologyChange>();
-            OWLDataFactory auxfactory = onto.getOWLOntologyManager().getOWLDataFactory();
+					OWLDataFactory auxfactory = onto.getOWLOntologyManager()
+							.getOWLDataFactory();
 
             while(importedonto.hasNext()){
                 OWLOntology auxonto = importedonto.next();
-                additions.add(new AddImport(newmodel,auxfactory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
+						additions.add(new AddImport(newmodel, auxfactory
+								.getOWLImportsDeclaration(auxonto
+										.getOWLOntologyManager()
+										.getOntologyDocumentIRI(auxonto))));
             }
 
             if(!additions.isEmpty())
-                newmodel.getOWLOntologyManager().applyChanges(additions);
+						newmodel.getOWLOntologyManager()
+								.applyChanges(additions);
 
             while(keys.hasNext()){
-                OWLNamedIndividual ind = factory.getOWLNamedIndividual(keys.next());
+						OWLNamedIndividual ind = factory
+								.getOWLNamedIndividual(keys.next());
                 Set<OWLIndividualAxiom> ax = onto.getAxioms(ind);
-                newmodel.getOWLOntologyManager().addAxioms(newmodel,ax);
+						newmodel.getOWLOntologyManager()
+								.addAxioms(newmodel, ax);
             }
 
             try {
-            	OWLManager.createOWLOntologyManager().saveOntology(newmodel, newmodel.getOWLOntologyManager().getOntologyFormat(newmodel), System.out);
+						OWLManager.createOWLOntologyManager().saveOntology(
+								newmodel,
+								newmodel.getOWLOntologyManager()
+										.getOntologyFormat(newmodel),
+								System.out);
     		} catch (OWLOntologyStorageException e) {
     			// TODO Auto-generated catch block
     			e.printStackTrace();
@@ -159,27 +205,41 @@ public class Rule extends NavigationMixi
         }else{
             OWLOntology onto = kresRuleStore.getOntology();
 
-            OWLDataFactory factory = onto.getOWLOntologyManager().getOWLDataFactory();
-            OWLNamedIndividual ind = factory.getOWLNamedIndividual(IRI.create(uri));
+					OWLDataFactory factory = onto.getOWLOntologyManager()
+							.getOWLDataFactory();
+					OWLNamedIndividual ind = factory.getOWLNamedIndividual(IRI
+							.create(uri));
             Set<OWLIndividualAxiom> ax = onto.getAxioms(ind);
-            OWLOntology newmodel = OWLManager.createOWLOntologyManager().createOntology(onto.getOntologyID());
+					OWLOntology newmodel = OWLManager
+							.createOWLOntologyManager().createOntology(
+									onto.getOntologyID());
 
-            Iterator<OWLOntology> importedonto = onto.getDirectImports().iterator();
+					Iterator<OWLOntology> importedonto = onto
+							.getDirectImports().iterator();
             List<OWLOntologyChange> additions = new LinkedList<OWLOntologyChange>();
-            OWLDataFactory auxfactory = onto.getOWLOntologyManager().getOWLDataFactory();
+					OWLDataFactory auxfactory = onto.getOWLOntologyManager()
+							.getOWLDataFactory();
 
             while(importedonto.hasNext()){
                 OWLOntology auxonto = importedonto.next();
-                additions.add(new AddImport(newmodel,auxfactory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
+						additions.add(new AddImport(newmodel, auxfactory
+								.getOWLImportsDeclaration(auxonto
+										.getOWLOntologyManager()
+										.getOntologyDocumentIRI(auxonto))));
             }
 
             if(!additions.isEmpty())
-                newmodel.getOWLOntologyManager().applyChanges(additions);
+						newmodel.getOWLOntologyManager()
+								.applyChanges(additions);
 
             newmodel.getOWLOntologyManager().addAxioms(newmodel,ax);
 
             try {
-            	OWLManager.createOWLOntologyManager().saveOntology(newmodel, newmodel.getOWLOntologyManager().getOntologyFormat(newmodel), System.out);
+						OWLManager.createOWLOntologyManager().saveOntology(
+								newmodel,
+								newmodel.getOWLOntologyManager()
+										.getOntologyFormat(newmodel),
+								System.out);
     		} catch (OWLOntologyStorageException e) {
     			// TODO Auto-generated catch block
     			e.printStackTrace();
@@ -197,15 +257,16 @@ public class Rule extends NavigationMixi
     
     @GET
     @Path("/of-recipe/{uri:.+}")
-    @Produces(value={KReSFormat.RDF_XML,
-    				 KReSFormat.RDF_JSON})
-    
+	@Produces(value = { KReSFormat.RDF_XML, KReSFormat.RDF_JSON })
     public Response getRulesOfRecipe(@PathParam("uri") String recipeURI){
     	
     	KReSGetRule kReSGetRule = new KReSGetRule(kresRuleStore);
     	String recipeURIEnc;
 		try {
-			recipeURIEnc = URLEncoder.encode("http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRecipeA", "UTF-8");
+			recipeURIEnc = URLEncoder
+					.encode(
+							"http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRecipeA",
+							"UTF-8");
 			System.out.println("RECIPE : "+recipeURIEnc);
 		} catch (UnsupportedEncodingException e) {
 			// TODO Auto-generated catch block
@@ -213,19 +274,32 @@ public class Rule extends NavigationMixi
 		}
     	
     	System.out.println("RECIPE IRI : "+IRI.create(recipeURI).toString());
-    	OWLOntology ontology = kReSGetRule.getAllRulesOfARecipe(IRI.create(recipeURI));
+		OWLOntology ontology = kReSGetRule.getAllRulesOfARecipe(IRI
+				.create(recipeURI));
 		
     	return Response.ok(ontology).build();
 			
-		
     }
+
    /**
-     * To add a rule to a recipe at the end of the sequence.
-     * curl -v -X POST -F "recipe=http://kres.iks-project.eu/ontology/meta/rmi.owl%23ProvaParentRecipe" -F "rule=http://kres.iks-project.eu/ontology/meta/rmi.owl%23ProvaRuleNEW" -F "kres-syntax=body -> head" -F "description=prova di aggiunta regola" http://localhost:8080/kres/rule
-     * @param recipe {A string contains the IRI of the recipe where to add the rule}
-     * @param rule {A string contains the IRI of the rule to be added at the recipe}
-     * @param kres_syntax {A string contains the body and the head of the kres rule. If not specified the rule is search in the Ontology otherwise is added as new.}
-     * @param description {A string contains a description of the rule}
+	 * To add a rule to a recipe at the end of the sequence. curl -v -X POST -F
+	 * "recipe=http://kres.iks-project.eu/ontology/meta/rmi.owl%23ProvaParentRecipe"
+	 * -F "rule=http://kres.iks-project.eu/ontology/meta/rmi.owl%23ProvaRuleNEW"
+	 * -F "kres-syntax=body -> head" -F "description=prova di aggiunta regola"
+	 * http://localhost:8080/kres/rule
+	 * 
+	 * @param recipe
+	 *            {A string contains the IRI of the recipe where to add the
+	 *            rule}
+	 * @param rule
+	 *            {A string contains the IRI of the rule to be added at the
+	 *            recipe}
+	 * @param kres_syntax
+	 *            {A string contains the body and the head of the kres rule. If
+	 *            not specified the rule is search in the Ontology otherwise is
+	 *            added as new.}
+	 * @param description
+	 *            {A string contains a description of the rule}
      * @return Return: <br/>
      *      200 The rule has been added <br/>
      *      204 The rule has not been added <br/>
@@ -236,7 +310,10 @@ public class Rule extends NavigationMixi
      */
     @POST
     @Consumes(MediaType.MULTIPART_FORM_DATA)
-    public Response addRuleToRecipe(@FormParam(value="recipe") String recipe,@FormParam(value="rule") String rule,@FormParam(value="kres-syntax") String kres_syntax,@FormParam(value="description") String description){
+	public Response addRuleToRecipe(@FormParam(value = "recipe") String recipe,
+			@FormParam(value = "rule") String rule,
+			@FormParam(value = "kres-syntax") String kres_syntax,
+			@FormParam(value = "description") String description) {
     
 //        System.err.println("recipe "+recipe);
 //        System.err.println("rule " + rule);
@@ -306,7 +383,8 @@ public class Rule extends NavigationMixi
          if((kres_syntax!=null)&(description!=null)){
             //Get the rule
             KReSAddRule inrule = new KReSAddRule(kresRuleStore);
-            boolean ok = inrule.addRule(IRI.create(rule),kres_syntax,description);
+				boolean ok = inrule.addRule(IRI.create(rule), kres_syntax,
+						description);
             if(!ok){
                 System.err.println("PROBLEM TO ADD: "+rule);
                 return Response.status(Status.CONFLICT).build();
@@ -341,7 +419,6 @@ public class Rule extends NavigationMixi
                 return Response.status(Status.CONFLICT).build();
             }
 
-            
             //Add the recipe with the new rule
             KReSAddRecipe newadd = new KReSAddRecipe(kresRuleStore);
             ok = newadd.addRecipe(IRI.create(recipe), ruleseq, desc);
@@ -361,14 +438,17 @@ public class Rule extends NavigationMixi
     }
 
    /**
-     * To delete a rule from a recipe or from the ontology. If the recipe is not specified the rule is deleted from the ontology.
-     * curl -v -X DELETE -G \
-     * -d recipe="http://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentRecipe" \
-     * -d rule="http://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentNewRule" \
+	 * To delete a rule from a recipe or from the ontology. If the recipe is not
+	 * specified the rule is deleted from the ontology. curl -v -X DELETE -G \
+	 * -d recipe=
+	 * "http://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentRecipe" \ -d
+	 * rule
+	 * ="http://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentNewRule" \
      * http://localhost:port/kres/rule
     *
      * @Param rule {A string contains an IRI of the rule to be removed}
-     * @param recipe {A string contains an IRI of the recipe where remove the rule}
+	 * @param recipe
+	 *            {A string contains an IRI of the recipe where remove the rule}
      * @return Return: <br/>
      *      200 The rule has been deleted<br/>
      *      204 The rule has not been deleted<br/>
@@ -379,7 +459,8 @@ public class Rule extends NavigationMixi
     @DELETE
     //@Consumes(MediaType.TEXT_PLAIN)
     @Produces(KReSFormat.TEXT_PLAIN)
-    public Response removeRule(@QueryParam(value="rule") String rule,@QueryParam(value="recipe") String recipe){
+	public Response removeRule(@QueryParam(value = "rule") String rule,
+			@QueryParam(value = "recipe") String recipe) {
 
         boolean ok;
 
@@ -408,7 +489,8 @@ public class Rule extends NavigationMixi
             }
             
             KReSRemoveRule remove = new KReSRemoveRule(kresRuleStore);
-            ok = remove.removeRuleFromRecipe(IRI.create(rule),IRI.create(recipe));
+				ok = remove.removeRuleFromRecipe(IRI.create(rule), IRI
+						.create(recipe));
             if(ok){
                 kresRuleStore.saveOntology();
                 return Response.status(Status.OK).build();

Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/Classify.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/Classify.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/Classify.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/Classify.java Wed Dec 29 18:04:19 2010
@@ -5,31 +5,14 @@
 
 package eu.iksproject.kres.jersey.reasoners;
 
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.ModelFactory;
-import com.hp.hpl.jena.rdf.model.Resource;
-import eu.iksproject.kres.api.format.KReSFormat;
-import eu.iksproject.kres.api.manager.ontology.OntologyScope;
-import eu.iksproject.kres.api.manager.ontology.OntologySpace;
-import eu.iksproject.kres.api.manager.ontology.ScopeRegistry;
-import eu.iksproject.kres.api.manager.ontology.SessionOntologySpace;
-import eu.iksproject.kres.api.rules.KReSRule;
-import eu.iksproject.kres.api.rules.NoSuchRecipeException;
-import eu.iksproject.kres.api.rules.RuleStore;
-import eu.iksproject.kres.api.rules.util.KReSRuleList;
-import eu.iksproject.kres.manager.ONManager;
-import eu.iksproject.kres.reasoners.KReSCreateReasoner;
-import eu.iksproject.kres.reasoners.KReSRunReasoner;
-import eu.iksproject.kres.reasoners.KReSRunRules;
-import eu.iksproject.kres.rules.KReSKB;
-import eu.iksproject.kres.rules.manager.KReSRuleStore;
-import eu.iksproject.kres.rules.parser.KReSRuleParser;
 import java.io.File;
 import java.net.URL;
+import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
+
 import javax.servlet.ServletContext;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.FormParam;
@@ -41,6 +24,7 @@ import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
+
 import org.semanticweb.owlapi.apibinding.OWLManager;
 import org.semanticweb.owlapi.model.AddImport;
 import org.semanticweb.owlapi.model.IRI;
@@ -55,7 +39,32 @@ import org.semanticweb.owlapi.model.OWLO
 import org.semanticweb.owlapi.model.OWLOntologyChange;
 import org.semanticweb.owlapi.model.OWLOntologyManager;
 import org.semanticweb.owlapi.reasoner.InconsistentOntologyException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+import eu.iksproject.kres.api.format.KReSFormat;
+import eu.iksproject.kres.api.manager.KReSONManager;
+import eu.iksproject.kres.api.manager.ontology.OntologyScope;
+import eu.iksproject.kres.api.manager.ontology.OntologySpace;
+import eu.iksproject.kres.api.manager.ontology.ScopeRegistry;
+import eu.iksproject.kres.api.manager.ontology.SessionOntologySpace;
+import eu.iksproject.kres.api.rules.KReSRule;
+import eu.iksproject.kres.api.rules.NoSuchRecipeException;
+import eu.iksproject.kres.api.rules.RuleStore;
+import eu.iksproject.kres.api.rules.util.KReSRuleList;
+import eu.iksproject.kres.api.storage.OntologyStoreProvider;
+import eu.iksproject.kres.manager.ONManager;
+import eu.iksproject.kres.reasoners.KReSCreateReasoner;
+import eu.iksproject.kres.reasoners.KReSRunReasoner;
+import eu.iksproject.kres.reasoners.KReSRunRules;
+import eu.iksproject.kres.rules.KReSKB;
+import eu.iksproject.kres.rules.manager.KReSRuleStore;
+import eu.iksproject.kres.rules.parser.KReSRuleParser;
+import eu.iksproject.kres.storage.provider.OntologyStorageProviderImpl;
 
 /**
  *
@@ -68,49 +77,94 @@ public class Classify {
      private OWLOntology inputowl;
      private OWLOntology scopeowl;
 
+	protected KReSONManager onm;
+	protected OntologyStoreProvider storeProvider;
+
+	private Logger log = LoggerFactory.getLogger(getClass());
+
     /**
      * To get the KReSRuleStore where are stored the rules and the recipes
      *
-     * @param servletContext {To get the context where the REST service is running.}
+	 * @param servletContext
+	 *            {To get the context where the REST service is running.}
      */
     public Classify(@Context ServletContext servletContext){
-       this.kresRuleStore = (RuleStore) servletContext.getAttribute(RuleStore.class.getName());
+		this.kresRuleStore = (RuleStore) servletContext
+				.getAttribute(RuleStore.class.getName());
+		this.onm = (KReSONManager) servletContext
+				.getAttribute(KReSONManager.class.getName());
+		this.storeProvider = (OntologyStoreProvider) servletContext
+				.getAttribute(OntologyStoreProvider.class.getName());
+		// Contingency code for missing components follows.
+		/*
+		 * FIXME! The following code is required only for the tests. This should
+		 * be removed and the test should work without this code.
+		 */
+		if (storeProvider == null) {
+			log
+					.warn("No OntologyStoreProvider in servlet context. Instantiating manually...");
+			storeProvider = new OntologyStorageProviderImpl();
+		}
+		if (onm == null) {
+			log
+					.warn("No KReSONManager in servlet context. Instantiating manually...");
+			onm = new ONManager(storeProvider.getActiveOntologyStorage(),
+					new Hashtable<String, Object>());
+		}
        if (kresRuleStore == null) {
-            System.err.println("WARNING: KReSRuleStore with stored rules and recipes is missing in ServletContext. A new instance has been created.");
-            this.kresRuleStore = new KReSRuleStore("");
-            System.err.println("PATH TO OWL FILE LOADED: "+kresRuleStore.getFilePath());
-//            throw new IllegalStateException(
-//                    "KReSRuleStore with stored rules and recipes is missing in ServletContext");
+			log
+					.warn("No KReSRuleStore with stored rules and recipes found in servlet context. Instantiating manually with default values...");
+			this.kresRuleStore = new KReSRuleStore(onm,
+					new Hashtable<String, Object>(), "");
+			log
+					.debug("PATH TO OWL FILE LOADED: "
+							+ kresRuleStore.getFilePath());
         }
     }
 
      /**
      * To trasform a sequence of rules to a Jena Model
-     * @param owl {OWLOntology object contains a single recipe}
+	 * 
+	 * @param owl
+	 *            {OWLOntology object contains a single recipe}
      * @return {A jena rdf model contains the SWRL rule.}
      */
-    private Model fromRecipeToModel(OWLOntology owl) throws NoSuchRecipeException{
+	private Model fromRecipeToModel(OWLOntology owl)
+			throws NoSuchRecipeException {
 
-        RuleStore store = new KReSRuleStore(owl);
+		// FIXME: why the heck is this method re-instantiating a rule store?!?
+		RuleStore store = new KReSRuleStore(onm,
+				new Hashtable<String, Object>(), owl);
         Model jenamodel = ModelFactory.createDefaultModel();
 
-        OWLDataFactory factory = owl.getOWLOntologyManager().getOWLDataFactory();
-        OWLClass ontocls = factory.getOWLClass(IRI.create("http://kres.iks-project.eu/ontology/meta/rmi.owl#Recipe"));
+		OWLDataFactory factory = owl.getOWLOntologyManager()
+				.getOWLDataFactory();
+		OWLClass ontocls = factory
+				.getOWLClass(IRI
+						.create("http://kres.iks-project.eu/ontology/meta/rmi.owl#Recipe"));
         Set<OWLClassAssertionAxiom> cls = owl.getClassAssertionAxioms(ontocls);
         Iterator<OWLClassAssertionAxiom> iter = cls.iterator();
         IRI recipeiri = IRI.create(iter.next().getIndividual().toStringID());
 
-	OWLIndividual recipeIndividual = factory.getOWLNamedIndividual(recipeiri);
+		OWLIndividual recipeIndividual = factory
+				.getOWLNamedIndividual(recipeiri);
 
-	OWLObjectProperty objectProperty = factory.getOWLObjectProperty(IRI.create("http://kres.iks-project.eu/ontology/meta/rmi.owl#hasRule"));
-	Set<OWLIndividual> rules = recipeIndividual.getObjectPropertyValues(objectProperty, store.getOntology());
+		OWLObjectProperty objectProperty = factory
+				.getOWLObjectProperty(IRI
+						.create("http://kres.iks-project.eu/ontology/meta/rmi.owl#hasRule"));
+		Set<OWLIndividual> rules = recipeIndividual.getObjectPropertyValues(
+				objectProperty, store.getOntology());
         String kReSRules = "";
         for(OWLIndividual rule : rules){
-			OWLDataProperty hasBodyAndHead = factory.getOWLDataProperty(IRI.create("http://kres.iks-project.eu/ontology/meta/rmi.owl#hasBodyAndHead"));
-			Set<OWLLiteral> kReSRuleLiterals = rule.getDataPropertyValues(hasBodyAndHead, store.getOntology());
+			OWLDataProperty hasBodyAndHead = factory
+					.getOWLDataProperty(IRI
+							.create("http://kres.iks-project.eu/ontology/meta/rmi.owl#hasBodyAndHead"));
+			Set<OWLLiteral> kReSRuleLiterals = rule.getDataPropertyValues(
+					hasBodyAndHead, store.getOntology());
 
 			for(OWLLiteral kReSRuleLiteral : kReSRuleLiterals){
-				kReSRules += kReSRuleLiteral.getLiteral() + System.getProperty("line.separator");
+				kReSRules += kReSRuleLiteral.getLiteral()
+						+ System.getProperty("line.separator");
 			}
 		}
 
@@ -128,13 +182,24 @@ public class Classify {
     }
 
    /**
-     * To run a classifying reasoner on a RDF input File or IRI on the base of a Scope (or an ontology) and a recipe. Can be used either HermiT or an owl-link server reasoner end-point
-     * @param session {A string contains the session IRI used to classify the input.}
-     * @param scope {A string contains either a specific scope's ontology or the scope IRI used to classify the input.}
-     * @param recipe {A string contains the recipe IRI from the service http://localhost:port/kres/recipe/recipeName.}
+	 * To run a classifying reasoner on a RDF input File or IRI on the base of a
+	 * Scope (or an ontology) and a recipe. Can be used either HermiT or an
+	 * owl-link server reasoner end-point
+	 * 
+	 * @param session
+	 *            {A string contains the session IRI used to classify the
+	 *            input.}
+	 * @param scope
+	 *            {A string contains either a specific scope's ontology or the
+	 *            scope IRI used to classify the input.}
+	 * @param recipe
+	 *            {A string contains the recipe IRI from the service
+	 *            http://localhost:port/kres/recipe/recipeName.}
      * @Param file {A file in a RDF (eihter RDF/XML or owl) to be classified.}
-     * @Param input_graph {A string contains the IRI of RDF (either RDF/XML or OWL) to be classified.}
-     * @Param owllink_endpoint {A string contains the ressoner server end-point URL.}
+	 * @Param input_graph {A string contains the IRI of RDF (either RDF/XML or
+	 *        OWL) to be classified.}
+	 * @Param owllink_endpoint {A string contains the ressoner server end-point
+	 *        URL.}
      * @return Return: <br/>
      *          200 The ontology is retrieved, containing only class axioms <br/>
      *          400 To run the session is needed the scope <br/>
@@ -144,8 +209,15 @@ public class Classify {
      */
     @POST
     @Consumes(MediaType.MULTIPART_FORM_DATA)
-    @Produces(value={KReSFormat.RDF_XML,KReSFormat.TURTLE,KReSFormat.OWL_XML})
-    public Response ontologyClassify(@FormParam(value="session") String session,@FormParam(value="scope") String scope,@FormParam(value="recipe") String recipe,@FormParam(value="input-graph") String input_graph,@FormParam(value="file") File file,@FormParam(value="owllink-endpoint") String owllink_endpoint){
+	@Produces(value = { KReSFormat.RDF_XML, KReSFormat.TURTLE,
+			KReSFormat.OWL_XML })
+	public Response ontologyClassify(
+			@FormParam(value = "session") String session,
+			@FormParam(value = "scope") String scope,
+			@FormParam(value = "recipe") String recipe,
+			@FormParam(value = "input-graph") String input_graph,
+			@FormParam(value = "file") File file,
+			@FormParam(value = "owllink-endpoint") String owllink_endpoint) {
        
       try{
       
@@ -162,22 +234,28 @@ public class Classify {
 
       //Load input file or graph
       if(file!=null)
-        this.inputowl = OWLManager.createOWLOntologyManager().loadOntologyFromOntologyDocument(file);
+				this.inputowl = OWLManager.createOWLOntologyManager()
+						.loadOntologyFromOntologyDocument(file);
       if(input_graph!=null)
-        this.inputowl = OWLManager.createOWLOntologyManager().loadOntologyFromOntologyDocument(IRI.create(input_graph));
+				this.inputowl = OWLManager.createOWLOntologyManager()
+						.loadOntologyFromOntologyDocument(
+								IRI.create(input_graph));
       if(inputowl==null&&(session==null||scope==null))
         return Response.status(Status.NOT_FOUND).build();
       if(inputowl==null){
           if(scope!=null)
-            this.inputowl = OWLManager.createOWLOntologyManager().createOntology();
+					this.inputowl = OWLManager.createOWLOntologyManager()
+							.createOntology();
           else{
-            this.inputowl = OWLManager.createOWLOntologyManager().createOntology();
+					this.inputowl = OWLManager.createOWLOntologyManager()
+							.createOntology();
           }
       }
 
        //Create list to add ontologies as imported
        OWLOntologyManager mgr = inputowl.getOWLOntologyManager();
-       OWLDataFactory factory = inputowl.getOWLOntologyManager().getOWLDataFactory();
+			OWLDataFactory factory = inputowl.getOWLOntologyManager()
+					.getOWLDataFactory();
        List<OWLOntologyChange> additions = new LinkedList<OWLOntologyChange>();
 
        boolean ok = false;
@@ -187,16 +265,22 @@ public class Classify {
       if((scope!=null)&&(session==null))
       try{
           IRI iri = IRI.create(scope);
-          ScopeRegistry reg = ONManager.get().getScopeRegistry();
+					ScopeRegistry reg = onm.getScopeRegistry();
           OntologyScope ontoscope = reg.getScope(iri);
-          Iterator<OWLOntology> importscope = ontoscope.getCustomSpace().getOntologies().iterator();
-          Iterator<OntologySpace> importsession = ontoscope.getSessionSpaces().iterator();
+					Iterator<OWLOntology> importscope = ontoscope
+							.getCustomSpace().getOntologies().iterator();
+					Iterator<OntologySpace> importsession = ontoscope
+							.getSessionSpaces().iterator();
 
-          //Add ontology as import form scope, if it is anonymus we try to add single axioms.
+					// Add ontology as import form scope, if it is anonymus we
+					// try to add single axioms.
           while(importscope.hasNext()){
             OWLOntology auxonto = importscope.next();
             if(!auxonto.getOntologyID().isAnonymous()){
-            additions.add(new AddImport(inputowl, factory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
+							additions.add(new AddImport(inputowl, factory
+									.getOWLImportsDeclaration(auxonto
+											.getOWLOntologyManager()
+											.getOntologyDocumentIRI(auxonto))));
             }else{
                 mgr.addAxioms(inputowl,auxonto.getAxioms());
             }
@@ -204,11 +288,19 @@ public class Classify {
 
          //Add ontology form sessions
          while(importsession.hasNext()){
-             Iterator<OWLOntology> sessionontos = importsession.next().getOntologies().iterator();
+						Iterator<OWLOntology> sessionontos = importsession
+								.next().getOntologies().iterator();
              while(sessionontos.hasNext()){
                 OWLOntology auxonto = sessionontos.next();
                 if(!auxonto.getOntologyID().isAnonymous()){
-                    additions.add(new AddImport(inputowl, factory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
+								additions
+										.add(new AddImport(
+												inputowl,
+												factory
+														.getOWLImportsDeclaration(auxonto
+																.getOWLOntologyManager()
+																.getOntologyDocumentIRI(
+																		auxonto))));
                 }else{
                     mgr.addAxioms(inputowl,auxonto.getAxioms());
                 }
@@ -226,30 +318,38 @@ public class Classify {
       if((session!=null)&&(scope!=null))
       try{
           IRI iri = IRI.create(scope);
-          ScopeRegistry reg = ONManager.get().getScopeRegistry();
+					ScopeRegistry reg = onm.getScopeRegistry();
           OntologyScope ontoscope = reg.getScope(iri);
-          SessionOntologySpace sos = ontoscope.getSessionSpace(IRI.create(session));
+					SessionOntologySpace sos = ontoscope.getSessionSpace(IRI
+							.create(session));
           
-          Set<OWLOntology> ontos = sos.getOntologyManager().getOntologies();
+					Set<OWLOntology> ontos = sos.getOntologyManager()
+							.getOntologies();
           Iterator<OWLOntology> iteronto = ontos.iterator();
 
-          //Add session ontologies as import, if it is anonymus we try to add single axioms.
+					// Add session ontologies as import, if it is anonymus we
+					// try to add single axioms.
           while(iteronto.hasNext()){
             OWLOntology auxonto = iteronto.next();
             if(!auxonto.getOntologyID().isAnonymous()){
-                additions.add(new AddImport(inputowl, factory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
+							additions.add(new AddImport(inputowl, factory
+									.getOWLImportsDeclaration(auxonto
+											.getOWLOntologyManager()
+											.getOntologyDocumentIRI(auxonto))));
             }else{
                 mgr.addAxioms(inputowl,auxonto.getAxioms());
             }
           }
 
       }catch(Exception e){
-          System.err.println("ERROR: Problem with session: "+session);
+					System.err.println("ERROR: Problem with session: "
+							+ session);
           e.printStackTrace();
           Response.status(Status.NOT_FOUND).build();
       }
 
-      //After gathered the all ontology as imported now we apply the changes
+			// After gathered the all ontology as imported now we apply the
+			// changes
       if(additions.size()>0)
         mgr.applyChanges(additions);
 
@@ -258,23 +358,35 @@ public class Classify {
 
        try{
        if(recipe!=null) {
-            OWLOntology recipeowl = OWLManager.createOWLOntologyManager().loadOntologyFromOntologyDocument(IRI.create(recipe));
-            //Get Jea RDF model of SWRL rule contained in the recipe
+						OWLOntology recipeowl = OWLManager
+								.createOWLOntologyManager()
+								.loadOntologyFromOntologyDocument(
+										IRI.create(recipe));
+						// Get Jea RDF model of SWRL rule contained in the
+						// recipe
             Model swrlmodel = fromRecipeToModel(recipeowl);
 
-            //Create a reasoner to run rules contained in the recipe
-            KReSRunRules rulereasoner = new KReSRunRules(swrlmodel,inputowl);
-            //Run the rule reasoner to the input RDF with the added top-ontology
+						// Create a reasoner to run rules contained in the
+						// recipe
+						KReSRunRules rulereasoner = new KReSRunRules(swrlmodel,
+								inputowl);
+						// Run the rule reasoner to the input RDF with the added
+						// top-ontology
             inputowl = rulereasoner.runRulesReasoner();
        }
 
             //Create the reasoner for the classification
-            KReSCreateReasoner newreasoner = new KReSCreateReasoner(inputowl);
-            //Prepare and start the reasoner to classify ontology's resources
-            KReSRunReasoner reasoner = new KReSRunReasoner(newreasoner.getReasoner());
-            
-            //Create a new OWLOntology model where to put the inferred axioms
-            OWLOntology output = OWLManager.createOWLOntologyManager().createOntology(inputowl.getOntologyID());
+					KReSCreateReasoner newreasoner = new KReSCreateReasoner(
+							inputowl);
+					// Prepare and start the reasoner to classify ontology's
+					// resources
+					KReSRunReasoner reasoner = new KReSRunReasoner(newreasoner
+							.getReasoner());
+
+					// Create a new OWLOntology model where to put the inferred
+					// axioms
+					OWLOntology output = OWLManager.createOWLOntologyManager()
+							.createOntology(inputowl.getOntologyID());
             //Initial input axioms count
             int startax = output.getAxiomCount();
             //Run the classification
@@ -295,26 +407,40 @@ public class Classify {
            return Response.status(Status.NOT_FOUND).build();
         }
 
-      //If there is an owl-link server end-point specified in the form
+				// If there is an owl-link server end-point specified in the
+				// form
       }else{
 
       try{
        if(recipe!=null) {
-         OWLOntology recipeowl = OWLManager.createOWLOntologyManager().loadOntologyFromOntologyDocument(IRI.create(recipe));
-         //Get Jea RDF model of SWRL rule contained in the recipe
+						OWLOntology recipeowl = OWLManager
+								.createOWLOntologyManager()
+								.loadOntologyFromOntologyDocument(
+										IRI.create(recipe));
+						// Get Jea RDF model of SWRL rule contained in the
+						// recipe
          Model swrlmodel = fromRecipeToModel(recipeowl);
-         //Create a reasoner to run rules contained in the recipe by using the server and-point
-         KReSRunRules rulereasoner = new KReSRunRules(swrlmodel,inputowl,new URL(owllink_endpoint));
-         //Run the rule reasoner to the input RDF with the added top-ontology
+						// Create a reasoner to run rules contained in the
+						// recipe by using the server and-point
+						KReSRunRules rulereasoner = new KReSRunRules(swrlmodel,
+								inputowl, new URL(owllink_endpoint));
+						// Run the rule reasoner to the input RDF with the added
+						// top-ontology
          inputowl = rulereasoner.runRulesReasoner();
        }
-         //Create the reasoner for the consistency check by using the server and-point
-         KReSCreateReasoner newreasoner = new KReSCreateReasoner(inputowl, new URL(owllink_endpoint));
-         //Prepare and start the reasoner to classify ontology's resources
-         KReSRunReasoner reasoner = new KReSRunReasoner(newreasoner.getReasoner());
-         
-         //Create a new OWLOntology model where to put the inferred axioms
-         OWLOntology output = OWLManager.createOWLOntologyManager().createOntology(inputowl.getOntologyID());
+					// Create the reasoner for the consistency check by using
+					// the server and-point
+					KReSCreateReasoner newreasoner = new KReSCreateReasoner(
+							inputowl, new URL(owllink_endpoint));
+					// Prepare and start the reasoner to classify ontology's
+					// resources
+					KReSRunReasoner reasoner = new KReSRunReasoner(newreasoner
+							.getReasoner());
+
+					// Create a new OWLOntology model where to put the inferred
+					// axioms
+					OWLOntology output = OWLManager.createOWLOntologyManager()
+							.createOntology(inputowl.getOntologyID());
          //Initial input axioms count
          int startax = output.getAxiomCount();
          //Run the classification

Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/ConsistencyCheck.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/ConsistencyCheck.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/ConsistencyCheck.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/ConsistencyCheck.java Wed Dec 29 18:04:19 2010
@@ -2,6 +2,7 @@ package eu.iksproject.kres.jersey.reason
 
 import java.io.File;
 import java.net.URL;
+import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
@@ -14,7 +15,6 @@ import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
@@ -44,6 +44,7 @@ import com.hp.hpl.jena.rdf.model.Model;
 import com.hp.hpl.jena.rdf.model.ModelFactory;
 import com.hp.hpl.jena.rdf.model.Resource;
 
+import eu.iksproject.kres.api.manager.KReSONManager;
 import eu.iksproject.kres.api.manager.OWLDuplicateSafeLoader;
 import eu.iksproject.kres.api.manager.ontology.OntologyScope;
 import eu.iksproject.kres.api.manager.ontology.OntologySpace;
@@ -53,6 +54,7 @@ import eu.iksproject.kres.api.rules.KReS
 import eu.iksproject.kres.api.rules.NoSuchRecipeException;
 import eu.iksproject.kres.api.rules.RuleStore;
 import eu.iksproject.kres.api.rules.util.KReSRuleList;
+import eu.iksproject.kres.api.storage.OntologyStoreProvider;
 import eu.iksproject.kres.manager.ONManager;
 import eu.iksproject.kres.reasoners.KReSCreateReasoner;
 import eu.iksproject.kres.reasoners.KReSRunReasoner;
@@ -60,6 +62,7 @@ import eu.iksproject.kres.reasoners.KReS
 import eu.iksproject.kres.rules.KReSKB;
 import eu.iksproject.kres.rules.manager.KReSRuleStore;
 import eu.iksproject.kres.rules.parser.KReSRuleParser;
+import eu.iksproject.kres.storage.provider.OntologyStorageProviderImpl;
 
 /**
  * This class implements the REST interface for the /check-consistency service
@@ -75,7 +78,10 @@ public class ConsistencyCheck {
 	private OWLOntology scopeowl;
 
 	private final OWLDuplicateSafeLoader loader = new OWLDuplicateSafeLoader();
-	private final Logger log = LoggerFactory.getLogger(getClass());
+	protected KReSONManager onm;
+	protected OntologyStoreProvider storeProvider;
+
+	private Logger log = LoggerFactory.getLogger(getClass());
 
 	/**
 	 * The constructor.
@@ -85,24 +91,40 @@ public class ConsistencyCheck {
 	 */
 	public ConsistencyCheck(@Context ServletContext servletContext) {
 
-		/**
-		 * Retrieve the rule store
-		 */
+		// Retrieve the rule store
 		this.kresRuleStore = (RuleStore) servletContext
 				.getAttribute(RuleStore.class.getName());
-		/**
+		// Retrieve the ontology network manager
+		this.onm = (KReSONManager) servletContext
+				.getAttribute(KReSONManager.class.getName());
+		this.storeProvider = (OntologyStoreProvider) servletContext
+				.getAttribute(OntologyStoreProvider.class.getName());
+		// Contingency code for missing components follows.
+		/*
 		 * FIXME! The following code is required only for the tests. This should
 		 * be removed and the test should work without this code.
 		 */
+		if (storeProvider == null) {
+			log
+					.warn("No OntologyStoreProvider in servlet context. Instantiating manually...");
+			storeProvider = new OntologyStorageProviderImpl();
+		}
+		if (onm == null) {
+			log
+					.warn("No KReSONManager in servlet context. Instantiating manually...");
+			onm = new ONManager(storeProvider.getActiveOntologyStorage(),
+					new Hashtable<String, Object>());
+		}
 		if (kresRuleStore == null) {
 			log
-					.warn(
-							"KReSRuleStore with stored rules and recipes is missing in ServletContext. A new instance has been created.",
-							this);
-			this.kresRuleStore = new KReSRuleStore("");
-			log.info("Configuration file loaded from: "
+					.warn("No KReSRuleStore with stored rules and recipes found in servlet context. Instantiating manually with default values...");
+			this.kresRuleStore = new KReSRuleStore(onm,
+					new Hashtable<String, Object>(), "");
+			log
+					.debug("PATH TO OWL FILE LOADED: "
 					+ kresRuleStore.getFilePath());
 		}
+
 	}
 
 	/**
@@ -115,7 +137,9 @@ public class ConsistencyCheck {
 	private Model fromRecipeToModel(OWLOntology owl)
 			throws NoSuchRecipeException, OWLOntologyCreationException {
 
-		RuleStore store = new KReSRuleStore(owl);
+		// FIXME: why the heck is this method re-instantiating a rule store?!?
+		RuleStore store = new KReSRuleStore(onm,
+				new Hashtable<String, Object>(), owl);
 		Model jenamodel = ModelFactory.createDefaultModel();
 
 		OWLDataFactory factory = owl.getOWLOntologyManager()
@@ -199,7 +223,10 @@ public class ConsistencyCheck {
 				log.debug("Some ontology import failed. Cannot continue.", uu);
 				return Response.status(Status.PRECONDITION_FAILED).build();
 			} catch (Exception ee) {
-				log.error("Cannot fetch the ontology. Some error occurred. Cannot continue.", ee);
+				log
+						.error(
+								"Cannot fetch the ontology. Some error occurred. Cannot continue.",
+								ee);
 				return Response.status(Status.NOT_FOUND).build();
 			}
 			KReSCreateReasoner newreasoner = new KReSCreateReasoner(owl);
@@ -312,7 +339,7 @@ public class ConsistencyCheck {
 			if ((scope != null) && (session == null))
 				try {
 					IRI iri = IRI.create(scope);
-					ScopeRegistry reg = ONManager.get().getScopeRegistry();
+					ScopeRegistry reg = onm.getScopeRegistry();
 					OntologyScope ontoscope = reg.getScope(iri);
 					Iterator<OWLOntology> importscope = ontoscope
 							.getCustomSpace().getOntologies().iterator();
@@ -365,7 +392,7 @@ public class ConsistencyCheck {
 			if ((session != null) && (scope != null))
 				try {
 					IRI iri = IRI.create(scope);
-					ScopeRegistry reg = ONManager.get().getScopeRegistry();
+					ScopeRegistry reg = onm.getScopeRegistry();
 					OntologyScope ontoscope = reg.getScope(iri);
 					SessionOntologySpace sos = ontoscope.getSessionSpace(IRI
 							.create(session));



Re: svn commit: r1053689 [1/6] - in /incubator/stanbol/trunk/kres: eu.iksproject.kres.api/ eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/ eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/registry/ eu.ikspr

Posted by Upayavira <uv...@odoko.co.uk>.
Please keep 'code tidying' commits and actual code change commits
separate, otherwise it can be difficult to review the changes - e.g.
what of this commit is actual change?

Thanks,

Upaayvira


On Wed, 29 Dec 2010 18:04 +0000, enridaga@apache.org wrote:
> Author: enridaga
> Date: Wed Dec 29 18:04:19 2010
> New Revision: 1053689
> 
> URL: http://svn.apache.org/viewvc?rev=1053689&view=rev
> Log:
> STANBOL-10
> Applying patch posted by Alessandro Adamou.
> Before that, applied a conversion for consistent line ending.
> 
> Added:
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/SpaceType.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/KReSConf/
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/KReSConf/rmi_config.owl
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/resources/META-INF/conf/catalog.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/KReSConf/
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/KReSConf/rmi_config.owl
> Modified:
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.api/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/registry/KReSRegistryLoader.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Recipe.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Rule.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/Classify.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/ConsistencyCheck.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/Enrichment.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMOntResource.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMRootResource.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMScopeOntologyResource.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMScopeResource.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/Activator.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ONManager.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/io/OntologyRegistryIRISource.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/AbstractOntologySpaceImpl.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/CoreOntologySpaceImpl.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/CustomOntologySpaceImpl.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/OntologyIndexImpl.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/OntologyScopeFactoryImpl.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/OntologyScopeImpl.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/OntologySpaceFactoryImpl.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/SessionOntologySpaceImpl.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/registry/model/impl/RegistryLoader.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/session/KReSSessionManagerImpl.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/session/ScopeSessionSynchronizer.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/util/OntologyUtils.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/org/stlab/xd/utils/RDFSLabelGetter.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/Namespace.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestIndexing.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestOntologyScope.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestOntologySpaces.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/registry/TestRegistry.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/session/TestSessions.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.ontologies/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.reasoners/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.reasoners/src/main/java/eu/iksproject/kres/reasoners/KReSReasonerImpl.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSAddRecipe.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSRuleStore.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSSetRuleStore.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/resources/RuleOntology/rmi_config.owl
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSAddRecipeTest.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSAddRuleTest.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSGetRecipeTest.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSGetRuleTest.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSLoadRuleFileTest.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSRemoveRecipeTest.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSRemoveRuleTest.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSRuleStoreTest.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.manager/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.manager/src/main/java/eu/iksproject/kres/semion/manager/SemionManagerImpl.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.reengineer.db/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.reengineer.db/src/main/java/eu/iksproject/kres/semion/reengineer/db/DBExtractor.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.reengineer.db/src/test/java/eu/iksproject/kres/semion/reengineer/db/DBExtractorTest.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.reengineer.xml/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.reengineer.xml/src/main/java/eu/iksproject/kres/semion/reengineer/xml/XMLExtractor.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.reengineer.xml/src/test/java/eu/iksproject/kres/semion/reengineer/xml/XMLReengineerTest.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.refactorer/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.refactorer/src/main/java/eu/iksproject/kres/semion/refactorer/SemionRefactorerImpl.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.semion.refactorer/src/test/java/eu/iksproject/kres/semion/refactorer/SemionRefactoringTest.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.shared/dependency/hermit124/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.shared/dependency/mysql/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.shared/dependency/owlapi3/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.shared/dependency/owllink102/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.shared/dependency/xerces/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.shared/transformation/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.storage.provider/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.storage.provider/src/main/java/eu/iksproject/kres/storage/provider/OntologyStorageProviderImpl.java
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.storage/pom.xml
>     incubator/stanbol/trunk/kres/eu.iksproject.kres.storage/src/main/java/eu/iksproject/kres/storage/ClerezzaStorage.java
> 
> Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.api/pom.xml
> URL:
> http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.api/pom.xml?rev=1053689&r1=1053688&r2=1053689&view=diff
> ==============================================================================
> --- incubator/stanbol/trunk/kres/eu.iksproject.kres.api/pom.xml
> (original)
> +++ incubator/stanbol/trunk/kres/eu.iksproject.kres.api/pom.xml Wed Dec
> 29 18:04:19 2010
> @@ -7,14 +7,14 @@
>  	<parent>
>  		<groupId>eu.iksproject</groupId>
>  		<artifactId>eu.iksproject.kres.parent</artifactId>
> -               <version>0.6-SNAPSHOT</version>
> +               <version>0.7</version>
>  		<relativePath>../parent/pom.xml</relativePath>
>  	</parent>
>  
>  	<groupId>eu.iksproject</groupId>
>  	<artifactId>eu.iksproject.kres.api</artifactId>
>  	<packaging>bundle</packaging>
> -       <version>0.6-SNAPSHOT</version>
> +       <version>${kres-version}</version>
>  
>  	<name>IKS KReS API</name>
>  	<description>KReS API</description>
> @@ -23,7 +23,7 @@
>  
>  	<properties>
>  		<jersey-version>1.1.5.1</jersey-version>
> -               <kres-version>0.6-SNAPSHOT</kres-version>
> +               <kres-version>0.7</kres-version>
>  		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>  	</properties>
>  
> @@ -36,7 +36,7 @@
>  				<configuration>
>  					<instructions>
>  						<Export-Package>
> -                                                      
> eu.iksproject.kres.api.*;version=${pom.version},
> +                                                      
> eu.iksproject.kres.api.*;version=${kres-version},
>  							com.hp.hpl.jena.*,
>  							com.ibm.icu.*,
>  							com.sun.jersey.*,
> 
> Added:
> incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/SpaceType.java
> URL:
> http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/SpaceType.java?rev=1053689&view=auto
> ==============================================================================
> ---
> incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/SpaceType.java
> (added)
> +++
> incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/SpaceType.java
> Wed Dec 29 18:04:19 2010
> @@ -0,0 +1,17 @@
> +package eu.iksproject.kres.api.manager.ontology;
> +
> +public enum SpaceType {
> +
> +       CORE("core"), CUSTOM("custom"), SESSION("session");
> +
> +       private SpaceType(String suffix) {
> +               this.suffix = suffix;
> +       }
> +
> +       private String suffix;
> +
> +       public String getIRISuffix() {
> +               return suffix;
> +       }
> +
> +}
> 
> Modified:
> incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/registry/KReSRegistryLoader.java
> URL:
> http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/registry/KReSRegistryLoader.java?rev=1053689&r1=1053688&r2=1053689&view=diff
> ==============================================================================
> ---
> incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/registry/KReSRegistryLoader.java
> (original)
> +++
> incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/registry/KReSRegistryLoader.java
> Wed Dec 29 18:04:19 2010
> @@ -26,7 +26,7 @@ public interface KReSRegistryLoader {
>  
>  	public boolean hasLibrary(Registry reg, IRI libraryID);
>  
> -       public boolean isPrintingLoadedOntologies();
> +//     public boolean isPrintingLoadedOntologies();
>  
>  	public void loadLocations() throws RegistryContentException;
>  	
> @@ -40,5 +40,5 @@ public interface KReSRegistryLoader {
>  	 */
>  	public Set<Registry> loadRegistriesEager(IRI physicalIRI);
>  
> -       public void setPrintLoadedOntologies(boolean doPrint);
> +//     public void setPrintLoadedOntologies(boolean doPrint);
>  }
> 
> Added:
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/KReSConf/rmi_config.owl
> URL:
> http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/KReSConf/rmi_config.owl?rev=1053689&view=auto
> ==============================================================================
> ---
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/KReSConf/rmi_config.owl
> (added)
> +++
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/KReSConf/rmi_config.owl
> Wed Dec 29 18:04:19 2010
> @@ -0,0 +1,174 @@
> +<?xml version="1.0"?>
> +<rdf:RDF
> xmlns="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#"
> +     xml:base="http://kres.iks-project.eu/ontology/meta/rmi_config.owl"
> +     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
> +    
> xmlns:sequence="http://www.ontologydesignpatterns.org/cp/owl/sequence.owl#"
> +     xmlns:owl="http://www.w3.org/2002/07/owl#"
> +     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
> +     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
> +     xmlns:rmi="http://kres.iks-project.eu/ontology/meta/rmi.owl#">
> +    <owl:Ontology
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi_config.owl">
> +        <owl:imports
> rdf:resource="http://ontologydesignpatterns.org/ont/iks/kres/rmi.owl"/>
> +    </owl:Ontology>
> +    
> +
> +
> +    <!-- 
> +   
> ///////////////////////////////////////////////////////////////////////////////////////
> +    //
> +    // Object Properties
> +    //
> +   
> ///////////////////////////////////////////////////////////////////////////////////////
> +     -->
> +
> +    
> +
> +
> +    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#endWith -->
> +
> +    <owl:ObjectProperty
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#endWith"/>
> +    
> +
> +
> +    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#hasRule -->
> +
> +    <owl:ObjectProperty
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#hasRule"/>
> +    
> +
> +
> +    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#startWith -->
> +
> +    <owl:ObjectProperty
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#startWith"/>
> +    
> +
> +
> +    <!--
> http://www.ontologydesignpatterns.org/cp/owl/sequence.owl#directlyPrecedes
> -->
> +
> +    <owl:ObjectProperty
> rdf:about="http://www.ontologydesignpatterns.org/cp/owl/sequence.owl#directlyPrecedes"/>
> +    
> +
> +
> +    <!-- 
> +   
> ///////////////////////////////////////////////////////////////////////////////////////
> +    //
> +    // Data properties
> +    //
> +   
> ///////////////////////////////////////////////////////////////////////////////////////
> +     -->
> +
> +    
> +
> +
> +    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#hasBodyAndHead
> -->
> +
> +    <owl:DatatypeProperty
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#hasBodyAndHead"/>
> +    
> +
> +
> +    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#hasDescription
> -->
> +
> +    <owl:DatatypeProperty
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#hasDescription"/>
> +    
> +
> +
> +    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#hasSequence
> -->
> +
> +    <owl:DatatypeProperty
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#hasSequence"/>
> +    
> +
> +
> +    <!-- 
> +   
> ///////////////////////////////////////////////////////////////////////////////////////
> +    //
> +    // Classes
> +    //
> +   
> ///////////////////////////////////////////////////////////////////////////////////////
> +     -->
> +
> +    
> +
> +
> +    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#KReSRule -->
> +
> +    <owl:Class
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#KReSRule"/>
> +    
> +
> +
> +    <!-- http://kres.iks-project.eu/ontology/meta/rmi.owl#Recipe -->
> +
> +    <owl:Class
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi.owl#Recipe"/>
> +    
> +
> +
> +    <!-- 
> +   
> ///////////////////////////////////////////////////////////////////////////////////////
> +    //
> +    // Individuals
> +    //
> +   
> ///////////////////////////////////////////////////////////////////////////////////////
> +     -->
> +
> +    
> +
> +
> +    <!--
> http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRecipeA -->
> +
> +    <owl:NamedIndividual
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRecipeA">
> +        <rdf:type
> rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi.owl#Recipe"/>
> +        <rmi:hasDescription
> rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Some description
> here</rmi:hasDescription>
> +        <rmi:hasSequence
> rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://eu.iksproject.kres/KReSOntologyRules.owl#MyRuleB,http://eu.iksproject.kres/KReSOntologyRules.owl#MyRuleA</rmi:hasSequence>
> +        <rmi:hasRule
> rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleA"/>
> +        <rmi:endWith
> rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleA"/>
> +        <rmi:hasRule
> rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleB"/>
> +        <rmi:startWith
> rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleB"/>
> +    </owl:NamedIndividual>
> +    
> +
> +
> +    <!-- http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleA
> -->
> +
> +    <owl:NamedIndividual
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleA">
> +        <rdf:type
> rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi.owl#KReSRule"/>
> +        <rmi:hasDescription
> rdf:datatype="http://www.w3.org/2001/XMLSchema#string">An example of
> description for my rule A</rmi:hasDescription>
> +        <rmi:hasBodyAndHead
> rdf:datatype="http://www.w3.org/2001/XMLSchema#string">BodyA -&gt;
> BodyB</rmi:hasBodyAndHead>
> +    </owl:NamedIndividual>
> +    
> +
> +
> +    <!-- http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleB
> -->
> +
> +    <owl:NamedIndividual
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleB">
> +        <rdf:type
> rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi.owl#KReSRule"/>
> +        <rmi:hasDescription
> rdf:datatype="http://www.w3.org/2001/XMLSchema#string">An example of
> description..for my rule B</rmi:hasDescription>
> +        <rmi:hasBodyAndHead
> rdf:datatype="http://www.w3.org/2001/XMLSchema#string">BodyB -&gt;
> HeadB</rmi:hasBodyAndHead>
> +        <sequence:directlyPrecedes
> rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRuleA"/>
> +    </owl:NamedIndividual>
> +    
> +
> +
> +    <!--
> http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRecipe
> -->
> +
> +    <owl:NamedIndividual
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRecipe">
> +        <rdf:type
> rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi.owl#Recipe"/>
> +        <rmi:hasDescription
> rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A single rule
> recipe.</rmi:hasDescription>
> +        <rmi:hasSequence
> rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentRule</rmi:hasSequence>
> +        <rmi:endWith
> rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRule"/>
> +        <rmi:hasRule
> rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRule"/>
> +        <rmi:startWith
> rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRule"/>
> +    </owl:NamedIndividual>
> +    
> +
> +
> +    <!--
> http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRule
> -->
> +
> +    <owl:NamedIndividual
> rdf:about="http://kres.iks-project.eu/ontology/meta/rmi_config.owl#ProvaParentRule">
> +        <rdf:type
> rdf:resource="http://kres.iks-project.eu/ontology/meta/rmi.owl#KReSRule"/>
> +        <rmi:hasDescription
> rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A rule to
> inference if a person has an uncle.</rmi:hasDescription>
> +        <rmi:hasBodyAndHead
> rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ProvaParent =
> &lt;http://www.semanticweb.org/ontologies/2010/6/ProvaParent.owl#&gt; .
> rule1[ has(ProvaParent:hasParent, ?x, ?y) . has(ProvaParent:hasBrother,
> ?y, ?z) -&gt; has(ProvaParent:hasUncle, ?x, ?z) ]</rmi:hasBodyAndHead>
> +    </owl:NamedIndividual>
> +</rdf:RDF>
> +
> +
> +
> +<!-- Generated by the OWL API (version 3.0.0.1413)
> http://owlapi.sourceforge.net -->
> +
> 
> Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/pom.xml
> URL:
> http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/pom.xml?rev=1053689&r1=1053688&r2=1053689&view=diff
> ==============================================================================
> --- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/pom.xml
> (original)
> +++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/pom.xml Wed
> Dec 29 18:04:19 2010
> @@ -7,13 +7,13 @@
>  	<parent>
>  		<groupId>eu.iksproject</groupId>
>  		<artifactId>eu.iksproject.kres.parent</artifactId>
> -               <version>0.6-SNAPSHOT</version>
> +               <version>0.7</version>
>  		<relativePath>../parent/pom.xml</relativePath>
>  	</parent>
>  
>  	<groupId>eu.iksproject</groupId>
>  	<artifactId>eu.iksproject.kres.jersey</artifactId>
> -       <version>0.6-SNAPSHOT</version>
> +       <version>${kres-version}</version>
>  	<packaging>bundle</packaging>
>  
>  	<name>IKS KReS Jersey JAX-RS API and front-end</name>
> @@ -22,7 +22,8 @@
>  	<properties>
>  		<jersey-version>1.1.5.1</jersey-version>
>  		<pax-exam-version>1.2.0</pax-exam-version>
> -               <kres-version>0.6-SNAPSHOT</kres-version>
> +               <kres-version>0.7</kres-version>
> +              
> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>  	</properties>
>  
>  	<dependencies>
> @@ -252,6 +253,12 @@
>              <scope>provided</scope>
>  	    </dependency>
>  		<dependency>
> +                       <groupId>eu.iksproject</groupId>
> +                      
> <artifactId>eu.iksproject.kres.storage.provider</artifactId>
> +                       <version>${kres-version}</version>
> +                       <scope>provided</scope>
> +               </dependency>
> +               <dependency>
>  			<groupId>com.hp.hpl.jena</groupId>
>  			<artifactId>jena</artifactId>
>  			<version>2.6.2</version>
> 
> Modified:
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Recipe.java
> URL:
> http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Recipe.java?rev=1053689&r1=1053688&r2=1053689&view=diff
> ==============================================================================
> ---
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Recipe.java
> (original)
> +++
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Recipe.java
> Wed Dec 29 18:04:19 2010
> @@ -5,19 +5,14 @@
>  
>  package eu.iksproject.kres.jersey.manager;
>  
> -import eu.iksproject.kres.api.rules.RuleStore;
> -import eu.iksproject.kres.jersey.resource.NavigationMixin;
> -import eu.iksproject.kres.rules.manager.KReSAddRecipe;
> -import eu.iksproject.kres.rules.manager.KReSGetRecipe;
> -import eu.iksproject.kres.rules.manager.KReSRemoveRecipe;
> -import eu.iksproject.kres.rules.manager.KReSRuleStore;
> -import eu.iksproject.kres.api.format.KReSFormat;
>  import java.util.HashMap;
> +import java.util.Hashtable;
>  import java.util.Iterator;
>  import java.util.LinkedList;
>  import java.util.List;
>  import java.util.Set;
>  import java.util.Vector;
> +
>  import javax.servlet.ServletContext;
>  import javax.ws.rs.Consumes;
>  import javax.ws.rs.DELETE;
> @@ -33,8 +28,8 @@ import javax.ws.rs.core.Context;
>  import javax.ws.rs.core.MediaType;
>  import javax.ws.rs.core.Response;
>  import javax.ws.rs.core.Response.Status;
> +
>  import org.semanticweb.owlapi.apibinding.OWLManager;
> -import org.semanticweb.owlapi.io.RDFXMLOntologyFormat;
>  import org.semanticweb.owlapi.model.AddImport;
>  import org.semanticweb.owlapi.model.IRI;
>  import org.semanticweb.owlapi.model.OWLDataFactory;
> @@ -45,59 +40,102 @@ import org.semanticweb.owlapi.model.OWLO
>  import org.semanticweb.owlapi.model.OWLOntology;
>  import org.semanticweb.owlapi.model.OWLOntologyChange;
>  import org.semanticweb.owlapi.model.OWLOntologyStorageException;
> +import org.slf4j.Logger;
> +import org.slf4j.LoggerFactory;
>  
> -import com.sun.jersey.api.view.ImplicitProduces;
> +import eu.iksproject.kres.api.format.KReSFormat;
> +import eu.iksproject.kres.api.manager.KReSONManager;
> +import eu.iksproject.kres.api.rules.RuleStore;
> +import eu.iksproject.kres.api.storage.OntologyStoreProvider;
> +import eu.iksproject.kres.jersey.resource.NavigationMixin;
> +import eu.iksproject.kres.manager.ONManager;
> +import eu.iksproject.kres.rules.manager.KReSAddRecipe;
> +import eu.iksproject.kres.rules.manager.KReSGetRecipe;
> +import eu.iksproject.kres.rules.manager.KReSRemoveRecipe;
> +import eu.iksproject.kres.rules.manager.KReSRuleStore;
> +import eu.iksproject.kres.storage.provider.OntologyStorageProviderImpl;
>  
>  /**
>   *
>   * @author elvio
>   */
> -@Path("/recipe")///{uri:.+}")
> +@Path("/recipe")
> +// /{uri:.+}")
>  //@ImplicitProduces(MediaType.TEXT_HTML + ";qs=2")
>  public class Recipe extends NavigationMixin{
>  
> +       protected KReSONManager onm;
> +
> +       private Logger log = LoggerFactory.getLogger(getClass());
> +
>      private RuleStore kresRuleStore;
> +       private OntologyStoreProvider storeProvider;
>  
>     /**
>       * To get the KReSRuleStore where are stored the rules and the
>       recipes
>       *
> -     * @param servletContext {To get the context where the REST service
> is running.}
> +        * @param servletContext
> +        *            {To get the context where the REST service is
> running.}
>       */
>      public Recipe(@Context ServletContext servletContext){
> -       this.kresRuleStore = (RuleStore)
> servletContext.getAttribute(RuleStore.class.getName());
> +               this.kresRuleStore = (RuleStore) servletContext
> +                               .getAttribute(RuleStore.class.getName());
> +               this.onm = (KReSONManager) servletContext
> +                              
> .getAttribute(KReSONManager.class.getName());
> +               this.storeProvider = (OntologyStoreProvider)
> servletContext
> +                              
> .getAttribute(OntologyStoreProvider.class.getName());
> +               // Contingency code for missing components follows.
> +               /*
> +                * FIXME! The following code is required only for the
> tests. This should
> +                * be removed and the test should work without this code.
> +                */
> +               if (storeProvider == null) {
> +                       log
> +                                       .warn("No OntologyStoreProvider
> in servlet context. Instantiating manually...");
> +                       storeProvider = new
> OntologyStorageProviderImpl();
> +               }
> +               if (onm == null) {
> +                       log
> +                                       .warn("No KReSONManager in
> servlet context. Instantiating manually...");
> +                       onm = new
> ONManager(storeProvider.getActiveOntologyStorage(),
> +                                       new Hashtable<String, Object>());
> +               }
>         if (kresRuleStore == null) {
> -           System.err.println("WARNING: KReSRuleStore with stored rules
> and recipes is missing in ServletContext. A new instance has been
> created.");
> -           this.kresRuleStore = new KReSRuleStore("");
> -           System.err.println("PATH TO OWL FILE LOADED:
> "+kresRuleStore.getFilePath());
> -            /*throw new IllegalStateException(
> -                    "KReSRuleStore with stored rules and recipes is
> missing in ServletContext");*/
> +                       log
> +                                       .warn("No KReSRuleStore with
> stored rules and recipes found in servlet context. Instantiating manually
> with default values...");
> +                       this.kresRuleStore = new KReSRuleStore(onm,
> +                                       new Hashtable<String, Object>(),
> "");
> +                       log
> +                                       .debug("PATH TO OWL FILE LOADED:
> "
> +                                                       +
> kresRuleStore.getFilePath());
>          }
>      }
>  
>     /**
> -     * Get a recipe with its rules from the rule base (that is the
> ontology that contains the rules and the recipe).
> +        * Get a recipe with its rules from the rule base (that is the
> ontology that
> +        * contains the rules and the recipe).
>       *
> -     * @param uri {A string contains the IRI full name of the recipe.}
> +        * @param uri
> +        *            {A string contains the IRI full name of the
> recipe.}
>       * @return Return: <br/>
> -     *       200 The recipe is retrieved (import declarations point to
> KReS Services) <br/>
> +        *         200 The recipe is retrieved (import declarations point
> to KReS
> +        *         Services) <br/>
>       *       404 The recipe does not exists in the manager <br/>
>       *       500 Some error occurred 
>       *
>       */
>      @GET
>      @Path("/{uri:.+}")
> -    @Produces(value={KReSFormat.RDF_XML,
> -                                KReSFormat.TURTLE,
> -                                KReSFormat.OWL_XML, 
> -                                KReSFormat.FUNCTIONAL_OWL, 
> -                                KReSFormat.MANCHESTER_OWL,
> -                                KReSFormat.RDF_JSON})
> +       @Produces(value = { KReSFormat.RDF_XML, KReSFormat.TURTLE,
> +                       KReSFormat.OWL_XML, KReSFormat.FUNCTIONAL_OWL,
> +                       KReSFormat.MANCHESTER_OWL, KReSFormat.RDF_JSON })
>      public Response getRecipe(@PathParam("uri") String uri){
>        try{
>  
>         KReSGetRecipe rule = new KReSGetRecipe(kresRuleStore);
>  
> -       //String ID =
> kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
> +                       // String ID =
> +                       //
> kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
>         
>         if(uri.equals("all")){
>  
> @@ -108,32 +146,48 @@ public class Recipe extends NavigationMi
>              return Response.status(Status.NOT_FOUND).build();
>          }else{
>              
> -            //The recipe is retrieved (import declarations point to KReS
> Services)
> +                                       // The recipe is retrieved
> (import declarations point to
> +                                       // KReS Services)
>              OWLOntology onto = kresRuleStore.getOntology();
> -            OWLOntology newmodel =
> OWLManager.createOWLOntologyManager().createOntology(onto.getOntologyID());
> -            OWLDataFactory factory =
> onto.getOWLOntologyManager().getOWLDataFactory();
> +                                       OWLOntology newmodel = OWLManager
> +                                                      
> .createOWLOntologyManager().createOntology(
> +                                                                      
> onto.getOntologyID());
> +                                       OWLDataFactory factory =
> onto.getOWLOntologyManager()
> +                                                      
> .getOWLDataFactory();
>  
> -            Iterator<OWLOntology> importedonto =
> onto.getDirectImports().iterator();
> +                                       Iterator<OWLOntology>
> importedonto = onto
> +                                                      
> .getDirectImports().iterator();
>              List<OWLOntologyChange> additions = new
>              LinkedList<OWLOntologyChange>();
> -            OWLDataFactory auxfactory =
> onto.getOWLOntologyManager().getOWLDataFactory();
> +                                       OWLDataFactory auxfactory =
> onto.getOWLOntologyManager()
> +                                                      
> .getOWLDataFactory();
>  
>              while(importedonto.hasNext()){
>                  OWLOntology auxonto = importedonto.next();
> -                additions.add(new
> AddImport(newmodel,auxfactory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
> +                                               additions.add(new
> AddImport(newmodel, auxfactory
> +                                                              
> .getOWLImportsDeclaration(auxonto
> +                                                                        
>       .getOWLOntologyManager()
> +                                                                        
>       .getOntologyDocumentIRI(auxonto))));
>              }
>  
>              if(!additions.isEmpty())
> -               
> newmodel.getOWLOntologyManager().applyChanges(additions);
> +                                              
> newmodel.getOWLOntologyManager()
> +                                                              
> .applyChanges(additions);
>  
>              for(int i = 0; i<recipe.size(); i++){
> -                OWLNamedIndividual ind =
> factory.getOWLNamedIndividual(recipe.get(i));
> +                                               OWLNamedIndividual ind =
> factory
> +                                                              
> .getOWLNamedIndividual(recipe.get(i));
>                  Set<OWLIndividualAxiom> ax = onto.getAxioms(ind);
> -                newmodel.getOWLOntologyManager().addAxioms(newmodel,ax);
> +                                              
> newmodel.getOWLOntologyManager()
> +                                                              
> .addAxioms(newmodel, ax);
>  
>              }
>              
>              try {
> -              
> OWLManager.createOWLOntologyManager().saveOntology(newmodel,
> newmodel.getOWLOntologyManager().getOntologyFormat(newmodel),
> System.out);
> +                                              
> OWLManager.createOWLOntologyManager().saveOntology(
> +                                                               newmodel,
> +                                                              
> newmodel.getOWLOntologyManager()
> +                                                                        
>       .getOntologyFormat(newmodel),
> +                                                              
> System.out);
>      		} catch (OWLOntologyStorageException e) {
>      			// TODO Auto-generated catch block
>      			e.printStackTrace();
> @@ -150,30 +204,44 @@ public class Recipe extends NavigationMi
>              //The recipe deos not exists in the manager
>              return Response.status(Status.NOT_FOUND).build();
>          }else{
> -            //The recipe is retrieved (import declarations point to KReS
> Services)
> +                                       // The recipe is retrieved
> (import declarations point to
> +                                       // KReS Services)
>              OWLOntology onto = kresRuleStore.getOntology();
>  
> -            OWLDataFactory factory =
> onto.getOWLOntologyManager().getOWLDataFactory();
> -            OWLObjectProperty prop =
> factory.getOWLObjectProperty(IRI.create("http://kres.iks-project.eu/ontology/meta/rmi.owl#hasRule"));
> -            OWLNamedIndividual ind =
> factory.getOWLNamedIndividual(IRI.create(uri));
> -            Set<OWLIndividual> value = ind.getObjectPropertyValues(prop,
> onto);
> +                                       OWLDataFactory factory =
> onto.getOWLOntologyManager()
> +                                                      
> .getOWLDataFactory();
> +                                       OWLObjectProperty prop = factory
> +                                                      
> .getOWLObjectProperty(IRI
> +                                                                      
> .create("http://kres.iks-project.eu/ontology/meta/rmi.owl#hasRule"));
> +                                       OWLNamedIndividual ind =
> factory.getOWLNamedIndividual(IRI
> +                                                       .create(uri));
> +                                       Set<OWLIndividual> value =
> ind.getObjectPropertyValues(
> +                                                       prop, onto);
>              Set<OWLIndividualAxiom> ax = onto.getAxioms(ind);
>              
>              Iterator<OWLIndividual> iter = value.iterator();
>  
> -            OWLOntology newmodel =
> OWLManager.createOWLOntologyManager().createOntology(onto.getOntologyID());
> +                                       OWLOntology newmodel = OWLManager
> +                                                      
> .createOWLOntologyManager().createOntology(
> +                                                                      
> onto.getOntologyID());
>  
> -            Iterator<OWLOntology> importedonto =
> onto.getDirectImports().iterator();
> +                                       Iterator<OWLOntology>
> importedonto = onto
> +                                                      
> .getDirectImports().iterator();
>              List<OWLOntologyChange> additions = new
>              LinkedList<OWLOntologyChange>();
> -            OWLDataFactory auxfactory =
> onto.getOWLOntologyManager().getOWLDataFactory();
> +                                       OWLDataFactory auxfactory =
> onto.getOWLOntologyManager()
> +                                                      
> .getOWLDataFactory();
>  
>              while(importedonto.hasNext()){
>                  OWLOntology auxonto = importedonto.next();
> -                additions.add(new
> AddImport(newmodel,auxfactory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
> +                                               additions.add(new
> AddImport(newmodel, auxfactory
> +                                                              
> .getOWLImportsDeclaration(auxonto
> +                                                                        
>       .getOWLOntologyManager()
> +                                                                        
>       .getOntologyDocumentIRI(auxonto))));
>              }
>  
>              if(!additions.isEmpty())
> -               
> newmodel.getOWLOntologyManager().applyChanges(additions);
> +                                              
> newmodel.getOWLOntologyManager()
> +                                                              
> .applyChanges(additions);
>  
>              newmodel.getOWLOntologyManager().addAxioms(newmodel,ax);
>  
> @@ -182,11 +250,16 @@ public class Recipe extends NavigationMi
>                  ind = (OWLNamedIndividual) iter.next();
>                  ax = onto.getAxioms(ind);
>                
> -                newmodel.getOWLOntologyManager().addAxioms(newmodel,ax);
> +                                              
> newmodel.getOWLOntologyManager()
> +                                                              
> .addAxioms(newmodel, ax);
>              }
>  
>              try {
> -              
> OWLManager.createOWLOntologyManager().saveOntology(newmodel,
> newmodel.getOWLOntologyManager().getOntologyFormat(newmodel),
> System.out);
> +                                              
> OWLManager.createOWLOntologyManager().saveOntology(
> +                                                               newmodel,
> +                                                              
> newmodel.getOWLOntologyManager()
> +                                                                        
>       .getOntologyFormat(newmodel),
> +                                                              
> System.out);
>      		} catch (OWLOntologyStorageException e) {
>      			// TODO Auto-generated catch block
>      			e.printStackTrace();
> @@ -204,8 +277,11 @@ public class Recipe extends NavigationMi
>  
>     /**
>       * To add a recipe without rules.
> -     * @param recipe {A string contains the IRI of the recipe to be
> added}
> -     * @param description {A string contains a description of the rule}
> +        * 
> +        * @param recipe
> +        *            {A string contains the IRI of the recipe to be
> added}
> +        * @param description
> +        *            {A string contains a description of the rule}
>       * @return Return: <br/>
>       *      200 The recipe has been added<br/>
>       *      409 The recipe has not been added<br/>
> @@ -213,21 +289,21 @@ public class Recipe extends NavigationMi
>       */
>      @POST
>      @Consumes(MediaType.MULTIPART_FORM_DATA)
> -    @Produces(value={KReSFormat.RDF_XML,
> -                                KReSFormat.TURTLE,
> -                                KReSFormat.OWL_XML,
> -                                KReSFormat.FUNCTIONAL_OWL,
> -                                KReSFormat.MANCHESTER_OWL,
> -                                KReSFormat.RDF_JSON})
> -    public Response addRecipe(@FormParam(value="recipe") String
> recipe,@FormParam(value="description") String description){
> +       @Produces(value = { KReSFormat.RDF_XML, KReSFormat.TURTLE,
> +                       KReSFormat.OWL_XML, KReSFormat.FUNCTIONAL_OWL,
> +                       KReSFormat.MANCHESTER_OWL, KReSFormat.RDF_JSON })
> +       public Response addRecipe(@FormParam(value = "recipe") String
> recipe,
> +                       @FormParam(value = "description") String
> description) {
>  
>          try{
>  
>              KReSAddRecipe instance = new KReSAddRecipe(kresRuleStore);
>  
> -            //String ID =
> kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
> +                       // String ID =
> +                       //
> kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
>  
> -            boolean ok = instance.addSimpleRecipe(IRI.create(recipe),
> description);
> +                       boolean ok =
> instance.addSimpleRecipe(IRI.create(recipe),
> +                                       description);
>                  
>                  if(!ok){
>  
> @@ -245,9 +321,10 @@ public class Recipe extends NavigationMi
>  
>     /**
>       * To delete a recipe
> -     * @param recipe {A tring contains an IRI of the recipe}
> -     * @return
> -     *      200 The recipe has been deleted<br/>
> +        * 
> +        * @param recipe
> +        *            {A tring contains an IRI of the recipe}
> +        * @return 200 The recipe has been deleted<br/>
>       *      409 The recipe has not been deleted<br/>
>       *      500 Some error occurred
>       */
> @@ -260,7 +337,8 @@ public class Recipe extends NavigationMi
>              
>              KReSRemoveRecipe instance = new
>              KReSRemoveRecipe(kresRuleStore);
>  
> -            //String ID =
> kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
> +                       // String ID =
> +                       //
> kresRuleStore.getOntology().getOntologyID().toString().replace(">","").replace("<","")+"#";
>  
>              boolean ok = instance.removeRecipe(IRI.create(recipe));
>              
> 
> Modified:
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Rule.java
> URL:
> http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Rule.java?rev=1053689&r1=1053688&r2=1053689&view=diff
> ==============================================================================
> ---
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Rule.java
> (original)
> +++
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/manager/Rule.java
> Wed Dec 29 18:04:19 2010
> @@ -5,27 +5,16 @@
>  
>  package eu.iksproject.kres.jersey.manager;
>  
> -import eu.iksproject.kres.api.rules.RuleStore;
> -import eu.iksproject.kres.jersey.resource.NavigationMixin;
> -import eu.iksproject.kres.rules.manager.KReSAddRecipe;
> -import eu.iksproject.kres.rules.manager.KReSAddRule;
> -import eu.iksproject.kres.rules.manager.KReSGetRecipe;
> -import eu.iksproject.kres.rules.manager.KReSGetRule;
> -import eu.iksproject.kres.rules.manager.KReSRemoveRecipe;
> -import eu.iksproject.kres.rules.manager.KReSRemoveRule;
> -import eu.iksproject.kres.rules.manager.KReSRuleStore;
> -import eu.iksproject.kres.api.format.KReSFormat;
> -
>  import java.io.UnsupportedEncodingException;
>  import java.net.URLEncoder;
> -import java.util.ArrayList;
> -import java.util.Collection;
>  import java.util.HashMap;
> +import java.util.Hashtable;
>  import java.util.Iterator;
>  import java.util.LinkedList;
>  import java.util.List;
>  import java.util.Set;
>  import java.util.Vector;
> +
>  import javax.servlet.ServletContext;
>  import javax.ws.rs.Consumes;
>  import javax.ws.rs.DELETE;
> @@ -42,24 +31,32 @@ import javax.ws.rs.core.MediaType;
>  import javax.ws.rs.core.Response;
>  import javax.ws.rs.core.Response.Status;
>  
> -import org.codehaus.jettison.json.JSONArray;
>  import org.semanticweb.owlapi.apibinding.OWLManager;
> -import org.semanticweb.owlapi.io.RDFXMLOntologyFormat;
> -import org.semanticweb.owlapi.model.AddAxiom;
>  import org.semanticweb.owlapi.model.AddImport;
>  import org.semanticweb.owlapi.model.IRI;
> -import org.semanticweb.owlapi.model.OWLAxiom;
>  import org.semanticweb.owlapi.model.OWLDataFactory;
> -import org.semanticweb.owlapi.model.OWLIndividual;
>  import org.semanticweb.owlapi.model.OWLIndividualAxiom;
>  import org.semanticweb.owlapi.model.OWLNamedIndividual;
> -import org.semanticweb.owlapi.model.OWLObjectProperty;
> -import org.semanticweb.owlapi.model.OWLObjectPropertyAssertionAxiom;
>  import org.semanticweb.owlapi.model.OWLOntology;
>  import org.semanticweb.owlapi.model.OWLOntologyChange;
> -import org.semanticweb.owlapi.model.OWLOntologyCreationException;
> -import org.semanticweb.owlapi.model.OWLOntologyManager;
>  import org.semanticweb.owlapi.model.OWLOntologyStorageException;
> +import org.slf4j.Logger;
> +import org.slf4j.LoggerFactory;
> +
> +import eu.iksproject.kres.api.format.KReSFormat;
> +import eu.iksproject.kres.api.manager.KReSONManager;
> +import eu.iksproject.kres.api.rules.RuleStore;
> +import eu.iksproject.kres.api.storage.OntologyStoreProvider;
> +import eu.iksproject.kres.jersey.resource.NavigationMixin;
> +import eu.iksproject.kres.manager.ONManager;
> +import eu.iksproject.kres.rules.manager.KReSAddRecipe;
> +import eu.iksproject.kres.rules.manager.KReSAddRule;
> +import eu.iksproject.kres.rules.manager.KReSGetRecipe;
> +import eu.iksproject.kres.rules.manager.KReSGetRule;
> +import eu.iksproject.kres.rules.manager.KReSRemoveRecipe;
> +import eu.iksproject.kres.rules.manager.KReSRemoveRule;
> +import eu.iksproject.kres.rules.manager.KReSRuleStore;
> +import eu.iksproject.kres.storage.provider.OntologyStorageProviderImpl;
>  
>  /**
>   *
> @@ -70,40 +67,74 @@ import org.semanticweb.owlapi.model.OWLO
>  @Path("/rule")
>  public class Rule extends NavigationMixin{
>  
> -    private static RuleStore kresRuleStore;
> +       protected KReSONManager onm;
> +       protected OntologyStoreProvider storeProvider;
> +
> +       private Logger log = LoggerFactory.getLogger(getClass());
> +
> +       private RuleStore kresRuleStore;
>      private HashMap<IRI, String> map;
>      private String desc;
>  
>     /**
>       * To get the KReSRuleStore where are stored the rules and the
>       recipes
>       *
> -     * @param servletContext {To get the context where the REST service
> is running.}
> +        * @param servletContext
> +        *            {To get the context where the REST service is
> running.}
>       */
>      public Rule(@Context ServletContext servletContext){
> -       this.kresRuleStore = (RuleStore)
> servletContext.getAttribute(RuleStore.class.getName());
> -       
> +               this.kresRuleStore = (RuleStore) servletContext
> +                               .getAttribute(RuleStore.class.getName());
> +               this.onm = (KReSONManager) servletContext
> +                              
> .getAttribute(KReSONManager.class.getName());
> +               this.storeProvider = (OntologyStoreProvider)
> servletContext
> +                              
> .getAttribute(OntologyStoreProvider.class.getName());
> +               // Contingency code for missing components follows.
> +               /*
> +                * FIXME! The following code is required only for the
> tests. This should
> +                * be removed and the test should work without this code.
> +                */
> +               if (storeProvider == null) {
> +                       log
> +                                       .warn("No OntologyStoreProvider
> in servlet context. Instantiating manually...");
> +                       storeProvider = new
> OntologyStorageProviderImpl();
> +               }
> +               if (onm == null) {
> +                       log
> +                                       .warn("No KReSONManager in
> servlet context. Instantiating manually...");
> +                       onm = new
> ONManager(storeProvider.getActiveOntologyStorage(),
> +                                       new Hashtable<String, Object>());
> +               }
>         if (kresRuleStore == null) {
> -           System.err.println("WARNING: KReSRuleStore with stored rules
> and recipes is missing in ServletContext. A new instance has been
> created.");
> -           this.kresRuleStore = new KReSRuleStore("");
> -           System.err.println("PATH TO OWL FILE LOADED:
> "+kresRuleStore.getFilePath());
> -            /*throw new IllegalStateException(
> -                    "KReSRuleStore with stored rules and recipes is
> missing in ServletContext");*/
> +                       log
> +                                       .warn("No KReSRuleStore with
> stored rules and recipes found in servlet context. Instantiating manually
> with default values...");
> +                       this.kresRuleStore = new KReSRuleStore(onm,
> +                                       new Hashtable<String, Object>(),
> "");
> +                       log
> +                                       .debug("PATH TO OWL FILE LOADED:
> "
> +                                                       +
> kresRuleStore.getFilePath());
>          }
>      }
>  
>     /**
> -     * Get a rule from the rule base (that is the ontology that contains
> the rules and the recipe).
> -     * curl -v -X GET
> http://localhost:8080/kres/rule/http://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentRule
> -     * @param uri {A string contains the IRI full name of the rule.}
> +        * Get a rule from the rule base (that is the ontology that
> contains the
> +        * rules and the recipe). curl -v -X GET
> +        * http://localhost:8080/kres/rule/http
> +        * ://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentRule
> +        * 
> +        * @param uri
> +        *            {A string contains the IRI full name of the rule.}
>       * @return Return: <br/>
> -     *       200 The rule is retrieved (import declarations point to
> KReS Services) <br/>
> +        *         200 The rule is retrieved (import declarations point
> to KReS
> +        *         Services) <br/>
>       *       404 The rule does not exists in the manager <br/>
>       *       500 Some error occurred
>       *
>       */
>      @GET
>      @Path("/{uri:.+}")
> -   
> @Produces(value={KReSFormat.RDF_XML,KReSFormat.TURTLE,KReSFormat.OWL_XML})
> +       @Produces(value = { KReSFormat.RDF_XML, KReSFormat.TURTLE,
> +                       KReSFormat.OWL_XML })
>      public Response getRule(@PathParam("uri") String uri){
>   
>        try{
> @@ -119,29 +150,44 @@ public class Rule extends NavigationMixi
>          }else{
>  
>              OWLOntology onto = kresRuleStore.getOntology();
> -            OWLOntology newmodel =
> OWLManager.createOWLOntologyManager().createOntology(onto.getOntologyID());
> -            OWLDataFactory factory =
> onto.getOWLOntologyManager().getOWLDataFactory();
> +                                       OWLOntology newmodel = OWLManager
> +                                                      
> .createOWLOntologyManager().createOntology(
> +                                                                      
> onto.getOntologyID());
> +                                       OWLDataFactory factory =
> onto.getOWLOntologyManager()
> +                                                      
> .getOWLDataFactory();
>  
> -            Iterator<OWLOntology> importedonto =
> onto.getDirectImports().iterator();
> +                                       Iterator<OWLOntology>
> importedonto = onto
> +                                                      
> .getDirectImports().iterator();
>              List<OWLOntologyChange> additions = new
>              LinkedList<OWLOntologyChange>();
> -            OWLDataFactory auxfactory =
> onto.getOWLOntologyManager().getOWLDataFactory();
> +                                       OWLDataFactory auxfactory =
> onto.getOWLOntologyManager()
> +                                                      
> .getOWLDataFactory();
>  
>              while(importedonto.hasNext()){
>                  OWLOntology auxonto = importedonto.next();
> -                additions.add(new
> AddImport(newmodel,auxfactory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
> +                                               additions.add(new
> AddImport(newmodel, auxfactory
> +                                                              
> .getOWLImportsDeclaration(auxonto
> +                                                                        
>       .getOWLOntologyManager()
> +                                                                        
>       .getOntologyDocumentIRI(auxonto))));
>              }
>  
>              if(!additions.isEmpty())
> -               
> newmodel.getOWLOntologyManager().applyChanges(additions);
> +                                              
> newmodel.getOWLOntologyManager()
> +                                                              
> .applyChanges(additions);
>  
>              while(keys.hasNext()){
> -                OWLNamedIndividual ind =
> factory.getOWLNamedIndividual(keys.next());
> +                                               OWLNamedIndividual ind =
> factory
> +                                                              
> .getOWLNamedIndividual(keys.next());
>                  Set<OWLIndividualAxiom> ax = onto.getAxioms(ind);
> -                newmodel.getOWLOntologyManager().addAxioms(newmodel,ax);
> +                                              
> newmodel.getOWLOntologyManager()
> +                                                              
> .addAxioms(newmodel, ax);
>              }
>  
>              try {
> -              
> OWLManager.createOWLOntologyManager().saveOntology(newmodel,
> newmodel.getOWLOntologyManager().getOntologyFormat(newmodel),
> System.out);
> +                                              
> OWLManager.createOWLOntologyManager().saveOntology(
> +                                                               newmodel,
> +                                                              
> newmodel.getOWLOntologyManager()
> +                                                                        
>       .getOntologyFormat(newmodel),
> +                                                              
> System.out);
>      		} catch (OWLOntologyStorageException e) {
>      			// TODO Auto-generated catch block
>      			e.printStackTrace();
> @@ -159,27 +205,41 @@ public class Rule extends NavigationMixi
>          }else{
>              OWLOntology onto = kresRuleStore.getOntology();
>  
> -            OWLDataFactory factory =
> onto.getOWLOntologyManager().getOWLDataFactory();
> -            OWLNamedIndividual ind =
> factory.getOWLNamedIndividual(IRI.create(uri));
> +                                       OWLDataFactory factory =
> onto.getOWLOntologyManager()
> +                                                      
> .getOWLDataFactory();
> +                                       OWLNamedIndividual ind =
> factory.getOWLNamedIndividual(IRI
> +                                                       .create(uri));
>              Set<OWLIndividualAxiom> ax = onto.getAxioms(ind);
> -            OWLOntology newmodel =
> OWLManager.createOWLOntologyManager().createOntology(onto.getOntologyID());
> +                                       OWLOntology newmodel = OWLManager
> +                                                      
> .createOWLOntologyManager().createOntology(
> +                                                                      
> onto.getOntologyID());
>  
> -            Iterator<OWLOntology> importedonto =
> onto.getDirectImports().iterator();
> +                                       Iterator<OWLOntology>
> importedonto = onto
> +                                                      
> .getDirectImports().iterator();
>              List<OWLOntologyChange> additions = new
>              LinkedList<OWLOntologyChange>();
> -            OWLDataFactory auxfactory =
> onto.getOWLOntologyManager().getOWLDataFactory();
> +                                       OWLDataFactory auxfactory =
> onto.getOWLOntologyManager()
> +                                                      
> .getOWLDataFactory();
>  
>              while(importedonto.hasNext()){
>                  OWLOntology auxonto = importedonto.next();
> -                additions.add(new
> AddImport(newmodel,auxfactory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
> +                                               additions.add(new
> AddImport(newmodel, auxfactory
> +                                                              
> .getOWLImportsDeclaration(auxonto
> +                                                                        
>       .getOWLOntologyManager()
> +                                                                        
>       .getOntologyDocumentIRI(auxonto))));
>              }
>  
>              if(!additions.isEmpty())
> -               
> newmodel.getOWLOntologyManager().applyChanges(additions);
> +                                              
> newmodel.getOWLOntologyManager()
> +                                                              
> .applyChanges(additions);
>  
>              newmodel.getOWLOntologyManager().addAxioms(newmodel,ax);
>  
>              try {
> -              
> OWLManager.createOWLOntologyManager().saveOntology(newmodel,
> newmodel.getOWLOntologyManager().getOntologyFormat(newmodel),
> System.out);
> +                                              
> OWLManager.createOWLOntologyManager().saveOntology(
> +                                                               newmodel,
> +                                                              
> newmodel.getOWLOntologyManager()
> +                                                                        
>       .getOntologyFormat(newmodel),
> +                                                              
> System.out);
>      		} catch (OWLOntologyStorageException e) {
>      			// TODO Auto-generated catch block
>      			e.printStackTrace();
> @@ -197,15 +257,16 @@ public class Rule extends NavigationMixi
>      
>      @GET
>      @Path("/of-recipe/{uri:.+}")
> -    @Produces(value={KReSFormat.RDF_XML,
> -                                KReSFormat.RDF_JSON})
> -    
> +       @Produces(value = { KReSFormat.RDF_XML, KReSFormat.RDF_JSON })
>      public Response getRulesOfRecipe(@PathParam("uri") String
>      recipeURI){
>      	
>      	KReSGetRule kReSGetRule = new KReSGetRule(kresRuleStore);
>      	String recipeURIEnc;
>  		try {
> -                       recipeURIEnc =
> URLEncoder.encode("http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRecipeA",
> "UTF-8");
> +                       recipeURIEnc = URLEncoder
> +                                       .encode(
> +                                                      
> "http://kres.iks-project.eu/ontology/meta/rmi_config.owl#MyRecipeA",
> +                                                       "UTF-8");
>  			System.out.println("RECIPE : "+recipeURIEnc);
>  		} catch (UnsupportedEncodingException e) {
>  			// TODO Auto-generated catch block
> @@ -213,19 +274,32 @@ public class Rule extends NavigationMixi
>  		}
>      	
>      	System.out.println("RECIPE IRI : "+IRI.create(recipeURI).toString());
> -       OWLOntology ontology =
> kReSGetRule.getAllRulesOfARecipe(IRI.create(recipeURI));
> +               OWLOntology ontology =
> kReSGetRule.getAllRulesOfARecipe(IRI
> +                               .create(recipeURI));
>  		
>      	return Response.ok(ontology).build();
>  			
> -               
>      }
> +
>     /**
> -     * To add a rule to a recipe at the end of the sequence.
> -     * curl -v -X POST -F
> "recipe=http://kres.iks-project.eu/ontology/meta/rmi.owl%23ProvaParentRecipe"
> -F "rule=http://kres.iks-project.eu/ontology/meta/rmi.owl%23ProvaRuleNEW"
> -F "kres-syntax=body -> head" -F "description=prova di aggiunta regola"
> http://localhost:8080/kres/rule
> -     * @param recipe {A string contains the IRI of the recipe where to
> add the rule}
> -     * @param rule {A string contains the IRI of the rule to be added at
> the recipe}
> -     * @param kres_syntax {A string contains the body and the head of
> the kres rule. If not specified the rule is search in the Ontology
> otherwise is added as new.}
> -     * @param description {A string contains a description of the rule}
> +        * To add a rule to a recipe at the end of the sequence. curl -v
> -X POST -F
> +        *
> "recipe=http://kres.iks-project.eu/ontology/meta/rmi.owl%23ProvaParentRecipe"
> +        * -F
> "rule=http://kres.iks-project.eu/ontology/meta/rmi.owl%23ProvaRuleNEW"
> +        * -F "kres-syntax=body -> head" -F "description=prova di
> aggiunta regola"
> +        * http://localhost:8080/kres/rule
> +        * 
> +        * @param recipe
> +        *            {A string contains the IRI of the recipe where to
> add the
> +        *            rule}
> +        * @param rule
> +        *            {A string contains the IRI of the rule to be added
> at the
> +        *            recipe}
> +        * @param kres_syntax
> +        *            {A string contains the body and the head of the
> kres rule. If
> +        *            not specified the rule is search in the Ontology
> otherwise is
> +        *            added as new.}
> +        * @param description
> +        *            {A string contains a description of the rule}
>       * @return Return: <br/>
>       *      200 The rule has been added <br/>
>       *      204 The rule has not been added <br/>
> @@ -236,7 +310,10 @@ public class Rule extends NavigationMixi
>       */
>      @POST
>      @Consumes(MediaType.MULTIPART_FORM_DATA)
> -    public Response addRuleToRecipe(@FormParam(value="recipe") String
> recipe,@FormParam(value="rule") String
> rule,@FormParam(value="kres-syntax") String
> kres_syntax,@FormParam(value="description") String description){
> +       public Response addRuleToRecipe(@FormParam(value = "recipe")
> String recipe,
> +                       @FormParam(value = "rule") String rule,
> +                       @FormParam(value = "kres-syntax") String
> kres_syntax,
> +                       @FormParam(value = "description") String
> description) {
>      
>  //        System.err.println("recipe "+recipe);
>  //        System.err.println("rule " + rule);
> @@ -306,7 +383,8 @@ public class Rule extends NavigationMixi
>           if((kres_syntax!=null)&(description!=null)){
>              //Get the rule
>              KReSAddRule inrule = new KReSAddRule(kresRuleStore);
> -            boolean ok =
> inrule.addRule(IRI.create(rule),kres_syntax,description);
> +                               boolean ok =
> inrule.addRule(IRI.create(rule), kres_syntax,
> +                                               description);
>              if(!ok){
>                  System.err.println("PROBLEM TO ADD: "+rule);
>                  return Response.status(Status.CONFLICT).build();
> @@ -341,7 +419,6 @@ public class Rule extends NavigationMixi
>                  return Response.status(Status.CONFLICT).build();
>              }
>  
> -            
>              //Add the recipe with the new rule
>              KReSAddRecipe newadd = new KReSAddRecipe(kresRuleStore);
>              ok = newadd.addRecipe(IRI.create(recipe), ruleseq, desc);
> @@ -361,14 +438,17 @@ public class Rule extends NavigationMixi
>      }
>  
>     /**
> -     * To delete a rule from a recipe or from the ontology. If the
> recipe is not specified the rule is deleted from the ontology.
> -     * curl -v -X DELETE -G \
> -     * -d
> recipe="http://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentRecipe"
> \
> -     * -d
> rule="http://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentNewRule"
> \
> +        * To delete a rule from a recipe or from the ontology. If the
> recipe is not
> +        * specified the rule is deleted from the ontology. curl -v -X
> DELETE -G \
> +        * -d recipe=
> +        *
> "http://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentRecipe" \ -d
> +        * rule
> +        *
> ="http://kres.iks-project.eu/ontology/meta/rmi.owl#ProvaParentNewRule" \
>       * http://localhost:port/kres/rule
>      *
>       * @Param rule {A string contains an IRI of the rule to be removed}
> -     * @param recipe {A string contains an IRI of the recipe where
> remove the rule}
> +        * @param recipe
> +        *            {A string contains an IRI of the recipe where
> remove the rule}
>       * @return Return: <br/>
>       *      200 The rule has been deleted<br/>
>       *      204 The rule has not been deleted<br/>
> @@ -379,7 +459,8 @@ public class Rule extends NavigationMixi
>      @DELETE
>      //@Consumes(MediaType.TEXT_PLAIN)
>      @Produces(KReSFormat.TEXT_PLAIN)
> -    public Response removeRule(@QueryParam(value="rule") String
> rule,@QueryParam(value="recipe") String recipe){
> +       public Response removeRule(@QueryParam(value = "rule") String
> rule,
> +                       @QueryParam(value = "recipe") String recipe) {
>  
>          boolean ok;
>  
> @@ -408,7 +489,8 @@ public class Rule extends NavigationMixi
>              }
>              
>              KReSRemoveRule remove = new KReSRemoveRule(kresRuleStore);
> -            ok =
> remove.removeRuleFromRecipe(IRI.create(rule),IRI.create(recipe));
> +                               ok =
> remove.removeRuleFromRecipe(IRI.create(rule), IRI
> +                                               .create(recipe));
>              if(ok){
>                  kresRuleStore.saveOntology();
>                  return Response.status(Status.OK).build();
> 
> Modified:
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/Classify.java
> URL:
> http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/Classify.java?rev=1053689&r1=1053688&r2=1053689&view=diff
> ==============================================================================
> ---
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/Classify.java
> (original)
> +++
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/Classify.java
> Wed Dec 29 18:04:19 2010
> @@ -5,31 +5,14 @@
>  
>  package eu.iksproject.kres.jersey.reasoners;
>  
> -import com.hp.hpl.jena.rdf.model.Model;
> -import com.hp.hpl.jena.rdf.model.ModelFactory;
> -import com.hp.hpl.jena.rdf.model.Resource;
> -import eu.iksproject.kres.api.format.KReSFormat;
> -import eu.iksproject.kres.api.manager.ontology.OntologyScope;
> -import eu.iksproject.kres.api.manager.ontology.OntologySpace;
> -import eu.iksproject.kres.api.manager.ontology.ScopeRegistry;
> -import eu.iksproject.kres.api.manager.ontology.SessionOntologySpace;
> -import eu.iksproject.kres.api.rules.KReSRule;
> -import eu.iksproject.kres.api.rules.NoSuchRecipeException;
> -import eu.iksproject.kres.api.rules.RuleStore;
> -import eu.iksproject.kres.api.rules.util.KReSRuleList;
> -import eu.iksproject.kres.manager.ONManager;
> -import eu.iksproject.kres.reasoners.KReSCreateReasoner;
> -import eu.iksproject.kres.reasoners.KReSRunReasoner;
> -import eu.iksproject.kres.reasoners.KReSRunRules;
> -import eu.iksproject.kres.rules.KReSKB;
> -import eu.iksproject.kres.rules.manager.KReSRuleStore;
> -import eu.iksproject.kres.rules.parser.KReSRuleParser;
>  import java.io.File;
>  import java.net.URL;
> +import java.util.Hashtable;
>  import java.util.Iterator;
>  import java.util.LinkedList;
>  import java.util.List;
>  import java.util.Set;
> +
>  import javax.servlet.ServletContext;
>  import javax.ws.rs.Consumes;
>  import javax.ws.rs.FormParam;
> @@ -41,6 +24,7 @@ import javax.ws.rs.core.Context;
>  import javax.ws.rs.core.MediaType;
>  import javax.ws.rs.core.Response;
>  import javax.ws.rs.core.Response.Status;
> +
>  import org.semanticweb.owlapi.apibinding.OWLManager;
>  import org.semanticweb.owlapi.model.AddImport;
>  import org.semanticweb.owlapi.model.IRI;
> @@ -55,7 +39,32 @@ import org.semanticweb.owlapi.model.OWLO
>  import org.semanticweb.owlapi.model.OWLOntologyChange;
>  import org.semanticweb.owlapi.model.OWLOntologyManager;
>  import org.semanticweb.owlapi.reasoner.InconsistentOntologyException;
> +import org.slf4j.Logger;
> +import org.slf4j.LoggerFactory;
>  
> +import com.hp.hpl.jena.rdf.model.Model;
> +import com.hp.hpl.jena.rdf.model.ModelFactory;
> +import com.hp.hpl.jena.rdf.model.Resource;
> +
> +import eu.iksproject.kres.api.format.KReSFormat;
> +import eu.iksproject.kres.api.manager.KReSONManager;
> +import eu.iksproject.kres.api.manager.ontology.OntologyScope;
> +import eu.iksproject.kres.api.manager.ontology.OntologySpace;
> +import eu.iksproject.kres.api.manager.ontology.ScopeRegistry;
> +import eu.iksproject.kres.api.manager.ontology.SessionOntologySpace;
> +import eu.iksproject.kres.api.rules.KReSRule;
> +import eu.iksproject.kres.api.rules.NoSuchRecipeException;
> +import eu.iksproject.kres.api.rules.RuleStore;
> +import eu.iksproject.kres.api.rules.util.KReSRuleList;
> +import eu.iksproject.kres.api.storage.OntologyStoreProvider;
> +import eu.iksproject.kres.manager.ONManager;
> +import eu.iksproject.kres.reasoners.KReSCreateReasoner;
> +import eu.iksproject.kres.reasoners.KReSRunReasoner;
> +import eu.iksproject.kres.reasoners.KReSRunRules;
> +import eu.iksproject.kres.rules.KReSKB;
> +import eu.iksproject.kres.rules.manager.KReSRuleStore;
> +import eu.iksproject.kres.rules.parser.KReSRuleParser;
> +import eu.iksproject.kres.storage.provider.OntologyStorageProviderImpl;
>  
>  /**
>   *
> @@ -68,49 +77,94 @@ public class Classify {
>       private OWLOntology inputowl;
>       private OWLOntology scopeowl;
>  
> +       protected KReSONManager onm;
> +       protected OntologyStoreProvider storeProvider;
> +
> +       private Logger log = LoggerFactory.getLogger(getClass());
> +
>      /**
>       * To get the KReSRuleStore where are stored the rules and the
>       recipes
>       *
> -     * @param servletContext {To get the context where the REST service
> is running.}
> +        * @param servletContext
> +        *            {To get the context where the REST service is
> running.}
>       */
>      public Classify(@Context ServletContext servletContext){
> -       this.kresRuleStore = (RuleStore)
> servletContext.getAttribute(RuleStore.class.getName());
> +               this.kresRuleStore = (RuleStore) servletContext
> +                               .getAttribute(RuleStore.class.getName());
> +               this.onm = (KReSONManager) servletContext
> +                              
> .getAttribute(KReSONManager.class.getName());
> +               this.storeProvider = (OntologyStoreProvider)
> servletContext
> +                              
> .getAttribute(OntologyStoreProvider.class.getName());
> +               // Contingency code for missing components follows.
> +               /*
> +                * FIXME! The following code is required only for the
> tests. This should
> +                * be removed and the test should work without this code.
> +                */
> +               if (storeProvider == null) {
> +                       log
> +                                       .warn("No OntologyStoreProvider
> in servlet context. Instantiating manually...");
> +                       storeProvider = new
> OntologyStorageProviderImpl();
> +               }
> +               if (onm == null) {
> +                       log
> +                                       .warn("No KReSONManager in
> servlet context. Instantiating manually...");
> +                       onm = new
> ONManager(storeProvider.getActiveOntologyStorage(),
> +                                       new Hashtable<String, Object>());
> +               }
>         if (kresRuleStore == null) {
> -            System.err.println("WARNING: KReSRuleStore with stored rules
> and recipes is missing in ServletContext. A new instance has been
> created.");
> -            this.kresRuleStore = new KReSRuleStore("");
> -            System.err.println("PATH TO OWL FILE LOADED:
> "+kresRuleStore.getFilePath());
> -//            throw new IllegalStateException(
> -//                    "KReSRuleStore with stored rules and recipes is
> missing in ServletContext");
> +                       log
> +                                       .warn("No KReSRuleStore with
> stored rules and recipes found in servlet context. Instantiating manually
> with default values...");
> +                       this.kresRuleStore = new KReSRuleStore(onm,
> +                                       new Hashtable<String, Object>(),
> "");
> +                       log
> +                                       .debug("PATH TO OWL FILE LOADED:
> "
> +                                                       +
> kresRuleStore.getFilePath());
>          }
>      }
>  
>       /**
>       * To trasform a sequence of rules to a Jena Model
> -     * @param owl {OWLOntology object contains a single recipe}
> +        * 
> +        * @param owl
> +        *            {OWLOntology object contains a single recipe}
>       * @return {A jena rdf model contains the SWRL rule.}
>       */
> -    private Model fromRecipeToModel(OWLOntology owl) throws
> NoSuchRecipeException{
> +       private Model fromRecipeToModel(OWLOntology owl)
> +                       throws NoSuchRecipeException {
>  
> -        RuleStore store = new KReSRuleStore(owl);
> +               // FIXME: why the heck is this method re-instantiating a
> rule store?!?
> +               RuleStore store = new KReSRuleStore(onm,
> +                               new Hashtable<String, Object>(), owl);
>          Model jenamodel = ModelFactory.createDefaultModel();
>  
> -        OWLDataFactory factory =
> owl.getOWLOntologyManager().getOWLDataFactory();
> -        OWLClass ontocls =
> factory.getOWLClass(IRI.create("http://kres.iks-project.eu/ontology/meta/rmi.owl#Recipe"));
> +               OWLDataFactory factory = owl.getOWLOntologyManager()
> +                               .getOWLDataFactory();
> +               OWLClass ontocls = factory
> +                               .getOWLClass(IRI
> +                                              
> .create("http://kres.iks-project.eu/ontology/meta/rmi.owl#Recipe"));
>          Set<OWLClassAssertionAxiom> cls =
>          owl.getClassAssertionAxioms(ontocls);
>          Iterator<OWLClassAssertionAxiom> iter = cls.iterator();
>          IRI recipeiri =
>          IRI.create(iter.next().getIndividual().toStringID());
>  
> -       OWLIndividual recipeIndividual =
> factory.getOWLNamedIndividual(recipeiri);
> +               OWLIndividual recipeIndividual = factory
> +                               .getOWLNamedIndividual(recipeiri);
>  
> -       OWLObjectProperty objectProperty =
> factory.getOWLObjectProperty(IRI.create("http://kres.iks-project.eu/ontology/meta/rmi.owl#hasRule"));
> -       Set<OWLIndividual> rules =
> recipeIndividual.getObjectPropertyValues(objectProperty,
> store.getOntology());
> +               OWLObjectProperty objectProperty = factory
> +                               .getOWLObjectProperty(IRI
> +                                              
> .create("http://kres.iks-project.eu/ontology/meta/rmi.owl#hasRule"));
> +               Set<OWLIndividual> rules =
> recipeIndividual.getObjectPropertyValues(
> +                               objectProperty, store.getOntology());
>          String kReSRules = "";
>          for(OWLIndividual rule : rules){
> -                       OWLDataProperty hasBodyAndHead =
> factory.getOWLDataProperty(IRI.create("http://kres.iks-project.eu/ontology/meta/rmi.owl#hasBodyAndHead"));
> -                       Set<OWLLiteral> kReSRuleLiterals =
> rule.getDataPropertyValues(hasBodyAndHead, store.getOntology());
> +                       OWLDataProperty hasBodyAndHead = factory
> +                                       .getOWLDataProperty(IRI
> +                                                      
> .create("http://kres.iks-project.eu/ontology/meta/rmi.owl#hasBodyAndHead"));
> +                       Set<OWLLiteral> kReSRuleLiterals =
> rule.getDataPropertyValues(
> +                                       hasBodyAndHead,
> store.getOntology());
>  
>  			for(OWLLiteral kReSRuleLiteral : kReSRuleLiterals){
> -                               kReSRules += kReSRuleLiteral.getLiteral()
> + System.getProperty("line.separator");
> +                               kReSRules += kReSRuleLiteral.getLiteral()
> +                                               +
> System.getProperty("line.separator");
>  			}
>  		}
>  
> @@ -128,13 +182,24 @@ public class Classify {
>      }
>  
>     /**
> -     * To run a classifying reasoner on a RDF input File or IRI on the
> base of a Scope (or an ontology) and a recipe. Can be used either HermiT
> or an owl-link server reasoner end-point
> -     * @param session {A string contains the session IRI used to
> classify the input.}
> -     * @param scope {A string contains either a specific scope's
> ontology or the scope IRI used to classify the input.}
> -     * @param recipe {A string contains the recipe IRI from the service
> http://localhost:port/kres/recipe/recipeName.}
> +        * To run a classifying reasoner on a RDF input File or IRI on
> the base of a
> +        * Scope (or an ontology) and a recipe. Can be used either HermiT
> or an
> +        * owl-link server reasoner end-point
> +        * 
> +        * @param session
> +        *            {A string contains the session IRI used to classify
> the
> +        *            input.}
> +        * @param scope
> +        *            {A string contains either a specific scope's
> ontology or the
> +        *            scope IRI used to classify the input.}
> +        * @param recipe
> +        *            {A string contains the recipe IRI from the service
> +        *            http://localhost:port/kres/recipe/recipeName.}
>       * @Param file {A file in a RDF (eihter RDF/XML or owl) to be
>       classified.}
> -     * @Param input_graph {A string contains the IRI of RDF (either
> RDF/XML or OWL) to be classified.}
> -     * @Param owllink_endpoint {A string contains the ressoner server
> end-point URL.}
> +        * @Param input_graph {A string contains the IRI of RDF (either
> RDF/XML or
> +        *        OWL) to be classified.}
> +        * @Param owllink_endpoint {A string contains the ressoner server
> end-point
> +        *        URL.}
>       * @return Return: <br/>
>       *          200 The ontology is retrieved, containing only class
>       axioms <br/>
>       *          400 To run the session is needed the scope <br/>
> @@ -144,8 +209,15 @@ public class Classify {
>       */
>      @POST
>      @Consumes(MediaType.MULTIPART_FORM_DATA)
> -   
> @Produces(value={KReSFormat.RDF_XML,KReSFormat.TURTLE,KReSFormat.OWL_XML})
> -    public Response ontologyClassify(@FormParam(value="session") String
> session,@FormParam(value="scope") String scope,@FormParam(value="recipe")
> String recipe,@FormParam(value="input-graph") String
> input_graph,@FormParam(value="file") File
> file,@FormParam(value="owllink-endpoint") String owllink_endpoint){
> +       @Produces(value = { KReSFormat.RDF_XML, KReSFormat.TURTLE,
> +                       KReSFormat.OWL_XML })
> +       public Response ontologyClassify(
> +                       @FormParam(value = "session") String session,
> +                       @FormParam(value = "scope") String scope,
> +                       @FormParam(value = "recipe") String recipe,
> +                       @FormParam(value = "input-graph") String
> input_graph,
> +                       @FormParam(value = "file") File file,
> +                       @FormParam(value = "owllink-endpoint") String
> owllink_endpoint) {
>         
>        try{
>        
> @@ -162,22 +234,28 @@ public class Classify {
>  
>        //Load input file or graph
>        if(file!=null)
> -        this.inputowl =
> OWLManager.createOWLOntologyManager().loadOntologyFromOntologyDocument(file);
> +                               this.inputowl =
> OWLManager.createOWLOntologyManager()
> +                                              
> .loadOntologyFromOntologyDocument(file);
>        if(input_graph!=null)
> -        this.inputowl =
> OWLManager.createOWLOntologyManager().loadOntologyFromOntologyDocument(IRI.create(input_graph));
> +                               this.inputowl =
> OWLManager.createOWLOntologyManager()
> +                                              
> .loadOntologyFromOntologyDocument(
> +                                                              
> IRI.create(input_graph));
>        if(inputowl==null&&(session==null||scope==null))
>          return Response.status(Status.NOT_FOUND).build();
>        if(inputowl==null){
>            if(scope!=null)
> -            this.inputowl =
> OWLManager.createOWLOntologyManager().createOntology();
> +                                       this.inputowl =
> OWLManager.createOWLOntologyManager()
> +                                                      
> .createOntology();
>            else{
> -            this.inputowl =
> OWLManager.createOWLOntologyManager().createOntology();
> +                                       this.inputowl =
> OWLManager.createOWLOntologyManager()
> +                                                      
> .createOntology();
>            }
>        }
>  
>         //Create list to add ontologies as imported
>         OWLOntologyManager mgr = inputowl.getOWLOntologyManager();
> -       OWLDataFactory factory =
> inputowl.getOWLOntologyManager().getOWLDataFactory();
> +                       OWLDataFactory factory =
> inputowl.getOWLOntologyManager()
> +                                       .getOWLDataFactory();
>         List<OWLOntologyChange> additions = new
>         LinkedList<OWLOntologyChange>();
>  
>         boolean ok = false;
> @@ -187,16 +265,22 @@ public class Classify {
>        if((scope!=null)&&(session==null))
>        try{
>            IRI iri = IRI.create(scope);
> -          ScopeRegistry reg = ONManager.get().getScopeRegistry();
> +                                       ScopeRegistry reg =
> onm.getScopeRegistry();
>            OntologyScope ontoscope = reg.getScope(iri);
> -          Iterator<OWLOntology> importscope =
> ontoscope.getCustomSpace().getOntologies().iterator();
> -          Iterator<OntologySpace> importsession =
> ontoscope.getSessionSpaces().iterator();
> +                                       Iterator<OWLOntology> importscope
> = ontoscope
> +                                                      
> .getCustomSpace().getOntologies().iterator();
> +                                       Iterator<OntologySpace>
> importsession = ontoscope
> +                                                      
> .getSessionSpaces().iterator();
>  
> -          //Add ontology as import form scope, if it is anonymus we try
> to add single axioms.
> +                                       // Add ontology as import form
> scope, if it is anonymus we
> +                                       // try to add single axioms.
>            while(importscope.hasNext()){
>              OWLOntology auxonto = importscope.next();
>              if(!auxonto.getOntologyID().isAnonymous()){
> -            additions.add(new AddImport(inputowl,
> factory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
> +                                                       additions.add(new
> AddImport(inputowl, factory
> +                                                                      
> .getOWLImportsDeclaration(auxonto
> +                                                                        
>               .getOWLOntologyManager()
> +                                                                        
>               .getOntologyDocumentIRI(auxonto))));
>              }else{
>                  mgr.addAxioms(inputowl,auxonto.getAxioms());
>              }
> @@ -204,11 +288,19 @@ public class Classify {
>  
>           //Add ontology form sessions
>           while(importsession.hasNext()){
> -             Iterator<OWLOntology> sessionontos =
> importsession.next().getOntologies().iterator();
> +                                               Iterator<OWLOntology>
> sessionontos = importsession
> +                                                              
> .next().getOntologies().iterator();
>               while(sessionontos.hasNext()){
>                  OWLOntology auxonto = sessionontos.next();
>                  if(!auxonto.getOntologyID().isAnonymous()){
> -                    additions.add(new AddImport(inputowl,
> factory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
> +                                                               additions
> +                                                                        
>       .add(new AddImport(
> +                                                                        
>                       inputowl,
> +                                                                        
>                       factory
> +                                                                        
>                                       .getOWLImportsDeclaration(auxonto
> +                                                                        
>                                                      
> .getOWLOntologyManager()
> +                                                                        
>                                                      
> .getOntologyDocumentIRI(
> +                                                                        
>                                                                      
> auxonto))));
>                  }else{
>                      mgr.addAxioms(inputowl,auxonto.getAxioms());
>                  }
> @@ -226,30 +318,38 @@ public class Classify {
>        if((session!=null)&&(scope!=null))
>        try{
>            IRI iri = IRI.create(scope);
> -          ScopeRegistry reg = ONManager.get().getScopeRegistry();
> +                                       ScopeRegistry reg =
> onm.getScopeRegistry();
>            OntologyScope ontoscope = reg.getScope(iri);
> -          SessionOntologySpace sos =
> ontoscope.getSessionSpace(IRI.create(session));
> +                                       SessionOntologySpace sos =
> ontoscope.getSessionSpace(IRI
> +                                                      
> .create(session));
>            
> -          Set<OWLOntology> ontos =
> sos.getOntologyManager().getOntologies();
> +                                       Set<OWLOntology> ontos =
> sos.getOntologyManager()
> +                                                       .getOntologies();
>            Iterator<OWLOntology> iteronto = ontos.iterator();
>  
> -          //Add session ontologies as import, if it is anonymus we try
> to add single axioms.
> +                                       // Add session ontologies as
> import, if it is anonymus we
> +                                       // try to add single axioms.
>            while(iteronto.hasNext()){
>              OWLOntology auxonto = iteronto.next();
>              if(!auxonto.getOntologyID().isAnonymous()){
> -                additions.add(new AddImport(inputowl,
> factory.getOWLImportsDeclaration(auxonto.getOWLOntologyManager().getOntologyDocumentIRI(auxonto))));
> +                                                       additions.add(new
> AddImport(inputowl, factory
> +                                                                      
> .getOWLImportsDeclaration(auxonto
> +                                                                        
>               .getOWLOntologyManager()
> +                                                                        
>               .getOntologyDocumentIRI(auxonto))));
>              }else{
>                  mgr.addAxioms(inputowl,auxonto.getAxioms());
>              }
>            }
>  
>        }catch(Exception e){
> -          System.err.println("ERROR: Problem with session: "+session);
> +                                       System.err.println("ERROR:
> Problem with session: "
> +                                                       + session);
>            e.printStackTrace();
>            Response.status(Status.NOT_FOUND).build();
>        }
>  
> -      //After gathered the all ontology as imported now we apply the
> changes
> +                       // After gathered the all ontology as imported
> now we apply the
> +                       // changes
>        if(additions.size()>0)
>          mgr.applyChanges(additions);
>  
> @@ -258,23 +358,35 @@ public class Classify {
>  
>         try{
>         if(recipe!=null) {
> -            OWLOntology recipeowl =
> OWLManager.createOWLOntologyManager().loadOntologyFromOntologyDocument(IRI.create(recipe));
> -            //Get Jea RDF model of SWRL rule contained in the recipe
> +                                               OWLOntology recipeowl =
> OWLManager
> +                                                              
> .createOWLOntologyManager()
> +                                                              
> .loadOntologyFromOntologyDocument(
> +                                                                        
>       IRI.create(recipe));
> +                                               // Get Jea RDF model of
> SWRL rule contained in the
> +                                               // recipe
>              Model swrlmodel = fromRecipeToModel(recipeowl);
>  
> -            //Create a reasoner to run rules contained in the recipe
> -            KReSRunRules rulereasoner = new
> KReSRunRules(swrlmodel,inputowl);
> -            //Run the rule reasoner to the input RDF with the added
> top-ontology
> +                                               // Create a reasoner to
> run rules contained in the
> +                                               // recipe
> +                                               KReSRunRules rulereasoner
> = new KReSRunRules(swrlmodel,
> +                                                              
> inputowl);
> +                                               // Run the rule reasoner
> to the input RDF with the added
> +                                               // top-ontology
>              inputowl = rulereasoner.runRulesReasoner();
>         }
>  
>              //Create the reasoner for the classification
> -            KReSCreateReasoner newreasoner = new
> KReSCreateReasoner(inputowl);
> -            //Prepare and start the reasoner to classify ontology's
> resources
> -            KReSRunReasoner reasoner = new
> KReSRunReasoner(newreasoner.getReasoner());
> -            
> -            //Create a new OWLOntology model where to put the inferred
> axioms
> -            OWLOntology output =
> OWLManager.createOWLOntologyManager().createOntology(inputowl.getOntologyID());
> +                                       KReSCreateReasoner newreasoner =
> new KReSCreateReasoner(
> +                                                       inputowl);
> +                                       // Prepare and start the reasoner
> to classify ontology's
> +                                       // resources
> +                                       KReSRunReasoner reasoner = new
> KReSRunReasoner(newreasoner
> +                                                       .getReasoner());
> +
> +                                       // Create a new OWLOntology model
> where to put the inferred
> +                                       // axioms
> +                                       OWLOntology output =
> OWLManager.createOWLOntologyManager()
> +                                                      
> .createOntology(inputowl.getOntologyID());
>              //Initial input axioms count
>              int startax = output.getAxiomCount();
>              //Run the classification
> @@ -295,26 +407,40 @@ public class Classify {
>             return Response.status(Status.NOT_FOUND).build();
>          }
>  
> -      //If there is an owl-link server end-point specified in the form
> +                               // If there is an owl-link server
> end-point specified in the
> +                               // form
>        }else{
>  
>        try{
>         if(recipe!=null) {
> -         OWLOntology recipeowl =
> OWLManager.createOWLOntologyManager().loadOntologyFromOntologyDocument(IRI.create(recipe));
> -         //Get Jea RDF model of SWRL rule contained in the recipe
> +                                               OWLOntology recipeowl =
> OWLManager
> +                                                              
> .createOWLOntologyManager()
> +                                                              
> .loadOntologyFromOntologyDocument(
> +                                                                        
>       IRI.create(recipe));
> +                                               // Get Jea RDF model of
> SWRL rule contained in the
> +                                               // recipe
>           Model swrlmodel = fromRecipeToModel(recipeowl);
> -         //Create a reasoner to run rules contained in the recipe by
> using the server and-point
> -         KReSRunRules rulereasoner = new
> KReSRunRules(swrlmodel,inputowl,new URL(owllink_endpoint));
> -         //Run the rule reasoner to the input RDF with the added
> top-ontology
> +                                               // Create a reasoner to
> run rules contained in the
> +                                               // recipe by using the
> server and-point
> +                                               KReSRunRules rulereasoner
> = new KReSRunRules(swrlmodel,
> +                                                               inputowl,
> new URL(owllink_endpoint));
> +                                               // Run the rule reasoner
> to the input RDF with the added
> +                                               // top-ontology
>           inputowl = rulereasoner.runRulesReasoner();
>         }
> -         //Create the reasoner for the consistency check by using the
> server and-point
> -         KReSCreateReasoner newreasoner = new
> KReSCreateReasoner(inputowl, new URL(owllink_endpoint));
> -         //Prepare and start the reasoner to classify ontology's
> resources
> -         KReSRunReasoner reasoner = new
> KReSRunReasoner(newreasoner.getReasoner());
> -         
> -         //Create a new OWLOntology model where to put the inferred
> axioms
> -         OWLOntology output =
> OWLManager.createOWLOntologyManager().createOntology(inputowl.getOntologyID());
> +                                       // Create the reasoner for the
> consistency check by using
> +                                       // the server and-point
> +                                       KReSCreateReasoner newreasoner =
> new KReSCreateReasoner(
> +                                                       inputowl, new
> URL(owllink_endpoint));
> +                                       // Prepare and start the reasoner
> to classify ontology's
> +                                       // resources
> +                                       KReSRunReasoner reasoner = new
> KReSRunReasoner(newreasoner
> +                                                       .getReasoner());
> +
> +                                       // Create a new OWLOntology model
> where to put the inferred
> +                                       // axioms
> +                                       OWLOntology output =
> OWLManager.createOWLOntologyManager()
> +                                                      
> .createOntology(inputowl.getOntologyID());
>           //Initial input axioms count
>           int startax = output.getAxiomCount();
>           //Run the classification
> 
> Modified:
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/ConsistencyCheck.java
> URL:
> http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/ConsistencyCheck.java?rev=1053689&r1=1053688&r2=1053689&view=diff
> ==============================================================================
> ---
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/ConsistencyCheck.java
> (original)
> +++
> incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/reasoners/ConsistencyCheck.java
> Wed Dec 29 18:04:19 2010
> @@ -2,6 +2,7 @@ package eu.iksproject.kres.jersey.reason
>  
>  import java.io.File;
>  import java.net.URL;
> +import java.util.Hashtable;
>  import java.util.Iterator;
>  import java.util.LinkedList;
>  import java.util.List;
> @@ -14,7 +15,6 @@ import javax.ws.rs.GET;
>  import javax.ws.rs.POST;
>  import javax.ws.rs.Path;
>  import javax.ws.rs.PathParam;
> -import javax.ws.rs.Produces;
>  import javax.ws.rs.WebApplicationException;
>  import javax.ws.rs.core.Context;
>  import javax.ws.rs.core.MediaType;
> @@ -44,6 +44,7 @@ import com.hp.hpl.jena.rdf.model.Model;
>  import com.hp.hpl.jena.rdf.model.ModelFactory;
>  import com.hp.hpl.jena.rdf.model.Resource;
>  
> +import eu.iksproject.kres.api.manager.KReSONManager;
>  import eu.iksproject.kres.api.manager.OWLDuplicateSafeLoader;
>  import eu.iksproject.kres.api.manager.ontology.OntologyScope;
>  import eu.iksproject.kres.api.manager.ontology.OntologySpace;
> @@ -53,6 +54,7 @@ import eu.iksproject.kres.api.rules.KReS
>  import eu.iksproject.kres.api.rules.NoSuchRecipeException;
>  import eu.iksproject.kres.api.rules.RuleStore;
>  import eu.iksproject.kres.api.rules.util.KReSRuleList;
> +import eu.iksproject.kres.api.storage.OntologyStoreProvider;
>  import eu.iksproject.kres.manager.ONManager;
>  import eu.iksproject.kres.reasoners.KReSCreateReasoner;
>  import eu.iksproject.kres.reasoners.KReSRunReasoner;
> @@ -60,6 +62,7 @@ import eu.iksproject.kres.reasoners.KReS
>  import eu.iksproject.kres.rules.KReSKB;
>  import eu.iksproject.kres.rules.manager.KReSRuleStore;
>  import eu.iksproject.kres.rules.parser.KReSRuleParser;
> +import eu.iksproject.kres.storage.provider.OntologyStorageProviderImpl;
>  
>  /**
>   * This class implements the REST interface for the /check-consistency
>   service
> @@ -75,7 +78,10 @@ public class ConsistencyCheck {
>  	private OWLOntology scopeowl;
>  
>  	private final OWLDuplicateSafeLoader loader = new OWLDuplicateSafeLoader();
> -       private final Logger log = LoggerFactory.getLogger(getClass());
> +       protected KReSONManager onm;
> +       protected OntologyStoreProvider storeProvider;
> +
> +       private Logger log = LoggerFactory.getLogger(getClass());
>  
>  	/**
>  	 * The constructor.
> @@ -85,24 +91,40 @@ public class ConsistencyCheck {
>  	 */
>  	public ConsistencyCheck(@Context ServletContext servletContext) {
>  
> -               /**
> -                * Retrieve the rule store
> -                */
> +               // Retrieve the rule store
>  		this.kresRuleStore = (RuleStore) servletContext
>  				.getAttribute(RuleStore.class.getName());
> -               /**
> +               // Retrieve the ontology network manager
> +               this.onm = (KReSONManager) servletContext
> +                              
> .getAttribute(KReSONManager.class.getName());
> +               this.storeProvider = (OntologyStoreProvider)
> servletContext
> +                              
> .getAttribute(OntologyStoreProvider.class.getName());
> +               // Contingency code for missing components follows.
> +               /*
>  		 * FIXME! The following code is required only for the tests. This should
>  		 * be removed and the test should work without this code.
>  		 */
> +               if (storeProvider == null) {
> +                       log
> +                                       .warn("No OntologyStoreProvider
> in servlet context. Instantiating manually...");
> +                       storeProvider = new
> OntologyStorageProviderImpl();
> +               }
> +               if (onm == null) {
> +                       log
> +                                       .warn("No KReSONManager in
> servlet context. Instantiating manually...");
> +                       onm = new
> ONManager(storeProvider.getActiveOntologyStorage(),
> +                                       new Hashtable<String, Object>());
> +               }
>  		if (kresRuleStore == null) {
>  			log
> -                                       .warn(
> -                                                       "KReSRuleStore
> with stored rules and recipes is missing in ServletContext. A new
> instance has been created.",
> -                                                       this);
> -                       this.kresRuleStore = new KReSRuleStore("");
> -                       log.info("Configuration file loaded from: "
> +                                       .warn("No KReSRuleStore with
> stored rules and recipes found in servlet context. Instantiating manually
> with default values...");
> +                       this.kresRuleStore = new KReSRuleStore(onm,
> +                                       new Hashtable<String, Object>(),
> "");
> +                       log
> +                                       .debug("PATH TO OWL FILE LOADED:
> "
>  					+ kresRuleStore.getFilePath());
>  		}
> +
>  	}
>  
>  	/**
> @@ -115,7 +137,9 @@ public class ConsistencyCheck {
>  	private Model fromRecipeToModel(OWLOntology owl)
>  			throws NoSuchRecipeException, OWLOntologyCreationException {
>  
> -               RuleStore store = new KReSRuleStore(owl);
> +               // FIXME: why the heck is this method re-instantiating a
> rule store?!?
> +               RuleStore store = new KReSRuleStore(onm,
> +                               new Hashtable<String, Object>(), owl);
>  		Model jenamodel = ModelFactory.createDefaultModel();
>  
>  		OWLDataFactory factory = owl.getOWLOntologyManager()
> @@ -199,7 +223,10 @@ public class ConsistencyCheck {
>  				log.debug("Some ontology import failed. Cannot continue.", uu);
>  				return Response.status(Status.PRECONDITION_FAILED).build();
>  			} catch (Exception ee) {
> -                               log.error("Cannot fetch the ontology.
> Some error occurred. Cannot continue.", ee);
> +                               log
> +                                               .error(
> +                                                               "Cannot
> fetch the ontology. Some error occurred. Cannot continue.",
> +                                                               ee);
>  				return Response.status(Status.NOT_FOUND).build();
>  			}
>  			KReSCreateReasoner newreasoner = new KReSCreateReasoner(owl);
> @@ -312,7 +339,7 @@ public class ConsistencyCheck {
>  			if ((scope != null) && (session == null))
>  				try {
>  					IRI iri = IRI.create(scope);
> -                                       ScopeRegistry reg =
> ONManager.get().getScopeRegistry();
> +                                       ScopeRegistry reg =
> onm.getScopeRegistry();
>  					OntologyScope ontoscope = reg.getScope(iri);
>  					Iterator<OWLOntology> importscope = ontoscope
>  							.getCustomSpace().getOntologies().iterator();
> @@ -365,7 +392,7 @@ public class ConsistencyCheck {
>  			if ((session != null) && (scope != null))
>  				try {
>  					IRI iri = IRI.create(scope);
> -                                       ScopeRegistry reg =
> ONManager.get().getScopeRegistry();
> +                                       ScopeRegistry reg =
> onm.getScopeRegistry();
>  					OntologyScope ontoscope = reg.getScope(iri);
>  					SessionOntologySpace sos = ontoscope.getSessionSpace(IRI
>  							.create(session));
> 
> 
>