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) ;
+// }
+
+}
+