Package com.semedy.reasoner.symboltable
Class ReasoningSymbolTableRAM
java.lang.Object
com.semedy.reasoner.symboltable.AbstractSymbolTable
com.semedy.reasoner.symboltable.ReasoningSymbolTableRAM
- All Implemented Interfaces:
SymbolTable,ReasoningSymbolTable,Closeable,AutoCloseable,Iterable<Object>
Provides all functionality for handling a symbol table in main memory for reasoning.
If for an object a code is searched/created it is first searched in edb symbol table.
If the code is not found in edb symbol table a new one is created here.
Thus the codes created during reasoning are clearly separated from the codes in edb
and can be thrown away after reasoning is finished.
If for an object a code is searched/created it is first searched in edb symbol table.
If the code is not found in edb symbol table a new one is created here.
Thus the codes created during reasoning are clearly separated from the codes in edb
and can be thrown away after reasoning is finished.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionReasoningSymbolTableRAM(ExternalDataTypeProvider dataTypes, boolean directencoding, int termlength) ReasoningSymbolTableRAM(ExternalDataTypeProvider dataTypes, boolean directencoding, SymbolTable edbsymboltable, int termlength) is it the reasoning symbol table -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds an index to the symbol table.booleancheckSanity(boolean shadow) check sanityvoidclear()remove all symbolsvoidclose()Close symbol table.voidcommit()commit transactionlongcreateFunctionCode(long[] t, 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 provider for external data typeslonggetFunctionCode(long[] t) get function codelong[]getFunctionEncoding(long code) get the encoding of a function code, if it is thereget geo indexget text indexgetValue(long code, boolean b) getValueFunction(long code) get function for symbol codegetValueFunction(long code, boolean decodeSets) Produce a value from the code.getValueSymbol(long code) get object for symbol codegetValueSymbol(long code, boolean decodeSets) Produce a value from the code.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 placevoidnotifySymbol(String symbol, long code) voidremoveNotInternalized(long code) remove a non internalized term from symbol tablevoidremoves the given symbol table index.voidreOpen()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 tablevoidbegin a transaction.voidcommit last changesvoidabort last changesMethods inherited from class com.semedy.reasoner.symboltable.AbstractSymbolTable
createNonGroundFunction, decodeNonGroundFunction, encode, getCode, getValue, match, matchArguments, matchArguments, notifySymbolAdded, recreateSymbolTableIndexes, refreshSearchIndexes, removeAllSymbolTableIndexes, 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.symboltable.ReasoningSymbolTable
createNonGroundFunction, match, matchArguments, substitute, substituteArguments, unifiableMethods inherited from interface com.semedy.reasoner.api.symboltable.SymbolTable
decodeNonGroundFunction, encode, getCode, getValue, matchArguments, notifySymbolAdded, recreateSymbolTableIndexes, refreshSearchIndexes, removeAllSymbolTableIndexes, substitute, substitute, substituteArguments, unify, unify
-
Field Details
-
_reasoning
public static final long _reasoning- See Also:
-
-
Constructor Details
-
ReasoningSymbolTableRAM
public ReasoningSymbolTableRAM(ExternalDataTypeProvider dataTypes, boolean directencoding, SymbolTable edbsymboltable, int termlength) is it the reasoning symbol table -
ReasoningSymbolTableRAM
public ReasoningSymbolTableRAM(ExternalDataTypeProvider dataTypes, boolean directencoding, int termlength)
-
-
Method Details
-
createFunctionCode
Description copied from class:AbstractSymbolTablecreate function code- Specified by:
createFunctionCodein interfaceSymbolTable- Specified by:
createFunctionCodein classAbstractSymbolTable- Parameters:
t- , t[0] code of function symbol, t[1]..t[n] codes for n arguments- Returns:
- code for whole function
- Throws:
SemReasonerExceptionEDBExceptionIOException
-
getFunctionCode
Description copied from class:AbstractSymbolTableget function code- Specified by:
getFunctionCodein interfaceSymbolTable- Specified by:
getFunctionCodein classAbstractSymbolTable- Parameters:
t- , t[0] code of function symbol, t[1]..t[n] codes for n arguments- Returns:
- code for whole function
- Throws:
SemReasonerExceptionIOException
-
getFunctionEncoding
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
- Throws:
SemReasonerExceptionIOException
-
getValueFunction
public Function getValueFunction(long code, boolean decodeSets) throws SemReasonerException, IOException Produce a value from the code. Should be used only for the call of builtins and for the final answer. Sets may be decoded into lists (setsDecode = true)- Parameters:
code- , the code of the internal termdecodeSets- , decode sets into lists- Returns:
- Throws:
SemReasonerExceptionIOException
-
getValueSymbol
public Object getValueSymbol(long code, boolean decodeSets) throws SemReasonerException, IOException Produce a value from the code. Should be used only for the call of builtins and for the final answer. Sets may be decoded into lists (setsDecode = true)- Parameters:
code- , the code of the internal termdecodeSets- , decode sets into lists- Returns:
- Throws:
SemReasonerExceptionIOException
-
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:
SemReasonerExceptionIOException
-
clear
Description copied from interface:SymbolTableremove all symbols- Specified by:
clearin interfaceSymbolTable- Throws:
EDBExceptionSemReasonerException
-
delete
Description copied from interface:SymbolTabledelete all / release files- Specified by:
deletein interfaceSymbolTable- Throws:
SemReasonerException
-
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
-
flush
Description copied from interface:SymbolTableflushes symbol table.- Specified by:
flushin interfaceSymbolTable- Throws:
IOException
-
transactionBegin
Description copied from interface:SymbolTablebegin a transaction.- Specified by:
transactionBeginin interfaceSymbolTable- Throws:
SemReasonerException- if an error occursIOException
-
transactionRollback
Description copied from interface:SymbolTableabort last changes- Specified by:
transactionRollbackin interfaceSymbolTable- Throws:
SemReasonerException- if an error occursIOException
-
transactionCommit
Description copied from interface:SymbolTablecommit last changes- Specified by:
transactionCommitin interfaceSymbolTable- Throws:
SemReasonerException- if an error occursIOException
-
getExternalDataTypes
Description copied from interface:SymbolTableget the provider for external data types- Specified by:
getExternalDataTypesin interfaceSymbolTable- Returns:
-
getTextIndex
Description copied from interface:SymbolTableget text index- Specified by:
getTextIndexin interfaceSymbolTable- Overrides:
getTextIndexin classAbstractSymbolTable- Returns:
-
getGeoIndex
Description copied from interface:SymbolTableget geo index- Specified by:
getGeoIndexin interfaceSymbolTable- Overrides:
getGeoIndexin classAbstractSymbolTable- Returns:
-
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
-
reOpen
public void reOpen() -
hasIndices
public boolean hasIndices()Description copied from interface:SymbolTableare there any indices attached to symbol table?- Specified by:
hasIndicesin interfaceSymbolTable- Returns:
-
removeNotInternalized
Description copied from interface:SymbolTableremove a non internalized term from symbol table- Specified by:
removeNotInternalizedin interfaceSymbolTable- Throws:
IOException
-
notifySymbol
-
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
-
getValueSymbol
Description copied from class:AbstractSymbolTableget object for symbol code- Specified by:
getValueSymbolin interfaceSymbolTable- Specified by:
getValueSymbolin classAbstractSymbolTable- Parameters:
code- , symbol code- Returns:
- code for whole function
- Throws:
IOExceptionSemReasonerException
-
getValueFunction
Description copied from class:AbstractSymbolTableget function for symbol code- Specified by:
getValueFunctionin interfaceSymbolTable- Specified by:
getValueFunctionin classAbstractSymbolTable- Parameters:
code- , symbol code- Returns:
- code for whole function
- Throws:
IOExceptionSemReasonerException
-
getValue
- Throws:
SemReasonerExceptionIOException
-
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
-
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:
-