Author: rwesten
Date: Wed Apr 25 04:24:35 2012
New Revision: 1330094

URL: http://svn.apache.org/viewvc?rev=1330094&view=rev
Log:
STANBOL-589: Added support for parsing/writing SimilarityConstraints from/to 
JSON formatted FieldQueries

Modified:
    
incubator/stanbol/trunk/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/FieldQueryReader.java
    
incubator/stanbol/trunk/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/writers/QueryResultsToRDF.java

Modified: 
incubator/stanbol/trunk/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/FieldQueryReader.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/FieldQueryReader.java?rev=1330094&r1=1330093&r2=1330094&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/FieldQueryReader.java
 (original)
+++ 
incubator/stanbol/trunk/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/FieldQueryReader.java
 Wed Apr 25 04:24:35 2012
@@ -48,6 +48,7 @@ import org.apache.stanbol.entityhub.serv
 import org.apache.stanbol.entityhub.servicesapi.query.FieldQuery;
 import org.apache.stanbol.entityhub.servicesapi.query.RangeConstraint;
 import org.apache.stanbol.entityhub.servicesapi.query.ReferenceConstraint;
+import org.apache.stanbol.entityhub.servicesapi.query.SimilarityConstraint;
 import org.apache.stanbol.entityhub.servicesapi.query.TextConstraint;
 import 
org.apache.stanbol.entityhub.servicesapi.query.TextConstraint.PatternType;
 import org.apache.stanbol.entityhub.servicesapi.query.ValueConstraint;
@@ -148,6 +149,7 @@ public class FieldQueryReader implements
             JSONObject jConstraint = constraints.getJSONObject(i);
             if(jConstraint.has("field")){
                 String field = jConstraint.getString("field");
+                field = NamespaceEnum.getFullName(field);
                 //check if there is already a constraint for that field
                 if(field == null || field.isEmpty()){
 //                    log.warn("The value of the key \"field\" MUST NOT be 
NULL nor emtpy!");
@@ -206,6 +208,7 @@ public class FieldQueryReader implements
         if(selected != null){
             for(int i=0;i<selected.length();i++){
                 String selectedField = selected.getString(i);
+                selectedField = NamespaceEnum.getFullName(selectedField);
                 if(selectedField != null && !selectedField.isEmpty()){
                     query.addSelectedField(selectedField);
                 }
@@ -255,6 +258,8 @@ public class FieldQueryReader implements
                 return parseTextConstraint(jConstraint);
             } else if (type.equals(ConstraintType.range.name())){
                 return parseRangeConstraint(jConstraint);
+            } else if(type.equals(ConstraintType.similarity.name())){
+                return parseSimilarityConstraint(jConstraint);
             } else {
                 log.warn(String.format("Unknown Constraint Type %s. Supported 
values are %s",               
                     Arrays.asList("reference",ConstraintType.values())));
@@ -281,6 +286,27 @@ public class FieldQueryReader implements
         }
     }
 
+    private static Constraint parseSimilarityConstraint(JSONObject 
jConstraint) throws JSONException {
+        String context = jConstraint.optString("context");
+        if(context == null){
+            throw new IllegalArgumentException("SimilarityConstraints MUST 
define a \"context\": \n "+jConstraint.toString(4));
+        }
+        JSONArray addFields = jConstraint.optJSONArray("addFields");
+        final List<String> fields;
+        if(addFields != null && addFields.length() > 0){
+            fields = new ArrayList<String>(addFields.length());
+            for(int i=0;i<addFields.length();i++){
+                String field = addFields.optString(i);
+                if(field != null && !field.isEmpty()){
+                    fields.add(NamespaceEnum.getFullName(field));
+                }
+            }
+        } else {
+            fields = null;
+        }
+        return new SimilarityConstraint(context,fields);
+    }
+
     /**
      * @param jConstraint
      * @return

Modified: 
incubator/stanbol/trunk/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/writers/QueryResultsToRDF.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/writers/QueryResultsToRDF.java?rev=1330094&r1=1330093&r2=1330094&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/writers/QueryResultsToRDF.java
 (original)
+++ 
incubator/stanbol/trunk/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/writers/QueryResultsToRDF.java
 Wed Apr 25 04:24:35 2012
@@ -16,14 +16,20 @@
  */
 package org.apache.stanbol.entityhub.jersey.writers;
 
+import java.io.ByteArrayOutputStream;
+import java.io.StringWriter;
+import java.nio.charset.Charset;
 import java.util.Iterator;
 
 import org.apache.clerezza.rdf.core.LiteralFactory;
 import org.apache.clerezza.rdf.core.MGraph;
 import org.apache.clerezza.rdf.core.Triple;
 import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.impl.PlainLiteralImpl;
 import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
 import org.apache.clerezza.rdf.core.impl.TripleImpl;
+import org.apache.clerezza.rdf.core.serializedform.SupportedFormat;
+import org.apache.clerezza.rdf.jena.serializer.JenaSerializerProvider;
 import org.apache.stanbol.commons.indexedgraph.IndexedMGraph;
 import org.apache.stanbol.entityhub.query.clerezza.RdfQueryResultList;
 import org.apache.stanbol.entityhub.servicesapi.model.Entity;
@@ -115,4 +121,12 @@ final class QueryResultsToRDF {
         return resultGraph;
     }
 
+    public static void main(String[] args) throws Exception {
+        JenaSerializerProvider p = new JenaSerializerProvider();
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        MGraph g = new SimpleMGraph();
+        g.add(new TripleImpl(new UriRef("urn:test"),new 
UriRef("http://test.org/test";),new PlainLiteralImpl("test")));
+        p.serialize(out, g, SupportedFormat.N_TRIPLE);
+        System.out.println(new 
String(out.toByteArray(),Charset.forName("UTF-8")));
+    }
 }


Reply via email to