This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

Work on the ideas in this document now continues under SemanticDesktop

Topaz Object Model

First Draft

<<TableOfContents: execution failed [Argument "maxdepth" must be an integer value, not "[maxdepth]"] (see also the log)>>

Foreword

In this document, I have tried to sum up some of the many ideas for improvements of the desktop I have had over the years, in a single, unified model. I do not claim to be novel; many or all of the innovations I describe have probably already been described by someone else. Rather, my intention is to propose a model which combine these innovations in a way suitable as a starting point for discussing the next generation of the desktop in general and GNOME in particular. Finally, I want to say that I realize that some will find such drastic changes of GNOME as suggested here unrealistic or even dangerous to the project. In response, I warn you that GNOME's competitors (Microsoft in particular) is not stopping development out of such concerns and sitting idle could be even more dangerous.

I encourage you to improve or comment on particular sections within the document or on the proposal as a whole, in the concluding discussion section. The document is a work-in-progress indefinitely.

- AndersFeder, original author

Introduction

This document propose a fundamentally new system architecture for GNOME 3.0, codenamed Topaz Object Model (TOM). The motivation for beginning this work is the not-so-novel insight that modern computing has outgrown the desktop metaphor, and entered a different and more dynamic paradigm. The many new technologies that has emerged since the current interface model of GNOME was designed calls for a new approach which integrate them natively and take advantage of the possibilities they bring with them. Among the technologies which TOM has been designed to support intrinsicly are:

Overview

The history of modern computing began on big mainframes designed to perform calculations on large bulks of data. The Unix operating system itself, the ancestor of both Linux and BSD and hence the Free Desktop, played a key role in this part of history. Today, some 50 years later, one can still find remnants of the mainframe legacy deep within the architecture of current desktop systems. The concept of the monolithic 'application', for instance, is roughly equivalent to the processing 'job' of the mainframe. Likewise, many computer tasks today revolve around loading and saving 'files', just like the mainframe would process and store 'data'.

The way we use the personal computer today, however, deviates greatly from how the mainframe was used then. We retrieve news from the Internet, for instance, read them on the screen or print them, send messages about them to other users and so on. In a sense, modern use of the computer has moved into an era of information processing but the computer systems themselves are still designed for data processing. This is the basic discrepancy of current desktop architectures that we wish to address with TOM.

Much work has already been done to this end in recent years, outside the immediate realm of the desktop. The XML standardization efforts in general and the Semantic Web and Web Services initiatives in particular have produced a highly promising technology for indexing and accessing information in a rich and intuitive manner. Recognizing the universal format of XML, and anticipating wide-spread adoption of the standard, TOM builds on these efforts by discarding the 'file cabinet' storage model altogether in favor of an XML-compatible data model. By structuring all data on XML-like terms, a highly valuable, referable metadata layer is added across the system. As such, TOM represents the vision of a Semantic Desktop.

Key Concepts

Object

If data is any collection of symbols, and information is the knowledge latent in such data, an object in TOM is the combination of information and an interface to this information. The object is, as the name of the model implies, the basic unit of TOM. Any TOM system can be understood as a set of such objects and the links between them.

Objects are identified by their source, an identifier or address of the data to operate upon (such as an URI) and their interface, an identifier of the interface to access the data through. TOM interfaces structure the source data like XML documents - trees of named nodes with attributes.

Transformation

A transformation is a mapping of one object interface into another, such that an application designed only with knowledge of the latter interface can be made to read objects using the former interface. Formally, a transformation is any interface whose source data is another object.

Transformations are key to TOM's flexibility - through a series of transformations, data or services that would otherwise have been incompatible, can be adapted to work together.

(more coming soon)

Implementation Concerns

The move from a traditional desktop environment to a TOM environment represents a substantial paradigm shift for both users and developers.

The mix of static and dynamic data objects introduce a demand for a clear distinction between the two types, on the user interface level. For instance, if a bank clerk writing an electronic receipt for converting some amount of dollars to euros accidentally refers a dynamic exchange rate object rather than a static one, the numbers on the receipt will appear to be correct when it is issued but when the customer receives it the next day, the exchange rate may have changed, causing the receipt to display a price different from the one that was actually charged.

Ideally, the user interface must inobtrusively convey which type of reference is made, when it is made. Returning to the example, the interface could offer both a "current exchange rate" and a "moving exchange rate", for instance. The use of a verb ("moving") in the latter description may be sufficient to imply the dynamic nature of this type of reference. On the other hand, it may be too difficult for the ordinary user to infer what is meant by the notion of a 'moving' number.

Discussion

Please comment on the above proposal. Relevant issues could be things such as hurdles implementing TOM, limitations it impose upon users and developers and of course suggestions of new features.


2024-10-23 10:58