CFP: Celebrating 50 Years of Prolog

Call for position papers celebrating the 50 year anniversary of Prolog, to be published by Springer in the LNAI series.

As part of the 2022: The Year of Prolog celebrations, we are planning to publish a Volume in the Springer LNAI series, representing both the State of the Art and Visions for the Future. The Volume will be aimed at as large an audience as possible, at being as self-contained as possible, and at containing a minimum of technical details.

The Volume will be edited by Veronica Dahl, Thomas Eiter, Manuel Hermemegildo, Bob Kowalski and Francesca Rossi. All papers in the Volume will be reviewed by the Prolog Year Scientific Committee. 

In addition to invited survey and position papers, and to extended versions of short-listed papers for the Alain Colmerauer Prize, the Volume will contain position papers submitted in response to an open call. The deadline for submitting a three-page (plus references) extended abstract is 9 September. Papers should be submitted to https://easychair.org/conferences/?conf=prolog50

Decisions will be announced on or before 30 September. Further deadlines for longer versions of selected papers will be announced later. The final version of papers (with all revisions incorporated) could be ready by end of 2022, with publication in early 2023.

We anticipate that the Springer Volume will have the following structure and cover the following topics: 

  1. The volume will begin with an introduction to Prolog for beginners, both for novices with virtually no knowledge of logic or computing, and for experts in other areas of computing. It would aim to show “the beauty of Prolog”. For example, the consequence of relational programming, that the same definition can serve multiple goals as in the case of append/3 and that the same grammar can be used both for generation and for parsing/analysis. It would also highlight the ability to perform meta-reasoning and to “express code as data”.
    The introduction will present both the declarative and procedural readings of Prolog  programs, as well as top-down vs. bottom-up execution of Prolog programs. It will also distinguish between those features of Prolog that have a “pure” logical interpretation and those that do not, including:
    1. assert and retract
    2. cut
    3. catch and throw?
  2. What  Prolog implementations are currently available? Which are most useful for teaching purposes? And which are most useful for serious applications? (The TPLP paper at https://arxiv.org/abs/2201.10816 could provide the basis for this survey.)
  3. How does Prolog differ from and relate to other kinds of computing, such as Imperative programming, functional programming, object-oriented programming, database languages, knowledge representation languages, and program specification and modeling languages
  4. What are the “impure” features of Prolog, what are they used for, and are they necessary? Can they be replaced by other, logically pure constructs?
  5. What kinds of applications is the “pure” logic programming component of Prolog suitable for?  What kinds of applications are the impure components of Prolog suitable for? What kinds of impurities are needed for these applications?
  6. What is Prolog NOT good for? How can we avoid wrong uses of Prolog?
  7. Should we include a survey and analysis of Prolog applications?
  8. Is the future of Prolog to be extended as a language for all application areas? If so, how should Prolog be extended? By introducing new semantic constructs for, say, procedural programming? 
  9. Or is the future of Prolog to be used in combination with other computer languages? If so, how should Prolog best be integrated with those other languages?
  10. Even if Prolog might be suited for only some kinds of applications, is there a case for arguing that Prolog is the best way to introduce children and other beginners to Logic,  Computational Thinking, AI and Computing more generally? For example, negation as failure was the inspiration for modern argumentation theory (Phan Minh Dung).
  11. Is there a difference between the way Prolog should be taught to beginners and the way it should be taught to people who already know other computer languages? Do imperative programmers need to undergo a form of detoxification?
  12. Should we include a survey and analysis of Prolog teaching experiences? Success stories: with 10-year olds, 16-18 year-olds, the under-represented, formal or informal education? Is there a road map for teaching Prolog  (also split according to audience to be reached, and with specific subjects organized in pedagogically proven order)? Measures of success (e.g. projects derived in different schools for learning Prolog, how teaching Prolog has allowed us to reach the under-represented, …) 
  13. How does Prolog relate to ethical considerations?  Does it help to make AI systems more interpretable and explainable?
  14. How does Prolog fit with evolving hardware (multicores, …)?
  15. How can Prolog-like computing be combined with machine learning systems in AI?