use of org.apache.jena.graph.Node in project jena by apache.
the class TurtleRDFGraphInserter method triple.
@Override
public void triple(int line, int col, Triple triple) {
//Check it's valid triple.
Node s = triple.getSubject();
Node p = triple.getPredicate();
Node o = triple.getObject();
if (!(s.isURI() || s.isBlank()))
throw new TurtleParseException("[" + line + ", " + col + "] : Error: Subject is not a URI or blank node");
if (!p.isURI())
throw new TurtleParseException("[" + line + ", " + col + "] : Error: Predicate is not a URI");
if (!(o.isURI() || o.isBlank() || o.isLiteral()))
throw new TurtleParseException("[" + line + ", " + col + "] : Error: Object is not a URI, blank node or literal");
graph.add(triple);
}
use of org.apache.jena.graph.Node in project jena by apache.
the class REST_Quads method doPostTriplesGSP.
protected void doPostTriplesGSP(HttpAction action, Lang lang) {
action.beginWrite();
try {
DatasetGraph dsg = action.getActiveDSG();
//log.info(format("[%d] ** Content-length: %d", action.id, action.request.getContentLength())) ;
String name = action.request.getRequestURL().toString();
if (!name.endsWith("/"))
name = name + "/";
name = name + (++counter);
Node gn = NodeFactory.createURI(name);
Graph g = dsg.getGraph(gn);
RDFDataMgr.read(g, action.request.getInputStream(), name, lang);
log.info(format("[%d] Location: %s", action.id, name));
action.response.setHeader("Location", name);
action.commit();
successCreated(action);
} catch (IOException ex) {
action.abort();
} finally {
action.endWrite();
}
}
use of org.apache.jena.graph.Node in project jena by apache.
the class SPARQL_REST method determineTarget.
protected static final Target determineTarget(HttpAction action) {
// Delayed until inside a transaction.
if (action.getActiveDSG() == null)
errorOccurred("Internal error : No action graph (not in a transaction?)");
boolean dftGraph = getOneOnly(action.request, HttpNames.paramGraphDefault) != null;
String uri = getOneOnly(action.request, HttpNames.paramGraph);
if (!dftGraph && uri == null) {
// Direct naming or error.
uri = action.request.getRequestURL().toString();
if (action.request.getRequestURI().equals(action.getDatasetRef().name))
// No name
errorBadRequest("Neither default graph nor named graph specified; no direct name");
}
if (dftGraph)
return Target.createDefault(action.getActiveDSG());
// Named graph
if (uri.equals(HttpNames.valueDefault))
// But "named" default
return Target.createDefault(action.getActiveDSG());
// Strictly, a bit naughty on the URI resolution. But more sensible.
// Base is dataset.
//wholeRequestURL(request) ;
String base = action.request.getRequestURL().toString();
// Make sure it ends in "/", ie. dataset as container.
if (action.request.getQueryString() != null && !base.endsWith("/"))
base = base + "/";
String absUri = IRIResolver.resolveString(uri, base);
Node gn = NodeFactory.createURI(absUri);
return Target.createNamed(action.getActiveDSG(), absUri, gn);
}
use of org.apache.jena.graph.Node 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.graph.Node in project jena by apache.
the class SlotCompilerIndex method insertConstantAccesses.
protected SqlNode insertConstantAccesses(Collection<Node> constants) {
SqlNode sqlNode = null;
for (Node n : constants) {
long hash = NodeLayout2.hash(n);
SqlConstant hashValue = new SqlConstant(hash);
// Access nodes table.
SqlTable nTable = new SqlTable(getRequest().genId(NodeConstBase), nodeTableDesc.getTableName());
nTable.addNote("Const: " + FmtUtils.stringForNode(n, getRequest().getPrefixMapping()));
SqlColumn cHash = new SqlColumn(nTable, nodeTableDesc.getHashColName());
// Record
constantCols.put(n, new SqlColumn(nTable, nodeTableDesc.getIdColName()));
SqlExpr c = new S_Equal(cHash, hashValue);
sqlNode = SqlBuilder.innerJoin(getRequest(), sqlNode, nTable);
sqlNode = SqlBuilder.restrict(getRequest(), sqlNode, c);
}
return sqlNode;
}
Aggregations