You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by bd...@apache.org on 2011/04/07 13:15:31 UTC

svn commit: r1089825 - in /incubator/stanbol/trunk/enhancer/benchmark/src/main: java/org/apache/stanbol/enhancer/benchmark/ java/org/apache/stanbol/enhancer/benchmark/impl/ resources/velocity/

Author: bdelacretaz
Date: Thu Apr  7 11:15:30 2011
New Revision: 1089825

URL: http://svn.apache.org/viewvc?rev=1089825&view=rev
Log:
STANBOL-138 - display output on benchmark results page

Modified:
    incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/Benchmark.java
    incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/BenchmarkResult.java
    incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/impl/BenchmarkImpl.java
    incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/impl/BenchmarkServlet.java
    incubator/stanbol/trunk/enhancer/benchmark/src/main/resources/velocity/benchmark-results.html
    incubator/stanbol/trunk/enhancer/benchmark/src/main/resources/velocity/benchmark.css

Modified: incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/Benchmark.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/Benchmark.java?rev=1089825&r1=1089824&r2=1089825&view=diff
==============================================================================
--- incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/Benchmark.java (original)
+++ incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/Benchmark.java Thu Apr  7 11:15:30 2011
@@ -18,6 +18,7 @@ package org.apache.stanbol.enhancer.benc
 
 import java.util.List;
 
+import org.apache.clerezza.rdf.core.Graph;
 import org.apache.stanbol.enhancer.servicesapi.EngineException;
 import org.apache.stanbol.enhancer.servicesapi.EnhancementJobManager;
 
@@ -32,4 +33,7 @@ public interface Benchmark extends List<
     /** Execute the benchmark and return results 
      *  @return null */
     List<BenchmarkResult> execute(EnhancementJobManager jobManager) throws EngineException;
+    
+    /** Return the enhanced Graph of our input text */
+    Graph getGraph(EnhancementJobManager jobManager) throws EngineException;
 }

Modified: incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/BenchmarkResult.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/BenchmarkResult.java?rev=1089825&r1=1089824&r2=1089825&view=diff
==============================================================================
--- incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/BenchmarkResult.java (original)
+++ incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/BenchmarkResult.java Thu Apr  7 11:15:30 2011
@@ -18,6 +18,7 @@ package org.apache.stanbol.enhancer.benc
 
 import java.util.Set;
 
+import org.apache.clerezza.rdf.core.Graph;
 import org.apache.clerezza.rdf.core.UriRef;
 
 /** Benchmark result for a single TripleMatcherGroup */

Modified: incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/impl/BenchmarkImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/impl/BenchmarkImpl.java?rev=1089825&r1=1089824&r2=1089825&view=diff
==============================================================================
--- incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/impl/BenchmarkImpl.java (original)
+++ incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/impl/BenchmarkImpl.java Thu Apr  7 11:15:30 2011
@@ -19,6 +19,7 @@ package org.apache.stanbol.enhancer.benc
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.clerezza.rdf.core.Graph;
 import org.apache.stanbol.enhancer.benchmark.Benchmark;
 import org.apache.stanbol.enhancer.benchmark.BenchmarkResult;
 import org.apache.stanbol.enhancer.benchmark.TripleMatcherGroup;
@@ -32,6 +33,7 @@ public class BenchmarkImpl extends Linke
     
     private String name;
     private String inputText;
+    private Graph graph;
     
     /** Not public: meant to be constructed by parsing */
     BenchmarkImpl() {
@@ -67,12 +69,20 @@ public class BenchmarkImpl extends Linke
         }
         
         final List<BenchmarkResult> result = new LinkedList<BenchmarkResult>();
-        final ContentItem ci = new InMemoryContentItem(inputText.getBytes(), "text/plain");
-        jobManager.enhanceContent(ci);
         for(TripleMatcherGroup g :  this) {
-            result.add(new BenchmarkResultImpl(g, ci.getMetadata().getGraph()));
+            result.add(new BenchmarkResultImpl(g, getGraph(jobManager)));
         }
 
         return result;
     }
+    
+    /** @inheritDoc */
+    public Graph getGraph(EnhancementJobManager jobManager) throws EngineException {
+        if(graph == null) {
+            final ContentItem ci = new InMemoryContentItem(inputText.getBytes(), "text/plain");
+            jobManager.enhanceContent(ci);
+            graph = ci.getMetadata().getGraph();
+        }
+        return graph;
+    }
 }

Modified: incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/impl/BenchmarkServlet.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/impl/BenchmarkServlet.java?rev=1089825&r1=1089824&r2=1089825&view=diff
==============================================================================
--- incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/impl/BenchmarkServlet.java (original)
+++ incubator/stanbol/trunk/enhancer/benchmark/src/main/java/org/apache/stanbol/enhancer/benchmark/impl/BenchmarkServlet.java Thu Apr  7 11:15:30 2011
@@ -16,10 +16,11 @@
  */
 package org.apache.stanbol.enhancer.benchmark.impl;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.StringReader;
-import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Properties;
@@ -29,6 +30,8 @@ import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.clerezza.rdf.core.Graph;
+import org.apache.clerezza.rdf.core.serializedform.Serializer;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.LineIterator;
 import org.apache.felix.scr.annotations.Component;
@@ -62,6 +65,9 @@ public class BenchmarkServlet extends Ht
     @Reference
     private EnhancementJobManager jobManager;
     
+    @Reference
+    private Serializer graphSerializer;
+    
     public static final String PARAM_CONTENT = "content";
     public static final String DEFAULT_MOUNT_PATH = "/benchmark";
     public static final String DEFAULT_BENCHMARK = "default.txt";
@@ -71,6 +77,21 @@ public class BenchmarkServlet extends Ht
     public static final String MOUNT_PATH_PROPERTY = "mount.path";
     private String mountPath; 
     private final VelocityEngine velocity = new VelocityEngine();
+    
+    // Formatter for benchmark graphs
+    public static class GraphFormatter {
+        private final Serializer serializer;
+        
+        GraphFormatter(Serializer s) {
+            serializer = s;
+        }
+        
+        public String format(Graph g, String mimeType) throws UnsupportedEncodingException {
+            final ByteArrayOutputStream bos = new ByteArrayOutputStream();
+            serializer.serialize(bos, g, mimeType);
+            return bos.toString("UTF-8");
+        }
+    };
 
     /** Register with HttpService when activated */
     public void activate(ComponentContext ctx) throws ServletException, NamespaceException {
@@ -181,6 +202,7 @@ public class BenchmarkServlet extends Ht
         final VelocityContext ctx = getVelocityContext(request, "Benchmark Results");
         ctx.put("jobManager", jobManager);
         ctx.put("benchmarks", parser.parse(new StringReader(content)));
+        ctx.put("graphFormatter", new GraphFormatter(graphSerializer));
         
         response.setContentType("text/html");
         response.setCharacterEncoding("UTF-8");

Modified: incubator/stanbol/trunk/enhancer/benchmark/src/main/resources/velocity/benchmark-results.html
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/benchmark/src/main/resources/velocity/benchmark-results.html?rev=1089825&r1=1089824&r2=1089825&view=diff
==============================================================================
--- incubator/stanbol/trunk/enhancer/benchmark/src/main/resources/velocity/benchmark-results.html (original)
+++ incubator/stanbol/trunk/enhancer/benchmark/src/main/resources/velocity/benchmark-results.html Thu Apr  7 11:15:30 2011
@@ -2,6 +2,7 @@
 <head>
 	<title>$title</title>
 	<link rel="stylesheet" href="$cssPath"/>
+    <script type="text/javascript" src="$contextPath/static/enhancer/scripts/jquery-1.4.2.js"></script>
 </head>
 <body>
 	<div class="home">
@@ -20,8 +21,21 @@
 		#set($index = 0)
 		#foreach($benchmark in $benchmarks)
 			<div class="benchmark">
-			    #set($index = $index + 1) 
+			    #set($index = $index + 1)
+			     
 				<div class="input"><span class="label">Benchmark $index input: </span>$benchmark.getInputText()</div>
+				
+                <div class="outputGraph">
+                    <div class="collapsed">
+                        <p class="collapseheader">
+                            EnhancementEngines output:
+                        </p>                                                      
+                        <div class="collapsable">
+                            <pre>$esc.html($graphFormatter.format($benchmark.getGraph($jobManager), "text/turtle"))</pre>
+                        </div>
+                    </div>                          
+                </div>
+                
 				#foreach($result in $benchmark.execute($jobManager))
 					<div class="result">
 						<div class="description">
@@ -52,5 +66,10 @@
 		#end
 		</div>
 	</div>
+    <script>
+    $(".outputGraph p").click(function () {
+      $(this).parents("div").toggleClass("collapsed");
+    });    
+    </script>
 </body>
 </html>
\ No newline at end of file

Modified: incubator/stanbol/trunk/enhancer/benchmark/src/main/resources/velocity/benchmark.css
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/benchmark/src/main/resources/velocity/benchmark.css?rev=1089825&r1=1089824&r2=1089825&view=diff
==============================================================================
--- incubator/stanbol/trunk/enhancer/benchmark/src/main/resources/velocity/benchmark.css (original)
+++ incubator/stanbol/trunk/enhancer/benchmark/src/main/resources/velocity/benchmark.css Thu Apr  7 11:15:30 2011
@@ -36,4 +36,17 @@
 .result .matchers {
 	margin-left: 2em;
 	font-size: 90%;
-}
\ No newline at end of file
+}
+
+.outputGraph .collapseheader {
+  margin: 0.1em;
+  cursor: pointer;
+  background: url("$contextPath/static/home/images/foldable_unfolded.png") no-repeat scroll right center transparent;
+}
+
+.outputGraph .collapsed .collapseheader {
+  background: url("$contextPath/static/home/images/foldable_folded.png") no-repeat scroll right center transparent;
+}
+.outputGraph .collapsed .collapsable {
+  display: none;
+}