http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/extractor/rdfa/RDFa11Parser.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/extractor/rdfa/RDFa11Parser.java b/core/src/main/java/org/apache/any23/extractor/rdfa/RDFa11Parser.java index 4e45b73..2b9c028 100644 --- a/core/src/main/java/org/apache/any23/extractor/rdfa/RDFa11Parser.java +++ b/core/src/main/java/org/apache/any23/extractor/rdfa/RDFa11Parser.java @@ -21,11 +21,11 @@ import org.apache.any23.extractor.IssueReport; import org.apache.any23.extractor.ExtractionResult; import org.apache.any23.extractor.html.DomUtils; import org.apache.any23.rdf.RDFUtils; -import org.openrdf.model.Literal; -import org.openrdf.model.Resource; -import org.openrdf.model.URI; -import org.openrdf.model.Value; -import org.openrdf.model.vocabulary.RDF; +import org.eclipse.rdf4j.model.Literal; +import org.eclipse.rdf4j.model.Resource; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.model.vocabulary.RDF; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; @@ -55,9 +55,9 @@ public class RDFa11Parser { private static final Logger logger = LoggerFactory.getLogger(RDFa11Parser.class); public static final String CURIE_SEPARATOR = ":"; - public static final char URI_PREFIX_SEPARATOR = ':'; - public static final String URI_SCHEMA_SEPARATOR = "://"; - public static final String URI_PATH_SEPARATOR = "/"; + public static final char IRI_PREFIX_SEPARATOR = ':'; + public static final String IRI_SCHEMA_SEPARATOR = "://"; + public static final String IRI_PATH_SEPARATOR = "/"; public static final String HEAD_TAG = "HEAD"; public static final String BODY_TAG = "BODY"; @@ -100,7 +100,7 @@ public class RDFa11Parser { private URL documentBase; - private final Stack<URIMapping> uriMappingStack = new Stack<URIMapping>(); + private final Stack<IRIMapping> IRIMappingStack = new Stack<IRIMapping>(); private final Stack<Vocabulary> vocabularyStack = new Stack<Vocabulary>(); @@ -134,7 +134,7 @@ public class RDFa11Parser { i++; continue; } - if(part.charAt( part.length() -1 ) == URI_PREFIX_SEPARATOR) { + if(part.charAt( part.length() -1 ) == IRI_PREFIX_SEPARATOR) { i++; while(i < parts.length && parts[i].length() == 0) i++; out.add( part + (i < parts.length ? parts[i] : "") ); @@ -147,8 +147,8 @@ public class RDFa11Parser { return out.toArray( new String[out.size()] ); } - protected static boolean isAbsoluteURI(String uri) { - return uri.contains(URI_SCHEMA_SEPARATOR); + protected static boolean isAbsoluteIRI(String IRI) { + return IRI.contains(IRI_SCHEMA_SEPARATOR); } protected static boolean isCURIE(String curie) { @@ -248,7 +248,7 @@ public class RDFa11Parser { public void reset() { issueReport = null; documentBase = null; - uriMappingStack.clear(); + IRIMappingStack.clear(); listOfIncompleteTriples.clear(); evaluationContextStack.clear(); } @@ -262,31 +262,31 @@ public class RDFa11Parser { final String vocabularyStr = DomUtils.readAttribute(currentNode, VOCAB_ATTRIBUTE, null); if(vocabularyStr == null) return; try { - pushVocabulary(currentNode, RDFUtils.uri(vocabularyStr)); + pushVocabulary(currentNode, RDFUtils.iri(vocabularyStr)); } catch (Exception e) { - reportError(currentNode, String.format("Invalid vocabulary [%s], must be a URI.", vocabularyStr)); + reportError(currentNode, String.format("Invalid vocabulary [%s], must be a IRI.", vocabularyStr)); } } /** - * Updates the URI mapping with the XMLNS attributes declared in the current node. + * Updates the IRI mapping with the XMLNS attributes declared in the current node. * * @param node input node. */ - protected void updateURIMapping(Node node) { + protected void updateIRIMapping(Node node) { final NamedNodeMap attributes = node.getAttributes(); if (null == attributes) return; Node attribute; final List<PrefixMap> prefixMapList = new ArrayList<PrefixMap>(); - final String namespacePrefix = XMLNS_ATTRIBUTE + URI_PREFIX_SEPARATOR; + final String namespacePrefix = XMLNS_ATTRIBUTE + IRI_PREFIX_SEPARATOR; for (int a = 0; a < attributes.getLength(); a++) { attribute = attributes.item(a); if (attribute.getNodeName().startsWith(namespacePrefix)) { prefixMapList.add( new PrefixMap( attribute.getNodeName().substring(namespacePrefix.length()), - resolveURI(attribute.getNodeValue()) + resolveIRI(attribute.getNodeValue()) ) ); } @@ -302,14 +302,14 @@ public class RDFa11Parser { } /** - * Returns a URI mapping for a given prefix. + * Returns a IRI mapping for a given prefix. * * @param prefix input prefix. - * @return URI mapping. + * @return IRI mapping. */ - protected URI getMapping(String prefix) { - for (URIMapping uriMapping : uriMappingStack) { - final URI mapping = uriMapping.map.get(prefix); + protected IRI getMapping(String prefix) { + for (IRIMapping IRIMapping : IRIMappingStack) { + final IRI mapping = IRIMapping.map.get(prefix); if (mapping != null) { return mapping; } @@ -325,53 +325,53 @@ public class RDFa11Parser { * @return list of resolved URIs. * @throws URISyntaxException if there is an error processing CURIE or URL */ - protected URI[] resolveCurieOrURIList(Node n, String curieOrURIList, boolean termAllowed) + protected IRI[] resolveCIRIeOrIRIList(Node n, String curieOrIRIList, boolean termAllowed) throws URISyntaxException { - if(curieOrURIList == null || curieOrURIList.trim().length() == 0) return new URI[0]; - - final String[] curieOrURIListParts = curieOrURIList.split("\\s"); - final List<URI> result = new ArrayList<URI>(); - Resource curieOrURI; - for(String curieORURIListPart : curieOrURIListParts) { - curieOrURI = resolveCURIEOrURI(curieORURIListPart, termAllowed); - if(curieOrURI != null && curieOrURI instanceof URI) { - result.add((URI) curieOrURI); + if(curieOrIRIList == null || curieOrIRIList.trim().length() == 0) return new IRI[0]; + + final String[] curieOrIRIListParts = curieOrIRIList.split("\\s"); + final List<IRI> result = new ArrayList<IRI>(); + Resource curieOrIRI; + for(String curieORIRIListPart : curieOrIRIListParts) { + curieOrIRI = resolveCURIEOrIRI(curieORIRIListPart, termAllowed); + if(curieOrIRI != null && curieOrIRI instanceof IRI) { + result.add((IRI) curieOrIRI); } else { - reportError(n, String.format("Invalid CURIE '%s' : expected URI, found BNode.", curieORURIListPart)); + reportError(n, String.format("Invalid CURIE '%s' : expected IRI, found BNode.", curieORIRIListPart)); } } - return result.toArray(new URI[result.size()]); + return result.toArray(new IRI[result.size()]); } /** - * Resolves a URI string as URI. + * Resolves a IRI string as IRI. * - * @param uriStr (partial) URI string to be resolved. - * @return the resolved URI. + * @param IRIStr (partial) IRI string to be resolved. + * @return the resolved IRI. */ - protected URI resolveURI(String uriStr) { + protected IRI resolveIRI(String IRIStr) { return - isAbsoluteURI(uriStr) + isAbsoluteIRI(IRIStr) ? - RDFUtils.uri(uriStr) + RDFUtils.iri(IRIStr) : - RDFUtils.uri( this.documentBase.toExternalForm(), uriStr ); + RDFUtils.iri( this.documentBase.toExternalForm(), IRIStr ); } /** - * Resolves a <i>CURIE</i> or <i>URI</i> string. + * Resolves a <i>CURIE</i> or <i>IRI</i> string. * - * @param curieOrURI + * @param curieOrIRI * @param termAllowed if <code>true</code> the resolution can be a term. * @return the resolved resource. */ - protected Resource resolveCURIEOrURI(String curieOrURI, boolean termAllowed) { - if( isCURIE(curieOrURI) ) { - return resolveNamespacedURI(curieOrURI.substring(1, curieOrURI.length() - 1), ResolutionPolicy.NSRequired); + protected Resource resolveCURIEOrIRI(String curieOrIRI, boolean termAllowed) { + if( isCURIE(curieOrIRI) ) { + return resolveNamespacedIRI(curieOrIRI.substring(1, curieOrIRI.length() - 1), ResolutionPolicy.NSRequired); } - if(isAbsoluteURI(curieOrURI)) return resolveURI(curieOrURI); - return resolveNamespacedURI( - curieOrURI, + if(isAbsoluteIRI(curieOrIRI)) return resolveIRI(curieOrIRI); + return resolveNamespacedIRI( + curieOrIRI, termAllowed ? ResolutionPolicy.TermAllowed : ResolutionPolicy.NSNotRequired ); } @@ -410,16 +410,16 @@ public class RDFa11Parser { * Pushes a new vocabulary definition. * * @param currentNode node proving the vocabulary. - * @param vocab the vocabulary URI. + * @param vocab the vocabulary IRI. */ - private void pushVocabulary(Node currentNode, URI vocab) { + private void pushVocabulary(Node currentNode, IRI vocab) { vocabularyStack.push( new Vocabulary(currentNode, vocab) ); } /** * @return the current peek vocabulary. */ - private URI getVocabulary() { + private IRI getVocabulary() { if(vocabularyStack.isEmpty()) return null; return vocabularyStack.peek().prefix; } @@ -465,7 +465,7 @@ public class RDFa11Parser { ); final int[] errorLocation = DomUtils.getNodeLocation(n); this.issueReport.notifyIssue( - IssueReport.IssueLevel.Warning, + IssueReport.IssueLevel.WARNING, errorMsg, errorLocation == null ? -1 : errorLocation[0], errorLocation == null ? -1 : errorLocation[1] @@ -514,7 +514,7 @@ public class RDFa11Parser { * @param o * @param extractionResult */ - private void writeTriple(Resource s, URI p, Value o, ExtractionResult extractionResult) { + private void writeTriple(Resource s, IRI p, Value o, ExtractionResult extractionResult) { // if(logger.isTraceEnabled()) logger.trace(String.format("writeTriple(%s %s %s)" , s, p, o)); assert s != null : "subject is null."; assert p != null : "predicate is null."; @@ -548,7 +548,7 @@ public class RDFa11Parser { // RDFa1.0[5.5.2] / RDFa1.1[7.5.4] //Node currentElement = node; - updateURIMapping(currentElement); + updateIRIMapping(currentElement); // RDFa1.0[5.5.3] / RDFa1.1[7.5.5] updateLanguage(currentElement, currentEvaluationContext); @@ -566,7 +566,7 @@ public class RDFa11Parser { /* if(currentEvaluationContext.newSubject == null) { - currentEvaluationContext.newSubject = resolveURI(documentBase.toExternalForm()); + currentEvaluationContext.newSubject = resolveIRI(documentBase.toExternalForm()); } assert currentEvaluationContext.newSubject != null : "newSubject must be not null."; */ @@ -574,16 +574,16 @@ public class RDFa11Parser { if(logger.isDebugEnabled()) logger.debug("newSubject: " + currentEvaluationContext.newSubject); // RDFa1.0[5.5.6] / RDFa1.1[7.5.8] - final URI[] types = getTypes(currentElement); - for(URI type : types) { + final IRI[] types = getTypes(currentElement); + for(IRI type : types) { writeTriple(currentEvaluationContext.newSubject, RDF.TYPE, type, extractionResult); } // RDFa1.0[5.5.7] / RDFa1.1[7.5.9] - final URI[] rels = getRels(currentElement); - final URI[] revs = getRevs(currentElement); + final IRI[] rels = getRels(currentElement); + final IRI[] revs = getRevs(currentElement); if(currentEvaluationContext.currentObjectResource != null) { - for (URI rel : rels) { + for (IRI rel : rels) { writeTriple( currentEvaluationContext.newSubject, rel, @@ -591,7 +591,7 @@ public class RDFa11Parser { extractionResult ); } - for (URI rev : revs) { + for (IRI rev : revs) { writeTriple( currentEvaluationContext.currentObjectResource, rev, @@ -599,7 +599,7 @@ public class RDFa11Parser { ); } } else { // RDFa1.0[5.5.8] / RDFa1.1[7.5.10] - for(URI rel : rels) { + for(IRI rel : rels) { listOfIncompleteTriples.add( new IncompleteTriple( currentElement, @@ -609,7 +609,7 @@ public class RDFa11Parser { ) ); } - for(URI rev : revs) { + for(IRI rev : revs) { listOfIncompleteTriples.add( new IncompleteTriple( currentElement, @@ -623,9 +623,9 @@ public class RDFa11Parser { // RDFa1.0[5.5.9] / RDFa1.1[7.5.11] final Value currentObject = getCurrentObject(currentElement); - final URI[] predicates = getPredicate(currentElement); + final IRI[] predicates = getPredicate(currentElement); if (currentObject != null && predicates != null) { - for (URI predicate : predicates) { + for (IRI predicate : predicates) { writeTriple(currentEvaluationContext.newSubject, predicate, currentObject, extractionResult); } } @@ -673,7 +673,7 @@ public class RDFa11Parser { } /** - * Extract URI namespaces (prefixes) from the current node. + * Extract IRI namespaces (prefixes) from the current node. * * @param node * @param prefixMapList @@ -683,27 +683,27 @@ public class RDFa11Parser { if(prefixAttribute == null) return; final String[] prefixParts = extractPrefixSections(prefixAttribute); for(String prefixPart : prefixParts) { - int splitPoint = prefixPart.indexOf(URI_PREFIX_SEPARATOR); + int splitPoint = prefixPart.indexOf(IRI_PREFIX_SEPARATOR); final String prefix = prefixPart.substring(0, splitPoint); if(prefix.length() == 0) { reportError(node, String.format("Invalid prefix length in prefix attribute '%s'", prefixAttribute)); continue; } - final URI uri; - final String uriStr = prefixPart.substring(splitPoint + 1); + final IRI IRI; + final String IRIStr = prefixPart.substring(splitPoint + 1); try { - uri = resolveURI(uriStr); + IRI = resolveIRI(IRIStr); } catch (Exception e) { reportError( node, String.format( - "Resolution of prefix '%s' defines an invalid URI: '%s'", - prefixAttribute, uriStr + "Resolution of prefix '%s' defines an invalid IRI: '%s'", + prefixAttribute, IRIStr ) ); continue; } - prefixMapList.add( new PrefixMap(prefix, uri) ); + prefixMapList.add( new PrefixMap(prefix, IRI) ); } } @@ -728,17 +728,17 @@ public class RDFa11Parser { */ private void establishNewSubject(Node node, EvaluationContext currentEvaluationContext) throws URISyntaxException { - String candidateURIOrCURIE; + String candidateIRIOrCURIE; for(String subjectAttribute : SUBJECT_ATTRIBUTES) { - candidateURIOrCURIE = DomUtils.readAttribute(node, subjectAttribute, null); - if(candidateURIOrCURIE != null) { - currentEvaluationContext.newSubject = resolveCURIEOrURI(candidateURIOrCURIE, false); + candidateIRIOrCURIE = DomUtils.readAttribute(node, subjectAttribute, null); + if(candidateIRIOrCURIE != null) { + currentEvaluationContext.newSubject = resolveCURIEOrIRI(candidateIRIOrCURIE, false); return; } } if(node.getNodeName().equalsIgnoreCase(HEAD_TAG) || node.getNodeName().equalsIgnoreCase(BODY_TAG)) { - currentEvaluationContext.newSubject = resolveURI(currentEvaluationContext.base.toString()); + currentEvaluationContext.newSubject = resolveIRI(currentEvaluationContext.base.toString()); return; } @@ -770,17 +770,17 @@ public class RDFa11Parser { private void establishNewSubjectCurrentObjectResource(Node node, EvaluationContext currentEvaluationContext) throws URISyntaxException { // Subject. - String candidateURIOrCURIE; - candidateURIOrCURIE = DomUtils.readAttribute(node, ABOUT_ATTRIBUTE, null); - if(candidateURIOrCURIE != null) { - currentEvaluationContext.newSubject = resolveCURIEOrURI(candidateURIOrCURIE, false); + String candidateIRIOrCURIE; + candidateIRIOrCURIE = DomUtils.readAttribute(node, ABOUT_ATTRIBUTE, null); + if(candidateIRIOrCURIE != null) { + currentEvaluationContext.newSubject = resolveCURIEOrIRI(candidateIRIOrCURIE, false); } else { - candidateURIOrCURIE = DomUtils.readAttribute(node, SRC_ATTRIBUTE, null); - if (candidateURIOrCURIE != null) { - currentEvaluationContext.newSubject = resolveURI(candidateURIOrCURIE); + candidateIRIOrCURIE = DomUtils.readAttribute(node, SRC_ATTRIBUTE, null); + if (candidateIRIOrCURIE != null) { + currentEvaluationContext.newSubject = resolveIRI(candidateIRIOrCURIE); } else { if (node.getNodeName().equalsIgnoreCase(HEAD_TAG) || node.getNodeName().equalsIgnoreCase(BODY_TAG)) { - currentEvaluationContext.newSubject = resolveURI(currentEvaluationContext.base.toString()); + currentEvaluationContext.newSubject = resolveIRI(currentEvaluationContext.base.toString()); } else { if (DomUtils.hasAttribute(node, TYPEOF_ATTRIBUTE)) { currentEvaluationContext.newSubject = RDFUtils.bnode(); @@ -794,39 +794,39 @@ public class RDFa11Parser { } // Object. - candidateURIOrCURIE = DomUtils.readAttribute(node, RESOURCE_ATTRIBUTE, null); - if(candidateURIOrCURIE != null) { - currentEvaluationContext.currentObjectResource = resolveCURIEOrURI(candidateURIOrCURIE, false); + candidateIRIOrCURIE = DomUtils.readAttribute(node, RESOURCE_ATTRIBUTE, null); + if(candidateIRIOrCURIE != null) { + currentEvaluationContext.currentObjectResource = resolveCURIEOrIRI(candidateIRIOrCURIE, false); return; } - candidateURIOrCURIE = DomUtils.readAttribute(node, HREF_ATTRIBUTE, null); - if(candidateURIOrCURIE != null) { - currentEvaluationContext.currentObjectResource = resolveURI(candidateURIOrCURIE); + candidateIRIOrCURIE = DomUtils.readAttribute(node, HREF_ATTRIBUTE, null); + if(candidateIRIOrCURIE != null) { + currentEvaluationContext.currentObjectResource = resolveIRI(candidateIRIOrCURIE); return; } currentEvaluationContext.currentObjectResource = null; } - private URI[] getTypes(Node node) throws URISyntaxException { + private IRI[] getTypes(Node node) throws URISyntaxException { final String typeOf = DomUtils.readAttribute(node, TYPEOF_ATTRIBUTE, null); - return resolveCurieOrURIList(node, typeOf, true); + return resolveCIRIeOrIRIList(node, typeOf, true); } - private URI[] getRels(Node node) throws URISyntaxException { + private IRI[] getRels(Node node) throws URISyntaxException { final String rel = DomUtils.readAttribute(node, REL_ATTRIBUTE, null); - return resolveCurieOrURIList(node, rel, true); + return resolveCIRIeOrIRIList(node, rel, true); } - private URI[] getRevs(Node node) throws URISyntaxException { + private IRI[] getRevs(Node node) throws URISyntaxException { final String rev = DomUtils.readAttribute(node, REV_ATTRIBUTE, null); - return resolveCurieOrURIList(node, rev, true); + return resolveCIRIeOrIRIList(node, rev, true); } - private URI[] getPredicate(Node node) throws URISyntaxException { - final String candidateURI = DomUtils.readAttribute(node, PROPERTY_ATTRIBUTE, null); - if(candidateURI == null) return null; - return resolveCurieOrURIList(node, candidateURI, true); + private IRI[] getPredicate(Node node) throws URISyntaxException { + final String candidateIRI = DomUtils.readAttribute(node, PROPERTY_ATTRIBUTE, null); + if(candidateIRI == null) return null; + return resolveCIRIeOrIRIList(node, candidateIRI, true); } /** @@ -843,7 +843,7 @@ public class RDFa11Parser { throws URISyntaxException, IOException, TransformerException { final String candidateObject = DomUtils.readAttribute(node, HREF_ATTRIBUTE, null); if(candidateObject != null) { - return resolveURI(candidateObject); + return resolveIRI(candidateObject); } else { return gerCurrentObjectLiteral(node); } @@ -888,39 +888,39 @@ public class RDFa11Parser { if (datatype == null || datatype.trim().length() == 0 || XML_LITERAL_DATATYPE.equals(datatype.trim()) ) { return null; } - final Resource curieOrURI = resolveCURIEOrURI(datatype, true); - return RDFUtils.literal(getNodeContent(node), curieOrURI instanceof URI ? (URI) curieOrURI : null); + final Resource curieOrIRI = resolveCURIEOrIRI(datatype, true); + return RDFUtils.literal(getNodeContent(node), curieOrIRI instanceof IRI ? (IRI) curieOrIRI : null); } private void pushMappings(Node sourceNode, List<PrefixMap> prefixMapList) { // logger.trace("pushMappings()"); - final Map<String, URI> mapping = new HashMap<String, URI>(); + final Map<String, IRI> mapping = new HashMap<String, IRI>(); for (PrefixMap prefixMap : prefixMapList) { - mapping.put(prefixMap.prefix, prefixMap.uri); + mapping.put(prefixMap.prefix, prefixMap.IRI); } - uriMappingStack.push( new URIMapping(sourceNode, mapping) ); + IRIMappingStack.push( new IRIMapping(sourceNode, mapping) ); } private void popMappings(Node node) { - if(uriMappingStack.isEmpty()) return; - final URIMapping peek = uriMappingStack.peek(); + if(IRIMappingStack.isEmpty()) return; + final IRIMapping peek = IRIMappingStack.peek(); if( ! DomUtils.isAncestorOf(peek.sourceNode, node) ) { // logger.trace("popMappings()"); - uriMappingStack.pop(); + IRIMappingStack.pop(); } } /** - * Resolve a namespaced URI, if <code>safe</code> is <code>true</code> + * Resolve a namespaced IRI, if <code>safe</code> is <code>true</code> * then the mapping must define a prefix, otherwise it is considered relative. * * @param mapping * @param resolutionPolicy * @return */ - private Resource resolveNamespacedURI(String mapping, ResolutionPolicy resolutionPolicy) { - if(mapping.indexOf(URI_PATH_SEPARATOR) == 0) { // Begins with '/' + private Resource resolveNamespacedIRI(String mapping, ResolutionPolicy resolutionPolicy) { + if(mapping.indexOf(IRI_PATH_SEPARATOR) == 0) { // Begins with '/' mapping = mapping.substring(1); } @@ -932,17 +932,17 @@ public class RDFa11Parser { ); } if (resolutionPolicy == ResolutionPolicy.TermAllowed) { - final URI currentVocabulary = getVocabulary(); + final IRI currentVocabulary = getVocabulary(); // Mapping is a TERM. if (currentVocabulary != null) { - return resolveURI(currentVocabulary.toString() + mapping); + return resolveIRI(currentVocabulary.toString() + mapping); } } - return resolveURI(documentBase.toString() + mapping); + return resolveIRI(documentBase.toString() + mapping); } final String prefix = mapping.substring(0, prefixSeparatorIndex); - final URI curieMapping = getMapping(prefix); + final IRI curieMapping = getMapping(prefix); if(curieMapping == null) { throw new IllegalArgumentException( String.format("Cannot map prefix '%s'", prefix) ); } @@ -950,10 +950,10 @@ public class RDFa11Parser { final java.net.URI candidateCURIE; try { candidateCURIE = new java.net.URI(candidateCURIEStr); - } catch (URISyntaxException urise) { + } catch (URISyntaxException IRIse) { throw new IllegalArgumentException(String.format("Invalid CURIE '%s'", candidateCURIEStr) ); } - return resolveURI( + return resolveIRI( candidateCURIE.isAbsolute() ? candidateCURIE.toString() @@ -963,7 +963,7 @@ public class RDFa11Parser { } /** - * The resolution policy provided to the method {@link #resolveNamespacedURI(String, ResolutionPolicy)}. + * The resolution policy provided to the method {@link #resolveNamespacedIRI(String, ResolutionPolicy)}. */ enum ResolutionPolicy { NSNotRequired, @@ -992,7 +992,7 @@ public class RDFa11Parser { */ EvaluationContext(URL base) { this.base = base; - this.parentSubject = resolveURI( base.toExternalForm() ); + this.parentSubject = resolveIRI( base.toExternalForm() ); this.parentObject = null; this.language = null; this.recourse = true; @@ -1007,21 +1007,21 @@ public class RDFa11Parser { */ private class PrefixMap { final String prefix; - final URI uri; - public PrefixMap(String prefix, URI uri) { + final IRI IRI; + public PrefixMap(String prefix, IRI IRI) { this.prefix = prefix; - this.uri = uri; + this.IRI = IRI; } } /** - * Defines a URI mapping. + * Defines a IRI mapping. */ - private class URIMapping { + private class IRIMapping { final Node sourceNode; - final Map<String, URI> map; + final Map<String, IRI> map; - public URIMapping(Node sourceNode, Map<String, URI> map) { + public IRIMapping(Node sourceNode, Map<String, IRI> map) { this.sourceNode = sourceNode; this.map = map; } @@ -1041,13 +1041,13 @@ public class RDFa11Parser { private class IncompleteTriple { final Node originatingNode; final Resource subject; - final URI predicate; + final IRI predicate; final IncompleteTripleDirection direction; public IncompleteTriple( Node originatingNode, Resource subject, - URI predicate, + IRI predicate, IncompleteTripleDirection direction ) { if(originatingNode == null || subject == null || predicate == null || direction == null) @@ -1082,9 +1082,9 @@ public class RDFa11Parser { */ private class Vocabulary { final Node originatingNode; - final URI prefix; + final IRI prefix; - public Vocabulary(Node originatingNode, URI prefix) { + public Vocabulary(Node originatingNode, IRI prefix) { this.originatingNode = originatingNode; this.prefix = prefix; }
http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/extractor/rdfa/RDFaExtractor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/extractor/rdfa/RDFaExtractor.java b/core/src/main/java/org/apache/any23/extractor/rdfa/RDFaExtractor.java index fc11ba8..615b16f 100644 --- a/core/src/main/java/org/apache/any23/extractor/rdfa/RDFaExtractor.java +++ b/core/src/main/java/org/apache/any23/extractor/rdfa/RDFaExtractor.java @@ -22,7 +22,7 @@ import org.apache.any23.extractor.ExtractionResult; import org.apache.any23.extractor.ExtractorDescription; import org.apache.any23.extractor.rdf.BaseRDFExtractor; import org.apache.any23.extractor.rdf.RDFParserFactory; -import org.openrdf.rio.RDFParser; +import org.eclipse.rdf4j.rio.RDFParser; /** * {@link org.apache.any23.extractor.Extractor} implementation for http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/extractor/rdfa/XSLTStylesheet.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/extractor/rdfa/XSLTStylesheet.java b/core/src/main/java/org/apache/any23/extractor/rdfa/XSLTStylesheet.java index 7012b78..4a41089 100644 --- a/core/src/main/java/org/apache/any23/extractor/rdfa/XSLTStylesheet.java +++ b/core/src/main/java/org/apache/any23/extractor/rdfa/XSLTStylesheet.java @@ -88,7 +88,7 @@ public class XSLTStylesheet { log.error("------ BEGIN XSLT Transformer Exception ------"); log.error("Exception in XSLT Stylesheet transformation.", te); log.error("Input DOM node:", document); - log.error("Input DOM node getBaseURI:", document.getBaseURI()); + log.error("Input DOM node getBaseIRI:", document.getBaseURI()); log.error("Output writer:", output); log.error("------ END XSLT Transformer Exception ------"); throw new XSLTStylesheetException(" An error occurred during the XSLT transformation", te); http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/extractor/xpath/QuadTemplate.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/extractor/xpath/QuadTemplate.java b/core/src/main/java/org/apache/any23/extractor/xpath/QuadTemplate.java index 57a7b68..8fef9b1 100644 --- a/core/src/main/java/org/apache/any23/extractor/xpath/QuadTemplate.java +++ b/core/src/main/java/org/apache/any23/extractor/xpath/QuadTemplate.java @@ -18,9 +18,9 @@ package org.apache.any23.extractor.xpath; import org.apache.any23.extractor.ExtractionResult; -import org.openrdf.model.Resource; -import org.openrdf.model.URI; -import org.openrdf.model.Value; +import org.eclipse.rdf4j.model.Resource; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Value; import java.util.Map; @@ -116,10 +116,10 @@ public class QuadTemplate { */ public void printOut(ExtractionResult er, Map<String,String> variableAssignment) { final Resource s = subject.getValue(variableAssignment); - final URI p = predicate.getValue(variableAssignment); + final IRI p = predicate.getValue(variableAssignment); final Value o = object.getValue(variableAssignment); if(graph != null) { - final URI g = graph.getValue(variableAssignment); + final IRI g = graph.getValue(variableAssignment); er.writeTriple(s, p, o, g); } else { er.writeTriple(s, p, o); http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/extractor/xpath/TemplateGraph.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/extractor/xpath/TemplateGraph.java b/core/src/main/java/org/apache/any23/extractor/xpath/TemplateGraph.java index 420976b..851af01 100644 --- a/core/src/main/java/org/apache/any23/extractor/xpath/TemplateGraph.java +++ b/core/src/main/java/org/apache/any23/extractor/xpath/TemplateGraph.java @@ -17,15 +17,15 @@ package org.apache.any23.extractor.xpath; -import org.openrdf.model.URI; -import org.openrdf.model.impl.URIImpl; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; /** - * Represents an <i>Quad</i> graph <i>URI template</i>. + * Represents an <i>Quad</i> graph <i>IRI template</i>. * * @author Michele Mostarda ([email protected]) */ -public class TemplateGraph extends Term<URI> { +public class TemplateGraph extends Term<IRI> { /** * Constructor. @@ -39,8 +39,8 @@ public class TemplateGraph extends Term<URI> { } @Override - protected URI getValueInternal(String value) { - return new URIImpl(value); + protected IRI getValueInternal(String value) { + return SimpleValueFactory.getInstance().createIRI(value); } @Override http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/extractor/xpath/TemplateObject.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/extractor/xpath/TemplateObject.java b/core/src/main/java/org/apache/any23/extractor/xpath/TemplateObject.java index a8f95a3..d9156a5 100644 --- a/core/src/main/java/org/apache/any23/extractor/xpath/TemplateObject.java +++ b/core/src/main/java/org/apache/any23/extractor/xpath/TemplateObject.java @@ -17,10 +17,9 @@ package org.apache.any23.extractor.xpath; -import org.openrdf.model.Value; -import org.openrdf.model.impl.BNodeImpl; -import org.openrdf.model.impl.LiteralImpl; -import org.openrdf.model.impl.ValueFactoryImpl; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.model.impl.BNodeImpl; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; /** * Represents a <i>Quad</i> object <i>template</i>. @@ -64,17 +63,17 @@ public class TemplateObject extends Term { switch (type) { case uri: try { - return ValueFactoryImpl.getInstance().createURI(value); + return SimpleValueFactory.getInstance().createIRI(value); } catch (IllegalArgumentException iae) { throw new IllegalArgumentException( - String.format("Expected a valid URI for object template, found '%s'", value), + String.format("Expected a valid IRI for object template, found '%s'", value), iae ); } case bnode: - return new BNodeImpl(value); + return SimpleValueFactory.getInstance().createBNode(value); case literal: - return new LiteralImpl(value); + return SimpleValueFactory.getInstance().createLiteral(value); default: throw new IllegalStateException(); } http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/extractor/xpath/TemplatePredicate.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/extractor/xpath/TemplatePredicate.java b/core/src/main/java/org/apache/any23/extractor/xpath/TemplatePredicate.java index ad8cf20..28d93ac 100644 --- a/core/src/main/java/org/apache/any23/extractor/xpath/TemplatePredicate.java +++ b/core/src/main/java/org/apache/any23/extractor/xpath/TemplatePredicate.java @@ -17,15 +17,15 @@ package org.apache.any23.extractor.xpath; -import org.openrdf.model.URI; -import org.openrdf.model.impl.ValueFactoryImpl; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; /** * Represents a <i>Quad</i> predicate <i>template</i>. * * @author Michele Mostarda ([email protected]) */ -public class TemplatePredicate extends Term<URI> { +public class TemplatePredicate extends Term<IRI> { /** * Constructor. @@ -39,12 +39,12 @@ public class TemplatePredicate extends Term<URI> { } @Override - protected URI getValueInternal(String value) { + protected IRI getValueInternal(String value) { try { - return ValueFactoryImpl.getInstance().createURI(value); + return SimpleValueFactory.getInstance().createIRI(value); } catch (IllegalArgumentException iae) { throw new IllegalArgumentException( - String.format("Expected a valid URI for predicate template, found '%s'", value), + String.format("Expected a valid IRI for predicate template, found '%s'", value), iae ); } http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/extractor/xpath/TemplateSubject.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/extractor/xpath/TemplateSubject.java b/core/src/main/java/org/apache/any23/extractor/xpath/TemplateSubject.java index 5094f36..a4ce270 100644 --- a/core/src/main/java/org/apache/any23/extractor/xpath/TemplateSubject.java +++ b/core/src/main/java/org/apache/any23/extractor/xpath/TemplateSubject.java @@ -17,9 +17,9 @@ package org.apache.any23.extractor.xpath; -import org.openrdf.model.Resource; -import org.openrdf.model.impl.BNodeImpl; -import org.openrdf.model.impl.URIImpl; +import org.eclipse.rdf4j.model.Resource; +import org.eclipse.rdf4j.model.impl.BNodeImpl; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; /** * Represents a <i>Quad</i> subject <i>template</i>. @@ -61,9 +61,9 @@ public class TemplateSubject extends Term<Resource> { protected Resource getValueInternal(String value) { switch (type) { case uri: - return new URIImpl(value); + return SimpleValueFactory.getInstance().createIRI(value); case bnode: - return new BNodeImpl(value); + return SimpleValueFactory.getInstance().createBNode(value); default: throw new IllegalStateException(); } http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/extractor/xpath/TemplateXPathExtractionRuleImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/extractor/xpath/TemplateXPathExtractionRuleImpl.java b/core/src/main/java/org/apache/any23/extractor/xpath/TemplateXPathExtractionRuleImpl.java index 0271585..c66d1fb 100644 --- a/core/src/main/java/org/apache/any23/extractor/xpath/TemplateXPathExtractionRuleImpl.java +++ b/core/src/main/java/org/apache/any23/extractor/xpath/TemplateXPathExtractionRuleImpl.java @@ -19,7 +19,7 @@ package org.apache.any23.extractor.xpath; import org.apache.any23.extractor.ExtractionResult; import org.apache.any23.extractor.html.DomUtils; -import org.openrdf.model.URI; +import org.eclipse.rdf4j.model.IRI; import org.w3c.dom.Document; import java.util.ArrayList; @@ -91,7 +91,7 @@ public class TemplateXPathExtractionRuleImpl implements TemplateXPathExtractionR return name; } - public boolean acceptURI(URI uri) { + public boolean acceptIRI(IRI uri) { if(uriRegexPattern == null) { return true; } http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/extractor/xpath/Term.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/extractor/xpath/Term.java b/core/src/main/java/org/apache/any23/extractor/xpath/Term.java index a0bcead..c6e1382 100644 --- a/core/src/main/java/org/apache/any23/extractor/xpath/Term.java +++ b/core/src/main/java/org/apache/any23/extractor/xpath/Term.java @@ -17,7 +17,7 @@ package org.apache.any23.extractor.xpath; -import org.openrdf.model.Value; +import org.eclipse.rdf4j.model.Value; import java.util.Map; http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/extractor/xpath/XPathExtractionRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/extractor/xpath/XPathExtractionRule.java b/core/src/main/java/org/apache/any23/extractor/xpath/XPathExtractionRule.java index a4bb7bc..9ff2325 100644 --- a/core/src/main/java/org/apache/any23/extractor/xpath/XPathExtractionRule.java +++ b/core/src/main/java/org/apache/any23/extractor/xpath/XPathExtractionRule.java @@ -18,7 +18,7 @@ package org.apache.any23.extractor.xpath; import org.apache.any23.extractor.ExtractionResult; -import org.openrdf.model.URI; +import org.eclipse.rdf4j.model.IRI; import org.w3c.dom.Document; @@ -35,12 +35,12 @@ public interface XPathExtractionRule { String getName(); /** - * Checks if the rule can be applied on the given document <i>URI</i>. + * Checks if the rule can be applied on the given document <i>IRI</i>. * - * @param uri input document URI. + * @param uri input document IRI. * @return <code>true</code> if applied, <code>false</code> otherwise. */ - boolean acceptURI(URI uri); + boolean acceptIRI(IRI uri); /** * Processes this extraction rule on the given document. http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/extractor/xpath/XPathExtractor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/extractor/xpath/XPathExtractor.java b/core/src/main/java/org/apache/any23/extractor/xpath/XPathExtractor.java index b580afa..b04533c 100644 --- a/core/src/main/java/org/apache/any23/extractor/xpath/XPathExtractor.java +++ b/core/src/main/java/org/apache/any23/extractor/xpath/XPathExtractor.java @@ -23,7 +23,7 @@ import org.apache.any23.extractor.ExtractionParameters; import org.apache.any23.extractor.ExtractionResult; import org.apache.any23.extractor.Extractor; import org.apache.any23.extractor.ExtractorDescription; -import org.openrdf.model.URI; +import org.eclipse.rdf4j.model.IRI; import org.w3c.dom.Document; import java.io.IOException; @@ -68,9 +68,9 @@ public class XPathExtractor implements Extractor.TagSoupDOMExtractor { ExtractionResult out ) throws IOException, ExtractionException { - final URI documentURI = extractionContext.getDocumentURI(); + final IRI documentIRI = extractionContext.getDocumentIRI(); for(XPathExtractionRule rule : xPathExtractionRules) { - if(rule.acceptURI(documentURI)) { + if(rule.acceptIRI(documentIRI)) { rule.process(in, out); } } http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/filter/ExtractionContextBlocker.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/filter/ExtractionContextBlocker.java b/core/src/main/java/org/apache/any23/filter/ExtractionContextBlocker.java index bac8876..16d8378 100644 --- a/core/src/main/java/org/apache/any23/filter/ExtractionContextBlocker.java +++ b/core/src/main/java/org/apache/any23/filter/ExtractionContextBlocker.java @@ -20,9 +20,9 @@ package org.apache.any23.filter; import org.apache.any23.extractor.ExtractionContext; import org.apache.any23.writer.TripleHandler; import org.apache.any23.writer.TripleHandlerException; -import org.openrdf.model.Resource; -import org.openrdf.model.URI; -import org.openrdf.model.Value; +import org.eclipse.rdf4j.model.Resource; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Value; import java.util.ArrayList; import java.util.HashMap; @@ -73,8 +73,8 @@ public class ExtractionContextBlocker implements TripleHandler { } } - public synchronized void startDocument(URI documentURI) throws TripleHandlerException { - wrapped.startDocument(documentURI); + public synchronized void startDocument(IRI documentIRI) throws TripleHandlerException { + wrapped.startDocument(documentIRI); documentBlocked = true; } @@ -98,7 +98,7 @@ public class ExtractionContextBlocker implements TripleHandler { } } - public synchronized void receiveTriple(Resource s, URI p, Value o, URI g, ExtractionContext context) + public synchronized void receiveTriple(Resource s, IRI p, Value o, IRI g, ExtractionContext context) throws TripleHandlerException { try { contextQueues.get(context.getUniqueID()).receiveTriple(s, p, o, g); @@ -127,9 +127,9 @@ public class ExtractionContextBlocker implements TripleHandler { wrapped.close(); } - public synchronized void endDocument(URI documentURI) throws TripleHandlerException { + public synchronized void endDocument(IRI documentIRI) throws TripleHandlerException { closeDocument(); - wrapped.endDocument(documentURI); + wrapped.endDocument(documentIRI); } public void setContentLength(long contentLength) { @@ -169,11 +169,11 @@ public class ExtractionContextBlocker implements TripleHandler { private final List<Resource> subjects = new ArrayList<Resource>(); - private final List<URI> predicates = new ArrayList<URI>(); + private final List<IRI> predicates = new ArrayList<IRI>(); private final List<Value> objects = new ArrayList<Value>(); - private final List<URI> graphs = new ArrayList<URI>(); + private final List<IRI> graphs = new ArrayList<IRI>(); private final List<String> prefixes = new ArrayList<String>(); @@ -187,7 +187,7 @@ public class ExtractionContextBlocker implements TripleHandler { this.context = context; } - void receiveTriple(Resource s, URI p, Value o, URI g) throws ValvedTriplePipeException { + void receiveTriple(Resource s, IRI p, Value o, IRI g) throws ValvedTriplePipeException { if (blocked) { subjects.add(s); predicates.add(p); @@ -233,7 +233,7 @@ public class ExtractionContextBlocker implements TripleHandler { } } - private void sendTriple(Resource s, URI p, Value o, URI g) throws ValvedTriplePipeException { + private void sendTriple(Resource s, IRI p, Value o, IRI g) throws ValvedTriplePipeException { if (!hasReceivedTriples) { try { wrapped.openContext(context); http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/filter/IgnoreAccidentalRDFa.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/filter/IgnoreAccidentalRDFa.java b/core/src/main/java/org/apache/any23/filter/IgnoreAccidentalRDFa.java index 9c14744..a06c8b8 100644 --- a/core/src/main/java/org/apache/any23/filter/IgnoreAccidentalRDFa.java +++ b/core/src/main/java/org/apache/any23/filter/IgnoreAccidentalRDFa.java @@ -18,14 +18,13 @@ package org.apache.any23.filter; import org.apache.any23.extractor.ExtractionContext; -import org.apache.any23.extractor.rdfa.RDFaExtractor; import org.apache.any23.extractor.rdfa.RDFaExtractorFactory; import org.apache.any23.vocab.XHTML; import org.apache.any23.writer.TripleHandler; import org.apache.any23.writer.TripleHandlerException; -import org.openrdf.model.Resource; -import org.openrdf.model.URI; -import org.openrdf.model.Value; +import org.eclipse.rdf4j.model.Resource; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Value; /** * A {@link TripleHandler} that suppresses output of the RDFa @@ -59,8 +58,8 @@ public class IgnoreAccidentalRDFa implements TripleHandler { this(wrapped, false); } - public void startDocument(URI documentURI) throws TripleHandlerException { - blocker.startDocument(documentURI); + public void startDocument(IRI documentIRI) throws TripleHandlerException { + blocker.startDocument(documentIRI); } public void openContext(ExtractionContext context) throws TripleHandlerException { @@ -70,7 +69,7 @@ public class IgnoreAccidentalRDFa implements TripleHandler { } } - public void receiveTriple(Resource s, URI p, Value o, URI g, ExtractionContext context) + public void receiveTriple(Resource s, IRI p, Value o, IRI g, ExtractionContext context) throws TripleHandlerException { // Suppress stylesheet triples. if(alwaysSuppressCSSTriples && p.stringValue().equals(vXHTML.stylesheet.stringValue())) { @@ -99,8 +98,8 @@ public class IgnoreAccidentalRDFa implements TripleHandler { return context.getExtractorName().equals(RDFaExtractorFactory.NAME); } - public void endDocument(URI documentURI) throws TripleHandlerException { - blocker.endDocument(documentURI); + public void endDocument(IRI documentIRI) throws TripleHandlerException { + blocker.endDocument(documentIRI); } public void setContentLength(long contentLength) { http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/filter/IgnoreTitlesOfEmptyDocuments.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/filter/IgnoreTitlesOfEmptyDocuments.java b/core/src/main/java/org/apache/any23/filter/IgnoreTitlesOfEmptyDocuments.java index 8c75eb3..eec5669 100644 --- a/core/src/main/java/org/apache/any23/filter/IgnoreTitlesOfEmptyDocuments.java +++ b/core/src/main/java/org/apache/any23/filter/IgnoreTitlesOfEmptyDocuments.java @@ -22,9 +22,9 @@ import org.apache.any23.extractor.html.TitleExtractor; import org.apache.any23.extractor.html.TitleExtractorFactory; import org.apache.any23.writer.TripleHandler; import org.apache.any23.writer.TripleHandlerException; -import org.openrdf.model.Resource; -import org.openrdf.model.URI; -import org.openrdf.model.Value; +import org.eclipse.rdf4j.model.Resource; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Value; /** * A {@link TripleHandler} that suppresses output of the @@ -43,8 +43,8 @@ public class IgnoreTitlesOfEmptyDocuments implements TripleHandler { blocker = new ExtractionContextBlocker(wrapped); } - public void startDocument(URI documentURI) throws TripleHandlerException { - blocker.startDocument(documentURI); + public void startDocument(IRI documentIRI) throws TripleHandlerException { + blocker.startDocument(documentIRI); } public void openContext(ExtractionContext context) throws TripleHandlerException { @@ -54,7 +54,7 @@ public class IgnoreTitlesOfEmptyDocuments implements TripleHandler { } } - public void receiveTriple(Resource s, URI p, Value o, URI g, ExtractionContext context) + public void receiveTriple(Resource s, IRI p, Value o, IRI g, ExtractionContext context) throws TripleHandlerException { if (!isTitleContext(context)) { blocker.unblockDocument(); @@ -79,8 +79,8 @@ public class IgnoreTitlesOfEmptyDocuments implements TripleHandler { return context.getExtractorName().equals(TitleExtractorFactory.NAME); } - public void endDocument(URI documentURI) throws TripleHandlerException { - blocker.endDocument(documentURI); + public void endDocument(IRI documentIRI) throws TripleHandlerException { + blocker.endDocument(documentIRI); } public void setContentLength(long contentLength) { http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/http/DefaultHTTPClient.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/http/DefaultHTTPClient.java b/core/src/main/java/org/apache/any23/http/DefaultHTTPClient.java index c148009..d520441 100644 --- a/core/src/main/java/org/apache/any23/http/DefaultHTTPClient.java +++ b/core/src/main/java/org/apache/any23/http/DefaultHTTPClient.java @@ -29,7 +29,7 @@ import java.util.List; import java.util.regex.Pattern; /** - * Opens an {@link InputStream} on an HTTP URI. Is configured + * Opens an {@link InputStream} on an HTTP IRI. Is configured * with sane values for timeouts, default headers and so on. * * @author Paolo Capriotti @@ -47,7 +47,7 @@ public class DefaultHTTPClient implements HTTPClient { private long _contentLength = -1; - private String actualDocumentURI = null; + private String actualDocumentIRI = null; private String contentType = null; @@ -73,7 +73,7 @@ public class DefaultHTTPClient implements HTTPClient { /** * - * Opens an {@link java.io.InputStream} from a given URI. + * Opens an {@link java.io.InputStream} from a given IRI. * It follows redirects. * * @param uri to be opened @@ -91,7 +91,7 @@ public class DefaultHTTPClient implements HTTPClient { // [scheme:][//authority][path][?query][#fragment] uriStr = uriObj.toString(); } catch (URIException e) { - throw new IllegalArgumentException("Invalid URI string.", e); + throw new IllegalArgumentException("Invalid IRI string.", e); } method = new GetMethod(uriStr); method.setFollowRedirects(true); @@ -104,7 +104,7 @@ public class DefaultHTTPClient implements HTTPClient { "Failed to fetch " + uri + ": " + method.getStatusCode() + " " + method.getStatusText() ); } - actualDocumentURI = method.getURI().toString(); + actualDocumentIRI = method.getURI().toString(); byte[] response = method.getResponseBody(); return new ByteArrayInputStream(response); @@ -126,8 +126,8 @@ public class DefaultHTTPClient implements HTTPClient { return _contentLength; } - public String getActualDocumentURI() { - return actualDocumentURI; + public String getActualDocumentIRI() { + return actualDocumentIRI; } public String getContentType() { http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/http/HTTPClient.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/http/HTTPClient.java b/core/src/main/java/org/apache/any23/http/HTTPClient.java index 93b726b..0bc4dbc 100644 --- a/core/src/main/java/org/apache/any23/http/HTTPClient.java +++ b/core/src/main/java/org/apache/any23/http/HTTPClient.java @@ -22,7 +22,7 @@ import java.io.InputStream; /** * Abstraction for opening an {@link InputStream} on an - * HTTP URI. + * HTTP IRI. * * @author Richard Cyganiak ([email protected]) */ @@ -36,11 +36,11 @@ public interface HTTPClient { public abstract void init(HTTPClientConfiguration configuration); /** - * Opens the input stream for the given target URI. + * Opens the input stream for the given target IRI. * - * @param uri target URI. - * @return input stream to access URI content. - * @throws IOException if any error occurs while reading the URI content. + * @param uri target IRI. + * @return input stream to access IRI content. + * @throws IOException if any error occurs while reading the IRI content. */ public abstract InputStream openInputStream(String uri) throws IOException; @@ -66,13 +66,13 @@ public interface HTTPClient { public abstract long getContentLength(); /** - * Returns the actual URI from which the document was fetched. - * This might differ from the URI passed to openInputStream() + * Returns the actual IRI from which the document was fetched. + * This might differ from the IRI passed to openInputStream() * if a redirect was performed. A return value of <tt>null</tt> - * means that the URI is unchanged and the original URI was used. + * means that the IRI is unchanged and the original IRI was used. * - * @return actual document URI. + * @return actual document IRI. */ - public abstract String getActualDocumentURI(); + public abstract String getActualDocumentIRI(); } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/rdf/Any23ValueFactoryWrapper.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/rdf/Any23ValueFactoryWrapper.java b/core/src/main/java/org/apache/any23/rdf/Any23ValueFactoryWrapper.java index 0f93151..48dd4fc 100644 --- a/core/src/main/java/org/apache/any23/rdf/Any23ValueFactoryWrapper.java +++ b/core/src/main/java/org/apache/any23/rdf/Any23ValueFactoryWrapper.java @@ -17,16 +17,19 @@ package org.apache.any23.rdf; +import java.math.BigDecimal; +import java.math.BigInteger; import java.util.Date; import org.apache.any23.extractor.IssueReport; -import org.openrdf.model.BNode; -import org.openrdf.model.Literal; -import org.openrdf.model.Resource; -import org.openrdf.model.Statement; -import org.openrdf.model.URI; -import org.openrdf.model.Value; -import org.openrdf.model.ValueFactory; +import org.eclipse.rdf4j.model.BNode; +import org.eclipse.rdf4j.model.Literal; +import org.eclipse.rdf4j.model.Resource; +import org.eclipse.rdf4j.model.Statement; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.model.ValueFactory; +import org.eclipse.rdf4j.model.impl.ValueFactoryBase; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -98,7 +101,11 @@ public class Any23ValueFactoryWrapper implements ValueFactory { public Literal createLiteral(String content) { if (content == null) return null; - return wrappedFactory.createLiteral(content, defaultLiteralLanguage); + if (defaultLiteralLanguage == null) { + return wrappedFactory.createLiteral(content); + } else { + return wrappedFactory.createLiteral(content, defaultLiteralLanguage); + } } public Literal createLiteral(boolean b) { @@ -129,6 +136,16 @@ public class Any23ValueFactoryWrapper implements ValueFactory { return wrappedFactory.createLiteral(v); } + @Override + public Literal createLiteral(BigDecimal v) { + return wrappedFactory.createLiteral(v); + } + + @Override + public Literal createLiteral(BigInteger v) { + return wrappedFactory.createLiteral(v); + } + public Literal createLiteral(XMLGregorianCalendar calendar) { return wrappedFactory.createLiteral(calendar); } @@ -138,7 +155,7 @@ public class Any23ValueFactoryWrapper implements ValueFactory { return wrappedFactory.createLiteral(label, language); } - public Literal createLiteral(String pref, URI value) { + public Literal createLiteral(String pref, IRI value) { if (pref == null) return null; return wrappedFactory.createLiteral(pref, value); } @@ -148,26 +165,26 @@ public class Any23ValueFactoryWrapper implements ValueFactory { return wrappedFactory.createLiteral(date); } - public Statement createStatement(Resource sub, URI pre, Value obj) { + public Statement createStatement(Resource sub, IRI pre, Value obj) { if (sub == null || pre == null || obj == null) { return null; } return wrappedFactory.createStatement(sub, pre, obj); } - public Statement createStatement(Resource sub, URI pre, Value obj, Resource context) { + public Statement createStatement(Resource sub, IRI pre, Value obj, Resource context) { if (sub == null || pre == null || obj == null) return null; return wrappedFactory.createStatement(sub, pre, obj, context); } /** * @param uriStr input string to create URI from. - * @return a valid sesame URI or null if any exception occurred + * @return a valid sesame IRI or null if any exception occurred */ - public URI createURI(String uriStr) { + public IRI createIRI(String uriStr) { if (uriStr == null) return null; try { - return wrappedFactory.createURI(RDFUtils.fixURIWithException(uriStr)); + return wrappedFactory.createIRI(RDFUtils.fixIRIWithException(uriStr)); } catch (Exception e) { reportError(e); return null; @@ -175,23 +192,23 @@ public class Any23ValueFactoryWrapper implements ValueFactory { } /** - * @return a valid sesame URI or null if any exception occurred + * @return a valid sesame IRI or null if any exception occurred */ - public URI createURI(String namespace, String localName) { + public IRI createIRI(String namespace, String localName) { if (namespace == null || localName == null) return null; - return wrappedFactory.createURI(RDFUtils.fixURIWithException(namespace), localName); + return wrappedFactory.createIRI(RDFUtils.fixIRIWithException(namespace), localName); } /** - * Fixes typical errors in URIs, and resolves relative URIs against a base URI. + * Fixes typical errors in IRIs, and resolves relative IRIs against a base IRI. * - * @param uri A URI, relative or absolute, can have typical syntax errors - * @param baseURI A base URI to use for resolving relative URIs - * @return An absolute URI, sytnactically valid, or null if not fixable + * @param uri A IRI, relative or absolute, can have typical syntax errors + * @param baseIRI A base IRI to use for resolving relative IRIs + * @return An absolute IRI, sytnactically valid, or null if not fixable */ - public URI resolveURI(String uri, java.net.URI baseURI) { + public IRI resolveIRI(String uri, java.net.URI baseIRI) { try { - return wrappedFactory.createURI(baseURI.resolve(RDFUtils.fixURIWithException(uri)).toString()); + return wrappedFactory.createIRI(baseIRI.resolve(RDFUtils.fixIRIWithException(uri)).toString()); } catch (IllegalArgumentException iae) { reportError(iae); return null; @@ -199,12 +216,12 @@ public class Any23ValueFactoryWrapper implements ValueFactory { } /** - * @param uri input string to attempt fix on. - * @return a valid sesame URI or null if any exception occurred + * @param uri + * @return a valid sesame IRI or null if any exception occurred */ - public URI fixURI(String uri) { + public IRI fixIRI(String uri) { try { - return wrappedFactory.createURI(RDFUtils.fixURIWithException(uri)); + return wrappedFactory.createIRI(RDFUtils.fixIRIWithException(uri)); } catch (Exception e) { reportError(e); return null; @@ -217,14 +234,14 @@ public class Any23ValueFactoryWrapper implements ValueFactory { * @param defaultSchema schema to add the URI * @return a valid {@link org.openrdf.model.URI} */ - public URI fixLink(String link, String defaultSchema) { + public IRI fixLink(String link, String defaultSchema) { if (link == null) return null; link = fixWhiteSpace(link); if ("".equals(link)) return null; if (defaultSchema != null && !link.startsWith(defaultSchema + ":")) { link = defaultSchema + ":" + link; } - return fixURI(link); + return fixIRI(link); } public String fixWhiteSpace(String name) { @@ -240,7 +257,7 @@ public class Any23ValueFactoryWrapper implements ValueFactory { if(issueReport == null) { logger.warn(e.getMessage()); } else { - issueReport.notifyIssue(IssueReport.IssueLevel.Warning, e.getMessage(), -1, -1); + issueReport.notifyIssue(IssueReport.IssueLevel.WARNING, e.getMessage(), -1, -1); } } http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/rdf/PopularPrefixes.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/rdf/PopularPrefixes.java b/core/src/main/java/org/apache/any23/rdf/PopularPrefixes.java index cf95855..7535b8b 100644 --- a/core/src/main/java/org/apache/any23/rdf/PopularPrefixes.java +++ b/core/src/main/java/org/apache/any23/rdf/PopularPrefixes.java @@ -50,13 +50,13 @@ public class PopularPrefixes { } popularPrefixes = new Prefixes(); for (Map.Entry entry : properties.entrySet()) { - if (testURICompliance((String) entry.getValue())) { + if (testIRICompliance((String) entry.getValue())) { prefixes.add( (String) entry.getKey(), (String) entry.getValue() ); } else { - logger.warn(String.format("Prefixes entry '%s' is not a well-formad URI. Skipped.", entry.getValue())); + logger.warn(String.format("Prefixes entry '%s' is not a well-formad IRI. Skipped.", entry.getValue())); } } return prefixes; @@ -81,13 +81,13 @@ public class PopularPrefixes { } /** - * Checks the compliance of the <i>URI</i>. + * Checks the compliance of the <i>IRI</i>. * - * @param stringUri the string of the URI to be checked - * @return <code>true</code> if <i> stringUri</i> is a valid URI, + * @param stringUri the string of the IRI to be checked + * @return <code>true</code> if <i> stringUri</i> is a valid IRI, * <code>false</code> otherwise. */ - private static boolean testURICompliance(String stringUri) { + private static boolean testIRICompliance(String stringUri) { try { new URI(stringUri); } catch (URISyntaxException e) { http://git-wip-us.apache.org/repos/asf/any23/blob/445d13ab/core/src/main/java/org/apache/any23/rdf/RDFUtils.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/rdf/RDFUtils.java b/core/src/main/java/org/apache/any23/rdf/RDFUtils.java index 7244bdb..c3ad8ec 100644 --- a/core/src/main/java/org/apache/any23/rdf/RDFUtils.java +++ b/core/src/main/java/org/apache/any23/rdf/RDFUtils.java @@ -18,23 +18,25 @@ package org.apache.any23.rdf; import org.apache.any23.util.MathUtils; -import org.openrdf.model.BNode; -import org.openrdf.model.Literal; -import org.openrdf.model.Resource; -import org.openrdf.model.Statement; -import org.openrdf.model.URI; -import org.openrdf.model.Value; -import org.openrdf.model.ValueFactory; -import org.openrdf.model.impl.URIImpl; -import org.openrdf.model.impl.ValueFactoryImpl; -import org.openrdf.model.vocabulary.RDF; -import org.openrdf.rio.RDFFormat; -import org.openrdf.rio.RDFHandlerException; -import org.openrdf.rio.RDFParseException; -import org.openrdf.rio.RDFParser; -import org.openrdf.rio.RDFWriter; -import org.openrdf.rio.Rio; -import org.openrdf.rio.helpers.StatementCollector; +import org.eclipse.rdf4j.model.BNode; +import org.eclipse.rdf4j.model.Literal; +import org.eclipse.rdf4j.model.Resource; +import org.eclipse.rdf4j.model.Statement; +import org.eclipse.rdf4j.model.URI; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.model.ValueFactory; +import org.eclipse.rdf4j.model.impl.SimpleIRI; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; +import org.eclipse.rdf4j.model.vocabulary.RDF; +import org.eclipse.rdf4j.rio.RDFFormat; +import org.eclipse.rdf4j.rio.RDFHandlerException; +import org.eclipse.rdf4j.rio.RDFParseException; +import org.eclipse.rdf4j.rio.RDFParser; +import org.eclipse.rdf4j.rio.RDFParserRegistry; +import org.eclipse.rdf4j.rio.RDFWriter; +import org.eclipse.rdf4j.rio.Rio; +import org.eclipse.rdf4j.rio.helpers.StatementCollector; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; @@ -50,6 +52,7 @@ import java.text.SimpleDateFormat; import java.util.Collection; import java.util.Date; import java.util.GregorianCalendar; +import java.util.Optional; /** * Basic class providing a set of utility methods when dealing with <i>RDF</i>. @@ -59,19 +62,19 @@ import java.util.GregorianCalendar; */ public class RDFUtils { - private static final ValueFactory valueFactory = ValueFactoryImpl.getInstance(); + private static final ValueFactory valueFactory = SimpleValueFactory.getInstance(); /** - * Fixes typical errors in an absolute URI, such as unescaped spaces. + * Fixes typical errors in an absolute IRI, such as unescaped spaces. * - * @param uri An absolute URI, can have typical syntax errors - * @return An absolute URI that is valid against the URI syntax - * @throws IllegalArgumentException if URI is not fixable - */ - public static String fixAbsoluteURI(String uri) { - String fixed = fixURIWithException(uri); - if (!fixed.matches("[a-zA-Z0-9]+:/.*")) throw new IllegalArgumentException("not a absolute URI: " + uri); - // Add trailing slash if URI has only authority but no path. + * @param uri An absolute IRI, can have typical syntax errors + * @return An absolute IRI that is valid against the IRI syntax + * @throws IllegalArgumentException if IRI is not fixable + */ + public static String fixAbsoluteIRI(String uri) { + String fixed = fixIRIWithException(uri); + if (!fixed.matches("[a-zA-Z0-9]+:/.*")) throw new IllegalArgumentException("not a absolute IRI: " + uri); + // Add trailing slash if IRI has only authority but no path. if (fixed.matches("https?://[a-zA-Z0-9.-]+(:[0-9+])?")) { fixed = fixed + "/"; } @@ -124,71 +127,89 @@ public class RDFUtils { * Truncate ">.*$ from end of lines (Neko didn't quite manage to fix broken markup) * Drop the triple if any of these appear in the URL: <>[]|*{}"<>\ * - * @param unescapedURI uri string to be unescaped. + * @param unescapedIRI uri string to be unescaped. * @return the unescaped string. */ - public static String fixURIWithException(String unescapedURI) { - if (unescapedURI == null) throw new IllegalArgumentException("URI was null"); + public static String fixIRIWithException(String unescapedIRI) { + if (unescapedIRI == null) throw new IllegalArgumentException("IRI was null"); // Remove starting and ending whitespace - String escapedURI = unescapedURI.trim(); + String escapedIRI = unescapedIRI.trim(); //Replace space with %20 - escapedURI = escapedURI.replaceAll(" ", "%20"); + escapedIRI = escapedIRI.replaceAll(" ", "%20"); //strip linebreaks - escapedURI = escapedURI.replaceAll("\n", ""); + escapedIRI = escapedIRI.replaceAll("\n", ""); //'Remove starting "\" or '"' - if (escapedURI.startsWith("\\") || escapedURI.startsWith("\"")) escapedURI = escapedURI.substring(1); + if (escapedIRI.startsWith("\\") || escapedIRI.startsWith("\"")) escapedIRI = escapedIRI.substring(1); //Remove ending "\" or '"' - if (escapedURI.endsWith("\\") || escapedURI.endsWith("\"")) - escapedURI = escapedURI.substring(0, escapedURI.length() - 1); + if (escapedIRI.endsWith("\\") || escapedIRI.endsWith("\"")) + escapedIRI = escapedIRI.substring(0, escapedIRI.length() - 1); //Drop the triple if it matches this regex (only protocol): ^[a-zA-Z0-9]+:/?/?$ - if (escapedURI.matches("^[a-zA-Z0-9]+:/?/?$")) - throw new IllegalArgumentException("no authority in URI: " + unescapedURI); + if (escapedIRI.matches("^[a-zA-Z0-9]+:/?/?$")) + throw new IllegalArgumentException("no authority in IRI: " + unescapedIRI); //Drop the triple if it matches this regex: ^javascript: - if (escapedURI.matches("^javascript:")) - throw new IllegalArgumentException("URI starts with javascript: " + unescapedURI); + if (escapedIRI.matches("^javascript:")) + throw new IllegalArgumentException("IRI starts with javascript: " + unescapedIRI); // stripHTML - // escapedURI = escapedURI.replaceAll("\\<.*?\\>", ""); + // escapedIRI = escapedIRI.replaceAll("\\<.*?\\>", ""); //>.*$ from end of lines (Neko didn't quite manage to fix broken markup) - escapedURI = escapedURI.replaceAll(">.*$", ""); + escapedIRI = escapedIRI.replaceAll(">.*$", ""); //Drop the triple if any of these appear in the URL: <>[]|*{}"<>\ - if (escapedURI.matches("[<>\\[\\]|\\*\\{\\}\"\\\\]")) - throw new IllegalArgumentException("Invalid character in URI: " + unescapedURI); + if (escapedIRI.matches("[<>\\[\\]|\\*\\{\\}\"\\\\]")) + throw new IllegalArgumentException("Invalid character in IRI: " + unescapedIRI); - return escapedURI; + return escapedIRI; } /** - * Creates a {@link URI}. - * @param uri string representation of the {@link URI} - * @return a valid {@link URI} + * Creates a {@link IRI}. + * @param uri string representation of the {@link IRI} + * @return a valid {@link IRI} + * @deprecated Use {@link #iri(String)} instead. */ - public static URI uri(String uri) { - return valueFactory.createURI(uri); + @Deprecated + public static IRI uri(String uri) { + return iri(uri); } /** - * Creates a {@link URI}. - * @param namespace a base namespace for the {@link URI} + * Creates a {@link IRI}. + * @param namespace a base namespace for the {@link IRI} * @param localName a local name to associate with the namespace - * @return a valid {@link URI} + * @return a valid {@link IRI} */ - public static URI uri(String namespace, String localName) { - return valueFactory.createURI(namespace, localName); + public static IRI iri(String uri) { + return valueFactory.createIRI(uri); + } + + /** + * Creates a {@link IRI}. + * @deprecated Use {@link #iri(String, String)} instead. + */ + @Deprecated + public static IRI uri(String namespace, String localName) { + return valueFactory.createIRI(namespace, localName); + } + + /** + * Creates a {@link IRI}. + */ + public static IRI iri(String namespace, String localName) { + return valueFactory.createIRI(namespace, localName); } /** * Creates a {@link Literal}. - * @param s string representation of the {@link org.openrdf.model.Literal} - * @return valid {@link org.openrdf.model.Literal} + * @param s string representation of the {@link org.eclipse.rdf4j.model.Literal} + * @return valid {@link org.eclipse.rdf4j.model.Literal} */ public static Literal literal(String s) { return valueFactory.createLiteral(s); @@ -196,8 +217,8 @@ public class RDFUtils { /** * Creates a {@link Literal}. - * @param b boolean representation of the {@link org.openrdf.model.Literal} - * @return valid {@link org.openrdf.model.Literal} + * @param b boolean representation of the {@link org.eclipse.rdf4j.model.Literal} + * @return valid {@link org.eclipse.rdf4j.model.Literal} */ public static Literal literal(boolean b) { return valueFactory.createLiteral(b); @@ -205,8 +226,8 @@ public class RDFUtils { /** * Creates a {@link Literal}. - * @param b byte representation of the {@link org.openrdf.model.Literal} - * @return valid {@link org.openrdf.model.Literal} + * @param b byte representation of the {@link org.eclipse.rdf4j.model.Literal} + * @return valid {@link org.eclipse.rdf4j.model.Literal} */ public static Literal literal(byte b) { return valueFactory.createLiteral(b); @@ -214,8 +235,8 @@ public class RDFUtils { /** * Creates a {@link Literal}. - * @param s short representation of the {@link org.openrdf.model.Literal} - * @return valid {@link org.openrdf.model.Literal} + * @param s short representation of the {@link org.eclipse.rdf4j.model.Literal} + * @return valid {@link org.eclipse.rdf4j.model.Literal} */ public static Literal literal(short s) { return valueFactory.createLiteral(s); @@ -223,8 +244,8 @@ public class RDFUtils { /** * Creates a {@link Literal}. - * @param i int representation of the {@link org.openrdf.model.Literal} - * @return valid {@link org.openrdf.model.Literal} + * @param i int representation of the {@link org.eclipse.rdf4j.model.Literal} + * @return valid {@link org.eclipse.rdf4j.model.Literal} */ public static Literal literal(int i) { return valueFactory.createLiteral(i); @@ -232,8 +253,8 @@ public class RDFUtils { /** * Creates a {@link Literal}. - * @param l long representation of the {@link org.openrdf.model.Literal} - * @return valid {@link org.openrdf.model.Literal} + * @param l long representation of the {@link org.eclipse.rdf4j.model.Literal} + * @return valid {@link org.eclipse.rdf4j.model.Literal} */ public static Literal literal(long l) { return valueFactory.createLiteral(l); @@ -241,8 +262,8 @@ public class RDFUtils { /** * Creates a {@link Literal}. - * @param f float representation of the {@link org.openrdf.model.Literal} - * @return valid {@link org.openrdf.model.Literal} + * @param f float representation of the {@link org.eclipse.rdf4j.model.Literal} + * @return valid {@link org.eclipse.rdf4j.model.Literal} */ public static Literal literal(float f) { return valueFactory.createLiteral(f); @@ -250,8 +271,8 @@ public class RDFUtils { /** * Creates a {@link Literal}. - * @param d double representation of the {@link org.openrdf.model.Literal} - * @return valid {@link org.openrdf.model.Literal} + * @param d double representation of the {@link org.eclipse.rdf4j.model.Literal} + * @return valid {@link org.eclipse.rdf4j.model.Literal} */ public static Literal literal(double d) { return valueFactory.createLiteral(d); @@ -260,29 +281,43 @@ public class RDFUtils { /** * Creates a {@link Literal}. * @param s string representation of the base namespace for the - * {@link org.openrdf.model.Literal} + * {@link org.eclipse.rdf4j.model.Literal} * @param l the local name to associate with the namespace. - * @return valid {@link org.openrdf.model.Literal} + * @return valid {@link org.eclipse.rdf4j.model.Literal} */ public static Literal literal(String s, String l) { - return valueFactory.createLiteral(s, l); + if(l == null) { + // HACK: Workaround for ANY23 code that passes null in for language tag + return valueFactory.createLiteral(s); + } else { + return valueFactory.createLiteral(s, l); + } } /** * Creates a {@link Literal}. * @param s string representation of the base namespace for the - * {@link org.openrdf.model.Literal} + * {@link org.eclipse.rdf4j.model.Literal} * @param datatype the datatype to associate with the namespace. - * @return valid {@link org.openrdf.model.Literal} + * @return valid {@link org.eclipse.rdf4j.model.Literal} + * @deprecated Use {@link #literal(String, IRI)} instead. */ + @Deprecated public static Literal literal(String s, URI datatype) { return valueFactory.createLiteral(s, datatype); } /** + * Creates a {@link Literal}. + */ + public static Literal literal(String s, IRI datatype) { + return valueFactory.createLiteral(s, datatype); + } + + /** * Creates a {@link BNode}. - * @param id string representation of the {@link org.openrdf.model.BNode} - * @return the valid {@link org.openrdf.model.BNode} + * @param id string representation of the {@link org.eclipse.rdf4j.model.BNode} + * @return the valid {@link org.eclipse.rdf4j.model.BNode} */ // TODO: replace this with all occurrences of #getBNode() public static BNode bnode(String id) { @@ -298,9 +333,9 @@ public class RDFUtils { /** * Creates a {@link BNode}. - * @param id string representation of the {@link org.openrdf.model.BNode} + * @param id string representation of the {@link org.eclipse.rdf4j.model.BNode} * name for which we will create a md5 hash. - * @return the valid {@link org.openrdf.model.BNode} + * @return the valid {@link org.eclipse.rdf4j.model.BNode} */ public static BNode getBNode(String id) { return valueFactory.createBNode( @@ -310,12 +345,12 @@ public class RDFUtils { /** * Creates a {@link Statement}. - * @param s subject {@link org.openrdf.model.Resource} - * @param p predicate {@link org.openrdf.model.URI} - * @param o object {@link org.openrdf.model.Value} - * @return valid {@link org.openrdf.model.Statement} + * @param s subject {@link org.eclipse.rdf4j.model.Resource} + * @param p predicate {@link org.eclipse.rdf4j.model.URI} + * @param o object {@link org.eclipse.rdf4j.model.Value} + * @return valid {@link org.eclipse.rdf4j.model.Statement} */ - public static Statement triple(Resource s, URI p, Value o) { + public static Statement triple(Resource s, IRI p, Value o) { return valueFactory.createStatement(s, p, o); } @@ -328,7 +363,7 @@ public class RDFUtils { * @return a statement instance. */ public static Statement triple(String s, String p, String o) { - return valueFactory.createStatement((Resource) toValue(s), (URI) toValue(p), toValue(o)); + return valueFactory.createStatement((Resource) toValue(s), (IRI) toValue(p), toValue(o)); } /** @@ -339,7 +374,7 @@ public class RDFUtils { * @param g quad resource * @return a statement instance. */ - public static Statement quad(Resource s, URI p, Value o, Resource g) { + public static Statement quad(Resource s, IRI p, Value o, Resource g) { return valueFactory.createStatement(s, p, o, g); } @@ -352,7 +387,7 @@ public class RDFUtils { * @return a statement instance. */ public static Statement quad(String s, String p, String o, String g) { - return valueFactory.createStatement((Resource) toValue(s), (URI) toValue(p), toValue(o), (Resource) toValue(g)); + return valueFactory.createStatement((Resource) toValue(s), (IRI) toValue(p), toValue(o), (Resource) toValue(g)); } /** @@ -379,7 +414,7 @@ public class RDFUtils { * @see org.openrdf.rio.RDFFormat#values() */ public static Collection<RDFFormat> getFormats() { - return RDFFormat.values(); + return RDFParserRegistry.getInstance().getKeys(); } /** @@ -424,24 +459,24 @@ public class RDFUtils { * @return parser matching the extension. * @throws IllegalArgumentException if no extension matches. */ - public static RDFFormat getFormatByExtension(String ext) { + public static Optional<RDFFormat> getFormatByExtension(String ext) { if( ! ext.startsWith(".") ) ext = "." + ext; return Rio.getParserFormatForFileName(ext); } /** * Parses the content of <code>is</code> input stream with the - * specified parser <code>p</code> using <code>baseURI</code>. + * specified parser <code>p</code> using <code>baseIRI</code>. * * @param format input format type. - * @param is input stream containing <code>RDF</code>. - * @param baseURI base uri. + * @param is input stream containing <code>RDF</data>. + * @param baseIRI base uri. * @return list of statements detected within the input stream. * @throws RDFHandlerException if there is an error handling the RDF * @throws IOException if there is an error reading the {@link java.io.InputStream} * @throws RDFParseException if there is an error handling the RDF */ - public static Statement[] parseRDF(RDFFormat format, InputStream is, String baseURI) + public static Statement[] parseRDF(RDFFormat format, InputStream is, String baseIRI) throws RDFHandlerException, IOException, RDFParseException { final StatementCollector handler = new StatementCollector(); final RDFParser parser = getParser(format); @@ -449,13 +484,13 @@ public class RDFUtils { parser.setStopAtFirstError(true); parser.setPreserveBNodeIDs(true); parser.setRDFHandler(handler); - parser.parse(is, baseURI); + parser.parse(is, baseIRI); return handler.getStatements().toArray( new Statement[handler.getStatements().size()] ); } /** * Parses the content of <code>is</code> input stream with the - * specified parser <code>p</code> using <code>''</code> as base URI. + * specified parser <code>p</code> using <code>''</code> as base IRI. * * @param format input format type. * @param is input stream containing <code>RDF</code>. @@ -471,7 +506,7 @@ public class RDFUtils { /** * Parses the content of <code>in</code> string with the - * specified parser <code>p</code> using <code>''</code> as base URI. + * specified parser <code>p</code> using <code>''</code> as base IRI. * * @param format input format type. * @param in input string containing <code>RDF</code>. @@ -500,19 +535,20 @@ public class RDFUtils { if(extIndex == -1) throw new IllegalArgumentException("Error while detecting the extension in resource name " + resource); final String extension = resource.substring(extIndex + 1); - return parseRDF( getFormatByExtension(extension), RDFUtils.class.getResourceAsStream(resource) ); + return parseRDF( getFormatByExtension(extension).orElseThrow(Rio.unsupportedFormat(extension)) + , RDFUtils.class.getResourceAsStream(resource) ); } /** * Checks if <code>href</code> is absolute or not. * - * @param href candidate URI. + * @param href candidate IRI. * @return <code>true</code> if <code>href</code> is absolute, * <code>false</code> otherwise. */ - public static boolean isAbsoluteURI(String href) { + public static boolean isAbsoluteIRI(String href) { try { - new URIImpl(href.trim()); + SimpleValueFactory.getInstance().createIRI(href.trim()); new java.net.URI(href.trim()); return true; } catch (IllegalArgumentException e) {
