HILOG: a foundation for higher-order logic programming
Journal of Logic Programming
ACM Computing Surveys (CSUR)
Introduction to constraint databases
Introduction to constraint databases
R-trees: a dynamic index structure for spatial searching
SIGMOD '84 Proceedings of the 1984 ACM SIGMOD international conference on Management of data
Spatial-yap: a logic-based geographic information system
ICLP'07 Proceedings of the 23rd international conference on Logic programming
Demand-driven indexing of prolog clauses
ICLP'07 Proceedings of the 23rd international conference on Logic programming
Fire! firing inductive rules from economic geography for fire risk detection
ILP'10 Proceedings of the 20th international conference on Inductive logic programming
Theory and Practice of Logic Programming - Prolog Systems
Hi-index | 0.00 |
Logic programming provides an ideal framework for tackling complex data, such as the multi-dimensional vector-based data used to represent spatial databases. Unfortunately, the usefulness of logic programming systems if often hampered by the fact that most of these systems have to rely on a single unification-based mechanism as the only way to search in the database. While unification can usually take effective advantage of hash-based indexing, it is often the case that queries over more complex and structured data, such as the vectorial terms stored in spatial databases, cannot. We propose a new extension to Prolog indexing: User Defined Indexing (UDI). In this mechanism, the programmer may add extra information to Prolog indices so that only interesting fragments of the database will be selected. UDI provides a general extension of indexing, and can be used for both instantiated and constrained variables. As a test case, we demonstrate how UDI can be combined with a constraint system to provide an elegant and efficient mechanism to generate and execute range queries and spatial queries. Experimental evaluation shows that this mechanism can achieve orders of magnitude speedups on non-trivial datasets.