# ล็อกทอล์ก

> object-oriented logic programming language that extends and leverages the Prolog language

**Wikidata**: [Q3258085](https://www.wikidata.org/wiki/Q3258085)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Logtalk)  
**Source**: https://4ort.xyz/entity/entity-q3258085

## Summary
Logtalk is an object-oriented logic programming language that extends and leverages the Prolog language. It supports multiple programming paradigms, including logic programming, object-oriented programming, and prototype-based programming. Originally released in 1998, it is distributed under the Artistic License.

## Key Facts
- **Inception:** Logtalk was created in 1998.
- **Latest Version:** Version 3.53.0 was released on January 20, 2022.
- **License:** The language is distributed under the Artistic License.
- **Category:** It is classified as both a programming language and an object-based language.
- **Paradigms:** It supports logic programming, object-oriented programming, and prototype-based programming.
- **Implementation:** Logtalk is implemented in Prolog and is heavily influenced by it.
- **Website:** The official website is https://logtalk.org/.
- **Source Code:** The source code is hosted on GitHub at https://github.com/LogtalkDotOrg/logtalk3.
- **File Format:** It uses the "Logtalk source file" format for both reading and writing.

## FAQs
### Q: What is Logtalk?
A: Logtalk is an object-oriented logic programming language that extends the capabilities of Prolog. It allows developers to use object-oriented and prototype-based paradigms within a logic programming framework.

### Q: When was Logtalk created?
A: Logtalk was originally created in 1998.

### Q: Under what license is Logtalk distributed?
A: Logtalk is distributed under the Artistic License.

### Q: What programming paradigms does Logtalk support?
A: Logtalk supports logic programming, object-oriented programming, and prototype-based programming.

## Why It Matters
Logtalk matters because it bridges the gap between logic programming and object-oriented programming (OOP). While Prolog is a powerful language for logic and declarative programming, it traditionally lacks the encapsulation and inheritance structures standard in OOP. Logtalk solves this by extending Prolog to support classes, instances, and prototypes while maintaining the logic programming paradigm.

This extension allows for better code organization, reuse, and modularity in complex software projects. By leveraging existing Prolog implementations, Logtalk provides a portable layer that enhances Prolog's capabilities without requiring a completely new infrastructure. Its longevity (active since 1998) and continued development demonstrate its relevance in the niche of declarative programming. It serves as a critical tool for developers needing the reasoning power of Prolog combined with the structural rigor of modern software engineering.

## Notable For
- **Extending Prolog:** It uniquely adds object-oriented features (classes, inheritance) to the logic programming environment of Prolog.
- **Multi-Paradigm Support:** It simultaneously supports logic, object-oriented, and prototype-based programming.
- **Portability:** It is implemented in Prolog, allowing it to run on any standards-compliant Prolog compiler.
- **Longevity:** The project has been active since its inception in 1998.
- **Standard File Format:** It defines its own specific source file format for code organization.

## Body
### Overview and Classification
Logtalk is an object-oriented logic programming language. It is classified as an instance of a "programming language" and an "object-based language." The system is designed to extend and leverage the Prolog language, effectively serving as a high-level layer that introduces modern software engineering capabilities to logic programming.

### Technical Specifications
The language operates primarily within the logic programming paradigm but also supports object-oriented programming and prototype-based programming. It utilizes "Logtalk source file" as its standard file format for both input (readable) and output (writable) operations.

Logtalk is itself programmed in Prolog, highlighting its deep integration with its parent language. It is influenced by Prolog and serves as an extension to it.

### Development and History
The project began in **1998**. It maintains a public source code repository hosted on GitHub under the organization `LogtalkDotOrg`. The repository URL is `https://github.com/LogtalkDotOrg/logtalk3`.

A notable recent release is **version 3.53.0**, which was published on **January 20, 2022**. The software is distributed under the **Artistic License**.

### Ecosystem and Availability
Logtalk maintains a robust online presence and ecosystem:
- **Official Website:** `https://logtalk.org/`
- **Package Management:** It is available through MacPorts (port: `logtalk`) and Chocolatey (package ID: `logtalk`).
- **Community:** It has a dedicated tag on Stack Overflow (`https://stackoverflow.com/tags/logtalk`) and is tracked on Open Hub (ID: `logtalk`).
- **Wikipedia Presence:** The entity has a Wikipedia title "Logtalk" with versions in English, French, Polish, and Portuguese.

### Identifiers
- **Open Hub ID:** logtalk
- **Freebase ID:** /m/026d5hv
- **Microsoft Academic ID:** 2778460848 (discontinued service)

## References

1. [The logtalk Open Source Project on Open Hub: Languages Page. Open Hub](https://www.openhub.net/p/logtalk/analyses/latest/languages_summary)
2. Freebase Data Dumps. 2013
3. [Source](https://api.github.com/repos/LogtalkDotOrg/logtalk3)