<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Generative Logic: Teaching Prolog as Generative AI in Art and Design</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Christian Jendreiko</string-name>
          <email>christian.jendreiko@hs-duesseldorf.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>HSD, University of Applied Sciences</institution>
          ,
          <addr-line>Düsseldorf</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper introduces a method for teaching Prolog, especially to BA and MA students in art and design faculties. The method is called Exploring Generative Logic (EGL). The method is based on the concept of Generative Logic. Both methods are under development at the Faculty of Design, HSD, University of Applied Sciences, Düsseldorf. The basic idea of teaching Prolog with EGL is to present Prolog not as “another” programming language, but primarily as a logic AI. This perspective helps beginners gain a clear view of how Prolog works and focuses on understanding Prolog as a powerful generative AI, making it highly attractive in the domain of art and design. The author assumes that the EGL method can be easily adapted to other educational settings: education of non-programmers of all ages, including children in elementary or secondary schools, as well as students in other non-STEM curricula, to develop skills in logical thinking, digital literacy, AI literacy, and artistic literacy. The paper is divided into two parts: Part one provides an introduction to the basic ideas and objectives of the teaching method. Part two ofers a description of the teaching method.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Generative Logic</kwd>
        <kwd>Teaching Prolog</kwd>
        <kwd>Logic Programming</kwd>
        <kwd>Generative AI</kwd>
        <kwd>Generative Design</kwd>
        <kwd>Symbolic AI</kwd>
        <kwd>Digital Literacy</kwd>
        <kwd>AI Literacy</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Preliminaries</title>
      <sec id="sec-1-1">
        <title>1.1. Basic idea</title>
        <p>The basic idea behind the teaching method Exploring Generative Logic is to teach Prolog to
nonprogrammers not as “another” programming language, but as a logic AI. It is a logic AI system that
performs automated deduction and comes equipped with a formal language based on logic. The student
can use this language to communicate with the AI, so that the logic AI derives output from what the
student gives the system as input.</p>
      </sec>
      <sec id="sec-1-2">
        <title>1.2. Target group</title>
        <p>The target group for the EGL method consists of non-programmers, particularly BA and MA students
in art and design. Many of them are heavy users of digital devices but have little to no experience in
programming and are unfamiliar with concepts from computer science, mathematics, or logic.</p>
      </sec>
      <sec id="sec-1-3">
        <title>1.3. Origin of the idea: The concept of Generative Logic</title>
        <p>Generative Logic (GL) is a conceptual framework for the application of Prolog in the domain of art and
design as a generative tool. It is being developed by the author at the HSD.</p>
        <p>Generative Logic is driven by 4 key ideas:
• GL puts its focus on the generative power of Prolog.
• GL interprets a Prolog System not as a language but as a logic AI that performs automated
reasoning and comes equipped with a language that can be used by programmers and users to
communicate with that AI in order to generate interesting aesthetic output.
• GL tries to foster the application of Prolog in the domain of art and design as a powerful generative
tool.
• GL understands logic AI as a white box, human-friendly, and trustworthy alternative or
complement to black box subsymbolic AI.</p>
        <p>
          In its name, GL refers to the concept of Generative Aesthetics [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] a concept developed by the so-called
Stuttgart school (Max Bense and his students Frieder Nake and Georg Nees) pioneering what is known
today as generative design on a sound theoretical and critical basis. GL understands itself as a sub-class
of this highly lively current design practice. It is a sub-class that is distinct from other methods within
this field in making use of logic AI as the central generative tool. Aiming to show the generative power
of automated logic inference, GL proves thereby the statement of Abraham A. Moles true, that every
analytical machine can be used as a generative machine [6].
        </p>
        <p>Exploring Generative Logic (EGL) is a teaching method grounded in Generative Logic. The goal is to
empower students to explore the generative potential of Prolog within the realms of art and design.
By delving into the generative capabilities of logic-based AI, students engage deeply with concepts
of generative aesthetics while becoming familiar with logic programming, logic, mathematics, and
computer science. They learn to use Prolog not only as a powerful generative tool but also as a means
of fostering critical thinking.</p>
        <p>The method of EGL is under development. The Winter Semester 2024/25 will be the second semester
that I teach Prolog this way. Results of the seminar in the Summer Semester 2024 show that this
approach is promising.</p>
      </sec>
      <sec id="sec-1-4">
        <title>1.4. Why teaching Prolog not as a language but as an AI?</title>
        <sec id="sec-1-4-1">
          <title>1.4.1. Reason No. 1: Making Prolog attractive for students</title>
          <p>Introducing Prolog as an AI in the era of “generative AI” attracts students.</p>
          <p>It makes them curious about what it is in comparison to currently popular subsymbolic AIs like
LLMs.</p>
          <p>Introducing Prolog as a generative device picks up the students right where they love to be the most:
in a setting where they can create aesthetic objects.</p>
          <p>Introducing Prolog as a classic “brain in a vat” species with which you can only communicate in an
artificial language spurs the imagination of the students, making them feel part of a classic science
ifction story about man-machine interaction. And because art &amp; design students love Science Fiction,
looking at Prolog as a “brain in a vat” makes working with Prolog fun and exciting.</p>
        </sec>
        <sec id="sec-1-4-2">
          <title>1.4.2. Reason No. 2: Making Prolog easy to understand</title>
          <p>Introducing Prolog as a logic AI instead of a language in the first place helps to avoid confusion for
students in understanding what Prolog is and how it works. It also helps to explain the history of Prolog
and its origins to provide the students with a holistic understanding of it.</p>
          <p>Teaching Prolog for some years to art and design students, I observed the following: When I introduced
Prolog as a programming language, the biggest problem students had with Prolog was the experience
that the influence of their programming on the behavior of the program was limited. It is the experience
that the system is doing something (namely: the resolution process including the depth-first search
and unification) in order to generate output that the students did not program. Obviously, a part of the
process is out of their coding control. Even more confusing: Not only do they have no control over the
behavior, but they also have to adapt their whole coding to this black box, out-of-control behavior. And
that is the obstacle that drives the confusion: The students don’t understand why Prolog is called a
programming language if they can’t program the behavior of the system! It seems to them that they
have to deal with two diferent things: There is a language AND an entity that reacts to the code that is
written in that language.</p>
          <p>
            This observation led me to redesign my teaching approach, introducing Prolog not as a programming
language but as an AI, a technical entity that has a special inference behavior and that is equipped with
a language in order to cooperate with that entity. I found out that this explanation (which goes back to
the historic roots of Prolog in theorem-proving and Green’s dream) [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ],[
            <xref ref-type="bibr" rid="ref4">4</xref>
            ] gives the students a clear
view of what Prolog is and how to use it. Looking at Prolog from the point of view that the language you
use with Prolog is not a means to build a program from scratch, but that it is a means to communicate
with an already existing, implemented program, namely an automated deduction system, makes it also
easier to understand the diference between imperative and declarative programming as well as the
diference between programming and meta-programming. Everything you do is in cooperation with
the inference engine, including modifying its behaviour.
          </p>
        </sec>
        <sec id="sec-1-4-3">
          <title>1.4.3. Reason No. 3: Making Prolog a perfect educational tool to shape digital, AI, and artistic literacy.</title>
          <p>
            Prolog, understood as a logic-based AI, is an excellent educational tool for developing a wide range
of fundamental skills. These skills are crucial for designers and artists in the digital landscape of the
21st century, and my teaching integrates their education within the overall concept of ’the reflective
practitioner.’ [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ]:
• Shaping skills on how to handle ourselves as designers and artists around AI machines (for
example: learning that there exists an alternative to subsymbolic AI in the form of symbolic AI)
• Shaping the skills for critical judgment of current technological developments in the fields of
digitalization and AI with respect to historic, social, and aesthetic implications
• Shaping a sense for AI history (for example: understanding that the question-answer concept is
much older than LLMs and that Prolog is a kind of early prototype of this concept and therefore
a good tool to study it)
• Shaping interdisciplinary skills by learning to see the deep interrelations between mathematics,
logic, computer science, computer art, and art
• Getting in touch with basic concepts of computer science and computing (concepts like database,
formal language, grammars, set theory)
• Learning to understand the creation of an aesthetic object as a Form-finding problem and learning
to look at a Form-finding problem from a logico-mathematical perspective
• Learning to describe an aesthetic object in terms of a formal language
• Shaping the understanding of the concept of compositionality and modularity on a fundamental
level
• Shaping awareness of the universal use of concepts of modularity in everyday life (like architecture,
bureaucracy, economics, games, industry)
• Shaping the understanding of logical thinking
• Shaping the skill to think, organize, and talk about the process of making an aesthetic object
systematically, doing it in terms of logic
• Learning that using logical thinking is not a contradiction to creativity but an integral part of it
• Shaping the understanding of logic as a general methodology for problem-solving; learning to
apply logic-based problem-solving strategies to creative tasks, and the extraordinary value it has
to integrate the systematic use of it into one’s own creative process
• Shaping the understanding of the diference between bottom-up and top-down approaches and
learning how to use top-down strategies in the making of an aesthetic object systematically
• Understanding how using logic programming as the central tool in the generative process helps
to understand, describe, and structure an artistic/design problem
• Shaping skills of creative coding
• Shaping the skill to put one’s own creative use of programming into a broader historic context of
art &amp; design, seeing the connections of generative design with diferent reference points like:
– The concept of Cybernetics
– The Bauhaus School and Oskar Schlemmer’s concept of “Kompositionelle Gestaltung”
(Compositional Design) [5]
– The Stuttgart School of Max Bense and his students Frieder Nake and Georg Nees pioneering
the field of Computer Art on a sound theoretical basis with the concept of Generative
Aesthetics, that later turned into what we know today as generative design [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ]
– The artistic strategy of ars combinatoria and its long history starting in ancient arts via the
era of the Baroque to the concept of Montage and Collage and electronic art in the 20th and
21st century
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. The method of Exploring Generative Logic</title>
      <sec id="sec-2-1">
        <title>2.1. Introducing the students to Prolog as a logic AI</title>
        <p>In the beginner’s course, the students are introduced to the features of Prolog through the following
interpretation of a standard Prolog System:</p>
        <p>A Prolog-System consists of 3 components:
• An inference engine for automated deduction. That’s the logic AI.
• A formal language, based on logic, used to communicate with that AI.</p>
        <p>• Technical enhancements in the form of built-in predicates.</p>
        <p>A classical Prolog-system is equipped with an inference engine that performs backward reasoning.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. The task: Generating electronic mosaics</title>
        <p>In the introductory course, we focus on generating a single class of aesthetic objects, which we call
electronic mosaics. Electronic mosaics embody the central characteristics of classic mosaics: they are
planar aesthetic objects composed of discrete elements.</p>
        <p>This characteristic is also shared by many other aesthetic objects based on a rectangular grid pattern.
Aesthetic objects from the fields of ancient art, Konkrete Kunst, ASCII art, typography, or visual poetry
all share this feature. Rectangular grid patterns can be described straightforwardly in logic grammars
using DCGs.</p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Conceptual point of departure:</title>
      </sec>
      <sec id="sec-2-4">
        <title>The concept of Generative Logic</title>
        <p>The students are also provided with the basic viewpoint of Generative Logic:</p>
        <p>According to the concept of Generative Logic, programming in Prolog means interacting with a logic
AI. Interacting with Prolog means providing the logic AI with information about a problem that is
true, and then asking the inference engine to draw conclusions from these initial statements of truth.
Interaction with the inference engine happens in a formal language.</p>
        <p>The inference engine then draws conclusions by performing controlled logical inferences based on
the resolution principle discovered by J. Alan Robinson and further developed for practical use within a
Prolog system by Robert Kowalski and Alain Colmerauer.</p>
        <p>
          If the information provided by the user to the inference engine includes variables encoded within
the program, then it is part of the proof-procedure that the inference engine binds the free variables to
the corresponding values that it finds in the database. These bindings are given back by the system as
output. This behavior, known as “Grounding Substitution” [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], is the key feature that makes Prolog a
powerful generative AI.
        </p>
        <p>Interesting to observe: The inference engine generates a version of the described object; the structure
of the object remains invariant under the substitutions of its variables. It is possible to generate a
multitude of variations using one single structure by mapping diferent values to each variable.</p>
      </sec>
      <sec id="sec-2-5">
        <title>2.4. How do the students proceed?</title>
        <p>Considering the conceptual point of departure described in 2.3, the students proceed as follows:</p>
        <p>To generate an electronic mosaic, the students feed the inference engine with information about the
rectangular grid pattern they want the engine to generate.</p>
        <p>They proceed in 3 stages:</p>
        <sec id="sec-2-5-1">
          <title>2.4.1. Stage 1: Defining a PUAO</title>
          <p>In stage 1, they define what we call a PUAO: A partially unknown aesthetic object.
The students can define the following (basic) features of such a PUAO:
• the size
• the contour (i.e., the shape of the outline)
• the cellular structure of the PUAO</p>
          <p>
            What do we mean by cellular structure?
The PUAO is understood as a complex of interconnected parts, a block of blank spaces, a
composition of logic variables. “Variables allow us to state relationships among objects without naming
specific objects” [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ]. Therefore, each variable can be seen as an empty cell, a blank space reserved
exclusively for a certain type of element that can occupy this cell. In other words, each variable
designates a specific class of elements that can be bound to it by the inference engine.
          </p>
          <p>The configuration of variables that defines the rectangular grid structure represents the spatial
relationships between a set of diferent value classes in a plane. These values are potential elements of
the electronic mosaic to be generated.</p>
          <p>The description of the PUAO within the Prolog language takes place in two steps:
Step 1 Students describe the PUAO in pure Prolog by using predicates with free variables as arguments
and integrating them into conditional language constructs. The use of built-in predicates is restricted
to: tab/1, write/1, and format/2.</p>
          <p>Step 2 Students adopt the DCG formalism and develop their program based on this approach.
The students can start with step 1 or the other other way round.</p>
        </sec>
        <sec id="sec-2-5-2">
          <title>2.4.2. Stage 2: Constructing the database</title>
          <p>In stage 2, the students construct the database: They decide what kinds of elements will be part of the
database, define classes of elements, choose which element shall belong to which class, and define names
for the predicates that designate class-membership of the elements having them as single arguments.</p>
        </sec>
        <sec id="sec-2-5-3">
          <title>2.4.3. Stage 3: Developing a query strategy</title>
          <p>In stage 3, the students develop a query strategy, thereby understanding the prompting of queries or
compounds of queries as an important part of the process of composing an aesthetic object.</p>
        </sec>
      </sec>
      <sec id="sec-2-6">
        <title>2.5. An example</title>
        <p>What is shown here is a basic program in DCG notation used in the beginner’s course "Exploring
Generative Logic" to describe a rectangular grid structure declaratively in a straightforward way. It is
part of a set of basic programs currently being developed to tackle various aspects of programming in
Prolog, including recursion. The program presented here consists of three sections as described above:
the Partially Unknown Aesthetic Object, represented by non-terminals in the rules as a block of blank
spaces; the sets of elements that fill these blank spaces, represented by terminals (note that these sets
here are singleton sets); and finally, the query, which allows the use of the built-in predicate format/2.
Note that if you consider this code as a grammar, it difers from the standard usage of logic grammars.
Instead of defining a set of objects, the code presented here defines a set of rules generating one single
rectangular grid structure. The rules without terminal symbols remain consistent across all grammars
in the family; however, the &lt;nonterminal&gt; –&gt; &lt;terminal&gt; rules vary. This is where the terminals come
into play. The output variety is achieved by replacing terminals in the body of these rules with other
terminals, creating a vast field for experimentation. A program based on this concept was developed by
M.A. student Alexander Kordes during the "Exploring Generative Logic" course at HSD in the summer
semester of 2024. The output of that program is shown in Figure 01.</p>
        <p>A basic program in DCG notation used in the beginner’s course:
% P a r t i a l l y unknown a e s t h e t i c o b j e c t :
q_01 −−&gt; z1 , z2 , z3 , z4 , z5 , z6 , z7 , z8 , z9 .
z1 −−&gt; e1 , ws , e1 , ws , e1 , ws , e1 , ws , e1 , ws , e1 , ws , e1 , ws , e1 , ws , e2 , n .
z2 −−&gt; e1 , ws , e1 , ws , e1 , ws , e1 , ws , e1 , ws , e1 , ws , e1 , ws , e2 , ws , e2 , n .
z3 −−&gt; e1 , ws , e1 , ws , e1 , ws , e1 , ws , e1 , ws , e1 , ws , e2 , ws , e2 , ws , e2 , n .
z4 −−&gt; e1 , ws , e1 , ws , e1 , ws , e1 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , n .
z5 −−&gt; e1 , ws , e1 , ws , e1 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , n .
z6 −−&gt; e1 , ws , e1 , ws , e1 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , n .
z7 −−&gt; e1 , ws , e1 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , n .
z8 −−&gt; e1 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , n .
z9 −−&gt; e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , ws , e2 , n .
% s e t s o f e l e m e n t s :
e1 −−&gt; [ x ] .
e2 −−&gt; [ o ] .
% w h i t e s p a c e :
ws −−&gt; [ ’ ’ ] .
% n e x t _ l i n e :
n −−&gt; [ ’ \ n ’ ] .
%q u e r y :
%nl , nl , nl , p h r a s e ( q_01 , L s ) , f o r m a t ( " ~ s " , [ L s ] ) , nl , nl , nl , n l .</p>
      </sec>
      <sec id="sec-2-7">
        <title>2.6. What do the students learn?</title>
        <p>Proceeding as described in 2.4, the students learn:
• To describe the known or required aesthetic features of the aesthetic object in a formal language
based on logic
• How to set up a database in a concise and logical way
• To develop a concise, coherent query strategy (thereby learning the art of prompting)
• How to design all these three steps according to a well-thought-out plan on how to tackle the</p>
        <p>Form-finding problem using logical deduction based on a clearly envisioned intention</p>
      </sec>
      <sec id="sec-2-8">
        <title>2.7. Two Sidesteps</title>
        <sec id="sec-2-8-1">
          <title>2.7.1. Sidestep 1: Interesting to investigate: possible interpretations of what the students are doing</title>
          <p>Learning to put their own creative action into diferent contexts of explanation, the students learn
interdisciplinary thinking. Especially when they start to use DCGs, the students can look at their own
creative action from diferent points of view: From a more computer-linguistic oriented point of view,
the process could be seen like this:</p>
          <p>Developing a PUAO, the students create a logic grammar for the composition of a planar aesthetic
object from discrete elements, leaving the generation of the object to the inference engine. The students
also select the repertoire of elements; in other words, they also compose the lexicon/alphabet that can
be used in this process. The students create an artificial language to generate aesthetic objects.</p>
          <p>From a more logical computer scientific point of view, the process could be described like this: The
students provide the inference engine with a template, and the inference engine proves the satisfiability
of this template by unifying its variables with the matching values found in the database, giving back
ground instantiations of the template as output.</p>
          <p>From a more general point of view, the process could be seen like this: The students develop a fill-out
form and ask the logic AI to fill it out according to the given requirements stated in the form.</p>
        </sec>
        <sec id="sec-2-8-2">
          <title>2.7.2. Sidestep 2: Generative Logic fosters interdisciplinary research between design and hard sciences</title>
          <p>From an art &amp; design point of view, along with the proceedings described in 2.4 come two very interesting
ifelds of research and experimentation:
1. Finding (or developing) aesthetically interesting structuring instances to define the cellular
structure of a PUAO.
2. Defining interesting classes of elements for the database. Finding and selecting interesting
elements as members for each class.</p>
          <p>These fields of research are predestined for interdisciplinary research because here we enter the
domain of data visualization or sonification (for example, the visualization/sonification of biological,
chemical, physical, or mathematical structures).</p>
          <p>On the one hand, the method of Generative Logic can serve the needs of science in order to make
complex structures, such as those investigated in biology or chemistry as well as in social sciences, etc.,
more accessible and easier to understand through visualization or sonification.</p>
          <p>On the other hand, the method of Generative Logic is a perfect tool to explore the generative potential
of such structures in order to generate aesthetically interesting output.</p>
        </sec>
      </sec>
      <sec id="sec-2-9">
        <title>2.8. Outlook</title>
        <p>Taking his own experiences with the students as empirical evidence into account, the author thinks
that the EGL approach of teaching Prolog to beginners has a lot of potential that waits to be explored.</p>
        <p>Among the possible domains to be systematically explored are these three:</p>
        <sec id="sec-2-9-1">
          <title>2.8.1. Further development of the approach</title>
          <p>Especially: Developing a collection of PUAOs as templates and inspirations for diferent courses, divided
into categories that range from simple structures to complex and sophisticated ones.</p>
        </sec>
        <sec id="sec-2-9-2">
          <title>2.8.2. Cooperations</title>
          <p>The author assumes that the EGL-method can easily be adapted to other educational settings: Education
of non-programmers of all ages, including children or students of other non-STEM curricula than art &amp;
design, in order to shape skills in logical thinking, digital, AI, and artistic literacy.</p>
          <p>Therefore, the author thinks it is worth:
• Exploring if and how the approach could be adapted to other target groups
• Proving to what extent EGL can provide a useful complement to other interesting Prolog teaching
approaches</p>
        </sec>
        <sec id="sec-2-9-3">
          <title>2.8.3. Making the approach accessible</title>
          <p>In order to provide other scholars who are interested in this approach, there needs to be developed:
• A toolbox along with a comprehensive handbook on how to teach Prolog the EGL way
• A workshop
Further research could explore the application of EGL in various artistic domains, such as poetry and
music. Over the past fifty years, Prolog has been widely used to generate art, poetry, and music, and
there is a wealth of material available on this topic. It would be interesting to investigate how these
approaches could be reintroduced within the conceptual framework of the teaching model proposed
in this paper: making Prolog a gateway for students in art and design to enter the world of logic
programming by teaching Prolog as a generative logic AI.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Acknowledgments</title>
      <p>I would like to express my gratitude to the PEG 2.0 education group for their free sharing of ideas,
which has been a great source of inspiration.</p>
      <p>Special thanks to Veronica Dahl, Robert Kowalski, David Warren, François Fages, Michael Leuschel,
Włodek Drabent, and Markus Triska for their extensive and enlightening discussions, which greatly
contributed to shaping the ideas presented in this paper. I also extend my appreciation to my reviewers.</p>
      <p>I am particularly grateful to Frieder Nake for the enjoyable and insightful conversations about the
original concepts of generative aesthetics.</p>
      <p>Lastly, I would like to thank Carsten Heisterkamp for assisting in refining the manuscript, as well as
my students, who often take Prolog to unexpected places.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Baron</surname>
            ,
            <given-names>Naomi. Computer</given-names>
          </string-name>
          <string-name>
            <surname>Languages</surname>
          </string-name>
          ,
          <article-title>A guide for the perplexed</article-title>
          .
          <source>London: Penguin Books</source>
          ,
          <year>1986</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Flach</surname>
            ,
            <given-names>Peter. Simply</given-names>
          </string-name>
          <string-name>
            <surname>Logic</surname>
          </string-name>
          . Tilburg,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Genesereth</surname>
          </string-name>
          , Michael R. “
          <article-title>Dynamic Logic Programming”</article-title>
          .
          <source>In: Prolog - The Next 50 Years</source>
          . Ed. by
          <string-name>
            <surname>Warren</surname>
          </string-name>
          , D.S. et al.
          <source>LNCS 13900</source>
          . Springer,
          <year>2023</year>
          , pp.
          <fpage>197</fpage>
          -
          <lpage>209</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4] [5] [6]
          <string-name>
            <surname>Hermenegildo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morales</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Lopez-Garcia</surname>
            ,
            <given-names>P. “</given-names>
          </string-name>
          <article-title>Some Thoughts on How to Teach Prolog”</article-title>
          .
          <source>In: Prolog - The Next 50 Years</source>
          . Ed. by
          <string-name>
            <surname>Warren</surname>
          </string-name>
          , D.S. et al.
          <source>LNCS 13900</source>
          . Springer,
          <year>2023</year>
          , pp.
          <fpage>107</fpage>
          -
          <lpage>123</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>Hüneke</surname>
          </string-name>
          , Andreas, ed.
          <source>Oskar Schlemmer</source>
          , Idealist der Form. Leipzig: Reclam,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>Moles</surname>
            ,
            <given-names>Abraham A.</given-names>
          </string-name>
          <string-name>
            <surname>Kunst</surname>
          </string-name>
          &amp; Computer. Cologne: Dumont,
          <year>1971</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Nake</surname>
          </string-name>
          , Frieder. Aesthetik als Informationsverarbeitung. Wien/New York: Springer,
          <year>1974</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Schoen</surname>
            ,
            <given-names>Donald.</given-names>
          </string-name>
          <article-title>The reflective practitioner</article-title>
          .
          <source>Basic Books</source>
          ,
          <year>1983</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>