[okfn-discuss] Collaborative Development of Data

Erik Moeller erik at wikimedia.org
Mon Feb 19 17:23:11 UTC 2007

On 2/19/07, Rufus Pollock <rufus.pollock at okfn.org> wrote:
> Then it will include a lot of stuff including the examples you mention.
> By the way what would happen if you allow editing by other means (e.g.
> local modifications with some commit mechanism) in addition to/instead
> of by the web.

I would define access through a web as a minimum requirement, all
other means of access is optional (though desirable).

> Similarly, musicbrainz, which definitely has some kind of versioning and
> a web interface,  would also be a wiki.

Open to changes & reasonably easy? Fully reversible? User-visible
changelogging? I don't know -- I'm only superficially familiar with
their system.

> Of course this is no bad thing -- but it would seem to be a very broad
> definition and it might be clearer just to say: this is a system which
> supports versioning and liberal write access.

The term is useful if one applies the definition rigorously; access
restrictions have a habit of creeping into even the most open systems
(there are alternatives, such as reducing the impact of writes by
delaying version pointer changes or reviewing changes before
committing them to a "branch"). For example: Wikipedia still has
traditional page protection, and images only recently became
undeletable. The drive to make that changes, and the resistance to
requiring logins, were both closely associated with "wiki culture."

I do expect that versioning systems, wikis and databases will
converge; this, then, can lead to a fully read/write web, where code,
data and content can all be maintained collaboratively, with
fine-grained security models making way for socially learning trust
systems, and traditional RDBMS gradually being replaced by
self-optimizing generic data stores.

> Out of interest can you make changes to multiple objects as part of a single
> transaction

Yes. An import of 80,000 objects could be represented as a single
transaction that can be rolled back as one (but also selectively).

> and how do you implement many to many relationships?

Since we are using an RDBMS, many-to-many relationships in a join
table are simply versioned rows like any other, with a known lifespan
determined by the associated transaction IDs for each table row.

Feel free to play with the code:
Peace & Love,

DISCLAIMER: This message does not represent an official position of
the Wikimedia Foundation or its Board of Trustees.

"An old, rigid civilization is reluctantly dying. Something new, open,
free and exciting is waking up." -- Ming the Mechanic

More information about the okfn-discuss mailing list