[cad-linux] Re: data format vs data system

  • From: Bruno Postle <bruno@xxxxxxxxxx>
  • To: CAD Linux list <cad-linux@xxxxxxxxxxxxx>
  • Date: Fri, 19 Sep 2003 00:11:33 +0100

[file formats based on filesystem structures]

On Thu 18-Sep-2003 at 10:34:41AM -0500, Eric Wilhelm wrote:
> 
> However, I still think that a toolset should be developed to
> handle this data as a geometric model.

Yep, I would envisage that a useful file format could have a number
of IO libraries for different programming languages.  Note that both
xspace and draft take this approach; with 'draft' you might parse a
file into memory like so:

  use Draft::Drawing::Line;
  my $line = new Draft::Drawing::Line ('/path/to/filename.line', '');
  $line->Read;

..or read an entire drawing/directory without worrying about the
exact fileformat details:

  use Draft::Drawing;
  my $drawing = new Draft::Drawing ('/path/to/directory/', '');
  $drawing->Read;

A method that translates an object and commits the change to disk
might look like this:

  $line->Move (10, 0, 0);

> I'm also thinking that to connect multiple programs simultaneously
> to the same data set (and possibly across a network) that a data
> access and management system needs to be in place which can handle
> the geometric data, revision control, access control, and locking
> in better ways than simple file sharing and file systems.

I'm inclined to suggest something simpler at first, CVS can look
after the revision control, access and permission issues for even
quite large project teams - The ability to have multiple users
working _directly_ on the same 'drawing' in real-time might be cool,
but we do without this sort of thing when developing software
source-code.

> This leads me to a four-tiered model of abstraction:
> 
> format <-> read/write library <-> networkable access system <-> client library

or:

format <-> read/write library <-> client tools that can do
                                  interesting network stuff if they
                                  like

-- 
Bruno

Other related posts: