File "silkworm"

We provided a tabling directive, not using anything more than the ISO core standard and its dynamic predicates. The library is competitive to other Prolog systems for Datalog problems. For non-Datalog problems with large ground terms the hash index option will use fast pre-calculated hashes. The tabling mechanism can then exhibit emergent local interning.

The current version does not yet realize tabling of non-wellfounded recursion. We are currently deliberating what type of method we should use to solve the recursion. When predicates are encountered that are part of non-wellfounded recursion, the behaviour of the library is currently undefined, it might loop or give incomplete results.

The following silkworm predicates are provided:

table(I):
table(I, O):
The directive succeeds. As a side effect the predicate I is registered for tabling, preparing a query cache, preparing an answer cache and creating a wrapper. Subsequent clauses for the predicate will be called from the wrapper. The binary predicate allows specifying tabling options. The following tabling options are available:

hash(B): The hash index flag B, default is false.

abolish_all_tables:
abolish_table_pred(I):
The predicate succeeds. As a side effected the cached queries and the cached answers of tabled predicates are removed. The unary predicate allows specifying a predicate indicator.




Use Privacy (c) 2005-2026 XLOG Technologies AG