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.
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.
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.
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.
Most importantly, our current design assumes benign users as it implements no security
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 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