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/11/04 22:07:07 UTC

svn commit: r1405638 - in /jena: Experimental/riot-reader/src/main/java/dev/ Experimental/riot-reader/src/test/java/riotcmd/ Scratch/AFS/Dev/trunk/src/main/java/projects/validate/

Author: andy
Date: Sun Nov  4 21:07:06 2012
New Revision: 1405638

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

Added:
    jena/Scratch/AFS/Dev/trunk/src/main/java/projects/validate/
    jena/Scratch/AFS/Dev/trunk/src/main/java/projects/validate/ValidatorStage.java
Modified:
    jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java
    jena/Experimental/riot-reader/src/test/java/riotcmd/MainLangTest.java

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=1405638&r1=1405637&r2=1405638&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 Sun Nov  4 21:07:06 2012
@@ -21,6 +21,9 @@ package dev;
 
 public class PROJECT_RiotReader
 {
+    // Tokeizer text parsers 'foo'@en and looses it was a '' string.
+    // ditto datatype. --> token checker.
+    
     // Replace all manifest test suites in ARQ/RIOT with new code.
     // Separate out manifest and junit-direct tests (two packages)  
 

Modified: jena/Experimental/riot-reader/src/test/java/riotcmd/MainLangTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/test/java/riotcmd/MainLangTest.java?rev=1405638&r1=1405637&r2=1405638&view=diff
==============================================================================
--- jena/Experimental/riot-reader/src/test/java/riotcmd/MainLangTest.java (original)
+++ jena/Experimental/riot-reader/src/test/java/riotcmd/MainLangTest.java Sun Nov  4 21:07:06 2012
@@ -22,8 +22,9 @@ public class MainLangTest
 {
     public static void main(String ... argv)
     {
-        riotcmd.rdflangtest.main("testing/RIOT/Lang/Turtle/manifest.ttl") ; 
-        //riotcmd.rdflangtest.main("testing/RIOT/Lang/Turtle/manifest.ttl") ;
+        //riotcmd.rdflangtest.main("--strict", "testing/RIOT/Lang/manifest-all.ttl") ; 
+        //riotcmd.rdflangtest.main("--strict", "testing/RIOT/Lang/Turtle/manifest.ttl") ;
+        riotcmd.rdflangtest.main("--strict", "testing/RIOT/Lang/N-Triples/manifest.ttl") ;
     }
 }
 

Added: jena/Scratch/AFS/Dev/trunk/src/main/java/projects/validate/ValidatorStage.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Dev/trunk/src/main/java/projects/validate/ValidatorStage.java?rev=1405638&view=auto
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/validate/ValidatorStage.java (added)
+++ jena/Scratch/AFS/Dev/trunk/src/main/java/projects/validate/ValidatorStage.java Sun Nov  4 21:07:06 2012
@@ -0,0 +1,151 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package projects.validate;
+
+import org.apache.jena.iri.IRI ;
+import org.openjena.atlas.lib.Sink ;
+import org.openjena.riot.checker.* ;
+import org.openjena.riot.system.Checker ;
+import org.openjena.riot.system.IRIResolver ;
+
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.graph.Triple ;
+import com.hp.hpl.jena.sparql.core.Quad ;
+
+/** data validation - need way to make the input for messages */ 
+public class ValidatorStage implements Sink<ValidatorStage.StageItem<Triple>>
+{
+    long count = 0 ;
+    private Checker checker = new Checker() ;  
+    private ValidatorStage.StageItemHandler<Triple> handler ;
+    
+    private NodeChecker checkLiterals ;
+    private NodeChecker checkURIs ;
+    private NodeChecker checkBlankNodes ;
+    private NodeChecker checkVars ;
+
+    public ValidatorStage()
+    {
+        // handler needs fixing.
+    checkLiterals = new CheckerLiterals(null) ;
+    
+    checkURIs = new CheckerIRI(null, IRIResolver.iriFactory) ;
+    checkBlankNodes = new CheckerBlankNodes(null) ;
+    checkVars = new CheckerVar(null) ;        
+    }
+
+    
+    public interface NodeHandler extends StageItemHandler<Node>
+    {
+        
+    }
+    
+    public interface StageItemHandler<T> 
+    {
+        void error(T item, String msg) ;
+        void warning(T item, String msg) ;
+    }
+    
+    public static class StageItem<T>
+    {
+        T item ;
+        StageItemHandler<Quad> handlerQuad ; 
+        StageItemHandler<Triple> handlerTriple ; 
+        StageItemHandler<Node> handlerNode ;
+        String formatString ;
+    }
+    
+    @Override
+    public void close()
+    {}
+
+    @Override
+    public void send(StageItem<Triple> item)
+    {
+        Triple triple = item.item ;
+        checkTriple(item, triple.getSubject(), triple.getPredicate(), triple.getObject()) ;
+        checkNode(item, triple.getSubject()) ;
+        checkNode(item, triple.getPredicate()) ;
+        checkNode(item, triple.getObject()) ;
+    }
+
+    @Override
+    public void flush()
+    {}
+
+    private boolean checkNode(StageItem<Triple> item, Node node)
+    {
+        // NodeVisitor?
+        if      ( node.isURI() )        return checkIRI(item, node) ;
+        else if ( node.isBlank() )      return checkBlank(item, node) ;
+        else if ( node.isLiteral() )    return checkLiteral(item, node) ;
+        else if ( node.isVariable() )   return checkVar(item, node) ;
+        //handler.warning("Not a recognized node: ") ;
+        return false ;
+    }
+    
+    private boolean checkTriple(StageItem<Triple> item, Node subject, Node predicate, Node object) 
+    {
+        boolean rc = true ;
+    
+        if ( subject == null || ( ! subject.isURI() && ! subject.isBlank() ) )
+        {
+            item.handlerNode.error(subject, "Subject is not a URI or blank node") ;
+            rc = false ;
+        }
+        if ( predicate == null || ( ! predicate.isURI() ) )
+        {
+            item.handlerNode.error(predicate, "Predicate not a URI") ;
+            rc = false ;
+        }
+        if ( object == null || ( ! object.isURI() && ! object.isBlank() && ! object.isLiteral() ) )
+        {
+            item.handlerNode.error(object, "Object is not a URI, blank node or literal") ;
+            rc = false ;
+        }
+        return rc ;
+    }
+
+    final boolean checkVar(StageItem<Triple> item, Node node)
+    { return false ; }
+    //{ return checkVars.check(item, node) ; }
+
+    final boolean checkLiteral(StageItem<Triple> item, Node node)
+    { return false ; }
+    //{ return checkLiterals.check(item, node) ; }
+    
+    final boolean checkBlank(StageItem<Triple> item, Node node)
+    { return false ; }
+    //{ return checkBlankNodes.check(item, node) ; }
+
+    final boolean checkIRI(StageItem<Triple> item, Node node)
+    { return false ; }
+    //{ return checkURIs.check(item, node) ; }
+
+    final boolean checkIRI(StageItem<Triple> item, IRI iri)
+    { return false ; }
+//    { 
+//        if ( ! ( checkURIs instanceof CheckerIRI ) )
+//            return true ;
+//        
+//        return ((CheckerIRI)checkURIs).checkIRI(iri) ;
+//    }
+
+}
+