Package com.semedy.reasoner.edb.ramstore
Class MainMemoryRelation
java.lang.Object
com.semedy.reasoner.edb.ramstore.MainMemoryRelation
- All Implemented Interfaces:
BaseRelation,Relation
- Direct Known Subclasses:
MixedRelation
-
Field Summary
FieldsModifier and TypeFieldDescriptionthe base relation contains the tuples -
Constructor Summary
ConstructorsConstructorDescriptionMainMemoryRelation(MainMemoryBaseRelation baseRelation) MainMemoryRelation(String name, int arity, boolean duplicates, long[] grounds) -
Method Summary
Modifier and TypeMethodDescriptionvoidbooleanaddTuple(int tuple) add a tuple to the relationbooleanaddTuple(long[] tuple) add a tuple to the relationbooleanaddTuple(TupleBuffer tuple) add a tuple to the relationbooleancheckSanity(String message, boolean shadow) check the sanity of a relationvoidclear()remove all tuplesvoidclose()Close the relation.booleancontainsTuple(int t) Is tuple contained in relation?booleancontainsTuple(long[] t) Is tuple contained in relation?booleanIs 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 positionsvoiddelete()remove all tuples and release filesvoiddeSelect()release ressources because relation is currently not usedelements()returns an enumerator for all tupleselements(long[] filter) returns an filteres enumerator for all tuplesvoidflush()Flush the relation.intgetArity()returns the arity of the relationget the caching infoget standard path for binary fileintgetDirectEncodedType(int i) get the type of the direct encoded argumentreturns the file name for the relationlong[]get the groundsreturns 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 relationintreturns the internal arity of tupleslonggetMaxValue(int argument) returns the maximal value at that argument positionlonggetMinValue(int argument) returns the minimal value at that argument positiongetName()get a unique name of the relationlonggetNumberOfDifferentValues(int argument) Returns the number of different values at the argument positions.longgetNumberOfDifferentValues(int argument, long value) Returns the number of values occurring at the argument positions
Used for statisticsreturns the predicate symbol for the relationgetSortedIndex(int[] indexedPositions) Get a sorted index given by the argument positions in indexed positions (if it already exists).returns tuple storegnu.trove.map.TLongIntMapget values and their occurrencies for first argumentbooleanmay relation contain duplicates?booleanisDirectEncoded(int i) are all values at argument i direct encodedbooleanisEmpty()Is the relation empty?long[]isOverwrittenByTuple(long[] buffer) returns the tuple which will be overwritten by tuple.booleanIs the relation persistent?booleanIs the relation temporary only?longlast modification timebooleanMight there be duplicates?long[]overwriteTuple(long[] buffer) Overwrite last argument of tuple.overwriteTuple(TupleBuffer buffer) Overwrite last argument of tuple.voidreadBinaryFromBackup(String filepath) read tuples from a binary backup filevoidreadTupleFile(String filepath) read tuples from a (compressed) binary filevoidregisterListener(RelationListener listener) register a listener for adding, removing, modifying tuplesbooleanremoveTuple(int tuple) remove a tuple from the relationbooleanremoveTuple(long[] buffer) remove a tuple from the relationbooleanremoveTuple(TupleBuffer buffer) remove a tuple from the relationvoidselect()initialize it before using itlongsize()returns the number of tuples in relationlongsize in bytes, usded for cache managementtoString()voidbegin transactionvoidcommit last changesvoidrbort last changesvoidadd all tuples of R to thisvoidwriteBinary(String filepath) write tuples to a binary filevoidwriteBinaryToBackup(String filepath) write tuples to a binary backup filevoidwriteBinaryWithGrounds(String filepath) write complete tuples to a binary file
-
Field Details
-
_baseRelation
the base relation contains the tuples
-
-
Constructor Details
-
MainMemoryRelation
-
MainMemoryRelation
-
-
Method Details
-
getValues
public gnu.trove.map.TLongIntMap getValues()get values and their occurrencies for first argument- Returns:
-
sizeInBytes
public long sizeInBytes()size in bytes, usded for cache management- Specified by:
sizeInBytesin interfaceBaseRelation- Returns:
-
getTupleStore
returns tuple store- Returns:
-
elements
Description copied from interface:BaseRelationreturns an enumerator for all tuples- Specified by:
elementsin interfaceBaseRelation- Returns:
- returns enumerator for tuples
- Throws:
IOExceptionEDBException
-
size
Description copied from interface:BaseRelationreturns the number of tuples in relation- Specified by:
sizein interfaceBaseRelation- Returns:
- number of tuples in relation
- Throws:
IOExceptionEDBException
-
addTuple
Description copied from interface:BaseRelationadd a tuple to the relation- Specified by:
addTuplein interfaceBaseRelation- Parameters:
tuple- the tuple to add- Returns:
- tuple has been added
- Throws:
IOExceptionEDBException
-
containsTuple
Description copied from interface:BaseRelationIs tuple contained in relation?- Specified by:
containsTuplein interfaceBaseRelation- Parameters:
t- to be checked- Returns:
- tuple is contained
- Throws:
IOException
-
containsTuple
Description copied from interface:BaseRelationIs tuple contained in relation?- Specified by:
containsTuplein interfaceBaseRelation- Parameters:
t- to be checked- Returns:
- tuple is contained
- Throws:
IOException
-
containsTuple
Description copied from interface:BaseRelationIs tuple contained in relation?- Specified by:
containsTuplein interfaceBaseRelation- Parameters:
t- to be checked- Returns:
- tuple is contained
- Throws:
IOException
-
getNumberOfDifferentValues
Description copied from interface:RelationReturns the number of different values at the argument positions.
Used for statistics.- Specified by:
getNumberOfDifferentValuesin interfaceRelation- Parameters:
argument- , argument position- Returns:
- Throws:
EDBExceptionIOException
-
getNumberOfDifferentValues
Description copied from interface:RelationReturns the number of values occurring at the argument positions
Used for statistics- Specified by:
getNumberOfDifferentValuesin interfaceRelation- Parameters:
argument- , argument positionvalue- , the concrete value- Returns:
- Throws:
EDBExceptionIOException
-
toString
-
addTuple
Description copied from interface:BaseRelationadd a tuple to the relation- Specified by:
addTuplein interfaceBaseRelation- Parameters:
tuple- the tuple to add- Returns:
- tuple has been added
- Throws:
IOExceptionEDBException
-
getCacheInfo
Description copied from interface:BaseRelationget the caching info- Specified by:
getCacheInfoin interfaceBaseRelation- Returns:
- object containing caching info
-
addTuple
Description copied from interface:BaseRelationadd a tuple to the relation- Specified by:
addTuplein interfaceBaseRelation- Parameters:
tuple- the tuple to add- Returns:
- tuple has been added
- Throws:
IOExceptionEDBException
-
clear
Description copied from interface:BaseRelationremove all tuples- Specified by:
clearin interfaceBaseRelation- Throws:
IOExceptionEDBException
-
isEmpty
Description copied from interface:BaseRelationIs the relation empty?- Specified by:
isEmptyin interfaceBaseRelation- Returns:
- relation is empty
- Throws:
IOException
-
delete
Description copied from interface:Relationremove all tuples and release files- Specified by:
deletein interfaceRelation- Throws:
IOException
-
writeBinary
Description copied from interface:Relationwrite tuples to a binary file- Specified by:
writeBinaryin interfaceBaseRelation- Specified by:
writeBinaryin interfaceRelation- Throws:
IOExceptionEDBException
-
readTupleFile
Description copied from interface:Relationread tuples from a (compressed) binary file- Specified by:
readTupleFilein interfaceBaseRelation- Specified by:
readTupleFilein interfaceRelation- Parameters:
filepath- , the file path to read from- Throws:
IOExceptionEDBException
-
getDataFilePath
Description copied from interface:Relationget standard path for binary file- Specified by:
getDataFilePathin interfaceRelation- Returns:
-
removeTuple
Description copied from interface:BaseRelationremove a tuple from the relation- Specified by:
removeTuplein interfaceBaseRelation- Parameters:
tuple- , address of tuple in tuple store- Returns:
- true, if tuple has been removed
- Throws:
IOExceptionEDBException
-
getArity
public int getArity()Description copied from interface:BaseRelationreturns the arity of the relation- Specified by:
getArityin interfaceBaseRelation- Returns:
- arity of relation
-
createSortedIndex
Description copied from interface:BaseRelationret or create a sorted index given by the argument positions in indexed positions- Specified by:
createSortedIndexin interfaceBaseRelation- Returns:
- Throws:
IOExceptionEDBException
-
createIndex
Description copied from interface:BaseRelationGet or create a simple (not sorted index) by the argument positions in indexed positions.- Specified by:
createIndexin interfaceBaseRelation- Parameters:
indexedpositions- , positions which are indexed- Returns:
- index
- Throws:
IOExceptionEDBException
-
getIndex
Description copied from interface:BaseRelationGet an index given by the argument positions in indexed positions (if it already exists).
Returns null if it does not exist.- Specified by:
getIndexin interfaceBaseRelation- Parameters:
indexedPositions- the indexed positions- Returns:
- the corresponding index or
nullif none is available
-
getSortedIndex
Description copied from interface:BaseRelationGet a sorted index given by the argument positions in indexed positions (if it already exists).
Returns null if it does not exist.- Specified by:
getSortedIndexin interfaceBaseRelation- Parameters:
indexedPositions- the indexed positions- Returns:
- the corresponding index or
nullif none is available
-
isPersistent
public boolean isPersistent()Description copied from interface:BaseRelationIs the relation persistent?- Specified by:
isPersistentin interfaceBaseRelation- Returns:
- is the relation persistent
-
close
Description copied from interface:BaseRelationClose the relation. Must be called to finalize the relation correctly- Specified by:
closein interfaceBaseRelation- Throws:
IOException
-
getInputBuffer
Description copied from interface:BaseRelationget an input buffer for relation- Specified by:
getInputBufferin interfaceBaseRelation- Returns:
- a tuple store which serves as buffer for input tuples
-
removeTuple
Description copied from interface:BaseRelationremove a tuple from the relation- Specified by:
removeTuplein interfaceBaseRelation- Parameters:
buffer- , tuple to be removed- Returns:
- true, if tuple has been removed
- Throws:
IOExceptionEDBException
-
removeTuple
Description copied from interface:BaseRelationremove a tuple from the relation- Specified by:
removeTuplein interfaceBaseRelation- Parameters:
buffer- , tuple to be removed- Returns:
- true, if tuple has been removed
- Throws:
IOExceptionEDBException
-
overwriteTuple
Description copied from interface:BaseRelationOverwrite last argument of tuple.
First arguments are unique keys for tuple
Especially useful for triples [subject,predicate,object]
and object is changed- Specified by:
overwriteTuplein interfaceBaseRelation- Parameters:
buffer- , overwrite tuple- Returns:
- the overwritten tuple
- Throws:
IOExceptionEDBException
-
overwriteTuple
Description copied from interface:BaseRelationOverwrite last argument of tuple.
First arguments are unique keys for tuple
Especially useful for triples [subject,predicate,object]
and object is changed- Specified by:
overwriteTuplein interfaceBaseRelation- Parameters:
buffer- , overwrite tuple- Returns:
- the overwritten tuple
- Throws:
IOExceptionEDBException
-
isOverwrittenByTuple
Description copied from interface:BaseRelationreturns the tuple which will be overwritten by tuple.- Specified by:
isOverwrittenByTuplein interfaceBaseRelation- Returns:
- Throws:
IOExceptionEDBException
-
select
Description copied from interface:Relationinitialize it before using it- Specified by:
selectin interfaceBaseRelation- Specified by:
selectin interfaceRelation- Throws:
IOExceptionEDBException
-
getPredicateSymbol
Description copied from interface:Relationreturns the predicate symbol for the relation- Specified by:
getPredicateSymbolin interfaceRelation- Returns:
-
getFilename
Description copied from interface:Relationreturns the file name for the relation- Specified by:
getFilenamein interfaceRelation- Returns:
-
getIdentifier
Description copied from interface:BaseRelationreturns a unique identifier for the relation- Specified by:
getIdentifierin interfaceBaseRelation- Returns:
- unique identifier for relation
-
deSelect
Description copied from interface:Relationrelease ressources because relation is currently not used- Specified by:
deSelectin interfaceRelation- Throws:
IOException
-
transactionRollback
Description copied from interface:Relationrbort last changes- Specified by:
transactionRollbackin interfaceRelation- Throws:
EDBExceptionIOException
-
transactionCommit
Description copied from interface:Relationcommit last changes- Specified by:
transactionCommitin interfaceRelation- Throws:
EDBExceptionIOException
-
getMinValue
Description copied from interface:BaseRelationreturns the minimal value at that argument position- Specified by:
getMinValuein interfaceBaseRelation- Parameters:
argument- , argument position @return, minimal value- Throws:
IOExceptionEDBException
-
getMaxValue
Description copied from interface:BaseRelationreturns the maximal value at that argument position- Specified by:
getMaxValuein interfaceBaseRelation- Parameters:
argument- , argument position- Returns:
- max value at argument position
- Throws:
IOExceptionEDBException
-
lastModificationTime
public long lastModificationTime()Description copied from interface:Relationlast modification time- Specified by:
lastModificationTimein interfaceBaseRelation- Specified by:
lastModificationTimein interfaceRelation- Returns:
- time of last modification
-
addSubRelation
-
mayContainDuplicates
public boolean mayContainDuplicates()Description copied from interface:BaseRelationMight there be duplicates?- Specified by:
mayContainDuplicatesin interfaceBaseRelation- Returns:
- , might there be duplicates in relation
-
isDirectEncoded
public boolean isDirectEncoded(int i) Description copied from interface:BaseRelationare all values at argument i direct encoded- Specified by:
isDirectEncodedin interfaceBaseRelation- Parameters:
i- , argument index- Returns:
-
getDirectEncodedType
public int getDirectEncodedType(int i) Description copied from interface:BaseRelationget the type of the direct encoded argument- Specified by:
getDirectEncodedTypein interfaceBaseRelation- Returns:
-
isTemporary
public boolean isTemporary()Description copied from interface:BaseRelationIs the relation temporary only?- Specified by:
isTemporaryin interfaceBaseRelation- Returns:
- is the relation persistent
-
flush
Description copied from interface:BaseRelationFlush the relation. Must be called to finalize the relation correctly- Specified by:
flushin interfaceBaseRelation- Throws:
IOExceptionEDBException
-
checkSanity
Description copied from interface:Relationcheck the sanity of a relation- Specified by:
checkSanityin interfaceRelationshadow- , check in shadow tree- Throws:
IOExceptionEDBException
-
registerListener
Description copied from interface:BaseRelationregister a listener for adding, removing, modifying tuples- Specified by:
registerListenerin interfaceBaseRelation
-
getGrounds
public long[] getGrounds()Description copied from interface:Relationget the grounds- Specified by:
getGroundsin interfaceRelation- Returns:
-
writeBinaryToBackup
Description copied from interface:Relationwrite tuples to a binary backup file- Specified by:
writeBinaryToBackupin interfaceRelation- Throws:
IOExceptionEDBException
-
writeBinaryWithGrounds
Description copied from interface:Relationwrite complete tuples to a binary file- Specified by:
writeBinaryWithGroundsin interfaceRelation- Throws:
IOExceptionEDBException
-
readBinaryFromBackup
Description copied from interface:Relationread tuples from a binary backup file- Specified by:
readBinaryFromBackupin interfaceRelation- Throws:
IOExceptionEDBException
-
union
Description copied from interface:BaseRelationadd all tuples of R to this- Specified by:
unionin interfaceBaseRelation- Throws:
IOExceptionEDBException
-
getName
Description copied from interface:Relationget a unique name of the relation -
hasDuplicates
public boolean hasDuplicates()Description copied from interface:BaseRelationmay relation contain duplicates?- Specified by:
hasDuplicatesin interfaceBaseRelation- Returns:
-
transactionBegin
Description copied from interface:Relationbegin transaction- Specified by:
transactionBeginin interfaceRelation- Throws:
EDBExceptionIOException
-
getInternalArity
public int getInternalArity()Description copied from interface:BaseRelationreturns the internal arity of tuples- Specified by:
getInternalArityin interfaceBaseRelation- Returns:
-
elements
Description copied from interface:BaseRelationreturns an filteres enumerator for all tuples- Specified by:
elementsin interfaceBaseRelation- Returns:
- returns enumerator for tuples
- Throws:
IOExceptionEDBException
-