DOCUMENT
DOCUMENT
  **module** lang = html
    MACROS
      *standard html texte multipages
        NUMBERING ON
        *exec
          grand titre pour les onglets
            TITLE_ALL_PAGES = "APPLICATIONS IN PROLOG"
        *base64 ON
      la navbar
        notation
          THIS_NAVBAR ::=
            GOSUB
          ::=
            {a1_} , {a1_}.html
          GO_PAGE ::=
            BOUTON_GO {a1_}, {a1_}.html
      variante monopage
        *standard texte html
        quelques variables pour le texte et les boutons
          notation
            $old_apps ::= DOCS/APPLICATIONS/VIEILLES_APPLICATIONS
            $new_apps ::= DOCS/APPLICATIONS/NEW_APPLICATIONS
        sommaire en premier
          MON_TEXTE
            TITLE
              ETUDE DES APPLICATIONS PROLOG
            HEADER
              page de garde
                BR
                  BR
                  BR
                    CENTER
                      XXLARGE
                        BOLD
                          APPLICATIONS IN PROLOG
                          A STUDY
                      BR
                      BR 1
                          MAJ_DATE_EN
                      BR 2
            STYLE
              STYLES_2
            TEXT
              CENTER
                BOLD
                  SOMMAIRE
                    xx
              BR
                COLUMNS_3
                  NAV_SOMMAIRE
              GOSUB
        sommaire latéral avec tableaux
          MON_TEXTE
            TITLE
              ETUDE DES APPLICATIONS PROLOG
            HEADER
              page de garde
                BR
                  BR
                  BR
                    CENTER
                      XXLARGE
                        BOLD
                          APPLICATIONS IN PROLOG
                          A STUDY
                      BR
                        BOLD
                          2 avril 2022
                      BR 1
                          SMALL
                            MAJ_DATE_EN
                      BR 2
            STYLE
              STYLES_2
            TEXT
              TABLE0 width=100%"
                TR0 width = 100%
                  TD0 width="200"
                    BR
                      NAV_SOMMAIRE
                  TD0 width=80%
                    GOSUB
        sommaire lateral avec nav
          MON_TEXTE
            TITLE
              ETUDE DES APPLICATIONS PROLOG
            options side_bar, header
            HEADER
              page de garde
                BR
                  BR
                  BR
                    CENTER
                      XXLARGE
                        BOLD
                          APPLICATIONS IN PROLOG
                          A STUDY
                      BR
                        BOLD
                          2 avril 2022
                      BR 1
                          SMALL
                            MAJ_DATE_EN
                      BR 2
            NAV
              DIV id="mySidenav" class="sidenav"
                BR
                  NAV_SOMMAIRE
            STYLE
              STYLES_2
              STYLE_SIDE_BAR
            TEXT
              DIV class="main"
                GOSUB
        avec tableaux
          MON_TEXTE
            TITLE
              ETUDE DES APPLICATIONS PROLOG
            HEADER
              page de garde
                BR
                  BR
                  BR
                    CENTER
                      XXLARGE
                        BOLD
                          APPLICATIONS IN PROLOG
                          A STUDY
                      BR
                        BOLD
                          2 avril 2022
                      BR 1
                          SMALL
                            MAJ_DATE_EN
                      BR 2
            NAV
              CENTER
                BOLD
                  SOMMAIRE
                    xx
              BR
                NAV_SOMMAIRE
            STYLE
              STYLES_2
            TEXT
              GOSUB
        multipage avec NAVBAR en haut
          MON_TEXTE
            TITLE
              ETUDE DES APPLICATIONS PROLOG
            HEADER
              page de garde
                BR
                  BR
                  BR
                    CENTER
                      XXLARGE
                        BOLD
                          APPLICATIONS IN PROLOG
                          A STUDY
                      BR
                      BR 1
                      BR 2
              THIS_NAVBAR
            STYLE
              STYLE_BASE
                STYLE_TREES
                STYLE_TABLE
              STYLE_SHEET_1
                STYLE_HEADERS_2
                  STYLE_NAV_2
                  STYLE_DROPDOWN
            TEXT
              GOSUB
      variante multipages
        *standard html texte multipages
        quelques variables pour le texte et les boutons
          notation
            $old_apps ::= DOCS/APPLICATIONS/VIEILLES APPLICATIONS
        MON_TEXTE_MULTIPLE
          TITLE
            ETUDE DES APPLICATIONS PROLOG
          HEADER
            page de garde
              BR
                BR
                BR
                  CENTER
                    XXLARGE
                      BOLD
                        APPLICATIONS IN PROLOG
                        A STUDY
                    BR
                      XSMALL
                        BOLD
                              MAJ_DATE_EN
                                )
                                  PROLOG.htm
                    BR 1
          STYLE
            STYLES_2
          TEXT
            GOSUB
          NAV
            CENTER
              BOLD
                SOMMAIRE
            BR
              COLUMNS_3
                NAV_SOMMAIRE
  This navbar
    NAVBAR
      INTRODUCTION
        PROLOG, PROLOG.htm
        METHODOLOGY
      The ANNIVERSARY 2020
      ABOUT PROLOG
        PROLOG IN THE PAST
        PROLOG TODAY
      EDUCATION
        BASIC TUTORIALS
        ADVANCED
        EDU RESSOURCES
        EXAMPLES
      DISCUSSIONS
        DISCUSSIONS
          DISCUSSIONS
          PERFORMANCES
          FUNCTIONAL PROGRAMMING
          THE FUTURE
      PROLOG IN PRACTICE
      APPLICATIONS
        DEFINITION OF APPLICATIONS
        CENSUS 2022, $new_apps/PROCESSING NEW APPLICATIONS IN PROLOG.htm
      BIBLIO and APPENDIX
  # TEXTE
    here
      RED
        CENTER
          CELL1
            CENTER
              XXLARGE
                WORK IN PROGRESS
                This document is not a report, but a knowledge base, with information about many topics, and links to sources.
                This document will be updated on a regular basis, according to contributions.
      MAIN LINKS IN THE STUDY
        Some files
          DETAILS
            COTECOTE
              CELL1
                Links about the 50th anniversaryof prolog
                  BOUTON_GO ACL 50 years of PROLOG, http://prologyear.logicprogramming.org/PrologYear.html
                  BOUTON_GO ANNOUNCEMENT, http://www.prolog-heritage.org/doc/Announcement_Prolog50.pdf
                Here
                  you can find also :
                    if you want to look at all files stored here
                    New macros in Prolog
                BOLD
                  RED
                    CELL1
                      CENSUS OF APPLICATIONS 2022
                        please fill in and send
                      BOUTON_GO NEW APPLICATION CENSUS 2022 FORM, DOCS/APPLICATIONS/VIEILLES_APPLICATIONS/census_form.htm
                      BOUTON_GO NEW 2022 SURVEY, $new_apps/PROCESSING NEW APPLICATIONS IN PROLOG.htm
              CELL1
                Old application database 1995
                  BOUTON_GO 1995 SURVEY, $old_apps/PROCESSING OLD APPLICATIONS IN PROLOG.htm
                    informations base
                      methodology
                      directory of database of old applications
                      old version in text format
                    Exploitation of the 1995 database
                      new version in .json format
                      new version with text fields in lower case, and in .json format
                      database 1995 applications - classification by domain
                      old format in html and json
                        database - FORM.txt
                        BOLD
                          new documentation
        Meetings notes
            20th of April
            3rd of May, 2022
    NEW_PAGE_MULTI METHODOLOGY
      HEADER
        THIS_NAVBAR
      METHODOLOGY
        LARGE
          BLUE
            PROLOG n'est pas qu'un langage universitaire, mais a servi et sert encore dans des applications réelles, où il joue un rôle clef.
            PROLOG is not only a university's toy but was and is still a very valudable tool for real-world applications, where it plays a key role.
            On essaie d'inventorier les applications de Prolog et leurs orientations.
        RED
          Collective work to produce a structured and readable (but informal) database.
        2 steps :
            collect data
              and record
                (links, topics, digest of link).
                (present activity).
            structure
              (present activity).
            synthesis according to various POV (Point of view)
        Dimensions of the study
            Points of interest
                Applications
                Software tools
                People and groups
                Concepts
            Time
              record events like time of invention, and other stuff
            Content at different levels
                Name
                Short description
                Long Description
            Justifications
                links
                mails
                talks
                etc.
        PEOPLE
          BOLD
            We list here the various groups and contributors involved and related to this study.
          Some people who participated in the writing
            COTECOTE
              Core group
                François Fages <francois.fages@inria.fr>
                Laurent CERVONI <laurent.cervoni@talan.com>
                Laurent GOUZENES <lgouzenes@km2-conseil.fr>
                Jean ROHMER <jean.rohmer@devinci.fr>
                Salvador Abreu <spa@uevora.pt>
              Participants
                Eric De la Clergerie <Eric.De_La_Clergerie@inria.fr>
                  GNU prolog
                Laurent Chaudron <laurent.chaudron.1981@polytechnique.org>
                Jan Wielemaker (SWI prolog)
                François-Marie LESAFFRE <lesaffre@aerospace-valley.com>
                TRAZZI Alain <Alain.TRAZZI@cosytec.com>
                  Business Development manager,
                  CHIP
                    cf mail de JR du 06/04/2022 14:36
                  COSYTECH
                    Adrien FACHON, CEO,
              Advisers
                Bob Kowalski <r.kowalski@imperial.ac.uk>
                Veronica Dahl
                Célestin SEDOGBO <celestin.sedogbo@institut-cognition.com>
                Guy Alain Narboni <cabinet@implexe.fr>
          DETAILS MORE DETAILS ON GROUPS
            Other groups
              Group
                Teaching Prolog
                  Veronica Dahl <veronica_dahl@sfu.ca>
                    core members
                  Laurent Chaudron <laurent.chaudron.1981@polytechnique.org>
                    core members
                  laure.bourgois <laure.bourgois@codataschool.com>
                    core members
                  Olivier Bartheye <olivier.bartheye@ecole-air.fr>
                    core members
                  Henry KANOUI <henry.kanoui@yahoo.fr>
                    core members
                  Marc Bergman <marc.bergman@free.fr>
                    core members
                  Laurent GOUZENES <lgouzenes@km2-conseil.fr>
                    side members
                  Lycée Paul Valery (désigné comme un lycée pilote en matière d'IA)
                    note
                    cours étendu
                      jeudi 9 Juin de 14h à 18h
                Challenge
                  laure.bourgois <laure.bourgois@codataschool.com>
                    core members
                  Laurent CERVONI <laurent.cervoni@talan.com>
                    core members
                  Laurent Chaudron <laurent.chaudron.1981@polytechnique.org>
                    core members
                  ?
                    note
                  ?
                    side members
    NEW_PAGE_MULTI The ANNIVERSARY 2020
      HEADER
        THIS_NAVBAR
      Some pages
        COTECOTE
          on the ALP site
            50th-anniversary-of-prolog-the-first-computer-language-for-logic-programming/
              X
            Association for Logic Programming (ALP)
      Notes for the challenge
          basic knowledge
            some interesting sites
              meta site with many links
              GITHUB
                  https://github.com/klaussinani/awesome-prolog#math
          COLUMNS_2
            hiearchy of problems form simple to hardest
                Basic Prolog
                    to learn
                        revers d'une liste
                        compter en prolog
                          cf Jean Rohmer
                    easy
                        tours de hanoi
                        jeu de permutations
                        dessiner des fractales en prolog
                        mini eliza
                        translating word by word french-english
                    moyens
                        cubes avec <= 5 cubes
                        derive a funcional formula
                        eliza better
                          with internal model
                        améliorer la qualité de l'anglais par des règles de grammaire et de complémentation
                    difficult
                        cubes avec <= 50 cubes
                            manipulation interactive
                            résolution de problèmes
                    use of libraries
                        graphiques
                            animation des tours de Hanoi
                            animation des cubes
                        mini serveur web
                    very difficult
                        graphique plus sophistiqué
                        cubes avec > 100 cubes
                          variantes
                              espace contraint
                              sur un plan
                              optimisation des trajets
                              etc
                        fonction intégration
                        agent conversationnel pour aider à écrire un programme
                prolog with constraint solver and other variants
                  ???
    NEW_PAGE_MULTI PROLOG IN THE PAST
      HEADER
        THIS_NAVBAR
      Some preliminary information about Prolog today and its past
        Some history
          The history of prolog and derivates can be understood at different scales, and according to different views (theoretic, implementation, system features, syntex, etc, ...)
            More details can be read
                here.
                Colmerauer's blog
          COTECOTE
          RED
            WARNING
              The paternity of tools and concepts could be a hot topic of discussion.
                This following graph is intended for a global understanding based on available public documentation, but may not refer exactly to reality.
          A global view of the surrounding fields is depicted by the following image :
            Cartographie et typologie des outils et concepts basés sur ou inspirés par prolog
            GOSUB
              missing :
                  Tools
                      Chips
                  Languages
                  Concepts
                      SAT solvers
                      Ensemble Programming
    NEW_PAGE_MULTI PROLOG TODAY
      HEADER
        THIS_NAVBAR
      USE OF PROLOG AS A LANGUAGE
        PROLOG today
          The Tiobe language ranking puth Prolog in the 21th place.
          some complementary questions
              Is Prolog professionally useful?
              Proloog requiers a special state of mind
                and experience
                  prolog nécessite un état d'esprit particulier
                    et de l'expérience (beaucoup ?)
              logic programming career ???
              Prolog is a crazy language :
                Unless you use it constantly, you end up forgetting it
              limitations of prolog (on wikipedia)
              How can one document properly prolog programms ?
                comment documenter des programmes prolog ?
          Notes
              RED
                XLARGE
                  BOLD
                    Comparison of Prolog implementations
              cf APPENDIX
          Prolog is not alone to struggle
            Its not just Prolog that is suffering as a programming language:
        SOME GOOGLE STATS
          Some Google statistics on the frequency of terms in search by all the world
            DEF_DB_1 GOOGLE_QUERIES
              query
                key words and link
                  image of the result
                    result
                  recall query terms
                    query terms
                  comments
                    notes
                logic programming, constraint satisfaction, constraint programming, swi prolog
                    result
                    query terms
                  same pattern for logic programming and swi prolog
                    notes
                comparisons of implementations
                    query terms
                    result
                  swi prolog leadds the race
                    notes
                variants of computer languages
                    query terms
                    result
                  the concept is clear
                    notes
                  Erlang has a significant propularity
                    notes
            BR 2
              EXTRACT TABLE query terms, result, notes
                TABLE
                  {GOOGLE_QUERIES}
                FORMAT
                  QUERY
                    {query}
                        Results
                        {query terms}
                          {result}
                      {notes}
                        Notes
      SOME COMPANIES WORKING WITH PROLOG AND SUCCESSORS
        Many companies have developped products, libraries and frameworks around Prolog and its successors.
        More precisely
            a compiler transforms a language L into machine instructions.
            librairies are a collection of programms that help programmers
            a developing environment is a collection of tools that help to develop programms (editor, debugger, tracing tand performance tools, testsing, etc).
            frameworks provide a run-time environment for programms written in language L and may interact with other programms and frameworks.
        AllegroGraph
          Franz
            Is There a Smarter Path to Artificial Intelligence? Some Experts Hope So
            Sells also Common Lisp
        GraphStax
          GraphStax
          Tox21 leaderboard
        Kyndi
          Explainable AI
          article
            2019 kyndi-raises-20-million-for-explainable-ai-that-derives-insights-from-documents/
        LPA
          Logic Programming associates
            100% owner of Visirule
          WIN-PROLOG
            Products
              Prolog Language Compilers
              Expert Systems Development
              Interfaces and Toolkits
              World Wide Web Solutions
              Live Web Demos
        SICStus
          provides sicstus Prolog
            some documentation
              https://arxiv.org/pdf/1011.5640.pdf
                origin and intenal description of SICstus Prolog
        SWI_PROLOG
        Visual Prolog
          VIsual Prolg is inherited from Turbo Prolog
            web_site
        Visirule
          cf LPA
            web site
          examples
              tax advisor for lexis nexis
                cf video
                  (in german)
              demos
                  https://www.visirule.co.uk/visirule-for-javascript-demos
                  https://www.visirule.co.uk/misc-demos
      EXPECTATIONS AND REALITIES OF PROLOG
        Modern Prologs
          There are many variants
              common characteristics
                  close and full ISO-standard compatible
              differences
          advantages of modern implementations
              speed
                moderne harware is 1 million times faster than in the 1980s.
              solvers others than unification
                  with constraints
                      intervalles
                      sets
              libraries for interfaces woth real world.
        Critères d'évaluation
          critère
            critère
            readability
              compact foirmalism for complex problems
                Attendu
              programs unreadable, except the one who wrote them.
                Réel
              programs with with unsufficient documentation
                Réel
              links between model and reality not always clear
                Réel
                ('representations are poorly documented)
            simplicity
            efficiency
            dialog with user
            generality of use
              logic should solve all problems
                Attendu
              need of fuzzy logic
                Réel
              need to evaluate solutions with a avlue to be optimized
                Réel
              need of functional or imperative programing
                Réel
              fuzzy prologs ?
                Remarque
              speed ?
                Remarque
              NN base systems more efficient ?
                Remarque
            natural language
              produce texts for explanations
                Attendu
              toujours un sujet plutôt absent, peut-être par manque de systèmes capables de raisonner de façon non triviale.
                Réel
              modèles avec des RN plus souples ?
                Remarque
            learning
              in opposition with hand-written rules
                Attendu
              well understood in simple cases
                Réel
                but not in complex ones
              impact on the cost of the computing is often not measured.
                Réel
            integration with other algorithmic processes
        NOTES
            as soon as an application is well understood and mastered in prolog, it is rewritten for greater efficiency.
            difficulty in mastering hundreds of rules
            the prolog kernel, which is focused on unification, does not provide comfortable human-machine interface tools. Programmers are turning to other tools.
        Nouveaux axes
          stats + neuronal
            Via Eric de la Clergerie
              Nom
                Pedro Domingos
                  Alchemy
                    Outil
                  https://alchemy.cs.washington.edu/
                    Lien
                  software package providing a series of algorithms for statistical relational learning and probabilistic logic inference, based on the Markov logic representation. Alchemy allows you to easily develop a wide range of AI applications, including:
                    Info
                      Collective classification
                      Link prediction
                      Entity resolution
                      Social network modeling
                      Information extraction
                Jason Eisner
                  Dyna
                    Outil
                  https://dyna.readthedocs.io/en/latest/
                    Lien
                  Dyna is an new declarative programming language developed at Johns Hopkins University.
                    Info
                  logic + solver
                    notes
                ProbLog2 was developed in the DTAI group of KULeuven,
                  Problog
                    Outil
                  https://dtai.cs.kuleuven.be/problog/
                    Lien
                  Probabilistic logic programs are logic programs in which some of the facts are annotated with probabilities.
ProbLog is a tool that allows you to intuitively build programs that do not only encode complex interactions between a large sets of heterogenous components but also the inherent uncertainties that are present in real-life situations.
                    Info
                  tutorial
                    notes
                ProbLog2 was developed in the DTAI group of KULeuven,
                  DeepProbLog
                    Outil
                  https://github.com/ML-KULeuven/deepproblog
                    Lien
                  BOLD
                    Info
                    DeepProbLog is an extension of ProbLog
                  en python
                    notes
                      besoin de
                        ProbLog
                        PySDD
                        PyTorch
                        TorchVision
                        PySwip
                  that integrates Probabilistic Logic Programming with deep learning by introducing the neural predicate. The neural predicate represents probabilistic facts whose probabilites are parameterized by neural networks. For more information, consult the papers listed below.
                    Info
                      exemples
                      tutorial
                        42 mn
          Use of prolog inside frameworks
            Exemple
              Jupyter
                does it work nicely really ?
                  notes
    NEW_PAGE_MULTI THE FUTURE
      HEADER
        THIS_NAVBAR
      BOLD
        BLUE
          CENTER
            Prolog in 2022 is very different from Prolog in 1972.
              Normal evolution like in many other languages
      PROLOG has a future !
        many questions :
            more logic
            more functionnal programming ?
            which name ?
              should it be numbered ?
            solvers : integrated or libraries ?
            repositories of libraries ?
            compatibilities between diffeent prologs ?
            one or many prologs ?
      Recommandations for a future of prolog
        What is needed
            make developments of prolog programms easier
            publicize the knowledge of how complex problems are solved
                library of solved problems
                interface library
                show how complex problems are solved, not only toys
                    world of cubes = 1000 cubes, not just 3 cubes
                    dialogs in Natural language with hundreds of sentences and words.
                      not only 20 words of vocabulary
            install an interactive Prolog insinde the Jupyter framewordk
                it seems that existing solutions are not fully ok
                  .... but you can
                    find more answers here
                http://alexriina.com/2019/02/11/ipython-prolog/
                  works ?
            more education
                examples
                tutorials
                etc
        How to provide the answers
            publicize applications
                each prolog or logic conference MUST have invited papers on applications.
          git specialized for prolog
    NEW_PAGE_MULTI PROLOG IN PRACTICE
      HEADER
        THIS_NAVBAR
      Main prolog implementations
        CENTER
          BLUE
            BOLD
              main source : Comparison of Prolog implementations
        DETAILS IMPLEMENTATION
          Prolog implementations
            Name
              AllegroProlog
                Unix, Windows, Mac OS X
                  OS
                Commercial, limited free edition available
                  Licence
                  Native Graphics
                Yes
                  Compiled Code
                Yes
                  Unicode
                Yes
                  Object Oriented
                Yes, via Lisp
                  Native OS Control
                Yes
                  Stand Alone Executable
                Yes, via Lisp
                  C Interface[3]
                Yes, via Lisp
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                Yes, via Lisp
                  Code Profiler
                S-expressions. Full Common Lisp integration.
                  Syntax
              BProlog
                Unix, Windows, Mac OS X
                  OS
                Free for non-commercial uses
                  Licence
                  Native Graphics
                Yes
                  Compiled Code
                Yes
                  Unicode
                Yes
                  Object Oriented
                Yes
                  Native OS Control
                Yes
                  Stand Alone Executable
                Yes
                  C Interface[3]
                Yes
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                Yes
                  Code Profiler
                ISO-Prolog, plus event-handling, CLP(FD), and tabling
                  Syntax
              Ciao
                Unix, Windows, Mac OS X
                  OS
                GPL, LGPL
                  Licence
                  Native Graphics
                Yes
                  Compiled Code
                  Unicode
                Yes
                  Object Oriented
                Yes
                  Native OS Control
                Yes
                  Stand Alone Executable
                Yes
                  C Interface[3]
                Yes
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                Yes
                  Code Profiler
                ISO-Prolog, plus extensions
                  Syntax
              DOS-PROLOG
                MS-DOS
                  OS
                Shareware
                  Licence
                Yes
                  Native Graphics
                Yes
                  Compiled Code
                Yes
                  Unicode
                  Object Oriented
                Yes
                  Native OS Control
                Yes
                  Stand Alone Executable
                  C Interface[3]
                  Java Interface[3]
                  Interactive Interpreter
                Yes
                  Debugger
                  Code Profiler
                Edinburgh Prolog
                  Syntax
              ECLiPSe
                Linux, Windows, Solaris, macOS
                  OS
                MPL
                  Licence
                  Native Graphics
                Yes
                  Compiled Code
                  Unicode
                  Object Oriented
                Yes
                  Native OS Control
                  Stand Alone Executable
                Yes
                  C Interface[3]
                Yes
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                Yes
                  Code Profiler
                Extended Prolog, Multi-dialect, including ISO
                  Syntax
              GNU Prolog
                Unix, Windows, Mac OS X
                  OS
                GPL, LGPL
                  Licence
                  Native Graphics
                Yes
                  Compiled Code
                  Unicode
                  Object Oriented
                Yes
                  Native OS Control
                Yes
                  Stand Alone Executable
                Yes
                  C Interface[3]
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                  Code Profiler
                ISO-Prolog
                  Syntax
              JIProlog
                JVM, Android
                  OS
                Shareware/Commercial and AGPL
                  Licence
                Yes
                  Native Graphics
                  Compiled Code
                Yes
                  Unicode
                  Object Oriented
                Yes via Java
                  Native OS Control
                Yes
                  Stand Alone Executable
                Yes via Java
                  C Interface[3]
                Yes
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                  Code Profiler
                ISO-Prolog
                  Syntax
              JLog
                JVM
                  OS
                GPL
                  Licence
                Yes
                  Native Graphics
                Yes
                  Compiled Code
                  Unicode
                  Object Oriented
                  Native OS Control
                  Stand Alone Executable
                  C Interface[3]
                Yes
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                  Debugger
                  Code Profiler
                ISO-Prolog
                  Syntax
              JScriptLog
                Web Browser
                  OS
                GPL
                  Licence
                  Native Graphics
                  Compiled Code
                  Unicode
                  Object Oriented
                  Native OS Control
                  Stand Alone Executable
                  C Interface[3]
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                  Debugger
                  Code Profiler
                ISO-Prolog
                  Syntax
              jTrolog
                JVM
                  OS
                LGPL
                  Licence
                  Native Graphics
                  Compiled Code
                Yes
                  Unicode
                  Object Oriented
                  Native OS Control
                  Stand Alone Executable
                  C Interface[3]
                Yes
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                  Code Profiler
                ISO-Prolog tests[permanent dead link]
                  Syntax
              LPA-PROLOG
                Windows
                  OS
                Commercial
                  Licence
                Yes
                  Native Graphics
                Yes
                  Compiled Code
                Yes
                  Unicode
                Yes
                  Object Oriented
                Yes
                  Native OS Control
                Yes
                  Stand Alone Executable
                Yes
                  C Interface[3]
                Yes
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                Yes
                  Code Profiler
                Edinburgh Prolog with extensions
                  Syntax
              Open Prolog
                Mac OS
                  OS
                Freeware
                  Licence
                  Native Graphics
                  Compiled Code
                  Unicode
                  Object Oriented
                  Native OS Control
                  Stand Alone Executable
                  C Interface[3]
                  Java Interface[3]
                  Interactive Interpreter
                Yes
                  Debugger
                  Code Profiler
                  Syntax
              Poplog Prolog
                Linux (32- and 64-bit), Unix, Windows
                  OS
                Free Open Source
                  Licence
                Only through POP-11, on Linux
                  Native Graphics
                Yes
                  Compiled Code
                  Unicode
                  Object Oriented
                Yes
                  Native OS Control
                Yes
                  Stand Alone Executable
                Yes
                  C Interface[3]
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                  Code Profiler
                Edinburgh Prolog, with interfaces to Poplog Common Lisp and Pop-11
                  Syntax
              SICStus Prolog
                Unix, Linux, Windows, macOS
                  OS
                Commercial
                  Licence
                Yes
                  Native Graphics
                Yes
                  Compiled Code
                Yes
                  Unicode
                Yes
                  Object Oriented
                Yes
                  Native OS Control
                Yes
                  Stand Alone Executable
                Yes
                  C Interface[3]
                Yes
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                Yes
                  Code Profiler
                ISO-Prolog
                  Syntax
              Strawberry Prolog
                Windows, Unix
                  OS
                Freeware, Commercial
                  Licence
                Yes
                  Native Graphics
                Yes
                  Compiled Code
                Yes
                  Unicode
                  Object Oriented
                  Native OS Control
                Yes
                  Stand Alone Executable
                  C Interface[3]
                  Java Interface[3]
                  Interactive Interpreter
                Yes
                  Debugger
                  Code Profiler
                Not ISO-Prolog + extensions
                  Syntax
              SWI-Prolog
                Unix, Linux, Windows, macOS
                  OS
                BSD License
                  Licence
                Yes
                  Native Graphics
                Yes
                  Compiled Code
                Yes
                  Unicode
                  Object Oriented
                Yes
                  Native OS Control
                Yes
                  Stand Alone Executable
                Yes
                  C Interface[3]
                Yes
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                Yes
                  Code Profiler
                ISO-Prolog, Edinburgh Prolog
                  Syntax
              tuProlog
                JVM, Android
                  OS
                LGPL
                  Licence
                Yes
                  Native Graphics
                  Compiled Code
                Yes
                  Unicode
                  Object Oriented
                  Native OS Control
                  Stand Alone Executable
                Yes
                  C Interface[3]
                Yes
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                  Code Profiler
                ISO-Prolog
                  Syntax
              Visual Prolog
                Windows
                  OS
                Freeware, Commercial
                  Licence
                Yes
                  Native Graphics
                Yes
                  Compiled Code
                Yes
                  Unicode
                Yes
                  Object Oriented
                Yes
                  Native OS Control
                Yes
                  Stand Alone Executable
                Yes
                  C Interface[3]
                  Java Interface[3]
                  Interactive Interpreter
                Yes
                  Debugger
                Yes
                  Code Profiler
                  Syntax
              XSB Prolog
                Linux, Windows, Solaris, macOS
                  OS
                LGPL
                  Licence
                  Native Graphics
                Yes
                  Compiled Code
                Yes
                  Unicode
                  Object Oriented
                Yes
                  Native OS Control
                Yes
                  Stand Alone Executable
                Yes
                  C Interface[3]
                Yes
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                Yes
                  Code Profiler
                ISO-Prolog, tabled WFS
                  Syntax
              YAP-Prolog
                Linux, Windows, Solaris, Mac OS X, HP-UX
                  OS
                GPL or Artistic (user choice)
                  Licence
                  Native Graphics
                Yes
                  Compiled Code
                Yes
                  Unicode
                  Object Oriented
                Yes
                  Native OS Control
                Yes
                  Stand Alone Executable
                Yes
                  C Interface[3]
                Yes
                  Java Interface[3]
                Yes
                  Interactive Interpreter
                Yes
                  Debugger
                  Code Profiler
                Edinburgh, ISO-Prolog, Quintus and SICStus Prolog compatible
                  Syntax
          Operating system and Web-related features
            Name
              BProlog
                  Conditional compilation
                  Sockets
                  Multi-threading
                Yes
                  Tabling
                  HTTP client
                  HTTP server
                  HTML Parser
                  RDF Triple store
              Ciao
                Yes
                  Conditional compilation
                Yes
                  Sockets
                Yes
                  Multi-threading
                Yes
                  Tabling
                Yes
                  HTTP client
                Yes
                  HTTP server
                Yes
                  HTML Parser
                  RDF Triple store
              ECLiPSe
                Yes
                  Conditional compilation
                Yes
                  Sockets
                Yes
                  Multi-threading
                  Tabling
                Yes
                  HTTP client
                  HTTP server
                Yes
                  HTML Parser
                  RDF Triple store
              GNU Prolog
                  Conditional compilation
                Yes
                  Sockets
                  Multi-threading
                  Tabling
                  HTTP client
                  HTTP server
                  HTML Parser
                  RDF Triple store
              LPA-Prolog
                  Conditional compilation
                Yes
                  Sockets
                  Multi-threading
                  Tabling
                Yes
                  HTTP client
                Yes
                  HTTP server
                Yes
                  HTML Parser
                  RDF Triple store
              SICStus Prolog
                Yes
                  Conditional compilation
                Yes
                  Sockets
                Yes
                  Multi-threading
                  Tabling
                  HTTP client
                  HTTP server
                  HTML Parser
                  RDF Triple store
              SWI-Prolog
                Yes
                  Conditional compilation
                Yes
                  Sockets
                Yes
                  Multi-threading
                Yes
                  Tabling
                Yes
                  HTTP client
                Yes
                  HTTP server
                Yes
                  HTML Parser
                Yes
                  RDF Triple store
              Visual Prolog
                Yes
                  Conditional compilation
                Yes
                  Sockets
                Yes
                  Multi-threading
                  Tabling
                Yes
                  HTTP client
                Yes
                  HTTP server
                Yes
                  HTML Parser
                  RDF Triple store
              XSB
                Yes
                  Conditional compilation
                Yes
                  Sockets
                Yes
                  Multi-threading
                Yes
                  Tabling
                Yes
                  HTTP client
                  HTTP server
                  HTML Parser
                  RDF Triple store
              YAP-Prolog
                Yes
                  Conditional compilation
                Yes
                  Sockets
                Yes
                  Multi-threading
                Yes
                  Tabling
          Optimizations
            Name
              Ciao
                Yes
                  Tail-Call Optimization
                Yes
                  Choice Point Elimination
                Yes
                  Environment Trimming
                ?
                  Just-in-Time Indexing
              ECLiPSe
                Yes
                  Tail-Call Optimization
                Yes
                  Choice Point Elimination
                Yes
                  Environment Trimming
                multi-argument (compile time)
                  Just-in-Time Indexing
              GNU Prolog
                Yes
                  Tail-Call Optimization
                Yes
                  Choice Point Elimination
                Yes
                  Environment Trimming
                ?
                  Just-in-Time Indexing
              SICStus Prolog
                Yes
                  Tail-Call Optimization
                Yes
                  Choice Point Elimination
                Yes
                  Environment Trimming
                  Just-in-Time Indexing
              SWI-Prolog
                Yes
                  Tail-Call Optimization
                Yes
                  Choice Point Elimination
                Yes
                  Environment Trimming
                Yes
                  Just-in-Time Indexing
              Visual Prolog
                Yes (compile time)
                  Tail-Call Optimization
                Yes (compile time)
                  Choice Point Elimination
                N/A
                  Environment Trimming
                N/A (compile time)
                  Just-in-Time Indexing
              XSB
                Yes
                  Tail-Call Optimization
                Yes
                  Choice Point Elimination
                Yes
                  Environment Trimming
                ?
                  Just-in-Time Indexing
              YAP-Prolog
                Yes
                  Tail-Call Optimization
                Yes
                  Choice Point Elimination
                Yes
                  Environment Trimming
                Yes
                  Just-in-Time Indexing
          Static analysis
            Name
              Ciao
                Yes
                  Type checker
                Yes
                  Determinacy checker
                Yes
                  Call-pattern checker
              GNU Prolog
                  Type checker
                  Determinacy checker
                  Call-pattern checker
              SICStus Prolog
                  Type checker
                Yes
                  Determinacy checker
                  Call-pattern checker
              SWI-Prolog
                  Type checker
                Yes
                  Determinacy checker
                  Call-pattern checker
              Visual Prolog
                Yes
                  Type checker
                Yes
                  Determinacy checker
                Yes
                  Call-pattern checker
              XSB
                  Type checker
                  Determinacy checker
                  Call-pattern checker
              YAP-Prolog
      SOME EXISTING LIBRARIES
        DEF_DB BASE__
          prolog system
            name of the system
              possibilité de faire tourner un server web 100% prolog
                web server
              avec et à partir des sources
                doc generator
              interface with sql for large databases
                sql interface
              Sous-sujet 4
                web client server
              if known
                price
              Sous-sujet 6
                description
              Sous-sujet 7
                other
              Sous-sujet 8
                platforms
              university
                company
              Sous-sujet 10
                constraints
            swi_prolog
              yes
                web server
              XPCE library
                graphics
                only linux ?
              rustique
                graphics
              ??
                sql interface
              yes
                doc generator
              free
                price
              interface -> C/C++, python, java, JPL, C#
                other
              Edinburgh Prolog standard
                other
              Unix, Mac, Windows
                platforms
              university
                company
            tau prolog
              manipulation of the DOM
                web client server
              free
                price
              An open source Prolog interpreter in JavaScript
                description
              university/GIT
                company
              by definition
                web server
              on line tool
                platforms
            visual prolog
              free
                price
              professional edition - 100$
                price
              PDC
                company
            Prolog IV
              free
                price
              university
                company
            SICSTUS PROLOG
            SWISH
              https://swish.swi-prolog.org/example/projections.swinb
              outil interactif pour programmer en prolog
                description
            other ?
              GUI
                graphics
        Usages
            EXTRACT TABLE description, web server, graphics, doc generator, sql interface, web client server, constraints
              TABLE
                {BASE__}
            USAGES
              TTS Text to speech
                swi prolog
                  note
                  pack_install(cowsay)
            Open Source projects used by SWI-Prolog
            COLUMNS_2
                CMake Configuration and build management
                dtoa.c (Float <-> text conversion by David M. Gay).
                GMP (Unbounded and rational arithmetic)
                GNU (Linux, development tools, libraries, etc.)
                LibYAML (A C library for parsing and emitting YAML)
                MacPorts (Porting environment for MacOS)
                MurmurHash (string hashing)
                Nullsoft (Windows installer)
                NetBSD (crypt implementation for Windows)
                OpenSSL (secure sockets)
                PCRE (Perl Compatible Regular Expressions)
                SHA routines by Brian Gladman
                Snowball NLP stemmer library
                UnixODBC (Database connectivity on Unix)
                utf8proc (unicode normalization)
                X.org (Graphics on Unix)
                Zlib (compression)
                Qt GUI console
            BOLD
              CENTER
                LARGE
                  RED
                    PARADOX : while Prolog was initally designed for natural language processing, there is no simply available Text-to-speech library in Prolog.
                      ==>
                        Must use external tools.
            but some exist in Python !
              or other librairies in C, etc
        implementation
            EXTRACT TABLE company, price, platforms, other
              TABLE
                {BASE__}
        See also
    NEW_PAGE_MULTI DISCUSSIONS
      HEADER
        THIS_NAVBAR
      TOPICS
        Many topics are of interest for a discussion
          topic
            Functional Programming
              mixing functional and logicial programming : should it be done ? is it possible ?
                Description
              GO_PAGE FUNCTIONAL PROGRAMMING
                Description
              obvious limits of logic programming for computing : imperative (IO), efficient algorithms for solving problems taht are used in only one way, etc.
                Why
              issue of performance
                Notes
                cannot use 2 languages / memory spaces with a costly bridge at execution.
            Performances
              The analysis and prediction of time and space complexity of prolog programs.
                Description
              GO_PAGE PERFORMANCES
                Description
              mandatory or very useful for real life engineering of large projects.
                Why
              can programms scale behind prototyping ?
                Why
              difficult to anticipate the size of problems
                Notes
              need of
                Notes
                  Profiler tools
            Specification and Debugging
                Description
            The future of Prolog
              many questions :
                Notes
                  more logic
                  more functionnal programming ?
                  which name ?
                  should it be numbered ?
              Prolog in 2022 is very different from Prolog in 1972.
                Why
                Normal evolution like in many other languages
    NEW_PAGE_MULTI FUNCTIONAL PROGRAMMING
      HEADER
        THIS_NAVBAR
      The Topic
      Bibliography
        discussions and papers
          tree
          SEARCHES
            Google search
          Papers
            Towards functional programming in Prolog - 1988
            On implementing Prolog in functional programming (Mats Carlsson) - 1984
            Higher-order logic programming in Prolog - 1996
            LOGIC PROGRAMMING WITH FUNCTIONS AND
PREDICATES: THE LANGUAGE BABEL 1992
            Integrating Logic and Functional Programming 1989
    NEW_PAGE_MULTI PERFORMANCES
      HEADER
        THIS_NAVBAR
      DISCUSSING PERFORMANCE
        Some topics that could be discussed :
          how to analyze space and time performance of prolog programs/profiling tools ?
          how can the complexity (space/time) of prolog programms be forecasted ?
          benchmarks of implementations and tools
          example of combinatorial problems of size N which have/dont have solutions for various N
      how to analyze space and time performance of prolog programs/profiling tools ?
      how can the complexity (space/time) of prolog programms be forecasted ?
      benchmarks of implementations and tools
      example of combinatorial problems of size N which have/dont have solutions for various N
      EXAMPLES
    NEW_PAGE_MULTI EDU RESSOURCES
      HEADER
        THIS_NAVBAR
      WEB TUTORIALS
        Google requests
          query=prolog+tutorial
          query=prolog+advanced
        The base of Prolog
          The movie from the Prolog Heritage about Alain Colmerauer
            ALAIN COLMERAUER L'AVENTURE PROLOG
        The Prolog Language
          CELL1
            2COLUMNS
              in french
                elementary
                  Par auteur
                    Olivier Bailleux, Univ Bourgogne
                        https://www.youtube.com/watch?v=Xc6v6Kdir-I
                        https://www.youtube.com/watch?v=k9IqFDJWSdw
                    Denis B
                        Grammaire et Exécution - Mini cours Prolog 1/5
                          5 autres videos
                        exemples
                            Analyse grammaticale en ProLog
                            Résolution d'un exercice "paire"
                            https://www.youtube.com/watch?v=Q14dLAoXibg&list=PLC214F96D99053D06&index=26
                    X
                      Prolog - Utiliser le mode trace
                advanced
          CELL1
            2COLUMNS
              in english
                elementary
                  By author
                      https://www.youtube.com/watch?v=SykxWpFwMGs
                      1-Installing PROLOG on WINDOWS and LINUX
                        and 20 more videos
                          short < 10 mn videos on many topics
                      Ryan Mattfeld
                          Prolog 7: Decision Trees
                advanced
                    Production Prolog" by Michael Hendricks
                    Prolog Meta-interpreters
                advanced examples
                    School Timetabling with Prolog
                      cf also
                        here
                    "Distributed SWI-Prolog Development" by Anne Ogborn
        Logic
          in french
              Olivier Bailleux
                  Introduction à la logique du premier ordre
                    Les bases de la logique du premier ordre
                  Raisonnement automatique en logique du premier ordre
                    document consultable ici
          in english
      BOOKS
        2COLUMNS
          BOOKS AVAILABLE ON THE WEB as pdfs
            A LOGIC-BASED ARCHITECTURE FOR KNOWLEDGE MANAGEMENT - Damian Black & John Manley - 2006 ?
            The_Art_of_Prolog
              course for advanced programming
            Advanced Prolog - 2005
            8573.content(1The Advanced Knowledge Transfer System - 2005
            PROLOG Converge course ??? - 2014 -
            CH8_Natural Language Processing in Prolog.pdf
            c_prolog_tutorial(1).pdf
            EJ805089.pdf
            felty-tutorial-lprolog97(1).pdf
            FLAIRS08-061.pdf
            iicep.1988.115.pdf
            MA-IARTI-TPs-Prolog-01.pdf
            nbsspecialpublication500-145.pdf
            nlp-lab09.pdf
            PROLOG PROGRAMMING FOR ARTICIAL INTELLIGENCE - 1986 - Bratko - Leuwen.pdf
            prolog-digital-1(1).pdf
            PrologNLPCL(1).pdf
            prolog_2021-5.pdf
            Short Prolog Intro.pdf
            The Art of Prolog 2nd Ed - Leon Sterling , Ehud Shapiro.pdf
            Textbook-TIF212-Prolog-Tutorial-3.pdf
            xsip_book.pdf
            tutorial by Fischer
              assez complet
                beaucoup d'exemples simples et moins simples
      GAMES / SIMPLE EXEMPLES
        examples
          Prolog: Programming in Logic
            http://cse.csusb.edu/dick/cs320/prolog/
              bcp d'exemples
              pédagogique
          http://colin.barker.pagesperso-orange.fr/lpa/lpa.htm
          conjecture de Collatz
            collatz en prolog/binaire
          planning
        exemples LG
          base de données et interface bavard
            ici
              airbus demo prolog.pl
                airbus demo prolog.bat
    NEW_PAGE_MULTI EXAMPLES
      HEADER
        THIS_NAVBAR
      WEB SITES WTH MANY EXAMPLES
        GITHUB EXAMPLES
          https://github.com/klaussinani/awesome-prolog#math
            a quite complete collection of examples and tutorials
          https://github.com/vyshnovka/prolog-games
            elementary games
              23 matches
            Tic Tac Toe
          https://sites.google.com/site/prologsite/prolog-problems
          https://github.com/maths/press
            equation solving
            https://www.sciencedirect.com/science/article/pii/S0747717189800070
          https://github.com/mthom/scryer-prolog/blob/master/src/lib/simplex.pl
            algorithme du simplexe en prolog
          https://github.com/ZapDos7/Prolog_Projects
          https://github.com/joao-conde/feup-plog
          https://discourse.swi-prolog.org/t/community-github-organization/469
      N-QUEEN PROBLEM
        BIBLIOGRAPHY
          https://www.sciencedirect.com/science/article/pii/S0012365X07010394
      MOVING CUBES
        world of cubes
          https://www.cpp.edu/~jrfisher/www/prolog_tutorial/2_19.html
            illustration of the concept - 3 cubes
      COMPILERS
        Compiling languages is one the the priominent specialties of Prolog
        Some examples
            https://pages.lip6.fr/Jean-Francois.Perrot/Prolog/GenExp.html
              very clear, and to be completed !
            https://curiosity-driven.org/prolog-interpreter
    NEW_PAGE_MULTI ADVANCED
      This page presents more difficult examlples of programming
      HEADER
        THIS_NAVBAR
    NEW_PAGE_MULTI DEFINITION OF APPLICATIONS
      HEADER
        THIS_NAVBAR
      BOLD
        CENTER
          BLUE
            Please first visit the 2022 census of applications
              BOUTON_GO NEW 2022 SURVEY, $new_apps/PROCESSING NEW APPLICATIONS IN PROLOG.htm
      CENSUS OF MODERN APPLICATIONS
        BLUE
          BOLD
            Ce paragraphe ne recense que des applications qui tournent encore dans des contextes opérationnels d'entreprise ou d'organisations.
        Perimeter of census
          Prolog went through many evolutions :
              constraints programming
              objects
              SAT solvers
              probabilistic programmation
              programming with neural networks
              etc
          One difficulty it to understand what a prolog-applictaion is.
            We had several propositions :
                the programming concept developped in 1972
                the collective term mentionning all evolutions that occurred since 1972 (= 50 years), should they be technical enrichments of implementations (constraints, solvers, concurrency, etc) or even libraries and programming framework
                distinguishing systems that are 'Prologs at heart', independently of the many extensions they may have, from those that are completely different languages. I enclose the basics.
                Prolog at heart with features :
                    1. Horn clauses with variables in the terms and arbitrarily nested function symbols as the basic knowledge representation means for both programs (a.k.a. knowledge bases) and queries;
                    2. the ability to manipulate predicates and clauses as terms, so that meta-predicates can be written as ordinary predicates;
                    3. SLD-resolution (Kowalski, 1974) based on Robinson’s∗ principle (1965) and Kowalski’s procedural semantics (Kowalski, 1974) as the basic execution mechanism;
                    4. unification of arbitrary terms which may contain logic variables at any position, both during SLD-resolution steps and as an explicit mechanism (e.g., via the built-in =/2);
                    5. the automatic depth-first exploration of the proof tree for each logic query.
        Table of applications
          GOSUB APPLICATIONS
      APPLICATIONS
        Difficultés du recensement
          Le recensement présente plusieurs difficultés
              peu/pas de publicité des solutions mises en oeuvre.
              solutions remplacées après quelques années par des outils plus efficaces dans d'autres langages.
              ne prend pas en compte les applications "jouet" de laboratoires.
          Les applications prolog souffrent de :
              outils d'interface limités
                  entrées sorties
                  graphique
                  modules de calcul auxiliaire
                    échanges de données efficaces .. ou complexes à mettre en oeuvre.
              programmeurs maîtrisant
                  l'outil
                  capacité d'abstraction nécessaire
          Some requests
              applications in prolog
                  https://www.metalevel.at/prolog/web
                  applications of prolog
                    quite complete set of algorithms and basic examples
                  XPROLOG : prolog on android
                  https://ieeexplore.ieee.org/document/5387386
                  web development
                      http://pbrown.me/blog/swi_spa/
                  https://avaxgfx.com/ebooks/275088-programmer-passport-prolog.html
                  formal european policies in prolog (project Light)
                  Formal Models and Techniques for Analyzing Security Protocol
        Les programmes jouets
          On désigne par "programme jouet" un programme destiné à démontrer un principe ou un outil, mais qui n'a pas été jusqu'au bout d'une implémentation en vraie grandeur ou opérationnelle dans le monde réel.
          Il y a beaucoup de programmes jouets intéressants pour des raisons de pédagogie :
              APPLICATION
                le monde des cubes
                  Des cubes empilables sont sur une table.
                    Objectif
                  Il s'agit
                    Objectif
                      de trouver une séquence qui permet d'une configuration à une autre
                      de guider un "robot manipulateur" pour déplacer les cubes
                  COTECOTE
                    Objectif
                      Exemple
                  résolution de problèmes
                    techniques utilisées
                  traitement du langage naturel
                    techniques utilisées
                  graphique
                    techniques utilisées
                  peu de contraintes (ex : cubes vs Hanoï)
                    notes
                    ou place limitée sur la table
                  se cantone souvent à des cas triviaux (3 cubes, pas 1000 cubes)
                    notes
                  les programmes présentés ne passent pas à l'échelle.
                    notes
                  formalisme pas toujours évident
                    notes
                    si beaucoup plus de cubes
                  documentation pauvre
                    notes
                  possible d'avoir plus d'objets (boules, pyramides, etc), et couleurs ?
                    notes
                le problème des dames aux échecs
                  Placer N dames sur un échiquier sans prise mutuelle
                    Objectif
                  backtracking simple en plaçant ligne par ligne
                    notes
                    simple jusquà 20
                    plus aléatoire 20 -> 29
                    impraticable N > 30
                  ==> besin d'être amélioré par des stratégies plus efficaces
                    notes
                  BOLD
                    notes
                    discussion sur les stratégies possibles
                      strategies for N queens - advanced programming.pdf
                      backtrack
                      labelling plus astucieux
                      positionnement
          On peut même constater que les programmes "jouets" n'ont pas permis la constitution de librairies ré-utilisables
        Exemples applications du passé
          Le tableau suivant présente un recensement de quelques applications:
            Thème
              thématique
                contexte industriel, quantifier si possible
                  Contexte
                résultats tangibles,
                  Résultats
                  qualitatifs
                  quantitatifs
                  autres
                xxxx
                  Année
                où en est on aujourd'hui ?
                  Note
                  toujours en service ?
                une nouvelle technologie ?
                  Note
              traitement de textes
                traitement des doublons et fautes d'orthographe dans les adresses postales d'une base de données.
                  Contexte
                plusieurs dizaines de millions d'adresses.
                  Contexte
                temps de traitement = ...
                  Résultats
                1995
                  Année
                Solutions avec programme impératif classique( /java)
                  Note
              conception de pièces en matériaux composites
                Besoin d'un outil de CAO pour produire des plans de fabrication de pièces en matériaux composites d'épaisseur variable (et donc le nomre de couches et leur orientations).
                  Contexte
                problème combinatoire
                  Contexte
                1988
                  Année
                Arrangement des couches produit en quelques secondes.
                  Résultats
                Production des plans identiques avec plans d'atelier du processus de fabrication
                  Résultats
                fabrication de centaines de pièces pour l'A320.
                  Résultats
                ??
                  Note
              conception de molécules
                recherche de structures ayant les bonnes propriétés de spectre et d'organisation moléculaire.
                  Contexte
                problème combinatoire
                  Contexte
                identification de centaines de molécules
                  Résultats
                1988-1992
                  Année
                solution réécrite complètement en C, puis en python et C
                  Note
              windows NT
                Along with its C++ code and SProlog interpreter, the NCPA.CPL file has a 700-line SProlog program embedded into it as a textual Windows "resource."
                  Contexte
                  cf here
                    The SProlog algorithm has several features, but primarily it exploits Prolog's inherent backtracking mechanism by exhaustively checking each extant component with every other to determine compatibility. A set of potential "bindings" (one-directional links) is asserted into the Prolog database in the first pass. Then the other constraints are checked, and any associations which would violate negative constraints are retracted. Finally, the remaining database information is used to construct NT namespace device names for each component's "bindings."
                    This network configuration methodology was designed to facilitate the installation of component ensembles which could not be foreseen in 1991, when the work began. Since components declare their classes and constraints themselves, the Prolog interpreter can be counted upon to perform correctly without requiring updates to the NT binaries themselves.
                    This program is the actual network-configuration algorithm; a C++ class "wrapper" encapsulates the SProlog engine and exposes C++ member functions for facilities such as consulting and querying. Network configuration is performed by consulting the "rules" (the resource-based algorithm), consulting the "facts" (the Registry-derived declarative information), and performing a single query which runs the configure everything predicate. Then the C++ code performs many smaller queries to enumerate the results of the main query from the SProlog database. This information is rearranged and written back into each network component's Registry area. Then, when the network is started, this updated information is used by each software process to determine what other software modules are to be dynamically connected to it.
                not in use anymore
                  Résultats
                  https://www.drdobbs.com/cpp/extending-c-with-prolog/184409294
                code available here
                  Résultats
                  prolog en C
                    https://www.drdobbs.com/cpp/extending-c-with-prolog/184409294#00a1_003a
                1994
                  Année
    NEW_PAGE_MULTI BIBLIO and APPENDIX
      HEADER
        THIS_NAVBAR
      Bibliography
        via Laurent Cervoni
            sémantique pour le ML
              https://arxiv.org/pdf/2202.09868v1.pdf
                2022
            Bâtment
              https://doi.org/10.1016/j.autcon.2021.103756
                accessible si paywall
                  ou ici
                logic representation for BIM building offsite construction.pdf
            (psy et démonstrateur de théories)
                https://www.sciencedirect.com/science/article/pii/S0732118X20302130
                  accessible si paywall
                    ou ici
                  using logic programming for theory representation and scientific inference (2021).pdf
                https://jeanchristopherohner.github.io/theory-toolbox-2
                  https://jeanchristopherohner.github.io/theory-toolbox-2/#writtenDoc
                    cf discussion sur "Advantages of Logic Programming"
            explicabilité en IA
              Prolog-based agnostic explanation module for structured pattern classification (2021)
            (modélisation empreinte carbone)
              Green Application Placement in the Cloud-IoT Continuum( 2021)
            Résolution des puzzles de Bongard (1967) en Prolog et en DeepLearning :
                Using Program Synthesis and Inductive Logic Programming to solve Bongard Problems - 2021
                https://k10v.github.io/2018/02/25/Solving-Bongard-problems-with-deep-learning/
                  http://www.foundalis.com/res/diss_research.html
                    http://www.foundalis.com/soc/why_no_more_Bongard.html
                    Bongard Problems - Critique of RF4 : The RF4 approach to input representation, and why it should be avoided in cognitive science.
          RED
            Doc générale
          (Click on triangle to see more)
            DETAILS
              GOSUB
      FORMAL DATABASE
        BOLD
          This database is a trial to have a strong formal base of knowledge
          It shoudl be exploited by generating (automatically) prolog declarations.
          It is aimed at the automatic construction of opint of view (POV) on the topic.
          This is a draft/trial
        CONCEPTS
          GOSUB CONCEPTS
        TOOLS
          GOSUB TOOLS
        PEOPLE
          GOSUB PEOPLE
      PEOPLE WITH RICH SITES ABOUT PROLOG AND LOGIC PROGRAMMING
        This list is intended as a memo, not as an exhaustive resource.
          Paul Tarau
      APPENDIX
  ici
    PROLOG.htm
I had this morning a long discussion with Adrien Fachon, CEO, and Alain Trazzi, Business Development manager, of Cosytec
Cosytec is the company created by Mehmet Dincbas in 1991, to market CHIP ( from ECRC)" Constraint Handling in Prolog". They still exist, and are now part of CEGEDIM , a large application software company.: more than 5600 employees in 10 countries, more than 500 millions euros revenue. Very active for instance in (human) resource management in health sector. Adrien is a manager inside CEGEDIM, and Alain has a long track record un logic and constraints programming, working also in Bull Cediag in the 90'S. And one of his feats of arms is the management of 1500 trucks for orange harvesting in Brasil, with Citrosuco, a major worlwide orange juice producer.
They were very impressed by our objectives and plans in Year of Prolog.
They currently work on the large project NEXSIS for firemen in France, at national level, probably one on the largest Logic Programming under development.
They are ready to receive fron Celestin the sollicitation for the sponsorship campaign.
They agreed also to be part of the activity around "Applications" driven by Laurent Gouzènes. I will make a separate courrier on this point.
More generally, they consider the Year of Prolog as an important initiative, all the more it will have impact in the coming years in their LP landscape.