Visage Copyright ---------------- Visage is Copyright 2002-2003 Matthew Tuck (matty@chariot.net.au). This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc.: 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA About Visage ------------ Visage is a new program for rapidly organising, modifying and visualising information. It is based on two principles. Firstly, that information does not necessarily fit into a single hierarchy, as some other information organisation programs attempt to do. Programs such as word processors also attempt to do this. But information might not fit into any hierarchy, or might fit into several alternate hierarchies. Whether you use a hierarchy and which you choose (if so) is merely a way to view the data, and not a part of the data itself. Secondly, that data is fundamentally typed, and if one wishes one should be able to define constraints on data that are enforced either rigourously or loosely. Requirements ------------ Visage is written in C++, and uses the Bakery2 application framework for the GNOME2 libraries. Bakery2 and its dependency GnomeMM2 are under development so I cannot guarantee all versions will compile properly. Specifically, I used Bakery 1.3.8, Bakery_GnomeUI 1.3.1, GnomeMM 1.3.14 and GtkMM 2.2.0 to compile Visage 0.1.1. You can download these at bakery.sourceforge.net and gtkmm.sourceforge.net. Visage currently requires: - Bakery 1.3.8 - Bakery_GnomeUI 1.3.1 - GTKMM 2.0.1, or later Note that the above list does not include all of the indirect dependencies you will need. I currently use g++-3.2 to compile Visage - it might not compile with other compilers, or earlier versions of g++. If not, I may or may not fix it to do so, depending on what the problem is. In particular you'll need the C++ Standard Template Library, and this won't change. Visage has been tested on the Debian testing distribution, "sarge". How Does Visage Differ From a Database? --------------------------------------- In a sense Visage is like a database. Nodes and edges are not dissimilar to a relational database. Indeed, I probably could have backed it with a database rather than using memory and files directly. This was largely a personal preference at the time I started. Using a node/edge model rather than a record/reference model was also a personal preference. They are equivalent. What Visage *does* offer over a database is the ability to visualise and thoroughly organise the data. There will hopefully eventually be all sorts of ways to visualise the data, as well as to place restrictions on the data organisation in ways that are not possible with SQL alone. Visage will also hopefully eventually offer tools to mould and examine your data. Using Visage ------------ For this version, you're on your own, kid. If you need some help, I can often be found as MattyT on irc.gnome.org, irc.mozilla.org or irc.freenode.net. Contributing ------------ Please send bug reports, enhancement requests, questions, suggestions and so on to "matty@chariot.net.au". I am *not* looking for help in coding Visage, as I have a vision (or is that a nightmare?) of how things should work, and am not interested in code I haven't written (yet). As such, please don't send patches, etc. The exceptions to this are: - alternative front ends, as I'm really only interested in a GNOME front end - a testing suite Also, at this stage Visage is under a constant state of massive flux rather than API stability. So I'm not looking for help with code, documenting or localising, unless you can deal with this. And even if you're willing to deal with all this, please contact me to let me know what you want to do, so I can help you do it. File Format ----------- Visage uses an XML file format for storing and retrieving data. This file format is ***NOT*** standarised, and ***WILL*** likely change drastically and incompatibly from version to version. For this reason, do ***NOT*** store any important data in Visage unless you're prepared to convert the files yourself, and only then if you're a bleeding edge psycho (such as myself). Limitations in 0.1.1 -------------------- The 0.1 line is the first semi-stable release series - Visage is now somewhat "useful", but still isn't something you would want to actually use over other tools - many necessary features are missing. These include: - Field and view types are currently useless, as they do nothing more than wrap the field and view templates respectively. Eventually you should be able to define restricted field types, eg numbers between 0 and 9. - There is currently no way to organise data into hierarchies. This will be done by letting the user define new view types using a hierarchy view template, and define the hierarchy relationship(s). - Similarly, there is currently no way to view the data as a "graph", and define restricted view types that only show parts of the graph. - Restrictions on edge types, such as reflexivity and symmetry, currently are not available. The only available restrictions are what node types an edge type can connect to. - When you define and use node and edge types, there is very little you can do to change or delete the types. Eventually you should be able to change types and have the nodes and edges fix themselves up. - There is currently no way to export to and import from other file formats. Because Visage is a generic program, you will eventually be able to define your own generic importers and exporters. - Lots of menu items do nothing - they are included to show what is likely to appear at some stage. Known Bugs In 0.1.1 ------------------- - I have no idea if this works for loading/saving non-ASCII characters. Please let me know. - The first field must be a line field, or you won't get a name for your node/edge. - The recent nodes and edges lists usually won't be read from a file in the correct order. - If you inherit a field along multiple paths in a node/edge type, you will actually get multiple separate fields, when you should get only one. - If you have multiple fields with the same name defined in different places that are both inherited by a node/edge type, they will not be distinguished in the user interface. - The about box won't appear if icon.png isn't in the current working directory. This is a Bakery2 design issue. - Bakery 1.3.8 has known issues with the dialog that appears if you try to close a window without saving. Don't do that.