Skip to content

Commit

Permalink
Upgrade dependencies and release fixes from rdf-submmit5
Browse files Browse the repository at this point in the history
  • Loading branch information
JervenBolleman committed Mar 20, 2024
1 parent 252467f commit 33b84b4
Show file tree
Hide file tree
Showing 6 changed files with 107 additions and 50 deletions.
12 changes: 6 additions & 6 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>io.github.jervenbolleman</groupId>
<artifactId>sapfhir</artifactId>
<version>0.2-SNAPSHOT</version>
<version>0.2</version>
<packaging>jar</packaging>
<licenses>
<license>
Expand Down Expand Up @@ -179,7 +179,7 @@
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>handlegraph4j</artifactId>
<version>1.1</version>
<version>1.2</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
Expand All @@ -189,25 +189,25 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.10.0</version>
<version>5.10.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.10.0</version>
<version>5.10.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.10.0</version>
<version>5.10.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>handlegraph4j-simple</artifactId>
<version>0.2-SNAPSHOT</version>
<version>0.2</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ public AutoClosedIterator<Statement> getStatements(Resource subject, IRI predica
AutoClosedIterator<N> nodes = sail.pathGraph().nodes();
return map(nodes, (n) -> {
var ni = new NodeIRI<>(n.id(), sail);
return vf.createStatement(ni, RDF.TYPE, VG.Node);
return new HandleGraphValueFactory.UnsafeStatement(ni, RDF.TYPE, VG.Node);
});
}
}
Expand Down Expand Up @@ -204,7 +204,7 @@ private AutoClosedIterator<Statement> nodeIriToTriples(IRI predicate, Value obje
} else if (RDF.VALUE.equals(predicate)) {
Literal sequence = p.get();
if (object == null || sequence.equals(object)) {
return of(vf.createStatement(nodeSubject, RDF.VALUE, sequence));
return of(new HandleGraphValueFactory.UnsafeStatement(nodeSubject, RDF.VALUE, sequence));
} else
return empty();

Expand All @@ -214,7 +214,7 @@ private AutoClosedIterator<Statement> nodeIriToTriples(IRI predicate, Value obje
statements[0] = nodeTypeStatement(nodeSubject);
}
Literal sequence = p.get();
Statement nodeValueStatement = vf.createStatement(nodeSubject, RDF.VALUE, sequence);
Statement nodeValueStatement = new HandleGraphValueFactory.UnsafeStatement(nodeSubject, RDF.VALUE, sequence);
statements[1] = nodeValueStatement;

var i = from(Arrays.asList(statements[0], statements[1]).iterator());
Expand All @@ -229,7 +229,7 @@ private AutoClosedIterator<Statement> nodeToTriples(N node, IRI predicate, Value
}

private Statement nodeTypeStatement(NodeIRI<N> nodeSubject) {
return vf.createStatement(nodeSubject, RDF.TYPE, VG.Node);
return new HandleGraphValueFactory.UnsafeStatement(nodeSubject, RDF.TYPE, VG.Node);
}

private AutoClosedIterator<Statement> linksForNode(N node, IRI predicate, NodeIRI<N> object) {
Expand Down Expand Up @@ -269,36 +269,36 @@ private AutoClosedIterator<Statement> edgesToStatements(IRI predicate, AutoClose
}

private Statement links(E edge) {
return vf.createStatement(new NodeIRI<>(sail.pathGraph().asLong(edge.left()), sail), VG.links, new NodeIRI<>(sail.pathGraph().asLong(edge.right()), sail));
return new HandleGraphValueFactory.UnsafeStatement(new NodeIRI<>(sail.pathGraph().asLong(edge.left()), sail), VG.links, new NodeIRI<>(sail.pathGraph().asLong(edge.right()), sail));
}

private Statement forwardToForward(E edge) {
if (!sail.pathGraph().isReverseNodeHandle(edge.left()) && !sail.pathGraph().isReverseNodeHandle(edge.right())) {
return vf.createStatement(new NodeIRI<>(sail.pathGraph().asLong(edge.left()), sail), VG.linksForwardToForward, new NodeIRI<>(sail.pathGraph().asLong(edge.right()), sail));
return new HandleGraphValueFactory.UnsafeStatement(new NodeIRI<>(sail.pathGraph().asLong(edge.left()), sail), VG.linksForwardToForward, new NodeIRI<>(sail.pathGraph().asLong(edge.right()), sail));
} else {
return null;
}
}

private Statement forwardToReverse(E edge) {
if (!sail.pathGraph().isReverseNodeHandle(edge.left()) && sail.pathGraph().isReverseNodeHandle(edge.right())) {
return vf.createStatement(new NodeIRI<>(sail.pathGraph().asLong(edge.left()), sail), VG.linksForwardToReverse, new NodeIRI<>(sail.pathGraph().asLong(edge.right()), sail));
return new HandleGraphValueFactory.UnsafeStatement(new NodeIRI<>(sail.pathGraph().asLong(edge.left()), sail), VG.linksForwardToReverse, new NodeIRI<>(sail.pathGraph().asLong(edge.right()), sail));
} else {
return null;
}
}

private Statement reverseToReverse(E edge) {
if (sail.pathGraph().isReverseNodeHandle(edge.left()) && sail.pathGraph().isReverseNodeHandle(edge.right())) {
return vf.createStatement(new NodeIRI<>(sail.pathGraph().asLong(edge.left()), sail), VG.linksReverseToReverse, new NodeIRI<>(sail.pathGraph().asLong(edge.right()), sail));
return new HandleGraphValueFactory.UnsafeStatement(new NodeIRI<>(sail.pathGraph().asLong(edge.left()), sail), VG.linksReverseToReverse, new NodeIRI<>(sail.pathGraph().asLong(edge.right()), sail));
} else {
return null;
}
}

private Statement reverseToForward(E edge) {
if (sail.pathGraph().isReverseNodeHandle(edge.left()) && !sail.pathGraph().isReverseNodeHandle(edge.right())) {
return vf.createStatement(new NodeIRI<>(sail.pathGraph().asLong(edge.left()), sail), VG.linksReverseToForward, new NodeIRI<>(sail.pathGraph().asLong(edge.right()), sail));
return new HandleGraphValueFactory.UnsafeStatement(new NodeIRI<>(sail.pathGraph().asLong(edge.left()), sail), VG.linksReverseToForward, new NodeIRI<>(sail.pathGraph().asLong(edge.right()), sail));
} else {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ private AutoClosedIterator<Statement> knownSubjectTypeStatements(PathIRI<P> path
if (object instanceof BNode || object instanceof Literal) {
return empty();
}
Statement stat = vf.createStatement(pathIRI, RDF.TYPE, VG.Path);
Statement stat = new HandleGraphValueFactory.UnsafeStatement(pathIRI, RDF.TYPE, VG.Path);
AutoClosedIterator<Statement> stream = of(stat);
return filter(object, stream);
}
Expand All @@ -123,7 +123,7 @@ private AutoClosedIterator<Statement> knownSubjectLabelStatements(PathIRI<P> pat
}
String nameOfPath = sail.pathGraph().nameOfPath(pathIRI.path());
Literal label = vf.createLiteral(nameOfPath);
Statement stat = vf.createStatement(pathIRI, RDFS.LABEL, label);
Statement stat = new HandleGraphValueFactory.UnsafeStatement(pathIRI, RDFS.LABEL, label);

AutoClosedIterator<Statement> stream = of(stat);
return filter(object, stream);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,8 @@ private AutoClosedIterator<Statement> knownSubjectTypeStatement(Value object,
return AutoClosedIterator.empty();
}
AutoClosedIterator<Statement> stream = concat(
of(vf.createStatement(subject, RDF.TYPE, FALDO.Position)),
of(vf.createStatement(subject, RDF.TYPE, FALDO.ExactPosition)));
of(new HandleGraphValueFactory.UnsafeStatement(subject, RDF.TYPE, FALDO.Position)),
of(new HandleGraphValueFactory.UnsafeStatement(subject, RDF.TYPE, FALDO.ExactPosition)));
if (object == null) {
return stream;
} else {
Expand All @@ -171,7 +171,7 @@ private AutoClosedIterator<Statement> knownSubjectReferenceStatements(Value obje
return AutoClosedIterator.empty();
}
PathIRI<P> pathIRI = new PathIRI<>(subject.path(), sail);
Statement stat = vf.createStatement(subject, VG.path, pathIRI);
Statement stat = new HandleGraphValueFactory.UnsafeStatement(subject, VG.path, pathIRI);
var stream = AutoClosedIterator.of(stat);
return filter(object, stream);
}
Expand All @@ -185,11 +185,11 @@ private AutoClosedIterator<Statement> knownSubjectPositionStatements(Value objec
if (subject instanceof StepBeginPositionIRI) {
long position = ((StepBeginPositionIRI<?,?>) subject).getBeginPosition();
var l = vf.createLiteral(position);
stream = AutoClosedIterator.of(vf.createStatement(subject, FALDO.position, l));
stream = AutoClosedIterator.of(new HandleGraphValueFactory.UnsafeStatement(subject, FALDO.position, l));
} else if (subject instanceof StepEndPositionIRI) {
long position = ((StepEndPositionIRI<?,?>) subject).getEndPosition();
var l = vf.createLiteral(position);
stream = AutoClosedIterator.of(vf.createStatement(subject, FALDO.position, l));
stream = AutoClosedIterator.of(new HandleGraphValueFactory.UnsafeStatement(subject, FALDO.position, l));
} else {
return AutoClosedIterator.empty();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ public StepRelatedStatementProvider(PathHandleGraphSail<P, S, N, E> sail, Handle
this.sail = sail;
}

// private static final Pattern matchesEndOfStepIri = Pattern.compile("/step/(\\d+)$");
private static final Set<IRI> stepAssociatedTypes = Set.of(FALDO.Region, VG.Step);
private static final Set<IRI> stepAssociatedPredicates = Set.of(RDF.TYPE, VG.rank, VG.path, VG.node,
VG.reverseOfNode, FALDO.begin, FALDO.end);
Expand Down Expand Up @@ -165,26 +164,36 @@ private AutoClosedIterator<Statement> findByEquals(IRI predicate, Value object,
}

private AutoClosedIterator<Statement> findByIdentity(IRI predicate, Value object, StepIRI<P> stepSubject) {
for (int i = 0; i < knownPredicates.length; i++) {
IRI knownPredicate = knownPredicates[i];
if (knownPredicate == predicate) {
return knownPredicateFunctions.get(i).apply(stepSubject, object);
}
if (RDF.TYPE == predicate) {
return knownSubjectTypeStatement(stepSubject, object);
} else if (VG.rank == predicate) {
return knownSubjectRankStatements(stepSubject, object);
} else if (VG.node == predicate) {
return knownSubjectNodeStatements(stepSubject, object);
} else if (VG.reverseOfNode == predicate) {
return knownSubjectReverseNodeStatements(stepSubject, object);
} else if (VG.path == predicate) {
return knownSubjectPathStatements(stepSubject, object);
} else if (FALDO.begin == predicate) {
return knownSubjectBeginStatements(stepSubject, object);
} else if (FALDO.end == predicate) {
return knownSubjectEndStatements(stepSubject, object);
} else {
return null;
}
return null;
}

private AutoClosedIterator<Statement> knownSubjectTypeStatement(StepIRI<P> subject, Value object) {
if (object instanceof Literal || object instanceof BNode) {
return AutoClosedIterator.empty();
}
if (VG.Step.equals(object)) {
return of(vf.createStatement(subject, RDF.TYPE, VG.Step));
return of(new HandleGraphValueFactory.UnsafeStatement(subject, RDF.TYPE, VG.Step));
} else if (FALDO.Region.equals(object)) {
return of(vf.createStatement(subject, RDF.TYPE, FALDO.Region));
return of(new HandleGraphValueFactory.UnsafeStatement(subject, RDF.TYPE, FALDO.Region));
} else {
AutoClosedIterator<Statement> stream = concat(of(vf.createStatement(subject, RDF.TYPE, VG.Step)),
of(vf.createStatement(subject, RDF.TYPE, FALDO.Region)));
AutoClosedIterator<Statement> stream = concat(of(new HandleGraphValueFactory.UnsafeStatement(subject, RDF.TYPE, VG.Step)),
of(new HandleGraphValueFactory.UnsafeStatement(subject, RDF.TYPE, FALDO.Region)));
return filter(object, stream);
}
}
Expand All @@ -194,7 +203,7 @@ private AutoClosedIterator<Statement> knownSubjectRankStatements(StepIRI<P> step
return AutoClosedIterator.empty();
}
AutoClosedIterator<Statement> stream = AutoClosedIterator
.of(vf.createStatement(stepSubject, VG.rank, vf.createLiteral(stepSubject.rank())));
.of(new HandleGraphValueFactory.UnsafeStatement(stepSubject, VG.rank, vf.createLiteral(stepSubject.rank())));
return filter(object, stream);
}

Expand All @@ -208,7 +217,7 @@ private AutoClosedIterator<Statement> knownSubjectNodeStatements(StepIRI<P> step
return AutoClosedIterator.empty();
}
NodeIRI<N> nodeIRI = new NodeIRI<>(node.id(), sail);
AutoClosedIterator<Statement> stream = AutoClosedIterator.of(vf.createStatement(stepSubject, VG.node, nodeIRI));
AutoClosedIterator<Statement> stream = AutoClosedIterator.of(new HandleGraphValueFactory.UnsafeStatement(stepSubject, VG.node, nodeIRI));
return filter(object, stream);
}

Expand All @@ -223,7 +232,7 @@ private AutoClosedIterator<Statement> knownSubjectReverseNodeStatements(StepIRI<
}
NodeIRI<N> nodeIRI = new NodeIRI<>(node.id(), sail);
AutoClosedIterator<Statement> stream = AutoClosedIterator
.of(vf.createStatement(stepSubject, VG.reverseOfNode, nodeIRI));
.of(new HandleGraphValueFactory.UnsafeStatement(stepSubject, VG.reverseOfNode, nodeIRI));
return filter(object, stream);
}

Expand All @@ -232,7 +241,7 @@ private AutoClosedIterator<Statement> knownSubjectPathStatements(StepIRI<P> step
return AutoClosedIterator.empty();
}
PathIRI<P> path = new PathIRI<>(stepSubject.path(), sail);
AutoClosedIterator<Statement> stream = AutoClosedIterator.of(vf.createStatement(stepSubject, VG.path, path));
AutoClosedIterator<Statement> stream = AutoClosedIterator.of(new HandleGraphValueFactory.UnsafeStatement(stepSubject, VG.path, path));
return filter(object, stream);
}

Expand All @@ -243,7 +252,7 @@ private AutoClosedIterator<Statement> knownSubjectEndStatements(StepIRI<P> stepS
long rank = stepSubject.rank();
P path = stepSubject.path();
var beginIRI = new StepEndPositionIRI<>(path, rank, sail);
var stream = AutoClosedIterator.of(vf.createStatement(stepSubject, FALDO.begin, beginIRI));
AutoClosedIterator<Statement> stream = AutoClosedIterator.of(new HandleGraphValueFactory.UnsafeStatement(stepSubject, FALDO.begin, beginIRI));
return filter(object, stream);
}

Expand All @@ -254,7 +263,7 @@ private AutoClosedIterator<Statement> knownSubjectBeginStatements(StepIRI<P> ste
long rank = stepSubject.rank();
P path = stepSubject.path();
var beginIRI = new StepBeginPositionIRI<>(path, rank, sail);
var stream = AutoClosedIterator.of(vf.createStatement(stepSubject, FALDO.begin, beginIRI));
AutoClosedIterator<Statement> stream = AutoClosedIterator.of(new HandleGraphValueFactory.UnsafeStatement(stepSubject, FALDO.begin, beginIRI));
return filter(object, stream);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,19 +176,11 @@ public Literal createLiteral(Date date) {

@Override
public Statement createStatement(Resource subject, IRI predicate, Value object) {
if (subject == null || predicate == null || object == null) {
throw new NullPointerException("somethings null"
+ subject + ':' + predicate + ':' + object);
}
return getInstance().createStatement(subject, predicate, object);
return getInstance().createStatement(subject, predicate, object);
}

@Override
public Statement createStatement(Resource subject, IRI predicate, Value object, Resource context) {
if (subject == null || predicate == null || object == null) {
throw new NullPointerException("somethings null"
+ subject + ':' + predicate + ':' + object);
}
return getInstance().createStatement(subject, predicate, object, context);
}

Expand All @@ -205,6 +197,62 @@ public Literal createLiteral(String label, CoreDatatype datatype) {
public Literal createLiteral(String label, IRI datatype, CoreDatatype coreDatatype) {
return getInstance().createLiteral(label, datatype, coreDatatype);
}



/**
* Only to be used when we know that the values are good.
*/
public static record UnsafeStatement(Resource subject, IRI predicate, Value object) implements Statement {

private static final long serialVersionUID = 1L;

@Override
public Resource getSubject() {
return subject;
}

@Override
public IRI getPredicate() {
return predicate;
}

@Override
public Value getObject() {
return object;
}

@Override
public Resource getContext() {
return null;
}

@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}

if (!(o instanceof Statement)) {
return false;
}

Statement that = (Statement) o;

return subject.equals(that.getSubject()) && predicate.equals(that.getPredicate())
&& object.equals(that.getObject()) && that.getContext() == null;
}

@Override
public int hashCode() {
int result = 31 + subject.hashCode();
result = 31 * result + predicate.hashCode();
result = 31 * result + object.hashCode();
return result;
}

@Override
public String toString() {
return "(" + subject + ", " + predicate + ", " + object + ") [" + null + "]";
}

}
}

0 comments on commit 33b84b4

Please sign in to comment.