Apache Jena is migrating to term semantics graph for consistency across all in-memory and persistent storage graphs.
All the graphs that this factory creates are not thread-safe.
Note that if the memory Graph is structurally modified at any time after
the iterator has been created by any of the find*
or stream*
methods, the iterator may throw
a ConcurrentModificationException
if continued with it after this modification.
This may happen even if the queried data does not relate directly to the modified data
(i.e. when triple search pattern does not match added or deleted triple).
The good practice is to explicitly close any ExtendedIterator
immediately after a read operation.
For GraphMem implementations ExtendedIterator
's materializing methods (such as ExtendedIterator.toList()
)
could be used safely without explicit close. The same is true for Java Stream
's
terminal operations.
-
Method Summary
Modifier and TypeMethodDescriptionstatic Graph
Answer a memory-based graph.static Graph
Answer a memory-based graph with "same term" semantics This method will continue to provide the preferred general purpose "same term" graph.static Graph
Answer a memory-based graph with "same value" semantics used in Jena2, Jena3 and Jena4 for in-memory graphs.static Graph
This function will track the preferred general purpose graph.static Graph
A graph that stores triples in memory.static Graph
A graph that stores triples in memory.static Graph
A graph that stores triples in memory.static boolean
Get the default mode for in-memory for graphs : same term (true) or same value (false).static Graph
empty()
Immutable graph with no triplesstatic void
setDftGraphSameTerm
(boolean value) Set the default mode for in-memory graphs : same term (true) or same value (false).
-
Method Details
-
setDftGraphSameTerm
public static void setDftGraphSameTerm(boolean value) Set the default mode for in-memory graphs : same term (true) or same value (false).This is initially set with system property "jena:graphSameTerm" with the system default is same value (Jena4).
This affects
createDefaultGraph()
. -
dftGraphSameTerm
public static boolean dftGraphSameTerm()Get the default mode for in-memory for graphs : same term (true) or same value (false).This is used by
createDefaultGraph()
. -
createDefaultGraph
Answer a memory-based graph. This is the system default. -
createGraphMem
This function will track the preferred general purpose graph. It will switch from "same value" to "same term" -
createDefaultGraphSameValue
Answer a memory-based graph with "same value" semantics used in Jena2, Jena3 and Jena4 for in-memory graphs. Jena5 changed to "same term" semantics. This method will continue to provide a "same value" graph. -
createDefaultGraphSameTerm
Answer a memory-based graph with "same term" semantics This method will continue to provide the preferred general purpose "same term" graph. -
createGraphMem2Basic
A graph that stores triples in memory. This class is not thread-safe.- This graph provides term equality.
- Iterator over this graph does not provide Iterator.remove
It has improved performance compared to
GraphMem
with a simpler implementation, primarily due to not providing support forIterator.remove()
.See
GraphMem2Legacy
for details. -
createGraphMem2
A graph that stores triples in memory. This class is not thread-safe.- This graph provides term equality.
- Iterator over this graph does not provide Iterator.remove
This graph implementation provides improved performance with a minor increase in memory usage.
See
GraphMem2Fast
for details. -
createGraphMem2Roaring
A graph that stores triples in memory. This class is not thread-safe.- This graph provides term equality.
- Iterator over this graph does not provide Iterator.remove
GraphMem2Roaring
is focused on handling large in-memory graphs. It uses Roaring bitmaps for indexing.See
GraphMem2Roaring
for details. -
empty
Immutable graph with no triples
-