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 Cereghino <paul.cereghino@comcast.net>
  • To: pcdb <pcdb@lists.ibiblio.org>
  • Subject: Re: [pcdb] some ideas for data modelling
  • Date: Tue, 27 Mar 2007 09:46:54 -0700

Yea!! its moving again :) Thanks Paul!

How about something very simple? All tangible entities -- plants,
actinomycetes, dogs, bicycles, bodies of water, trowels, etc -- are
first-class objects. They would be organised hierarchically, like this:

I like the nesting hierarchical taxonomy because of how it allows for navigation. The idea of heritable attributes has me a little worrisome if we're using a phylogenetic hierarchy -- the genetic hierarchy is just structural... proposing how organisms evolved based on structural similarities, particularly genetically stable structures like flowers or bones. From a permaculture perspective a apple tree would have more in common with a cornelian cherry than with a ground trailing bramble. Secondarily phylogenetic taxonomies change as taxonomists unravel genetics.

Functional groups (like size classes, herbivores, tree, shrub, vine, pollinator, predator) would be more useful, but are more 'invented'. Membership of an object in a functional group could be a matter of debate. It would be good to have that 'uncertainty' captured in the data set.
In this approach functional 'group membership' creates linkage between objects as well as allowing linkage to different levels of the taxonomy... objects float in space until the have membership in a functional group. This way you could have several functional taxonomies to consider different commonly held attributes of groups of object. Carnivore only applies to a small subset of plants. And is part of a trophic position taxonomy that looks something like this:

Requires metabolic input
Autotrophs
Algae
Vascular plants
Heterotrophs
Decomposer
Filter feeders
Carnivore
Insecteater
Fish eater
Birdeater
Amphibianeater
Mammaleater
Herbivores
Seedeater
Browser
Grazer
Fruiteater
Doesn't require metabolic input

Chicken would be a member of several groups

These attributes would have definitions, and information and be linked to a who wiki presence that presents best available information on that group... they are the abstract concepts that let us group our world of objects. You would likely want to control the creation of a new functional taxonomy through some kind of vetting process... some kind of rule set about what makes a taxonomy problematic, and when a new taxonomy is created have a system of notification by which if you are looking at a object that has not been linked to a taxonomy you'd get a message like... this [freshwater oyster] has not been given [trophic function], click here is you want to assist in making that attribution...

One way of modelling relationships is to use a source/sink model. Anyone
who's used computer-based modular synthesis programs, or the gstreamer
library on Linux, will be familiar with this model. An object presents a
series of sources and sinks, which (conveniently enough) are directly
analogous to inputs and outputs in the permaculture world. So, then, a
chicken would present itself this way:

Some form of automated linking would be great. I suspect having to manually link objects through a defined relationship would be brutal and bog down the whole information gathering process, but it may be the only way. It looks like the ways a chicken presents is through an object (i assume [egg] and [poop] are objects in their own right), with the between object relationship being reduced to a boolean [source/sink] choice -- so the two alternatives are conceptully similar.

With organisms there are direct metabolic inputs and outputs as well as indirect benefits by association... I would propose a middle ground with a finite set of relationships that captures a good/bad, direct/indirect matrix and includes two kinds of outputs.

[object] benefits from consuming [object]
[object] suffers from consuming [object]
[object] benefits from being adjacent [object]
[object] suffers from being adjacent [object]
[object] produces/yields [object]
[object] does [workobject]

you would have a popup menu that lets you browse through functional groups to find an object and attribute one of six or so relationships.

Given a functional group membership, and with functional groups in a nested hierarchy, you can link to the appropriate level of the functional.

[fruiteater] benefits from consuming [fruit]
[fruiteater] benefits from being adjacent to [fruit-producing plant]
[bird] suffers from being adjacent to [birdeater]
All these are about chicken because chicken is a member of [bird] and [fruiteater]. And thus the chicken (and all fruit eating birds] starts to evolve in a way that links it to other objects... you jump to [fruit-producing plant] and start dialing in you climate/soil/light/hydrologic conditions... Then organize the list by different structures and life-histories and production timing... but wait what other fruit eating birds should be consider? Is there a gap in fruit production timing? what other objects yield in that gap?

Now the trick would come in further qualifying this basic relationship... my chickens like this but don't really like that... they scratch on monday but not on tuesday... and I think that this kind of information would vary so much it would have to be reserved to the narrative about chickens, and hopefully in some kind of narrative category like [dietaryhabit_txt] or [workhabits_txt]. That text could also be an aggregate of a variety of opinions entered by users as comments. Comments could be rated and ranked by users in a way that would affect their presentation... perhaps attributed with agreement or disagreement.... thus exposing uncertainty... The bottom line is that this level of information is vague, frequently contradictory, and if you are trying to establish rigid data relationships for this level of information all elements of all systems in all setting you are going to be "off in the weeds" for a very long time and the resulting "model" even if conceptual, will have very little predictive value.

In short I think we need to humble our data relationships to the level at which our human understanding can provide consistent accurate answers.

Paul Cereghino






Archive powered by MHonArc 2.6.24.

Top of Page