KnowOS

13 Aug 2022 - 25 Jul 2025
Open in Logseq
    • by me, JP Massar, Jeff Shrager at The International Lisp Conference, 2005
    • Rereading 20 years later

      • I note with a bit of embarassment that it dismisses Python as a scripting language, whereas in fact it has become the workhorse language of data science, web apps, and more. But never mind that. What makes a KnowOS?
      • a virtual environment consisting of abstract objects and operations to manipulate them.
      • It is now widely recognized that networks of complex structured knowledge are critical to modern software applications, but the tools contained in mainstream languages and operating systems are not particularly oriented towards this type of data. Operating systems deal mainly with serial files, programming languages deal with networks of objects but do not provide persistence. RDBMs provide persistence but are poor at dealing with complex, evolving , messily-structured domains. Herein lies the vision that we call a “Knowledge Operating System” or “KnowOS”: Complex persistent knowledge should be the fundamental domain of both the user interface (UI) and of the way that programs interact with one another (i.e., the API).
      • The central idea of a knowledge operating system is that knowledge – that is, arbitrarily complex, interconnected, semi-structured data of all types – is omnipresent. This knowledge is immediately and easily available to both users and programs at all times, and the user is, or appears to be, “living in” this universe, just as the user of Unix lives in the directory tree, and the user of Oracle lives in a world of tables.
        • I'd say this was a failure of marketing. Operating systems are for nerds, non technical people live in a world of apps and documents. You could build an abstraction layer that made that more powerful, but you probably wouldn't want to market as an OS, more like a PKM that can also do serious computation.
      • All of this knowledge should be manipulable through an equally-omnipresent programming language through which one can easily and efficiently work with complex knowledge structures.
        • Again, targeting too narrow a market. There's nothing wrong with envisioning a dream programming environment, but it can't be just for programmers, and centering it around a programming language is probably a mistake (this was for a Lisp conference of course)
      • The use case of a bioinformatician analyzing a gene expression microarray. This seems dated. Biologist programmers are now very common, but they use R or the disdained Python, not Lisp, and most of their programming revolves around tabular dataframes, not knowledge graphs.
      • First, we chose to build our own frame-based knowledge representation system. We did this not because we couldn’t have pulled one of the shelf, but because the frame system is so central to the KnowOS vision that we wanted to have control over all of its specific features. For the sake of integrating language and interface, we wanted the frames to be accessible by name. For the sake of power we wanted to be able to associate arbitrary functions with slot types and to be able to control inheritance very simply and flexibly in order to make it easy to write custom inference methods. And we wanted to make it easy to eventually back the knowledge base with a persistence system.
        • This on the other hand...I'm about to implemnt it again, probably! So it must be a perennial good idea (or perennial bad idea, I suppose)
        • This BTW was my main contribution to the BioLingua design, I think I had to argue Jeff into it.
      • The central user interface of our current KnowOS is a web-based Lisp Listener and associated dynamic web pages, which users interact with through a standard web browser.
      • This basically invented the web-repl-notebook UI paradigm, later popularized by Jupyter.
      • Most importantly, our current design assumes benign users as it implements no security
      • Most embarassing fact about BioLingua. We just whiffed on some of the hard issues, but, OK, it let us spend more time on the interesting ones.
      • The most promising directions in this area are in graphical programming through a Behave!-like interface [8], which allows Lisp-like expressions to be assembled graphically. Another promising direction is in quasi-natural-language “programming by resolution”
      • The VPL was done, although not that that well. NL programming is of courese a big deal now.
      • The goal of the KnowOS is to provide tools for thought that enable scientists, engineers,and other analysts to conveniently utilize a variety of representational and computational methods to investigate their domains. To do this we have done what amounts to turning a programming language into an operating system
      • Amen to tools for thought. Not clear turning a programming language into an OS is the ultimate tool, although it is suggestive. This is the thing about Lisp – it may be a programming language but it also feels like a medium for expressing ideas. Most languages are utilitariand and don't feel like thinking.
    • See IDE for science in other graph (??? PICI graph I guess)
    • Now want Traverse to merge with this
    • KnowOS 2.0