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 2013/02/09 21:55:39 UTC
svn commit: r1444433 - in /jena/Experimental/riot-output/src/main/java:
dev/ExRIOT_out1.java dev/ExRIOT_out2.java dev/ExRIOT_out3.java
dev/MainWriter.java dev/PROJECT_RiotWriter.java riot/RDFWriterMgr.java
riot/RDFWriterRegistry.java
Author: andy
Date: Sat Feb 9 20:55:39 2013
New Revision: 1444433
URL: http://svn.apache.org/r1444433
Log:
Example of registering a writer.
Added:
jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out3.java
Modified:
jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out1.java
jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out2.java
jena/Experimental/riot-output/src/main/java/dev/MainWriter.java
jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java
jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java
jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java
Modified: jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out1.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out1.java?rev=1444433&r1=1444432&r2=1444433&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out1.java (original)
+++ jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out1.java Sat Feb 9 20:55:39 2013
@@ -20,8 +20,10 @@ package dev;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFDataMgr ;
+import org.apache.jena.riot.RIOT ;
import riot.RDFFormat ;
import riot.RDFWriterMgr ;
+import riot.RDFWriterRegistry ;
import com.hp.hpl.jena.rdf.model.Model ;
@@ -30,14 +32,25 @@ public class ExRIOT_out1
{
public static void main(String[] args)
{
+ RIOT.init() ;
+ RDFWriterRegistry.init() ;
+
Model model = RDFDataMgr.loadModel("D.ttl") ;
+ System.out.println() ;
+ System.out.println("#### ---- Write as Turtle") ;
+ System.out.println() ;
RDFWriterMgr.write(System.out, model, Lang.TURTLE) ;
+
System.out.println() ;
- System.out.println("#### ---- ####") ;
+ System.out.println("#### ---- Write as Turtle (streaming)") ;
System.out.println() ;
RDFWriterMgr.write(System.out, model, RDFFormat.TurtleBlocks) ;
+ System.out.println() ;
+ System.out.println("#### ---- Write as Turtle via model.write") ;
+ System.out.println() ;
+ model.write(System.out, "TTL") ;
}
}
Modified: jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out2.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out2.java?rev=1444433&r1=1444432&r2=1444433&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out2.java (original)
+++ jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out2.java Sat Feb 9 20:55:39 2013
@@ -18,12 +18,36 @@
package dev;
-/** Example of registering a new writer with RIOT */
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RDFDataMgr ;
+import org.apache.jena.riot.RIOT ;
+import riot.RDFWriterMgr ;
+import riot.RDFWriterRegistry ;
+
+import com.hp.hpl.jena.query.Dataset ;
+import com.hp.hpl.jena.rdf.model.Model ;
+
+/** Other writer examples */
public class ExRIOT_out2
{
public static void main(String[] args)
{
- // All ways to write.
+ RIOT.init() ;
+ RDFWriterRegistry.init() ;
+
+ Model model = RDFDataMgr.loadModel("D.ttl") ;
+ System.out.println() ;
+ System.out.println("#### ---- Write as TriG") ;
+ System.out.println() ;
+ // This wil be the default graph of the dataset written.
+ RDFWriterMgr.write(System.out, model, Lang.TRIG) ;
+
+ // Loading Turtle as Trig reads into the default graph.
+ Dataset dataset = RDFDataMgr.loadDataset("D.ttl") ;
+ System.out.println() ;
+ System.out.println("#### ---- Write as NQuads") ;
+ System.out.println() ;
+ RDFWriterMgr.write(System.out, dataset, Lang.NQUADS) ;
}
}
Added: jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out3.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out3.java?rev=1444433&view=auto
==============================================================================
--- jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out3.java (added)
+++ jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out3.java Sat Feb 9 20:55:39 2013
@@ -0,0 +1,102 @@
+/**
+ * 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 dev;
+
+import java.io.OutputStream ;
+import java.io.Writer ;
+
+import org.apache.jena.atlas.io.IndentedWriter ;
+import org.apache.jena.riot.* ;
+import org.apache.jena.riot.system.PrefixMap ;
+import riot.* ;
+import riot.system.IndentedWriterWriter ;
+
+import com.hp.hpl.jena.graph.Graph ;
+import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.sparql.sse.SSE ;
+
+/** Example of registering a new writer with RIOT */
+public class ExRIOT_out3
+{
+ // See also ExRIOT_5
+ public static void main(String[] args)
+ {
+ RIOT.init() ;
+ RDFWriterRegistry.init() ;
+
+ System.out.println("## Example of a registering a new language with RIOT") ;
+ System.out.println() ;
+
+ // Register the language
+ Lang lang = LangBuilder.create("SSE", "text/x-sse").addFileExtensions("rsse").build() ;
+ RDFLanguages.register(lang) ;
+
+ // Create format and register.
+ RDFFormat format = new RDFFormat(lang) ;
+ RDFWriterRegistry.register(lang, format) ;
+
+ // Register the writer factory
+ RDFWriterRegistry.register(format, new SSEWriterFactory()) ;
+
+ Lang lang2 = RDFWriterRegistry.getWriterGraphFactory(lang).create(format).getLang() ;
+ System.out.println("## Language = "+lang2) ;
+ System.out.println() ;
+
+ Model model = RDFDataMgr.loadModel("D.ttl") ;
+ // Write
+ System.out.println("## Write by format") ;
+ RDFWriterMgr.write(System.out, model, format) ;
+ System.out.println() ;
+ System.out.println("## Write by language") ;
+ RDFWriterMgr.write(System.out, model, lang) ;
+ }
+
+ static class SSEWriterFactory implements WriterGraphRIOTFactory
+ {
+ @Override
+ public WriterGraphRIOT create(RDFFormat syntaxForm)
+ {
+ return new SSEWriter() ;
+ }
+ }
+
+ static class SSEWriter extends WriterGraphRIOTBase
+ {
+ // Ignore externally provided prefix map and baseURI
+ @Override
+ public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI)
+ {
+ SSE.write(out, graph) ;
+ }
+
+ @Override
+ public Lang getLang() { return RDFLanguages.contentTypeToLang("text/x-sse") ; }
+
+ @Override
+ public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI)
+ {
+ // Writers are discouraged : just hoe the charset is UTF-8.
+ IndentedWriter x = IndentedWriterWriter.create(out) ;
+ SSE.write(x, graph) ;
+ }
+
+ }
+
+}
+
Modified: jena/Experimental/riot-output/src/main/java/dev/MainWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/dev/MainWriter.java?rev=1444433&r1=1444432&r2=1444433&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/dev/MainWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/dev/MainWriter.java Sat Feb 9 20:55:39 2013
@@ -47,6 +47,9 @@ public class MainWriter
{
public static void main(String ...args)
{
+ Dataset ds = RDFDataMgr.loadDataset("D.ttl") ;
+ RDFWriterMgr.write(System.out, ds, Lang.TRIG) ;
+ System.out.println("DONE") ;
//
// String fn = "D.ttl" ;
//
@@ -64,7 +67,7 @@ public class MainWriter
//writeTTL() ;
- writeTriG() ;
+ //writeTriG() ;
}
public static void writeTriG()
Modified: jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java?rev=1444433&r1=1444432&r2=1444433&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java Sat Feb 9 20:55:39 2013
@@ -25,6 +25,8 @@ public class PROJECT_RiotWriter
// ExRIOT_out2 :: register language and writer
+ // defaultGraphSerialization - table ise.
+
// TODO - check for TODO
// Options.
@@ -37,5 +39,10 @@ public class PROJECT_RiotWriter
// 2 - other rdf: rdfs: namespace items (sorted)
// 3 - all other properties, sorted by URI (not qname)
// same properties together - with and without object lists
+
+ // Migration
+ // RIOT.init to call RDFWriterRegistry.init()
+ // Remove some RIOT.init calls.
}
+
\ No newline at end of file
Modified: jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java?rev=1444433&r1=1444432&r2=1444433&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java Sat Feb 9 20:55:39 2013
@@ -103,7 +103,7 @@ public class RDFWriterMgr
*/
public static void write(OutputStream out, Graph graph, Lang lang)
{
- RDFFormat serialization = RDFWriterRegistry.defaultGraphSerialization(lang) ;
+ RDFFormat serialization = RDFWriterRegistry.defaultSerialization(lang) ;
write(out, graph, serialization) ;
}
@@ -127,6 +127,8 @@ public class RDFWriterMgr
public static void write(OutputStream out, Graph graph, RDFFormat serialization)
{
WriterGraphRIOTFactory wf = RDFWriterRegistry.getWriterGraphFactory(serialization) ;
+ if ( wf == null )
+ throw new RiotException("No graph writer for "+serialization) ;
WriterGraphRIOT w = wf.create(serialization) ;
w.write(out, graph) ;
}
@@ -139,7 +141,7 @@ public class RDFWriterMgr
public static void write(StringWriter out, Graph graph, Lang lang)
{
// Only known reasonable use of a Writer
- write(out, graph, RDFWriterRegistry.defaultGraphSerialization(lang)) ;
+ write(out, graph, RDFWriterRegistry.defaultSerialization(lang)) ;
}
/** Write the graph to the output stream in the default serialization for the language.
@@ -207,7 +209,7 @@ public class RDFWriterMgr
*/
public static void write(OutputStream out, DatasetGraph dataset, Lang lang)
{
- RDFFormat serialization = RDFWriterRegistry.defaultDatasetSerialization(lang) ;
+ RDFFormat serialization = RDFWriterRegistry.defaultSerialization(lang) ;
write(out, dataset, serialization) ;
}
Modified: jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java?rev=1444433&r1=1444432&r2=1444433&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java Sat Feb 9 20:55:39 2013
@@ -44,6 +44,8 @@ public class RDFWriterRegistry
static Map<RDFFormat, WriterGraphRIOTFactory> registryGraph = new HashMap<RDFFormat, WriterGraphRIOTFactory>() ;
static Map<RDFFormat, WriterDatasetRIOTFactory> registryDataset = new HashMap<RDFFormat, WriterDatasetRIOTFactory>() ;
+ static Map<Lang, RDFFormat> langToFormat = new HashMap<Lang, RDFFormat>() ;
+
// Writing a graph
static WriterGraphRIOTFactory wgfactory = new WriterGraphRIOTFactory() {
@@ -121,6 +123,17 @@ public class RDFWriterRegistry
static { init$() ; }
private static void init$()
{
+ // Language to format.
+ register(RDFLanguages.TURTLE, RDFFormat.Turtle) ;
+ register(RDFLanguages.N3, RDFFormat.Turtle) ;
+ register(RDFLanguages.NTRIPLES, RDFFormat.NTriples) ;
+ register(RDFLanguages.RDFXML, RDFFormat.RDFXML) ;
+ register(RDFLanguages.RDFJSON, RDFFormat.RDFJSON) ;
+
+ register(RDFLanguages.TRIG, RDFFormat.Trig) ;
+ register(RDFLanguages.NQUADS, RDFFormat.NQuads) ;
+
+ // Wrietr factories.
register(RDFFormat.TurtlePretty, wgfactory) ;
register(RDFFormat.TurtleBlocks, wgfactory) ;
register(RDFFormat.TurtleFlat, wgfactory) ;
@@ -155,13 +168,34 @@ public class RDFWriterRegistry
registryDataset.put(serialization, wfactory) ;
}
+ public static void register(Lang lang, WriterGraphRIOTFactory wfactory)
+ {
+ RDFFormat serialization = defaultSerialization(lang) ;
+ if ( serialization == null )
+ throw new RiotException("No default serialization for language "+lang) ;
+ register(serialization, wfactory) ;
+ }
+
+ public static void register(Lang lang, WriterDatasetRIOTFactory wfactory)
+ {
+ RDFFormat serialization = defaultSerialization(lang) ;
+ if ( serialization == null )
+ throw new RiotException("No default serialization for language "+lang) ;
+ register(serialization, wfactory) ;
+ }
+
+ public static void register(Lang lang, RDFFormat serialization)
+ {
+ langToFormat.put(lang, serialization) ;
+ }
+
// Map Lang to default output format.
public static WriterGraphRIOTFactory getWriterGraphFactory(Lang lang)
{
- RDFFormat serialization = defaultGraphSerialization(lang) ;
+ RDFFormat serialization = defaultSerialization(lang) ;
if ( serialization == null )
throw new RiotException("No default serialization for language "+lang) ;
- return getWriterGraphFactory(serialization) ;
+ return getWriterGraphFactory(serialization) ;
}
public static WriterGraphRIOTFactory getWriterGraphFactory(Lang lang, RDFFormatVariant variant)
@@ -171,14 +205,12 @@ public class RDFWriterRegistry
public static WriterGraphRIOTFactory getWriterGraphFactory(RDFFormat serialization)
{
- if ( serialization == null )
- return null ;
return registryGraph.get(serialization) ;
}
public static WriterDatasetRIOTFactory getWriterDatasetFactory(Lang lang)
{
- RDFFormat serialization = defaultDatasetSerialization(lang) ;
+ RDFFormat serialization = defaultSerialization(lang) ;
if ( serialization == null )
throw new RiotException("No default serialization for language "+lang) ;
return getWriterDatasetFactory(serialization) ;
@@ -195,30 +227,11 @@ public class RDFWriterRegistry
return null ;
return registryDataset.get(serialization) ;
}
-
- public static RDFFormat defaultGraphSerialization(Lang lang)
- {
- if ( RDFLanguages.TURTLE.equals(lang) ) return RDFFormat.Turtle ;
- if ( RDFLanguages.N3.equals(lang) ) return RDFFormat.Turtle ;
- if ( RDFLanguages.NTRIPLES.equals(lang) ) return RDFFormat.NTriples ;
-
- // We write as the default graph of a dataset
- if ( RDFLanguages.TRIG.equals(lang) ) return RDFFormat.Trig ;
- if ( RDFLanguages.NQUADS.equals(lang) ) return RDFFormat.NQuads ;
-
- if ( RDFLanguages.RDFXML.equals(lang) ) return RDFFormat.RDFXML ;
- if ( RDFLanguages.RDFJSON.equals(lang) ) return RDFFormat.RDFJSON ;
-
- return null ;
- }
- public static RDFFormat defaultDatasetSerialization(Lang lang)
+ public static RDFFormat defaultSerialization(Lang lang)
{
- if ( RDFLanguages.TRIG.equals(lang) ) return RDFFormat.Trig ;
- if ( RDFLanguages.NQUADS.equals(lang) ) return RDFFormat.NQuads ;
-
- return null ;
+ return langToFormat.get(lang) ;
}
-
+
}