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/07/15 22:15:33 UTC
svn commit: r1361781 -
/jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/
Author: andy
Date: Sun Jul 15 20:15:32 2012
New Revision: 1361781
URL: http://svn.apache.org/viewvc?rev=1361781&view=rev
Log: (empty)
Added:
jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderRIOT_ARP.java
jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TS_ReaderRIOT.java
jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestFileManagerRIOT.java
- copied, changed from r1342284, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestWebReader.java
jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestJenaReaderRIOT.java
Removed:
jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestWebReader.java
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/PROCESS.java
jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderFactoryRIOT.java
jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderRIOT.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=1361781&r1=1361780&r2=1361781&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 Sun Jul 15 20:15:32 2012
@@ -194,19 +194,25 @@ public class Langs
// Reader name and variations to lang (compatibility)
jenaName("RDF/XML", langRDFXML) ;
+ jenaName("RDFXML", langRDFXML) ;
jenaName("RDF/XML-ABBREV", langRDFXML) ;
jenaName("N-TRIPLE", langNTriples) ;
jenaName("N-TRIPLES", langNTriples) ;
jenaName("NTRIPLE", langNTriples) ;
jenaName("NTRIPLES", langNTriples) ;
+ jenaName("NT", langNTriples) ;
- jenaName("TURTLE", langNTriples) ;
- jenaName("TTL", langNTriples) ;
+ jenaName("TURTLE", langTurtle) ;
+ jenaName("TTL", langTurtle) ;
jenaName("N-QUADS", langNQuads) ;
jenaName("NQUADS", langNQuads) ;
+ jenaName("NQ", langNQuads) ;
+ jenaName("RDF/JSON", langRDFJSON) ;
+ jenaName("RDFJSON", langRDFJSON) ;
+
jenaName("TRIG", langTriG) ;
}
Modified: jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/PROCESS.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/PROCESS.java?rev=1361781&r1=1361780&r2=1361781&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/PROCESS.java (original)
+++ jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/PROCESS.java Sun Jul 15 20:15:32 2012
@@ -22,51 +22,37 @@ package projects.riot_reader;
public class PROCESS
{
+ // ****
+ // Testing
+ // 1 - Does not override readerfactory (fixed in ModelCom as a static!)
+ // => does not use hint lang because hint lang not passed down to .read.
+ // 2 - Webreader2 - does not have base override operations.
+
// Lang/Lang2
// Use of Lang as an enum in switch statements.
- //
- // Add RDF-XML/ABBREV to reader path
+ // webreader2.prcoessTriples -
+ // if hint is different from extensions file type?
+ // Currently, extension wins. Opps.
+
+ // Update documentation
+ // http://jena.apache.org/documentation/io/index.html
+ // http://jena.apache.org/documentation/io/iohowto.html
+ // http://jena.apache.org/documentation/io/riot.html
+
+ // RDFReaderRIOT - input stream and reader versions
+
+ // Webreader2 - ops with a base.
/*
- * Design notes
- * There are functions (static methods) for reading various kinds of "thing",
- * streams of triples or quads.
- *
- * Later: result sets, (other?)
- *
- * The lifecycle of a "read" action is:
- * open -> TypeInputStream
- * process
- * ts.close
- *
- * Open issues:
- * How to make this extensible - people want add readers (e.g. GRDDL, RDFa,
- * microdata, microsformats). But we don't want to require
- * Jena needing to supply each and every kind of parser as a core
- * feature.
- *
- * To Do
- * Sort out ContentType vs MediaType
- * Sort out constants and naming
- * Should this be "Lang" driven - make Lang extensible (use Symbol).
- * Pull in stuff (tables) from Langs.
-
public class WebReader2
- /* TODO
- * 1/ ContentType vs MediaType // ContentType - little used but better?
- * 3/ static for global (singleton) and locally tailored.
- */
+ 3/ static for global (singleton) and locally tailored.
- /*
public class JenaIOEnvironment
- {
- // TODO Singletons
+ Singletons
- public class StreamManager
- {
- // Need to combine with IO to do the .gz and "-" things.
- */
-
+ public class StreamManager
+ Need to combine with IO to do the .gz and "-" things.
+ */
}
Modified: jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderFactoryRIOT.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderFactoryRIOT.java?rev=1361781&r1=1361780&r2=1361781&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderFactoryRIOT.java (original)
+++ jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderFactoryRIOT.java Sun Jul 15 20:15:32 2012
@@ -18,6 +18,8 @@
package projects.riot_reader;
+import org.openjena.riot.WebContent ;
+
import com.hp.hpl.jena.rdf.model.RDFReader ;
import com.hp.hpl.jena.rdf.model.RDFReaderF ;
@@ -30,12 +32,16 @@ public class RDFReaderFactoryRIOT implem
@Override
public RDFReader getReader()
{
- return null ;
+ return new RDFReaderRIOT() ;
}
@Override
public RDFReader getReader(String lang)
{
+ // If RDF/XML, then return an ARP
+ if (WebContent.contentTypeRDFXML.equals(Langs.jenaNameToContentType(lang)) )
+ return new RDFReaderRIOT_ARP() ;
+
return new RDFReaderRIOT(lang) ;
}
Modified: jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderRIOT.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderRIOT.java?rev=1361781&r1=1361780&r2=1361781&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderRIOT.java (original)
+++ jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderRIOT.java Sun Jul 15 20:15:32 2012
@@ -37,6 +37,7 @@ public class RDFReaderRIOT implements RD
// See also JenaReaderBase, JenaReaderRiot
private final String base ; // This will be per reader instance.
+ private final String hintlang ;
Context context = new Context() ;
RDFErrorHandler errorHandler = new RDFDefaultErrorHandler();
@@ -44,11 +45,13 @@ public class RDFReaderRIOT implements RD
public RDFReaderRIOT()
{
base = "org.apache.jena.lang.generic" ;
+ hintlang = null ;
}
public RDFReaderRIOT(String lang)
{
base = "org.apache.jena.lang."+lang.toLowerCase(Locale.US) ;
+ hintlang = lang ;
}
@Override
@@ -62,7 +65,7 @@ public class RDFReaderRIOT implements RD
@Override
public void read(Model model, String url)
{
- WebReader2.read(model, url) ;
+ WebReader2.read(model, url, hintlang) ;
}
@Override
Added: jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderRIOT_ARP.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderRIOT_ARP.java?rev=1361781&view=auto
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderRIOT_ARP.java (added)
+++ jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/RDFReaderRIOT_ARP.java Sun Jul 15 20:15:32 2012
@@ -0,0 +1,67 @@
+/**
+ * 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.riot_reader;
+
+import java.io.InputStream ;
+import java.io.Reader ;
+
+import com.hp.hpl.jena.rdf.arp.JenaReader ;
+import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.rdf.model.RDFErrorHandler ;
+import com.hp.hpl.jena.rdf.model.RDFReader ;
+
+/** Adapter from Jena2 original style adapter for ARP - adds the file: */
+
+public class RDFReaderRIOT_ARP implements RDFReader
+{
+ RDFReader reader = new JenaReader() ;
+
+ public RDFReaderRIOT_ARP() {}
+
+ @Override
+ public void read(Model model, Reader r, String base)
+ { reader.read(model, r, base) ; }
+
+ @Override
+ public void read(Model model, InputStream r, String base)
+ { reader.read(model, r, base) ; }
+
+ @Override
+ public void read(Model model, String url)
+ {
+ int i = url.indexOf(':') ;
+
+ if ( i < 0 || i == 1 ) // 1 => Windows drive.
+ url = "file:"+url ;
+ reader.read(model, url) ;
+ }
+
+ @Override
+ public Object setProperty(String propName, Object propValue)
+ {
+ return reader.setProperty(propName, propValue) ;
+ }
+
+ @Override
+ public RDFErrorHandler setErrorHandler(RDFErrorHandler errHandler)
+ {
+ return reader.setErrorHandler(errHandler) ;
+ }
+}
+
Added: jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TS_ReaderRIOT.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TS_ReaderRIOT.java?rev=1361781&view=auto
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TS_ReaderRIOT.java (added)
+++ jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TS_ReaderRIOT.java Sun Jul 15 20:15:32 2012
@@ -0,0 +1,37 @@
+/**
+ * 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.riot_reader;
+
+import org.junit.runner.RunWith ;
+import org.junit.runners.Suite ;
+import org.junit.runners.Suite.SuiteClasses ;
+
+@RunWith(Suite.class)
+@SuiteClasses(
+{
+ TestFileManagerRIOT.class
+ , TestJenaReaderRIOT.class
+
+})
+
+public class TS_ReaderRIOT
+{
+
+}
+
Copied: jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestFileManagerRIOT.java (from r1342284, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestWebReader.java)
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestFileManagerRIOT.java?p2=jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestFileManagerRIOT.java&p1=jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestWebReader.java&r1=1342284&r2=1361781&rev=1361781&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestWebReader.java (original)
+++ jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestFileManagerRIOT.java Sun Jul 15 20:15:32 2012
@@ -31,10 +31,10 @@ import com.hp.hpl.jena.rdf.model.Model ;
import com.hp.hpl.jena.rdf.model.ModelFactory ;
import com.hp.hpl.jena.sparql.util.Context ;
-public class TestWebReader extends BaseTest
+public class TestFileManagerRIOT extends BaseTest
{
- private static final String directory = "testing/FileManager" ;
- private static final String absDirectory = new File("testing/FileManager").getAbsolutePath() ;
+ private static final String directory = "testing/RIOT/FileManager" ;
+ private static final String absDirectory = new File("testing/RIOT/FileManager").getAbsolutePath() ;
private static Context context = new Context() ;
private static FileManager2 fileMgr = new FileManager2() ;
@@ -52,29 +52,33 @@ public class TestWebReader extends BaseT
@AfterClass static public void afterClass()
{
FileManager2.setGlobalFileManager(fileMgrStd) ;
+ context.remove(WebReader2.fileManagerSymbol) ;
}
- @Test public void open_01() { open(directory+"/D.ttl", context) ; }
- @Test public void open_02() { open("D.ttl", context) ; }
+ @Test public void fm_open_01() { open(directory+"/D.ttl", context) ; }
+ @Test public void fm_open_02() { open("D.ttl", context) ; }
- @Test public void open_03() { open("file:"+directory+"/D.ttl", context) ; }
- @Test public void open_04() { open("file:D.ttl", context) ; }
+ @Test public void fm_open_03() { open("file:"+directory+"/D.ttl", context) ; }
+ @Test public void fm_open_04() { open("file:D.ttl", context) ; }
- @Test public void open_05() { open(absDirectory+"/D.ttl", context) ; }
- @Test public void open_06() { open("file://"+absDirectory+"/D.ttl", context) ; }
+ @Test public void fm_open_05() { open(absDirectory+"/D.ttl", context) ; }
+ @Test public void fm_open_06() { open("file://"+absDirectory+"/D.ttl", context) ; }
@Test (expected=RiotNotFoundException.class)
- public void open_10() { open("nosuchfile", null) ; }
+ public void fm_open_10() { open("nosuchfile", null) ; }
- @Test public void read_01() { read("D.nt") ; }
- @Test public void read_02() { read("D.ttl") ; }
- @Test public void read_03() { read("D.rdf") ; }
- @Test public void read_04() { read("D.json") ; }
+ @Test public void fm_read_01() { read("D.nt") ; }
+ @Test public void fm_read_02() { read("D.ttl") ; }
+ @Test public void fm_read_03() { read("D.rdf") ; }
+ @Test public void fm_read_04() { read("D.json") ; }
- @Test public void read_11() { read("file:D.nt") ; }
- @Test public void read_12() { read("file:D.ttl") ; }
- @Test public void read_13() { read("file:D.rdf") ; }
- @Test public void read_14() { read("file:D.json") ; }
+ @Test public void fm_read_11() { read("file:D.nt") ; }
+ @Test public void fm_read_12() { read("file:D.ttl") ; }
+ @Test public void fm_read_13() { read("file:D.rdf") ; }
+ @Test public void fm_read_14() { read("file:D.json") ; }
+
+ // TriG
+ // NQuads
private static void open(String dataName, Context context)
{
Added: 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=1361781&view=auto
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestJenaReaderRIOT.java (added)
+++ jena/Scratch/AFS/Dev/trunk/src/main/java/projects/riot_reader/TestJenaReaderRIOT.java Sun Jul 15 20:15:32 2012
@@ -0,0 +1,126 @@
+/**
+ * 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.riot_reader;
+
+import org.junit.AfterClass ;
+import org.junit.BeforeClass ;
+import org.junit.Test ;
+import org.openjena.atlas.junit.BaseTest ;
+
+import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.rdf.model.ModelFactory ;
+import com.hp.hpl.jena.rdf.model.Resource ;
+import com.hp.hpl.jena.sparql.util.Context ;
+
+public class TestJenaReaderRIOT extends BaseTest
+{
+ private static final String directory = "testing/RIOT/Reader" ;
+
+ private static Context context = new Context() ;
+
+ @BeforeClass static public void beforeClass()
+ {
+ WebReader2.wireIntoJena() ;
+ }
+
+ @AfterClass static public void afterClass()
+ {
+ // Unwire?
+ }
+
+// @Test public void read_01() { jenaread("D.nt") ; }
+// @Test public void read_02() { jenaread("D.ttl") ; }
+// @Test public void read_03() { jenaread("D.rdf") ; }
+// @Test public void read_04() { jenaread("D.rdf") ; }
+// @Test public void read_05() { jenaread("D.json") ; }
+//
+//
+// @Test public void read_11() { jenaread("D.nt", "N-TRIPLES") ; }
+// @Test public void read_12() { jenaread("D.ttl", "TTL") ; }
+// @Test public void read_13() { jenaread("D.rdf", "RDF/XML") ; }
+// @Test public void read_14() { jenaread("D.rdf", "RDF/XML-ABBREV") ; }
+// @Test public void read_15() { jenaread("D.json", "RDF/JSON") ; }
+
+ @Test public void read_21a() { jenaread("D-nt", "N-TRIPLES") ; }
+ @Test public void read_21b() { jenaread("D-nt", "NTRIPLES") ; }
+ @Test public void read_21c() { jenaread("D-nt", "NT") ; }
+
+ @Test public void read_22a() { jenaread("D-ttl", "TURTLE") ; }
+ @Test public void read_22b() { jenaread("D-ttl", "TTL") ; }
+
+ @Test public void read_23a() { jenaread("D-rdf", "RDF/XML") ; }
+ @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") ; } // Override extension
+
+ @Test public void read_base_1() { jenaread("D-no-base.ttl", "http://baseuri/", "TTL") ; }
+
+ // Base jumping.
+
+ // Web.
+ // TriG
+ // NQ
+
+ private static void jenaread(String dataurl)
+ {
+ dataurl = directory+"/"+dataurl ;
+ Model m = ModelFactory.createDefaultModel() ;
+ m.read(dataurl) ;
+ assertTrue(m.size() != 0 ) ;
+ }
+
+ // Wire in.
+ // +1 one with a base.
+ private static void jenaread(String dataurl, String lang)
+ {
+ // read via WebReader to make sure the test setup is right.
+ dataurl = directory+"/"+dataurl ;
+
+ Model m0 = ModelFactory.createDefaultModel() ;
+ WebReader2.read(m0, dataurl, lang) ;
+ assertTrue(m0.size() != 0 ) ;
+
+ Model m1 = ModelFactory.createDefaultModel() ;
+ new RDFReaderFactoryRIOT().getReader(lang).read(m1, dataurl) ;
+ assertTrue(m1.size() != 0 ) ;
+
+// // Read via Jena model API.
+// Model m2 = ModelFactory.createDefaultModel() ;
+// m2.read(dataurl, lang) ;
+// assertTrue(m2.size() != 0 ) ;
+ }
+
+ private static void jenaread(String dataurl, String lang, String base)
+ {
+ dataurl = directory+"/"+dataurl ;
+
+ // TODO
+ // new RDFReaderFactoryRIOT().getReader(lang) ;
+
+ Model m = ModelFactory.createDefaultModel() ;
+ m.read(dataurl, lang, base) ;
+ assertTrue(m.size() != 0 ) ;
+
+ Resource s = m.listStatements().next().getSubject() ;
+ assertTrue(s.getURI().startsWith("http://")) ;
+ assertTrue(s.getURI().equals("http://baseuri/s")) ;
+ }
+}
+
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=1361781&r1=1361780&r2=1361781&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 Sun Jul 15 20:15:32 2012
@@ -210,7 +210,7 @@ public class WebReader2
if ( in.getMediaType() != null )
_ct = WebContent.contentTypeCanonical(in.getContentType()) ;
if ( ( _ct == null || isTextPlain ) && hintLang != null )
- _ct = Langs.jenaNameToContentType(_ct, _ct) ;
+ _ct = Langs.jenaNameToContentType(hintLang, _ct) ;
if ( _ct == null )
throw new RiotException("Failed to find the content type") ;