Refine search
@Override protected RecordWriter<TKey, QuadWritable> getRecordWriter(Writer writer, Configuration config, Path outputPath) throws IOException { Lang lang = RDFLanguages.filenameToLang(outputPath.getName()); if (lang == null) throw new IOException("There is no registered RDF language for the output file " + outputPath.toString()); if (!RDFLanguages.isQuads(lang)) throw new IOException( lang.getName() + " is not a RDF quads format, perhaps you wanted TriplesOutputFormat or TriplesOrQuadsOutputFormat instead?"); // This will throw an appropriate error if the language does not support // writing quads return HadoopRdfIORegistry.<TKey> createQuadWriter(lang, writer, config); }
/** Remove a registration of a language - this also removes all recorded mapping * of content types and file extensions. */ public static void unregister(Lang lang) { if ( lang == null ) throw new IllegalArgumentException("null for language") ; checkRegistration(lang) ; mapLabelToLang.remove(canonicalKey(lang.getLabel())) ; mapContentTypeToLang.remove(canonicalKey(lang.getContentType().getContentType())) ; for ( String ct : lang.getAltContentTypes() ) mapContentTypeToLang.remove(canonicalKey(ct)) ; for ( String ext : lang.getFileExtensions() ) mapFileExtToLang.remove(canonicalKey(ext)) ; }
private static void checkRegistration(Lang lang) { if ( lang == null ) return ; String label = canonicalKey(lang.getLabel()) ; Lang lang2 = mapLabelToLang.get(label) ; if ( lang2 == null ) return ; if ( lang.equals(lang2) ) return ; // Content type. if ( mapContentTypeToLang.containsKey(lang.getContentType().getContentType())) { String k = lang.getContentType().getContentType() ; error("Language overlap: " +lang+" and "+mapContentTypeToLang.get(k)+" on content type "+k) ; } for (String altName : lang.getAltNames() ) if ( mapLabelToLang.containsKey(altName) ) error("Language overlap: " +lang+" and "+mapLabelToLang.get(altName)+" on name "+altName) ; for (String ct : lang.getAltContentTypes() ) if ( mapContentTypeToLang.containsKey(ct) ) error("Language overlap: " +lang+" and "+mapContentTypeToLang.get(ct)+" on content type "+ct) ; for (String ext : lang.getFileExtensions() ) if ( mapFileExtToLang.containsKey(ext) ) error("Language overlap: " +lang+" and "+mapFileExtToLang.get(ext)+" on file extension type "+ext) ; }
public String toLongString() { String x = "Lang:" + label + " " + getContentType() ; if (getAltNames().size() > 0) x = x + " " + getAltNames() ; if (getAltContentTypes().size() > 0) x = x + " " + getAltContentTypes() ; if (getFileExtensions().size() > 0) x = x + " " + getFileExtensions() ; return x ; } }
public NeedEvent(String uri, String wonNodeUri, TYPE eventType, long crawlDate, String resource, Lang format) { this.uri = uri; this.wonNodeUri = wonNodeUri; this.eventType = eventType; this.crawlDate = crawlDate; serializedNeedResource = resource; serializationLangName = format.getName(); serializationLangContentType = format.getContentType().getContentType(); }
Lang lang = RDFLanguages.contentTypeToLang(mediaType.getContentType()) ; if ( lang == null ) lang = RDFLanguages.TRIG ; mediaType.getContentType(), mediaType.getCharset(), lang.getName())) ; if ( !RDFLanguages.isQuads(lang) ) ServletOps.errorBadRequest("Not a quads format: " + mediaType) ; try { DatasetGraph dsg = decideDataset(action); action.response.setHeader("Content-type", lang.getContentType().toHeaderString()); RDFDataMgr.write(out, dsg, fmt) ; } catch (JenaException ex) { if ( fmt.getLang().equals(Lang.RDFXML) ) ServletOps.errorBadRequest("Failed to write output in RDF/XML: "+ex.getMessage()) ; else
@Override protected RecordWriter<TKey, QuadWritable> getRecordWriter(Writer writer, Configuration config, Path outputPath) throws IOException { Lang lang = RDFLanguages.filenameToLang(outputPath.getName()); if (lang == null) throw new IOException("There is no registered RDF language for the output file " + outputPath.toString()); if (!RDFLanguages.isQuads(lang) && !RDFLanguages.isTriples(lang)) throw new IOException(lang.getName() + " is not a RDF triples/quads format"); if (HadoopRdfIORegistry.hasQuadWriter(lang)) { // Supports quads directly return HadoopRdfIORegistry.<TKey> createQuadWriter(lang, writer, config); } else { // Try to create a triples writer and wrap downwards from quads // This will throw an error if a triple writer is not available return new QuadsToTriplesWriter<TKey>(HadoopRdfIORegistry.<TKey> createTripleWriter(lang, writer, config)); } }
@Override protected RecordWriter<TKey, TripleWritable> getRecordWriter(Writer writer, Configuration config, Path outputPath) throws IOException { Lang lang = RDFLanguages.filenameToLang(outputPath.getName()); if (lang == null) throw new IOException("There is no registered RDF language for the output file " + outputPath.toString()); if (!RDFLanguages.isTriples(lang)) throw new IOException( lang.getName() + " is not a RDF triples format, perhaps you wanted QuadsOutputFormat or TriplesOrQuadsOutputFormat instead?"); // This will throw an appropriate error if the language does not support writing triples return HadoopRdfIORegistry.<TKey>createTripleWriter(lang, writer, config); }
protected HttpEntity fileToHttpEntity(String filename, Lang lang) { // Leave RDF/XML to the XML parse, else it's UTF-8. String charset = (lang.equals(Lang.RDFXML) ? null : WebContent.charsetUTF8); // HttpClient Content type. ContentType ct = ContentType.create(lang.getContentType().getContentType(), charset); // Repeatable. return new FileEntity(new File(filename), ct); }
public static ContentType guessContentType(String resourceName) { if ( resourceName == null ) return null ; Lang lang = filenameToLang(resourceName) ; if ( lang == null ) return null ; return lang.getContentType() ; }
public MediaType(Lang lang) { this(lang.getContentType()); }
@Override public ResultSetWriter create(Lang lang) { lang = Objects.requireNonNull(lang, "Language must not be null"); // if ( lang.equals(SPARQLResultSetXML) ) return writerXML; // if ( lang.equals(SPARQLResultSetJSON) ) return writerJSON; if ( lang.equals(SPARQLResultSetCSV) ) return writerCSV; if ( lang.equals(SPARQLResultSetTSV) ) return writerTSV; if ( lang.equals(SPARQLResultSetText) ) return writerText; if ( lang.equals(SPARQLResultSetNone) ) return writerNone; throw new RiotException("Lang not registered (ResultSet writer)") ; } }
/** Return our "canonical" name for a Content Type. * This should be the standard one, no X-* */ public static String contentTypeCanonical(String contentType) { Lang lang = RDFLanguages.contentTypeToLang(contentType) ; if ( lang == null ) return null ; return lang.getHeaderString() ; //return mapLangToContentType.get(lang) ; }
@Override protected RecordReader<LongWritable, QuadWritable> selectRecordReader(Lang lang) throws IOException { if (!RDFLanguages.isQuads(lang) && !RDFLanguages.isTriples(lang)) throw new IOException(lang.getLabel() + " is not a RDF triples/quads format"); if (HadoopRdfIORegistry.hasQuadReader(lang)) { // Supports quads directly return HadoopRdfIORegistry.createQuadReader(lang); } else { // Try to create a triples reader and wrap upwards into quads // This will throw an error if a triple reader is not available return new TriplesToQuadsReader(HadoopRdfIORegistry.createTripleReader(lang)); } }
public static String getFormatFromExtension(String filename) { String format = "TURTLE"; try { // try to get if from Jena first String extension; Lang jenaLang = RDFLanguages.filenameToLang(filename); if (jenaLang != null) { extension = jenaLang.getFileExtensions().get(0); } else { int index = filename.lastIndexOf('.'); extension = filename.substring(index + 1, filename.length()); } SerializationFormat f = FormatService.getInputFormat(extension); if (f != null) { format = f.getName(); } } catch (Exception e) { log.debug("No format found, using the default one", e); return "TURTLE"; } return format; } }
private void loadTemplateModel() { logger.info("loading need templateModel model from resource " + this.template); Lang lang = RDFLanguages.filenameToLang(this.template.getFilename()); try { this.templateModel = RdfUtils.readRdfSnippet(template.getInputStream(), Lang.TTL.getLabel()); } catch (IOException e) { throw new IllegalArgumentException("Could not read data from resource " + template); } if (this.templateModel == null){ logger.warn("reading RDF data from template {} resulted in a null or empty model. Wrapped models will not be modified", this.template); } }
@Test public void testGet() { for (Lang l : RDFLanguages.getRegisteredLanguages() ) { Assert.assertNotNull( l+" can not be parsed by name", RDFLanguages.shortnameToLang( l.getName()) ); } }
private static MediaType[] buildMediaTypeArray(){ // now register the media types this converter can handle Collection<Lang> languages = RDFLanguages.getRegisteredLanguages(); Set<MediaType> mediaTypeSet = new HashSet<MediaType>(); for(Lang lang: languages){ if (datasetWriterExistsForLang(lang)) { ContentType ct = lang.getContentType(); logger.debug("registering converter for rdf content type {}", lang.getContentType()); MediaType mt = new MediaType(ct.getType(), ct.getSubType()); mediaTypeSet.add(mt); } } return mediaTypeSet.toArray(new MediaType[mediaTypeSet.size()]); }