Package com.semedy.reasoner.symboltable
Class SymbolTableRAM
java.lang.Object
com.semedy.reasoner.symboltable.AbstractSymbolTable
com.semedy.reasoner.symboltable.SymbolTableRAM
- All Implemented Interfaces:
SymbolTable
,ReasoningSymbolTable
,Closeable
,AutoCloseable
,Iterable<Object>
provides all functionality for handling a symbol table in main memory
-
Field Summary
-
Constructor Summary
ConstructorDescriptionSymbolTableRAM
(ExternalDataTypeProvider datatypes, boolean directencoding, int termlength) SymbolTableRAM
(ExternalDataTypeProvider datatypes, boolean directencoding, int termlength, boolean notify) SymbolTableRAM
(ExternalDataTypeProvider datatypes, boolean directencoding, String edbDir, String logDir, int termlength, boolean notify) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds an index to the symbol table.boolean
checkSanity
(boolean shadow) check sanityvoid
clear()
remove all symbolsvoid
close()
Close symbol table.void
commit()
commit transactionfinal long
createFunctionCode
(long[] buffer, Function f) create function codevoid
delete()
delete all / release fileslong
Returns a code for an object but does not internalize the object.long
Internalize a value.void
flush()
flushes symbol table.get the external data typesfinal long
getFunctionCode
(long[] buffer) get function codelong[]
getFunctionEncoding
(long code) get the encoding of a function code, if it is therefinal Function
getValueFunction
(long code) Produce a value from the code of an internal constant.final Object
getValueSymbol
(long code) Produce a value from the code of an internal constant.boolean
are there any indices attached to symbol table?boolean
is symbol table within a transactionboolean
is symbol table in bulk modeboolean
isCreatedDuringReasoning
(long code) indicated for a code, that the corresponding symbol has been created during reasoningboolean
isEmpty()
is symbol table empty (now symbols stored)iterator()
get an iterator for all symbolslong
returns the last time a modification took placevoid
load a symbol table from file systemvoid
removes all symbol table indexes.void
removeNotInternalized
(long code) remove a non internalized term from symbol tablevoid
removes the given symbol table index.void
reset transactionvoid
rollback()
rollback transactionvoid
setBulkMode
(boolean b) for loading into an empty symbol table bulk mode should be usedlong
size()
returns the number of symbols in the symbol tablevoid
store symbol table on diskvoid
begin a transaction.void
commit last changesvoid
abort last changesMethods inherited from class com.semedy.reasoner.symboltable.AbstractSymbolTable
createNonGroundFunction, decodeNonGroundFunction, encode, getCode, getGeoIndex, getTextIndex, getValue, match, matchArguments, matchArguments, notifySymbolAdded, recreateSymbolTableIndexes, refreshSearchIndexes, semiSubstitute, substitute, substitute, substitute, substituteArguments, substituteArguments, substituteFunction, unifiable, unify, unify
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface com.semedy.reasoner.api.symboltable.SymbolTable
decodeNonGroundFunction, encode, getCode, getGeoIndex, getTextIndex, getValue, matchArguments, notifySymbolAdded, recreateSymbolTableIndexes, refreshSearchIndexes, substitute, substitute, substituteArguments, unify, unify
-
Field Details
-
FUNCTIONSFILENAME
file names to store symbol table- See Also:
-
SYMBOLSFILENAME
- See Also:
-
-
Constructor Details
-
SymbolTableRAM
public SymbolTableRAM(ExternalDataTypeProvider datatypes, boolean directencoding, String edbDir, String logDir, int termlength, boolean notify) -
SymbolTableRAM
public SymbolTableRAM(ExternalDataTypeProvider datatypes, boolean directencoding, int termlength, boolean notify) -
SymbolTableRAM
-
-
Method Details
-
getExternalDataTypes
get the external data types- Specified by:
getExternalDataTypes
in interfaceSymbolTable
- Returns:
-
createFunctionCode
Description copied from class:AbstractSymbolTable
create function code- Specified by:
createFunctionCode
in interfaceSymbolTable
- Specified by:
createFunctionCode
in classAbstractSymbolTable
- Parameters:
buffer
- , t[0] code of function symbol, t[1]..t[n] codes for n arguments- Returns:
- code for whole function
-
getFunctionCode
public final long getFunctionCode(long[] buffer) Description copied from class:AbstractSymbolTable
get function code- Specified by:
getFunctionCode
in interfaceSymbolTable
- Specified by:
getFunctionCode
in classAbstractSymbolTable
- Parameters:
buffer
- , t[0] code of function symbol, t[1]..t[n] codes for n arguments- Returns:
- code for whole function
-
getFunctionEncoding
public long[] getFunctionEncoding(long code) Description copied from class:AbstractSymbolTable
get the encoding of a function code, if it is there- Specified by:
getFunctionEncoding
in interfaceSymbolTable
- Specified by:
getFunctionEncoding
in classAbstractSymbolTable
- Parameters:
code
- , the code of the function- Returns:
- t[0] code of function symbol, t[1]..t[n] codes for n arguments
-
getValueFunction
Produce a value from the code of an internal constant.
Should be used only for the call of builtins and for the final answer- Specified by:
getValueFunction
in interfaceSymbolTable
- Specified by:
getValueFunction
in classAbstractSymbolTable
- Parameters:
code
- , the code of the internal term- Returns:
- Throws:
IOException
SemReasonerException
-
getValueSymbol
Produce a value from the code of an internal constant.
Should be used only for the call of builtins and for the final answer- Specified by:
getValueSymbol
in interfaceSymbolTable
- Specified by:
getValueSymbol
in classAbstractSymbolTable
- Parameters:
code
- , the code of the internal term- Returns:
- Throws:
SymboltableException
-
storeSymbolTable
store symbol table on disk- Throws:
SymboltableException
-
getSymbolTableFileName
-
loadSymbolTable
load a symbol table from file system- Throws:
SymboltableException
-
clear
public void clear()Description copied from interface:SymbolTable
remove all symbols- Specified by:
clear
in interfaceSymbolTable
-
delete
public void delete()Description copied from interface:SymbolTable
delete all / release files- Specified by:
delete
in interfaceSymbolTable
-
close
Description copied from interface:SymbolTable
Close symbol table. Must be called to correctly finalize symbol table- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceSymbolTable
- Throws:
IOException
-
transactionBegin
Description copied from interface:SymbolTable
begin a transaction.- Specified by:
transactionBegin
in interfaceSymbolTable
- Throws:
IOException
SymboltableException
-
transactionRollback
Description copied from interface:SymbolTable
abort last changes- Specified by:
transactionRollback
in interfaceSymbolTable
- Throws:
IOException
SymboltableException
-
transactionCommit
Description copied from interface:SymbolTable
commit last changes- Specified by:
transactionCommit
in interfaceSymbolTable
- Throws:
IOException
SymboltableException
-
isCreatedDuringReasoning
public boolean isCreatedDuringReasoning(long code) Description copied from interface:ReasoningSymbolTable
indicated for a code, that the corresponding symbol has been created during reasoning- Specified by:
isCreatedDuringReasoning
in interfaceReasoningSymbolTable
- Returns:
-
size
public long size()Description copied from interface:SymbolTable
returns the number of symbols in the symbol table- Specified by:
size
in interfaceSymbolTable
- Returns:
-
iterator
Description copied from interface:SymbolTable
get an iterator for all symbols- Specified by:
iterator
in interfaceIterable<Object>
- Specified by:
iterator
in interfaceSymbolTable
- Returns:
- an iterator over all symbols in this symbol table
-
addSymbolTableIndex
Description copied from interface:SymbolTable
Adds an index to the symbol table.
Examples are the text index and the geo index.- Specified by:
addSymbolTableIndex
in interfaceSymbolTable
- Specified by:
addSymbolTableIndex
in classAbstractSymbolTable
- Parameters:
index
- the index
-
removeSymbolTableIndex
Description copied from interface:SymbolTable
removes the given symbol table index.- Specified by:
removeSymbolTableIndex
in interfaceSymbolTable
- Specified by:
removeSymbolTableIndex
in classAbstractSymbolTable
- Parameters:
index
- the index
-
removeAllSymbolTableIndexes
public void removeAllSymbolTableIndexes()Description copied from interface:SymbolTable
removes all symbol table indexes.- Specified by:
removeAllSymbolTableIndexes
in interfaceSymbolTable
- Overrides:
removeAllSymbolTableIndexes
in classAbstractSymbolTable
-
hasIndices
public boolean hasIndices()Description copied from interface:SymbolTable
are there any indices attached to symbol table?- Specified by:
hasIndices
in interfaceSymbolTable
- Returns:
-
flush
Description copied from interface:SymbolTable
flushes symbol table.- Specified by:
flush
in interfaceSymbolTable
- Throws:
IOException
-
encodeNotInternalize
Description copied from interface:SymbolTable
Returns a code for an object but does not internalize the object.
This means that there might be different codes
for the same object.- Specified by:
encodeNotInternalize
in interfaceSymbolTable
- Specified by:
encodeNotInternalize
in classAbstractSymbolTable
- Returns:
- Throws:
IOException
SemReasonerException
EDBException
-
removeNotInternalized
Description copied from interface:SymbolTable
remove a non internalized term from symbol table- Specified by:
removeNotInternalized
in interfaceSymbolTable
- Throws:
IOException
-
commit
Description copied from interface:SymbolTable
commit transaction- Specified by:
commit
in interfaceSymbolTable
- Throws:
EDBException
IOException
-
rollback
public void rollback()Description copied from interface:SymbolTable
rollback transaction- Specified by:
rollback
in interfaceSymbolTable
-
checkSanity
Description copied from interface:SymbolTable
check sanity- Specified by:
checkSanity
in interfaceSymbolTable
- Returns:
- Throws:
IOException
-
lastModificationTime
public long lastModificationTime()Description copied from interface:SymbolTable
returns the last time a modification took place- Specified by:
lastModificationTime
in interfaceSymbolTable
- Returns:
-
isEmpty
public boolean isEmpty()Description copied from interface:SymbolTable
is symbol table empty (now symbols stored)- Specified by:
isEmpty
in interfaceSymbolTable
- Returns:
-
setBulkMode
Description copied from interface:SymbolTable
for loading into an empty symbol table bulk mode should be used- Specified by:
setBulkMode
in interfaceSymbolTable
- Throws:
IOException
EDBException
-
encodeWOEncoding
Description copied from interface:SymbolTable
Internalize a value. All values are internalized,
i.e. for every different value there exists exactly one instance and thus
also exactly one code
Encoding is done without encoding characters in strings- Specified by:
encodeWOEncoding
in interfaceSymbolTable
- Parameters:
t
- , the user term to be internalized- Returns:
- code, the code of the term
- Throws:
EDBException
IOException
SemReasonerException
-
isBulkMode
public boolean isBulkMode()Description copied from interface:SymbolTable
is symbol table in bulk mode- Specified by:
isBulkMode
in interfaceSymbolTable
- Returns:
-
resetTransaction
public void resetTransaction()Description copied from interface:SymbolTable
reset transaction- Specified by:
resetTransaction
in interfaceSymbolTable
-
inTransaction
public boolean inTransaction()Description copied from interface:SymbolTable
is symbol table within a transaction- Specified by:
inTransaction
in interfaceSymbolTable
- Returns:
-