Skip to Content.
Sympa Menu

pcdb - Re: [pcdb] some ideas for data modelling

pcdb@lists.ibiblio.org

Subject: Permaculture Database

List archive

Chronological Thread  
  • From: "paul@heliosville.com" <paul@heliosville.com>
  • To: pcdb@lists.ibiblio.org
  • Subject: Re: [pcdb] some ideas for data modelling
  • Date: Fri, 30 Mar 2007 16:35:03 -0400

Paul Cereghino wrote:

> Figure we may as well keep batting this text back and forth... I am
> seeing discrete topics emerge that could migrate to wiki space, but I'd
> like to keep working at a unifying core to this conceptual model. Is
> this going somewhere.. what are the steps forward. Are there whole
> alternative conceptual models we should think about? Fundemental flaws
> in translating this conceptual model to a digital information
> architecture?! Cases where this kind of conceptual architecture would
> break down?

nope, it's perfect! Let's start building it! (famous last words)

I really like your ideas for guild building with this database. These were
possibilities I never even thought about. All I wanted to do was work on a
database that took the data available in PFAF and make it more analysable.
But this is getting really exciting -- as long as we're not biting off more
than we can chew.

The 'shopping cart' idea (have to think of a different name, of course) is
fantastic. A user could then save their 'cart', try out the guild, and if
it seems to work, they could publish it. This, I think, is where a blog
could come in handy, because guilds are things that take time to mature,
and narratives over the years would be very valuable to others.

> I've heard us talking about 3 types of nodes
>
> objects - real things that have relationships with other things (maybe
> members of a phylogeny)
> functional group taxonomies - hierarchys of traits that define the
> capacities of objects and relate then to other objects (nitrogen-fixers,
> bird eaters)
> guilds - are user generated families of objects that have a story
> wrapping them together

I'd think objects and taxonomy nodes could be one-and-the same. I may have
mentioned this before, but this would make it easy to add a cultivar as a
child node of a species, and get specific about its needs/outputs/yields.

I think you expressed confusion about how multiple group membership would
work under my proposal. Being a m:m relationship, this would be as simple
as breaking 'parentID' out into its own junction table:

objectParent
------------
objectID int(10) foreign key
parentID int(10) foreign key

(not true SQL verbiage, I know).

As for attribute/relationship inheritance in such a tangle, I think that
the inheritance model used by ACLs would be a great starting point. You'd
simply create a path by traversing the tree backwards to the root node
(i.e., the node that has no entry in the objectParent junction), then
traversing it forwards and applying/removing each relationship as needed.

But -- oh crap -- what about the fact that you can have multiple parentage,
and hence multiple paths? and how would you avoid loops, which would be
theoretically possible if someone wasn't paying attention when they were
creating new data? This issue could be solved by throwing out the tree
model, and replacing it with a flatter structure.

> What I ment about uncertainty is that people disagree. Even if you
> constrain data structure folks are going to have different annecdotal
> evidence, or be observing conflicting attributes because they are
> working in different systems, or (gasp..) someone might just be wrong.
> How do you work with this?

Dictatorship. No other way ;-)

>> hm, and that way, 'Guilds' could be a root node in the hierarchy, and
>> you could create a guild and add nodes under it, just as you'd add
>> 'chicken' under 'herbivore' and 'insectivore'.

After reading some other people's opinions, I disagree with my original
opinion. Guilds should probably be logically separate from other objects,
enjoying their own table.

> Now how would the object [three sisters guild] be searched and described..
> what parameters would describe it? or can it be done only through the
> relationships and the memberships of its constituents? How much of that
> interrelationship should be imbedded in data structure vs. narrative.

good question. I'm inclined to still limit structural (i.e., searchable and
analysable) stuff to the rudimentary relationships ([corn] outputs
[sugars], [corn] outputs [structural support], [beans] benefit from
[structural support], [beans] provide [nitrogen], [squash] outputs [green
mulch], etc) and relegate history to the narrative.

As I try to imagine how certain relationships, like the three sisters,
would be constructed, to facilitate the discovery of variations and new
guilds. What would be the relationship between corn and beans actually look
like? What is [structural support]? Is it an ojbect itself, under some sort
of 'random' functional group? Would [corn] really 'output' [structural
support]? or would we have 'support' in our finite list of relationships
verbs and say [corn] supports [climbers]? Is [nitrogen] an object under the
[chemicals] group? Or maybe we should just say [beans] benefit from [corn]
and [corn] benefits from [beans]. All these things are very open to
opinion, and we'd all have to develop a consistent view of all this.

> Now lets say you have [plant] and you create a relationship between
> [plant] and [water] and call it plant [requires] water... what have you
> achieved?! Everytime you look for relationships to a water family
> object you'd connect to ALL plants!!

hm. I see what you mean. I thought maybe you could weight the relevance of
a relationship, the same way you'd weight the strength of a relationship,
but that seems a little baroque.

I like your idea of incorporating something like those axes that Klinka and
Krajina suggest. For people coming from a traditional gardening background,
though, where the variables are framed in terms of light needs rather than
energy needs/tolerance versus moisture needs, it might be helpful to have
some sort of 'primer' on the website about rethinking plant needs.

gee, it's getting really complicated, isn't it?

> Figure we may as well keep batting this text back and forth... I am
> seeing discrete topics emerge that could migrate to wiki space, but I'd
> like to keep working at a unifying core to this conceptual model. Is
> this going somewhere.. what are the steps forward.

I think we are on the same wavelength, tonight for sure.

---
Lawrence London wrote:

> Let's get started on this project. It needs a name. Maybe Permaculture
> Relationships & Guilds. Or PCDB (assuming that flatfile, object-
> oriented and relational databases are all considered _databases_).
> Or .... Permapedia. PC Wiki/DB

I like PCDB, Permapedia, and PermaSphere, which someone mentioned a couple
months ago. Of them, my favourite is PermaSphere.

With the project we're trying to undertake, I firmly believe that a
custom-designed RDB would serve our needs much better than a wiki. The wiki
creates some exciting possibilities, however. I think there's so much that
doesn't suit itself well to computer analysis, but would be lovely to know.
Like, how good do Chilean guavas actually taste? has anybody made some good
rosehip jelly? I don't know! So many options.

I'd step up to the plate and set up the ibiblio account, but I'm a bit busy
right now -- perhaps in a few weeks to a month, my workload will slow down
a bit.

> I think that, if approved, users who submit a lot of data
> should have the privilege to "own" their data; i.e. have limited
> right to have the final say, within reason, over data revistions
> or overwrites of their work

Good idea. An opportunity to make people take pride in their contributions
(and, as a corollary, make sure their domains are kept tidy), but with a
balance of power. Perhaps something as simple as access control on a page,
where admins have full control, and power-contributors have the right to
set a 'requires my approval before publishing' flag.

> (originals should always be kept

definitely. I think this would be best served by a revision control system
like wikis and software development repositories have. Anybody have
experience writing an RCS?

Well, if anybody can claim (reliably) that they have read my whole post,
I'll bake them a cake as recompense for the time they spent :-)

Paul d'Aoust

--------------------------------------------------------------------
mail2web.com – Enhanced email for the mobile individual based on Microsoft®
Exchange - http://link.mail2web.com/Personal/EnhancedEmail






Archive powered by MHonArc 2.6.24.

Top of Page