From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Nagarjuna G." Subject: gnowsys-mode a major mode extending org Date: Tue, 29 Sep 2009 20:19:40 -0400 Message-ID: <20090930001940.GA22310@fencepost.gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Msmv3-0008Qn-Ti for emacs-orgmode@gnu.org; Tue, 29 Sep 2009 20:19:46 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Msmuz-0008Ok-CF for emacs-orgmode@gnu.org; Tue, 29 Sep 2009 20:19:45 -0400 Received: from [199.232.76.173] (port=58894 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Msmuz-0008Of-71 for emacs-orgmode@gnu.org; Tue, 29 Sep 2009 20:19:41 -0400 Received: from fencepost.gnu.org ([140.186.70.10]:56260) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Msmuy-0001oH-QK for emacs-orgmode@gnu.org; Tue, 29 Sep 2009 20:19:41 -0400 Received: from nagarjun by fencepost.gnu.org with local (Exim 4.67) (envelope-from ) id 1Msmuy-0005Zk-KB for emacs-orgmode@gnu.org; Tue, 29 Sep 2009 20:19:40 -0400 Content-Disposition: inline List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Dear orgmode developers and users This is a note to share with you our adventure with org. We, at gnowledge.org, began a project that extends orgmode (without spoiling or loosing any of the orgmode features) to support collaborative knowledge organization and networking using the GNOWSYS storage on the server side. This is work in progress. I am writing this note to inform you about the on going work, as well as to thank you all, specially Carsten for creating an app that took Emacs to yet another level. * What we are doing with orgmode: 1. We use Emacs as a client to collaboratively create, update knowledge networks in plain text. The knowledge network is created by adding nodes (rendered in orgmode as a note item) and named relations between them (rendered in orgmode in the properties drawer of the note item). The storage of the network is compatible to RDF model of storing networks, though we do not store or process XML either on the server side or on the client side. Thus, every orgmode item is added in a form that can be serialized as a RDF triple. Some examples given below. 2. We are using xmlrpc (xmlrpc.el), a builtin feature in Emacs, to connect to GNOWSYS server. GNOWSYS publishes its API as webservice (which has an API to perform the authentication, search the knowledge base, return and update the nodes and its properties.) 3. Each node when returned from the GNOWSYS server to the client opens in a org buffer (temporary) as a note item. Since we render the linkeddata in a text format orgmode renders everything nicely. We have defined more types of links, extending the ones available already, so that the linked nodes' URI is always available. 4. Any text written below the drawers is stored as the value of an attribute 'content' of the current node on the server side. 5. We are adding more and more functions to complete the entire application, thanks to orgmode and Emacs, where difficult tasks are tamed to such an extent, we are obviously excited! * What missing feature of orgmode will be available in gnowsys-mode We can do networking between items making frame based orgmode items linked with any other items in any which way by explicitly naming the relations. This feature makes orgmode ready for semantic web. We plan to use the properties drawer to hold all the metadata of each node. In-built version control of all notes as well as the networks (a feature of GNOWSYS). Orgmode with the extensions that we are applying can demonstrate how complex application data can be represented and manipulated in plain text including semantic web. * What this extension may mean to the users of orgmode and others. These are the use cases for extended orgmode/gnowsys-mode: 1. Each note item (*) can be published at a remote server as a node, with its content and properties stored as attributes. Thus all data gets published on the server, though optionally the user can save all data as text files on his/her PC. Published nodes can be read and edited by others, allowing collaborative authoring. Using this feature, we can use orgmode as a wiki source file. 2. GNOWSYS supports version control of all changes made to the node, thus changes can be tracked. No additional version control like cvs, svn, git, bazaar etc. are required. (GNOWSYS should soon support more functions to improve this.) Nothing is deleted from the server. Nodes can be delinked or marked deleted, nodes with deleted mark still exist on the server after making a new snapshot of the node. 3. Ontologies or application schema can be made and published collaboratively. This is useful as a semantic web application. All this can be done without using XML on either server side or client side, though we can import and export data serialized in RDF format. This makes it a pure text based app for semantic web. 4. Complex documents like courses, manuals, books can be written in orgmode collaboratively with bibliogrpahy support etc. LaTeX and DocBook export feature could make use of this to make orgmode as a desktop publishing system supporting collaborative editing. (We want to discuss this project with guidance from org team.) 5. Considering that a website is nothing but a set of complex documents with internal as well as external hyperlinks, complete website can be made, managed and published by orgmode with the source code of the site completely encoded in text. 6. GNOWSYS is made for collaborative creation of semantic networks, so this use case needs no more elaboration. Concept graphs, mindmaps included. We realize that much of the above use needs a good and advanced search facility on the GNOWSYS side. Though crude search is possible now, and integrated within gnowsys-mode, a lot of improvement is possible here. The bleeding-edge gnowsys-mode can be obtained using "svn co svn://svn.savannah.gnu.org/gnowsys/gnowsys-mode". Divya (a student hacker) did this project as her GSoC 2009 under Rajiv and me as mentors. She keeps on updating with more and more functions regularly. We will feel encouraged if some of you could try this and send us feedback. As first time emacs-lisp hackers our code may not be written elegantly. If you detect blunders do let us know. We already learned a lot from the existing examples. gnowsys-mode will be demonstrated at ISWC 2009 to be held this October near Washington for the semantic web community. If any of you are aruond Washington/Virginia I would be glad to meetup. Thanks again for org! Nagarjuna