Semantic Mediawiki and the Semantic Web
Following Web development for 15 years, the Semantic Web has always been in the background. Today XML is commonly used as an interchange language between applications, Web Services are used by systems requiring rich data exchange, and REST is used as a lighter weight exchange system. All these elements contribute to the SemWeb. Yet providing a practical way to create semantic documents is difficult for the typical end user. Most SemWeb approaches use very explicit, requiring linked codes that are painful to enter, so clunky forms based interfaces are often used to develop documents.
Contrast this with the fluidity of wikis, a giant force in the development of the participatory Web. A classic wiki allows anyone to edit pages, with a full 'audit trail.' In creating those pages, hypertext databases can be easily created, with conventions allowing easy organization of documents, and functions like "what links here" enable discovery navigation.
However, to best use a wiki today (rather than using it as a Web based version of MS Word with hyperlinks), one often should use the low level wiki markup. Many people are afraid of working in text, but it adds a lot of fluidity. Over time, we should start to see better 'rich' interfaces, as well as the common pattern of an inexperienced user adding some information, and an expert adding semantic markup. But it's always going to be a benefit to have an idea of how the underlying markup works, similar to how a Web developer knows how a Web page is composed.
As an example, Wikipedia allows easily adding categories, which adds an incredible value to pages. The corpus becomes a set of resources that can be organized from any perspective. A random article is not just about an actress, it is also about 1907 births, 1976 deaths, and deaths from myocardial infarction.
Semantic Mediawiki takes this one step farther, so that the encodings apply directly to the text. Rather than adding a category, one adds a property or relationship.
Looking at the following text, we see lots of opportunties for markup:
Phyllis Konstam (14 April 1907 – 20 August 1976) was an English film actress. She was born in London and died in Somerset from a heart attack.
In markup, this can look like:
Phyllis Konstam ([[born::14 April 1907]] – [[died::20 August 1976]]) was an [[is from: England | English]] [[is a::film actress]]. She was born in [[born in::London]] and died in [[died in::Somerset]] from a [[died of::heart attack]].
Oh no! Look at all those strange symbols! Well, actually there are just a few and they add a lot of value (and there's a forms-based interface as well). Not only do you not have to add your subject to each of those categories, anyone can also re-use this information on other pages, for embedded queries and views.
I've entered actors using the above syntax. I can query them in embedded views:
Born | Died | Died in | Died of | |
---|---|---|---|---|
Arnold Bush | 3 April 1911 | 20 July 1996 | Hertfordshire | Dancing accident |
Bob Herrelsmorm | 9 April 1907 | 20 August 1976 | London, UK | Mysterious causes |
Bob Newhart | 1 June 1942 | |||
Christina Poulet | 14 April 1907 | 20 August 1976 | Somerset, UK | Stage fright |
Katherine Cardiff | 11 April 1901 | 20 July 1996 | London, UK | Dancing accident |
Paul Devonshire | 10 October 1911 | 10 September 1986 | Scotland, UK | Polo accident |
The query is phrased as follows:
{{ #ask: [[born::+]] <-- ask for all entities that have a born field |?born |?died |?died in <-- include these ?fields in the output |?died of }}
The query will always show the latest information, you'll also see some entries created later in these pages. Fields or parameters can be added easily. You can view the source (edit) of any page to see how queries are composed.
Next: SMW map