See also: FacetedClassificationInMoin, FacetedNavigation, ResourceDescriptionFramework (or RDF), SemanticMoin.
What is meta data?
Metadata is data about data ('meta' means 'further than' or 'beyond' in greek). This data about data helps us to transform data to information and information in knowledge (see GradientDataInformationKnowledge).
For example, if a certain page (node) of this wiki is linked to CategoryBug, that means that the node is about a MoinMoin bug. This is something we humans can understand, i.e., we can extract that meaning without problems from the information and it's context.
Computers are usually not so clever. Even if certain algorithms can help (and Google is the best working example today), computers are extremely rigid and cannot understand things in context. This leads to a situation in which we have a lot of computing power that can't be used to help us to go up in the GradientDataInformationKnowledge.
Metadata can help us with this, by making explicit the types and relationships between different pieces of data or information. In this way, computers can operate on them, and we can exploit more and better our information. So, if we can incorporate metadata support in Moin, we can make a great tool for individual or community KnowledgeManagement practices.
Meta data example
As an example (and part of the FacetedClassificationInMoin and FacetedNavigation issue), imagine that every page in Moin could have the following facets:
- Type (what today is category: bug, idea, request, etc.)
- State (created, working, closed, whatever you want).
- Area (development, help, reference, roadmap, etc.)
We could create a little box or table in which this metadata are set and links us to the corresponding facet index. Following the example, this page would be:
Type |
idea |
Type |
request |
State |
created |
Area |
roadmap |
Area |
development |
A few things to note:
A click in idea (or the value of any facet) will send us to all the pages that has the same type (like today in CategoryWhatever).
A clik in Type (or the name of any facet) will send us to a list with all the possible values of this facet (bug, idea, request, etc.).
- There is no obligatory facet/s in any page. A page can have no metadata, just type, a couple of areas, or the complete set, as the user/s choose to. Any node can have (belongs to) zero, one or more classification/s.
Metadata benefits
From this metadata explicit support, we can have the following benefits:
More utility + usability in navigation (see FacetedNavigation).
More precise searches like, which ideas related to future developments are related to knowledge management? (search for "knowledge management" in pages type:idea and area:roadmap).
More precise following and notices (similar for above, but instead of a search send a mail informing new or modified pages, or RecentChanges filtering).
- A bottom-up organization scheme.
In the future, we could expose this info as ResourceDescriptionFramework in order to allow MoinMoin to interact with other systems.
Emulating meta data using categories
One can use multiple categories per page as a poor man meta data system. For example, see MoinMoinBugs and its children. But there are problems with this:
False positives - If you add a link to a category page, for example CategoryMoinMoinBug, for the purpose of talking about MoinMoin bug tracking system, THIS page is now considered as a bug page. To overcome this, you have to use ugly hacks, like breaking the category name in the page, or use complex regular expressions in your search marcos, which make the system unusable for the simple user.
Yes, this is what happens to me often (I use MoinMoinAsPim a lot).
- Category search is slow - Searching for categories used to search all the page text for the category link or for some hairy regular expression. This is very slow in a big wiki on a busy server. In 1.3.4 dev, a new type of search added, which uses the page links cache, and might be faster than full text search (I did not see any improvement though).
Implementation
See MetaDataInMoin for the discussion about metadata implementation in MoinMoin.