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
Fields -
Constructor Summary
ConstructorsConstructorDescriptionSymbolTableRAM(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 TypeMethodDescriptionvoidAdds an index to the symbol table.booleancheckSanity(boolean shadow) check sanityvoidclear()remove all symbolsvoidclose()Close symbol table.voidcommit()commit transactionfinal longcreateFunctionCode(long[] buffer, Function f) create function codevoiddelete()delete all / release fileslongReturns a code for an object but does not internalize the object.longInternalize a value.voidflush()flushes symbol table.get the external data typesfinal longgetFunctionCode(long[] buffer) get function codelong[]getFunctionEncoding(long code) get the encoding of a function code, if it is therefinal FunctiongetValueFunction(long code) Produce a value from the code of an internal constant.final ObjectgetValueSymbol(long code) Produce a value from the code of an internal constant.booleanare there any indices attached to symbol table?booleanis symbol table within a transactionbooleanis symbol table in bulk modebooleanisCreatedDuringReasoning(long code) indicated for a code, that the corresponding symbol has been created during reasoningbooleanisEmpty()is symbol table empty (now symbols stored)iterator()get an iterator for all symbolslongreturns the last time a modification took placevoidload a symbol table from file systemvoidremoves all symbol table indexes.voidremoveNotInternalized(long code) remove a non internalized term from symbol tablevoidremoves the given symbol table index.voidreset transactionvoidrollback()rollback transactionvoidsetBulkMode(boolean b) for loading into an empty symbol table bulk mode should be usedlongsize()returns the number of symbols in the symbol tablevoidstore symbol table on diskvoidbegin a transaction.voidcommit last changesvoidabort 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, unifyMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods 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:
getExternalDataTypesin interfaceSymbolTable- Returns:
-
createFunctionCode
Description copied from class:AbstractSymbolTablecreate function code- Specified by:
createFunctionCodein interfaceSymbolTable- Specified by:
createFunctionCodein 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:AbstractSymbolTableget function code- Specified by:
getFunctionCodein interfaceSymbolTable- Specified by:
getFunctionCodein 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:AbstractSymbolTableget the encoding of a function code, if it is there- Specified by:
getFunctionEncodingin interfaceSymbolTable- Specified by:
getFunctionEncodingin 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:
getValueFunctionin interfaceSymbolTable- Specified by:
getValueFunctionin classAbstractSymbolTable- Parameters:
code- , the code of the internal term- Returns:
- Throws:
IOExceptionSemReasonerException
-
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:
getValueSymbolin interfaceSymbolTable- Specified by:
getValueSymbolin 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:SymbolTableremove all symbols- Specified by:
clearin interfaceSymbolTable
-
delete
public void delete()Description copied from interface:SymbolTabledelete all / release files- Specified by:
deletein interfaceSymbolTable
-
close
Description copied from interface:SymbolTableClose symbol table. Must be called to correctly finalize symbol table- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceSymbolTable- Throws:
IOException
-
transactionBegin
Description copied from interface:SymbolTablebegin a transaction.- Specified by:
transactionBeginin interfaceSymbolTable- Throws:
IOExceptionSymboltableException
-
transactionRollback
Description copied from interface:SymbolTableabort last changes- Specified by:
transactionRollbackin interfaceSymbolTable- Throws:
IOExceptionSymboltableException
-
transactionCommit
Description copied from interface:SymbolTablecommit last changes- Specified by:
transactionCommitin interfaceSymbolTable- Throws:
IOExceptionSymboltableException
-
isCreatedDuringReasoning
public boolean isCreatedDuringReasoning(long code) Description copied from interface:ReasoningSymbolTableindicated for a code, that the corresponding symbol has been created during reasoning- Specified by:
isCreatedDuringReasoningin interfaceReasoningSymbolTable- Returns:
-
size
public long size()Description copied from interface:SymbolTablereturns the number of symbols in the symbol table- Specified by:
sizein interfaceSymbolTable- Returns:
-
iterator
Description copied from interface:SymbolTableget an iterator for all symbols- Specified by:
iteratorin interfaceIterable<Object>- Specified by:
iteratorin interfaceSymbolTable- Returns:
- an iterator over all symbols in this symbol table
-
addSymbolTableIndex
Description copied from interface:SymbolTableAdds an index to the symbol table.
Examples are the text index and the geo index.- Specified by:
addSymbolTableIndexin interfaceSymbolTable- Specified by:
addSymbolTableIndexin classAbstractSymbolTable- Parameters:
index- the index
-
removeSymbolTableIndex
Description copied from interface:SymbolTableremoves the given symbol table index.- Specified by:
removeSymbolTableIndexin interfaceSymbolTable- Specified by:
removeSymbolTableIndexin classAbstractSymbolTable- Parameters:
index- the index
-
removeAllSymbolTableIndexes
public void removeAllSymbolTableIndexes()Description copied from interface:SymbolTableremoves all symbol table indexes.- Specified by:
removeAllSymbolTableIndexesin interfaceSymbolTable- Overrides:
removeAllSymbolTableIndexesin classAbstractSymbolTable
-
hasIndices
public boolean hasIndices()Description copied from interface:SymbolTableare there any indices attached to symbol table?- Specified by:
hasIndicesin interfaceSymbolTable- Returns:
-
flush
Description copied from interface:SymbolTableflushes symbol table.- Specified by:
flushin interfaceSymbolTable- Throws:
IOException
-
encodeNotInternalize
Description copied from interface:SymbolTableReturns 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:
encodeNotInternalizein interfaceSymbolTable- Specified by:
encodeNotInternalizein classAbstractSymbolTable- Returns:
- Throws:
IOExceptionSemReasonerExceptionEDBException
-
removeNotInternalized
Description copied from interface:SymbolTableremove a non internalized term from symbol table- Specified by:
removeNotInternalizedin interfaceSymbolTable- Throws:
IOException
-
commit
Description copied from interface:SymbolTablecommit transaction- Specified by:
commitin interfaceSymbolTable- Throws:
EDBExceptionIOException
-
rollback
public void rollback()Description copied from interface:SymbolTablerollback transaction- Specified by:
rollbackin interfaceSymbolTable
-
checkSanity
Description copied from interface:SymbolTablecheck sanity- Specified by:
checkSanityin interfaceSymbolTable- Returns:
- Throws:
IOException
-
lastModificationTime
public long lastModificationTime()Description copied from interface:SymbolTablereturns the last time a modification took place- Specified by:
lastModificationTimein interfaceSymbolTable- Returns:
-
isEmpty
public boolean isEmpty()Description copied from interface:SymbolTableis symbol table empty (now symbols stored)- Specified by:
isEmptyin interfaceSymbolTable- Returns:
-
setBulkMode
Description copied from interface:SymbolTablefor loading into an empty symbol table bulk mode should be used- Specified by:
setBulkModein interfaceSymbolTable- Throws:
IOExceptionEDBException
-
encodeWOEncoding
Description copied from interface:SymbolTableInternalize 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:
encodeWOEncodingin interfaceSymbolTable- Parameters:
t- , the user term to be internalized- Returns:
- code, the code of the term
- Throws:
EDBExceptionIOExceptionSemReasonerException
-
isBulkMode
public boolean isBulkMode()Description copied from interface:SymbolTableis symbol table in bulk mode- Specified by:
isBulkModein interfaceSymbolTable- Returns:
-
resetTransaction
public void resetTransaction()Description copied from interface:SymbolTablereset transaction- Specified by:
resetTransactionin interfaceSymbolTable
-
inTransaction
public boolean inTransaction()Description copied from interface:SymbolTableis symbol table within a transaction- Specified by:
inTransactionin interfaceSymbolTable- Returns:
-