Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.prolog > #14488

Re: Lets re-iterate software engineering first! (Was: A software engineering analyis why Prolog fails)

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.prolog
Subject Re: Lets re-iterate software engineering first! (Was: A software engineering analyis why Prolog fails)
Date 2025-03-27 11:43 +0100
Message-ID <vs3a5d$eecp$2@solani.org> (permalink)
References <vpceij$is1s$1@solani.org> <vru3mc$c4jo$1@solani.org> <vs3a2d$eecp$1@solani.org>

Show all headers | View raw


But even with such a directive there are many
challenges, which ProbLog suffers also from. Consider
this transformer pipeline, with two components of
type g twice:

      +----+   +----+   +----+
      |    |-->| g  |-->|    |
      |    |   +----+   |    |
x -->| f  |            | h  |--> y
      |    |   +----+   |    |
      |    |-->| g  |-->|    |
      +----+   +----+   +----+

With common subexpessions, i.e. computing
f only once, I can write the forward pass
as follows:

p, q = f(x)
y = h(g(p), g(q))

But the above doesn’t show the learnt parameters.
Will g and g be siamese neural networks, learning
one sets of parameters, or will they learn
two sets of parameters? See also:

Siamese neural network
https://en.wikipedia.org/wiki/Siamese_neural_network

If I am not mistaken in ProbLog one can use
variables to indicate probabilities annotation.
An example of such a variable is seen here:

% intensional probabilistic fact with flexible probability:
P::pack(Item) :- weight(Item,Weight),  P is 1.0/Weight.

But one might need something either to create
siamese or to separate siamese, depending on what
the default modus operandi of the probabilistic

logic programming language is.

Mild Shock schrieb:
> I have retracted those posts, that had Python-first
> in it, not sure whether my analysis about some projects
> was water thight. I only made the Python example as to
> illustrate the idea of
> 
> a variation point. I do not think programming language
> trench wars are good idea, and one should put software
> engineering -first, as an abstract computer science
> discipline. Not doing so
> 
> is only a distraction from the real issues at hand.
> Variation points where defined quite vaguely
> on purpose:
> 
>  > Ivar Jacobson defines a variation point as follows:
>  > A variation point identifies one or more locations at
>  > which the variation will occur.
> 
> Variation points can come in many shades, and for
> example ProbLog based approaches take the viewpoint
> of a Prolog text with a lot of configuration flags
> and predicate
> 
> annotations. This is quite different from the
> autoencoder or transformer component approach I
> suggested here. In particular component oriented
> approach could be
> 
> more flexible and dynamic, when they allow programmatic
> configuration of components. The drawback is you cannot
> understand what the program does by looking at a
> 
> simply structured Prolog text. Although I expected
> the situation is not that bad, and one could do
> something similar to a table/1 directive, i.e. some
> directive that says
> 
> look, this predicate is an autoencoder or transformer:
> 
>  > One idea I had was that autoencoders would become
>  > kind of invisible, and work under the hood to compress
>  > Prolog facts. Take these facts:
>  >
>  > % standard _, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
>  > data(seg7, [0,0,0,0,0,0,0], [0,0,0,0,0,0,0]).
> 
> So to instruct the Prolog system to do what is sketched,
> one would possibly need a new directive autoencoder/1:
> 
> :- autoencoder data/3.
> 
> Mild Shock schrieb:
>> Hi,
>>
>> A software engineering analyis why Prolog fails
>> ================================================
>>
>> You would also get more done, if Prolog had some
>> well design plug and play machine learning libraries.
>> Currently most SWI Prolog packages are just GitHub dumps:
>>
>> (Python) Problem ---> import solver ---> Solution
>>
>> (SWI) Problem ---> install pack ---> Problem
>>
>> Python shows more success in the practitioners domain,
>> since it has more libraries that have made the test of
>> time of practial use. Whereas Prolog is still in its
>> infancy in many domains,
>>
>> you don’t arrive at the same level of convenience and
>> breadth as Python, if you have only fire and forget dumps
>> offered, from some PhD projects where software engineering
>> is secondary.
>>
>> I don’t know exactly why Prolog has so much problems
>> with software engineering. Python has object orientation,
>> but Logtalk didn’t make the situation better. SWI-Prolog
>> has modules, but they are never used. For example this
>>
>> here is a big monolith:
>>
>> This module performs learning over Logic Programs
>> https://github.com/friguzzi/liftcover/blob/main/prolog/liftcover.pl
>>
>> Its more designed towards providing some command line
>> control. But if you look into it, it has EM algorithms
>> and gradient algorithm, and who knows what. These building
>> blocks are not exposed,
>>
>> not made towards reused or towards improvement by
>> switching in 3rd party alternatives. Mostlikely a design
>> flaw inside the pack mechanism itself, since it assumes a
>> single main module?
>>
>> So the pack mechanism works, if a unit pack imports a
>> clp(BNR) pack, since it uses the single entry of clp(BNR).
>> But it is never on paar with the richness of Python packages,
>> which have more a hierarchical structure of many
>>
>> many modules in their packs.
>>
>> Mild Shock schrieb:
>>>
>>> Inductive logic programming at 30
>>> https://arxiv.org/abs/2102.10556
>>>
>>> The paper contains not a single reference to autoencoders!
>>> Still they show this example:
>>>
>>> Fig. 1 ILP systems struggle with structured examples that
>>> exhibit observational noise. All three examples clearly
>>> spell the word "ILP", with some alterations: 3 noisy pixels,
>>> shifted and elongated letters. If we would be to learn a
>>> program that simply draws "ILP" in the middle of the picture,
>>> without noisy pixels and elongated letters, that would
>>> be a correct program.
>>>
>>> I guess ILP is 30 years behind the AI boom. An early autoencoder
>>> turned into transformer was already reported here (*):
>>>
>>> SERIAL ORDER, Michael I. Jordan - May 1986
>>> https://cseweb.ucsd.edu/~gary/PAPER-SUGGESTIONS/Jordan-TR-8604-OCRed.pdf
>>>
>>> Well ILP might have its merits, maybe we should not ask
>>> for a marriage of LLM and Prolog, but Autoencoders and ILP.
>>> But its tricky, I am still trying to decode the da Vinci code of
>>>
>>> things like stacked tensors, are they related to k-literal clauses?
>>> The paper I referenced is found in this excellent video:
>>>
>>> The Making of ChatGPT (35 Year History)
>>> https://www.youtube.com/watch?v=OFS90-FX6pg
>>>
>>
> 

Back to comp.lang.prolog | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Prolog totally missed the AI Boom Mild Shock <janburse@fastmail.fm> - 2025-02-22 13:05 +0100
  Auto-Encoders as Prolog Fact Stores (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-02-22 22:51 +0100
    Ignorance in ILP circles confirmed (Was: Auto-Encoders as Prolog Fact Stores) Mild Shock <janburse@fastmail.fm> - 2025-02-23 18:33 +0100
    Neuro infused logic programming [NILP] (Was: Auto-Encoders as Prolog Fact Stores) Mild Shock <janburse@fastmail.fm> - 2025-03-19 20:58 +0100
  Last Exit Analogical Resoning (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-03-07 18:16 +0100
  A software engineering analyis why Prolog fails (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-03-25 12:22 +0100
    Lets re-iterate software engineering first! (Was: A software engineering analyis why Prolog fails) Mild Shock <janburse@fastmail.fm> - 2025-03-27 11:42 +0100
      Re: Lets re-iterate software engineering first! (Was: A software engineering analyis why Prolog fails) Mild Shock <janburse@fastmail.fm> - 2025-03-27 11:43 +0100
  No Coders completely Brain Dead (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-06-23 16:37 +0200
    Unicode and atom length=1 (Was: No Coders completely Brain Dead) Mild Shock <janburse@fastmail.fm> - 2025-06-23 16:47 +0200
      Most radical approach is Novacore from Dogelog Player (Was: Unicode and atom length=1) Mild Shock <janburse@fastmail.fm> - 2025-06-23 17:03 +0200
        SWI-Prolog master not wide awake, doing day-sleeping (Was: Most radical approach is Novacore from Dogelog Player) Mild Shock <janburse@fastmail.fm> - 2025-06-23 18:43 +0200
          Re: SWI-Prolog master not wide awake, doing day-sleeping (Was: Most radical approach is Novacore from Dogelog Player) Mild Shock <janburse@fastmail.fm> - 2025-06-23 18:44 +0200
          The beauty of a double hook (Was: SWI-Prolog master not wide awake, doing day-sleeping) Mild Shock <janburse@fastmail.fm> - 2025-06-23 18:45 +0200
          The beauty of a dual use hook (Was: SWI-Prolog master not wide awake, doing day-sleeping) Mild Shock <janburse@fastmail.fm> - 2025-06-23 19:01 +0200
            maplist(char_code, Chars, Codes) is bidirectional (Was: The beauty of a dual use hook) Mild Shock <janburse@fastmail.fm> - 2025-06-23 19:17 +0200
              I really have lost all hope and given up (Was: maplist(char_code, Chars, Codes) is bidirectional) Mild Shock <janburse@fastmail.fm> - 2025-06-23 19:31 +0200
        Do Prologers know the Unicode Range? (Was: Most radical approach is Novacore from Dogelog Player) Mild Shock <janburse@fastmail.fm> - 2025-06-27 13:21 +0200
          Can Prologers produce 100% Prolog Code? (Was: Do Prologers know the Unicode Range?) Mild Shock <janburse@fastmail.fm> - 2025-06-27 13:22 +0200
            Attention: Python versus Java (Was: Can Prologers produce 100% Prolog Code?) Mild Shock <janburse@fastmail.fm> - 2025-06-27 13:36 +0200
        Is there a Swiss Army Knife of launching a Prolog system (Was: Most radical approach is Novacore from Dogelog Player) Mild Shock <janburse@fastmail.fm> - 2025-07-13 15:17 +0200
          An -e option could be the more rational choice (Was: Is there a Swiss Army Knife of launching a Prolog system) Mild Shock <janburse@fastmail.fm> - 2025-07-13 15:19 +0200
        Prolog Cycle detection in the Top-Level (Was: Most radical approach is Novacore from Dogelog Player) Mild Shock <janburse@fastmail.fm> - 2025-07-20 13:39 +0200
          What does SWI-Prolog / Ciao Prolog produce? (Was: Prolog Cycle detection in the Top-Level) Mild Shock <janburse@fastmail.fm> - 2025-07-20 13:43 +0200
  Do not give dogs what is holy [Matthew 7:6] (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-06-23 20:33 +0200
    Typo:: Do not give dogs what is holy [Matthew 7:6] (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-06-23 20:38 +0200
      What WG17 could do to prevent segregation [DEC-10 Prolog (10 November 1982)] (Was: Typo:: Do not give dogs what is holy) Mild Shock <janburse@fastmail.fm> - 2025-06-23 21:16 +0200
        Avoid the cheap tricks by Scryer Prolog (Was: What WG17 could do to prevent segregation [DEC-10 Prolog (10 November 1982)]) Mild Shock <janburse@fastmail.fm> - 2025-06-23 22:19 +0200
          Why tuck the tail in front of a false Messias (Was: Avoid the cheap tricks by Scryer Prolog) Mild Shock <janburse@fastmail.fm> - 2025-06-23 22:20 +0200
  Missed the AI Boom because missed the Emojis (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-06-29 13:32 +0200
    Bonus in Trealla Prolog, different Tokenizer (Was: Missed the AI Boom because missed the Emojis) Mild Shock <janburse@fastmail.fm> - 2025-06-29 13:36 +0200
  Science is not prepared for the AI Revolution (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-06-29 16:35 +0200
  Bart Demoen's amageddon revisited (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-07-09 01:55 +0200
    Long story short: Not everybody was blended by Bart Demoen (Was: Bart Demoen's amageddon revisited) Mild Shock <janburse@fastmail.fm> - 2025-07-09 02:08 +0200
      On last sample: Barty Boy in full swing (Re: Long story short: Not everybody was blended by Bart Demoen) Mild Shock <janburse@fastmail.fm> - 2025-07-09 02:12 +0200
        I hope he doesn't get a heart attack (Was: On last sample: Barty Boy in full swing) Mild Shock <janburse@fastmail.fm> - 2025-07-09 02:23 +0200
  Would Poincaré miss the AI Boom (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-07-10 19:17 +0200
    The ideal choice point as a logical formula (Was: Would Poincaré miss the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-07-10 21:22 +0200
      What is practical choice point eliminaton then? (Was: The ideal choice point as a logical formula) Mild Shock <janburse@fastmail.fm> - 2025-07-10 21:30 +0200
        Relation of the practical to the mathematical oracle (Was: What is practical choice point eliminaton then?) Mild Shock <janburse@fastmail.fm> - 2025-07-10 21:35 +0200
          Should try semi-deep Prolog argument indexing (Was: Relation of the practical to the mathematical oracle) Mild Shock <janburse@fastmail.fm> - 2025-07-10 21:43 +0200
            Benefit and drawback: (Semi-)Deep indexing still rare! (Was: Should try semi-deep Prolog argument indexing) Mild Shock <janburse@fastmail.fm> - 2025-07-10 21:58 +0200
              Does DCG standard [2025] say (Semi-)Deep indexing? (Was: Benefit and drawback: (Semi-)Deep indexing still rare!) Mild Shock <janburse@fastmail.fm> - 2025-07-10 22:03 +0200
    Stack Overflow is declining, and GitHub might be next (Was: Would Poincaré miss the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-07-15 20:55 +0200
      GitHub 2.0: The no code companion repository (Was: Stack Overflow is declining, and GitHub might be next) Mild Shock <janburse@fastmail.fm> - 2025-07-15 21:15 +0200
    Gian-Carlo Rota’s legacy and modern AI (Was: Would Poincaré miss the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-07-17 12:00 +0200
  Will the world build on American Stacks? (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-07-14 15:55 +0200
    Analogy as a Core of Intelligence (Human & Artificial) (Re: Will the world build on American Stacks?) Mild Shock <janburse@fastmail.fm> - 2025-07-17 12:14 +0200
      Alain Colmerauer Analogy : Rational Terms / Rational Numbers (Was: Analogy as a Core of Intelligence) Mild Shock <janburse@fastmail.fm> - 2025-07-17 14:33 +0200
        FYI: Peter Aczel Memorial Conference [10th September 2025] (Re: Alain Colmerauer Analogy : Rational Terms / Rational Numbers) Mild Shock <janburse@fastmail.fm> - 2025-07-17 14:57 +0200
          s/Coq/Rocq not found (Re: FYI: Peter Aczel Memorial Conference [10th September 2025]) Mild Shock <janburse@fastmail.fm> - 2025-07-17 23:17 +0200
            Wonder Years are Over: Next Step Mars (Was: s/Coq/Rocq not found) Mild Shock <janburse@fastmail.fm> - 2025-07-17 23:36 +0200
          Some of the legacy of Alain Colmerauer (Re: FYI: Peter Aczel Memorial Conference [10th September 2025]) Mild Shock <janburse@fastmail.fm> - 2025-07-23 19:10 +0200
  Looks like sorting of rational trees needs an existential type (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-07-23 13:57 +0200
    LLMs / Autoencoders could profit for Bisimulation Quotienting (Re: Looks like sorting of rational trees needs an existential type) Mild Shock <janburse@fastmail.fm> - 2025-07-23 14:03 +0200
      Are you Geh? From bi-simulation to bi-similarity (Was: LLMs / Autoencoders could profit for Bisimulation Quotienting) Mild Shock <janburse@fastmail.fm> - 2025-07-23 15:18 +0200
        Quite vibrant logic history one can experience right now! (Re: Are you Geh? From bi-simulation to bi-similarity) Mild Shock <janburse@fastmail.fm> - 2025-07-23 19:14 +0200
  The Prolog Community is extremly embarrassing (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-07-25 21:27 +0200
    Non-Wellfounded and Russell Paradox, what is your opinion? (Re: The Prolog Community is extremly embarrassing) Mild Shock <janburse@fastmail.fm> - 2025-07-25 21:38 +0200
      Unfinished Bimbo Stuff: 4.1. Trees as terms (Re: Non-Wellfounded and Russell Paradox, what is your opinion?) Mild Shock <janburse@fastmail.fm> - 2025-07-25 23:03 +0200
        Gold medal waiting for the crankiest of cranks (Was: Unfinished Bimbo Stuff: 4.1. Trees as terms) Mild Shock <janburse@fastmail.fm> - 2025-07-26 16:10 +0200
          Old School Logicians waste time with compare/3 ? (Was: Gold medal waiting for the crankiest of cranks) Mild Shock <janburse@fastmail.fm> - 2025-07-26 16:17 +0200
            Is compare/3 a sunflower study subject? (Was: Old School Logicians waste time with compare/3 ?) Mild Shock <janburse@fastmail.fm> - 2025-07-26 16:36 +0200
  Lattent Thinking the forbidden Fruit (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-11-02 11:58 +0100
  Latent Thinking the forbidden Fruit (Was: Prolog totally missed the AI Boom) Mild Shock <janburse@fastmail.fm> - 2025-11-02 12:19 +0100
    Fully automated AI researcher in your team? (Re: Latent Thinking the forbidden Fruit) Mild Shock <janburse@fastmail.fm> - 2025-11-02 13:20 +0100

csiph-web