Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.prolog > #14581
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Newsgroups | comp.lang.prolog |
| Subject | I really have lost all hope and given up (Was: maplist(char_code, Chars, Codes) is bidirectional) |
| Date | 2025-06-23 19:31 +0200 |
| Message-ID | <103c32d$16a81$1@solani.org> (permalink) |
| References | (2 earlier) <103bpdh$164t1$1@solani.org> <103bqc8$165f2$1@solani.org> <103c072$168hc$1@solani.org> <103c19r$1694v$1@solani.org> <103c27c$169la$1@solani.org> |
So the SWI-Prolog master wrote:
> I wouldn’t call it an “ancient status”.
Its ancient status because its not Unicode
ready. It says, it doesn’t account for the
new universal atom and strings in SWI-Prolog.
Historical note: Unversal strings marked the
transition from Python 2.x to Python 3.x.
- we might be able to use the current locale
to include the appropriate code page.
(Does that really make sense?)
https://www.swi-prolog.org/pldoc/doc_for?object=is_text_code/1
But anyway I have retracted my swi2.pl.log
from GitHub and blocked Jan. W. for the first
time in my life. I really have lost all hope
concerning SWI-Prolog and given up
once and for ever...
Mild Shock schrieb:
> Using again my super powered library(portray_text):
>
> ?- set_prolog_flag(double_quotes, codes).
> true.
>
> ?- set_prolog_flag(back_quotes, chars).
> true.
>
> ?- set_portray_text(enabled, true).
> true.
>
> ?- maplist(char_code, `abc`, X).
> X = "abc".
>
> ?- maplist(char_code, X, "abc").
> X = `abc`.
>
> So if you have a Prolog system that has chars, you
> could bootstrap as follows:
>
> atom_codes(X, Y) :-
> var(X), !,
> atom_chars(Z, Y),
> maplist(char_code, X, Z).
> atom_codes(X, Y) :-
> atom_chars(X, Z),
> maplist(char_code, Z, Y).
>
> Or if you have a Prolog system that has codes, you
> could bootstrap as follows:
>
> atom_chars(X, Y) :-
> var(X), !,
> atom_codes(Z, Y),
> maplist(char_code, Z, X).
> atom_chars(X, Y) :-
> atom_codes(X, Z),
> maplist(char_code, Y, Z).
>
> Mild Shock schrieb:
>> Full source code here:
>>
>> swi2.pl.log
>> https://github.com/SWI-Prolog/swipl-devel/issues/1373#issuecomment-2997214639
>>
>>
>> Since it has a dual use hook, works fine simultaneously:
>>
>> ?- set_portray_text(enabled, false).
>> true.
>>
>> ?- X = [a,b,c].
>> X = [a, b, c].
>>
>> ?- X = [0'a,0'b,0'c].
>> X = [97, 98, 99].
>>
>> And then:
>>
>> ?- set_prolog_flag(double_quotes, codes).
>> true.
>>
>> ?- set_prolog_flag(back_quotes, chars).
>> true.
>>
>> ?- set_portray_text(enabled, true).
>> true.
>>
>> ?- X = [a,b,c].
>> X = `abc`.
>>
>> ?- X = [0'a,0'b,0'c].
>> X = "abc".
>>
>> Mild Shock schrieb:
>>> Hi,
>>>
>>> Even the SWI-Prolog master not wide awake,
>>> doing day-sleeping.
>>>
>>> > I don’t know whether they realised that you
>>> > cannot meaningfully support both in the same
>>> > system and surely not in the same application.
>>>
>>> Maybe you didn’t notice this nifty detail.
>>> Thats all you need:
>>>
>>> > The ISO core standard is silent about a flag back_quotes
>>>
>>> > Its more a naming problem. Have two libraries
>>> library(portray_codes) and library(portray_chars),
>>> Or one library(portray_text).
>>>
>>> Just add one more rule:
>>>
>>> user:portray(Chars) :-
>>> portray_text_option(enabled, true),
>>> '$skip_list'(Length, Chars, _Tail),
>>> portray_text_option(min_length, MinLen),
>>> Length >= MinLen,
>>> mostly_chars(Chars, 0.9),
>>> portray_text_option(ellipsis, IfLonger),
>>> quote2(C),
>>> put_code(C),
>>> maplist(char_code, Chars, Codes),
>>> ( Length > IfLonger
>>> -> First is IfLonger - 5,
>>> Skip is Length - 5,
>>> skip_first(Skip, Codes, Rest),
>>> put_n_codes(First, Codes, C),
>>> format('...', [])
>>> ; Rest = Codes
>>> ),
>>> put_var_codes(Rest, C),
>>> put_code(C).
>>>
>>> The use of maplist/3 is elegant, and works since we do
>>> not print open lists, right?
>>>
>>> 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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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