Wikispooks:Semantic Templates

From Wikispooks
Jump to navigation Jump to search

Although semantic properties can be added inline in text, this is cumbersome and unsystematic so should be used only for testing purposes. All the SMW data on Wikispooks pages is input through Wikispooks:templates.

Object Orientation

Full article: Wikispooks:Semantic Objects

The templates are structured around a set of objects. Each object its own set of semantic properties and accompanying template to mark process them. Some are displayed to the user, some are not. As of March 2016, the objects as currently defined are: Document, Website, Property, Person, Group, Event,Place, Employment, Publication, Timeline, Year


A 'semantic template' is just a template which uses semantic mediawiki, whether for reading or writing properties. The basic parser directives you'll need are:

A helpful summary of syntax is the quick reference guide, available here.

Multiple Values for Fields

Some parameters can take multiple values (e.g. an article can have more than one author) and at least 3 approaches to this are tried and tested. Which method(s) would work best for Wikispooks is an open question.

Numbered Fields

The first approach used on Wikispooks was to have a set of numbered parameters, e.g Author, Author2, Author3 etc. This was straightforward but did not make full use of the facilities provided by SMW software and made for long, ugly templates. This method was deemed inferior to comma separated lists, and was gradually replaced, being finally eliminated in December 2015.


The current preferred approach stores the data as separate items in a comma-separated list. This means that ',' should not be used in page titles. These lists are easily processed with the '#arraymap:' and '#arraymaptemplate:' parser instructions.

Note that the processing of two properties (Has keyProperties and Has keyPropertyHeaders) is too complex to be done with either #arraymap: or #arraymaptemplate: (since it is not done independently) so #titleparts: is needed instead, which requires use of slash(/)-separated lists.

Multiple Templates

Another approach is the use of multiple templates. This is used on Wikispooks in the |employment section of the person object. It may be seen in action at DiscourseDB, a site run by Yaron Koren, the key developer of SMW. It appears better supported as regards form input (try adding multiple Wikipedia items on the DiscourseDB site, for example) but could lead to verbose page source if widely applied to the objects developed at Wikispooks.

Semantic Output Templates

SMW has a template format, which allows use of a custom template to format results. Since this is more work, it is applied usually only on high traffic and/or specialist pages where the standard output formats fall short. As a consequence, these templates are usually quite specific, not general use. For general convenience, semantic web output templates should be placed in Category:Semantic Output Templates and named as a subpage "output" of the template for which they were developed.

See Also

Wikispooks logo.png Policy.png Wikispooks to do.png Tools2.png SMW.png