unofficial mirror of emacs-tangents@gnu.org
 help / color / mirror / Atom feed
From: Jean Louis <bugs@gnu.support>
To: Qiantan Hong <qhong@mit.edu>
Cc: "emacs-tangents@gnu.org" <emacs-tangents@gnu.org>
Subject: Re: Question: what is Emacs mode?
Date: Sat, 24 Apr 2021 12:22:46 +0300	[thread overview]
Message-ID: <YIPjZrX7F2dE+htj@protected.localdomain> (raw)
In-Reply-To: <7392D442-DBE5-4117-87EB-B37E12FE3A6C@mit.edu>

* Qiantan Hong <qhong@mit.edu> [2021-04-24 08:00]:
> > TECHNOLOGY TEMPLATE PROJECT OHS Framework 
> > https://www.dougengelbart.org/content/view/110/460/
> > 
> > I suggest that you also look at Doug Engelbart's work.
> Nice! Seems that lots of ideas in it can be incorporated naturally 
> into my model.

When building also see:

Hypothes.is Annotate the web, with anyone, anywhere.
https://web.hypothes.is/

I am referring to the concept of referencing, not to specific annotation of PDF
files.

What you are presenting is s-exp based structure of text, but it could
be structure of any kinds of objects.

In that structure, some object could have its annotation or labels.

Let us say that paragraph A speaks about fruits, but paragraph B about
vegetables. Those would be labels, and there could be unique ID that
identifies each paragraph among all of other paragraphs.

Then comes interesting feature, which I use myself as I use database
with unique IDs for each objects.  Then it becomes possible to reuse
the paragraph in other documents. It is possible to refer to paragraph
from any document. It allows multitudes of hyperlinking. One can then
hyperlink to visually normal text documents to specific paragraphs or
specific sentences if necessary.

It requires deep thinking or practical experience to understand this
concept. It is hyperlinking and referencing on a lower level then just
documents.

Compared to HTML, we have hyperlinking to documents and hyperlinking
to parts of a document if they have their anchors, such as:

https://www.example.com/some-document.html

or hyperlinking to part of a document such as:

https://www.example.com/some-document.html#heading-2

If all information would be in a centralized database with s-exp or
other trees, and each new paragraph unless deleted, has its unique ID,
then it becomes possible to hyperlink to each unique sentence even a
word in a different document.

Similar activity I do here by typing document, for example in
markdown, Org, asciidoc mode but when I need to hyperlink I am not
going to re-type the words by my hand, mostly I will search in the
dynamic knowledge repository by query like let us say "hypothes.is"
and in other buffer I can see few of results, I select right one, and
hyperlink is constructed and transferred to other buffer.

In this case if buffer is text, it looks as this:

Hypothes.is Annotate the web, with anyone, anywhere.
https://web.hypothes.is/

But if buffer would be markdown, it would look as

[Hypothes.is Annotate the web, with anyone, anywhere.](https://web.hypothes.is/)

and if it would be asciidoc, it would look as:

https://web.hypothes.is/[Hypothes.is Annotate the web, with anyone, anywhere.]

But if it would be s-sexp, then cursor position would be located, this
would give s-exp element and the element would get a hyperlink, but
not to the text or URL necessary, rather to the other s-exp element.

Hyperlink would be unique among all documents on a computer. It could
be something user does not see, like a hash or simply unique ID. If
one uses integers, it would need to take care of any limitations.

Such s-exp documents would be, I am just giving idea, centrally
recorded in the collaborative and network accessible database, but
they could be also saved. When saved, s-exp document would have
pointers to the host/database/port as to allow unlimited hyperlinking
and referencing.

Text document becomes hypertext. User however does not think of any
markup because it is all in underlying s-exp and database structures.

Hyperlinking to anything becomes possible, one could quickly browse
from one document to other, obtain references, write research works
easier, publish all related references, find out which other documents
are referencing to specific sentence, word, even letter or symbol.

That implies that user should have option to say that some elements
are independent. As soon as element has been assigned independent
identity it is one node in s-exp that can receive its general markup,
or hyperlink, or other attributes. It is only by concept similar to
HTML, but I speak of much more ingrained hyperlinking and information
management. 

User can however, add any markup user wish and wants, or dynamically
modified markup.

Dynamic markup would be something like to tell that text is bold, it
appears bold, but markup is invisible on screen.

Instead of **bold** in markdown it would appear just as word "bold"
but it would be bold, however, presented as simple text. If editor is
good, it can be presented nicer similarly as word processor. S-exp
structure can then be used to convert such documents into anything
else with finely grained references or anchors.

You can see how this document is finely referenced by anchors on right
side:

About Dynamic Knowledge Repositories (DKR)
https://www.dougengelbart.org/content/view/190/163/

But now imagine that even sentence may be referenced. Documents could
be then presented on a tablet or special devices, not just monitors,
and one could see slight highlighting of some elements, if sentence is
referenced in other document, I could click on link and read only the
sentence, and decide if I wish to read all of the other document, then
come back.

Document becomes that way more than what Org-mode is, it becomes
meta-Org, meta-anything, it is on meta-level of anything. 

Problem is that it binds documents to be edited with the specific
editor that allows such features.

Those are ideas, of course many are not related to your
intentions. IMHO s-exp and unique IDs should work together, all
documents on one file system SHOULD be unified into one whole.

File system was meant to unified documents, in beginning those were
mostly files. As technology developed, we got pictures, sound, video,
PDF files, thousands of various formats.

Those formats are not unified into one computing environment, we waste
time as humans, this all comes because companies sell proprietary
software and there was never attempt neither demonstration how
everything could be integrated into one as nobody attempted it before.

We think and take file system for granted, but it is obvious that it
is flawed design.

For example, user is on computer has 10000 files and there is no
unified way of locating or searching for exact files. We got used to
this condition that we think it is normal, but it is not, we have
computer that is capable of helping human to locate anything, but
there is no unified system for it, and none computer has that as a
built-in feature.

If all documents in one computer can be addressed uniquely and they
could be handled by databases, then such system becomes unified.

Each sentence could be designated as unique object and such object
could be referenced from any other computer in the world, if it is
public or user has permissions. For example a user in Boston
could reference in his research to the document located in
Springfield, by using URI-similar notation, like user/password with
hostname/database/object ID.

Reality is that files are related to other objects, normally files are
related to people, people are related to locations, their contacts,
other people, groups, companies, organizations, we have obligations
towards people, reminders, transactions, files belong to project
software, are similar to other software and so on. Majority of this
knowledge is not unified in our computing environments.

Would elementary objects be rich described, with unique IDs, as stored
in the dynamic knowledge repository as described by Engelbart, we
would be creating much more than what Internet is today. Internet is
rather defective by its whole concept as it does not unify computing
of people, it is more like information management. User is unable to
easily reference and find references, one has to be proficient.

> > I will say something what may not look possible, I rather think it is
> > possible. It would be good if each of those nodes would have its
> > unique ID, as then it becomes possible to have someting similar as
> > OPML able to reference those parts of text even if the node change its
> > position. Maybe is not feasible.

> In a live system, every object automatically get a unique identity,
> which is their intrinsic object identity (on many implementations 
> it’s the pointer address).

Would it be unique to single document?

I am thinking how better would be that one computing environment
becomes "document" rather dynamic knowledge repository and all other
objects just part of one big whole. That way inter-referencing becomes
possible.

If is is really unique among all information in one computer, even
better if unique among all other computers, then it gets its power.

Those hand moved hologram computing that we can see on movies becomes
possible, as then all objects are related to each other and research
becomes very fast. A
word/sentence/paragraph/document/picture/video/you name it, may be
related to person, person's picture, videos, movies, other text,
sentences, etc.

We don't have that capability in today's file systems.

We have not get easy integration for example to relate a video to
group of people. This is such a basic paradigma that people who use
computers cannot easily grasp it.

People who use paper photographs may start sorting photographs by
physical albums for example for each child separate album. But on some
pictures there are multiple pictures. Either duplicates will be placed
or some pictures will be missing in other albums. By researching album
of one child, one can see that child was related to other one, one can
pick other album and find more related people and understand all
relations.

What we do in life all time is we want to figure out all relations. In
computing environment it is possible to build relational systems, it
helps human in learning, locating, understanding of the subject.
Things are hard to understand because they are not related.

File system does offer basic tree based relational system, but within
the tree or across the trees one could not possibly know what is
related to what.

IMHO any document creation on single or multi user computer, would not
be document in itself, it would be a node of the whole, just that
other users would not be able to access it without permission. It
sounds like file system, the difference would be that there is rich
set of relationship attributes. Document would be first need to be
updated to what it is related, maybe document is related to specific
note for specific person, user, customer, maybe it is related to
specific sentence and gives annotations on that sentence, maybe to
video on local computer, remove computer, or specific frame or period
from 04:01 to 04:03 in a specific video located remotely, and when all
relations have been defined and they would be updated from time to
time semi-automatically, it created super-knowledge, relationship and
association based system that aids human memory and mind. IMHO, media
files and any kind of files would be just nodes in one overall s-exp
or other tree or ordered database system. Relations and associations
would be possible from any elementary object to other object.


Elementary Objects

Objects are basic content packets of an arbitrary, user and developer
extensible nature. Types of elementary objects could contain:

- text
- graphics
- equations
- tables
- spreadsheets
- canned-images
- video
- sound
- code elements, etc.

Mixed-Object Documents

Documents are a coherent entity made up of an arbitrary mix of
elementary objects bundled within a common "envelope" to be stored,
transmitted, read, printed, or otherwise be operated on.

The MIME specification is an example of a document definition based on
a higher level collection of elementary objects
====

Imagine a text where specific term like "salary calculations" embeds
whole spreadsheet inside. When such text is sent to somebody as a
mixed-object document, other person can access it and research it. But
instead as in MIME to save the file, use other software, etc. it would
be all unified in one.

It is of course hard task to go, as we are now in specific computing
environments as dictated by plethora of circumstances, but definitely
not the best computing environment that could exist as of 2021. We are
way behind technologically on this planet.

> Now I read the OHS framework, it makes some sense to me that
> sometimes we want human interpretable ID. Currently I’m imagine
> giving some tags to some node, and hope the tags from the root to a
> given node uniquely determine a node. It doesn’t have the property
> that you can always determine a unique node though…

The ID need not be seen at all if system unifies it all good and
well. It should be human readable ID, but need not be complex. You can
see example with 2a31 notation on OHS hyperlinks. But that does not
make the elementary object very unique. Better notation would be
something like: host/database/elementary-object -- but my talking here
is too abstract and hard to understand, I am aware of it.

> > Will that system have extension language and which one? Will it be
> > Emacs Lisp or different?

> Sure, my current experiment is written in Common Lisp, and Common
> Lisp automatically become its extension language.  It’s an
> “extended” Common Lisp though (aka with some macros), because I need
> to support buffer/node-local environment and advices.

Send me that experiment that I can try it out.

> For a serious long-term projects, I’m not sure if CL is the right
> way to go. It’s too adhoc and unnecessarily complex to my taste, and
> it also lack some important features (the-environment and call/cc).
> My ideal language, to this day, seems to be GNU/MIT Scheme.  (I
> don’t like Guile better than CL. It doesn’t have full first-class
> environment support and strictly speaking not even full call/cc,
> because it has to corporate with C runtime).

No idea of technicalities. I have just practical problems, Guile is
difficult to run and build on many systems, there are various
incompatibilities. CL I have seen running practically better and
easier. I also like the concept of compilation or binary product that
has all of the LISP inside that one needs. MIT Scheme, I have tried, I
like that it has PostgreSQL bindings, there is also edwin built-in
editor. IMHO the system you presented sounds like you would make your
own LISP. That would be best, but we don't have it. We have slow Emacs
running as top layer of layers of layers of layers of underlying
number of layers.

-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

Sign an open letter in support of Richard M. Stallman
https://stallmansupport.org/
https://rms-support-letter.github.io/




  reply	other threads:[~2021-04-24  9:22 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-23 20:43 Question: what is Emacs mode? Qiantan Hong
2021-04-23 21:11 ` Jean Louis
2021-04-23 22:04   ` Qiantan Hong
2021-04-24  4:22     ` Jean Louis
2021-04-24  5:00       ` Qiantan Hong
2021-04-24  9:22         ` Jean Louis [this message]
2021-04-29  3:39           ` Qiantan Hong
2021-04-29  5:02             ` Jean Louis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YIPjZrX7F2dE+htj@protected.localdomain \
    --to=bugs@gnu.support \
    --cc=emacs-tangents@gnu.org \
    --cc=qhong@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).