/** * Returns the corresponding RDF parser for a given RDF format. * * @param format the RDF format * @return RDF parser */ protected RDFParser getRDFParser(RDFFormat format) { return RDFParserRegistry.getInstance().get(format).getParser(); }
/** * Tries to match a MIME type against the list of RDF formats that can be * parsed. * * @param mimeType * A MIME type, e.g. "application/rdf+xml". * @return An RDFFormat object if a match was found, or * {@link Optional#empty()} otherwise. * @see #getParserFormatForMIMEType(String, RDFFormat) */ public static Optional<RDFFormat> getParserFormatForMIMEType(String mimeType) { return RDFFormat.matchMIMEType(mimeType, RDFParserRegistry.getInstance().getKeys()); }
private static RDFFormat getFormat(String format) { return RDFParserRegistry.getInstance().getFileFormatForMIMEType(format); } }
public static List<RDFFormat> filterAvailableParsers(List<RDFFormat> rdfFormats) { final List<RDFFormat> result = new ArrayList<>(); final RDFParserRegistry parserRegistry = RDFParserRegistry.getInstance(); for (RDFFormat f: rdfFormats) { if (parserRegistry.has(f)) { result.add(f); } } return result; }
private static void ignoreDatatypesInAllParsers() { RDFParserRegistry r = RDFParserRegistry.getInstance(); Collection<RDFParserFactory> oldFactories = new LinkedList<RDFParserFactory>(); Collection<RDFParserFactory> newFactories = new LinkedList<RDFParserFactory>(); for (final RDFFormat f : r.getKeys()) { final RDFParserFactory pf = r.get(f); pf.getParser().setDatatypeHandling(RDFParser.DatatypeHandling.IGNORE); RDFParserFactory pfn = new RDFParserFactory() { public RDFFormat getRDFFormat() { return f; } public RDFParser getParser() { RDFParser p = pf.getParser(); p.setDatatypeHandling(RDFParser.DatatypeHandling.IGNORE); return p; } }; oldFactories.add(pf); newFactories.add(pfn); } for (RDFParserFactory pf : oldFactories) { r.remove(pf); } for (RDFParserFactory pfn : newFactories) { r.add(pfn); } }
log.info("RDFFormat: before: " + f); for (RDFParserFactory f : RDFParserRegistry.getInstance().getAll()) { log.info("RDFParserFactory: before: " + f); final RDFParserRegistry r = RDFParserRegistry.getInstance(); r.add((RDFParserFactory) getInstanceForClass(NTRIPLES_PARSER_FACTORY)); assert r.has(((RDFParserFactory) getInstanceForClass(NTRIPLES_PARSER_FACTORY)).getRDFFormat()); r.add((RDFParserFactory) getInstanceForClass(TURTLE_PARSER_FACTORY)); assert r.has(((RDFParserFactory) getInstanceForClass(TURTLE_PARSER_FACTORY)).getRDFFormat()); r.add((RDFParserFactory) getInstanceForClass(JSON_CONSTRUCT_PARSER_FACTORY)); log.info("RDFFormat: after: " + f); for (RDFParserFactory f : RDFParserRegistry.getInstance().getAll()) { log.info("RDFParserFactory: after: " + f);
mimeType = mimeType.substring(0, semiColonIdx); format = RDFParserRegistry.getInstance().getFileFormatForMIMEType(mimeType); format = RDFParserRegistry.getInstance().getFileFormatForFileName(url.getFile(), RDFFormat.RDFXML);
protected List<Statement> loadData(final String fileName) throws Exception { Optional<RDFFormat> format = RDFParserRegistry.getInstance().getFileFormatForFileName(fileName); if (!format.isPresent()) { throw new IllegalStateException("unsupported file extension"); } RDFParser p = Rio.createParser(format.get()); p.getParserConfig().set(BasicParserSettings.FAIL_ON_UNKNOWN_DATATYPES, false); List<Statement> c = new LinkedList<>(); p.setRDFHandler(new StatementCollector(c)); InputStream in = fileName.startsWith("/") ? new FileInputStream(new File(fileName)) : RDFStreamProcessor.class.getResourceAsStream(fileName); p.parse(in, BASE_IRI); in.close(); return c; }
@Override protected Map<String, Object> referenceData(HttpServletRequest arg0) throws Exception { Map<String, Object> result = new HashMap<String, Object>(); Map<String, String> rdfFormats = new TreeMap<String, String>(); for (RDFParserFactory factory : RDFParserRegistry.getInstance().getAll()) { RDFFormat format = factory.getRDFFormat(); rdfFormats.put(format.getName(), format.getName()); } result.put("formats", rdfFormats); return result; } }
/** * This is needed, because Rio is unable to find the Parser/Writer Factories * automatically when the jar gets deployed as plugin inside the Neo4j * Server. */ private synchronized void initRio() { if (!rioInitialized) { RDFParserRegistry parserRegistry = RDFParserRegistry.getInstance(); parserRegistry.add(new TurtleParserFactory()); parserRegistry.add(new RDFXMLParserFactory()); parserRegistry.add(new NTriplesParserFactory()); parserRegistry.add(new RDFJSONParserFactory()); RDFWriterRegistry writerRegistry = RDFWriterRegistry.getInstance(); writerRegistry.add(new TurtleWriterFactory()); writerRegistry.add(new RDFXMLWriterFactory()); writerRegistry.add(new NTriplesWriterFactory()); writerRegistry.add(new RDFJSONWriterFactory()); rioInitialized = true; } } }
private RDFParser getParser(HttpMethod response) { for (Header header : response.getResponseHeaders("Content-Type")) { for (HeaderElement headerEl : header.getElements()) { String mimeType = headerEl.getName(); if (mimeType != null) { RDFFormat format = registry .getFileFormatForMIMEType(mimeType); RDFParserFactory factory = registry.get(format); if (factory != null) return factory.getParser(); } } } throw new UnsupportedQueryResultFormatException( "No parser factory available for this graph query result format"); } }
runningQuery.get();
@Override protected String getAccept() { StringBuilder sb = new StringBuilder(); Set<RDFFormat> rdfFormats = registry.getKeys(); for (RDFFormat format : rdfFormats) { for (String mimeType : format.getMIMETypes()) { if (sb.length() > 0) { sb.append(", "); } sb.append(mimeType); } } return sb.toString(); }
private RDFFormat forMIMEType(String contentType, RDFFormat fallback) { RDFFormat format = RDFFormat.forMIMEType(contentType); RDFParserRegistry registry = RDFParserRegistry.getInstance(); if (format != null && registry.has(format)) return format; return fallback; }
log.info("RDFFormat: before: " + f); for (RDFParserFactory f : RDFParserRegistry.getInstance().getAll()) { log.info("RDFParserFactory: before: " + f); final RDFParserRegistry r = RDFParserRegistry.getInstance(); r.add((RDFParserFactory) getInstanceForClass(NTRIPLES_PARSER_FACTORY)); assert r.has(((RDFParserFactory) getInstanceForClass(NTRIPLES_PARSER_FACTORY)).getRDFFormat()); r.add((RDFParserFactory) getInstanceForClass(TURTLE_PARSER_FACTORY)); assert r.has(((RDFParserFactory) getInstanceForClass(TURTLE_PARSER_FACTORY)).getRDFFormat()); r.add((RDFParserFactory) getInstanceForClass(JSON_CONSTRUCT_PARSER_FACTORY)); log.info("RDFFormat: after: " + f); for (RDFParserFactory f : RDFParserRegistry.getInstance().getAll()) { log.info("RDFParserFactory: after: " + f);
System.out.println("RUN\t" + System.currentTimeMillis() + "\tadding data file " + f); Optional<RDFFormat> format = RDFParserRegistry.getInstance().getFileFormatForFileName(f);
runningQuery.get();
/** * Convenience methods for creating RDFParser objects. This method uses the * registry returned by {@link RDFParserRegistry#getInstance()} to get a * factory for the specified format and uses this factory to create the * appropriate parser. * * @throws UnsupportedRDFormatException * If no parser is available for the specified RDF format. */ public static RDFParser createParser(RDFFormat format) throws UnsupportedRDFormatException { RDFParserFactory factory = RDFParserRegistry.getInstance().get(format).orElseThrow( Rio.unsupportedFormat(format)); return factory.getParser(); }
/** * Tries to match the extension of a file name against the list of RDF * formats that can be parsed. * * @param fileName * A file name. * @return An RDFFormat object if a match was found, or * {@link Optional#empty()} otherwise. * @see #getParserFormatForFileName(String, RDFFormat) */ public static Optional<RDFFormat> getParserFormatForFileName(String fileName) { return RDFFormat.matchFileName(fileName, RDFParserRegistry.getInstance().getKeys()); }
private static RDFFormat getFormat(String format) { return RDFParserRegistry.getInstance().getFileFormatForMIMEType(format); } }