Package com.semedy.reasoner.edb.ramstore
Class MainMemoryBaseRelation
java.lang.Object
com.semedy.reasoner.edb.ramstore.MainMemoryBaseRelation
- All Implemented Interfaces:
BaseRelation
-
Constructor Summary
ConstructorDescriptionMainMemoryBaseRelation
(int arity, TupleStore tupleStore) MainMemoryBaseRelation
(int arity, TupleStore tupleStore, boolean duplicates, ReasoningMonitor monitor) MainMemoryBaseRelation
(int arity, TupleStore tupleStore, boolean duplicates, ReasoningMonitor monitor, boolean sorted) MainMemoryBaseRelation
(int arity, TupleStore tupleStore, MainMemoryIndex primarykey, ReasoningMonitor monitor) -
Method Summary
Modifier and TypeMethodDescriptionboolean
addTuple
(int tuple) add a tuple to the relationboolean
addTuple
(long[] t) add a tuple to the relationboolean
addTuple
(TupleBuffer terms) add a tuple to the relationvoid
clear()
remove all tuplesvoid
close()
Close the relation.boolean
containsTuple
(int tuple) Is tuple contained in relation?boolean
containsTuple
(long[] tuple) Is tuple contained in relation?boolean
containsTuple
(TupleBuffer tuple) Is tuple contained in relation?createIndex
(int[] indexedPositions) Get or create a simple (not sorted index) by the argument positions in indexed positions.createSortedIndex
(int[] indexedPositions) ret or create a sorted index given by the argument positions in indexed positionselements()
returns an enumerator for all tupleselements
(long[] filter) returns an filteres enumerator for all tuplesvoid
flush()
Flush the relation.int
getArity()
returns the arity of the relationget the caching infoget checksum of 0th argumentint
getDirectEncodedType
(int i) get the type of the direct encoded argumentreturns a unique identifier for the relationgetIndex
(int[] indexedPositions) Get an index given by the argument positions in indexed positions (if it already exists).get an input buffer for relationint
returns the internal arity of tupleslong
getMaxValue
(int argument) returns the maximal value at that argument positionlong
getMinValue
(int argument) returns the minimal value at that argument positiongetSortedIndex
(int[] indexedPositions) Get a sorted index given by the argument positions in indexed positions (if it already exists).boolean
may relation contain duplicates?boolean
boolean
isDirectEncoded
(int i) are all values at argument i direct encodedboolean
isEmpty()
Is the relation empty?long[]
isOverwrittenByTuple
(long[] tuple) returns the tuple which will be overwritten by tuple.boolean
Is the relation persistent?boolean
Is the relation temporary only?long
returns the time of last modificationboolean
Might there be duplicates?long[]
overwriteTuple
(long[] tuple) Overwrite last argument of tuple.overwriteTuple
(TupleBuffer tuple) Overwrite last argument of tuple.void
readTupleFile
(String filepath) read tuples from a file in binary formvoid
registerListener
(RelationListener listener) register a listener for adding, removing, modifying tuplesvoid
boolean
removeTuple
(int tuple) remove a tuple from the relationboolean
removeTuple
(long[] terms) remove a tuple from the relationboolean
removeTuple
(TupleBuffer terms) remove a tuple from the relationvoid
select()
initializelong
size()
returns the number of tuples in relationlong
return number of bytes used in main memory.toString()
void
add all tuples of R to thisvoid
writeBinary
(String filepath) write tuples in binary form to file
-
Constructor Details
-
MainMemoryBaseRelation
public MainMemoryBaseRelation(int arity, TupleStore tupleStore, boolean duplicates, ReasoningMonitor monitor) -
MainMemoryBaseRelation
-
MainMemoryBaseRelation
public MainMemoryBaseRelation(int arity, TupleStore tupleStore, boolean duplicates, ReasoningMonitor monitor, boolean sorted) -
MainMemoryBaseRelation
public MainMemoryBaseRelation(int arity, TupleStore tupleStore, MainMemoryIndex primarykey, ReasoningMonitor monitor)
-
-
Method Details
-
getChecksum
get checksum of 0th argument- Returns:
-
sizeInBytes
public long sizeInBytes()return number of bytes used in main memory. Used for cache management.- Specified by:
sizeInBytes
in interfaceBaseRelation
- Returns:
- approximate number of size in bytes
-
getMinValue
Description copied from interface:BaseRelation
returns the minimal value at that argument position- Specified by:
getMinValue
in interfaceBaseRelation
- Parameters:
argument
- , argument position @return, minimal value- Throws:
IOException
-
getMaxValue
Description copied from interface:BaseRelation
returns the maximal value at that argument position- Specified by:
getMaxValue
in interfaceBaseRelation
- Parameters:
argument
- , argument position- Returns:
- max value at argument position
- Throws:
IOException
-
hasDuplicates
public boolean hasDuplicates()Description copied from interface:BaseRelation
may relation contain duplicates?- Specified by:
hasDuplicates
in interfaceBaseRelation
- Returns:
-
getArity
public int getArity()Description copied from interface:BaseRelation
returns the arity of the relation- Specified by:
getArity
in interfaceBaseRelation
- Returns:
- arity of relation
-
elements
Description copied from interface:BaseRelation
returns an enumerator for all tuples- Specified by:
elements
in interfaceBaseRelation
- Returns:
- returns enumerator for tuples
- Throws:
IOException
-
writeBinary
Description copied from interface:BaseRelation
write tuples in binary form to file- Specified by:
writeBinary
in interfaceBaseRelation
- Throws:
IOException
EDBException
-
readTupleFile
Description copied from interface:BaseRelation
read tuples from a file in binary form- Specified by:
readTupleFile
in interfaceBaseRelation
- Parameters:
filepath
- , the file path to read from- Throws:
IOException
EDBException
-
size
public long size()Description copied from interface:BaseRelation
returns the number of tuples in relation- Specified by:
size
in interfaceBaseRelation
- Returns:
- number of tuples in relation
-
createSortedIndex
Description copied from interface:BaseRelation
ret or create a sorted index given by the argument positions in indexed positions- Specified by:
createSortedIndex
in interfaceBaseRelation
- Returns:
- Throws:
IOException
EDBException
-
createIndex
Description copied from interface:BaseRelation
Get or create a simple (not sorted index) by the argument positions in indexed positions.- Specified by:
createIndex
in interfaceBaseRelation
- Parameters:
indexedPositions
- , positions which are indexed- Returns:
- index
- Throws:
IOException
EDBException
-
getIndex
Description copied from interface:BaseRelation
Get an index given by the argument positions in indexed positions (if it already exists).
Returns null if it does not exist.- Specified by:
getIndex
in interfaceBaseRelation
- Parameters:
indexedPositions
- the indexed positions- Returns:
- the corresponding index or
null
if none is available
-
getSortedIndex
Description copied from interface:BaseRelation
Get a sorted index given by the argument positions in indexed positions (if it already exists).
Returns null if it does not exist.- Specified by:
getSortedIndex
in interfaceBaseRelation
- Parameters:
indexedPositions
- the indexed positions- Returns:
- the corresponding index or
null
if none is available
-
addTuple
Description copied from interface:BaseRelation
add a tuple to the relation- Specified by:
addTuple
in interfaceBaseRelation
- Parameters:
t
- the tuple to add- Returns:
- tuple has been added
- Throws:
IOException
-
addTuple
Description copied from interface:BaseRelation
add a tuple to the relation- Specified by:
addTuple
in interfaceBaseRelation
- Parameters:
terms
- the tuple to add- Returns:
- tuple has been added
- Throws:
IOException
-
union
Description copied from interface:BaseRelation
add all tuples of R to this- Specified by:
union
in interfaceBaseRelation
- Throws:
IOException
EDBException
-
overwriteTuple
Description copied from interface:BaseRelation
Overwrite last argument of tuple.
First arguments are unique keys for tuple
Especially useful for triples [subject,predicate,object]
and object is changed- Specified by:
overwriteTuple
in interfaceBaseRelation
- Parameters:
tuple
- , overwrite tuple- Returns:
- the overwritten tuple
- Throws:
IOException
EDBException
-
overwriteTuple
Description copied from interface:BaseRelation
Overwrite last argument of tuple.
First arguments are unique keys for tuple
Especially useful for triples [subject,predicate,object]
and object is changed- Specified by:
overwriteTuple
in interfaceBaseRelation
- Parameters:
tuple
- , overwrite tuple- Returns:
- the overwritten tuple
- Throws:
IOException
EDBException
-
isOverwrittenByTuple
Description copied from interface:BaseRelation
returns the tuple which will be overwritten by tuple.- Specified by:
isOverwrittenByTuple
in interfaceBaseRelation
- Returns:
- Throws:
IOException
EDBException
-
removeTuple
Description copied from interface:BaseRelation
remove a tuple from the relation- Specified by:
removeTuple
in interfaceBaseRelation
- Parameters:
terms
- , tuple to be removed- Returns:
- true, if tuple has been removed
- Throws:
IOException
-
removeTuple
Description copied from interface:BaseRelation
remove a tuple from the relation- Specified by:
removeTuple
in interfaceBaseRelation
- Parameters:
terms
- , tuple to be removed- Returns:
- true, if tuple has been removed
- Throws:
IOException
-
removeTuple
public boolean removeTuple(int tuple) Description copied from interface:BaseRelation
remove a tuple from the relation- Specified by:
removeTuple
in interfaceBaseRelation
- Parameters:
tuple
- , address of tuple in tuple store- Returns:
- true, if tuple has been removed
-
addTuple
Description copied from interface:BaseRelation
add a tuple to the relation- Specified by:
addTuple
in interfaceBaseRelation
- Parameters:
tuple
- the tuple to add- Returns:
- tuple has been added
- Throws:
IOException
-
toString
-
clear
Description copied from interface:BaseRelation
remove all tuples- Specified by:
clear
in interfaceBaseRelation
- Throws:
IOException
EDBException
-
isEmpty
Description copied from interface:BaseRelation
Is the relation empty?- Specified by:
isEmpty
in interfaceBaseRelation
- Returns:
- relation is empty
- Throws:
IOException
-
isPersistent
public boolean isPersistent()Description copied from interface:BaseRelation
Is the relation persistent?- Specified by:
isPersistent
in interfaceBaseRelation
- Returns:
- is the relation persistent
-
getCacheInfo
Description copied from interface:BaseRelation
get the caching info- Specified by:
getCacheInfo
in interfaceBaseRelation
- Returns:
- object containing caching info
-
getInputBuffer
Description copied from interface:BaseRelation
get an input buffer for relation- Specified by:
getInputBuffer
in interfaceBaseRelation
- Returns:
- a tuple store which serves as buffer for input tuples
-
close
public void close()Description copied from interface:BaseRelation
Close the relation. Must be called to finalize the relation correctly- Specified by:
close
in interfaceBaseRelation
-
getIdentifier
Description copied from interface:BaseRelation
returns a unique identifier for the relation- Specified by:
getIdentifier
in interfaceBaseRelation
- Returns:
- unique identifier for relation
-
lastModificationTime
public long lastModificationTime()Description copied from interface:BaseRelation
returns the time of last modification- Specified by:
lastModificationTime
in interfaceBaseRelation
- Returns:
- time of last modification
-
mayContainDuplicates
public boolean mayContainDuplicates()Description copied from interface:BaseRelation
Might there be duplicates?- Specified by:
mayContainDuplicates
in interfaceBaseRelation
- Returns:
- , might there be duplicates in relation
-
isDirectEncoded
public boolean isDirectEncoded(int i) Description copied from interface:BaseRelation
are all values at argument i direct encoded- Specified by:
isDirectEncoded
in interfaceBaseRelation
- Parameters:
i
- , argument index- Returns:
-
getDirectEncodedType
public int getDirectEncodedType(int i) Description copied from interface:BaseRelation
get the type of the direct encoded argument- Specified by:
getDirectEncodedType
in interfaceBaseRelation
- Returns:
-
isTemporary
public boolean isTemporary()Description copied from interface:BaseRelation
Is the relation temporary only?- Specified by:
isTemporary
in interfaceBaseRelation
- Returns:
- is the relation persistent
-
containsTuple
Description copied from interface:BaseRelation
Is tuple contained in relation?- Specified by:
containsTuple
in interfaceBaseRelation
- Parameters:
tuple
- to be checked- Returns:
- tuple is contained
- Throws:
IOException
-
containsTuple
Description copied from interface:BaseRelation
Is tuple contained in relation?- Specified by:
containsTuple
in interfaceBaseRelation
- Parameters:
tuple
- to be checked- Returns:
- tuple is contained
- Throws:
IOException
-
containsTuple
Description copied from interface:BaseRelation
Is tuple contained in relation?- Specified by:
containsTuple
in interfaceBaseRelation
- Parameters:
tuple
- to be checked- Returns:
- tuple is contained
- Throws:
IOException
-
flush
public void flush()Description copied from interface:BaseRelation
Flush the relation. Must be called to finalize the relation correctly- Specified by:
flush
in interfaceBaseRelation
-
hasIndices
public boolean hasIndices() -
removeAllIndices
public void removeAllIndices() -
registerListener
Description copied from interface:BaseRelation
register a listener for adding, removing, modifying tuples- Specified by:
registerListener
in interfaceBaseRelation
-
getInternalArity
public int getInternalArity()Description copied from interface:BaseRelation
returns the internal arity of tuples- Specified by:
getInternalArity
in interfaceBaseRelation
- Returns:
-
elements
Description copied from interface:BaseRelation
returns an filteres enumerator for all tuples- Specified by:
elements
in interfaceBaseRelation
- Returns:
- returns enumerator for tuples
- Throws:
IOException
EDBException
-
select
public void select()Description copied from interface:BaseRelation
initialize- Specified by:
select
in interfaceBaseRelation
-