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 [3/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...
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/registry/model/impl/RegistryLoader.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/registry/model/impl/RegistryLoader.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/registry/model/impl/RegistryLoader.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/registry/model/impl/RegistryLoader.java Wed Dec 29 18:04:19 2010
@@ -45,6 +45,7 @@ import org.stlab.xd.registry.models.Regi
import org.stlab.xd.utils.RDFSLabelGetter;
import org.stlab.xd.vocabulary.CODOVocabulary;
+import eu.iksproject.kres.api.manager.KReSONManager;
import eu.iksproject.kres.api.manager.registry.KReSRegistryLoader;
import eu.iksproject.kres.manager.ONManager;
import eu.iksproject.kres.manager.registry.cache.ODPRegistryCacheException;
@@ -56,22 +57,21 @@ public class RegistryLoader implements K
private final OWLClass cRegistryLibrary;
- private Logger logger = LoggerFactory.getLogger(getClass());
+ private KReSONManager onm;
- private boolean doPrint = false;
+ private Logger log = LoggerFactory.getLogger(getClass());
private final OWLObjectProperty isPartOf, isOntologyOf;
private final IRI mergedOntologyIRI = IRI
.create(CODOVocabulary.REPOSITORY_MERGED_ONTOLOGY);
- private OWLOntologyLoaderListener printer = new OntologyLoaderPrinter();
-
private Map<URI, OWLOntology> registryOntologiesCache = new HashMap<URI, OWLOntology>();
/**
*/
- public RegistryLoader() {
+ public RegistryLoader(KReSONManager onm) {
+ this.onm = onm;
OWLDataFactory factory = OWLManager.getOWLDataFactory();
cRegistryLibrary = factory.getOWLClass(IRI
.create(CODOVocabulary.CODD_OntologyLibrary));
@@ -93,7 +93,7 @@ public class RegistryLoader implements K
result.addAll(gatherOntologies(item, manager,
recurseRegistries));
} catch (OWLOntologyCreationException e) {
- logger
+ log
.warn(
"KReS :: [NONFATAL] Could not gather ontologies for registry "
+ registryItem.getName()
@@ -110,7 +110,7 @@ public class RegistryLoader implements K
} catch (OWLOntologyCreationIOException ex) {
// Che ce potemo fa'?
} catch (URISyntaxException e) {
- logger.warn("KReS :: [NONFATAL] Malformed URI for ontology "
+ log.warn("KReS :: [NONFATAL] Malformed URI for ontology "
+ registryItem.getName() + ". Skipping.", e);
}
else if (registryItem.isLibrary())
@@ -142,7 +142,7 @@ public class RegistryLoader implements K
try {
return getMergedOntology(registryLocation.toURI().toURL());
} catch (MalformedURLException e) {
- logger.warn(
+ log.warn(
"KReS :: [NONFATAL] Malformed URI for merged ontology from registry "
+ registryLocation, e);
return null;
@@ -254,9 +254,8 @@ public class RegistryLoader implements K
return OWLManager.createOWLOntologyManager()
.loadOntologyFromOntologyDocument(IRI.create(location));
} catch (OWLOntologyCreationException e) {
- LoggerFactory.getLogger(getClass()).error(
- "KReS :: Registry loader failed to load ontology at "+location
- , e);
+ log.error("KReS :: Registry loader failed to load ontology at "
+ + location, e);
return null;
}
}
@@ -337,16 +336,14 @@ public class RegistryLoader implements K
} catch (Exception e) {
if (registry1 != null) {
registry1.setError(e.getLocalizedMessage());
- LoggerFactory.getLogger(getClass()).error(
- "KReS :: Error on ODP registry: "
+ log.error("KReS :: Error on ODP registry: "
+ registry1.getName(), e);
}
}
if (registry1 != null)
registries.add(registry1);
else
- LoggerFactory.getLogger(getClass()).error(
- "KReS :: Cannot load ODP registry: " + regs[i]);
+ log.error("KReS :: Cannot load ODP registry: " + regs[i]);
}
return registries;
}
@@ -387,7 +384,7 @@ public class RegistryLoader implements K
}
}
} catch (MalformedURLException e) {
- LoggerFactory.getLogger(getClass()).error(
+ log.error(
"KReS :: MalformedURLException caught while getting tree for "
+ i.getIRI(), e);
@@ -427,43 +424,16 @@ public class RegistryLoader implements K
return (ontologyClass.getIndividuals(ontology).contains(indy));
}
- public boolean isPrintingLoadedOntologies() {
- return doPrint;
- }
-
public void loadLocations() throws RegistryContentException {
- // String jobDescription = "ODP Registry updating...";
- // Job initViewJob = new Job(jobDescription) {
- // private void checkCanceled(IProgressMonitor monitor)
- // throws InterruptedException {
- // if (monitor.isCanceled())
- // throw new InterruptedException(
- // "Registry updating has been interrupted by the user.");
- // }
- //
- // @Override
- // protected IStatus run(IProgressMonitor monitor) {
try {
- // checkCanceled(monitor);
-
- // initialize();
- // checkCanceled(monitor);
-
- Logger log = LoggerFactory.getLogger(getClass());
registryOntologiesCache.clear();
List<Registry> registries = getRegistries();
- // checkCanceled(monitor);
int regsize = registries.size();
- // int tasks = (regsize * 2) + 5;
- // monitor.beginTask("Loading registries", tasks);
- // int worked = 0;
- // monitor.worked(worked);
int c = 0;
for (Registry current : registries) {
- // checkCanceled(monitor);
c++;
log.debug("Loading " + current.toString() + " [" + c + "/"
+ regsize + "]");
@@ -471,74 +441,34 @@ public class RegistryLoader implements K
.toURI())) {
try {
log.debug("Fetching: " + current.getURL().toURI());
- // ODPRegistryCacheManager.getManager()
- // .addOntologyLoaderListener(
- // new OWLOntologyLoaderListener() {
- //
- // @Override
- // public void finishedLoadingOntology(
- // LoadingFinishedEvent event) {
- // System.out
- // .println("Finished loading: "
- // + event
- // .getDocumentIRI()
- // + " Error? "
- // + event
- // .getException());
- // }
- //
- // @Override
- // public void startedLoadingOntology(
- // LoadingStartedEvent event) {
- // System.out
- // .println("Start loading: "
- // + event
- // .getDocumentIRI()
- // + " ");
- // }
- //
- // });
registryOntologiesCache.put(current.getURL().toURI(),
ODPRegistryCacheManager.getOntology(current
.getURL().toURI()));
} catch (URIUnresolvableException e) {
- LoggerFactory.getLogger(getClass()).error(
- "KReS :: could not resolve URI "
+ log.error("KReS :: could not resolve URI "
+ current.getURL().toURI(), e);
registryOntologiesCache.put(current.getURL().toURI(),
null);
} catch (ODPRegistryCacheException e) {
- LoggerFactory.getLogger(getClass()).error(
- "KReS :: failed to cache ontology "
+ log.error("KReS :: failed to cache ontology "
+ current.getURL().toURI(), e);
registryOntologiesCache.put(current.getURL().toURI(),
null);
}
}
- // worked++;
- // monitor.worked(worked);
- // checkCanceled(monitor);
}
c = 0;
for (Registry registry : registries) {
- // checkCanceled(monitor);
c++;
- // monitor.setTaskName("Setup: " + registry.getName()
- // + " [" + c + "/" + regsize + "]");
try {
registry = setupRegistry(registry);
} catch (RegistryContentException e) {
registry.setError(" [Unable to load from location "
+ registry.getURL().toString() + "]");
}
- // invisibleRoot.addChild(registry);
- // worked++;
- // monitor.worked(worked);
- // checkCanceled(monitor);
}
} catch (Throwable th) {
- LoggerFactory
- .getLogger(getClass())
+ log
.error(
"KreS :: Exception occurred while trying to get registry locations.",
th);
@@ -555,7 +485,7 @@ public class RegistryLoader implements K
public Set<Registry> loadRegistriesEager(IRI physicalIRI) {
Set<Registry> results = new HashSet<Registry>();
- OWLOntologyManager mgr = ONManager.get().getOwlCacheManager();// getManager();
+ OWLOntologyManager mgr = onm.getOwlCacheManager();// getManager();
try {
OWLOntology ontology = mgr.loadOntology(physicalIRI);
@@ -570,10 +500,8 @@ public class RegistryLoader implements K
} catch (MalformedURLException e) {
// Why should a well-formed IRI be a malformed URL
// anyway ?
- LoggerFactory.getLogger(getClass()).warn(
- "KReS :: ontology document IRI " + physicalIRI
- + " matches a malformed URI pattern.",
- e);
+ log.warn("KReS :: ontology document IRI " + physicalIRI
+ + " matches a malformed URI pattern.", e);
}
// Find the ontologies in this registry
// If this is individual is not "ontology of" or "part of",
@@ -588,27 +516,17 @@ public class RegistryLoader implements K
results.add(registry);
}
} catch (OWLOntologyAlreadyExistsException e) {
- LoggerFactory.getLogger(getClass()).warn(
- "KReS :: ontology " + e.getOntologyID()
+ log.warn("KReS :: ontology " + e.getOntologyID()
+ " exists and will not be reloaded.", e);
// Do nothing. Existing ontologies are fine.
} catch (OWLOntologyCreationException e) {
- LoggerFactory.getLogger(getClass()).error(
- "KReS :: Could not load ontology " + physicalIRI + " .", e);
+ log.error("KReS :: Could not load ontology " + physicalIRI + " .",
+ e);
} finally {
}
return results;
}
- public void setPrintLoadedOntologies(boolean doPrint) {
- OWLOntologyManager manager = ONManager.get().getOwlCacheManager();
- if (doPrint)
- manager.addOntologyLoaderListener(printer);
- else
- manager.removeOntologyLoaderListener(printer);
- this.doPrint = doPrint;
- }
-
/**
* Requires that Registry objects are created earlier. Problem is, we might
* not know their names a priori.
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/session/KReSSessionManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/session/KReSSessionManagerImpl.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/session/KReSSessionManagerImpl.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/session/KReSSessionManagerImpl.java Wed Dec 29 18:04:19 2010
@@ -9,9 +9,11 @@ import java.util.Set;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLOntology;
+import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import eu.iksproject.kres.api.manager.ontology.OntologyScope;
+import eu.iksproject.kres.api.manager.ontology.ScopeRegistry;
import eu.iksproject.kres.api.manager.ontology.SessionOntologySpace;
import eu.iksproject.kres.api.manager.session.DuplicateSessionIDException;
import eu.iksproject.kres.api.manager.session.KReSSession;
@@ -41,12 +43,19 @@ public class KReSSessionManagerImpl impl
protected Set<SessionListener> listeners;
+ protected Logger log = LoggerFactory.getLogger(getClass());
+
protected KReSSessionIDGenerator idgen;
- public KReSSessionManagerImpl(IRI baseIri) {
+ protected ScopeRegistry scopeRegistry;
+ protected OntologyStorage store;
+
+ public KReSSessionManagerImpl(IRI baseIri, ScopeRegistry scopeRegistry, OntologyStorage store) {
idgen = new TimestampedSessionIDGenerator(baseIri);
listeners = new HashSet<SessionListener>();
sessionsByID = new HashMap<IRI, KReSSession>();
+this.scopeRegistry = scopeRegistry;
+ this.store = store;
}
/*
@@ -129,7 +138,7 @@ public class KReSSessionManagerImpl impl
removeSession(ses);
fireSessionDestroyed(ses);
} catch (NonReferenceableSessionException e) {
- ONManager.get().log.warn(
+ log.warn(
"KReS :: tried to kick a dead horse on session "
+ sessionID
+ " which was already in a zombie state.", e);
@@ -224,7 +233,7 @@ public class KReSSessionManagerImpl impl
throws NonReferenceableSessionException {
Set<SessionOntologySpace> result = new HashSet<SessionOntologySpace>();
// Brute force search
- for (OntologyScope scope : ONManager.get().getScopeRegistry()
+ for (OntologyScope scope : scopeRegistry
.getRegisteredScopes()) {
SessionOntologySpace space = scope.getSessionSpace(sessionID);
if (space != null)
@@ -257,7 +266,6 @@ public class KReSSessionManagerImpl impl
@Override
public void storeSession(IRI sessionID, OutputStream out)
throws NonReferenceableSessionException {
- OntologyStorage store = ONManager.get().getOntologyStore();
for (SessionOntologySpace so : getSessionSpaces(sessionID))
for (OWLOntology o : so.getOntologies())
store.store(o);
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/session/ScopeSessionSynchronizer.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/session/ScopeSessionSynchronizer.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/session/ScopeSessionSynchronizer.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/session/ScopeSessionSynchronizer.java Wed Dec 29 18:04:19 2010
@@ -2,6 +2,7 @@ package eu.iksproject.kres.manager.sessi
import org.semanticweb.owlapi.model.IRI;
+import eu.iksproject.kres.api.manager.KReSONManager;
import eu.iksproject.kres.api.manager.ontology.OntologyScope;
import eu.iksproject.kres.api.manager.ontology.OntologySpaceFactory;
import eu.iksproject.kres.api.manager.session.KReSSession;
@@ -11,23 +12,18 @@ import eu.iksproject.kres.manager.ONMana
public class ScopeSessionSynchronizer implements SessionListener {
- private static ScopeSessionSynchronizer me = null;
+ private KReSONManager manager;
- public static ScopeSessionSynchronizer get() {
- if (me == null)
- me = new ScopeSessionSynchronizer();
- return me;
- }
-
- private ScopeSessionSynchronizer() {
+ public ScopeSessionSynchronizer(KReSONManager manager) {
// WARN do not use ONManager here, as it will most probably be
// instantiated by it.
+ this.manager = manager;
}
private void addSessionSpaces(IRI sessionId) {
- OntologySpaceFactory factory = ONManager.get()
+ OntologySpaceFactory factory = manager
.getOntologySpaceFactory();
- for (OntologyScope scope : ONManager.get().getScopeRegistry()
+ for (OntologyScope scope : manager.getScopeRegistry()
.getActiveScopes()) {
scope.addSessionSpace(factory.createSessionOntologySpace(scope
.getID()), sessionId);
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/util/OntologyUtils.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/util/OntologyUtils.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/util/OntologyUtils.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/util/OntologyUtils.java Wed Dec 29 18:04:19 2010
@@ -21,9 +21,9 @@ import org.semanticweb.owlapi.model.OWLO
import org.semanticweb.owlapi.model.OWLOntologyStorageException;
import org.semanticweb.owlapi.model.UnknownOWLOntologyException;
import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import eu.iksproject.kres.api.manager.ontology.OntologyInputSource;
-import eu.iksproject.kres.manager.ONManager;
import eu.iksproject.kres.manager.io.RootOntologySource;
/**
@@ -34,6 +34,8 @@ import eu.iksproject.kres.manager.io.Roo
*/
public class OntologyUtils {
+ private static final Logger logger = LoggerFactory.getLogger(OntologyUtils.class);
+
// /**
// * Creates an ontology with the specified IRI and only the import
// statements
@@ -109,11 +111,10 @@ public class OntologyUtils {
// Named ontology with a provided absolute prefix. Use name and prefix
// for creating an new import statement.
- OWLOntology child = childSrc.getRootOntology();
- if (!child.isAnonymous() && rewritePrefix != null
+ if (!oChild.isAnonymous() && rewritePrefix != null
/* && rewritePrefix.isAbsolute() */) {
IRI impIri = IRI.create(rewritePrefix + "/"
- + child.getOntologyID().getOntologyIRI());
+ + oChild.getOntologyID().getOntologyIRI());
OWLImportsDeclaration imp = factory
.getOWLImportsDeclaration(impIri);
ontologyManager.applyChange(new AddImport(oParent, imp));
@@ -215,7 +216,7 @@ public class OntologyUtils {
mgr = OWLManager.createOWLOntologyManager();
OWLDataFactory owlFactory = mgr.getOWLDataFactory();
List<OWLOntologyChange> changes = new LinkedList<OWLOntologyChange>();
- Logger logger = ONManager.get().log;
+
for (OWLOntology o : subtrees) {
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/org/stlab/xd/utils/RDFSLabelGetter.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/org/stlab/xd/utils/RDFSLabelGetter.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/org/stlab/xd/utils/RDFSLabelGetter.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/org/stlab/xd/utils/RDFSLabelGetter.java Wed Dec 29 18:04:19 2010
@@ -7,9 +7,11 @@ import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
+import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLAnnotationAssertionAxiom;
import org.semanticweb.owlapi.model.OWLAnnotationValue;
+import org.semanticweb.owlapi.model.OWLDataFactory;
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.model.OWLStringLiteral;
import org.semanticweb.owlapi.model.OWLTypedLiteral;
@@ -28,6 +30,7 @@ public class RDFSLabelGetter {
private Map<String, String> allLabels;
private IRI subject;
private boolean strict;
+ private OWLDataFactory owlFactory = OWLManager.getOWLDataFactory();
public RDFSLabelGetter(OWLOntology ontology, IRI subject, boolean strict) {
this.subject = subject;
@@ -37,7 +40,7 @@ public class RDFSLabelGetter {
allLabels = new HashMap<String, String>();
for (OWLAnnotationAssertionAxiom annotation : individualAnnotations) {
if (annotation.getProperty().equals(
- ONManager.get().getOwlFactory()
+ owlFactory
.getOWLAnnotationProperty(
OWLRDFVocabulary.RDFS_LABEL.getIRI()))) {
OWLAnnotationValue value = annotation.getValue();
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/resources/META-INF/conf/catalog.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/resources/META-INF/conf/catalog.xml?rev=1053689&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/resources/META-INF/conf/catalog.xml (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/resources/META-INF/conf/catalog.xml Wed Dec 29 18:04:19 2010
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<catalog id="file:/Users/alessandro/workspaces/IKS/main/kres/eu.iksproject.kres.manager/src/main/resources/META-INF/conf/" prefer="public" xml:base="file:/Users/alessandro/workspaces/IKS/main/kres/eu.iksproject.kres.manager/src/main/resources/META-INF/conf/" xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
+ <uri name="http://kres.iks-project.eu/ontology/meta/onm.owl" uri="onm.owl"/>
+</catalog>
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/Namespace.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/Namespace.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/Namespace.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/Namespace.java Wed Dec 29 18:04:19 2010
@@ -1,27 +1,27 @@
package eu.iksproject.kres.manager;
-import static org.junit.Assert.fail;
+import static org.junit.Assert.*;
+
+import java.util.Hashtable;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.semanticweb.owlapi.apibinding.OWLManager;
+import eu.iksproject.kres.api.manager.KReSONManager;
public class Namespace {
-
- static ONManager onManager;
+ private static KReSONManager onm;
@BeforeClass
public static void setUp() {
-
- onManager = ONManager.get();
-
+ // An ONManager with no store and default settings
+ onm = new ONManager(null, new Hashtable<String, Object>());
}
@Test
- public static void getNamespace() {
-
+ public void getNamespace() {
+ assertNotNull(onm.getKReSNamespace());
}
}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestIndexing.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestIndexing.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestIndexing.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestIndexing.java Wed Dec 29 18:04:19 2010
@@ -2,6 +2,8 @@ package eu.iksproject.kres.manager.ontol
import static org.junit.Assert.*;
+import java.util.Hashtable;
+
import org.junit.BeforeClass;
import org.junit.Test;
import org.semanticweb.owlapi.apibinding.OWLManager;
@@ -11,6 +13,7 @@ import org.semanticweb.owlapi.model.OWLO
import org.semanticweb.owlapi.model.OWLOntologyManager;
import eu.iksproject.kres.api.manager.DuplicateIDException;
+import eu.iksproject.kres.api.manager.KReSONManager;
import eu.iksproject.kres.api.manager.ontology.OntologyIndex;
import eu.iksproject.kres.api.manager.ontology.OntologyScope;
import eu.iksproject.kres.api.manager.ontology.OntologySpaceModificationException;
@@ -23,7 +26,7 @@ import eu.iksproject.kres.manager.util.O
public class TestIndexing {
- private static ONManager context;
+ private static KReSONManager onm;
private static OWLOntologyManager mgr = OWLManager
.createOWLOntologyManager();
@@ -44,9 +47,8 @@ public class TestIndexing {
@BeforeClass
public static void setup() {
- context = ONManager.get();
- // Uncomment next line for verbose output.
- // context.getRegistryLoader().setPrintLoadedOntologies(true);
+ // An ONManager with no store and default settings
+ onm = new ONManager(null, new Hashtable<String, Object>());
// Since it is registered, this scope must be unique, or subsequent
// tests will fail on duplicate ID exceptions!
@@ -62,12 +64,12 @@ public class TestIndexing {
// The factory call also invokes loadRegistriesEager() and
// gatherOntologies() so no need to test them individually.
try {
- scope = context.getOntologyScopeFactory().createOntologyScope(
+ scope = onm.getOntologyScopeFactory().createOntologyScope(
scopeIri,
- new OntologyRegistryIRISource(testRegistryIri, null
+ new OntologyRegistryIRISource(testRegistryIri,onm.getOwlCacheManager(),onm.getRegistryLoader(), null
// new RootOntologySource(oParent)
));
- context.getScopeRegistry().registerScope(scope);
+ onm.getScopeRegistry().registerScope(scope);
} catch (DuplicateIDException e) {
// Uncomment if annotated with @BeforeClass instead of @Before ,
// comment otherwise.
@@ -77,7 +79,7 @@ public class TestIndexing {
@Test
public void testAddOntology() {
- OntologyIndex index = ONManager.get().getOntologyIndex();
+ OntologyIndex index = onm.getOntologyIndex();
try {
scope.getCustomSpace().addOntology(
new RootOntologyIRISource(communitiesCpIri));
@@ -105,7 +107,7 @@ public class TestIndexing {
} catch (OWLOntologyCreationException e) {
fail("Could not instantiate other ObjectRole ontology for comparison");
}
- OntologyIndex index = context.getOntologyIndex();
+ OntologyIndex index = onm.getOntologyIndex();
assertNotNull(index.getOntology(objrole));
// assertSame() would fail.
assertEquals(index.getOntology(objrole), oObjRole);
@@ -113,7 +115,7 @@ public class TestIndexing {
@Test
public void testIsOntologyLoaded() {
- OntologyIndex index = context.getOntologyIndex();
+ OntologyIndex index = onm.getOntologyIndex();
IRI coreroot = IRI.create(scopeIri + "/core/root.owl");
IRI dne = IRI
.create("http://www.ontologydesignpatterns.org/cp/owl/doesnotexist.owl");
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestOntologyScope.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestOntologyScope.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestOntologyScope.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestOntologyScope.java Wed Dec 29 18:04:19 2010
@@ -5,6 +5,8 @@ import static org.junit.Assert.assertNul
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import java.util.Hashtable;
+
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -14,6 +16,7 @@ import org.semanticweb.owlapi.model.OWLO
import org.semanticweb.owlapi.model.OWLOntologyManager;
import eu.iksproject.kres.api.manager.DuplicateIDException;
+import eu.iksproject.kres.api.manager.KReSONManager;
import eu.iksproject.kres.api.manager.ontology.OntologyInputSource;
import eu.iksproject.kres.api.manager.ontology.OntologyScope;
import eu.iksproject.kres.api.manager.ontology.OntologyScopeFactory;
@@ -38,6 +41,8 @@ public class TestOntologyScope {
*/
private static OntologyScope blankScope;
+ private static KReSONManager onm;
+
private static OntologyScopeFactory factory = null;
private static OntologyInputSource src1 = null, src2 = null;
@@ -50,7 +55,9 @@ public class TestOntologyScope {
@BeforeClass
public static void setup() {
- factory = ONManager.get().getOntologyScopeFactory();
+ // An ONManager with no store and default settings
+ onm = new ONManager(null, new Hashtable<String, Object>());
+ factory = onm.getOntologyScopeFactory();
if (factory == null)
fail("Could not instantiate ontology space factory");
OWLOntologyManager mgr = OWLManager.createOWLOntologyManager();
@@ -139,9 +146,9 @@ public class TestOntologyScope {
@Test
public void testScopesRendering() {
- OntologyScopeFactoryImpl scf = new OntologyScopeFactoryImpl();
+ ScopeRegistry reg = onm.getScopeRegistry();
+ OntologyScopeFactoryImpl scf = new OntologyScopeFactoryImpl(reg,onm.getOntologySpaceFactory());
OntologyScope scope = null, scope2 = null;
- ScopeRegistry reg = ONManager.get().getScopeRegistry();
try {
scope = scf.createOntologyScope(scopeIri1, src1, src2);
scope2 = scf.createOntologyScope(scopeIri2, src2);
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestOntologySpaces.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestOntologySpaces.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestOntologySpaces.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/ontology/TestOntologySpaces.java Wed Dec 29 18:04:19 2010
@@ -2,6 +2,8 @@ package eu.iksproject.kres.manager.ontol
import static org.junit.Assert.*;
+import java.util.Hashtable;
+
import org.junit.BeforeClass;
import org.junit.Test;
import org.semanticweb.owlapi.apibinding.OWLManager;
@@ -15,6 +17,7 @@ import org.semanticweb.owlapi.model.OWLO
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
import org.semanticweb.owlapi.model.OWLOntologyManager;
+import eu.iksproject.kres.api.manager.KReSONManager;
import eu.iksproject.kres.api.manager.ontology.CoreOntologySpace;
import eu.iksproject.kres.api.manager.ontology.CustomOntologySpace;
import eu.iksproject.kres.api.manager.ontology.OntologyInputSource;
@@ -41,15 +44,19 @@ public class TestOntologySpaces {
private static OWLOntology ont = null, ont2 = null;
+ private static KReSONManager onm;
+
private static OntologyInputSource ontSrc, ont2Src, pizzaSrc, wineSrc;
- private static OntologySpaceFactory spaceFactory = ONManager.get()
- .getOntologySpaceFactory();
+ private static OntologySpaceFactory spaceFactory;
private static OWLAxiom linusIsHuman = null;
@BeforeClass
public static void setup() {
+ // An ONManager with no store and default settings
+ onm = new ONManager(null, new Hashtable<String, Object>());
+ spaceFactory = onm.getOntologySpaceFactory();
if (spaceFactory == null)
fail("Could not instantiate ontology space factory");
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/registry/TestRegistry.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/registry/TestRegistry.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/registry/TestRegistry.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/registry/TestRegistry.java Wed Dec 29 18:04:19 2010
@@ -2,11 +2,14 @@ package eu.iksproject.kres.manager.regis
import static org.junit.Assert.*;
+import java.util.Hashtable;
+
import org.junit.BeforeClass;
import org.junit.Test;
import org.semanticweb.owlapi.model.IRI;
import eu.iksproject.kres.api.manager.DuplicateIDException;
+import eu.iksproject.kres.api.manager.KReSONManager;
import eu.iksproject.kres.api.manager.ontology.CoreOntologySpace;
import eu.iksproject.kres.api.manager.ontology.OntologyScope;
import eu.iksproject.kres.api.manager.ontology.SessionOntologySpace;
@@ -16,7 +19,7 @@ import eu.iksproject.kres.manager.io.Ont
public class TestRegistry {
- private static ONManager context;
+ private static KReSONManager onm;
private static IRI testRegistryIri = IRI
.create("http://www.ontologydesignpatterns.org/registry/krestest.owl");
@@ -27,21 +30,20 @@ public class TestRegistry {
@BeforeClass
public static void setup() {
- context = ONManager.get();
- // Uncomment next line for verbose output.
- // context.getRegistryLoader().setPrintLoadedOntologies(true);
+ // An ONManager with no store and default settings
+ onm = new ONManager(null, new Hashtable<String, Object>());
}
@Test
public void testAddRegistryToSessionSpace() {
IRI scopeIri = IRI.create("http://fise.iks-project.eu/scopone");
SessionOntologySpace space = null;
- space = context.getOntologySpaceFactory().createSessionOntologySpace(
+ space = onm.getOntologySpaceFactory().createSessionOntologySpace(
scopeIri);
space.setUp();
try {
- space.addOntology(new OntologyRegistryIRISource(testRegistryIri));
+ space.addOntology(new OntologyRegistryIRISource(testRegistryIri,onm.getOwlCacheManager(),onm.getRegistryLoader()));
} catch (UnmodifiableOntologySpaceException e) {
fail("Adding libraries to session space failed. "
+ "This should not happen for active session spaces.");
@@ -58,8 +60,8 @@ public class TestRegistry {
// The factory call also invokes loadRegistriesEager() and
// gatherOntologies() so no need to test them individually.
try {
- scope = context.getOntologyScopeFactory().createOntologyScope(
- scopeIri, new OntologyRegistryIRISource(testRegistryIri));
+ scope = onm.getOntologyScopeFactory().createOntologyScope(
+ scopeIri, new OntologyRegistryIRISource(testRegistryIri,onm.getOwlCacheManager(),onm.getRegistryLoader()));
} catch (DuplicateIDException e) {
fail("DuplicateID exception caught when creating test scope.");
}
@@ -76,8 +78,8 @@ public class TestRegistry {
CoreOntologySpace space = null;
// The factory call also invokes loadRegistriesEager() and
// gatherOntologies() so no need to test them individually.
- space = context.getOntologySpaceFactory().createCoreOntologySpace(
- scopeIri, new OntologyRegistryIRISource(testRegistryIri));
+ space = onm.getOntologySpaceFactory().createCoreOntologySpace(
+ scopeIri, new OntologyRegistryIRISource(testRegistryIri,onm.getOwlCacheManager(),onm.getRegistryLoader()));
assertTrue(space != null && space.getTopOntology() != null);
}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/session/TestSessions.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/session/TestSessions.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/session/TestSessions.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/test/java/eu/iksproject/kres/manager/session/TestSessions.java Wed Dec 29 18:04:19 2010
@@ -3,6 +3,7 @@ package eu.iksproject.kres.manager.sessi
import static junit.framework.Assert.*;
import java.util.HashSet;
+import java.util.Hashtable;
import java.util.Set;
import org.junit.BeforeClass;
@@ -13,6 +14,7 @@ import org.semanticweb.owlapi.model.OWLO
import org.semanticweb.owlapi.model.OWLOntologyManager;
import eu.iksproject.kres.api.manager.DuplicateIDException;
+import eu.iksproject.kres.api.manager.KReSONManager;
import eu.iksproject.kres.api.manager.ontology.OntologyInputSource;
import eu.iksproject.kres.api.manager.ontology.OntologyScope;
import eu.iksproject.kres.api.manager.ontology.OntologyScopeFactory;
@@ -37,6 +39,8 @@ public class TestSessions {
private static OntologyScopeFactory scopeFactory = null;
+ private static ScopeRegistry scopeRegistry = null;
+
private static KReSSessionManager sesmgr = null;
private static OntologySpaceFactory spaceFactory = null;
@@ -45,11 +49,16 @@ public class TestSessions {
@BeforeClass
public static void setup() {
- sesmgr = ONManager.get().getSessionManager();
- scopeFactory = ONManager.get().getOntologyScopeFactory();
- spaceFactory = ONManager.get().getOntologySpaceFactory();
- if (scopeFactory == null)
+ // An ONManager with no store and default settings
+ KReSONManager onm = new ONManager(null, new Hashtable<String, Object>());
+ sesmgr = onm.getSessionManager();
+ scopeFactory = onm.getOntologyScopeFactory();
+ spaceFactory = onm.getOntologySpaceFactory();
+ scopeRegistry = onm.getScopeRegistry();
+ if (spaceFactory == null)
fail("Could not instantiate ontology space factory");
+ if (scopeFactory == null)
+ fail("Could not instantiate ontology scope factory");
OWLOntologyManager mgr = OWLManager.createOWLOntologyManager();
try {
src1 = new RootOntologySource(mgr.createOntology(baseIri), null);
@@ -80,21 +89,19 @@ public class TestSessions {
@Test
public void testCreateSessionSpaceAutomatic() {
- ScopeRegistry reg = ONManager.get().getScopeRegistry();
OntologyScope scope1 = null, scope2 = null, scope3 = null;
try {
-
scope1 = scopeFactory.createOntologyScope(scopeIri1, src1, src2);
- reg.registerScope(scope1);
+ scopeRegistry.registerScope(scope1);
scope2 = scopeFactory.createOntologyScope(scopeIri2, src2, src1);
- reg.registerScope(scope2);
+ scopeRegistry.registerScope(scope2);
scope3 = scopeFactory.createOntologyScope(scopeIri3, src2, src2);
- reg.registerScope(scope3);
+ scopeRegistry.registerScope(scope3);
// We do all activations after registering, otherwise the component
// property value will override these activations.
- reg.setScopeActive(scopeIri1, true);
- reg.setScopeActive(scopeIri2, false);
- reg.setScopeActive(scopeIri3, true);
+ scopeRegistry.setScopeActive(scopeIri1, true);
+ scopeRegistry.setScopeActive(scopeIri2, false);
+ scopeRegistry.setScopeActive(scopeIri3, true);
} catch (DuplicateIDException e) {
fail("Unexpected DuplicateIDException was caught while testing scope "
+ e.getDulicateID());
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.ontologies/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.ontologies/pom.xml?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.ontologies/pom.xml (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.ontologies/pom.xml Wed Dec 29 18:04:19 2010
@@ -4,18 +4,17 @@
<modelVersion>4.0.0</modelVersion>
-
<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.ontologies</artifactId>
<packaging>bundle</packaging>
- <version>0.6-SNAPSHOT</version>
+ <version>${kres-version}</version>
<name>IKS KReS Ontologies</name>
<description>KReS Ontologies</description>
@@ -23,7 +22,8 @@
<inceptionYear>2010</inceptionYear>
<properties>
- <kres-version>0.6-SNAPSHOT</kres-version>
+ <kres-version>0.7</kres-version>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.reasoners/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.reasoners/pom.xml?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.reasoners/pom.xml (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.reasoners/pom.xml Wed Dec 29 18:04:19 2010
@@ -6,20 +6,20 @@
<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.reasoners</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>${kres-version}</version>
<packaging>bundle</packaging>
<name>IKS KReS Reasoners</name>
<description>Reasoner for SWRL rule and general reasoning</description>
<properties>
- <kres-version>0.6-SNAPSHOT</kres-version>
+ <kres-version>0.7</kres-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
@@ -56,20 +56,23 @@
<version>${kres-version}</version>
</dependency>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.5.6</version>
- <scope>provided</scope>
+ <groupId>owl-link</groupId>
+ <artifactId>owl-link</artifactId>
+ <version>1.0.2</version>
</dependency>
+
+ <!-- Diagnostics deps -->
<dependency>
<groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
+ <artifactId>slf4j-api</artifactId>
<version>1.5.2</version>
+ <scope>provided</scope>
</dependency>
<dependency>
- <groupId>owl-link</groupId>
- <artifactId>owl-link</artifactId>
- <version>1.0.2</version>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.13</version>
+ <scope>provided</scope>
</dependency>
<!-- Testing deps -->
@@ -103,13 +106,12 @@
org.semanticweb.HermiT.*,
com.hp.hpl.jena.*,
org.semanticweb.owlapi.owllink.*,
- org.semanticweb.owlapi.reasoner.*,
- org.slf4j.*;version=${pom.version}
+ org.semanticweb.owlapi.reasoner.*
</Export-Package>
<Import-Package>
com.hp.hpl.jena.*,
org.semanticweb.owlapi.owllink.*,
- org.slf4j.*;version=${pom.version},
+ org.slf4j.*;version=1.5.2,
eu.iksproject.kres.shered.trasformation.*,
org.semanticweb.HermiT.*,
org.semanticweb.owlapi.reasoner.*,
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.reasoners/src/main/java/eu/iksproject/kres/reasoners/KReSReasonerImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.reasoners/src/main/java/eu/iksproject/kres/reasoners/KReSReasonerImpl.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.reasoners/src/main/java/eu/iksproject/kres/reasoners/KReSReasonerImpl.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.reasoners/src/main/java/eu/iksproject/kres/reasoners/KReSReasonerImpl.java Wed Dec 29 18:04:19 2010
@@ -1,15 +1,14 @@
package eu.iksproject.kres.reasoners;
-import java.util.Iterator;
-import java.util.Set;
+import java.util.Dictionary;
+import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Service;
import org.osgi.service.component.ComponentContext;
-import org.semanticweb.owlapi.model.OWLAxiom;
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.reasoner.OWLReasoner;
-import org.semanticweb.owlapi.util.InferredOntologyGenerator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -21,35 +20,77 @@ public class KReSReasonerImpl implements
private final Logger log = LoggerFactory.getLogger(getClass());
+ /**
+ * This default constructor is <b>only</b> intended to be used by the OSGI
+ * environment with Service Component Runtime support.
+ * <p>
+ * DO NOT USE to manually create instances - the KReSRuleStore instances do
+ * need to be configured! YOU NEED TO USE
+ * {@link #KReSReasonerImpl(Dictionary)} or its overloads, to parse the
+ * configuration and then initialise the rule store if running outside a
+ * OSGI environment.
+ */
public KReSReasonerImpl() {
-
}
-
- public OWLReasoner getReasoner(OWLOntology ontology){
- KReSCreateReasoner kReSCreateReasoner = new KReSCreateReasoner(ontology);
- return kReSCreateReasoner.getReasoner();
+
+ /**
+ * Basic constructor to be used if outside of an OSGi environment. Invokes
+ * default constructor.
+ *
+ */
+ public KReSReasonerImpl(Dictionary<String, Object> configuration) {
+ // Always call activate(Dictionary) in the constructor as a golden rule.
+ activate(configuration);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Activate
+ protected void activate(ComponentContext context) {
+ log.info("in " + KReSReasonerImpl.class + " activate with context "
+ + context);
+ if (context == null) {
+ throw new IllegalStateException("No valid" + ComponentContext.class
+ + " parsed in activate!");
+ }
+ activate((Dictionary<String, Object>) context.getProperties());
+ }
+
+ protected void activate(Dictionary<String, Object> configuration) {
+
}
+ /*
+ * (non-Javadoc)
+ * @see eu.iksproject.kres.api.reasoners.KReSReasoner#consistencyCheck(org.semanticweb.owlapi.reasoner.OWLReasoner)
+ */
public boolean consistencyCheck(OWLReasoner owlReasoner){
KReSRunReasoner kReSRunReasoner = new KReSRunReasoner(owlReasoner);
return kReSRunReasoner.isConsistent();
}
- protected void activate(ComponentContext context){
-
- log.info("Activated KReS Reasoning Services");
+ @Deactivate
+ protected void deactivate(ComponentContext context) {
+ log.info("in " + KReSReasonerImpl.class + " deactivate with context "
+ + context);
}
- protected void deactivate(ComponentContext context){
- log.info("Dectivated KReS Reasoning Services");
+ /*
+ * (non-Javadoc)
+ * @see eu.iksproject.kres.api.reasoners.KReSReasoner#getReasoner(org.semanticweb.owlapi.model.OWLOntology)
+ */
+ public OWLReasoner getReasoner(OWLOntology ontology) {
+ KReSCreateReasoner kReSCreateReasoner = new KReSCreateReasoner(ontology);
+ return kReSCreateReasoner.getReasoner();
}
+ /*
+ * (non-Javadoc)
+ * @see eu.iksproject.kres.api.reasoners.KReSReasoner#runRules(org.semanticweb.owlapi.model.OWLOntology, org.semanticweb.owlapi.model.OWLOntology)
+ */
@Override
public OWLOntology runRules(OWLOntology ontology, OWLOntology ruleOntology){
-
KReSRunRules kReSRunRules = new KReSRunRules(ruleOntology, ontology);
return kReSRunRules.runRulesReasoner();
-
}
}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/KReSConf/rmi_config.owl
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/KReSConf/rmi_config.owl?rev=1053689&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/KReSConf/rmi_config.owl (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/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 -> 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 -> 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 = <http://www.semanticweb.org/ontologies/2010/6/ProvaParent.owl#> . rule1[ has(ProvaParent:hasParent, ?x, ?y) . has(ProvaParent:hasBrother, ?y, ?z) -> 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.rules/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/pom.xml?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/pom.xml (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/pom.xml Wed Dec 29 18:04:19 2010
@@ -17,14 +17,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.rules</artifactId>
<packaging>bundle</packaging>
- <version>0.6-SNAPSHOT</version>
+ <version>${kres-version}</version>
<name>IKS KReS Rules</name>
<description>KReS Rules</description>
@@ -32,7 +32,8 @@
<inceptionYear>2010</inceptionYear>
<properties>
- <kres-version>0.6-SNAPSHOT</kres-version>
+ <kres-version>0.7</kres-version>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
@@ -44,11 +45,11 @@
<configuration>
<instructions>
<Export-Package>
- eu.iksproject.kres.rules.*;version=${pom.version},
- org.slf4j.*;version=${pom.version}
+ eu.iksproject.kres.rules.*;version=${pom.version}
</Export-Package>
<Import-Package>
- org.slf4j.*;version=${pom.version},
+ org.slf4j.*;version=1.5.2,
+ org.xml.sax.*,
!javax.xml.stream.*,
!junit.*,
!org.junit.*,
@@ -80,12 +81,6 @@
<version>1.2.0</version>
</dependency>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.5.6</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>eu.iksproject</groupId>
<artifactId>eu.iksproject.kres.api</artifactId>
<version>${kres-version}</version>
@@ -127,6 +122,28 @@
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
+
+ <!-- Diagnostics deps -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.5.2</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.5.2</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- for testing -->
+ <dependency>
+ <groupId>eu.iksproject</groupId>
+ <artifactId>eu.iksproject.kres.manager</artifactId>
+ <version>${kres-version}</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
@@ -139,6 +156,7 @@
</exclusion>
</exclusions>
</dependency>
+
</dependencies>
</project>
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSAddRecipe.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSAddRecipe.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSAddRecipe.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSAddRecipe.java Wed Dec 29 18:04:19 2010
@@ -419,7 +419,12 @@ public class KReSAddRecipe {
}
//Add single rule
- for(int r=0; r<rules.size()-1; r++){
+
+ /*
+ * BUGFIX - previously the check was done on rules.size()-1.
+ *
+ */
+ for(int r=0; r<rules.size(); r++){
ind = factory.getOWLNamedIndividual(rules.get(r));
if(owlmodel.containsAxiom(factory.getOWLClassAssertionAxiom(kresrule, ind))){
//Add the rule to the recipes
@@ -427,7 +432,6 @@ public class KReSAddRecipe {
owlmanager.addAxiom(owlmodel, objectPropAssertion);
ok = true;
//Add precedes
- int size = rules.size();
OWLNamedIndividual indf = factory.getOWLNamedIndividual(rules.get(r+1));
if(owlmodel.containsAxiom(factory.getOWLClassAssertionAxiom(kresrule, indf))){
objectPropAssertion = factory.getOWLObjectPropertyAssertionAxiom(precedes,ind,indf);
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSRuleStore.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSRuleStore.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSRuleStore.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSRuleStore.java Wed Dec 29 18:04:19 2010
@@ -8,12 +8,17 @@ package eu.iksproject.kres.rules.manager
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Dictionary;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
import java.util.Vector;
+import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
@@ -34,6 +39,7 @@ import org.semanticweb.owlapi.model.OWLO
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
import org.semanticweb.owlapi.model.OWLOntologyManager;
import org.semanticweb.owlapi.model.OWLOntologyStorageException;
+import org.semanticweb.owlapi.util.OWLEntityRemover;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -46,8 +52,6 @@ import eu.iksproject.kres.api.rules.util
import eu.iksproject.kres.api.semion.util.RecipeList;
import eu.iksproject.kres.rules.KReSKB;
import eu.iksproject.kres.rules.parser.KReSRuleParser;
-import java.util.Collections;
-import org.semanticweb.owlapi.util.OWLEntityRemover;
/**
* This class creates an OWLOntology object where to store rules and recipes.
@@ -70,7 +74,7 @@ public class KReSRuleStore implements Ru
@Property(value = "http://kres.iks-project.eu/ontology/meta/rmi.owl#")
public static final String RULE_ONTOLOGY_NAMESPACE = "rule.ontology.namespace";
- private static Logger log = LoggerFactory.getLogger(KReSRuleStore.class);
+ private final Logger log = LoggerFactory.getLogger(getClass());
private OWLOntology owlmodel;
private String file;
private String alias;
@@ -84,6 +88,14 @@ public class KReSRuleStore implements Ru
* This construct returns KReSRuleStore object with inside an ontology where
* to store the rules.
*
+ * This default constructor is <b>only</b> intended to be used by the OSGI
+ * environment with Service Component Runtime support.
+ * <p>
+ * DO NOT USE to manually create instances - the KReSRuleStore instances do
+ * need to be configured! YOU NEED TO USE
+ * {@link #KReSRuleStore(KReSONManager, Dictionary)} or its overloads, to
+ * parse the configuration and then initialise the rule store if running
+ * outside a OSGI environment.
*/
public KReSRuleStore() {
@@ -91,7 +103,13 @@ public class KReSRuleStore implements Ru
* The constructor should be empty as some issue derives from a filled
* one. The old version can be invoked with KReSRuleStore(null)
*/
+ }
+ public KReSRuleStore(KReSONManager onm,
+ Dictionary<String, Object> configuration) {
+ this();
+ this.onManager = onm;
+ activate(configuration);
}
/**
@@ -100,7 +118,15 @@ public class KReSRuleStore implements Ru
* @param filepath
* {Ontology file path previously stored.}
*/
- public KReSRuleStore(String filepath) {
+ public KReSRuleStore(KReSONManager onm,
+ Dictionary<String, Object> configuration, String filepath) {
+ /*
+ * FIXME : This won't work if the activate() method is called at the end
+ * of the constructor, like it is for other components. Constructors
+ * should not override activate().
+ */
+ // This recursive constructor call will also invoke activate()
+ this(onm, configuration);
if (filepath.isEmpty()) {
try {
@@ -138,7 +164,9 @@ public class KReSRuleStore implements Ru
log.error(oce.getLocalizedMessage(), oce);
this.owlmodel = null;
}
+
}
+ // activate(configuration);
}
@@ -148,7 +176,15 @@ public class KReSRuleStore implements Ru
* @param owl
* {OWLOntology object contains rules and recipe}
*/
- public KReSRuleStore(OWLOntology owl) {
+ public KReSRuleStore(KReSONManager onm,
+ Dictionary<String, Object> configuration, OWLOntology owl) {
+ /*
+ * FIXME : This won't work if the activate() method is called at the end
+ * of the constructor, like it is for other components. Constructors
+ * should not override activate().
+ */
+ // This recursive constructor call will also invoke activate()
+ this(onm, configuration);
try {
this.owlmodel = owl;
@@ -156,6 +192,7 @@ public class KReSRuleStore implements Ru
log.error(e.getLocalizedMessage(), e);
this.owlmodel = null;
}
+ // activate(configuration);
}
/**
@@ -180,12 +217,28 @@ public class KReSRuleStore implements Ru
this.owlmodel = owl;
}
- protected void activate(ComponentContext context) {
- log.info("Activated KReS Rule Store");
-
- this.file = (String) context.getProperties().get(RULE_ONTOLOGY);
- this.ruleOntologyNS = (String) context.getProperties().get(
- RULE_ONTOLOGY_NAMESPACE);
+ /**
+ * Used to configure an instance within an OSGi container.
+ *
+ * @throws IOException
+ */
+ @SuppressWarnings("unchecked")
+ @Activate
+ protected void activate(ComponentContext context) throws IOException {
+ log.info("in " + KReSRuleStore.class + " activate with context "
+ + context);
+ if (context == null) {
+ throw new IllegalStateException("No valid" + ComponentContext.class
+ + " parsed in activate!");
+ }
+ activate((Dictionary<String, Object>) context.getProperties());
+ }
+
+ protected void activate(Dictionary<String, Object> configuration) {
+
+ this.file = (String) configuration.get(RULE_ONTOLOGY);
+ this.ruleOntologyNS = (String) configuration
+ .get(RULE_ONTOLOGY_NAMESPACE);
if (file == null || file.equals("")) {
// InputStream ontologyStream =
@@ -239,8 +292,10 @@ public class KReSRuleStore implements Ru
}
+ @Deactivate
protected void deactivate(ComponentContext context) {
- log.info("Deactivated KReS Rule Store");
+ log.info("in " + KReSRuleStore.class + " deactivate with context "
+ + context);
}
@Override
@@ -445,7 +500,9 @@ public class KReSRuleStore implements Ru
@Override
public boolean addRecipe(IRI recipeIRI, String recipeDescription) {
boolean ok = false;
- log.debug("Adding recipe "+recipeIRI+" ["+recipeDescription+"]",this);
+ log.debug(
+ "Adding recipe " + recipeIRI + " [" + recipeDescription + "]",
+ this);
OWLOntologyManager owlmanager = OWLManager.createOWLOntologyManager();
OWLDataFactory factory = OWLManager.getOWLDataFactory();
@@ -483,7 +540,8 @@ public class KReSRuleStore implements Ru
}
} else {
- log.error("The recipe with name and the set of rules cannot be empity or null.");
+ log
+ .error("The recipe with name and the set of rules cannot be empity or null.");
ok = false;
return (ok);
}
@@ -592,7 +650,8 @@ public class KReSRuleStore implements Ru
@Override
public void createRecipe(String recipeID, String rulesInKReSSyntax) {
- log.debug("Create recipe " + recipeID + " with rules in kres sytnax "+rulesInKReSSyntax,this);
+ log.debug("Create recipe " + recipeID + " with rules in kres sytnax "
+ + rulesInKReSSyntax, this);
KReSKB kb = KReSRuleParser.parse(rulesInKReSSyntax);
KReSRuleList rules = kb.getkReSRuleList();
@@ -617,14 +676,11 @@ public class KReSRuleStore implements Ru
}
-
private KReSRuleList generateKnowledgeBase(String kReSRulesInKReSSyntax) {
KReSKB kb = KReSRuleParser.parse(kReSRulesInKReSSyntax);
return kb.getkReSRuleList();
}
-
-
@Override
public boolean removeRecipe(Recipe recipe) {
@@ -632,10 +688,12 @@ public class KReSRuleStore implements Ru
OWLDataFactory factory = mng.getOWLDataFactory();
//Create the remover to be used to delete the recipe from the ontology.
- OWLEntityRemover remover = new OWLEntityRemover(mng, Collections.singleton(owlmodel));
+ OWLEntityRemover remover = new OWLEntityRemover(mng, Collections
+ .singleton(owlmodel));
//Create the recipe axiom
- OWLNamedIndividual ontoind = factory.getOWLNamedIndividual(recipe.getRecipeID());
+ OWLNamedIndividual ontoind = factory.getOWLNamedIndividual(recipe
+ .getRecipeID());
//Remove the recipe
ontoind.accept(remover);
@@ -670,10 +728,12 @@ public class KReSRuleStore implements Ru
String ruleNS = "http://kres.iks-project.eu/ontology/meta/rmi.owl#";
//Create the remover to be used to delete the rule from the ontology.
- OWLEntityRemover remover = new OWLEntityRemover(mng, Collections.singleton(owlmodel));
+ OWLEntityRemover remover = new OWLEntityRemover(mng, Collections
+ .singleton(owlmodel));
//Create the rule axiom
- OWLNamedIndividual ontoind = factory.getOWLNamedIndividual(IRI.create((ruleNS+rule.getRuleName())));
+ OWLNamedIndividual ontoind = factory.getOWLNamedIndividual(IRI
+ .create((ruleNS + rule.getRuleName())));
//Remove the rule
ontoind.accept(remover);
@@ -681,12 +741,12 @@ public class KReSRuleStore implements Ru
remover.reset();
//Check if the recipe ahs been removed
- if(owlmodel.containsIndividualInSignature(IRI.create((ruleNS+rule.getRuleName()))))
+ if (owlmodel.containsIndividualInSignature(IRI.create((ruleNS + rule
+ .getRuleName()))))
return false;
else
return true;
}
-
}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSSetRuleStore.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSSetRuleStore.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSSetRuleStore.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/java/eu/iksproject/kres/rules/manager/KReSSetRuleStore.java Wed Dec 29 18:04:19 2010
@@ -5,18 +5,24 @@
package eu.iksproject.kres.rules.manager;
-import eu.iksproject.kres.api.rules.RuleStore;
-import eu.iksproject.kres.api.rules.SetRuleStore;
import java.io.File;
-import org.apache.felix.scr.annotations.Component;
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Service;
+import org.osgi.service.component.ComponentContext;
import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
-import org.osgi.service.component.ComponentContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import eu.iksproject.kres.api.manager.KReSONManager;
+import eu.iksproject.kres.api.rules.RuleStore;
+import eu.iksproject.kres.api.rules.SetRuleStore;
+
/**
*
* @author elvio
@@ -25,58 +31,109 @@ import org.slf4j.LoggerFactory;
@Service(SetRuleStore.class)
public class KReSSetRuleStore implements SetRuleStore{
+ private static Logger log = LoggerFactory.getLogger(KReSSetRuleStore.class);
private String file;
- private RuleStore store;
private KReSLoadRuleFile load;
private OWLOntology ont;
private SetRuleStore setRuleStore;
- private static Logger log = LoggerFactory.getLogger(KReSSetRuleStore.class);
+ private RuleStore store;
/**
- * To directly set the store with a file contains the rules and the recipe
- * @param filepath {The string contains the file path.}
+ * Private constructor used only for not repeating some code on other
+ * constructors. For this purpose, this does NOT call the
+ * <code>activate()</code> method, therefore should ONLY be invoked if
+ * <code>activate()</code> is invoked afterwards.
+ *
+ * @param onm
+ * the KReS ontology manager to be used by the rule store.
*/
- public KReSSetRuleStore(String filepath){
-
- this.file = filepath;
- this.store = new KReSRuleStore();
- this.load = new KReSLoadRuleFile(file, store);
-
+ private KReSSetRuleStore(KReSONManager onm) {
+ // Since the configuration dictionary is empty, default values will be
+ // used instead.
+ this.store = new KReSRuleStore(onm, new Hashtable<String, Object>());
}
/**
- * To directly set the store with an ontology alredy contains rules and recipe
+ * To directly set the store with an ontology already contains rules and
+ * recipe
+ *
* @param ontology
* @throws OWLOntologyCreationException
*/
- public KReSSetRuleStore(File ontology){
-
- this.store = new KReSRuleStore();
-
+ public KReSSetRuleStore(KReSONManager onm, File ontology) {
+ this(onm);
try{
- this.ont = OWLManager.createOWLOntologyManager().loadOntologyFromOntologyDocument(ontology);
+ this.ont = OWLManager.createOWLOntologyManager()
+ .loadOntologyFromOntologyDocument(ontology);
this.store.setStore(ont);
}catch(OWLOntologyCreationException e){
- e.printStackTrace();
+ log.error(e.getMessage(), e);
}
-
+ // Won't do anything in this case, but is invoked as a good practice.
+ activate(new Hashtable<String, Object>());
}
/**
- * To get the rule store;
- * @return {A RuleStore object.}
+ * To directly set the store with a file contains the rules and the recipe
+ *
+ * @param filepath
+ * the string containing the file path.
*/
- public RuleStore returnStore(){
- return this.load.getStore();
+ public KReSSetRuleStore(KReSONManager onm, String filepath) {
+ this(onm);
+ this.file = filepath;
+ this.load = new KReSLoadRuleFile(file, store);
+ // Won't do anything in this case, but is invoked as a good practice.
+ activate(new Hashtable<String, Object>());
}
+ /**
+ * Used to configure an instance within an OSGi container.
+ */
+ @SuppressWarnings("unchecked")
+ @Activate
protected void activate(ComponentContext context,String filepath){
- log.info("Activated KReS Set Rule Store");
+ log.info("in " + KReSSetRuleStore.class + " activate with context "
+ + context);
+ if (context == null) {
+ throw new IllegalStateException("No valid" + ComponentContext.class
+ + " parsed in activate!");
+ }
+ // Won't do anything in this case, but is invoked as a good practice.
+ activate((Dictionary<String, Object>) context.getProperties());
+ }
+
+ /**
+ * Internally used to configure an instance (within and without an OSGi
+ * container.
+ *
+ * @param configuration
+ */
+ protected void activate(Dictionary<String, Object> configuration) {
+ // There is no configuration for this component, so do nothing.
}
+ /**
+ * Deactivation of the KreSRuleStore resets all its resources.
+ */
+ @Deactivate
protected void deactivate(ComponentContext context){
- log.info("Deactivated KReS Set Rule Store");
+ log.info("in " + KReSSetRuleStore.class + " deactivate with context "
+ + context);
+ file = null;
+ store = null;
+ load = null;
+ ont = null;
+ setRuleStore = null;
}
+ /**
+ * To get the rule store;
+ *
+ * @return {A RuleStore object.}
+ */
+ public RuleStore returnStore() {
+ return this.load.getStore();
}
+}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/resources/RuleOntology/rmi_config.owl
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/resources/RuleOntology/rmi_config.owl?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/resources/RuleOntology/rmi_config.owl (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/resources/RuleOntology/rmi_config.owl Wed Dec 29 18:04:19 2010
@@ -171,5 +171,5 @@
-<!-- Generated by the OWL API (version [Not Released]) http://owlapi.sourceforge.net -->
+<!-- Generated by the OWL API (version 3.0.0.1413) http://owlapi.sourceforge.net -->
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSAddRecipeTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSAddRecipeTest.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSAddRecipeTest.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSAddRecipeTest.java Wed Dec 29 18:04:19 2010
@@ -5,8 +5,13 @@
package eu.iksproject.kres.rules.manager;
+import eu.iksproject.kres.api.manager.KReSONManager;
import eu.iksproject.kres.api.rules.RuleStore;
+import eu.iksproject.kres.manager.ONManager;
+
+import java.util.Dictionary;
import java.util.HashMap;
+import java.util.Hashtable;
import java.util.Iterator;
import java.util.Vector;
import org.junit.After;
@@ -39,18 +44,26 @@ public class KReSAddRecipeTest {
@Before
public void setUp() {
+ Dictionary<String, Object> configuration = new Hashtable<String, Object>();
+ onm = new ONManager(null, new Hashtable<String, Object>());
+ store = new KReSRuleStore(onm, configuration,"./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
}
@After
public void tearDown() {
+ store = null;
+ onm = null;
}
+ public RuleStore store = null;
+ public KReSONManager onm = null;
+
/**
* Test of addRecipe method, of class KReSAddRecipe.
*/
@Test
public void testAddRecipe_3args_1() {
- RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+// RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
OWLOntology owl = store.getOntology();
//Load the example file
KReSLoadRuleFile load = new KReSLoadRuleFile("./src/main/resources/RuleOntology/TestRuleFileExample.txt",store);
@@ -81,7 +94,7 @@ public class KReSAddRecipeTest {
*/
@Test
public void testAddRecipe_4args_1() {
- RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+// RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
OWLOntology owl = store.getOntology();
@@ -108,7 +121,7 @@ public class KReSAddRecipeTest {
*/
@Test
public void testAddRecipe_3args_2() {
- RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+// RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
OWLOntology owl = store.getOntology();
//Load the example file
KReSLoadRuleFile load = new KReSLoadRuleFile("./src/main/resources/RuleOntology/TestRuleFileExample.txt",store);
@@ -139,7 +152,7 @@ public class KReSAddRecipeTest {
*/
@Test
public void testAddRecipeMap() {
- RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+// RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
OWLOntology owl = store.getOntology();
//Load the example file
KReSLoadRuleFile load = new KReSLoadRuleFile("./src/main/resources/RuleOntology/TestRuleFileExample.txt",store);
@@ -185,7 +198,7 @@ public class KReSAddRecipeTest {
*/
@Test
public void testAddRecipeMapIRI() {
- RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+// RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
OWLOntology owl = store.getOntology();
//Load the example file
KReSLoadRuleFile load = new KReSLoadRuleFile("./src/main/resources/RuleOntology/TestRuleFileExample.txt",store);
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSAddRuleTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSAddRuleTest.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSAddRuleTest.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSAddRuleTest.java Wed Dec 29 18:04:19 2010
@@ -5,8 +5,13 @@
package eu.iksproject.kres.rules.manager;
+import eu.iksproject.kres.api.manager.KReSONManager;
import eu.iksproject.kres.api.rules.RuleStore;
+import eu.iksproject.kres.manager.ONManager;
+
+import java.util.Dictionary;
import java.util.HashMap;
+import java.util.Hashtable;
import java.util.Iterator;
import org.junit.After;
import org.junit.AfterClass;
@@ -37,18 +42,26 @@ public class KReSAddRuleTest {
@Before
public void setUp() {
+ Dictionary<String, Object> configuration = new Hashtable<String, Object>();
+ onm = new ONManager(null, new Hashtable<String, Object>());
+ store = new KReSRuleStore(onm, configuration,"./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
}
@After
public void tearDown() {
+ store = null;
+ onm = null;
}
+ public RuleStore store = null;
+ public KReSONManager onm = null;
+
/**
* Test of addRule method, of class KReSAddRule.
*/
@Test
public void testAddRule_3args_1() {
- RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+// RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
String ruleName = "MyRuleA";
String ruleBodyHead = "MyRuleABody -> MyRuleAHead";
@@ -74,7 +87,7 @@ public class KReSAddRuleTest {
*/
@Test
public void testAddRule_3args_2() {
- RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+// RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
OWLOntology owl = store.getOntology();
String ID = owl.getOntologyID().toString().replace("<","").replace(">","")+"#";
IRI ruleName = IRI.create(ID+"MyRuleA");
@@ -100,7 +113,7 @@ public class KReSAddRuleTest {
*/
@Test
public void testAddRuleMap() {
- RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+// RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
OWLOntology owl = store.getOntology();
String ID = owl.getOntologyID().toString().replace("<","").replace(">","")+"#";
HashMap<String, String> ruleBodyHeadMap = new HashMap();
@@ -135,7 +148,7 @@ public class KReSAddRuleTest {
*/
@Test
public void testAddRuleMapIRI() {
- RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+// RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
OWLOntology owl = store.getOntology();
String ID = owl.getOntologyID().toString().replace("<","").replace(">","")+"#";
HashMap<IRI, String> ruleBodyHeadMap = new HashMap();
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSGetRecipeTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSGetRecipeTest.java?rev=1053689&r1=1053688&r2=1053689&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSGetRecipeTest.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/test/java/eu/iksproject/kres/rules/manager/KReSGetRecipeTest.java Wed Dec 29 18:04:19 2010
@@ -5,7 +5,12 @@
package eu.iksproject.kres.rules.manager;
+import eu.iksproject.kres.api.manager.KReSONManager;
import eu.iksproject.kres.api.rules.RuleStore;
+import eu.iksproject.kres.manager.ONManager;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
import java.util.Iterator;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLAxiom;
@@ -37,18 +42,26 @@ public class KReSGetRecipeTest {
@Before
public void setUp() {
+ Dictionary<String, Object> configuration = new Hashtable<String, Object>();
+ onm = new ONManager(null, new Hashtable<String, Object>());
+ store = new KReSRuleStore(onm, configuration,"./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
}
@After
public void tearDown() {
+ store = null;
+ onm = null;
}
+ public RuleStore store = null;
+ public KReSONManager onm = null;
+
/**
* Test of getRule method, of class KReSGetRecipe.
*/
@Test
public void testGetRecipe() {
- RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+// RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
OWLOntology owl = store.getOntology();
String ID = owl.getOntologyID().toString().replace("<", "").replace(">", "")+"#";
@@ -72,7 +85,7 @@ public class KReSGetRecipeTest {
*/
@Test
public void testGetAllRecipes() {
- RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
+// RuleStore store = new KReSRuleStore("./src/main/resources/RuleOntology/TestKReSOntologyRules.owl");
OWLOntology owl = store.getOntology();
String ID = owl.getOntologyID().toString().replace("<", "").replace(">", "")+"#";
//Load the example file