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
-
Constructor Summary
ConstructorDescriptionReasoningSymbolTableRAM
(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 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 transactionlong
createFunctionCode
(long[] t, 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 provider for external data typeslong
getFunctionCode
(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.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
notifySymbol
(String symbol, long code) void
removeNotInternalized
(long code) remove a non internalized term from symbol tablevoid
removes the given symbol table index.void
reOpen()
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
begin a transaction.void
commit last changesvoid
abort 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, 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.symboltable.ReasoningSymbolTable
createNonGroundFunction, match, matchArguments, substitute, substituteArguments, unifiable
Methods 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:AbstractSymbolTable
create function code- Specified by:
createFunctionCode
in interfaceSymbolTable
- Specified by:
createFunctionCode
in classAbstractSymbolTable
- Parameters:
t
- , t[0] code of function symbol, t[1]..t[n] codes for n arguments- Returns:
- code for whole function
- Throws:
SemReasonerException
EDBException
IOException
-
getFunctionCode
Description copied from class:AbstractSymbolTable
get function code- Specified by:
getFunctionCode
in interfaceSymbolTable
- Specified by:
getFunctionCode
in classAbstractSymbolTable
- Parameters:
t
- , t[0] code of function symbol, t[1]..t[n] codes for n arguments- Returns:
- code for whole function
- Throws:
SemReasonerException
IOException
-
getFunctionEncoding
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
- Throws:
SemReasonerException
IOException
-
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:
SemReasonerException
IOException
-
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:
SemReasonerException
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:
SemReasonerException
IOException
-
clear
Description copied from interface:SymbolTable
remove all symbols- Specified by:
clear
in interfaceSymbolTable
- Throws:
EDBException
SemReasonerException
-
delete
Description copied from interface:SymbolTable
delete all / release files- Specified by:
delete
in interfaceSymbolTable
- Throws:
SemReasonerException
-
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
-
flush
Description copied from interface:SymbolTable
flushes symbol table.- Specified by:
flush
in interfaceSymbolTable
- Throws:
IOException
-
transactionBegin
Description copied from interface:SymbolTable
begin a transaction.- Specified by:
transactionBegin
in interfaceSymbolTable
- Throws:
SemReasonerException
- if an error occursIOException
-
transactionRollback
Description copied from interface:SymbolTable
abort last changes- Specified by:
transactionRollback
in interfaceSymbolTable
- Throws:
SemReasonerException
- if an error occursIOException
-
transactionCommit
Description copied from interface:SymbolTable
commit last changes- Specified by:
transactionCommit
in interfaceSymbolTable
- Throws:
SemReasonerException
- if an error occursIOException
-
getExternalDataTypes
Description copied from interface:SymbolTable
get the provider for external data types- Specified by:
getExternalDataTypes
in interfaceSymbolTable
- Returns:
-
getTextIndex
Description copied from interface:SymbolTable
get text index- Specified by:
getTextIndex
in interfaceSymbolTable
- Overrides:
getTextIndex
in classAbstractSymbolTable
- Returns:
-
getGeoIndex
Description copied from interface:SymbolTable
get geo index- Specified by:
getGeoIndex
in interfaceSymbolTable
- Overrides:
getGeoIndex
in classAbstractSymbolTable
- Returns:
-
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
-
reOpen
public void reOpen() -
hasIndices
public boolean hasIndices()Description copied from interface:SymbolTable
are there any indices attached to symbol table?- Specified by:
hasIndices
in interfaceSymbolTable
- Returns:
-
removeNotInternalized
Description copied from interface:SymbolTable
remove a non internalized term from symbol table- Specified by:
removeNotInternalized
in interfaceSymbolTable
- Throws:
IOException
-
notifySymbol
-
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
-
getValueSymbol
Description copied from class:AbstractSymbolTable
get object for symbol code- Specified by:
getValueSymbol
in interfaceSymbolTable
- Specified by:
getValueSymbol
in classAbstractSymbolTable
- Parameters:
code
- , symbol code- Returns:
- code for whole function
- Throws:
IOException
SemReasonerException
-
getValueFunction
Description copied from class:AbstractSymbolTable
get function for symbol code- Specified by:
getValueFunction
in interfaceSymbolTable
- Specified by:
getValueFunction
in classAbstractSymbolTable
- Parameters:
code
- , symbol code- Returns:
- code for whole function
- Throws:
IOException
SemReasonerException
-
getValue
- Throws:
SemReasonerException
IOException
-
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
-
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:
-