Hello all (and notably Abhishek)
Above all, some discussion in written
English to team@refpersys.org is
needed before any implementation or coding effort.
Let me start it. Once we agreed on the detailed design, we can add
a few paragraphs to refpersys-design.tex then code the
interface using Qt5.
First, the bismon GUI
interface using GTK is a example of mistake to avoid. Just play
with it to understand why. Or read the draft
report (and feel free to ask questions in written English
here on team@refpersys.org about it). I won't repeat in
this email what I did write in English elsewhere.
Then, I would like all of us to first discuss how we would input the following rule. Assume that RefPerSys is able to load and dump a persistent state (that is quite easy, we are not far from that), in a way similar to Bismon. In other words, assume that our primordial persistence milestone #1 has been reached (we are not far from that, and I foresee no conceptual difficulty, since Bismon did it two years ago; it is just a matter of coding).
Read again J.Pitrat's paper on implementation of a reflexive
system (FGCS vol 16, 1996, cited in our ECAI submission). It
is available (by ssh) on ours.starynkevitch.net
as $HOME/biblio/reflective-system-pitrat:1996.pdf
How would you input the example in its §2.1, second column of
page 236?
Refer also to Pitrat's paper A Step toward an Artificial Artificial Intelligence Scientist on https://pdfs.semanticscholar.org/2117/9600b3f05c0af399f9acbfc6e7b6d24daf03.pdf
In page 9 is mentioned SIGMA(I*F(I); I∈[1:6], MOD(I,2)=0)
I would like RefPerSys to use the ∑ Unicode character U+2211 N-ARY SUMMATION instead of SIGMA. We really want to use UTF-8 in 2020!
Yet another example is basic arithmetic laws. We all know that ∀ x ∈ ℤ, x² ≥ 0
Notice that all this is Unicode characters (notably U+2200
FOR ALL, U+2208 ELEMENT OF, U+2124
DOUBLE-STRUCK CAPITAL Z, U+00B2 SUPERSCRIPT TWO,
U+2265 GREATER-THAN OR EQUAL TO). I really want that
formula to appear exactly like above on the screen (in
CAIA, it used some ugly Fortran like syntax). Of course the purple
color might be different, and I am not against using different
colors for x (a variable) and for ℤ (a constant), both being reified as RefPerSys
objects. How
would we type (that is enter with our hands) that
formula? What concrete keypresses and mouse actions? Think
of course of some abstract syntax tree representing it. Observe
that neither Indian QWERTY keyboard or French AZERTY keyboard
layout has a key for them - with a possible exception for U+00B2
SUPERSCRIPT TWO which might be the top left key, if I
configured my AZERTY keyboard correctly.
I don't even know yet today if we should use or subclass QTextDocument
and QTextEdit (so
use Qt Rich Text Processing)
or use Qt Graphics View
Framework
We also should rapidly be able to input some documentation, à la wiki or markdown, mentioning objects by objids, and having at least bold, italics, teletype (some equivalent of <b> <i> <tt> in HTML) and some kind of internal hyperlink. The conceptual model but not the syntax nor the implementation of GNU texinfo could be inspirational.
I found very inspirational the old Centaur system from INRIA. Read this Cokace: A Centaur-based environment forCommonKADS Conceptual Modelling Language paper and this Centaur : the system one.
As software, Centaur is dead (it ran on computers and operating systems that do not exist anymore). But I had the privilege to discuss about Centaur with the late Gilles Kahn when I was at INRIA. He was the head of INRIA, but still a very accessible guy. He was quite critical on his past achievement, but the impression I got from him was that Centaur (1990) failed because the computers were too slow (so many basic interactions took a second, which for a human being is a lot: we need any editor to react in less than a tenth of second for each elementary action like a keypress). Today, our computers are at least a hundred faster! So I guess we should be inspired by Centaur.
I myself remembered the time (1990) when emacs was too slow. Today it is definitely fast enough (because computers are faster).
I am waiting for your opinion (in particular, how do you think the input of ∀ x ∈ ℤ, x² ≥ 0 should happen, assume that we really want to see something similar on the screen). I am sometimes dreaming that we somehow type the ≥ and that triggers two empty colored boxes around it to be filled so □ ≥ □ but the red boxes are not Utf8 characters but just blank areas (think of <input> in HTML5) where the keyboard focus can go.
We need to design our GUI well enough. An intuition is that we should use the keyboard (so the function keys) because it is faster than the mouse (a human can type 10 keys per second, but only 3 mouse actions per second). We may also want some contextual menus (at least to explain us what function keys could be pressed).
I am impatiently waiting for your comments. You probably have more experience than I do (e.g. in Web interface design).
Cheers
-- Basile STARYNKEVITCH == http://starynkevitch.net/Basile opinions are mine only - les opinions sont seulement miennes Bourg La Reine, France; <basile@starynkevitch.net> (mobile phone: cf my web page / voir ma page web...)