Tutorials
- Learn X in Y minutes Where X=Logtalk: English Italian (recommended starting point for new users for a quick overview but be aware that some of the examples will not work as-is in Logtalk 3.x; a pull request have been submitted)
- Handbook tutorial
- Logtalking YouTube channel
Grammar
Handbook
The Handbook includes the user manual, reference manual, glossary, FAQ, plus libraries and developer tools documentation.
- HTML version @ the Logtalk website (stable)
- PDF version (stable)
- ePub version (stable)
- Texinfo version (stable; experimental)
- HTML version @ the Read the Docs website (latest git version; provides improved search support but its links to API documentation are for the stable version; use it mainly to preview upcoming Handbook updates)
APIs
Core, library, tools, ports, and contributions API documentation (automatically generated from source code).
- HTML API documentation (stable)
- SVG diagrams (stable)
- PDF version (stable; experimental)
- ePub version (stable; experimental)
- Texinfo version (stable; experimental)
The SVG diagrams provide links to both the API documentation and to the source code.
Tools
The documentation for each developer tool is included in the tool
source directory in a NOTES.md
file and in the Handbook.
See also the tools overview and usage examples.
The tools listed in this section are complemented by a set of scripts that automate common tasks.
Learning
Development
Debugging
Profiling
Documenting
Testing
Distributing
Version management
Porting
Release notes
Check the release notes for the latest goodies.
Man pages
Prolog integration scripts:
- B-Prolog:
bplgt
- Ciao Prolog:
ciaolgt
- CxProlog:
cxlgt
- ECLiPSe:
eclipselgt
- GNU Prolog:
gplgt
- JIProlog:
jiplgt
- LVM:
lvmlgt
- Quintus Prolog:
quintuslgt
- SICStus Prolog:
sicstuslgt
- SWI-Prolog:
swilgt
- Tau Prolog:
taulgt
- Trealla ProLog:
tplgt
- XSB:
xsblgt
- YAP:
yaplgt
Configuration scripts:
Testing scripts:
Documentation scripts:
Diagrams scripts:
Virtual environment scripts:
Publications
- Refactoring the Whitby Intelligent Tutoring System for Clean Architecture. Paul S. Brown, Vania Dimitrova, Glen Hart, Anthony G. Cohn, Paulo Moura. 37th International Conference on Logic Programming (ICLP 2021).
- A Portable and Efficient Implementation of Coinductive Logic Programming. Paulo Moura. Proceedings of the Fifteenth International Symposium on Practical Aspects of Declarative Languages (PADL 2013), 2013. Springer LNCS 7752.
- Meta-Predicate Semantics. Paulo Moura. Post-Proceedings of the 21st International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2011), 2012. Springer LNCS 7225.
- L-FLAT: Logtalk Toolkit for Formal Languages and Automata Theory. Paulo Moura and Artur Miguel Dias. Proceedings of the 11th Colloquium on Implementation of Constraint LOgic Programming Systems (CICLOPS), July 2011.
- Programming Patterns for Logtalk Parametric Objects. Paulo Moura. Applications of Declarative Programming and Knowledge Management, Lecture Notes in Artificial Intelligence Vol. 6547, April 2011
- Towards a Study of Meta-Predicate Semantics. Paulo Moura. Proceedings of the 10th Colloquium on Implementation of Constraint LOgic Programming Systems (CICLOPS), July 2010. (slides)
- Knowledge Representation Using Logtalk Parametric Objects. Paulo Moura. Proceedings of the International Conference on Applications of Declarative Programming and Knowledge Management (INAP), University of Évora, Portugal, November 2009, pp 225-240. (slides)
- From Plain Prolog to Logtalk Objects: Effective Code Encapsulation and Reuse (Invited Talk). Paulo Moura. Proceedings of the 25th International Conference on Logic Programming (ICLP), July 2009. LNCS 5649. Springer-Verlag Berlin Heidelberg". (slides) (updated slides for a talk at U.T. Dallas in Summer 2011)
- Secure Implementation of Meta-predicates. Paulo Moura. Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages (PADL), January 2009. LNCS 5418. Springer-Verlag Berlin Heidelberg.
- High Level Thread-Based Competitive Or-Parallelism in Logtalk. Paulo Moura, Ricardo Rocha, and Sara C. Madeira. Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages (PADL), January 2009. LNCS 5418. Springer-Verlag Berlin Heidelberg.
- Thread-Based Competitive Or-Parallelism. Paulo Moura, Ricardo Rocha, and Sara C. Madeira. Proceedings of the 24th International Conference on Logic Programming (ICLP), December 2008. LNCS 5366. Springer-Verlag Berlin Heidelberg.
- High-Level Multi-threading Programming in Logtalk. Paulo Moura, Paul Crocker, and Paulo Nunes. Proceedings of the 10th International Symposium on Practical Aspects of Declarative Languages (PADL), January 2008. LNCS 4902. Springer-Verlag Berlin Heidelberg.
- Logtalk Processing of STEP Part 21 Files. Paulo Moura and Vincent Marchetti. Proceedings of the 22nd International Conference on Logic Programming (ICLP), August 2006. LNCS 4079. Springer-Verlag Berlin Heidelberg.
- Download a PhD thesis on Logtalk design and implementation (PDF, A4 paper). Thesis submitted on May 2003, and publicly defended on September 2003 (Supervisor: Prof. Abel Gomes; Discussants: Prof. Mário Martins (University of Minho, Portugal), Prof. Salvador Abreu (University of Évora, Portugal), Prof. Vitor Costa (University of Porto, Portugal), Prof. Ana Moreira (New University of Lisbon, Portugal)).
- Download an unpublished paper on Logtalk categories (submitted to both OOPSLA 2000 and ECOOP 2001). Categories are also described in the Logtalk technical report and PhD thesis. Categories are implemented in Logtalk since is first public release in 1998.
- Download a Technical Report on Logtalk 2.6, published on July, 2000: PDF A4 paper, PDF US Letter paper.
Opinion articles
- Uniting the Prolog Community: Personal Notes. Paulo Moura, Association for Logic Programming (ALP) Newsletter, Vol. 22/1, March 2009.
- Prolog Portability and Standardization. Paulo Moura, Association for Logic Programming (ALP) Newsletter, Vol. 18/3, August 2005.
- Logtalk 2.18.0. Paulo Moura, Association for Logic Programming (ALP) Newsletter, Vol. 17/3, August 2004.
- Some notes on porting a Prolog program to 22 Prolog compilers or the relevance of the ISO Prolog standard. Paulo Moura, Association for Logic Programming (ALP) Newsletter, Vol. 12/2, May 1999.
Third-party publications
Publications on research and applications using Logtalk:
- Visualizing CHC Verification Conditions for Smart Contracts Auditing Di Ianni, Marco and Fioravanti, Fabio and Matricardi, Giulia. Italian Conference on Computational Logic. June 2024.
- Ontology-Supported Scaffolding for System Safety Analysis Paul Brown. PhD thesis. November 2022.
- Intelligent Decision Support for Cybersecurity Incident Response Teams: Autonomic Architecture and Mitigation Search Camilo Correa, Jacques Robin, Raul Mazo, and Salvador Abreu. Proceedings of the 16th International Conference on Risks and Security of Internet and Systems (CRISIS 2021). November 20121
- Web-GIS viewer for active faults data represented as a knowledge graph Evgeny A. Cherkashin, Oksana V. Lunina, Leonid O. Demyanov, Alexander V. Tsygankov. Proceedings of the 4th Scientific-practical Workshop Information Technologies: Algorithms, Models, Systems Irkutsk, Russia, September 2021.
- Construction techniques of Baikal microbiome research information-computational environment Evgeniy Cherkashin, Alexey Shigarov. 1st International Workshop on Advanced Information and Computation Technologies and Systems. AICTS 2020. December 2020
- Contingent Scaffolding for System Safety Analysis Paul S. Brown, Anthony G. Cohn, Glen Hart, Vania Dimitrova. Artificial Intelligence in Education. AIED 2020. Lecture Notes in Computer Science, vol 12164. Springer, Cham. June 2020
- Representation of MDA Transformation with Logical Objects. E.Cherkashin, A.Shigarov, V.Paramonov. International Multi-Conference on Engineering, Computer and Information Sciences (SIBIRCON). October 2019
- A Computational Independent Model for a Medical Quality Management Information System. Evgeny A. Cherkashin, Ljubica Kazi, Alexey O. Shigarov, Viacheslav V. Paramonov. Proceedings of the First Scientific-practical Workshop Information Technologies: Algorithms, Models, Systems Irkutsk, Russia. September 2018.
- Model Driven Architecture Implementation Using Linked Data. Evgeny Cherkashin, Alexey Kopaygorodsky, Ljubica Kazi, Alexey Shigarov, Viacheslav Paramonov. In: Damaševičius R., Vasiljevienė G. (eds) Information and Software Technologies. ICIST 2018. Communications in Computer and Information Science, vol 920. Springer, Cham. August 2018.
- Automatic Discovery of Software Attacks via Backward Reasoning. Cataldo Basile, Daniele Canavese, Jerome d'Annoville, Bjorn De Sutter, and Fulvio Valenza. IEEE/ACM 1st International Workshop on Software Protection (SPRO), May 2015.
- A Portable Approach for Bidirectional Integration between a Logic and a Statically-Typed Object-Oriented Programming Language. Sergio Castro. PhD thesis. September 2014.
- Customisable Handling of Java References in Prolog Programs. Sergio Castro, Kim Mens, and Paulo Moura. Proceedings of the 30th International Conference on Logic Programming. July 2014.
- LogicObjects: A Portable and Extensible Approach for Linguistic Symbiosis between an Object-Oriented and a Logic Programming Language. Sergio Castro. Proceedings of the International Conference on Logic Programming Doctoral Consortium (ICLP DC), 2013. TPLP 13 (4-5): Online Supplement, July 2013. (PDF)
- Logical programming and data mining as engine for MDA model transformation implementation. A.Y. Sokolov, I.N. Terekhin, E.A. Cherkashin, S.O. Butakov, and A.A. Larionov. Proceedings of the 36th International Convention on Information & Communication Technology Electronics & Microelectronics (MIPRO), May 2013
- LogicObjects: Enabling Logic Programming in Java Through Linguistic Symbiosis. Sergio Castro, Kim Mens, and Paulo Moura. Proceedings of the Fifteenth International Symposium on Practical Aspects of Declarative Languages (PADL 2013), 2013. Springer LNCS 7752.
- A Declarative Pipeline Language for Complex Data Analysis. Henning Christiansen, Christian Theil Have, Ole Torp Lassen, Matthieu Petit. Post-Proceedings of the 22nd International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2012), 2013. Springer LNCS 7844.
- Information Systems Framework Synthesis on the Base of a Logical Approach. E.A. Cherkashin, V.V. Paramonov, R.K. Fedorov, I.N. Terehin, E.I. Pozdnyak, and D.V. Annenkov. E-society Journal: research and applications, Vol. 3, No. 2, December 2012
- ESProNa - Eine Constraintsprache zur multimodalen Prozessmodellierung und navigationsgestützten Ausführung (ESProNa - A Constraint-Language for multimodal Process Modeling supporting Navigation-Based Process Execution). Michael Igler. PhD thesis. July 2012.
- LogicObjects: A Linguistic Symbiosis Approach to Bring the Declarative Power of Prolog to Java. Sergio Castro, Kim Mens, and Paulo Moura. Proceedings of the 9th Workshop on Reflection, AOP and Meta-Data for Software Evolution (RAM-SE). June 2012.
- New transformation approach for Model Driven Architecture. E.A. Cherkashin, I.N. Terehin, V.V. Paramonov, V.S. Tertychniy. Proceedings of the 35th International Convention MIPRO. May 2012
- Model Driven Architecture is a Complex System. Cherkashin, Е.А., Paramonov V.V., Ipatov S. A., Tertychniy V.S., Terehin I.N. E-Society Journal, Research and Applications, University of Novi Sad, Technical Faculty "Mihajlo Pupin" Zrenjanin, 2011, Vol. 2, N2. - C. 15-23. November 2011.
- Information modeling of business processes in X-ray fluorescent analysis. O. P. Vorobyeva, E. A. Cherkashin, S. A. Ipatov, and V. V. Paramonov. Proceedings of the 34th International Convention MIPRO. May 2011
- Using Argumentation for Ambient Assisted Living. Julien Marcais, Nikolaos Spanoudakis, and Pavlos Moraitis. IFIP Advances in Information and Communication Technology. Vol. 364. Springer Berlin Heidelberg. 2011.
- Modeling and Planning Collaboration using Organizational Constraints. Michael Igler, Paulo Moura, Matthias Faerber, Michael Zeising, and Stefan Jablonski, The 6th International Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom), October 2010.
- ESProNa: Constraint-Based Declarative Business Process Modeling. Michael Igler, Paulo Moura, Michael Zeising, and Stefan Jablonski. Proceedings of the Third International Workshop on Dynamic and Declarative Business Processes, October 2010.
- A comparison of SL- and unit-resolution search rules for stratified logic programs. Victor Lagerkvist. Bachelor thesis, Linköping University, Department of Computer and Information Science, June 2010.
- IT Architecture Automatic Verification: A network evidence-based approach. António Alegria and André Vasconcelos. Proceedings of the Fourth IEEE International Conference on Research Challenges in Information Science, RCIS 2010.
- A Document Engineering Model and Processing Framework for Multimedia Documents. Joost Geurts. PhD Thesis, Technische Universiteit Eindhoven, February 2010. SIKS Dissertation Series No. 2010-03.
- Verificação Automática de Modelos de Arquitectura Tecnológica de Sistemas de Informação em Rede. António Manuel de Carvalho Alegria. Master Thesis, Instituto Superior Técnico, Portugal, November 2009
- Supporting Collaborative Work Through Flexible Process Execution. Stefan Jablonski, Michael Igler, and Christoph Gunther. Proceedings of the 5th International Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom 2009), November 2009. IEEE.
- Gorgias-C: Extending Argumentation with Constraint Solving. Victor Noël and Antonis C. Kakas. Proceedings of the 10th International Conference on Logic Programming and Nonmonotonic Reasoning, September, 2009. LNCS 5753. Springer-Verlag Berlin Heidelberg.
- Dialogue Organization in Polint-112-SMS. Justyna Walkowska. Human Language Technology. Challenges for Computer Science and Linguistics. LNCS 6562. Springer Berlin Heidelberg.
- Object-Oriented Logic Programming. Marta-Monica Dogaru. Bachelor Thesis, Technical University of Catalonia, Babeş-Bolyai University Cluj-Napoca, Faculty of Mathematics and Computer Science, Romania, 2008.
- Design Dependencies Within the Automatic Generation of Hypermedia Presentations. Oscar Rosell Martinez. Master Thesis, Technical University of Catalonia, June 30, 2002. CWI technical report INS-R0205.
- Implementing materialization in Logtalk. Esteban Zimányi. Tech. Rep. YEROOS TR- 97/09, Laboratoire de Bases de Données, Département d’Informatique, Ecole Polytechnique Fédérale de Lausanne, Switzerland, Apr. 1997.
- (more to come)
Authors
- Paulo Moura (language designer, developer, and maintainer)
Contributors
- Abramo Bagnara (efficient expansion of once/1 goals and bug reports in corner cases when compiling disjunctions)
- Adrián Arroyo Calle (library enhancements)
- Alex Kouznetsov (bug reports and documentation feedback)
- Andreas Becker (PDT support for Logtalk; bug reports)
- Andrew Davison (help with Trealla Prolog integration; bug reports)
- Anne Ogborn (bug reports, usability suggestions)
- Artur Miguel Dias (testing, lambda expression examples, CxProlog integration)
- Artur Wang (Visual Studio Code support for Logtalk)
- Arun Majumdar (bug reports, usability suggestions)
- Barry Evans (dead code scanner tool, usability suggestions)
- Camilo Correa Restrepo (bug reports)
- Clara Dimene (GeSHi syntax highlighter)
- Damien Roch (Docker support)
- Daniel Diaz (testing and tools feedback and suggestions)
- Daniel Gross (documentation feedback and suggestions)
- Daniel L. Dudley (made the ISO 8601 library object available)
- Davide Ancona (coinduction examples)
- Douglas R. Miles (suggestions, bug reports, Logtalk on SWISH experiments)
- Ebrahim Azarisooreh (code metrics tool, Arch Linux package, made lgtinit available)
- Eva Stöwe (PDT support for Logtalk)
- Feliks Kluzniak (coinduction examples and bug reports)
- François Fages (meta-predicate safety bug reports)
- Günter Kniesel (PDT support for Logtalk; feedback on Logtalk OOP features)
- Gopal Gupta (coinduction examples)
- Hans N. Beck (integration and embedding PowerShell scripts)
- Ivan Bratko (search methods in the state-space searching example)
- Jacinto Dávila (CSV library, bug reports)
- Jacob Friedman (Visual Studio Code support for Logtalk)
- Jan Burse (unit tests patches and feedback)
- Jan Wielemaker (feedback on Prolog compliance testing)
- Jeremy Vickery (bug reports)
- Joachim Schimpf (feedback on Prolog compliance testing)
- Joerg Schuster (bug reports)
- John Fletcher (made XML parser available)
- John Stewart (Java interface suggestions and solutions)
- Joost Geurts (bug reports)
- José Antonio Riaza Valverde (Tau Prolog integration)
- José Morales (Ciao Prolog integration)
- Lindsey Spratt (unit tests and feedback)
- Markus Triska (help in porting CLP(FD) examples)
- Mats Carlsson (bug reports)
- Michael Covington (DCGs tokenizer example)
- Michael Hendricks (EDCGs examples and tests)
- Michael Igler (testing, bug reports)
- Michael McNally (feedback on tutorials, examples, and documentation)
- Michael Sheets (text editor support)
- Michael T. Richter (Textadept text editor support, pengines example, Rosetta Code tasks)
- Neda Saeedloei (coinduction examples)
- Neng-Fa Zhou (bug reports)
- Nicolas Pelletier (bug reports, text editor support)
- Parker Jones (testing, unit tests, bug reports)
- Paul Brown (scaffolding tool, libraries, bug reports, suggestions, Wikipedia page maintenance)
- Paul Crocker (testing, multi-threading and meta-predicates examples, bug reports)
- Paul Fodor (library enhancements)
- Paul Tarau (feedback on threaded engines API and examples)
- Paula Marisa Sampaio (state-space searching examples)
- Paulo Nunes (multi-threading testing)
- Paulo Urbano (initial adapter file for Quintus Prolog)
- Per Mildner (code for helping decompose file paths and feedback on Prolog compliance testing)
- Peter Van Roy (EDCGs implementation)
- rbt (bug reports)
- Rémy Haemmerlé (meta-predicate safety bug reports)
- Richard O'Keefe (heaps and ordered sets library code)
- Robert Sasak (PDDL 3.0 parser contribution)
- Robert Shiplett (bug reports)
- Rui Marques (bug reports)
- Sergio Castro (Docker support, IntelliJ IDEA support, testing, suggestions, and bug reports)
- Taner Bilgic (initial adapter file for ECLiPSe)
- Timon Van Overveldt (multi-threading optimization and bug reports)
- Theofrastos Mantadelis ("flags" contribution, ProbLog integration support, benchmark tests)
- Ugo Chirico (help with JIProlog integration)
- Ulrich Neumerkel (lambda expression examples, bug reports, and feedback on Prolog compliance testing)
- Victor Lagerkvist (testing, library enhancements, made VerdiNeruda available)
- Victor Noel (bug reports)
- Vítor Santos Costa (red-black tree library)
- Xin Wang (bug reports)
- Yurii Rashkovskii (bug reports, feedback and suggestions, SWI-Prolog embedding scripts improvements)
A special thanks to all the Prolog implementers who fixed bugs and implemented enhancements that greatly helped in improving Logtalk portability and reliability.
This list may be incomplete. Logtalk contributions and feedback occur in multiple forms, from private mail to public forums and paper reviews. Your contributions are greatly appreciated. If your name is missing, please accept our apologies and contact us so we can fix the omission. Contact us also if, for some reason, you don't want your name on this list.
Research support
Sponsors
- Permion — 2023–present
- GraphStax — 2020–2022
- Kyndi Inc. — 2015–2017
- VivoMind Research, LLC — 2012–2013
- GitHub sponsors
Open-source credits
Open-source software used by Logtalk development and distribution.
- Several open-source Prolog compilers (development)
- TextMate (coding)
- MacPorts (macOS installer)
- InnoSetup (Windows installer)
- RPM (Linux installer)
- dpkg (Debian installer)
- Git (source code version control)
- Sphinx (HTML, PDF, and ePub documentation)
- Read the Docs Sphinx Theme (HTML, PDF, and ePub documentation)
- Graphviz (diagrams)
- phpBB (discussion forums)
- Jekyll (website)
- TeXt Jekyll theme (website)
- roffit (man pages to HTML converter)
- Pandoc (Markdown to reStructuredText converter)