All topics are containers

From WhyNotWiki

Jump to: navigation, search

Any topic object can be treated as a category/container. (No distinction between normal pages and Category pages like in MediaWiki.)

Some topics are clearly not Category/page-container material, if we are talking in the traditional wiki sense. For example, "Examples of e-mail required notice" would be a page that contains examples, but it would not contain other pages. So if I had to choose between category or not, I would choose not.

"Examples of good copy", on the other hand, I can see possibly having children pages ("Examples of e-mail required notice" being one of them), so I would make it a category to begin with.

The trouble is, we can't be expected to know all this in advance. So there shouldn't be artificial limitations preventing a topic/page/whatever from being a container.

I think it would be useful to stop thinking in terms of articles which have titles and instead to think of topics (analogous to titles) which are big, general-purpose containers into which you can place articles (which don't really need to be specially titled, because the topic inherited from its container(s) topics can be used as its title) and subtopics.

So topic objects will be my replacement for both MediaWiki's titles and MediaWiki's categories.

Topics can contain anything. Or, put another way, any type of object may have a topic/subject. So we would have a topic has_many other_objects (polymorphic!) / other_objects belong_to topic relationship/association.

[edit] But I don't want a bunch of anonymous articles!

They won't be "anonymous". They will be fully scoped. Much better qualified and identifiable than systems like MediaWiki which only allow a flat collection of titles (okay, that's not entirely true: they do give us "subpages", but they're not implemented really cleanly/well/flexibly).

Maybe, to enforce good organization, each topic could only have one "primary article" associated with it. So if you browsed to a topic's page, you'd see the "main page" for that topic. Or maybe it would be the "miscellaneous" page for that topic. Because anything that could be more specifically classified (using subtopics of that topic) would be so classified. Resulting in us only having "leftovers" (that are unable to be more specifically classified under subtopics) left on a topic's "main page".

A topic's "main page" would, of course, show a tree of subtopics, allowing you to quickly browse to anything that is under the current topic (both subtopics and actual content/articles). (It would be similar to how I currently use CategoryTrees on each main article/topic page in MediaWiki.)

[edit] How does multiple inheritance fit into all of this? And tiny objects that will each be tagged separately before being aggregated into what might be considered an "article"?

Hmm, good point. I don't really know yet how it's all going to fit together, ... but somehow it's all going to work.

Perhaps I could make a distinction between fragments and full-fledged articles. Fragments would only exist in the context of a larger work (an article), while articles could stand alone and be read on their own.

If this were to be the case, then I suppose we would only show on a topic page by default the following:

  • topic/category tree
  • the single primary article for that topic
  • a collapsed, non-preloaded section for listing/showing all fragments (for there may be many) belonging to this topic. (Use Ajax to only expand on demand.)

I think we might need to have a 3rd type of object, for objects that are not just chunks of text but are actually well-structured records in a specialized database: perhaps I'll call them "records" for the time being.

These "records" then would also probably want to be listed by default on a topic page. So on the "software projects" page, I would want a (paginated) browsable list of all records in the software_projects table ... in addition to the wikitext for that topic.

[edit] But what if I want to have a title...?

As described above, you wouldn't really care about having a title in most cases -- an article's topic will serve sufficiently well as a title. In some cases, however, -- like when I have a really polished, "finished"/static document -- then I may actually want to give it a unique/specific title. Then I suppose in that case it would be allowed. The title would then apply singularly to that document and would not act as a general topic that can be a container...

But then again, even then, maybe it would be okay to treat the article's title as a container! Why do I say that? Because what if you want to associate other things with this document that are about the document? For instance, what better organization/place to put a review of your document or rebuttal to or comments about or a to-do list for your document, than directly under your document? That is, I'm going back again to my thesis that anything should be allowed to be a container that can contain other articles/content/object!

Personal tools