use of org.apache.jena.riot.Lang in project jena by apache.
the class SPARQL_REST_RW method incomingData.
private static void incomingData(HttpAction action, StreamRDF dest) {
String base = wholeRequestURL(action.request);
ContentType ct = FusekiLib.getContentType(action);
Lang lang = RDFLanguages.contentTypeToLang(ct.getContentType());
if (lang == null) {
errorBadRequest("Unknown content type for triples: " + ct);
return;
}
InputStream input = null;
try {
input = action.request.getInputStream();
} catch (IOException ex) {
IO.exception(ex);
}
int len = action.request.getContentLength();
if (action.verbose) {
if (len >= 0)
log.info(format("[%d] Body: Content-Length=%d, Content-Type=%s, Charset=%s => %s", action.id, len, ct.getContentType(), ct.getCharset(), lang.getName()));
else
log.info(format("[%d] Body: Content-Type=%s, Charset=%s => %s", action.id, ct.getContentType(), ct.getCharset(), lang.getName()));
}
parse(action, dest, input, lang, base);
}
use of org.apache.jena.riot.Lang in project jena by apache.
the class ResponseModel method doResponseModel.
public static void doResponseModel(HttpAction action, Model model) {
HttpServletRequest request = action.request;
HttpServletResponse response = action.response;
// Header request type
String mimeType = null;
// TODO Use MediaType throughout.
MediaType i = ConNeg.chooseContentType(request, DEF.rdfOffer, DEF.acceptRDFXML);
if (i != null)
mimeType = i.getContentType();
String outputField = ResponseOps.paramOutput(request, shortNamesModel);
if (outputField != null)
mimeType = outputField;
String writerMimeType = mimeType;
if (mimeType == null) {
Fuseki.requestLog.warn("Can't find MIME type for response");
String x = WebLib.getAccept(request);
String msg;
if (x == null)
msg = "No Accept: header";
else
msg = "Accept: " + x + " : Not understood";
error(HttpSC.NOT_ACCEPTABLE_406, msg);
}
String contentType = mimeType;
String charset = WebContent.charsetUTF8;
String forceAccept = ResponseOps.paramForceAccept(request);
if (forceAccept != null) {
contentType = forceAccept;
charset = WebContent.charsetUTF8;
}
Lang lang = RDFLanguages.contentTypeToLang(contentType);
if (lang == null)
errorBadRequest("Can't determine output content type: " + contentType);
try {
ResponseResultSet.setHttpResponse(request, response, contentType, charset);
response.setStatus(HttpSC.OK_200);
ServletOutputStream out = response.getOutputStream();
RDFDataMgr.write(out, model, lang);
out.flush();
} catch (Exception ex) {
slog.info("Exception while writing the response model: " + ex.getMessage(), ex);
errorOccurred("Exception while writing the response model: " + ex.getMessage(), ex);
}
}
use of org.apache.jena.riot.Lang in project jena by apache.
the class sdbdump method execCmd.
@Override
protected void execCmd(List<String> args) {
// This is a streamable syntax.
String syntax = "N-QUADS";
if (contains(argDeclSyntax))
syntax = getArg(argDeclSyntax).getValue();
Lang lang = RDFLanguages.nameToLang(syntax);
try {
if (modGraph.getGraphName() == null) {
if (!RDFLanguages.isQuads(lang))
cmdError("Not a 'quads' language (try 'N-Quads' or 'TriG')", true);
Dataset dataset = getModStore().getDataset();
RDFDataMgr.write(System.out, dataset, lang);
} else {
Model model = modGraph.getModel(getStore());
RDFDataMgr.write(System.out, model, lang);
}
} catch (CmdException ex) {
throw ex;
} catch (Exception ex) {
System.err.println("Exception: " + ex + " :: " + ex.getMessage());
ex.printStackTrace(System.err);
}
}
use of org.apache.jena.riot.Lang in project jena by apache.
the class sdbload method loadOne.
private void loadOne(String filename, boolean replace) {
Model model = null;
Dataset dataset = null;
PrefixMapping pmap;
Lang lang = RDFLanguages.filenameToLang(filename);
if (lang == null)
throw new CmdException("Data syntax not recognized: " + filename);
// --graph or not
if (modGraph.getGraphName() != null) {
model = modGraph.getModel(getStore());
pmap = model;
} else {
dataset = SDBFactory.connectDataset(getStore());
pmap = dataset.asDatasetGraph().getDefaultGraph().getPrefixMapping();
}
// For monitoring only.
Graph monitorGraph = (model == null) ? null : model.getGraph();
if (replace) {
if (model != null)
model.removeAll();
else
dataset.asDatasetGraph().clear();
}
boolean showProgress = isVerbose() || getModTime().timingEnabled();
if (showProgress)
output.print("Start load: %s", filename);
StreamRDF stream = streamToStore(pmap, getStore());
if (modGraph.getGraphName() != null) {
Node gn = NodeFactory.createURI(modGraph.getGraphName());
stream = StreamRDFLib.extendTriplesToQuads(gn, stream);
}
ProgressMonitor progress = null;
if (showProgress) {
progress = new ProgressMonitor(filename, 100_000, 10, output);
stream = new ProgressStreamRDF(stream, progress);
}
if (progress != null)
progress.start();
// Load!
RDFDataMgr.parse(stream, filename, lang);
if (progress != null) {
progress.finish();
progress.finishMessage();
}
}
use of org.apache.jena.riot.Lang in project jena by apache.
the class AdapterFileManager method readModelWorker.
// -------- Cache operations (end)
@Override
protected Model readModelWorker(Model model, String filenameOrURI, String baseURI, String syntax) {
// Doesn't call open() - we want to make the syntax guess
// based on the mapped URI.
String mappedURI = mapURI(filenameOrURI);
if (log.isDebugEnabled() && !mappedURI.equals(filenameOrURI))
log.debug("Map: " + filenameOrURI + " => " + mappedURI);
Lang lang = (syntax != null) ? RDFLanguages.nameToLang(syntax) : RDFLanguages.resourceNameToLang(mappedURI, Lang.RDFXML);
// Allow model.read to be overridden e.g. by OntModel which does import processing.
if (baseURI == null)
baseURI = SysRIOT.chooseBaseIRI(filenameOrURI);
try (TypedInputStream in = streamManager.openNoMapOrNull(mappedURI)) {
Lang lang2 = RDFDataMgr.determineLang(mappedURI, in.getContentType(), lang);
// May be overridden by model implementation.
model.read(in, baseURI, lang2.getName());
}
return model;
}
Aggregations