private IRI resolve(String uriString, Deque<Frame> stack) { IRI uri; try { uri = IRI.create(uriString); } catch (IRISyntaxException e) { logger.log(Level.FINE, e.getMessage(), e); // illegal URI, try repair uri = IRI.create(uriString .replace(" ", "%20") .replace("\"", "%22") .replace("[", "%5B") .replace("]", "%5D") .replace("<", "%3C") .replace(">", "%3E") .replace("|", "%7C") .replace("`", "%60") .replace("\u0098", "") // Unicode "START OF STRING" .replace("\u009c", "") // Unicode "STRING TERMINATOR" ); } if (uri.isAbsolute()) { return uri; } else { return IRI.create(getBase(stack) + uriString); } }
@Override public void addTypedLiteral(String subj, String pred, String content, String type, String graphIRI) { try { Resource s = DefaultResource.create(graph.getParams().getNamespaceContext(), subj); IRI p = IRI.create(pred); Literal o = new DefaultLiteral(content).type(IRI.create(type)); Triple t = new DefaultTriple(s, p, o); graph.receive(t); } catch (IOException e) { logger.log(Level.SEVERE, e.getMessage(), e); } }
@Override public void addTypedLiteral(String subj, String pred, String content, String type) { try { Resource s = DefaultResource.create(graph.getParams().getNamespaceContext(), subj); IRI p = IRI.create(pred); Literal o = new DefaultLiteral(content).type(IRI.create(type)); Triple t = new DefaultTriple(s, p, o); graph.receive(t); } catch (IOException e) { logger.log(Level.SEVERE, e.getMessage(), e); } }
@Override public void addPlainLiteral(String subj, String pred, String content, String lang) { try { Resource s = DefaultResource.create(graph.getParams().getNamespaceContext(), subj); IRI p = IRI.create(pred); Literal o = new DefaultLiteral(content).lang(lang); Triple t = new DefaultTriple(s, p, o); graph.receive(t); } catch (IOException e) { logger.log(Level.SEVERE, e.getMessage(), e); } }
@Override public void addPlainLiteral(String subj, String pred, String content, String lang, String graphIRI) { try { Resource s = DefaultResource.create(graph.getParams().getNamespaceContext(), subj); IRI p = IRI.create(pred); Literal o = new DefaultLiteral(content).lang(lang); Triple t = new DefaultTriple(s, p, o); graph.receive(t); } catch (IOException e) { logger.log(Level.SEVERE, e.getMessage(), e); } }
@Override public void addNonLiteral(String subj, String pred, String obj, String graphIRI) { try { Resource s = DefaultResource.create(graph.getParams().getNamespaceContext(), subj); IRI p = IRI.create(pred); Resource o = DefaultResource.create(graph.getParams().getNamespaceContext(), obj); Triple t = new DefaultTriple(s, p, o); graph.receive(t); } catch (IOException e) { logger.log(Level.SEVERE, e.getMessage(), e); } }
@Override public void addNonLiteral(String subj, String pred, String obj) { try { Resource s = DefaultResource.create(graph.getParams().getNamespaceContext(), subj); IRI p = IRI.create(pred); Resource o = DefaultResource.create(graph.getParams().getNamespaceContext(), obj); Triple t = new DefaultTriple(s, p, o); graph.receive(t); } catch (IOException e) { logger.log(Level.SEVERE, e.getMessage(), e); } }
/** * At the endStream of each OAI metadata, the resource context receives the identifier from * the metadata header. The resource context is pushed to the RDF output. * Any IOException is converted to a SAXException. * * @throws SAXException if SaX fails */ @Override public void endDocument() throws SAXException { String id = getHeader().getIdentifier().trim(); if (handler != null) { handler.identify(null, id, null); resource.setId(IRI.create(id)); handler.endDocument(); try { if (builder != null) { builder.receive(resource); } } catch (IOException e) { throw new SAXException(e); } } }
throw new SAXException("ambiguous use of rdf:ID"); frame.node = IRI.create(getBase(stack) + "#" + rdfId);