You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by wi...@apache.org on 2014/01/18 11:59:14 UTC

[5/5] git commit: MAMOTTA-423: more work on how to approach the fixing

MAMOTTA-423: more work on how to approach the fixing


Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/79613510
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/79613510
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/79613510

Branch: refs/heads/develop
Commit: 79613510c29f87a13baca16322e2da9a8dd8212f
Parents: 9ee949a
Author: Sergio Fernández <wi...@apache.org>
Authored: Sat Jan 18 11:58:51 2014 +0100
Committer: Sergio Fernández <wi...@apache.org>
Committed: Sat Jan 18 11:58:51 2014 +0100

----------------------------------------------------------------------
 .../vigsterkr/freebase/fix/FreebaseFixit.java   | 24 +++++++++++++-------
 .../provider/freebase/FreebaseProvider.java     | 22 +++++++++---------
 2 files changed, 27 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/marmotta/blob/79613510/libraries/ldclient/ldclient-provider-freebase/src/ext/java/com/github/vigsterkr/freebase/fix/FreebaseFixit.java
----------------------------------------------------------------------
diff --git a/libraries/ldclient/ldclient-provider-freebase/src/ext/java/com/github/vigsterkr/freebase/fix/FreebaseFixit.java b/libraries/ldclient/ldclient-provider-freebase/src/ext/java/com/github/vigsterkr/freebase/fix/FreebaseFixit.java
index 2c83254..60c2f89 100644
--- a/libraries/ldclient/ldclient-provider-freebase/src/ext/java/com/github/vigsterkr/freebase/fix/FreebaseFixit.java
+++ b/libraries/ldclient/ldclient-provider-freebase/src/ext/java/com/github/vigsterkr/freebase/fix/FreebaseFixit.java
@@ -29,9 +29,10 @@
 
 package com.github.vigsterkr.freebase.fix;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.*;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.regex.Matcher;
@@ -39,6 +40,8 @@ import java.util.regex.Pattern;
 
 public class FreebaseFixit {
 
+    private static Logger log = LoggerFactory.getLogger(FreebaseFixit.class);
+
     private final long line = 0;
 
     /* patterns */
@@ -132,7 +135,7 @@ public class FreebaseFixit {
     public static String fixTriplet(String tripletLine) throws Exception {
         List<String> triplet = splitToTriplet(tripletLine);
         if (triplet.isEmpty())
-            throw new Exception("ERROR: Failed to parse the line");
+            throw new Exception("Failed to parse empty line");
 
         String subject = triplet.get(0);
         String predicate = triplet.get(1);
@@ -146,11 +149,11 @@ public class FreebaseFixit {
 
 		/* fix object */
         if (!object.endsWith("."))
-            throw new Exception("ERROR: object doesn't end with dot");
+            throw new Exception("Object doesn't end with dot");
 
         object = cleanObject(object);
         if (object.length() == 0)
-            throw new Exception("ERROR: Unexpected empty object");
+            throw new Exception("Unexpected empty object");
 
         object = fixObject(object);
 
@@ -158,13 +161,17 @@ public class FreebaseFixit {
     }
 
     public static void fix(BufferedReader br) {
+        fix(br, System.out);
+    }
+
+    public static void fix(BufferedReader br, PrintStream out) {
         try {
             String input;
             while((input=br.readLine())!=null){
                 try {
-                    System.out.println(fixTriplet(input));
+                    out.println(fixTriplet(input));
                 } catch(Exception e) {
-                    System.err.println(e.getMessage());
+                    log.error(e.getMessage());
                 }
             }
         } catch(IOException io) {
@@ -179,4 +186,5 @@ public class FreebaseFixit {
         FreebaseFixit fbFix = new FreebaseFixit();
         fbFix.fix(br);
     }
+
 }

http://git-wip-us.apache.org/repos/asf/marmotta/blob/79613510/libraries/ldclient/ldclient-provider-freebase/src/main/java/org/apache/marmotta/ldclient/provider/freebase/FreebaseProvider.java
----------------------------------------------------------------------
diff --git a/libraries/ldclient/ldclient-provider-freebase/src/main/java/org/apache/marmotta/ldclient/provider/freebase/FreebaseProvider.java b/libraries/ldclient/ldclient-provider-freebase/src/main/java/org/apache/marmotta/ldclient/provider/freebase/FreebaseProvider.java
index ed9e9ee..8b7faff 100644
--- a/libraries/ldclient/ldclient-provider-freebase/src/main/java/org/apache/marmotta/ldclient/provider/freebase/FreebaseProvider.java
+++ b/libraries/ldclient/ldclient-provider-freebase/src/main/java/org/apache/marmotta/ldclient/provider/freebase/FreebaseProvider.java
@@ -33,10 +33,8 @@ import org.openrdf.rio.RDFParseException;
 import org.openrdf.rio.Rio;
 
 import com.github.vigsterkr.freebase.fix.FreebaseFixit;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringWriter;
+
+import java.io.*;
 import java.util.Collections;
 import java.util.List;
 import java.util.regex.Matcher;
@@ -127,15 +125,17 @@ public class FreebaseProvider extends AbstractHttpProvider {
     /**
      * Fixes Freebase deficiencies on Turtle serialization
      *
-     * @param in stream with the raw data
+     * @param is stream with the raw data
      * @return fixed stream
      */
-    private InputStream fix(InputStream in, String encoding) throws IOException {
-        StringWriter writer = new StringWriter();
-        IOUtils.copy(in, writer, encoding);
-        String raw = writer.toString();
-        String fixed = FreebaseFixit.fixObject(raw);
-        return new ByteArrayInputStream(fixed.getBytes(encoding));
+    private InputStream fix(InputStream is, String encoding) throws IOException {
+        BufferedReader br = new BufferedReader(new InputStreamReader(is));
+        PipedOutputStream po = new PipedOutputStream();
+        PrintStream ps = new PrintStream(po);
+        FreebaseFixit.fix(br, ps);
+        ps.flush();
+        ps.close();
+        return new PipedInputStream(po);
     }
 
 }