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/10/25 21:04:10 UTC

svn commit: r1402276 - in /jena: Experimental/riot-reader/ Experimental/riot-reader/src/main/java/dev/ Experimental/riot-reader/src/test/java/riotcmd/ Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/ trunk/jena-arq/src/main/java/org/openjena/riot...

Author: andy
Date: Thu Oct 25 19:04:09 2012
New Revision: 1402276

URL: http://svn.apache.org/viewvc?rev=1402276&view=rev
Log:
Add non-@ forms to directives recognized by Turtle and TriG (WG decision)

Modified:
    jena/Experimental/riot-reader/rdflangtest
    jena/Experimental/riot-reader/src/main/java/dev/MainWebReader.java
    jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java
    jena/Experimental/riot-reader/src/test/java/riotcmd/rdflangtest.java
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest.ttl
    jena/trunk/jena-arq/src/main/java/org/openjena/riot/RIOT.java
    jena/trunk/jena-arq/src/main/java/org/openjena/riot/lang/LangTriG.java
    jena/trunk/jena-arq/src/main/java/org/openjena/riot/lang/LangTurtleBase.java
    jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java

Modified: jena/Experimental/riot-reader/rdflangtest
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/rdflangtest?rev=1402276&r1=1402275&r2=1402276&view=diff
==============================================================================
--- jena/Experimental/riot-reader/rdflangtest (original)
+++ jena/Experimental/riot-reader/rdflangtest Thu Oct 25 19:04:09 2012
@@ -2,7 +2,9 @@
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
 BASE="$HOME/Projects/riot-reader"
-CP="/home/afs/.m2/repo/commons-codec/commons-codec/1.5/commons-codec-1.5.jar:/home/afs/.m2/repo/junit/junit/4.9/junit-4.9.jar:/home/afs/.m2/repo/log4j/log4j/1.2.16/log4j-1.2.16.jar:/home/afs/.m2/repo/org/apache/httpcomponents/httpclient/4.1.2/httpclient-4.1.2.jar:/home/afs/.m2/repo/org/apache/httpcomponents/httpcore/4.1.3/httpcore-4.1.3.jar:/home/afs/.m2/repo/org/apache/jena/jena-arq/2.9.4-SNAPSHOT/jena-arq-2.9.4-SNAPSHOT-tests.jar:/home/afs/.m2/repo/org/apache/jena/jena-arq/2.9.4-SNAPSHOT/jena-arq-2.9.4-SNAPSHOT.jar:/home/afs/.m2/repo/org/apache/jena/jena-core/2.7.4-SNAPSHOT/jena-core-2.7.4-SNAPSHOT-tests.jar:/home/afs/.m2/repo/org/apache/jena/jena-core/2.7.4-SNAPSHOT/jena-core-2.7.4-SNAPSHOT.jar:/home/afs/.m2/repo/org/apache/jena/jena-iri/0.9.4-SNAPSHOT/jena-iri-0.9.4-SNAPSHOT.jar:/home/afs/.m2/repo/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar:/home/afs/.m2/repo/org/slf4j/jcl-over-slf4j/1.6.4/jcl-over-slf4j-1.6.4.jar:/home/afs/.m2/repo/org/slf4j/slf4j-api/1.6.4/slf
 4j-api-1.6.4.jar:/home/afs/.m2/repo/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar:/home/afs/.m2/repo/xerces/xercesImpl/2.10.0/xercesImpl-2.10.0.jar:/home/afs/.m2/repo/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar"
+CP="/home/afs/.m2/repo/commons-codec/commons-codec/1.5/commons-codec-1.5.jar:/home/afs/.m2/repo/junit/junit/4.9/junit-4.9.jar:/home/afs/.m2/repo/log4j/log4j/1.2.16/log4j-1.2.16.jar:/home/afs/.m2/repo/org/apache/httpcomponents/httpclient/4.1.2/httpclient-4.1.2.jar:/home/afs/.m2/repo/org/apache/httpcomponents/httpcore/4.1.3/httpcore-4.1.3.jar:/home/afs/.m2/repo/org/apache/jena/jena-arq/2.9.5-SNAPSHOT/jena-arq-2.9.5-SNAPSHOT-tests.jar:/home/afs/.m2/repo/org/apache/jena/jena-arq/2.9.5-SNAPSHOT/jena-arq-2.9.5-SNAPSHOT.jar:/home/afs/.m2/repo/org/apache/jena/jena-core/2.7.5-SNAPSHOT/jena-core-2.7.5-SNAPSHOT-tests.jar:/home/afs/.m2/repo/org/apache/jena/jena-core/2.7.5-SNAPSHOT/jena-core-2.7.5-SNAPSHOT.jar:/home/afs/.m2/repo/org/apache/jena/jena-iri/0.9.5-SNAPSHOT/jena-iri-0.9.5-SNAPSHOT.jar:/home/afs/.m2/repo/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar:/home/afs/.m2/repo/org/slf4j/jcl-over-slf4j/1.6.4/jcl-over-slf4j-1.6.4.jar:/home/afs/.m2/repo/org/slf4j/slf4j-api/1.6.4/slf
 4j-api-1.6.4.jar:/home/afs/.m2/repo/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar:/home/afs/.m2/repo/xerces/xercesImpl/2.10.0/xercesImpl-2.10.0.jar:/home/afs/.m2/repo/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar"
+
+CP="$HOME/Jena/jena-arq/classes:$CP"
 
 if [ -e "$BASE/target/classes" ]
 then 

Modified: jena/Experimental/riot-reader/src/main/java/dev/MainWebReader.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/main/java/dev/MainWebReader.java?rev=1402276&r1=1402275&r2=1402276&view=diff
==============================================================================
--- jena/Experimental/riot-reader/src/main/java/dev/MainWebReader.java (original)
+++ jena/Experimental/riot-reader/src/main/java/dev/MainWebReader.java Thu Oct 25 19:04:09 2012
@@ -34,8 +34,6 @@ public class MainWebReader
     public static void main(String ... argv)
     {
         WebReader2.wireIntoJena() ;
-        //Log.enable(WebReader2.class) ;
-
         {
             Model m = AdapterFileManager.get().loadModel("http://jena.apache.org/about_jena/jena.rdf") ;
             System.out.println(m.size()) ;

Modified: jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java?rev=1402276&r1=1402275&r2=1402276&view=diff
==============================================================================
--- jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java (original)
+++ jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java Thu Oct 25 19:04:09 2012
@@ -28,11 +28,6 @@ public class PROJECT_RiotReader
     
     // Check ContentType vs MediaType => MediaType (code) , correct name is ?  
     
-    // Tests:
-    // Sort out directories.
-    //   testing/FileManager
-    //   testing/RIOT/FileManager
-
     // Potentially split into:
     // WebReaderModel (no context) 
     // WebReaderDataset (no context) 

Modified: jena/Experimental/riot-reader/src/test/java/riotcmd/rdflangtest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/test/java/riotcmd/rdflangtest.java?rev=1402276&r1=1402275&r2=1402276&view=diff
==============================================================================
--- jena/Experimental/riot-reader/src/test/java/riotcmd/rdflangtest.java (original)
+++ jena/Experimental/riot-reader/src/test/java/riotcmd/rdflangtest.java Thu Oct 25 19:04:09 2012
@@ -21,6 +21,7 @@ package riotcmd;
 import junit.framework.TestSuite ;
 import org.apache.jena.riot.langsuite.FactoryTestRiotTurtle ;
 import org.openjena.atlas.junit.BaseTest ;
+import org.openjena.riot.RIOT ;
 import org.openjena.riot.SysRIOT ;
 import arq.cmd.CmdException ;
 import arq.cmd.TerminationException ;
@@ -63,12 +64,12 @@ import com.hp.hpl.jena.vocabulary.XSD ;
 
 public class rdflangtest extends CmdGeneral
 {
-    protected ModSymbol modSymbol = new ModSymbol() ;
-    ArgDecl  strictDecl = new ArgDecl(ArgDecl.NoValue, "strict") ;
-    protected boolean cmdStrictMode = false ; 
+    protected ModSymbol modSymbol       = new ModSymbol() ;
+    protected ArgDecl  strictDecl       = new ArgDecl(ArgDecl.NoValue, "strict") ;
+    protected boolean  cmdStrictMode    = false ; 
 
     //protected ArgDecl allDecl =    new ArgDecl(ArgDecl.NoValue, "all") ;
-    protected ArgDecl earlDecl =   new ArgDecl(ArgDecl.NoValue, "earl") ;
+    protected ArgDecl earlDecl          = new ArgDecl(ArgDecl.NoValue, "earl") ;
     
     protected boolean createEarlReport = false;
     
@@ -116,12 +117,16 @@ public class rdflangtest extends CmdGene
         // Paradoxical naming - the boolean is a visibility flag.
         BaseTest.setTestLogging() ;
         
-        if ( cmdStrictMode )
+        if ( contains(strictDecl) )
+        {
+            cmdStrictMode = true ;
+            // Which will apply to reading the manifest!
             ARQ.setStrictMode() ;
+            RIOT.setStrictMode(true) ;
+        }
         
         NodeValue.VerboseWarnings = false ;
         E_Function.WarnOnUnknownFunction = false ;
-            
         
         for ( String fn : getPositional() )
         {

Modified: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest.ttl?rev=1402276&r1=1402275&r2=1402276&view=diff
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest.ttl (original)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest.ttl Thu Oct 25 19:04:09 2012
@@ -299,5 +299,5 @@
     mf:name      "rdfq-results" ;
     rdfs:comment "Example query result from http://www.w3.org/2003/03/rdfqr-tests/recording-query-results.html" ;
     mf:action    <rdfq-results.ttl> ;
-    mf:result    <rdfq-results.out>
-      
+    mf:result    <rdfq-results.out> .
+          

Modified: jena/trunk/jena-arq/src/main/java/org/openjena/riot/RIOT.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/riot/RIOT.java?rev=1402276&r1=1402275&r2=1402276&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/RIOT.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/riot/RIOT.java Thu Oct 25 19:04:09 2012
@@ -18,6 +18,8 @@
 
 package org.openjena.riot;
 
+import org.openjena.riot.lang.LangTurtleBase ;
+
 import com.hp.hpl.jena.query.ARQ ;
 import com.hp.hpl.jena.sparql.SystemARQ ;
 import com.hp.hpl.jena.sparql.mgt.ARQMgt ;
@@ -47,6 +49,11 @@ public class RIOT
 //    /** The date and time at which this release was built */   
 //    public static final String BUILD_DATE = metadata.get(PATH+".build.datetime", "unset") ;
     
+    public static void setStrictMode(boolean state)
+    {
+        LangTurtleBase.strict = state ;
+    }
+    
     static boolean initialized = false ;
     public static synchronized void init()
     {

Modified: jena/trunk/jena-arq/src/main/java/org/openjena/riot/lang/LangTriG.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/riot/lang/LangTriG.java?rev=1402276&r1=1402275&r2=1402276&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/lang/LangTriG.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/riot/lang/LangTriG.java Thu Oct 25 19:04:09 2012
@@ -70,7 +70,7 @@ public class LangTriG extends LangTurtle
         Node graphNode = Quad.tripleInQuad ;
         Token token = peekToken() ;
 
-        // <foo> = { ... } .
+        // <foo> = { ... } or just { ... }
         if ( token.isNode() )
         {
             Token t = token ;   // Keep for error message. 
@@ -124,7 +124,6 @@ public class LangTriG extends LangTurtle
         if ( token.hasType(TokenType.DOT) )
             nextToken() ;
         
-        
         // End graph block.
         setCurrentGraph(Quad.tripleInQuad) ;
     }
@@ -135,7 +134,8 @@ public class LangTriG extends LangTurtle
         // The DOT is required by Turtle (strictly).
         // It is not in N3 and SPARQL.
         
-        if ( strict )
+        // No trailing DOT is allowed by strict TriG.
+        if ( false /*strict*/ )
         {
             expect("Triples not terminated by DOT", DOT) ;
             return ;

Modified: jena/trunk/jena-arq/src/main/java/org/openjena/riot/lang/LangTurtleBase.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/riot/lang/LangTurtleBase.java?rev=1402276&r1=1402275&r2=1402276&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/lang/LangTurtleBase.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/riot/lang/LangTurtleBase.java Thu Oct 25 19:04:09 2012
@@ -94,8 +94,6 @@ public abstract class LangTurtleBase<X> 
     //protected final static boolean CHECKING         = true ;
     public static boolean strict                    = false ;
     
-//    protected final Prologue prologue ;
-    
     // Current graph - null for default graph
     private Node currentGraph = null ;
     
@@ -141,6 +139,12 @@ public abstract class LangTurtleBase<X> 
                 continue ;
             }
             
+            if ( lookingAt(KEYWORD) )
+            {
+                toplevelkeyword() ;
+                continue ;
+            }
+
             oneTopLevelElement() ;
             
             if ( lookingAt(EOF) )
@@ -154,6 +158,26 @@ public abstract class LangTurtleBase<X> 
     /** Emit a triple - nodes have been checked as has legality of node type in location */
     protected abstract void emit(Node subject, Node predicate, Node object) ;
 
+    protected final void toplevelkeyword()
+    {
+        Token t = peekToken() ; 
+        String x = t.getImage() ;
+        nextToken() ;
+        
+        if ( x.equalsIgnoreCase("BASE") )
+        {
+            directiveBase() ;
+            return ;
+        }
+        
+        if ( x.equalsIgnoreCase("PREFIX") )
+        {
+            directivePrefix() ;
+            return ;
+        }
+        exception(t, "Unrecognized keyword: %s", x) ; 
+    }
+    
     protected final void directive()
     {
         // It's a directive ...
@@ -164,12 +188,14 @@ public abstract class LangTurtleBase<X> 
         if ( x.equals("base") )
         {
             directiveBase() ;
+            expect("Base directive not terminated by a dot", DOT) ;
             return ;
         }
         
         if ( x.equals("prefix") )
         {
             directivePrefix() ;
+            expect("Prefix directive not terminated by a dot", DOT) ;
             return ;
         }
         exception(t, "Unrecognized directive: %s", x) ;
@@ -191,7 +217,6 @@ public abstract class LangTurtleBase<X> 
         profile.getPrologue().getPrefixMap().add(prefix, iri) ;
 
         nextToken() ;
-        expect("Prefix directive not terminated by a dot", DOT) ;
     }
 
     protected final void directiveBase()
@@ -204,7 +229,6 @@ public abstract class LangTurtleBase<X> 
         IRI baseIRI = profile.makeIRI(baseStr, currLine, currCol) ;
         nextToken() ;
 
-        expect("Base directive not terminated by a dot", DOT) ;
         profile.getPrologue().setBaseURI(baseIRI) ;
     }
 
@@ -234,7 +258,7 @@ public abstract class LangTurtleBase<X> 
             //   A DOT or EOF.
             // But if a DOT or EOF, then it can't have been () or [].
             
-            // Turtle, as spec'ed does nto allow 
+            // Turtle, as spec'ed does not allow 
             // (1 2 3 4) .
             // There must be a predicate and object.
             

Modified: jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java?rev=1402276&r1=1402275&r2=1402276&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java (original)
+++ jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java Thu Oct 25 19:04:09 2012
@@ -32,12 +32,7 @@ import org.openjena.atlas.lib.Sink ;
 import org.openjena.atlas.lib.SinkCounting ;
 import org.openjena.atlas.lib.SinkNull ;
 import org.openjena.atlas.lib.StrUtils ;
-import org.openjena.riot.ErrorHandler ;
-import org.openjena.riot.ErrorHandlerFactory ;
-import org.openjena.riot.Lang ;
-import org.openjena.riot.RiotException ;
-import org.openjena.riot.RiotReader ;
-import org.openjena.riot.SysRIOT ;
+import org.openjena.riot.* ;
 import org.openjena.riot.lang.LabelToNode ;
 import org.openjena.riot.lang.LangRDFXML ;
 import org.openjena.riot.lang.LangRIOT ;
@@ -52,6 +47,7 @@ import org.openjena.riot.system.SyntaxLa
 import org.openjena.riot.tokens.Tokenizer ;
 import org.openjena.riot.tokens.TokenizerFactory ;
 import arq.cmd.CmdException ;
+import arq.cmdline.ArgDecl ;
 import arq.cmdline.CmdGeneral ;
 import arq.cmdline.ModLangParse ;
 import arq.cmdline.ModTime ;
@@ -69,6 +65,7 @@ public abstract class CmdLangParse exten
     // Module.
     protected ModTime modTime                   = new ModTime() ;
     protected ModLangParse modLangParse         = new ModLangParse() ;
+    protected ArgDecl argStrict                 = new ArgDecl(ArgDecl.NoValue, "strict") ;    
     protected InferenceSetupRDFS setup          = null ; 
     
     interface LangHandler {
@@ -166,7 +163,10 @@ public abstract class CmdLangParse exten
 
     @Override
     protected void processModulesAndArgs()
-    { }
+    { 
+        if ( this.contains(argStrict) )
+            RIOT.setStrictMode(true) ;
+    }
 
     protected long totalMillis = 0 ; 
     protected long totalTuples = 0 ;