[cad-linux] Re: database access methods
- From: Eric Wilhelm <ewilhelm@xxxxxxxxxxxxx>
- To: cad-linux@xxxxxxxxxxxxx
- Date: Fri, 16 May 2003 10:32:59 -0500
> The following was supposedly scribed by
> Brian Johnson
> on Friday 16 May 2003 09:25 am:
>I thought part of the concept was to make the storage system easily
> expandable
yes
>I thought that the ability for an app to make it's own tables within the
> project db provided that.
yes
>I didn't think that the standard had to include a precise description every
> bit of data that anyone could ever possibly think of putting in the db
It doesn't.
>I also didn't think that for someone to add info that was not already
> specifically included in the standard complete with access library
> functions call to read/write to it would require the approval of the
> standard committee and and formal inclusion in the standard.
It woudn't. It would be more like the way the Linux kernel is maintained. If
the functions are considered good and useful, they would become part of the
standard library.
>I do think that this approach will kill this initiative since it would
> require anyone who wished to use it for data storage for any objects other
> than for what it is already designed to get "permission" (aka inclusion in
> the "standard") to be allowed to do so.
Not really. You can't dictate what is going to be done with it.
>I can understand such a strict standard for parametric object data but if
> there is a project db, there is other info that would be useful in there
> that perhaps doesn't need such tight controls
Its not about control so much as structure.
>If there is a db per project, the ability to add additional tables for
> custom data is a really good feature. Whether that additional data format
> is published or not (for other apps to use) should be irrelevant if it is
> stored in a separate table
If the additional data is stored in a way that makes it inaccessible to other
applications, it hurts the "toolbox" approach of the system, because you can
now only use the tool that created the data with the data.
>IMO, the "standard" should apply to the base tables required to get a
> working cad ui and should allow (how would you prevent this anyway?) and
> anticipate the addition of other tables
I agree. I don't think you can prevent the creation of new tables, but I
think you should do as much as possible to encourage developers to give
access to the data.
I don't think a "working cad ui" is the point of the tables. I think they
(the standard tables) should provide a structure that facilitates the storage
of parametric data in a way that is universally accessible. The UI is
external to this goal (db+kernel) and could come from any number of existing
projects.
The idea of creating a library of access methods is to encourage a standard
process for accessing the data, thereby encouraging interoperability and
information exchange. Sure, some program could come in and directly modify
the database with proprietary data, but how does this help the collaborative
design process?
If the library of functions is useful enough for every developer to WANT to
use it as a starting point, and is LGPL'd:
It creates incentive to use the library
It gives an easy way of becoming compliant with the standard.
It encourages additions to the library, rather than extension of the database.
Additions to the library would be available to all of the apps which use it.
Using additions to the library, every app would grow and evolve.
As each component of the system evolves, competition increases.
As competition increases, apps get better.
As apps get better, MY life gets easier.
>I also still don't realize that native storage in a parametric format is
> "better" than storage of smaller building blocks and have a seperate table
> of the parametric objects that the "kernel" could use to mainpulate the
> smaller building blocks but perhaps that is simply because I can't fathom
> how it would work in my business where we do road design, sewer design,
> site design, building design, structural design, machine design, electrical
> design.
I think the storage of building-blocks is the way to go. However, to maintain
the parametric relationships across multiple software packages, you would
need a consistent way to represent these relationships. If the modeling
kernel is responsible for maintaining the relationships, how can a
third-party modeling kernel "play nice" with the rest of the system?
>How can a parametric model be designed to handle all objects
> including drafting devices like text, tables, borders, leaders, etc
I think there will be some "stupid" objects and some "smart" objects.
Providing locations for storing "stupid" data should be an integral part of
the system. It is not necessary to make text parametric (though it might be
useful in some situations to "tie" the insertion point to some other entity
with a parametric relationship.) I think if you provide "containers" to
store stupid data, that this allows creation of 2D drawings or 3D
construction geometry which can be kept organized as part of the overall
project. Maybe the container is a "part" which can be dropped into a model
or placed on a layout. You could then use it for snapping by simply
extracting the snap coordinates and making these explicit coordinates in the
object being modeled.
While it would be useful to have named construction entities that acted as
controls for the model, this is not always the way people want to work and it
would be hard to maintain the names and relationships when using a 2D
drafting app that didn't know how to use them. I think allowing "stupid"
objects would work well enough, and would make the system easier to deal with
in some cases (not to mention simplifying the 2D apps.)
--Eric
- References:
- [cad-linux] Re: database access methods
- From: Brian Johnson
Other related posts:
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- » [cad-linux] Re: database access methods
- [cad-linux] Re: database access methods
- From: Brian Johnson