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/15 16:19:33 UTC
svn commit: r1049585 [1/2] - in /incubator/stanbol/trunk/kres:
eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/format/
eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/
eu.iksproject.kres.jersey/ eu.iksproject.kr...
Author: enridaga
Date: Wed Dec 15 15:19:32 2010
New Revision: 1049585
URL: http://svn.apache.org/viewvc?rev=1049585&view=rev
Log:
STANBOL-30 - Patch applied to update the code with some improvements done in the KReS module in the old IKS repository after the migration.
Added:
incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ProvaResource.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/io/BlankOntologySource.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/util/OntologyConstants.java
Modified:
incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/format/KReSFormat.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/OntologyScope.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/JerseyEndpointApplication.java
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/resource/GraphsResource.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/KReSSessionResource.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.jersey/src/main/java/eu/iksproject/kres/jersey/resource/SemionRefactorerResource.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/util/OntologyRenderUtils.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/writers/OWLOntologyWriter.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/test/java/eu/iksproject/kres/jersey/JettyServerTest.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ConfigurationManagement.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/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/OntologyScopeImpl.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/test/java/eu/iksproject/kres/manager/ontology/TestOntologyScope.java
incubator/stanbol/trunk/kres/eu.iksproject.kres.ontologies/src/main/resources/ontologies/onm.owl
incubator/stanbol/trunk/kres/eu.iksproject.kres.rules/src/main/resources/RuleOntology/rmi_config.owl
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/format/KReSFormat.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/format/KReSFormat.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/format/KReSFormat.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/format/KReSFormat.java Wed Dec 15 15:19:32 2010
@@ -14,9 +14,9 @@ public class KReSFormat extends MediaTyp
public static final MediaType OWL_XML_TYPE = new MediaType("application", "owl+xml");
- public static final String MANCHERSTER_OWL = "application/manchester+owl";
+ public static final String MANCHESTER_OWL = "application/manchester+owl";
- public static final MediaType MANCHERSTER_OWL_TYPE = new MediaType("application", "manchester+xml");
+ public static final MediaType MANCHESTER_OWL_TYPE = new MediaType("application", "manchester+xml");
public static final String FUNCTIONAL_OWL = "application/functional+owl";
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/OntologyScope.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/OntologyScope.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/OntologyScope.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.api/src/main/java/eu/iksproject/kres/api/manager/ontology/OntologyScope.java Wed Dec 15 15:19:32 2010
@@ -101,6 +101,21 @@ public interface OntologyScope extends S
public void setUp();
/**
+ * Performs whatever operations are required for making sure the custom
+ * space of this scope is aware of changes occurring in its core space, that
+ * all session spaces are aware of changes in the custom space, and so on.
+ * Typically, this includes updating all import statements in the top
+ * ontologies for each space.<br>
+ * <br>
+ * This method is not intended for usage by ontology managers. Since its
+ * invocation is supposed to be automatic, it should be invoked by whatever
+ * classes are responsible for listening to changes in an ontology
+ * scope/space. In the default implementation, it is the scope itself, yet
+ * the method is left public in order to allow for external controllers.
+ */
+ public void synchronizeSpaces();
+
+ /**
* Performs the operations required for deactivating the ontology scope. In
* general, this is not equivalent to finalizing the object for garbage
* collection. It should be possible to activate the same ontology scope
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=1049585&r1=1049584&r2=1049585&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 15 15:19:32 2010
@@ -86,6 +86,13 @@
</exclusion>
</exclusions>
</dependency>
+ <!--
+ <dependency>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>jersey-multipart</artifactId>
+ <version>1.4</version>
+ </dependency>
+ -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/JerseyEndpointApplication.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/JerseyEndpointApplication.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/JerseyEndpointApplication.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/JerseyEndpointApplication.java Wed Dec 15 15:19:32 2010
@@ -18,6 +18,7 @@ import eu.iksproject.kres.jersey.resourc
import eu.iksproject.kres.jersey.resource.KReSSessionResource;
import eu.iksproject.kres.jersey.resource.ONMOntResource;
//import eu.iksproject.kres.jersey.resource.LinkDiscoveryResource;
+import eu.iksproject.kres.jersey.resource.ProvaResource;
import eu.iksproject.kres.jersey.resource.RESTfulResource;
import eu.iksproject.kres.jersey.resource.ONMRootResource;
import eu.iksproject.kres.jersey.resource.ONMScopeOntologyResource;
@@ -76,6 +77,10 @@ public class JerseyEndpointApplication e
classes.add(GraphsResource.class);
classes.add(DocumentationResource.class);
+
+ classes.add(ProvaResource.class);
+
+
/* REST services */
classes.add(RESTfulResource.class);
/* end rest services */
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=1049585&r1=1049584&r2=1049585&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 15 15:19:32 2010
@@ -90,7 +90,7 @@ public class Recipe extends NavigationMi
KReSFormat.TURTLE,
KReSFormat.OWL_XML,
KReSFormat.FUNCTIONAL_OWL,
- KReSFormat.MANCHERSTER_OWL,
+ KReSFormat.MANCHESTER_OWL,
KReSFormat.RDF_JSON})
public Response getRecipe(@PathParam("uri") String uri){
try{
@@ -217,7 +217,7 @@ public class Recipe extends NavigationMi
KReSFormat.TURTLE,
KReSFormat.OWL_XML,
KReSFormat.FUNCTIONAL_OWL,
- KReSFormat.MANCHERSTER_OWL,
+ KReSFormat.MANCHESTER_OWL,
KReSFormat.RDF_JSON})
public Response addRecipe(@FormParam(value="recipe") String recipe,@FormParam(value="description") String description){
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/GraphsResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/GraphsResource.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/GraphsResource.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/GraphsResource.java Wed Dec 15 15:19:32 2010
@@ -74,7 +74,7 @@ public class GraphsResource extends Navi
@GET
@Path("/resume")
@Produces( {KReSFormat.FUNCTIONAL_OWL,
- KReSFormat.MANCHERSTER_OWL,
+ KReSFormat.MANCHESTER_OWL,
KReSFormat.OWL_XML,
KReSFormat.RDF_XML,
KReSFormat.TURTLE,
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/KReSSessionResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/KReSSessionResource.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/KReSSessionResource.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/KReSSessionResource.java Wed Dec 15 15:19:32 2010
@@ -59,12 +59,9 @@ public class KReSSessionResource extends
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
- @Produces( { KReSFormat.FUNCTIONAL_OWL,
- KReSFormat.MANCHERSTER_OWL,
- KReSFormat.OWL_XML,
- KReSFormat.RDF_XML,
- KReSFormat.TURTLE,
- KReSFormat.RDF_JSON})
+ @Produces(value = { KReSFormat.RDF_XML, KReSFormat.OWL_XML,
+ KReSFormat.TURTLE, KReSFormat.FUNCTIONAL_OWL,
+ KReSFormat.MANCHESTER_OWL, KReSFormat.RDF_JSON })
public Response createSession(@FormParam("scope") String scope,
@Context UriInfo uriInfo,
@Context HttpHeaders headers) {
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMRootResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMRootResource.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMRootResource.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMRootResource.java Wed Dec 15 15:19:32 2010
@@ -1,7 +1,5 @@
package eu.iksproject.kres.jersey.resource;
-import java.util.LinkedList;
-import java.util.List;
import java.util.Set;
import javax.servlet.ServletContext;
@@ -9,6 +7,7 @@ import javax.ws.rs.DELETE;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
@@ -49,7 +48,7 @@ public class ONMRootResource extends Nav
this.servletContext = servletContext;
onm = (KReSONManager) this.servletContext
.getAttribute(KReSONManager.class.getName());
-
+
if (onm == null) {
System.err
.println("[KReS] :: No KReS Ontology Network Manager provided by Servlet Context. Instantiating now...");
@@ -58,6 +57,27 @@ public class ONMRootResource extends Nav
}
/**
+ * RESTful DELETE method that clears the entire scope registry and managed
+ * ontology store.
+ */
+ @DELETE
+ public void clearOntologies() {
+ // First clear the registry...
+ ScopeRegistry reg = onm.getScopeRegistry();
+ for (OntologyScope scope : reg.getRegisteredScopes())
+ reg.deregisterScope(scope);
+ // ...then clear the store.
+ // TODO : the other way around?
+ onm.getOntologyStore().clear();
+ }
+
+ @GET
+ @Path("/{param:.+}")
+ public Response echo(@PathParam("param") String s) {
+ return Response.ok(s).build();
+ }
+
+ /**
* Default GET method for obtaining the set of (both active and, optionally,
* inactive) ontology scopes currently registered with this instance of
* KReS.
@@ -73,39 +93,77 @@ public class ONMRootResource extends Nav
* acceptable by the client.
*/
@GET
- @Produces( { KReSFormat.FUNCTIONAL_OWL,
- KReSFormat.MANCHERSTER_OWL,
- KReSFormat.OWL_XML,
- KReSFormat.RDF_XML,
- KReSFormat.TURTLE,
- KReSFormat.RDF_JSON})
+ @Produces(value = { KReSFormat.RDF_XML, KReSFormat.OWL_XML,
+ KReSFormat.TURTLE, KReSFormat.FUNCTIONAL_OWL,
+ KReSFormat.MANCHESTER_OWL, KReSFormat.RDF_JSON })
public Response getScopes(
@DefaultValue("false") @QueryParam("with-inactive") boolean inactive,
@Context HttpHeaders headers, @Context ServletContext servletContext) {
ScopeRegistry reg = onm.getScopeRegistry();
-
+
Set<OntologyScope> scopes = inactive ? reg.getRegisteredScopes() : reg
.getActiveScopes();
-
+
OWLOntology ontology = ScopeSetRenderer.getScopes(scopes);
return Response.ok(ontology).build();
}
-
- /**
- * RESTful DELETE method that clears the entire scope registry and managed
- * ontology store.
- */
- @DELETE
- public void clearOntologies() {
- // First clear the registry...
- ScopeRegistry reg = onm.getScopeRegistry();
- for (OntologyScope scope : reg.getRegisteredScopes())
- reg.deregisterScope(scope);
- // ...then clear the store.
- // TODO : the other way around?
- onm.getOntologyStore().clear();
- }
+
+ // @Path("upload")
+ // @Consumes(MediaType.MULTIPART_FORM_DATA)
+ // @POST
+ // public void uploadDumb(@FormParam("file") InputStream is) {
+ // Writer writer = new StringWriter();
+ //
+ // char[] buffer = new char[1024];
+ //
+ // try {
+ //
+ // Reader reader = new BufferedReader(
+ //
+ // new InputStreamReader(is, "UTF-8"));
+ //
+ // int n;
+ //
+ // while ((n = reader.read(buffer)) != -1) {
+ //
+ // writer.write(buffer, 0, n);
+ //
+ // }
+ // } catch (IOException ex) {
+ // throw new WebApplicationException(ex);
+ // } finally {
+ //
+ // try {
+ // is.close();
+ // } catch (IOException e) {
+ // throw new WebApplicationException(e);
+ // }
+ //
+ // }
+ // System.out.println(writer.toString());
+ // }
+ //
+ // @Path("formdata")
+ // @Consumes(MediaType.MULTIPART_FORM_DATA)
+ // @POST
+ // public void uploadUrlFormData(
+ // @FormDataParam("file") List<FormDataBodyPart> parts,
+ // @FormDataParam("submit") FormDataBodyPart submit)
+ // throws IOException, ParseException {
+ //
+ // System.out.println("XXXX: " + submit.getMediaType());
+ // System.out.println("XXXX: "
+ // + submit.getHeaders().getFirst("Content-Type"));
+ //
+ // for (FormDataBodyPart bp : parts) {
+ // System.out.println(bp.getMediaType());
+ // System.out.println(bp.getHeaders().get("Content-Disposition"));
+ // System.out.println(bp.getParameterizedHeaders().getFirst(
+ // "Content-Disposition").getParameters().get("name"));
+ // bp.cleanup();
+ // }
+ // }
}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMScopeOntologyResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMScopeOntologyResource.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMScopeOntologyResource.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMScopeOntologyResource.java Wed Dec 15 15:19:32 2010
@@ -1,5 +1,7 @@
package eu.iksproject.kres.jersey.resource;
+import static javax.ws.rs.core.Response.Status.*;
+
import java.net.URI;
import java.util.Set;
@@ -9,14 +11,12 @@ import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
-import org.coode.owlapi.turtle.TurtleOntologyFormat;
import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.io.RDFXMLOntologyFormat;
import org.semanticweb.owlapi.model.IRI;
@@ -33,8 +33,8 @@ import eu.iksproject.kres.api.manager.on
import eu.iksproject.kres.api.manager.ontology.OntologySpace;
import eu.iksproject.kres.api.manager.ontology.OntologySpaceModificationException;
import eu.iksproject.kres.api.manager.ontology.ScopeRegistry;
-import eu.iksproject.kres.manager.io.RootOntologySource;
import eu.iksproject.kres.jersey.util.OntologyRenderUtils;
+import eu.iksproject.kres.manager.io.RootOntologySource;
/**
* This resource represents ontologies loaded within a scope.
@@ -70,7 +70,9 @@ public class ONMScopeOntologyResource ex
* ontology is not loaded within that scope.
*/
@GET
- @Produces(value={KReSFormat.RDF_XML, KReSFormat.RDF_JSON, KReSFormat.FUNCTIONAL_OWL, KReSFormat.MANCHERSTER_OWL, KReSFormat.TURTLE})
+ @Produces(value = { KReSFormat.RDF_XML, KReSFormat.OWL_XML,
+ KReSFormat.TURTLE, KReSFormat.FUNCTIONAL_OWL,
+ KReSFormat.MANCHESTER_OWL, KReSFormat.RDF_JSON })
public Response getScopeOntology(@PathParam("scopeid") String scopeid,
@PathParam("uri") String ontologyid, @Context UriInfo uriInfo) {
@@ -80,76 +82,79 @@ public class ONMScopeOntologyResource ex
IRI sciri = IRI.create(uri);
IRI ontiri = IRI.create(ontologyid);
-// System.err.println("Looking for ontology with id " + ontiri
-// + " in scope " + sciri + " ...");
+
+ // TODO: hack (ma anche no)
+ if (!ontiri.isAbsolute())
+ ontiri = IRI.create(absur);
+
ScopeRegistry reg = onm.getScopeRegistry();
OntologyScope scope = reg.getScope(sciri);
if (scope == null)
- return Response.status(404).build();
+ return Response.status(NOT_FOUND).build();
+
+ /* BEGIN debug code, uncomment only for local testing */
+ // OWLOntology test = null, top = null;
+ // test = scope.getCustomSpace().getOntology(ontiri);
+ // System.out.println("Ontology " + ontiri);
+ // for (OWLImportsDeclaration imp : test.getImportsDeclarations())
+ // System.out.println("\timports " + imp.getIRI());
+ // top = scope.getCoreSpace().getTopOntology();
+ // System.out.println("Core root for scope " + scopeid);
+ // for (OWLImportsDeclaration imp : top.getImportsDeclarations())
+ // System.out.println("\timports " + imp.getIRI());
+ /* END debug code */
- OntologySpace cs = scope.getCustomSpace();
-// System.err.println("check custom");
-// for (OWLOntology o : cs.getOntologies()) {
-// System.err.println("\thas "+o);
-// }
-// System.err.println("check core");
-// for (OWLOntology o : scope.getCoreSpace().getOntologies()) {
-// System.err.println("\thas "+o);
-// }
OWLOntology ont = null;
- if (cs != null) {
- ont = scope.getCustomSpace().getOntology(ontiri);
- }
+ // By default, always try retrieving the ontology from the custom space
+ // first.
+ OntologySpace space = scope.getCustomSpace();
+ if (space == null)
+ space = scope.getCoreSpace();
+ if (space != null)
+ ont = space.getOntology(ontiri);
+
if (ont == null) {
- ont = scope.getCoreSpace().getOntology(ontiri);
- }
- if (ont == null){
OWLOntologyManager man = OWLManager.createOWLOntologyManager();
- final Set<OWLOntology> ontologies = scope.getSessionSpace(ontiri).getOntologies();
-
+ final Set<OWLOntology> ontologies = scope.getSessionSpace(ontiri)
+ .getOntologies();
+
OWLOntologySetProvider provider = new OWLOntologySetProvider() {
-
+
@Override
public Set<OWLOntology> getOntologies() {
- System.out.println("ID SPACE : "+ontologies);
+ // System.out.println("ID SPACE : " + ontologies);
return ontologies;
}
};
OWLOntologyMerger merger = new OWLOntologyMerger(provider);
-
-
- /*Set<OntologySpace> spaces = scope.getSessionSpaces();
- for(OntologySpace space : spaces){
- System.out.println("ID SPACE : "+space.getID());
- }*/
-
-
+
+ /*
+ * Set<OntologySpace> spaces = scope.getSessionSpaces();
+ * for(OntologySpace space : spaces){
+ * System.out.println("ID SPACE : "+space.getID()); }
+ */
+
try {
ont = merger.createMergedOntology(man, ontiri);
} catch (OWLOntologyCreationException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ throw new WebApplicationException(e, INTERNAL_SERVER_ERROR);
}
-
-
+
}
if (ont == null) {
- return Response.status(404).build();
+ return Response.status(NOT_FOUND).build();
}
String res = null;
try {
res = OntologyRenderUtils.renderOntology(ont,
- new RDFXMLOntologyFormat(),sciri.toString(),onm);
+ new RDFXMLOntologyFormat(), sciri.toString(), onm);
} catch (OWLOntologyStorageException e) {
- e.printStackTrace();
- return Response.status(500).build();
+ throw new WebApplicationException(e, INTERNAL_SERVER_ERROR);
}
return Response.ok(res).build();
}
-
-
/**
* Unloads an ontology from an ontology scope.
*
@@ -163,7 +168,7 @@ public class ONMScopeOntologyResource ex
@PathParam("uri") String ontologyid, @Context UriInfo uriInfo,
@Context HttpHeaders headers) {
- if (ontologyid != null || !ontologyid.equals("")) {
+ if (ontologyid != null && !ontologyid.equals("")) {
String scopeURI = uriInfo.getAbsolutePath().toString().replace(
ontologyid, "");
System.out.println("Received DELETE request for ontology "
@@ -183,7 +188,7 @@ public class ONMScopeOntologyResource ex
reg.setScopeActive(scopeIri, true);
} catch (OntologySpaceModificationException e) {
reg.setScopeActive(scopeIri, true);
- throw new WebApplicationException(e, 500);
+ throw new WebApplicationException(e, INTERNAL_SERVER_ERROR);
}
}
}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMScopeResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMScopeResource.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMScopeResource.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ONMScopeResource.java Wed Dec 15 15:19:32 2010
@@ -1,9 +1,6 @@
package eu.iksproject.kres.jersey.resource;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.CONFLICT;
-import static javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR;
-import static javax.ws.rs.core.Response.Status.NO_CONTENT;
+import static javax.ws.rs.core.Response.Status.*;
import javax.servlet.ServletContext;
import javax.ws.rs.Consumes;
@@ -24,13 +21,11 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
-import org.coode.owlapi.turtle.TurtleOntologyFormat;
-import org.semanticweb.owlapi.io.RDFXMLOntologyFormat;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
-import org.semanticweb.owlapi.model.OWLOntologyStorageException;
+import eu.iksproject.kres.api.format.KReSFormat;
import eu.iksproject.kres.api.manager.DuplicateIDException;
import eu.iksproject.kres.api.manager.KReSONManager;
import eu.iksproject.kres.api.manager.ontology.OntologyInputSource;
@@ -39,7 +34,6 @@ import eu.iksproject.kres.api.manager.on
import eu.iksproject.kres.api.manager.ontology.OntologySpace;
import eu.iksproject.kres.api.manager.ontology.ScopeRegistry;
import eu.iksproject.kres.api.manager.ontology.UnmodifiableOntologySpaceException;
-import eu.iksproject.kres.jersey.util.OntologyRenderUtils;
import eu.iksproject.kres.manager.ONManager;
import eu.iksproject.kres.manager.io.OntologyRegistryIRISource;
import eu.iksproject.kres.manager.io.RootOntologyIRISource;
@@ -64,7 +58,7 @@ public class ONMScopeResource extends Na
.println("[KReS] :: No KReS Ontology Network Manager provided by Servlet Context. Instantiating now...");
onm = new ONManager();
}
-
+
}
@DELETE
@@ -82,7 +76,9 @@ public class ONMScopeResource extends Na
}
@GET
- @Produces("application/rdf+xml")
+ @Produces(value = { KReSFormat.RDF_XML, KReSFormat.OWL_XML,
+ KReSFormat.TURTLE, KReSFormat.FUNCTIONAL_OWL,
+ KReSFormat.MANCHESTER_OWL, KReSFormat.RDF_JSON })
public Response getTopOntology(@Context UriInfo uriInfo,
@Context HttpHeaders headers, @Context ServletContext servletContext) {
@@ -100,64 +96,7 @@ public class ONMScopeResource extends Na
if (ont == null)
ont = scope.getCoreSpace().getTopOntology();
- String s = null;
- try {
- s = OntologyRenderUtils.renderOntology(ont,
- new RDFXMLOntologyFormat(), uriInfo.getAbsolutePath()
- .toString(), onm);
- } catch (OWLOntologyStorageException e1) {
- throw new WebApplicationException(e1, INTERNAL_SERVER_ERROR);
- }
-
- // OWLOntologyManager tmpmgr = OWLManager.createOWLOntologyManager();
- // StringDocumentTarget tgt = new StringDocumentTarget();
- // try {
- // tmpmgr.saveOntology(ont, new RDFXMLOntologyFormat(), tgt);
- // } catch (OWLOntologyStorageException e) {
- // e.printStackTrace();
- // return Response.status(INTERNAL_SERVER_ERROR).build();
- // }
- return Response.ok(s).build();
-
- }
-
- @GET
- @Produces("text/turtle")
- public Response getTopOntologyT(@Context UriInfo uriInfo,
- @Context HttpHeaders headers, @Context ServletContext servletContext) {
-
- ScopeRegistry reg = onm.getScopeRegistry();
-
- OntologyScope scope = reg.getScope(IRI
- .create(uriInfo.getAbsolutePath()));
- if (scope == null)
- return Response.status(NO_CONTENT).build();
-
- OntologySpace cs = scope.getCustomSpace();
- OWLOntology ont = null;
- if (cs != null)
- ont = scope.getCustomSpace().getTopOntology();
- if (ont == null)
- ont = scope.getCoreSpace().getTopOntology();
-
- String s = null;
- try {
- s = OntologyRenderUtils.renderOntology(ont,
- new TurtleOntologyFormat(), uriInfo.getAbsolutePath()
- .toString(), onm);
- } catch (OWLOntologyStorageException e1) {
- throw new WebApplicationException(e1, INTERNAL_SERVER_ERROR);
- }
-
- // OWLOntologyManager tmpmgr = OWLManager.createOWLOntologyManager();
- // StringDocumentTarget tgt = new StringDocumentTarget();
- // try {
- // tmpmgr.saveOntology(ont, new TurtleOntologyFormat(), tgt);
- // } catch (OWLOntologyStorageException e) {
- // e.printStackTrace();
- // return Response.status(INTERNAL_SERVER_ERROR).build();
- // }
- return Response.ok(s).build();
+ return Response.ok(ont).build();
}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ProvaResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ProvaResource.java?rev=1049585&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ProvaResource.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/ProvaResource.java Wed Dec 15 15:19:32 2010
@@ -0,0 +1,21 @@
+package eu.iksproject.kres.jersey.resource;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.core.Response;
+
+@Path("/prova")
+public class ProvaResource extends NavigationMixin {
+
+ @GET
+ public Response prova() {
+ return Response.ok("ci hai provato").build();
+ }
+
+ @GET
+ @Path("/saluto")
+ public Response saluto() {
+ return Response.ok("ciao").build();
+ }
+
+}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/SemionRefactorerResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/SemionRefactorerResource.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/SemionRefactorerResource.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/resource/SemionRefactorerResource.java Wed Dec 15 15:19:32 2010
@@ -120,7 +120,7 @@ public class SemionRefactorerResource ex
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(value = {KReSFormat.TURTLE,
KReSFormat.FUNCTIONAL_OWL,
- KReSFormat.MANCHERSTER_OWL,
+ KReSFormat.MANCHESTER_OWL,
KReSFormat.RDF_XML,
KReSFormat.OWL_XML,
KReSFormat.RDF_JSON})
@@ -192,7 +192,7 @@ public class SemionRefactorerResource ex
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces({KReSFormat.TURTLE,
KReSFormat.FUNCTIONAL_OWL,
- KReSFormat.MANCHERSTER_OWL,
+ KReSFormat.MANCHESTER_OWL,
KReSFormat.RDF_XML,
KReSFormat.OWL_XML,
KReSFormat.RDF_JSON})
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/util/OntologyRenderUtils.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/util/OntologyRenderUtils.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/util/OntologyRenderUtils.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/util/OntologyRenderUtils.java Wed Dec 15 15:19:32 2010
@@ -148,7 +148,7 @@ public class OntologyRenderUtils {
// TODO Auto-generated catch block
e.printStackTrace();
}
- } else if (format.equals(KReSFormat.MANCHERSTER_OWL)) {
+ } else if (format.equals(KReSFormat.MANCHESTER_OWL)) {
try {
tmpmgr.saveOntology(o2,
new ManchesterOWLSyntaxOntologyFormat(), tgt);
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/writers/OWLOntologyWriter.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/writers/OWLOntologyWriter.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/writers/OWLOntologyWriter.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/writers/OWLOntologyWriter.java Wed Dec 15 15:19:32 2010
@@ -1,13 +1,9 @@
package eu.iksproject.kres.jersey.writers;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
-import java.util.Iterator;
import javax.servlet.ServletContext;
import javax.ws.rs.Produces;
@@ -19,15 +15,11 @@ import javax.ws.rs.ext.MessageBodyWriter
import javax.ws.rs.ext.Provider;
import org.apache.clerezza.rdf.core.MGraph;
-import org.apache.clerezza.rdf.core.Triple;
import org.apache.clerezza.rdf.core.serializedform.Serializer;
import org.apache.clerezza.rdf.core.serializedform.SupportedFormat;
-import org.apache.clerezza.rdf.jena.serializer.JenaSerializerProvider;
import org.apache.clerezza.rdf.rdfjson.serializer.RdfJsonSerializingProvider;
-import org.apache.commons.lang.SystemUtils;
import org.coode.owlapi.manchesterowlsyntax.ManchesterOWLSyntaxOntologyFormat;
import org.coode.owlapi.turtle.TurtleOntologyFormat;
-import org.json.simple.JSONArray;
import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.io.OWLFunctionalSyntaxOntologyFormat;
import org.semanticweb.owlapi.io.OWLXMLOntologyFormat;
@@ -35,32 +27,33 @@ import org.semanticweb.owlapi.io.RDFXMLO
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.model.OWLOntologyManager;
import org.semanticweb.owlapi.model.OWLOntologyStorageException;
-
-import com.hp.hpl.jena.rdf.model.Model;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import eu.iksproject.kres.api.format.KReSFormat;
-import eu.iksproject.kres.shared.transformation.JenaToOwlConvert;
import eu.iksproject.kres.shared.transformation.OWLAPIToClerezzaConverter;
@Provider
-@Produces( { KReSFormat.RDF_XML, KReSFormat.OWL_XML, KReSFormat.MANCHERSTER_OWL,
- KReSFormat.FUNCTIONAL_OWL, KReSFormat.TURTLE, KReSFormat.RDF_JSON})
+@Produces( { KReSFormat.RDF_XML, KReSFormat.OWL_XML, KReSFormat.MANCHESTER_OWL,
+ KReSFormat.FUNCTIONAL_OWL, KReSFormat.TURTLE, KReSFormat.RDF_JSON })
public class OWLOntologyWriter implements MessageBodyWriter<OWLOntology> {
protected Serializer serializer;
-
+
protected ServletContext servletContext;
-
+
public OWLOntologyWriter(@Context ServletContext servletContext) {
+ Logger log = LoggerFactory.getLogger(getClass());
this.servletContext = servletContext;
- System.out.println("setted context "+servletContext);
- serializer = (Serializer) this.servletContext.getAttribute(Serializer.class.getName());
- if(serializer == null){
- System.out.println("Serializer not found in ServletContext");
+ log.info("Setting context to " + servletContext);
+ serializer = (Serializer) this.servletContext
+ .getAttribute(Serializer.class.getName());
+ if (serializer == null) {
+ log.info("Serializer not found in Servlet context.");
serializer = new Serializer();
}
}
-
+
@Override
public long getSize(OWLOntology arg0, Class<?> arg1, Type arg2,
Annotation[] arg3, MediaType arg4) {
@@ -70,7 +63,7 @@ public class OWLOntologyWriter implement
@Override
public boolean isWriteable(Class<?> type, Type genericType,
- Annotation[] annotations, MediaType mediaType) {
+ Annotation[] annotations, MediaType mediaType) {
return OWLOntology.class.isAssignableFrom(type);
}
@@ -79,65 +72,56 @@ public class OWLOntologyWriter implement
Annotation[] arg3, MediaType mediaType,
MultivaluedMap<String, Object> arg5, OutputStream out)
throws IOException, WebApplicationException {
-
-
- OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
-
-
- System.out.println("KReS FORMAT!!! : "+mediaType);
- System.out.println("KReS FORMAT 2!!! : "+mediaType.getType());
- if(mediaType.toString().equals(KReSFormat.RDF_XML)){
- try {
- System.out.println("RDF/XML!!!");
- manager.saveOntology(ontology, new RDFXMLOntologyFormat(), out);
- } catch (OWLOntologyStorageException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- else if(mediaType.toString().equals(KReSFormat.OWL_XML)){
- try {
- manager.saveOntology(ontology, new OWLXMLOntologyFormat(), out);
- } catch (OWLOntologyStorageException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- else if(mediaType.toString().equals(KReSFormat.MANCHERSTER_OWL)){
- try {
- manager.saveOntology(ontology, new ManchesterOWLSyntaxOntologyFormat(), out);
- } catch (OWLOntologyStorageException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- else if(mediaType.toString().equals(KReSFormat.FUNCTIONAL_OWL)){
- try {
- manager.saveOntology(ontology, new OWLFunctionalSyntaxOntologyFormat(), out);
- } catch (OWLOntologyStorageException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- else if(mediaType.toString().equals(KReSFormat.TURTLE)){
- try {
- manager.saveOntology(ontology, new TurtleOntologyFormat(), out);
- } catch (OWLOntologyStorageException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- else if(mediaType.toString().equals(KReSFormat.RDF_JSON)){
-
- MGraph mGraph = OWLAPIToClerezzaConverter.owlOntologyToClerezzaMGraph(ontology);
-
- RdfJsonSerializingProvider provider = new RdfJsonSerializingProvider();
- provider.serialize(out, mGraph, SupportedFormat.RDF_JSON);
-
- }
-
- out.flush();
+
+ Logger log = LoggerFactory.getLogger(getClass());
+ OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
+
+ log.debug("Rendering ontology " + ontology.getOntologyID()
+ + "to KReS format " + mediaType);
+
+ if (mediaType.toString().equals(KReSFormat.RDF_XML)) {
+ try {
+ manager.saveOntology(ontology, new RDFXMLOntologyFormat(), out);
+ } catch (OWLOntologyStorageException e) {
+ log.error("Failed to store ontology for rendering.", e);
+ }
+ } else if (mediaType.toString().equals(KReSFormat.OWL_XML)) {
+ try {
+ manager.saveOntology(ontology, new OWLXMLOntologyFormat(), out);
+ } catch (OWLOntologyStorageException e) {
+ log.error("Failed to store ontology for rendering.", e);
+ }
+ } else if (mediaType.toString().equals(KReSFormat.MANCHESTER_OWL)) {
+ try {
+ manager.saveOntology(ontology,
+ new ManchesterOWLSyntaxOntologyFormat(), out);
+ } catch (OWLOntologyStorageException e) {
+ log.error("Failed to store ontology for rendering.", e);
+ }
+ } else if (mediaType.toString().equals(KReSFormat.FUNCTIONAL_OWL)) {
+ try {
+ manager.saveOntology(ontology,
+ new OWLFunctionalSyntaxOntologyFormat(), out);
+ } catch (OWLOntologyStorageException e) {
+ log.error("Failed to store ontology for rendering.", e);
+ }
+ } else if (mediaType.toString().equals(KReSFormat.TURTLE)) {
+ try {
+ manager.saveOntology(ontology, new TurtleOntologyFormat(), out);
+ } catch (OWLOntologyStorageException e) {
+ log.error("Failed to store ontology for rendering.", e);
+ }
+ } else if (mediaType.toString().equals(KReSFormat.RDF_JSON)) {
+
+ MGraph mGraph = OWLAPIToClerezzaConverter
+ .owlOntologyToClerezzaMGraph(ontology);
+
+ RdfJsonSerializingProvider provider = new RdfJsonSerializingProvider();
+ provider.serialize(out, mGraph, SupportedFormat.RDF_JSON);
+
+ }
+
+ out.flush();
}
-
}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/test/java/eu/iksproject/kres/jersey/JettyServerTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/test/java/eu/iksproject/kres/jersey/JettyServerTest.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/test/java/eu/iksproject/kres/jersey/JettyServerTest.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.jersey/src/test/java/eu/iksproject/kres/jersey/JettyServerTest.java Wed Dec 15 15:19:32 2010
@@ -2,7 +2,10 @@ package eu.iksproject.kres.jersey;
import static org.junit.Assert.*;
+import java.io.File;
+
import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.MediaType;
import org.junit.AfterClass;
import org.junit.Before;
@@ -10,7 +13,9 @@ import org.junit.BeforeClass;
import org.junit.Test;
import com.sun.jersey.api.client.Client;
+import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
+import com.sun.jersey.api.client.ClientResponse.Status;
import com.sun.jersey.api.representation.Form;
import eu.iksproject.kres.api.format.KReSFormat;
@@ -85,6 +90,47 @@ public class JettyServerTest {
}
+ @Test
+ public void testEcho() throws Exception {
+
+ boolean eq = true;
+
+ Client client = Client.create();
+ WebResource resUpload = client.resource(__TEST_URI + "prova");
+
+ resUpload.get(String.class);
+ ClientResponse head = resUpload.head();
+ int status = head.getStatus();
+ head.close();
+ eq &= status == Status.OK.getStatusCode();
+
+ resUpload = client.resource(__TEST_URI + "prova/saluto");
+
+ resUpload.get(String.class);
+ head = resUpload.head();
+ status = head.getStatus();
+ head.close();
+ eq &= status == Status.OK.getStatusCode();
+
+ client.destroy();
+
+ assertTrue(eq);
+
+ }
+
+ public void testOntologyUpload() throws Exception {
+ WebResource resUpload = client.resource(_ROOT_URI + "/upload");
+
+ Form f = new Form();
+ f
+ .add("file", new File(
+ "./src/main/resources/TestFile/ProvaParent.owl"));
+
+ //resUpload.type(MediaType.MULTIPART_FORM_DATA).post();
+
+ assertTrue(true);
+ }
+
/**
* Tests that the creation of active and inactive scopes is reflected in the
* RDF version of the scope set, whether it is set to display all scopes or
@@ -92,11 +138,12 @@ public class JettyServerTest {
*
* @throws Exception
*/
-// @Test
+ // @Test
public void testActiveVsAll() throws Exception {
// The needed Web resources to GET from.
WebResource resActive = client.resource(_ROOT_URI);
- WebResource resAllScopes = client.resource(_ROOT_URI + "?with-inactive=true");
+ WebResource resAllScopes = client.resource(_ROOT_URI
+ + "?with-inactive=true");
// Put a simple, inactive scope.
client.resource(SCOPE_USER_URI + "?coreont=" + ONT_FOAF_URI).put(
String.class);
@@ -119,8 +166,8 @@ public class JettyServerTest {
@Test
public void testGetScopes() throws Exception {
- String r = ontologyResource.accept(KReSFormat.RDF_XML).get(
- String.class);
+ String r = ontologyResource.accept(KReSFormat.RDF_XML)
+ .get(String.class);
assertTrue(r
.contains("<imports rdf:resource=\"http://www.ontologydesignpatterns.org/schemas/meta.owl\"/>"));
r = ontologyResource.accept(KReSFormat.TURTLE).get(String.class);
@@ -143,7 +190,7 @@ public class JettyServerTest {
assertTrue(true);
}
-// @Test
+ // @Test
public void testLocking() throws Exception {
// Create a scope with a core ontology and a custom registry.
String r;
@@ -160,8 +207,7 @@ public class JettyServerTest {
f.add("location", ONT_PIZZA_URI);
f.add("registry", "false");
scopeResourceTest2.post(String.class, f);
- r = scopeResourceTest2.accept(KReSFormat.RDF_XML).get(
- String.class);
+ r = scopeResourceTest2.accept(KReSFormat.RDF_XML).get(String.class);
// fail("Addition succeded on existing scope with supposedly locked core space!");
} catch (WebApplicationException ex) {
assertTrue(r != null);
@@ -173,15 +219,15 @@ public class JettyServerTest {
}
-// @Test
+ // @Test
public void testSessionCreation() {
WebResource resource = client.resource(__TEST_URI + "session");
String r = resource.accept(KReSFormat.RDF_XML).post(String.class);
- //System.err.println(r);
+ // System.err.println(r);
assertTrue(true);
}
-// @Test
+ // @Test
public void testScopeManagement() throws Exception {
String rootIdToken = "rdf:about=\"http://localhost:9999/ontology/Pippo%20Baudo/custom/root.owl\"";
String importORToken = "<owl:imports rdf:resource=\"http://www.ontologydesignpatterns.org/cp/owl/objectrole.owl\"/>";
@@ -199,7 +245,7 @@ public class JettyServerTest {
.contains("rdf:type rdf:resource=\"http://kres.iks-project.eu/ontology/onm/meta.owl#Scope\""));
// Check that the top ontology has the correct ID and imports objectrole
r = scopeResourceTest1.accept(KReSFormat.RDF_XML).get(String.class);
- //System.err.println(r);
+ // System.err.println(r);
assertTrue(r.contains(rootIdToken));
assertTrue(r.contains("http://xmlns.com/foaf/spec/index.rdf"));
// Now add an ontology
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ConfigurationManagement.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ConfigurationManagement.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ConfigurationManagement.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ConfigurationManagement.java Wed Dec 15 15:19:32 2010
@@ -1,6 +1,9 @@
package eu.iksproject.kres.manager;
+import static eu.iksproject.kres.manager.util.OntologyConstants.*;
+
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -8,26 +11,86 @@ import java.util.Set;
import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLClass;
+import org.semanticweb.owlapi.model.OWLClassExpression;
import org.semanticweb.owlapi.model.OWLDataFactory;
import org.semanticweb.owlapi.model.OWLDataProperty;
import org.semanticweb.owlapi.model.OWLIndividual;
import org.semanticweb.owlapi.model.OWLLiteral;
import org.semanticweb.owlapi.model.OWLNamedIndividual;
+import org.semanticweb.owlapi.model.OWLObjectProperty;
import org.semanticweb.owlapi.model.OWLOntology;
+/**
+ * <p>
+ * This is the helper class for parsing the ONM configuration ontology. The
+ * configuration ontology should import the following:
+ * </p>
+ * <ul>
+ * <li>http://ontologydesignpatterns.org/ont/iks/kres/onm.owl</li>
+ * </ul>
+ *
+ * <p>
+ * and must use the following vocabs:
+ * </p>
+ * <ul>
+ * <li>http://kres.iks-project.eu/ontology/meta/onm.owl#Scope : defines a scope</li>
+ * <li>http://kres.iks-project.eu/ontology/meta/onm.owl#activateOnStart :
+ * activate the scope on startup</li>
+ * <li>http://kres.iks-project.eu/ontology/meta/onm.owl#usesCoreOntology :
+ * relates a scope to an ontology to be added in the core space</li>
+ * <li>http://kres.iks-project.eu/ontology/meta/onm.owl#usesCoreLibrary :
+ * relates a scope to a library of ontologies to be added in the core space</li>
+ * <li>http://kres.iks-project.eu/ontology/meta/onm.owl#usesCustomOntology :
+ * relates a scope to an ontology to be added in the custom space</li>
+ * <li>http://kres.iks-project.eu/ontology/meta/onm.owl#usesCustomLibrary :
+ * relates scope to a library of ontologies to be added in the custom space</li>
+ * <li>
+ * http://www.ontologydesignpatterns.org/cpont/codo/coddata.owl#OntologyLibrary
+ * : the class of a library</li>
+ * <li>http://www.ontologydesignpatterns.org/schemas/meta.owl#hasOntology : to
+ * relate a library to an ontology</li>
+ * </ul>
+ *
+ * @author alessandro
+ * @author enridaga
+ */
public class ConfigurationManagement {
private static OWLDataFactory _df = OWLManager.getOWLDataFactory();
private static final String[] EMPTY_IRI_ARRAY = new String[0];
- private static final OWLClass cScope = _df.getOWLClass(IRI
- .create("http://kres.iks-project.eu/ontology/meta/onm.owl#Scope"));
+ private static final OWLClass cScope = _df.getOWLClass(IRI.create(NS_ONM
+ + "Scope"));
+
+ private static final OWLClass cLibrary = _df
+ .getOWLClass(IRI
+ .create("http://www.ontologydesignpatterns.org/cpont/codo/coddata.owl#OntologyLibrary"));
private static final OWLDataProperty activateOnStart = _df
- .getOWLDataProperty(IRI
- .create("http://kres.iks-project.eu/ontology/meta/onm.owl#activateOnStart"));
+ .getOWLDataProperty(IRI.create(NS_ONM + "activateOnStart"));
+
+ private static final OWLObjectProperty usesCoreOntology = _df
+ .getOWLObjectProperty(IRI.create(NS_ONM + "usesCoreOntology"));
+
+ private static final OWLObjectProperty usesCoreLibrary = _df
+ .getOWLObjectProperty(IRI.create(NS_ONM + "usesCoreLibrary"));
+
+ private static final OWLObjectProperty usesCustomOntology = _df
+ .getOWLObjectProperty(IRI.create(NS_ONM + "usesCustomOntology"));
+
+ private static final OWLObjectProperty usesCustomLibrary = _df
+ .getOWLObjectProperty(IRI.create(NS_ONM + "usesCustomLibrary"));
+
+ private static final OWLObjectProperty libraryHasOntology = _df
+ .getOWLObjectProperty(IRI.create(NS_ONM + "hasOntology"));
+ /**
+ * Get the list of scopes to activate on startup
+ *
+ * @param config
+ * @return
+ */
public static String[] getScopesToActivate(OWLOntology config) {
Set<OWLIndividual> scopes = cScope.getIndividuals(config);
@@ -52,4 +115,159 @@ public class ConfigurationManagement {
return result.toArray(EMPTY_IRI_ARRAY);
}
+ /**
+ * To get all the instances of Scope in this configuration
+ *
+ * @param config
+ * @return
+ */
+ public static String[] getScopes(OWLOntology config) {
+ Set<OWLIndividual> scopes = cScope.getIndividuals(config);
+ List<String> result = new ArrayList<String>();
+ for (OWLIndividual iScope : scopes) {
+ for (OWLClassExpression sce : iScope.getTypes(config)) {
+ if (sce.containsConjunct(cScope)) {
+ if (iScope.isNamed()) {
+ result.add(((OWLNamedIndividual) iScope).getIRI()
+ .toString());
+ }
+ }
+ }
+ }
+ return result.toArray(EMPTY_IRI_ARRAY);
+ }
+
+ /**
+ * Utility method to get all the values of an object property of a Scope
+ *
+ * @param ontology
+ * @param individualIRI
+ * @param op
+ * @return
+ */
+ private static String[] getScopeObjectPropertyValues(OWLOntology ontology,
+ String individualIRI, OWLObjectProperty op) {
+ Set<OWLIndividual> scopes = cScope.getIndividuals(ontology);
+ List<String> result = new ArrayList<String>();
+
+ OWLIndividual iiScope = null;
+
+ // Optimised loop.
+ for (OWLIndividual ind : scopes) {
+ if (ind.isAnonymous())
+ continue;
+ if (((OWLNamedIndividual) ind).getIRI().toString().equals(
+ individualIRI)) {
+ iiScope = ind;
+ break;
+ }
+ }
+
+ if (iiScope != null) {
+
+ }
+
+ for (OWLIndividual iScope : scopes) {
+ if (iScope.isNamed()) {
+ if (((OWLNamedIndividual) iScope).getIRI().toString().equals(
+ individualIRI)) {
+ Set<OWLIndividual> values = iScope.getObjectPropertyValues(
+ op, ontology);
+
+ Iterator<OWLIndividual> it = values.iterator();
+ while (it.hasNext()) {
+ OWLIndividual i = it.next();
+ if (i.isNamed())
+ result.add(((OWLNamedIndividual) i).getIRI()
+ .toString());
+ }
+ }
+ }
+ }
+
+ return result.toArray(EMPTY_IRI_ARRAY);
+ }
+
+ /**
+ * Utility method to get all the values of a property from a Library subject
+ *
+ * @param ontology
+ * @param individualIRI
+ * @param op
+ * @return
+ */
+ private static String[] getLibraryObjectPropertyValues(
+ OWLOntology ontology, String individualIRI, OWLObjectProperty op) {
+ Set<OWLIndividual> scopes = cLibrary.getIndividuals(ontology);
+ List<String> result = new ArrayList<String>();
+
+ for (OWLIndividual iLibrary : scopes) {
+ if (iLibrary.isNamed()) {
+ if (((OWLNamedIndividual) iLibrary).getIRI().toString().equals(
+ individualIRI)) {
+ Set<OWLIndividual> values = iLibrary
+ .getObjectPropertyValues(op, ontology);
+
+ Iterator<OWLIndividual> it = values.iterator();
+ while (it.hasNext()) {
+ OWLIndividual i = it.next();
+ if (i.isNamed())
+ result.add(((OWLNamedIndividual) iLibrary).getIRI()
+ .toString());
+ }
+ }
+ }
+ }
+
+ return result.toArray(EMPTY_IRI_ARRAY);
+ }
+
+ /**
+ * Returns all the IRIs to be loaded in the core space of the scope
+ *
+ * @param config
+ * @param scopeIRI
+ * @return
+ */
+ public static String[] getCoreOntologies(OWLOntology config, String scopeIRI) {
+ List<String> ontologies = new ArrayList<String>();
+ ontologies.addAll(Arrays.asList(getScopeObjectPropertyValues(config,
+ scopeIRI, usesCoreOntology)));
+
+ for (String libraryID : getCoreLibraries(config, scopeIRI)) {
+ ontologies.addAll(Arrays.asList(getLibraryObjectPropertyValues(
+ config, libraryID, libraryHasOntology)));
+ }
+ return ontologies.toArray(new String[ontologies.size()]);
+ }
+
+ /**
+ * Returns all the resources to be part of the Custom space
+ *
+ * @param config
+ * @param scopeIRI
+ * @return
+ */
+ public static String[] getCustomOntologies(OWLOntology config,
+ String scopeIRI) {
+ List<String> ontologies = new ArrayList<String>();
+ ontologies.addAll(Arrays.asList(getScopeObjectPropertyValues(config,
+ scopeIRI, usesCustomOntology)));
+
+ for (String libraryID : getCustomLibraries(config, scopeIRI)) {
+ ontologies.addAll(Arrays.asList(getLibraryObjectPropertyValues(
+ config, libraryID, libraryHasOntology)));
+ }
+ return ontologies.toArray(new String[ontologies.size()]);
+ }
+
+ private static String[] getCoreLibraries(OWLOntology config, String scopeIRI) {
+ return getScopeObjectPropertyValues(config, scopeIRI, usesCoreLibrary);
+ }
+
+ private static String[] getCustomLibraries(OWLOntology config,
+ String scopeIRI) {
+ return getScopeObjectPropertyValues(config, scopeIRI, usesCustomLibrary);
+ }
+
}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ONManager.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ONManager.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ONManager.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ONManager.java Wed Dec 15 15:19:32 2010
@@ -3,7 +3,6 @@ package eu.iksproject.kres.manager;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
-import java.util.Set;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Property;
@@ -18,19 +17,28 @@ import org.semanticweb.owlapi.io.StreamD
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLDataFactory;
import org.semanticweb.owlapi.model.OWLOntology;
+import org.semanticweb.owlapi.model.OWLOntologyCreationException;
import org.semanticweb.owlapi.model.OWLOntologyManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+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.CustomOntologySpace;
import eu.iksproject.kres.api.manager.ontology.NoSuchScopeException;
import eu.iksproject.kres.api.manager.ontology.OntologyIndex;
+import eu.iksproject.kres.api.manager.ontology.OntologyInputSource;
import eu.iksproject.kres.api.manager.ontology.OntologyScope;
import eu.iksproject.kres.api.manager.ontology.OntologyScopeFactory;
+import eu.iksproject.kres.api.manager.ontology.OntologySpace;
import eu.iksproject.kres.api.manager.ontology.OntologySpaceFactory;
import eu.iksproject.kres.api.manager.ontology.ScopeRegistry;
+import eu.iksproject.kres.api.manager.ontology.UnmodifiableOntologySpaceException;
import eu.iksproject.kres.api.manager.session.KReSSessionManager;
import eu.iksproject.kres.api.storage.OntologyStorage;
+import eu.iksproject.kres.manager.io.BlankOntologySource;
+import eu.iksproject.kres.manager.io.RootOntologyIRISource;
import eu.iksproject.kres.manager.ontology.OntologyIndexImpl;
import eu.iksproject.kres.manager.ontology.OntologyScopeFactoryImpl;
import eu.iksproject.kres.manager.ontology.OntologySpaceFactoryImpl;
@@ -134,89 +142,161 @@ public class ONManager implements KReSON
me = this;
this.ce = ce;
- ScopeRegistry reg = get().getScopeRegistry();
- Set<OntologyScope> scopez = reg.getRegisteredScopes();
-
String path = (String) ce.getProperties().get(CONFIG_FILE_PATH);
- // CONFIG_FILE_PATH can be a path or a URI. Try to make up for both
- OWLOntology oConf = null;
- OWLOntologyManager tempMgr = OWLManager.createOWLOntologyManager();
- OWLOntologyDocumentSource oConfSrc = null;
+
+ /*
+ * If there is no configuration file, just start with an empty scope set
+ */
if (path != null && !path.trim().isEmpty()) {
- // Replace path with default path
- path = "/META-INF/conf/onm.owl";
- InputStream is = this.getClass().getResourceAsStream(path);
- oConfSrc = new StreamDocumentSource(is);
- } else {
- IRI iri = IRI.create(path);
- if (iri.isAbsolute())
- oConfSrc = new IRIDocumentSource(IRI.create(path));
- else
- oConfSrc = new FileDocumentSource(new File(path));
- }
+ OWLOntology oConf = null;
+ OWLOntologyManager tempMgr = OWLManager.createOWLOntologyManager();
+ OWLOntologyDocumentSource oConfSrc = null;
- if (oConfSrc == null)
- log
- .warn("KReS :: [NONFATAL] No ONM configuration file found at path "
- + path + ". Starting with blank scope set.");
- else
try {
- oConf = tempMgr.loadOntologyFromOntologyDocument(oConfSrc);
- // The OWLOntologyManager is brand new, it's impossible for it
- // to throw an OWLOntologyAlreadyExistsException ...
- } catch (Throwable e) {
- log.error(
- "KReS :: [NONFATAL] Invalid ONM configuration file found at path "
- + path + ". Starting with blank scope set.", e);
+ log
+ .debug("Try to load the configuration ontology from a local bundle relative path");
+ InputStream is = this.getClass().getResourceAsStream(path);
+ oConfSrc = new StreamDocumentSource(is);
+ } catch (Exception e1) {
+ try {
+ log.debug("Cannot load from a local bundle relative path",
+ e1);
+ log
+ .debug("Try to load the configuration ontology resolving the given IRI");
+ IRI iri = IRI.create(path);
+ if (!iri.isAbsolute())
+ throw new Exception(
+ "IRI seems to be not absolute! value was: "
+ + iri.toQuotedString());
+ oConfSrc = new IRIDocumentSource(iri);
+ if (oConfSrc == null)
+ throw new Exception("Cannot load from the IRI: "
+ + iri.toQuotedString());
+ } catch (Exception e) {
+ try {
+ log.debug("Cannot load from the web", e1);
+ log
+ .debug("Try to load the configuration ontology as full local file path");
+ oConfSrc = new FileDocumentSource(new File(path));
+ } catch (Exception e2) {
+ log.error(
+ "Cannot load the configuration ontology from parameter value: "
+ + path, e2);
+ }
+ }
}
- if (oConf != null)
- toActivate = ConfigurationManagement.getScopesToActivate(oConf);
- else
- toActivate = new String[0];
- for (String token : toActivate) {
- try {
- IRI scopeId = IRI.create(token.trim());
- reg.setScopeActive(scopeId, true);
- log.info("KReS :: Ontology scope " + token + " activated.");
- scopez.remove(reg.getScope(scopeId));
- } catch (NoSuchScopeException ex) {
- log.warn("KReS :: Tried to activate unavailable scope " + token
- + ".");
- } catch (Exception ex) {
- log.error("KReS :: Exception caught while activating scope "
- + token + " . Skipping.", ex);
- continue;
+ if (oConfSrc == null) {
+ log
+ .warn("KReS :: [NONFATAL] No ONM configuration file found at path "
+ + path + ". Starting with blank scope set.");
+ } else {
+ try {
+ oConf = tempMgr.loadOntologyFromOntologyDocument(oConfSrc);
+ } catch (OWLOntologyCreationException e) {
+ log.error("Cannot create the configuration ontology", e);
+ }
}
+
+ // Create and populate the scopes from the config ontology.
+ bootstrapOntologyNetwork(oConf);
+
}
- // Stop deactivating other scopes
- // for (OntologyScope scope : scopez) {
- // IRI scopeId = scope.getID();
- // try {
- // if (reg.isScopeActive(scopeId)) {
- // reg.setScopeActive(scopeId, false);
- // System.out.println("KReS :: Ontology scope " + scopeId
- // + " " + " deactivated.");
- // }
- // } catch (NoSuchScopeException ex) {
- // // Shouldn't happen because we already have the scope handle,
- // // however exceptions could be thrown erroneously...
- // System.err
- // .println("KReS :: Tried to deactivate unavailable scope "
- // + scopeId + ".");
- // } catch (Exception ex) {
- // System.err.println("Exception caught while deactivating scope "
- // + scope.getID() + " " + ex.getClass());
- // continue;
- // }
- // }
+ log.debug("KReS :: ONManager activated.");
+
+ }
- log.debug("KReS :: main component activated.");
+ private void bootstrapOntologyNetwork(OWLOntology configOntology) {
+ if (configOntology == null) {
+ log
+ .debug("KReS :: Ontology Network Manager starting with empty scope set.");
+ return;
+ }
+ try {
+
+ /**
+ * We create and register the scopes before activating
+ */
+ for (String scopeIRI : ConfigurationManagement
+ .getScopes(configOntology)) {
+
+ String[] cores = ConfigurationManagement.getCoreOntologies(
+ configOntology, scopeIRI);
+ String[] customs = ConfigurationManagement.getCustomOntologies(
+ configOntology, scopeIRI);
+
+ // "Be a man. Use printf()"
+ log.debug("KReS :: Scope " + scopeIRI);
+ for (String s : cores) {
+ log.debug("\tKReS :: Core ontology " + s);
+ }
+ for (String s : customs) {
+ log.debug("\tKReS :: Custom ontology " + s);
+ }
+
+ // Create the scope
+ IRI iri = IRI.create(scopeIRI);
+ OntologyScope sc = null;
+ sc = ontologyScopeFactory.createOntologyScope(iri,
+ new BlankOntologySource());
+
+ // Populate the core space
+ if (cores.length > 0) {
+ OntologySpace corespc = sc.getCoreSpace();
+ corespc.tearDown();
+ for (int i = 0; i < cores.length; i++)
+ try {
+ corespc.addOntology(new RootOntologyIRISource(IRI
+ .create(cores[i])));
+ } catch (Exception ex) {
+ log.warn("KReS :: failed to import ontology "
+ + cores[i], ex);
+ continue;
+ }
+ // TODO: this call should be automatic
+ ((CustomOntologySpace) sc.getCustomSpace())
+ .attachCoreSpace((CoreOntologySpace) corespc, false);
+ }
+
+ sc.setUp();
+ scopeRegistry.registerScope(sc);
+
+ // getScopeHelper().createScope(scopeIRI);
+// getScopeHelper().addToCoreSpace(scopeIRI, cores);
+ getScopeHelper().addToCustomSpace(scopeIRI, customs);
+ }
+
+ /**
+ * Try to get activation policies
+ */
+ toActivate = ConfigurationManagement
+ .getScopesToActivate(configOntology);
+
+ for (String scopeID : toActivate) {
+ try {
+ IRI scopeId = IRI.create(scopeID.trim());
+ scopeRegistry.setScopeActive(scopeId, true);
+ log.info("KReS :: Ontology scope " + scopeID
+ + " activated.");
+ } catch (NoSuchScopeException ex) {
+ log.warn("Tried to activate unavailable scope " + scopeID
+ + ".");
+ } catch (Exception ex) {
+ log.error("Exception caught while activating scope "
+ + scopeID + " . Skipping.", ex);
+ continue;
+ }
+ }
+
+ } catch (Throwable e) {
+ log.error("[NONFATAL] Invalid ONM configuration file found. "
+ + "Starting with blank scope set.", e);
+ }
}
protected void deactivate(ComponentContext ce) throws IOException {
- log.debug("KReS :: deactivating main component...");
+ log.debug("KReS :: Deactivating ONManager");
}
@Override
@@ -294,4 +374,156 @@ public class ONManager implements KReSON
return toActivate;
}
+ private Helper helper = null;
+
+ public Helper getScopeHelper() {
+ if (helper == null) {
+ helper = new Helper();
+ }
+ return helper;
+ }
+
+ public class Helper {
+ private Helper() {
+ }
+
+ /**
+ * Create an empty scope. The scope is created, registered and activated
+ *
+ * @param scopeID
+ * @return
+ * @throws DuplicateIDException
+ */
+ public synchronized OntologyScope createScope(String scopeID)
+ throws DuplicateIDException {
+ OntologyInputSource oisbase = new BlankOntologySource();
+
+ IRI scopeIRI = IRI.create(scopeID);
+
+ /*
+ * The scope is created by the ScopeFactory or loaded to the scope
+ * registry of KReS
+ */
+ OntologyScope scope;
+ scope = ontologyScopeFactory.createOntologyScope(scopeIRI, oisbase);
+
+ scope.setUp();
+ scopeRegistry.registerScope(scope, true);
+ log.debug("Created scope " + scopeIRI, this);
+ return scope;
+ }
+
+ /**
+ * Adds the ontology from the given iri to the core space of the given
+ * scope
+ *
+ * @param scopeID
+ * @param locationIri
+ */
+ public synchronized void addToCoreSpace(String scopeID,
+ String[] locationIris) {
+ OntologyScope scope = getScopeRegistry().getScope(
+ IRI.create(scopeID));
+ OntologySpace corespc = scope.getCoreSpace();
+ scope.tearDown();
+ corespc.tearDown();
+ for (String locationIri : locationIris) {
+ try {
+ corespc.addOntology(new RootOntologyIRISource(IRI
+ .create(locationIri)));
+ //
+ // corespc.addOntology(
+ // createOntologyInputSource(locationIri));
+ log.debug("Added " + locationIri + " to scope " + scopeID
+ + " in the core space.", this);
+ // OntologySpace cs = scope.getCustomSpace();
+ // if (cs instanceof CustomOntologySpace) {
+ // (
+ // (CustomOntologySpace)cs).attachCoreSpace((CoreOntologySpace)corespc,
+ // false);
+ // }
+ } catch (UnmodifiableOntologySpaceException e) {
+ log.error("Core space for scope " + scopeID
+ + " denied addition of ontology " + locationIri, e);
+ } catch (OWLOntologyCreationException e) {
+ log.error("Creation of ontology from source " + locationIri
+ + " failed.", e);
+ }
+ }
+ corespc.setUp();
+ }
+
+ /**
+ * Adds the ontology fromt he given iri to the custom space of the given
+ * scope
+ *
+ * @param scopeID
+ * @param locationIri
+ */
+ public synchronized void addToCustomSpace(String scopeID,
+ String[] locationIris) {
+ OntologyScope scope = getScopeRegistry().getScope(
+ IRI.create(scopeID));
+
+ scope.getCustomSpace().tearDown();
+ for (String locationIri : locationIris) {
+ try {
+ scope.getCustomSpace().addOntology(
+ createOntologyInputSource(locationIri));
+ log.debug("Added " + locationIri + " to scope " + scopeID
+ + " in the custom space.", this);
+ } catch (UnmodifiableOntologySpaceException e) {
+ log.error(
+ "An error occurred while trying to add the ontology from location: "
+ + locationIri, e);
+ }
+ }
+ scope.getCustomSpace().setUp();
+ }
+
+ private OntologyInputSource createOntologyInputSource(final String uri) {
+ /*
+ * The scope factory needs an OntologyInputSource as input for the
+ * core ontology space. We want to use the dbpedia ontology as core
+ * ontology of our scope.
+ */
+ OntologyInputSource ois = new OntologyInputSource() {
+
+ @Override
+ public boolean hasRootOntology() {
+ return true;
+ }
+
+ @Override
+ public boolean hasPhysicalIRI() {
+ return false;
+ }
+
+ @Override
+ public OWLOntology getRootOntology() {
+
+ try {
+
+ OWLOntologyManager manager = OWLManager
+ .createOWLOntologyManager();
+ return manager.loadOntologyFromOntologyDocument(IRI
+ .create(uri));
+ } catch (OWLOntologyCreationException e) {
+ log.error("Cannot load the ontology " + uri, e);
+ } catch (Exception e) {
+ log.error("Cannot load the ontology " + uri, e);
+ }
+ /** If some errors occur **/
+ return null;
+ }
+
+ @Override
+ public IRI getPhysicalIRI() {
+ return null;
+ }
+ };
+
+ return ois;
+ }
+ }
}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/io/BlankOntologySource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/io/BlankOntologySource.java?rev=1049585&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/io/BlankOntologySource.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/io/BlankOntologySource.java Wed Dec 15 15:19:32 2010
@@ -0,0 +1,29 @@
+package eu.iksproject.kres.manager.io;
+
+import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.OWLOntologyCreationException;
+import org.semanticweb.owlapi.model.OWLOntologyManager;
+
+/**
+ * A utility input source that contains an unnamed, empty ontology.
+ *
+ * @author alessandro
+ *
+ */
+public class BlankOntologySource extends AbstractOntologyInputSource {
+
+ public BlankOntologySource() {
+ OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
+ try {
+ this.rootOntology = manager.createOntology();
+ } catch (OWLOntologyCreationException e) {
+ this.rootOntology = null;
+ }
+ }
+
+ @Override
+ public String toString() {
+ return "";
+ }
+
+}
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/AbstractOntologySpaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/AbstractOntologySpaceImpl.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/AbstractOntologySpaceImpl.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/AbstractOntologySpaceImpl.java Wed Dec 15 15:19:32 2010
@@ -44,6 +44,7 @@ import eu.iksproject.kres.manager.util.S
* NOTE: By default, an ontology space is NOT write-locked. Developers need to
* set the <code>locked</code> variable to true to make the space read-only.
*
+ *
* @author alessandro
*
*/
@@ -102,11 +103,11 @@ public abstract class AbstractOntologySp
this.parentID = parentID;
// FIXME: ensure that this is not null
- OntologyScope ps = ONManager.get().getScopeRegistry()
+ OntologyScope parentScope = ONManager.get().getScopeRegistry()
.getScope(parentID);
- if (ps != null && ps instanceof OntologySpaceListener)
- this.addOntologySpaceListener((OntologySpaceListener) ps);
+ if (parentScope != null && parentScope instanceof OntologySpaceListener)
+ this.addOntologySpaceListener((OntologySpaceListener) parentScope);
this._id = spaceID;
if (ontologyManager != null)
@@ -206,49 +207,34 @@ public abstract class AbstractOntologySp
if (ontology != null) {
OWLOntologyID id = ontology.getOntologyID();
- try {
-
- // if (ontologySource != null && parentID != null)
- // // rewrite the source
- // ontologySource = new ScopeOntologySource(parentID,
- // ontologySource.getRootOntology(), ontologySource
- // .getPhysicalIRI());
- OntologyUtils.appendOntology(new RootOntologySource(
- getTopOntology(), null), ontologySource,
- ontologyManager/* ,parentID */);
+ // if (ontologySource != null && parentID != null)
+ // // rewrite the source
+ // ontologySource = new ScopeOntologySource(parentID,
+ // ontologySource.getRootOntology(), ontologySource
+ // .getPhysicalIRI());
+
+ // Should not modify the child ontology in any way.
+ // TODO implement transaction control.
+ OntologyUtils
+ .appendOntology(new RootOntologySource(getTopOntology(),
+ null), ontologySource, ontologyManager/* ,parentID */);
- StringDocumentTarget tgt = new StringDocumentTarget();
+ StringDocumentTarget tgt = new StringDocumentTarget();
+ try {
ontologyManager.saveOntology(ontology,
new RDFXMLOntologyFormat(), tgt);
+ } catch (OWLOntologyStorageException e) {
+ log.error("KReS : [FATAL] Failed to store ontology " + id
+ + " in memory.", e);
+ return;
+ }
+
+ try {
+ ontologyManager.removeOntology(ontology);
ontologyManager
.loadOntologyFromOntologyDocument(new StringDocumentSource(
tgt.toString()));
-
- try {
- // Store the top ontology
- if (!(this instanceof SessionOntologySpace)) {
- OntologyStorage storage = ONManager.get()
- .getOntologyStore();
- if (storage == null)
- log
- .error("KReS :: [NONFATAL] no ontology storage found. Ontology "
- + ontology.getOntologyID()
- + " will be stored in-memory only.");
- else
- storage.store(ontology);
- }
- // ONManager.get().getOntologyStore().load(rootOntology.getOntologyID().getOntologyIRI());
- } catch (Exception ex) {
- log
- .error(
- "KReS :: [NONFATAL] An error occurred while storing ontology "
- + ontology
- + " . Ontology management will be volatile!",
- ex);
- }
-
- fireOntologyAdded(id.getOntologyIRI());
} catch (OWLOntologyAlreadyExistsException e) {
// Could happen if we supplied an ontology manager that already
// knows this ontology. Nothing to do then.
@@ -257,9 +243,34 @@ public abstract class AbstractOntologySp
} catch (OWLOntologyCreationException e) {
log.error("Unexpected exception caught while copying ontology "
+ id + " across managers", e);
- } catch (OWLOntologyStorageException e) {
- log.error("KReS : [FATAL] Failed to store ontology " + id, e);
+ return;
+ }
+
+ try {
+ // Store the top ontology
+ if (!(this instanceof SessionOntologySpace)) {
+ OntologyStorage storage = ONManager.get()
+ .getOntologyStore();
+ if (storage == null)
+ log
+ .error("KReS :: [NONFATAL] no ontology storage found. Ontology "
+ + ontology.getOntologyID()
+ + " will be stored in-memory only.");
+ else {
+ storage.store(ontology);
+ }
+ }
+ // ONManager.get().getOntologyStore().load(rootOntology.getOntologyID().getOntologyIRI());
+ } catch (Exception ex) {
+ log.error(
+ "KReS :: [NONFATAL] An error occurred while storing ontology "
+ + ontology
+ + " . Ontology management will be volatile!",
+ ex);
}
+
+ fireOntologyAdded(id.getOntologyIRI());
+
}
}
@@ -485,8 +496,9 @@ public abstract class AbstractOntologySp
.error("KReS :: [NONFATAL] no ontology storage found. Ontology "
+ rootOntology.getOntologyID()
+ " will be stored in-memory only.");
- else
+ else {
storage.store(rootOntology);
+ }
}
} catch (Exception ex) {
log.error(
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/CoreOntologySpaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/CoreOntologySpaceImpl.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/CoreOntologySpaceImpl.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/CoreOntologySpaceImpl.java Wed Dec 15 15:19:32 2010
@@ -5,7 +5,6 @@ import org.semanticweb.owlapi.model.OWLO
import eu.iksproject.kres.api.manager.ontology.CoreOntologySpace;
import eu.iksproject.kres.api.manager.ontology.OntologyInputSource;
-import eu.iksproject.kres.api.manager.ontology.OntologyScope;
import eu.iksproject.kres.manager.util.StringUtils;
public class CoreOntologySpaceImpl extends AbstractOntologySpaceImpl implements
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/CustomOntologySpaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/CustomOntologySpaceImpl.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/CustomOntologySpaceImpl.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/CustomOntologySpaceImpl.java Wed Dec 15 15:19:32 2010
@@ -1,6 +1,8 @@
package eu.iksproject.kres.manager.ontology;
import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLImportsDeclaration;
+import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.model.OWLOntologyManager;
import org.slf4j.Logger;
@@ -36,15 +38,18 @@ public class CustomOntologySpaceImpl ext
public void attachCoreSpace(CoreOntologySpace coreSpace, boolean skipRoot)
throws UnmodifiableOntologySpaceException {
+ OWLOntology o = coreSpace.getTopOntology();
// This does the append thingy
- log.debug("Attaching " + coreSpace.getTopOntology() + " TO "
- + getTopOntology() + " ...");
+ log.debug("Attaching " + o + " TO " + getTopOntology() + " ...");
try {
- addOntology(new RootOntologySource(coreSpace.getTopOntology(), null));
- log.debug("ok");
+ // It is in fact the addition of the core space top ontology to the
+ // custom space, with import statements and all.
+ addOntology(new RootOntologySource(o, null));
+ // log.debug("ok");
} catch (Exception ex) {
log.error("FAILED", ex);
}
+
}
/**
Modified: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/OntologyScopeImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/OntologyScopeImpl.java?rev=1049585&r1=1049584&r2=1049585&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/OntologyScopeImpl.java (original)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/ontology/OntologyScopeImpl.java Wed Dec 15 15:19:32 2010
@@ -219,7 +219,7 @@ public class OntologyScopeImpl implement
*/
@Override
public void onOntologyAdded(IRI spaceId, IRI addedOntology) {
- // Propagate events
+ // Propagate events to scope listeners
fireOntologyAdded(addedOntology);
}
@@ -232,7 +232,7 @@ public class OntologyScopeImpl implement
*/
@Override
public void onOntologyRemoved(IRI spaceId, IRI removedOntology) {
- // Propagate events
+ // Propagate events to scope listeners
fireOntologyRemoved(removedOntology);
}
@@ -267,7 +267,7 @@ public class OntologyScopeImpl implement
/*
* (non-Javadoc)
*
- * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#bringUp()
+ * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#setUp()
*/
@Override
public synchronized void setUp() {
@@ -308,4 +308,10 @@ public class OntologyScopeImpl implement
return getID().toString();
}
+ @Override
+ public void synchronizeSpaces() {
+ // TODO Auto-generated method stub
+
+ }
+
}
Added: incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/util/OntologyConstants.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/util/OntologyConstants.java?rev=1049585&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/util/OntologyConstants.java (added)
+++ incubator/stanbol/trunk/kres/eu.iksproject.kres.manager/src/main/java/eu/iksproject/kres/manager/util/OntologyConstants.java Wed Dec 15 15:19:32 2010
@@ -0,0 +1,10 @@
+package eu.iksproject.kres.manager.util;
+
+public class OntologyConstants {
+
+ public static final String NS__KRES = "http://kres.iks-project.eu/";
+
+ public static final String NS__ODP = "http://www.ontologydesignpatterns.org/";
+
+ public static final String NS_ONM = NS__KRES + "ontology/meta/onm.owl#";
+}
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=1049585&r1=1049584&r2=1049585&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 15 15:19:32 2010
@@ -66,46 +66,67 @@ public class OntologyUtils {
return appendOntology(parentSrc, childSrc, ontologyManager, null);
}
+ public static OWLOntology appendOntology(OntologyInputSource parentSrc,
+ OntologyInputSource childSrc) {
+ return appendOntology(parentSrc, childSrc, null, null);
+ }
+
+ public static OWLOntology appendOntology(OntologyInputSource parentSrc,
+ OntologyInputSource childSrc, IRI rewritePrefix) {
+ return appendOntology(parentSrc, childSrc, null, rewritePrefix);
+ }
+
/**
* This method appends one ontology (the child) to another (the parent) by
* proceeding as follows. If a physical URI can be obtained from the child
* source, an import statement using that physical URI will be added to the
* parent ontology, otherwise all the axioms from the child ontology will be
* copied to the parent. <br>
- * Note: the ontology manager does not load ontologies.
+ * Note: the ontology manager will not load additional ontologies.
*
* @param parentSrc
* must exist!
* @param childSrc
* @param ontologyManager
+ * can be null (e.g. when one does not want changes to be
+ * immediately reflected in their ontology manager), in which
+ * case a temporary ontology manager will be used.
+ * @param rewritePrefix
+ * . if not null, import statements will be generated in the form
+ * <tt>rewritePrefix/child_ontology_logical_IRI</tt>. It can be
+ * used for relocating the ontology document file elsewhere.
* @return the parent with the appended child
*/
public static OWLOntology appendOntology(OntologyInputSource parentSrc,
OntologyInputSource childSrc, OWLOntologyManager ontologyManager,
IRI rewritePrefix) {
+
+ if (ontologyManager == null)
+ ontologyManager = OWLManager.createOWLOntologyManager();
OWLDataFactory factory = ontologyManager.getOWLDataFactory();
OWLOntology oParent = parentSrc.getRootOntology();
OWLOntology oChild = childSrc.getRootOntology();
- // If we can obtain a physical IRI from source, add the import.
- // Named
+ // 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 (!child.isAnonymous() && rewritePrefix != null
+ /* && rewritePrefix.isAbsolute() */) {
IRI impIri = IRI.create(rewritePrefix + "/"
+ child.getOntologyID().getOntologyIRI());
OWLImportsDeclaration imp = factory
.getOWLImportsDeclaration(impIri);
ontologyManager.applyChange(new AddImport(oParent, imp));
}
- // Anonymous, with physicalIRI
+ // Anonymous, with physicalIRI. A plain import statement is added.
else if (childSrc.hasPhysicalIRI()) {
OWLImportsDeclaration imp = factory
.getOWLImportsDeclaration(childSrc.getPhysicalIRI());
ontologyManager.applyChange(new AddImport(oParent, imp));
}
- // Otherwise just copy all its axioms and imports.
- // Anonymous and no physical IRI
+ // Anonymous and no physical IRI (e.g. in memory). Copy all axioms and
+ // import statements.
else {
ontologyManager.addAxioms(oParent, oChild.getAxioms());
for (OWLImportsDeclaration imp : oChild.getImportsDeclarations())
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=1049585&r1=1049584&r2=1049585&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 15 15:19:32 2010
@@ -5,6 +5,7 @@ import static org.junit.Assert.assertNul
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.semanticweb.owlapi.apibinding.OWLManager;
@@ -25,14 +26,28 @@ public class TestOntologyScope {
public static IRI baseIri = IRI.create(Constants.base),
baseIri2 = IRI.create(Constants.base2),
+ scopeIriBlank = IRI
+ .create("http://kres.iks-project.eu/scope/WackyRaces"),
scopeIri1 = IRI.create("http://kres.iks-project.eu/scope/Peanuts"),
scopeIri2 = IRI
.create("http://kres.iks-project.eu/scope/CalvinAndHobbes");
+ /**
+ * An ontology scope that initially contains no ontologies, and is rebuilt
+ * from scratch before each test method.
+ */
+ private static OntologyScope blankScope;
+
private static OntologyScopeFactory factory = null;
private static OntologyInputSource src1 = null, src2 = null;
+ @Before
+ public void cleaup() throws DuplicateIDException {
+ if (factory != null)
+ blankScope = factory.createOntologyScope(scopeIriBlank, null);
+ }
+
@BeforeClass
public static void setup() {
factory = ONManager.get().getOntologyScopeFactory();