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 2018/02/27 23:10:36 UTC

[16/24] jena git commit: Examples RDF/XML handling.

Examples RDF/XML handling.

JENA-1168, JENA-1494.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e9eb97fd
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e9eb97fd
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e9eb97fd

Branch: refs/heads/master
Commit: e9eb97fdfe7f9e3e738ff5fbac2f53ddee5c15ad
Parents: 9237d24
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Feb 24 08:25:51 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Feb 24 08:25:51 2018 +0000

----------------------------------------------------------------------
 .../riot/ExRIOT_RDFXML_ReaderProperties.java    | 71 +++++++++++++++++
 .../riot/ExRIOT_RDFXML_WriteProperties.java     | 81 ++++++++++++++++++++
 2 files changed, 152 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/e9eb97fd/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_ReaderProperties.java
----------------------------------------------------------------------
diff --git a/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_ReaderProperties.java b/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_ReaderProperties.java
new file mode 100644
index 0000000..1ba3245
--- /dev/null
+++ b/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_ReaderProperties.java
@@ -0,0 +1,71 @@
+/*
+ * 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 arq.examples.riot;
+
+import java.io.StringReader;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.jena.atlas.lib.StrUtils;
+import org.apache.jena.atlas.logging.LogCtl;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFDataMgr;
+import org.apache.jena.riot.RDFParser;
+import org.apache.jena.riot.SysRIOT;
+import org.apache.jena.sparql.util.Context;
+
+/** Set proeprties of the RDF/XML parser (ARP) */
+public class ExRIOT_RDFXML_ReaderProperties {
+    static { LogCtl.setCmdLogging(); }
+    
+    public static void main(String[] args) {
+        // Inline illustrative data.
+        String data = StrUtils.strjoinNL
+            ("<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+            ,"<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\""
+            ,"         xmlns:ex=\"http://examples.org/\">"
+            // This rdf:ID startswith a digit which normal causes a warning.
+            ,"  <ex:Type rdf:ID='012345'></ex:Type>"
+            ,"</rdf:RDF>"
+            );
+        System.out.println(data);
+        System.out.println();
+        // Properties to be set.
+        // This is a map propertyName->value 
+        Map<String, Object> properties = new HashMap<>();
+        // See class ARPErrorNumbers for the possible ARP properies.
+        properties.put("WARN_BAD_NAME", "EM_IGNORE");
+        
+        // Put a properties object into the Context.
+        Context cxt = new Context();
+        cxt.set(SysRIOT.sysRdfReaderProperties, properties);
+        
+        Model model = ModelFactory.createDefaultModel();
+        // Build and run a parser
+        RDFParser.create()
+            .lang(Lang.RDFXML)
+            .source(new StringReader(data))
+            .context(cxt)
+            .parse(model);
+        System.out.println("== Parsed data output in Turtle");
+        RDFDataMgr.write(System.out,  model, Lang.TURTLE);
+    }
+}

http://git-wip-us.apache.org/repos/asf/jena/blob/e9eb97fd/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_WriteProperties.java
----------------------------------------------------------------------
diff --git a/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_WriteProperties.java b/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_WriteProperties.java
new file mode 100644
index 0000000..5e6506a
--- /dev/null
+++ b/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_WriteProperties.java
@@ -0,0 +1,81 @@
+/*
+ * or more contributor license agreements.  See the NOTICE fil
+ * 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 arq.examples.riot;
+
+import java.io.StringReader;
+import java.util.HashMap ;
+import java.util.Map ;
+
+import org.apache.jena.atlas.lib.StrUtils;
+import org.apache.jena.atlas.logging.LogCtl;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.riot.*;
+import org.apache.jena.sparql.util.Context;
+
+/** Example of setting properties for RDF/XML writer via RIOT */
+public class ExRIOT_RDFXML_WriteProperties {
+    static { LogCtl.setCmdLogging(); }
+
+    public static void main(String... args) {
+        // Data.
+        String x = StrUtils.strjoinNL
+            ("PREFIX : <http://example.org/>"
+            ,":s :p :o ."
+            );
+        Model model = ModelFactory.createDefaultModel();
+        RDFDataMgr.read(model, new StringReader(x), null, Lang.TURTLE);
+        
+        // Write, default settings.
+        writePlain(model);
+        System.out.println();
+
+        // Write, with properties 
+        writeProperties(model);
+    }
+
+    /** Write in plain, not pretty ("abbrev") format. */
+    private static void writePlain(Model model) {
+        System.out.println("**** RDFXML_PLAIN");
+        RDFDataMgr.write(System.out, model, RDFFormat.RDFXML_PLAIN);
+        System.out.println();
+    }
+
+    /** Write with properties */
+    public static void writeProperties(Model model) {
+        System.out.println("**** RDFXML_PLAIN+properties");
+        System.out.println("**** Adds XML declaration");
+
+        // Properties to be set.
+        // See https://jena.apache.org/documentation/io/rdfxml_howto.html#advanced-rdfxml-output
+        // for details of properties.
+        Map<String, Object> properties = new HashMap<>() ;
+        properties.put("showXmlDeclaration", "true");
+
+        // Put a properties object into the Context.
+        Context cxt = new Context();
+        cxt.set(SysRIOT.sysRdfWriterProperties, properties);
+
+        RDFWriter.create()
+            .base("http://example.org/")
+            .format(RDFFormat.RDFXML_ABBREV)
+            .context(cxt)
+            .source(model)
+            .output(System.out);
+    }
+}