@Override public int compareTo(@Nullable RDFNode o) { checkNotNull(o); assert o != null; if (o.isLiteral()) { return 1; } if (equals(o)) { return 0; } boolean anonA = isAnonymous(); boolean anonB = o.isAnonymous(); if (anonA == anonB) { // if both are anonymous or both are not anonymous, // comparing the id() values corresponds to comparing IRIs or // comparing bnode ids return getIRI().compareTo(o.getIRI()); } // if one is anonymous and the other is not, // named nodes come first if (!anonA) { return -1; } return 1; }
/** * @return true if an id is required for this node - only if this is an individual or an axiom * and id is required */ public boolean idRequiredForIndividualOrAxiom() { return isAnonymous() && (isIndividual() || isAxiom()) && shouldOutputId(); } }
protected void renderObject(RDFNode object) { if (object.idRequiredForIndividualOrAxiom()) { if (!pending.contains(object)) { nodesToRenderSeparately.add((RDFResourceBlankNode) object); } write(object.getIRI()); } else { write(object); } } }
protected boolean isObjectList(RDFResource node) { for (RDFTriple triple : getRDFGraph().getTriplesForSubject(node)) { if (triple.getPredicate().getIRI().equals(RDF_TYPE.getIRI()) && !triple.getObject().isAnonymous() && triple.getObject().getIRI().equals(RDF_LIST.getIRI())) { List<RDFNode> items = new ArrayList<>(); toJavaList(node, items); return items.stream().noneMatch(RDFNode::isLiteral); } } return false; }
private void write(RDFNode node) { if (node.isLiteral()) { write((RDFLiteral) node); } else { write((RDFResource) node); } }
/** * @param node subject or object node * @param vf value factory * @return blank node */ protected static BNode node(final RDFNode node, final ValueFactory vf) { if (node.getIRI().getNamespace().startsWith("_:")) { return vf.createBNode(node.getIRI().toString().substring(2)); } return vf.createBNode(node.getIRI().toString()); } }
private void rebuildAnonRoots() { rootAnonymousNodes.clear(); for (RDFTriple triple : triples) { if (triple.getSubject().isAnonymous()) { rootAnonymousNodes.add((RDFResourceBlankNode) triple.getSubject()); } } for (RDFTriple triple : triples) { if (triple.getObject().isAnonymous() && !triple.isSubjectSameAsObject()) { rootAnonymousNodes.remove(triple.getObject()); } } }
@Override public int compareTo(@Nullable RDFTriple o) { checkNotNull(o); assert o != null; // compare by predicate, then subject, then object int diff = comparePredicates(predicate, o.predicate); if (diff == 0) { diff = subject.compareTo(o.subject); } if (diff == 0) { diff = object.compareTo(o.object); } return diff; } }
protected boolean isObjectList(RDFResource node) { for (RDFTriple triple : getRDFGraph().getTriplesForSubject(node)) { if (triple.getPredicate().getIRI().equals(RDF_TYPE.getIRI()) && !triple.getObject().isAnonymous() && triple.getObject().getIRI().equals(RDF_LIST.getIRI())) { List<RDFNode> items = new ArrayList<>(); toJavaList(node, items); return items.stream().noneMatch(RDFNode::isLiteral); } } return false; }
private void write(RDFNode node) { if (node.isLiteral()) { write((RDFLiteral) node); } else { write((RDFResource) node); } }
/** * @param node subject or object node * @param vf value factory * @return blank node */ protected static BNode node(final RDFNode node, final ValueFactory vf) { if (node.getIRI().getNamespace().startsWith("_:")) { return vf.createBNode(node.getIRI().toString().substring(2)); } return vf.createBNode(node.getIRI().toString()); } }
private void rebuildAnonRoots() { rootAnonymousNodes.clear(); for (RDFTriple triple : triples) { if (triple.getSubject().isAnonymous()) { rootAnonymousNodes.add((RDFResourceBlankNode) triple.getSubject()); } } for (RDFTriple triple : triples) { if (triple.getObject().isAnonymous() && !triple.isSubjectSameAsObject()) { rootAnonymousNodes.remove(triple.getObject()); } } }
@Override public int compareTo(@Nullable RDFTriple o) { checkNotNull(o); assert o != null; // compare by predicate, then subject, then object int diff = comparePredicates(predicate, o.predicate); if (diff == 0) { diff = subject.compareTo(o.subject); } if (diff == 0) { diff = object.compareTo(o.object); } return diff; } }
@Override public int compareTo(@Nullable RDFNode o) { checkNotNull(o); assert o != null; if (o.isLiteral()) { return 1; } if (equals(o)) { return 0; } boolean anonA = isAnonymous(); boolean anonB = o.isAnonymous(); if (anonA == anonB) { // if both are anonymous or both are not anonymous, // comparing the id() values corresponds to comparing IRIs or // comparing bnode ids return getIRI().compareTo(o.getIRI()); } // if one is anonymous and the other is not, // named nodes come first if (!anonA) { return -1; } return 1; }
/** * @return true if an id is required for this node - only if this is an individual or an axiom * and id is required */ public boolean idRequiredForIndividualOrAxiom() { return isAnonymous() && (isIndividual() || isAxiom()) && shouldOutputId(); } }
protected boolean isObjectList(RDFResource node) { for (RDFTriple triple : getRDFGraph().getTriplesForSubject(node)) { if (triple.getPredicate().getIRI().equals(RDF_TYPE.getIRI()) && !triple.getObject().isAnonymous() && triple.getObject().getIRI().equals(RDF_LIST.getIRI())) { List<RDFNode> items = new ArrayList<>(); toJavaList(node, items); return items.stream().noneMatch(RDFNode::isLiteral); } } return false; }
protected void renderObject(RDFNode object) { if (object.idRequiredForIndividualOrAxiom()) { if (!pending.contains(object)) { nodesToRenderSeparately.add((RDFResourceBlankNode) object); } write(object.getIRI()); } else { write(object); } } }
private void write(RDFNode node) { if (node.isLiteral()) { write((RDFLiteral) node); } else { write((RDFResource) node); } }
object = vf.createIRI(triple.getObject().getIRI().toString()); } catch (@SuppressWarnings("unused") IllegalArgumentException iae) { LOGGER.error("Object URI was invalid: {}", triple);
private void rebuildAnonRoots() { rootAnonymousNodes.clear(); for (RDFTriple triple : triples) { if (triple.getSubject().isAnonymous()) { rootAnonymousNodes.add((RDFResourceBlankNode) triple.getSubject()); } } for (RDFTriple triple : triples) { if (triple.getObject().isAnonymous() && !triple.isSubjectSameAsObject()) { rootAnonymousNodes.remove(triple.getObject()); } } }