1 29 30 package jena; 31 32 import com.hp.hpl.jena.shared.JenaException ; 33 import com.hp.hpl.jena.rdf.model.*; 34 35 import java.net.*; 36 import java.io.*; 37 38 64 public class rdfcopy extends java.lang.Object { 65 66 69 public static void main(String args[]) { 70 71 if (args.length < 1) { 72 usage(); 73 System.exit(-1); 74 } 75 76 String in = args[0]; 77 String inlang = "RDF/XML"; 78 int j; 79 for (j = 1; j < args.length && args[j].indexOf("=") != -1; j++); 80 int lastInProp = j; 81 if (j < args.length) { 82 inlang = args[j]; 83 } 84 j++; 85 String outlang = "N-TRIPLE"; 86 for (; j < args.length && args[j].indexOf("=") != -1; j++); 87 int lastOutProp = j; 88 if (j < args.length) { 89 outlang = args[j]; 90 } 91 if (j + 1 < args.length) { 92 usage(); 94 System.exit(-1); 95 } 96 97 try { 98 Model m = ModelFactory.createDefaultModel(); 99 String base = in ; 100 RDFReader rdr = m.getReader(inlang); 101 for (j = 1; j < lastInProp; j++) { 102 int eq = args[j].indexOf("="); 103 rdr.setProperty( 104 args[j].substring(0, eq), 105 args[j].substring(eq + 1)); 106 } 107 108 try { 109 rdr.read(m, in); 110 } catch (JenaException ex) 111 { 112 if ( ! ( ex.getCause() instanceof MalformedURLException ) ) 113 throw ex ; 114 File f = new File(in) ; 117 base = "file:///"+f.getCanonicalPath().replace('\\','/') ; 118 rdr.read(m, new FileInputStream(in), base) ; 119 } 120 RDFWriter w = m.getWriter(outlang); 122 j++; 123 for (; j < lastOutProp; j++) { 124 int eq = args[j].indexOf("="); 125 w.setProperty( 126 args[j].substring(0, eq), 127 args[j].substring(eq + 1)); 128 } 129 w.write(m,System.out,base); 130 System.exit(0); 131 } catch (Exception e) { 132 System.err.println("Unhandled exception:"); 133 System.err.println(" " + e.toString()); 134 System.exit(-1); 135 } 136 } 137 138 protected static void usage() { 139 System.err.println("usage:"); 140 System.err.println(" java jena.rdfcopy in {inprop=inval}* [ inlang {outprop=outval}* outlang]]"); 141 System.err.println(); 142 System.err.println(" in can be a URL or a filename"); 143 System.err.println(" inlang and outlang can take values:"); 144 System.err.println(" RDF/XML"); 145 System.err.println(" RDF/XML-ABBREV"); 146 System.err.println(" N-TRIPLE"); 147 System.err.println(" N3"); 148 System.err.println( 149 " inlang defaults to RDF/XML, outlang to N-TRIPLE"); 150 System.err.println(" The legal values for inprop and outprop depend on inlang and outlang."); 151 System.err.println(" The legal values for inval and outval depend on inprop and outprop."); 152 System.err.println(); 153 } 154 155 protected static void read(Model model, String in, String lang) 156 throws java.io.FileNotFoundException { 157 try { 158 URL url = new URL(in); 159 model.read(in, lang); 160 } catch (java.net.MalformedURLException e) { 161 model.read(new FileInputStream(in), "", lang); 162 } 163 } 164 } 165 | Popular Tags |