Wikka Resources
Some thoughts about Wikka, its resources, and how the Wikka architecture supports them (or not).The web view
Remember how the web works? A URL will take you to ...Remember what the 'R' in 'URL' stands for? URL means Uniform (there's a uniform syntax) Resource (wait...) Locator (which indicates where to find the resource). So a URL can locate a page for you. Or an image. Or a sound file. Or a Java applet. In fact, anything that can be stored on a web server, or generated by a webserver program, or provides a service acessible via the web, is a "resource" - as long as we can construct a URL that can locate it for our browser so it knows how to GET it.
Looking at Wikka and its resources from the web, this is what we see:
The first and most obvious obvious resources we see (and can construct URLs for) are pages. But comments (attached to pages, visible or not) are also resources, and we can construct a URL to take us directly to a specific comment (even if it's only a fragment of a whole page as shown in the browser). Even images (also attached to pages, shown on the page or not) are resources.
Hold that thought.
The Wikka view
Looking from Wikka at its resources, this is what we see:- Pages are stored in a database table, along with some meta data (data-about-data) such as who made the last edit when, and what the current version is. ACLs that control access to them are either the configured defaults (stored in the configuration file) or stored in a separate table.
- Comments are also stored in their own table; they're attached to a page by storing the page name with them, along with (again) other meta data such as who wrote it when. They don't have their own ACLs stored anywhere since there's only a default: Page owners, comment writers and admins can delete a comment. This "ACL" is actually "stored" in program code.
- Images are stored in a subdirectory below the configured "uploads" directory; they're attached to a page by the name of that subdirectory which corresponds to the page. By default only Admins can upload an image, but this can be changed, though not by configuration, but by hacking the program code - a little. Images don't have ACLs: they are sort-of implied; they're not even directly "stored" in the code but depend on actions by WikiUsers: If someone with write access to the page (controlled by a page ACL) places a {{files}} action on the page, everyone else with read access to the page can download the images that the action makes available.
Now that all seems sort of muddled to me. And it isn't even the whole story, but I think you get the idea: web standards define what "resources" are and how to GET them but Wikka doesn't have a standard way to handle them, which is somewhat confusing. (I think it doesn't even have a way to embed an images that is attached to a page in that page.)
Hold that thought, too.
A different approach
more tomorrow... watch this space :)
CategoryWikkaArchitecture