You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2012/08/13 18:42:13 UTC

svn commit: r1372503 - in /jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader: Langs.java MainWebReader.java PROJECT_RiotReader.java TestJenaReaderRIOT.java WebReader2.java

Author: andy
Date: Mon Aug 13 16:42:13 2012
New Revision: 1372503

URL: http://svn.apache.org/viewvc?rev=1372503&view=rev
Log: (empty)

Modified:
    jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/Langs.java
    jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/MainWebReader.java
    jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/PROJECT_RiotReader.java
    jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestJenaReaderRIOT.java
    jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/WebReader2.java

Modified: jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/Langs.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/Langs.java?rev=1372503&r1=1372502&r2=1372503&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/Langs.java (original)
+++ jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/Langs.java Mon Aug 13 16:42:13 2012
@@ -326,6 +326,7 @@ public class Langs
 //
     static Lang convert(Lang2 language)
     {
+        if ( language == null ) throw new RiotException("Null language") ;
         if ( language.equals(langRDFXML))     return Lang.RDFXML ;
         if ( language.equals(langTurtle))     return Lang.TURTLE ;
         if ( language.equals(langNTriples))   return Lang.NTRIPLES ;

Modified: jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/MainWebReader.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/MainWebReader.java?rev=1372503&r1=1372502&r2=1372503&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/MainWebReader.java (original)
+++ jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/MainWebReader.java Mon Aug 13 16:42:13 2012
@@ -54,7 +54,7 @@ public class MainWebReader
         
         Model m = ModelFactory.createDefaultModel() ;
         WebReader2.read(m, "http://localhost:3030/ds/data?default", Langs.nameToLang(WebContent.contentTypeTurtle), null) ;
-        WebReader2.read(m, "file:./D.ttl", null, null) ;
+        WebReader2.read(m, "file:./D.ttl", null, null, null) ;
         //SSE.write(m) ;
         System.out.println("triples = "+m.size()) ;
     }

Modified: jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/PROJECT_RiotReader.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/PROJECT_RiotReader.java?rev=1372503&r1=1372502&r2=1372503&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/PROJECT_RiotReader.java (original)
+++ jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/PROJECT_RiotReader.java Mon Aug 13 16:42:13 2012
@@ -20,6 +20,7 @@ package projects.riot_reader;
 
 
 
+
 /** Not a class. */
 
 public class PROJECT_RiotReader
@@ -33,7 +34,15 @@ public class PROJECT_RiotReader
     
     // ****
     // Testing (ready)
-    // 5 errors need changes to ModelCom to fix.
+    // 6 errors need changes to ModelCom to fix.
+    //    read_base_1  - ModeCom.read(url, base, lang) does : InputStream is = new URL( url ) .openStream() (no conneg)
+    //                        ==> WebReader2.read)
+    //    read_input_1 - lang not passed on ModelCom:  readerFactory.getReader(lang) .read(this, reader, base);
+    //    read_input_2 - same
+    //    read_30      - looses hint lang (could fix with per-lang readers but just use WebReader2.read) 
+    //    read_31      - looses hint lang (ditto)
+    //    read_32      - looses hint lang (ditto)
+    
     /* read-30
      * "D-not-TTL.ttl"
      * m1.read(in.getInput(), null, "RDF/XML") ;
@@ -46,9 +55,12 @@ public class PROJECT_RiotReader
     /* read_base_1
      * Test is jenaread("D-no-base.ttl", "http://baseuri/", "TTL") ;
      * ModelCom read(url, base, lang )
-     *   Immediately opnes connection in a hardwired fashion, needs protocol.
+     *   Immediately opens connection in a hardwired fashion, needs protocol.
      */
     
+    // Integration into Jena:
+    // Remove: RDFReaderF
+    
     // tests
     // File extension and HTTP
     // 303's

Modified: jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestJenaReaderRIOT.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestJenaReaderRIOT.java?rev=1372503&r1=1372502&r2=1372503&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestJenaReaderRIOT.java (original)
+++ jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestJenaReaderRIOT.java Mon Aug 13 16:42:13 2012
@@ -26,6 +26,7 @@ import org.junit.AfterClass ;
 import org.junit.BeforeClass ;
 import org.junit.Test ;
 import org.openjena.atlas.junit.BaseTest ;
+import org.openjena.atlas.lib.StrUtils ;
 
 import com.hp.hpl.jena.rdf.model.Model ;
 import com.hp.hpl.jena.rdf.model.ModelFactory ;
@@ -72,7 +73,6 @@ public class TestJenaReaderRIOT extends 
     @Test public void read_23b()  { jenaread("D-rdf", "RDFXML") ; }
     @Test public void read_24()   { jenaread("D-json", "RDF/JSON") ; }
     
-    //@Test public void read_30() { jenaread("D-not-TTL.ttl", "RDF/XML") ; }
     @Test public void read_30()
     {
         TypedInputStream2 in = WebReader2.open(filename("D-not-TTL.ttl") );
@@ -89,9 +89,25 @@ public class TestJenaReaderRIOT extends 
         StringReader s = new StringReader("<s> <p> <p> .") ;
         Model m = ModelFactory.createDefaultModel() ;
         WebReader2.read(m, s, null, Langs.langNTriples) ;
-        m.read(s, null, "NT") ;
+        m.read(s, null, "N-TRIPLES") ;
     }
     
+    @Test public void read_32()
+    {
+        String x = StrUtils.strjoinNL(
+            "<rdf:RDF", 
+            "   xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"",
+            "   xmlns:j.0=\"http://example/\">" ,
+            "  <rdf:Description rdf:about=\"http://example/s\">" ,
+            "     <j.0:p rdf:resource=\"http://example/o\"/>" ,
+            "   </rdf:Description>" ,
+            "</rdf:RDF>") ;
+        StringReader s = new StringReader(x) ;
+        Model m = ModelFactory.createDefaultModel() ;
+        WebReader2.read(m, s, null, Langs.langRDFXML) ;
+        m.read(s, null, "RDF/XML") ;
+    }
+
     // Stream opening is hardwired into jena!
     @Test public void read_base_1() { jenaread("D-no-base.ttl", "http://baseuri/", "TTL") ; }
     
@@ -170,11 +186,11 @@ public class TestJenaReaderRIOT extends 
     private static void jenaread(String dataurl, String lang, String base)
     {
         dataurl = filename(dataurl) ;
-        
-        // TODO
-        // new RDFReaderFactoryRIOT().getReader(lang) ;
-        
         Model m = ModelFactory.createDefaultModel() ;
+        
+        // This 
+        WebReader2.read(m, dataurl, base, Langs.nameToLang(lang)) ;
+        // should be implementation of:
         m.read(dataurl, lang, base) ;
         assertTrue(m.size() != 0 ) ;
         

Modified: jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/WebReader2.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/WebReader2.java?rev=1372503&r1=1372502&r2=1372503&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/WebReader2.java (original)
+++ jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/WebReader2.java Mon Aug 13 16:42:13 2012
@@ -25,6 +25,7 @@ import java.io.StringReader ;
 import org.openjena.atlas.lib.Sink ;
 import org.openjena.atlas.web.ContentType ;
 import org.openjena.riot.* ;
+import org.openjena.riot.lang.LangRDFXML ;
 import org.openjena.riot.lang.LangRIOT ;
 import org.openjena.riot.lang.SinkQuadsToDataset ;
 import org.openjena.riot.lang.SinkTriplesToGraph ;
@@ -98,7 +99,7 @@ public class WebReader2
      * @param model Destination for the RDF read.
      * @param uri   URI to read from (includes file: and a plain file name).
      */
-    public static void read(Model model, String uri)                    { read(model, uri, null, null) ; }
+    public static void read(Model model, String uri)                    { read(model, uri, null, null, null) ; }
     
     /** Read triples into a Model from the given location, with a hint of the language (MIME type) 
      * @see #read(Model,String,String,Lang2,Context) 
@@ -108,6 +109,17 @@ public class WebReader2
      */
     public static void read(Model model, String uri, Lang2 hintLang)   { read(model, uri, hintLang, null) ; }
     
+    /** Read triples into a Model from the given location, with hint of langauge and the with some parameters for the reader 
+     * @see #read(Model,String,String,Lang2,Context) 
+     * Throws parse errors depending on the language and reader; the Model model may be partially updated.
+     * @param model     Destination for the RDF read.
+     * @param uri       URI to read from (includes file: and a plain file name).
+     * @param base      Base URI (defaults to uri).
+     * @param hintLang  Hint for the syntax
+     * @throws RiotNotFoundException if the location is not found - the model is unchanged.
+     */
+    public static void read(Model model, String uri, String base, Lang2 hintLang) { read(model, uri, base, hintLang, null) ; }
+    
     /** Read triples into a Model from the given location, with some parameters for the reader
      * @see #read(Model,String,String,Lang2,Context) 
      * @param model     Destination for the RDF read
@@ -129,7 +141,6 @@ public class WebReader2
     }
     
     /** Read triples into a Model from the given location, with hint of langauge and the with some parameters for the reader 
-     * @see #read(Model,String,String,Lang2,Context) 
      * Throws parse errors depending on the language and reader; the Model model may be partially updated.
      * @param model     Destination for the RDF read.
      * @param uri       URI to read from (includes file: and a plain file name).
@@ -437,11 +448,23 @@ public class WebReader2
     }
 
     // java.io.Readers are NOT preferred.
+    @SuppressWarnings("deprecation")
     private static void processTriples(Sink<Triple> sink, String base, Reader in, Lang2 hintLang, Context context)
     {
+        // Not as good as from an InputStream - RDF/XML not supported 
+        ContentType ct = determineCT(base, null, hintLang) ;
+        if ( ct == null )
+            throw new RiotException("Failed to determine the triples content type: (URI="+base+" : hint="+hintLang+")") ;
+        
         Tokenizer tokenizer = TokenizerFactory.makeTokenizer(in) ;
+        if ( hintLang == null )
+            throw new RiotException("No language specificied") ;
         Lang lang = Langs.convert(hintLang) ;
-        LangRIOT parser = RiotReader.createParserTriples(tokenizer, lang, base, sink) ;
+        LangRIOT parser ;
+        if ( lang == Lang.RDFXML )
+            parser = LangRDFXML.create(in, base, base, ErrorHandlerFactory.errorHandlerStd, sink) ;
+        else
+            parser = RiotReader.createParserTriples(tokenizer, lang, base, sink) ;
         parser.parse() ;
     }