- All Implemented Interfaces:
TripleStore
Internal structure: - One indexed hash set (same as GraphMem2Fast uses) that holds all triples - Three hash maps indexed by subjects, predicates, and objects with RoaringBitmaps as values - The bitmaps contain the indices of the triples in the central hash set
The bitmaps are used to quickly find triples that match a given pattern.
The bitmaps operations like FastAggregation.naive_and(RoaringBitmap...) and
RoaringBitmap.intersects(RoaringBitmap, RoaringBitmap) are used to find matches for the pattern
S_O, SP_, and _PO pretty fast, even in large graphs.
Additional optimizations:
- because we know that if a triple exists in one of the maps, it also exists in the other two, we can use the
JenaMapSetCommon.removeUnchecked(java.lang.Object) method to avoid
unnecessary checks.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd a triple to the map.voidclear()Remove all triples from the map.booleanAnswer true if the graph contains any triple matchingt.intReturn the number of triples in the map.Returns anExtendedIteratorof all triples in the graph matching the given triple match.booleanisEmpty()Return true if the map is empty.voidRemove a triple from the map.stream()Returns aStreamof all triples in the graph.Returns aStreamof Triples matching the given pattern.
-
Constructor Details
-
RoaringTripleStore
public RoaringTripleStore()
-
-
Method Details
-
add
Description copied from interface:TripleStoreAdd a triple to the map.- Specified by:
addin interfaceTripleStore- Parameters:
triple- to add
-
remove
Description copied from interface:TripleStoreRemove a triple from the map.- Specified by:
removein interfaceTripleStore- Parameters:
triple- to remove
-
clear
public void clear()Description copied from interface:TripleStoreRemove all triples from the map.- Specified by:
clearin interfaceTripleStore
-
countTriples
public int countTriples()Description copied from interface:TripleStoreReturn the number of triples in the map.- Specified by:
countTriplesin interfaceTripleStore
-
isEmpty
public boolean isEmpty()Description copied from interface:TripleStoreReturn true if the map is empty.- Specified by:
isEmptyin interfaceTripleStore
-
contains
Description copied from interface:TripleStoreAnswer true if the graph contains any triple matchingt.- Specified by:
containsin interfaceTripleStore- Parameters:
tripleMatch- triple match pattern, which may be contained
-
stream
Description copied from interface:TripleStoreReturns aStreamof all triples in the graph. Note:BaseStream.parallel()is supported.- Specified by:
streamin interfaceTripleStore- Returns:
- a stream of triples in this graph.
-
stream
Description copied from interface:TripleStoreReturns aStreamof Triples matching the given pattern. Note:BaseStream.parallel()is supported.- Specified by:
streamin interfaceTripleStore- Parameters:
tripleMatch- triple match pattern- Returns:
- a stream of triples in this graph matching the pattern.
-
find
Description copied from interface:TripleStoreReturns anExtendedIteratorof all triples in the graph matching the given triple match.- Specified by:
findin interfaceTripleStore
-