Weblogs, Wikis, and Comments – apparently some people thinking on the same track as I am. I’m trying to juggle a bunch of balls, but am angling away towards some implementation. Let me ruminate/reiterate on some issues:
- Nodes – similar to Drupal’s conception of data data elements/types – this has the possibility of leading down very long rabbit holes, however
- Attributes/Values – nodes should have attachable arbitrary attributes and values, and sets based on type; now, are these attributes/values also nodes? What should first class entities be?
- Relationships – can this be abstracted to relationships? (is a, has a, parent of, child of) — hey, did we create an RDF triple store?
At the very least however we can understand nodes as either a single piece of microcontent, or subdivide into arbitrary transcludable elements (in HTML, block-level elements work well), and also links (hyperlinks, internal links) as first class types
- Versioning – ok, yeah, this is really straightforward. I wrote some SQL for it earlier (w/ self joins since MySQL doesn’t support subselects). This is a no-brainer — now, exploring versioning interfaces, that’s interesting (see also version-control w/ changesets etc [subversion, arch, etc.])
- Annotations – comments are a type of annotation, these are nodes that have a relationship to other nodes/collections, attached at a point, rendered separately. Lets de-abstractify: Aanotations apply to certain nodes or collections (another type of node?) and should be threadable (can be stored in classic linked list format, or more efficiently as PTT/MPTT)
- Transclusion – ahh, this is where current blikis seem to fall down. How do you give blog posts multiple contexts? — Using collection nodes is one way, or straight out rulesets/property queries for faceting. It’s one thing to discuss theoretics and another to code, however
- Identity – a requirement (and what’s most notably missing from wikis) are explicit authX, profiles, author sorting, trusts. You can’t have collaboration w/o a strong sense of the personalities interacting
Central to these issues are interfaces/methods of interacting w/ pages, and the ability for effective web-based multi-user locking and presence. I’m trying very hard right now to cut down my simultaneous activities so that I can effectively work on these.
My hopeful short-term goal is to clear off as much dead wood as possible and make a schedule to work on:
- KB/KM/Collab env, basic notepad/task manager
- specific JS widgets, comm protocol
- blog overhaul, code distribution setup
- Event-related/organization code
- possibly: network level DigID/DSS code
Work seems to currently tie in closely with my current interests: Portal/CLE dev, KM/KB development, Events
Hopefully, the first of my deliverables will make it out in time for the MT contest deadline. I think that once I figure out my code distribution setup, things will be easier. I’ve been writing lots of random things over the past while, some of which is worth writing up and/or packaging.