Add SemanticWiki capabilities to the MoinMoin
See also MetaDataInMoin, SemanticWiki and SemanticWeb. And GraphingWiki for a working implementation.
The purpose is to allow adding attributes to the wiki pages and describe relations between pages.
Contents
Model
Page can have attribute-value pairs. Attributes are wiki links. Values are links or string values.
Syntax
Possibility a: pairs
<AttributeName>::<AttributeValue> <AttributeName>::
::
where <AttributeName> - WikiLink; <AttributeValue> - WikiLink or text
<MultilineAttributeValue> - WikiText
We already have very similar syntax - denifition list:
key:: value
Both key and value can be any unicode string. Maybe use the existing markup.
Possibility b: processing instructions
Or, we have already kind of meta data called "processing instructions", using this format:
#key value #key pragma value
Currentlly these are hidden, but the can be displayed in a special way. See MetaDataInMoin.
Example:
page NewYork: {{{ IsA::City
SituatedIn::UnitedStates Description::New yourk city is a very big city
}}}
Possibility c: section metadata
See SectionParser.
Possibility d: reStructured text bibliographic field like
cf http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#bibliographic-fields :
- When a field list is the first non-comment element in a document (after the document title, if there is one) ...
Idea: metadata concerning a whole wiki page should not be distributed all over the page, nor it should be hidden in or allocated to certain paragraphs / text elements (Johannes Busse)
Presentation
Common attributes
If there are some page linked to given via attributes they will be at that page formatted as following: <AttributeName> (<PagesCount>)
For example page City
IsA (20)
where "20" - amount of pages marked with IsA::City
See example in diamond wiki
Attribute map
Atributes are facets (discussed in FacetedNavigation in Moin). There is a proposal for a FacetMap macro, that can be included in pages or as a navigation aid in themes.
Graphical representations
A graphical representations of Moin content, like the one showed in "Circles and arrows diagrams using stylesheet rules" en el Web Consortium with a mechanism similar to the one already working in VisualSiteMap.
Special atributes
Description
Page can have attribute description. If it have, the attribute goes to the title attribute of a tag in referenced pages. So if you place mouse pointer over NewYourk you'll see "New yourk city is a very big city"
Hierarchical Attributes
When a page have attribute which marked with IsA::Hierarchical it is displayed as path. For example, Area \ Town \ NewYork
Perspectives
Discussion
Before discussing syntactic details other stuff has to be determined:
- WTF are "metadata". This word has a long history of misunderstandings. I would suggest to completely avoid it.
- Most common problem is that meta data are also data and some people will refere to them as data. Things get even worse when people start talking about meta meta data or even meta ...
In this case, we use metadata as defined in MetaData and hope that in a simple enough way so as not to create more confusion.
- Most common problem is that meta data are also data and some people will refere to them as data. Things get even worse when people start talking about meta meta data or even meta ...
- Same thing for "Ontology" (at least 3 major meanings) just in case somone tries...
Not even in my dreams (yet).
- What to do with the "meta data"
See "Metadata benefits" in MetaData.
- What kind of information should be possible to describe
Any thinkable pair of key::value.
- Are the "meta data" invisible or part of the pages or both
Is visible (representation controlled by css), and included in the page.
- Do the "meta data" refere to the page they are on
Yes.
- or the page content
Which is the same for this level of KnowledgeManagement that we are pointing now.
- or are they page content
They are included but are data about the content, even if "physically" are located in the same place.
- * ''They are page content with special value. It is like XML markup - you mark a part of text and it remains text but with special value. The
markup was selected for similarity to Attr: Value in normal text. This is WikiWay :)
- or are they a maschine readable representations of the page content
They are for both human and computer processing.
- or something completely weird (most likely)
Not yet, just give is some time to think about it and we will come up with something...
- Is there some kind of schema which the "meta" data have to comply to?
Not yet. Do we need one? (this is not a joke but a real question).
Maybe some attributes or some pages have special meaning for example IsA::HierarchicalAttribute will mark attribute as a hierarchical attribute. But it is forthe next stage
- This is a very good question
- If you want to use the data you need to know something about them. One good starting point would be the keys and their meaning. This is what we call schema.
- The schema does not nessesarily be explicit
- But if you want to export to RDF/OWL it has to
- Using a schema would make it much more likely that the data uses the same keys.
- Is this schema editable in the wiki
- or fixed?
- or given by the wiki admin?
Btw: The one instance per page approach will fail in most use cases
I didn't understood this one...
The question is how the Key-Value pairs fit together. RDF for examples does not use pairs but triples Subject-Predicate-Object. This allows data to be modeled as graph. If you only use Predicate-Object all pairs can only belong to the page they are one (or be independent). This means is it impossible to have several "instances" (I avoid the word "objects" here because it gets easily confused with the object of a triple) on one page. This is very unsuitable for a lot of use cases. Especially tabular data needs to be modeled one "instance" per row.
Hmmm... I understand your point. I was thinking on expresing Predicate-Object only, thus building the triplet assuming the subject is the page they are on. This was enough for the proposed uses (building a FacetMap and creating a seudo-hierarquical access to the wiki content).
Yes. RDF Subject-Predicate-Object can be mapped to Page-Attribute-Value, where Page is a page where attribute::value is located. This is intended to describe relations between wiki pages, but not to replace any kind of semantic net or database - so tabular data will not be marked up -- MaxBelugin As I already wrote on SemanticWikiWikiWeb I kind of implemented a semantic extention for MoinMoin in my master thesis. But this uses a (very) different approach. May we see it? Please, pelase, please...