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


Groups > comp.lang.prolog > #14599

Can Prologers produce 100% Prolog Code? (Was: Do Prologers know the Unicode Range?)

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.prolog
Subject Can Prologers produce 100% Prolog Code? (Was: Do Prologers know the Unicode Range?)
Date 2025-06-27 13:22 +0200
Message-ID <103lutm$1cbpu$2@solani.org> (permalink)
References <vpceij$is1s$1@solani.org> <103bos1$164mt$1@solani.org> <103bpdh$164t1$1@solani.org> <103bqc8$165f2$1@solani.org> <103luqv$1cbpu$1@solani.org>

Show all headers | View raw


Somebody wrote:

 > It seems that it reads in as ðŸ‘\u008D but writes out as ðŸ‘\\x8D\\.

Can one then do ‘\uXXXX’ in 100% Prolog as
well? Even including surrogates? Of course,
here some DCG generator snippet from Dogelog

Player which is 100% Prolog. This is from the
Java backend, because I didn’t introduce ‘\uXXXX’
in my Prolog system, because it is not part of

ISO core standard. The ISO core standard would want '\xXX':

crossj_escape_code2(X) --> {X =< 0xFFFF}, !,
    {atom_integer(J, 16, X), atom_codes(J, H),
    length(H, N), M is 4-N}, [0'\\, 0'u],
    cross_escape_zeros(M),
    cross_escape_codes2(H).
crossj_escape_code2(X) --> {crossj_high_surrogate(X, Y),
    crossj_low_surrogate(X, Z)},
    crossj_escape_code2(Y),
    crossj_escape_code2(Z).

crossj_high_surrogate(X, Y) :- Y is (X >> 10) + 0xD7C0.

crossj_low_surrogate(X, Y) :- Y is (X /\ 0x3FF) + 0xDC00.

Mild Shock schrieb:
> The official replacement character is 0xFFFD:
> 
>  > Replacement Character
>  > https://www.compart.com/de/unicode/U+FFFD
> 
> Well that is what people did in the past, replace
> non-printables by the ever same code, instead of
> using ‘\uXXXX’ notation. I have studied the
> 
> library(portray_text) extensively. And my conclusion
> is still that it extremly ancient.
> 
> For example I find:
> 
> mostly_codes([H|T], Yes, No, MinFactor) :-
>      integer(H),
>      H >= 0,
>      H =< 0x1ffff,
>      [...]
>     ;   catch(code_type(H, print),error(_,_),fail),
>      [...]
> 
> https://github.com/SWI-Prolog/swipl-devel/blob/eddbde61be09b95eb3ca2e160e73c2340744a3d2/library/portray_text.pl#L235 
> 
> 
> Why even 0x1ffff and not 0x10ffff, this is a bug,
> do you want to starve is_text_code/1 ? The official
> Unicode range is 0x0 to 0x10ffff. Ulrich Neumerkel
> 
> often confused the range in some of his code snippets,
> maybe based on a limited interpretation of Unicode.
> But if one would switch to chars one could easily
> 
> support any Unicode code point even without
> knowing the range. Just do this:
> 
> mostly_chars([H|T], Yes, No, MinFactor) :-
>      atom(H),
>      atom_length(H, 1),
>      [...]
>     ;  /* printable check not needed */
>      [...]
> 
> Mild Shock schrieb:
>> Hi,
>>
>> The most radical approach is Novacore from
>> Dogelog Player. It consists of the following
>> major incisions in the ISO core standard:
>>
>> - We do not forbid chars, like for example
>>    using lists of the form [a,b,c], we also
>>    provide char_code/2 predicate bidirectionally.
>>
>> - We do not provide and _chars built-in
>>    predicates also there is nothing _strings. The
>>    Prolog system is clever enough to not put
>>    every atom it sees in an atom table. There
>>    is only a predicate table.
>>
>> - Some host languages have garbage collection that
>>    deduplicates Strings. For example some Java
>>    versions have an options to do that. But we
>>    do not have any efforts to deduplicate atoms,
>>    which are simply plain strings.
>>
>> - Some languages have constant pools. For example
>>    the Java byte code format includes a constant
>>    pool in every class header. We do not do that
>>    during transpilation , but we could of course.
>>    But it begs the question, why only deduplicate
>>    strings and not other constant expressions as well?
>>
>> - We are totally happy that we have only codes,
>>    there are chances that the host languages use
>>    tagged pointers to represent them. So they
>>    are represented similar to the tagged pointers
>>    in SWI-Prolog which works for small integers.
>>
>> - But the tagged pointer argument is moot,
>>    since atom length=1 entities can be also
>>    represented as tagged pointers, and some
>>    programming languages do that. Dogelog Player
>>    would use such tagged pointers without
>>    poluting the atom table.
>>
>> - What else?
>>
>> Bye
>>
>> Mild Shock schrieb:
>>>
>>> Technically SWI-Prolog doesn't prefer codes.
>>> Library `library(pure_input)` might prefer codes.
>>> But this is again an issue of improving the
>>> library by some non existent SWI-Prolog community.
>>>
>>> The ISO core standard is silent about a flag
>>> back_quotes, but has a lot of API requirements
>>> that support both codes and chars, for example it
>>> requires atom_codes/2 and atom_chars/2.
>>>
>>> Implementation wise there can be an issue,
>>> like one might decide to implement the atoms
>>> of length=1 more efficiently, since with Unicode
>>> there is now an explosion.
>>>
>>> Not sure whether Trealla Prolog and Scryer
>>> Prolog thought about this problem, that the
>>> atom table gets quite large. Whereas codes don't
>>> eat the atom table. Maybe they forbit predicates
>>>
>>> that have an atom of length=1 head:
>>>
>>> h(X) :-
>>>      write('Hello '), write(X), write('!'), nl.
>>>
>>> Does this still work?
>>>
>>> Mild Shock schrieb:
>>>> Concerning library(portray_text) which is in limbo:
>>>>
>>>>  > Libraries are (often) written for either
>>>> and thus the libraries make the choice.
>>>>
>>>> But who writes these libraries? The SWI Prolog
>>>> community. And who doesn’t improve these libraries,
>>>> instead floods the web with workaround tips?
>>>> The SWI Prolog community.
>>>>
>>>> Conclusion the SWI-Prolog community has itself
>>>> trapped in an ancient status quo, creating an island.
>>>> Cannot improve its own tooling, is not willing
>>>> to support code from else where that uses chars.
>>>>
>>>> Same with the missed AI Boom.
>>>>
>>>> (*) Code from elsewhere is dangerous, People
>>>> might use other Prolog systems than only SWI-Prolog,
>>>> like for exampe Trealla Prolog and Scryer Prolog.
>>>>
>>>> (**) Keeping the status quo is comfy. No need to
>>>> think in terms of programm code. Its like biology
>>>> teachers versus pathology staff, biology teachers
>>>> do not everyday see opened corpses.
>>>>
>>>>
>>>> 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