You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by ha...@apache.org on 2010/01/18 13:56:22 UTC

svn commit: r900377 - in /incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts: ./ org.apache.clerezza.platform.concepts.core/ org.apache.clerezza.platform.concepts.core/src/main/ja...

Author: hasan
Date: Mon Jan 18 12:56:22 2010
New Revision: 900377

URL: http://svn.apache.org/viewvc?rev=900377&view=rev
Log:
CLEREZZA-59: issue closed

Added:
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ConceptManipulator.java
      - copied unchanged from r900311, incubator/clerezza/issues/CLEREZZA-59/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ConceptManipulator.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/RemoteConceptsDescriptionManager.java
      - copied unchanged from r900311, incubator/clerezza/issues/CLEREZZA-59/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/RemoteConceptsDescriptionManager.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/META-INF/static-web/concepts/scripts/concept-find-create.js
      - copied unchanged from r900311, incubator/clerezza/issues/CLEREZZA-59/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/META-INF/static-web/concepts/scripts/concept-find-create.js
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/META-INF/static-web/concepts/scripts/selected-concepts.js
      - copied unchanged from r900311, incubator/clerezza/issues/CLEREZZA-59/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/META-INF/static-web/concepts/scripts/selected-concepts.js
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/concept-existing-subjects.ssp
      - copied unchanged from r900311, incubator/clerezza/issues/CLEREZZA-59/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/concept-existing-subjects.ssp
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/concept-find-create.ssp
      - copied unchanged from r900311, incubator/clerezza/issues/CLEREZZA-59/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/concept-find-create.ssp
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/concept-tagging.ssp
      - copied unchanged from r900311, incubator/clerezza/issues/CLEREZZA-59/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/concept-tagging.ssp
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/skos-collection-json.ssp
      - copied unchanged from r900311, incubator/clerezza/issues/CLEREZZA-59/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/skos-collection-json.ssp
Modified:
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/   (props changed)
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/README.txt
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/pom.xml
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ConceptsFinder.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/GenericResourcePage.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/LocalConceptProvider.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/RemoteConceptProvider.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ResourceTagger.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/generic-resource-page.ssp
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts.ssp

Propchange: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 18 12:56:22 2010
@@ -1 +1,2 @@
 /incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts:898371-898753
+/incubator/clerezza/issues/CLEREZZA-59/org.apache.clerezza.platform.concepts:898783-900311

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/README.txt
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/README.txt?rev=900377&r1=900376&r2=900377&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/README.txt (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/README.txt Mon Jan 18 12:56:22 2010
@@ -1,7 +1,18 @@
-This JAX-RS resource can be used to retrieve a resource and its associated concepts. 
+JAX-RS resource called GenericResourcePage can be used to retrieve a resource and its associated concepts. 
 Go to http://[your.server]/concepts/generic-resource?uri=[resource] where [resource] 
-specifies the UriRef of the resource. Furthermore there is a method for associating 
-concepts with resources. POST to http://[your.server]/concepts/tagger/set a form 
+specifies the UriRef of the resource. Furthermore there is a JAX-RS resource called ResourceTagger
+ for associating concepts with resources. POST to http://[your.server]/concepts/tagger/set a form 
 with form parameter uri which specifies the UriRef of the resource and a form parameter 
 concepts which contains the UriRefs of the concepts.
 
+JAX-RS resource called ConceptManipulator can be used to add concept into the content graph
+The resource path is "/concepts/manipulator/add-concept" and the form parameters are
+pref-label, lang, and comment.
+
+On the client side there is a ConceptManipulator widget to add free concepts to the content graph
+and there is also a ConceptFinder widget to find exisiting concepts to be suggested for a specified search term.
+ 
+In ConceptManipulator widget and ConceptFinder widget a developer can register a callback function
+which is called when a concept is added to the list of selected concept.
+
+

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/pom.xml
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/pom.xml?rev=900377&r1=900376&r2=900377&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/pom.xml (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/pom.xml Mon Jan 18 12:56:22 2010
@@ -56,6 +56,10 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.clerezza</groupId>
+			<artifactId>org.apache.clerezza.platform.config</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
 			<artifactId>org.apache.clerezza.triaxrs</artifactId>
 			<scope>test</scope>
 		</dependency>

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ConceptsFinder.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ConceptsFinder.java?rev=900377&r1=900376&r2=900377&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ConceptsFinder.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ConceptsFinder.java Mon Jan 18 12:56:22 2010
@@ -18,11 +18,18 @@
  */
 package org.apache.clerezza.platform.concepts.core;
 
+import java.net.URISyntaxException;
+import java.net.URL;
 import java.util.Iterator;
 import java.util.List;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import org.apache.clerezza.platform.config.PlatformConfig;
+import org.apache.clerezza.platform.graphprovider.content.ContentGraphProvider;
+import org.apache.clerezza.platform.typerendering.RenderletManager;
+import org.apache.clerezza.platform.typerendering.scalaserverpages.ScalaServerPagesRenderlet;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Reference;
@@ -35,6 +42,7 @@
 import org.apache.clerezza.rdf.core.Resource;
 import org.apache.clerezza.rdf.core.Triple;
 import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.access.TcManager;
 import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
 import org.apache.clerezza.rdf.core.impl.TripleImpl;
 import org.apache.clerezza.rdf.ontologies.OWL;
@@ -42,13 +50,19 @@
 import org.apache.clerezza.rdf.ontologies.RDFS;
 import org.apache.clerezza.rdf.ontologies.SKOS;
 import org.apache.clerezza.rdf.utils.GraphNode;
+import org.osgi.service.component.ComponentContext;
 
 /**
  * This JAX-RS resource can be used to search concepts accessible through
- * registered {@link ConceptProvider}s. Concept providers are prioritized.
+ * registered {@link ConceptProvider}s. If no {@link LocalConceptProvider} is
+ * registered for {@link ConceptManipulator.FREE_CONCEPT_SCHEME}, then one is
+ * created to find free concepts in the content graph.
+ * Concept providers are prioritized.
  * The URI, SKOS:prefLabel and RDFS:comment of a concept from a provider of a 
  * higher priority will be used instead of those concepts having an OWL:sameAs
  * relation with this concept, but from a provider of lower priority.
+ * Implicitly created {@link LocalConceptProvider} for free concepts has the
+ * lowest priority.
  *
  * The URI path of this service is /concepts/find.
  *
@@ -61,8 +75,38 @@
 public class ConceptsFinder {
 
 	@Reference
+	private RenderletManager renderletManager;
+
+	@Reference
 	protected ConceptProviderManager conceptProviderManager;
 
+	@Reference
+	private TcManager tcManager;
+
+	@Reference
+	protected ContentGraphProvider cgProvider;
+
+	@Reference
+	private PlatformConfig platformConfig;
+
+	private LocalConceptProvider freeConceptProvider = null;
+
+	private UriRef freeConceptScheme = null;
+
+	protected void activate(ComponentContext context) throws URISyntaxException {
+		URL template = getClass().getResource("skos-collection-json.ssp");
+		renderletManager.registerRenderlet(ScalaServerPagesRenderlet.class.getName(),
+				new UriRef(template.toURI().toString()),
+				SKOS.Collection, null,
+				MediaType.APPLICATION_JSON_TYPE, true);
+
+		freeConceptScheme =
+				new UriRef(platformConfig.getDefaultBaseUri().getUnicodeString()
+				+ ConceptManipulator.FREE_CONCEPT_SCHEME);
+		freeConceptProvider = new LocalConceptProvider(tcManager, cgProvider,
+				freeConceptScheme);
+	}
+
 	/**
 	 * Searches concepts for a specified search term. The actual search task
 	 * is delegated to each {@link ConceptProvider} instance. The results from
@@ -80,6 +124,8 @@
 	public GraphNode findConcepts(@QueryParam(value="searchTerm")
 			String searchTerm) {
 
+		boolean freeConceptProviderFound = false;
+
 		List<ConceptProvider> conceptProviderList = conceptProviderManager
 				.getConceptProviders();
 
@@ -87,33 +133,51 @@
 		GraphNode resultNode = new GraphNode(new BNode(), resultMGraph);
 		boolean first = true;
 		for (ConceptProvider cp : conceptProviderList) {
-			Graph graph = cp.retrieveConcepts(searchTerm);
-			Iterator<Triple> concepts = graph.filter(null, RDF.type, SKOS.Concept);
-			if (first) {
-				while (concepts.hasNext()) {
-					resultNode.addProperty(SKOS.member, concepts.next().getSubject());
-				}
-				resultMGraph.addAll(graph);
-				first = false;
-			} else {
-				while (concepts.hasNext()) {
-					NonLiteral concept = concepts.next().getSubject();
-					GraphNode conceptGraphNode = new GraphNode(concept, graph);
-					Iterator<Resource> sameAsConcepts =
-							conceptGraphNode.getObjects(OWL.sameAs);
-					if (!(hasSameAs(resultMGraph, concept)
-							|| hasAnyConcept(resultMGraph, sameAsConcepts))) {
-						resultNode.addProperty(SKOS.member, concept);
-						addConceptToResultMGraph(resultMGraph, conceptGraphNode);
+			if (!freeConceptProviderFound) {
+				if (cp instanceof LocalConceptProvider) {
+					if (((LocalConceptProvider) cp).getSelectedScheme().equals(
+							freeConceptScheme)) {
+						freeConceptProviderFound = true;
 					}
-
 				}
 			}
+			retrieveConcepts(cp, first, resultNode, searchTerm);
+			if (first) {
+				first = false;
+			}
+		}
+		if (!freeConceptProviderFound && freeConceptProvider != null) {
+			retrieveConcepts(freeConceptProvider, first, resultNode, searchTerm);
 		}
 		resultNode.addProperty(RDF.type, SKOS.Collection);
 		return resultNode;
 	}
 
+	private void retrieveConcepts(ConceptProvider conceptProvider, boolean first,
+			GraphNode resultNode, String searchTerm) {
+		MGraph resultMGraph = (MGraph) resultNode.getGraph();
+		Graph graph = conceptProvider.retrieveConcepts(searchTerm);
+		Iterator<Triple> concepts = graph.filter(null, RDF.type, SKOS.Concept);
+		if (first) {
+			while (concepts.hasNext()) {
+				resultNode.addProperty(SKOS.member, concepts.next().getSubject());
+			}
+			resultMGraph.addAll(graph);
+		} else {
+			while (concepts.hasNext()) {
+				NonLiteral concept = concepts.next().getSubject();
+				GraphNode conceptGraphNode = new GraphNode(concept, graph);
+				Iterator<Resource> sameAsConcepts =
+						conceptGraphNode.getObjects(OWL.sameAs);
+				if (!(hasSameAs(resultMGraph, concept) || hasAnyConcept(resultMGraph, sameAsConcepts))) {
+					resultNode.addProperty(SKOS.member, concept);
+					addConceptToResultMGraph(resultMGraph, conceptGraphNode);
+				}
+
+			}
+		}
+	}
+
 	private boolean hasSameAs(MGraph graph, NonLiteral sameAsConcept) {
 		Iterator<Triple> concepts = graph.filter(null, RDF.type, SKOS.Concept);
 		while (concepts.hasNext()) {

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/GenericResourcePage.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/GenericResourcePage.java?rev=900377&r1=900376&r2=900377&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/GenericResourcePage.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/GenericResourcePage.java Mon Jan 18 12:56:22 2010
@@ -63,6 +63,8 @@
 	@Reference
 	private RenderletManager renderletManager;
 
+	private RemoteConceptsDescriptionManager remoteConceptsDescriptionManager = null;
+
 	protected void activate(ComponentContext context)
 			throws URISyntaxException {
 
@@ -71,6 +73,8 @@
 				new UriRef(template.toURI().toString()),
 				CONCEPTS.GenericResourcePage, "naked",
 				MediaType.APPLICATION_XHTML_XML_TYPE, true);
+
+		remoteConceptsDescriptionManager = new RemoteConceptsDescriptionManager();
 	}
 
 	/**
@@ -86,7 +90,8 @@
 			@Context UriInfo uriInfo) {
 
 		GraphNode node = new GraphNode(new BNode(), new UnionMGraph(new SimpleMGraph(),
-				cgProvider.getContentGraph()));
+				cgProvider.getContentGraph(),
+				remoteConceptsDescriptionManager.getRemoteConceptsDescriptionMGraph()));
 		node.addProperty(RDF.type, PLATFORM.HeadedPage);
 		node.addProperty(RDF.type, CONCEPTS.GenericResourcePage);
 		if (uri != null) {

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/LocalConceptProvider.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/LocalConceptProvider.java?rev=900377&r1=900376&r2=900377&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/LocalConceptProvider.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/LocalConceptProvider.java Mon Jan 18 12:56:22 2010
@@ -55,6 +55,10 @@
 		this.selectedScheme = selectedScheme;
 	}
 
+	public UriRef getSelectedScheme() {
+		return this.selectedScheme;
+	}
+
 	@Override
 	public Graph retrieveConcepts(String searchTerm) {
 		QueryParser queryParser = QueryParser.getInstance();

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/RemoteConceptProvider.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/RemoteConceptProvider.java?rev=900377&r1=900376&r2=900377&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/RemoteConceptProvider.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/RemoteConceptProvider.java Mon Jan 18 12:56:22 2010
@@ -50,6 +50,7 @@
 	private UriRef defaultGraph = null;
 	private String queryTemplate = null;
 	private ConceptCache conceptCache = null;
+	private RemoteConceptsDescriptionManager remoteConceptsDescriptionManager = null;
 
 	/**
 	 * Constructs a {@link RemoteConceptProvider} with the specified parameters.
@@ -67,6 +68,7 @@
 		this.defaultGraph = defaultGraph;
 		this.queryTemplate = queryTemplate;
 		this.conceptCache = new ConceptCache(sparqlEndPoint, defaultGraph);
+		this.remoteConceptsDescriptionManager = new RemoteConceptsDescriptionManager();
 	}
 
 	@Override
@@ -107,6 +109,7 @@
 							SupportedFormat.RDF_XML);
 					is.close();
 					conceptCache.cache(searchTerm.toLowerCase(), parsedGraph);
+					remoteConceptsDescriptionManager.storeConceptsDescription(parsedGraph);
 					return parsedGraph;
 				} else {
 					final InputStream es = con.getErrorStream();

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ResourceTagger.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ResourceTagger.java?rev=900377&r1=900376&r2=900377&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ResourceTagger.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ResourceTagger.java Mon Jan 18 12:56:22 2010
@@ -65,11 +65,22 @@
 	protected void activate(ComponentContext context)
 			throws URISyntaxException {
 
+		URL template = getClass().getResource("concept-existing-subjects.ssp");
+		renderletManager.registerRenderlet(ScalaServerPagesRenderlet.class.getName(),
+				new UriRef(template.toURI().toString()),
+				RDFS.Resource, "concept-existing-subjects",
+				MediaType.APPLICATION_XHTML_XML_TYPE, true);
+
+		template = getClass().getResource("concept-tagging.ssp");
+		renderletManager.registerRenderlet(ScalaServerPagesRenderlet.class.getName(),
+				new UriRef(template.toURI().toString()),
+				RDFS.Resource, "concept-tagging",
+				MediaType.APPLICATION_XHTML_XML_TYPE, true);
 
-		URL template = getClass().getResource("selected-concepts.ssp");
+		template = getClass().getResource("concept-find-create.ssp");
 		renderletManager.registerRenderlet(ScalaServerPagesRenderlet.class.getName(),
 				new UriRef(template.toURI().toString()),
-				RDFS.Resource, "selectedconcepts",
+				RDFS.Resource, "concept-find-create",
 				MediaType.APPLICATION_XHTML_XML_TYPE, true);
 	}
 

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/generic-resource-page.ssp
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/generic-resource-page.ssp?rev=900377&r1=900376&r2=900377&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/generic-resource-page.ssp (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/generic-resource-page.ssp Mon Jan 18 12:56:22 2010
@@ -11,15 +11,12 @@
 	<script type="text/javascript">
 		$(document).ready(function() {{
 			$("#addButton").click(function() {{
-				$("form").submit();
+				$("#selected-concepts-form").submit();
 			}});
 		}});
 	</script>
 	<h4>About: {res/cpt("resource")*}</h4>
-	<div><object width="200" data={res/cpt("resource")*}></object></div>
+	<div><object width="80%" data={res/cpt("resource")*}></object></div>
 	<br/>
-	<form method="post" action="/concepts/tagger/set">
-		<input type="hidden" name="uri" value={res/cpt("resource")*}></input>
-		{render(res/cpt("resource"), "selectedconcepts")}
-	</form>
+	{render(res,"concept-tagging")}
 </div>

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts.ssp
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts.ssp?rev=900377&r1=900376&r2=900377&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts.ssp (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts.ssp Mon Jan 18 12:56:22 2010
@@ -1,23 +1,20 @@
 def skos(s: Any) = new UriRef("http://www.w3.org/2008/05/skos#"+s)
 def dct(s: Any) = new UriRef("http://purl.org/dc/terms/"+s)
 
+resultDocModifier.addScriptReference("/static/concepts/scripts/selected-concepts.js");
+
 <div>
-	<script type="text/javascript">
-		$(document).ready(function() {{
-			$(".tx-icon-delete").click(function() {{
-				$(this).parent().remove();
-			}});
-		}});
-	</script>
-	{for (concept <- (res/dct("subject"))) yield {
-	<div>
-		<div><strong>PrefLabel: </strong>{concept/skos("prefLabel")*}</div>
-		<div><strong>Uri: </strong>{concept*}</div>
-		<input type="hidden" name="concepts" value={concept*}></input>
-		<a href="#" class="tx-icon tx-icon-delete" >Add</a>
-		<br />
-		<br />
+	<div id="selected-concepts">
+		{for (concept <- (res/dct("subject"))) yield {
+		<div>
+			<div>PrefLabel: {concept/skos("prefLabel")*}</div>
+			<div>Uri: {concept*}</div>
+			<input type="hidden" name="concepts" value={concept*}></input>
+			<a href="#" class="tx-icon tx-icon-delete" >Add</a>
+			<br />
+			<br />
+		</div>
+		}
+		}
 	</div>
-	}
-	}
 </div>