LogicObjects- A Linguistic Symbiosis Approach to Bring the Declarative Power of Prolog to Java

Paper accepted and presented at the 9th Workshop on Reflection, AOP and Meta-Data for Software Evolution, co-located with ECOOP'12.

Logic programming is well suited for declaratively solving computational problems that require knowledge representation and reasoning. Object-oriented languages, on the other hand, are well suited for modeling real-world concepts and taking advantage of rich ecosystems developed around them, which are often missing from logic languages. For applications that require both the declarative power of logic programming and the rich modeling expressiveness and development environments offered by object-oriented languages, there is a need for reconciling both worlds. LogicObjects is our linguistic symbiosis framework for integrating Prolog within the Java language. It extends Java with annotations, which allow Java programs to interact transparently and automatically with Prolog programs.