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 2016/01/05 13:46:06 UTC
[12/20] jena git commit: JENA-1108 : jena-cmds module
http://git-wip-us.apache.org/repos/asf/jena/blob/498b2264/jena-cmds/src/main/java/jena/rdfcopy.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/jena/rdfcopy.java b/jena-cmds/src/main/java/jena/rdfcopy.java
new file mode 100644
index 0000000..a998c37
--- /dev/null
+++ b/jena-cmds/src/main/java/jena/rdfcopy.java
@@ -0,0 +1,158 @@
+/*
+ * 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 jena;
+
+import static org.apache.jena.atlas.logging.LogCtl.setCmdLogging;
+
+import java.net.*;
+import java.io.*;
+
+import org.apache.jena.rdf.model.* ;
+import org.apache.jena.shared.JenaException ;
+
+/** A program which read an RDF model and copy it to the standard output stream.
+ *
+ * <p>This program will read an RDF model, in a variety of languages,
+ * and copy it to the output stream in a possibly different language.
+ * Input can be read either from a URL or from a file.
+ * The program writes its results to the standard output stream and sets
+ * its exit code to 0 if the program terminate normally, and
+ * to -1 if it encounters an error.</p>
+ *
+ * <p></p>
+ *
+ * <pre>java jena.rdfcopy model [inlang [outlang]]
+ *
+ * model1 and model2 can be file names or URL's
+ * inlang and outlang specify the language of the input and output
+ * respectively and can be:
+ * RDF/XML
+ * N-TRIPLE
+ * TURTLE
+ * N3
+ * The input language defaults to RDF/XML and the output language
+ * defaults to N-TRIPLE.
+ * </pre>
+ */
+public class rdfcopy extends java.lang.Object {
+
+ static { setCmdLogging(); }
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String ... args) {
+ if ( ( args.length < 1 ) || ( "-h".equals(args[0]) ) ) {
+ usage();
+ System.exit(-1);
+ }
+
+ String in = args[0];
+ String inlang = "RDF/XML";
+ int j;
+ for (j = 1; j < args.length && args[j].contains( "=" ); j++)
+ {}
+ int lastInProp = j;
+ if (j < args.length) {
+ inlang = args[j];
+ }
+ j++;
+ String outlang = "N-TRIPLE";
+
+ for (; j < args.length && args[j].contains( "=" ); j++)
+ {}
+
+ int lastOutProp = j;
+ if (j < args.length) {
+ outlang = args[j];
+ }
+ if (j + 1 < args.length) {
+ // System.err.println(j+"<<"+args.length);
+ usage();
+ System.exit(-1);
+ }
+
+ try {
+ Model m = ModelFactory.createDefaultModel();
+ String base = in ;
+ RDFReader rdr = m.getReader(inlang);
+ for (j = 1; j < lastInProp; j++) {
+ int eq = args[j].indexOf("=");
+ rdr.setProperty(
+ args[j].substring(0, eq),
+ args[j].substring(eq + 1));
+ }
+
+ try {
+ rdr.read(m, in);
+ } catch (JenaException ex)
+ {
+ if ( ! ( ex.getCause() instanceof MalformedURLException ) )
+ throw ex ;
+ // Tried as a URL. Try as a file name.
+ // Make absolute
+ File f = new File(in) ;
+ base = "file:///"+f.getCanonicalPath().replace('\\','/') ;
+ rdr.read(m, new FileInputStream(in), base) ;
+ }
+ RDFWriter w = m.getWriter(outlang);
+ j++;
+ for (; j < lastOutProp; j++) {
+ int eq = args[j].indexOf("=");
+ w.setProperty(
+ args[j].substring(0, eq),
+ args[j].substring(eq + 1));
+ }
+ w.write(m, System.out, null) ;
+ System.exit(0);
+ } catch (Exception e) {
+ System.err.println("Unhandled exception:");
+ System.err.println(" " + e.toString());
+ System.exit(-1);
+ }
+ }
+
+ protected static void usage() {
+ System.err.println("usage:");
+ System.err.println(" java jena.rdfcopy in {inprop=inval}* [ inlang {outprop=outval}* outlang]]");
+ System.err.println();
+ System.err.println(" in can be a URL or a filename");
+ System.err.println(" inlang and outlang can take values:");
+ System.err.println(" RDF/XML");
+ System.err.println(" RDF/XML-ABBREV");
+ System.err.println(" N-TRIPLE");
+ System.err.println(" TURTLE");
+ System.err.println(" N3");
+ System.err.println(
+ " inlang defaults to RDF/XML, outlang to N-TRIPLE");
+ System.err.println(" The legal values for inprop and outprop depend on inlang and outlang.");
+ System.err.println(" The legal values for inval and outval depend on inprop and outprop.");
+ System.err.println();
+ }
+
+ protected static void read(Model model, String in, String lang)
+ throws java.io.FileNotFoundException {
+ try {
+ URL url = new URL(in);
+ model.read(in, lang);
+ } catch (java.net.MalformedURLException e) {
+ model.read(new FileInputStream(in), "", lang);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/498b2264/jena-cmds/src/main/java/jena/rdfparse.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/jena/rdfparse.java b/jena-cmds/src/main/java/jena/rdfparse.java
new file mode 100644
index 0000000..0ba1eb6
--- /dev/null
+++ b/jena-cmds/src/main/java/jena/rdfparse.java
@@ -0,0 +1,103 @@
+/*
+ * 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 jena;
+
+import static org.apache.jena.atlas.logging.LogCtl.setCmdLogging;
+
+import java.lang.reflect.Constructor ;
+
+import org.apache.jena.rdfxml.xmlinput.NTriple ;
+import org.apache.jena.shared.Command ;
+
+/** A command line interface into ARP.
+ * Creates NTriple's or just error messages.
+ * <pre>
+ * java <class-path> jena.rdfparse ( [ -[xstfu]][ -b xmlBase -[eiw] NNN[,NNN...] ] [ file ] [ url ] )...
+ *
+ * java <class-path> jena.rdfparse --test
+ *
+ * java <class-path> jena.rdfparse --internal-test
+ * </pre>
+ *
+ * <p>
+ * The last two forms are for testing. <code>--test</code> runs ARP
+ * against the RDF Core Working Group tests found at w3.org.
+ * <code>--internal-test</code> uses a cached copy from within the jena.jar.
+ * </p>
+ * All options, files and URLs can be intemingled in any order.
+ * They are processed from left-to-right.
+ * <dl>
+ * file </dt><dd> Converts (embedded) RDF in XML file into N-triples
+ * </dd><dt>
+ * url </dt><dd> Converts (embedded) RDF from URL into N-triples
+ * </dd><dt>
+ * -b uri </dt><dd> Sets XML Base to the absolute URI.
+ * </dd><dt>
+ * -r </dt><dd> Content is RDF (no embedding, rdf:RDF tag may be omitted).
+ * </dd><dt>
+ * -t </dt><dd> No n-triple output, error checking only.
+ * </dd><dt>
+ * -x </dt><dd> Lax mode - warnings are suppressed.
+ * </dd><dt>
+ * -s </dt><dd> Strict mode - most warnings are errors.
+ * </dd><dt>
+ * -u </dt><dd> Allow unqualified attributes (defaults to warning).
+ * </dd><dt>
+ * -f </dt><dd> All errors are.error - report first one only.
+ * </dd><dt>
+ * -b url </dt><dd> Sets XML Base to the absolute url.
+ * </dd><dt>
+ * -e NNN[,NNN...]</dt><dd>
+ * Treats numbered warning conditions as errrors.
+ * </dd><dt>
+ * -w NNN[,NNN...]</dt><dd>
+ * Treats numbered error conditions as warnings.
+ * </dd><dt>
+ * -i NNN[,NNN...]
+ * </dt><dd>
+ * Ignores numbered error/warning conditions.
+ * </dl>
+ */
+
+public class rdfparse {
+
+ static { setCmdLogging(); }
+
+ /** Either start an RDF/XML to NTriple converter, or run test suite.
+ * @param args The command-line arguments.
+ */
+ public static void main( String... args ) throws Exception {
+ if (args.length == 1 && (args[0].equals( "--test" ) || args[0].equals( "--internal-test" )))
+ runTests( args[0].equals( "--test" ) );
+ else
+ NTriple.main( args );
+ }
+
+ /**
+ wrapped this way so JUnit not a compile-time requirement.
+ */
+ protected static void runTests( boolean internetTest ) throws Exception {
+ Class<?> rdfparse = Class.forName( "jena.test.rdfparse" );
+ Constructor<?> constructor = rdfparse.getConstructor( new Class[] {boolean.class} );
+ Command c = (Command) constructor.newInstance( new Object[] { internetTest } );
+ c.execute();
+// ARPTests.internet = internetTest;
+// TestRunner.main( new String[] { "-noloading", ARPTests.class.getName()});
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/498b2264/jena-cmds/src/main/java/jena/rset.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/jena/rset.java b/jena-cmds/src/main/java/jena/rset.java
new file mode 100644
index 0000000..6db2a1c
--- /dev/null
+++ b/jena-cmds/src/main/java/jena/rset.java
@@ -0,0 +1,25 @@
+/*
+ * 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 jena;
+
+public class rset {
+ public static void main(String... args) {
+ arq.rset.main(args);
+ }
+}