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.

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

}}}

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 :

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:

Btw: The one instance per page approach will fail in most use cases

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.

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.


CategoryFeatureRequest

MoinMoin: SemanticMoin (last edited 2007-10-29 19:09:38 by localhost)