private static void assemblerFromForm(HttpAction action, StreamRDF dest) { String dbType = action.getRequest().getParameter(paramDatasetType) ; String dbName = action.getRequest().getParameter(paramDatasetName) ; if ( StringUtils.isBlank(dbType) || StringUtils.isBlank(dbName) ) ServletOps.errorBadRequest("Required parameters: dbName and dbType"); Map<String, String> params = new HashMap<>() ; if ( dbName.startsWith("/") ) params.put(Template.NAME, dbName.substring(1)) ; else params.put(Template.NAME, dbName) ; FusekiWebapp.addGlobals(params); //action.log.info(format("[%d] Create database : name = %s, type = %s", action.id, dbName, dbType )) ; String template = dbTypeToTemplate.get(dbType.toLowerCase(Locale.ROOT)); if ( template == null ) ServletOps.errorBadRequest(format("dbType can be only '%s', '%s' or '%s'", tDatabaseTDB, tDatabaseTDB2, tDatabaseMem)) ; String syntax = TemplateFunctions.templateFile(template, params, Lang.TTL) ; RDFParser.create().source(new StringReader(syntax)).base("http://base/").lang(Lang.TTL).parse(dest); }
private static void assemblerFromForm(HttpAction action, StreamRDF dest) { String dbType = action.getRequest().getParameter(paramDatasetType) ; String dbName = action.getRequest().getParameter(paramDatasetName) ; if ( StringUtils.isBlank(dbType) || StringUtils.isBlank(dbName) ) ServletOps.errorBadRequest("Required parameters: dbName and dbType"); Map<String, String> params = new HashMap<>() ; if ( dbName.startsWith("/") ) params.put(Template.NAME, dbName.substring(1)) ; else params.put(Template.NAME, dbName) ; FusekiWebapp.addGlobals(params); //action.log.info(format("[%d] Create database : name = %s, type = %s", action.id, dbName, dbType )) ; String template = dbTypeToTemplate.get(dbType.toLowerCase(Locale.ROOT)); if ( template == null ) ServletOps.errorBadRequest(format("dbType can be only '%s', '%s' or '%s'", tDatabaseTDB, tDatabaseTDB2, tDatabaseMem)) ; String syntax = TemplateFunctions.templateFile(template, params, Lang.TTL) ; RDFParser.create().source(new StringReader(syntax)).base("http://base/").lang(Lang.TTL).parse(dest); }
@Override public Stream<Triple> read(final InputStream input, final RDFSyntax syntax, final String base) { requireNonNull(input, "The input stream may not be null!"); requireNonNull(syntax, "The syntax value may not be null!"); try { final org.apache.jena.graph.Graph graph = createDefaultGraph(); final Lang lang = rdf.asJenaLang(syntax).orElseThrow(() -> new RuntimeTrellisException("Unsupported RDF Syntax: " + syntax.mediaType())); RDFParser.source(input).lang(lang).base(base).parse(graph); // Check the graph for any new namespace definitions final Set<String> namespaces = nsService.getNamespaces().entrySet().stream().map(Map.Entry::getValue) .collect(toSet()); graph.getPrefixMapping().getNsPrefixMap().forEach((prefix, namespace) -> { if (!namespaces.contains(namespace)) { LOGGER.debug("Setting prefix ({}) for namespace {}", prefix, namespace); nsService.setPrefix(prefix, namespace); } }); return rdf.asGraph(graph).stream().map(Triple.class::cast); } catch (final RiotException | AtlasException | IllegalArgumentException ex) { throw new RuntimeTrellisException(ex); } }
@Override public Stream<Triple> read(final InputStream input, final RDFSyntax syntax, final String base) { requireNonNull(input, "The input stream may not be null!"); requireNonNull(syntax, "The syntax value may not be null!"); try { final org.apache.jena.graph.Graph graph = createDefaultGraph(); final Lang lang = rdf.asJenaLang(syntax).orElseThrow(() -> new RuntimeTrellisException("Unsupported RDF Syntax: " + syntax.mediaType())); RDFParser.source(input).lang(lang).base(base).parse(graph); // Check the graph for any new namespace definitions final Set<String> namespaces = nsService.getNamespaces().entrySet().stream().map(Map.Entry::getValue) .collect(toSet()); graph.getPrefixMapping().getNsPrefixMap().forEach((prefix, namespace) -> { if (!namespaces.contains(namespace)) { LOGGER.debug("Setting prefix ({}) for namespace {}", prefix, namespace); nsService.setPrefix(prefix, namespace); } }); return rdf.asGraph(graph).stream().map(Triple.class::cast); } catch (final RiotException | AtlasException | IllegalArgumentException ex) { throw new RuntimeTrellisException(ex); } }
@Override final public void handle(String baseIRI, HttpResponse response) { try { DatasetGraph dsg = DatasetGraphFactory.createTxnMem(); HttpEntity entity = response.getEntity() ; // org.apache.http.entity.ContentType ; String ct = contentType(response) ; Lang lang = RDFLanguages.contentTypeToLang(ct) ; StreamRDF dest = StreamRDFLib.dataset(dsg); try(InputStream in = entity.getContent()) { RDFParser.source(in).lang(lang).base(baseIRI).parse(dest); } this.dsg = dsg ; } catch (IOException ex) { IO.exception(ex) ; } }
@Override final public void handle(String baseIRI, HttpResponse response) { try { Graph g = GraphFactory.createDefaultGraph() ; HttpEntity entity = response.getEntity() ; // org.apache.http.entity.ContentType ; String ct = contentType(response) ; Lang lang = RDFLanguages.contentTypeToLang(ct) ; StreamRDF dest = StreamRDFLib.graph(g) ; try(InputStream in = entity.getContent()) { RDFParser.source(in).lang(lang).base(baseIRI).parse(dest); } this.graph = g ; } catch (IOException ex) { IO.exception(ex) ; } }
private static void parseFromURI(StreamRDF destination, String uri, String baseUri, Lang lang, Context context) { RDFParser.create() .source(uri) .base(baseUri) .lang(lang) .context(context) .parse(destination); }
@SuppressWarnings("deprecation") private static void parseFromReader(StreamRDF destination, Reader in, String baseUri, Lang lang, Context context) { RDFParser.create() .source(in) .base(baseUri) .lang(lang) .context(context) .parse(destination); }
private static void parseFromInputStream(StreamRDF destination, InputStream in, String baseUri, Lang lang, Context context) { RDFParser.create() .source(in) .base(baseUri) .lang(lang) .context(context) .parse(destination); }
public static void parseFromInputStream(StreamRDF destination, InputStream in, String baseUri, Lang lang, Context context) { RDFParser.create() .source(in) .base(baseUri) .lang(lang) .context(context) .parse(destination); }
@Override protected void parseSynchronusly() throws IOException { StreamRDF dest; final JenaRDF jenaRDF = getJenaFactory(); if (getTargetGraph().isPresent() && getTargetGraph().get() instanceof JenaGraph) { final Graph jenaGraph = ((JenaGraph) getTargetGraph().get()).asJenaGraph(); dest = StreamRDFLib.graph(jenaGraph); } else { if (generalizedConsumerQuad != null) { dest = jenaRDF.streamJenaToGeneralizedQuad(generalizedConsumerQuad); } else if (generalizedConsumerTriple != null) { dest = jenaRDF.streamJenaToGeneralizedTriple(generalizedConsumerTriple); } else { dest = JenaRDF.streamJenaToQuad(getRdfTermFactory().get(), getTarget()); } } final Lang lang = getContentTypeSyntax().flatMap(jenaRDF::asJenaLang).orElse(null); final String baseStr = getBase().map(IRI::getIRIString).orElse(null); if (getSourceIri().isPresent()) { RDFParser.source(getSourceIri().get().toString()).base(baseStr).lang(lang).parse(dest); } else if (getSourceFile().isPresent()) { try (InputStream s = Files.newInputStream(getSourceFile().get())) { RDFParser.source(s).base(baseStr).lang(lang).parse(dest); } } else { RDFParser.source(getSourceInputStream().get()).base(baseStr).lang(lang).parse(dest); } }
public static void parseFromInputStream(StreamRDF destination, InputStream in, String baseUri, Lang lang, Context context) { RDFParser.create() .source(in) .base(baseUri) .lang(lang) .context(context) .parse(destination); }
public ParseRecord parseFile(String filename) { String baseURI = modLangParse.getBaseIRI() ; RDFParserBuilder builder = RDFParser.create(); if ( baseURI != null ) builder.base(baseURI); if ( modLangParse.getLang() != null ) // Always use the command line specified syntax. builder.forceLang(modLangParse.getLang()); else { // Otherwise, use the command selected language, with N-Quads as the ultimate fallback. Lang lang = dftLang() ; if ( lang == null ) lang = Lang.NQUADS; // Fall back lang if RIOT can't guess it. builder.lang(lang); } // Set the source. if ( filename.equals("-") ) { if ( baseURI == null ) { baseURI = "http://base/"; builder.base(baseURI); } builder.source(System.in); } else { builder.source(filename); } return parseRIOT(builder, filename); }
private CatchParserOutput parseCapture(String s, Lang lang) { CatchParserOutput sink = new CatchParserOutput() ; RDFParser.create().source(new StringReader(s)).base("http://base/").lang(lang).parse(sink); return sink ; }
@Deprecated private static void processFromTypedInputStream(StreamRDF sink, TypedInputStream in, String baseUri, Lang hintLang, Context context) { // If the input stream comes with a content type, use that in preference to the hint (compatibility). // Except for text/plain. // Do here, which duplicates RDFParser, because "TypedInputStream" gets lost at RDFParser if ( in.getContentType() != null ) { // Special case of text/plain. ContentType ct = WebContent.determineCT(in.getContentType(), hintLang, null); Lang lang2 = RDFLanguages.contentTypeToLang(ct); hintLang = lang2 ; } RDFParser.create() .source(in) .base(baseUri) .lang(hintLang) // We made the decision above. .forceLang(hintLang) .context(context) .parse(sink); } // ---- Support for RDFDataMgr.parse only.
/** Parse strings to destination (checking on, URI resolution off) - convert errors and warning to ErrorHandlerEx */ static void parse(Lang lang, StreamRDF dest, String... strings) { String string = String.join("\n", strings) ; String baseIRI = "http://base/" ; RDFParser.create() .fromString(string) .base(baseIRI) .errorHandler(new ErrorHandlerEx()) .lang(lang) .parse(dest); }
/** Parse, forcing the language.*/ public static void parse(DatasetGraph dataset, String uri, String base, Lang lang) { RDFParser.create().forceLang(lang).source(uri).base(base).build().parse(dataset); }
public static void parse(Graph graph, String uri, String base, Lang lang) { RDFParser.create().forceLang(lang).source(uri).base(base).build().parse(graph); }
/** * Parse RDF content */ public static void parse(HttpAction action, StreamRDF dest, InputStream input, Lang lang, String base) { try { if ( ! RDFParserRegistry.isRegistered(lang) ) ServletOps.errorBadRequest("No parser for language '"+lang.getName()+"'") ; ErrorHandler errorHandler = ErrorHandlerFactory.errorHandlerStd(action.log); RDFParser.create() .errorHandler(errorHandler) .source(input) .lang(lang) .base(base) .parse(dest); } catch (RuntimeIOException ex) { if ( ex.getCause() instanceof CharacterCodingException ) throw new RiotException("Character Coding Error: "+ex.getMessage()); throw ex; } catch (RiotException ex) { ServletOps.errorBadRequest("Parse error: "+ex.getMessage()) ; } }
/** * Parse RDF content */ public static void parse(HttpAction action, StreamRDF dest, InputStream input, Lang lang, String base) { try { if ( ! RDFParserRegistry.isRegistered(lang) ) ServletOps.errorBadRequest("No parser for language '"+lang.getName()+"'") ; ErrorHandler errorHandler = ErrorHandlerFactory.errorHandlerStd(action.log); RDFParser.create() .errorHandler(errorHandler) .source(input) .lang(lang) .base(base) .parse(dest); } catch (RuntimeIOException ex) { if ( ex.getCause() instanceof CharacterCodingException ) throw new RiotException("Character Coding Error: "+ex.getMessage()); throw ex; } catch (RiotException ex) { ServletOps.errorBadRequest("Parse error: "+ex.getMessage()) ; } }