From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.tangents Subject: Re: Question: what is Emacs mode? Date: Sat, 24 Apr 2021 12:22:46 +0300 Message-ID: References: <5D47B4B9-87F5-40EA-A689-2618E3B8C6CE@mit.edu> <79668953-FBBB-4843-A5FD-C39E08B50CCC@mit.edu> <7392D442-DBE5-4117-87EB-B37E12FE3A6C@mit.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="20644"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/2.0.6 (2021-03-06) Cc: "emacs-tangents@gnu.org" To: Qiantan Hong Original-X-From: emacs-tangents-bounces+get-emacs-tangents=m.gmane-mx.org@gnu.org Sat Apr 24 11:27:16 2021 Return-path: Envelope-to: get-emacs-tangents@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1laEZI-00050b-By for get-emacs-tangents@m.gmane-mx.org; Sat, 24 Apr 2021 11:27:16 +0200 Original-Received: from localhost ([::1]:51382 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1laEZG-00087w-U2 for get-emacs-tangents@m.gmane-mx.org; Sat, 24 Apr 2021 05:27:14 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40046) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1laEZ0-00086b-8f for emacs-tangents@gnu.org; Sat, 24 Apr 2021 05:26:59 -0400 Original-Received: from stw1.rcdrun.com ([217.170.207.13]:52675) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1laEYu-00015z-8b for emacs-tangents@gnu.org; Sat, 24 Apr 2021 05:26:56 -0400 Original-Received: from localhost ([::ffff:41.210.155.241]) (AUTH: PLAIN securesender, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 000000000002BECD.000000006083E438.0000700D; Sat, 24 Apr 2021 02:26:16 -0700 Content-Disposition: inline In-Reply-To: <7392D442-DBE5-4117-87EB-B37E12FE3A6C@mit.edu> Received-SPF: pass client-ip=217.170.207.13; envelope-from=bugs@gnu.support; helo=stw1.rcdrun.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-tangents@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-tangents-bounces+get-emacs-tangents=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-tangents" Xref: news.gmane.io gmane.emacs.tangents:630 Archived-At: * Qiantan Hong [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/