Semantic Mediawiki and the Semantic Web: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 1: Line 1:
<noinclude>
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 applications 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.
This is the "Person" template.
 
It should be called in the following format:
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. 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.
<pre>
 
{{Person
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.
|Image=
 
|Home page=
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 [http://en.wikipedia.org/wiki/Phyllis_Konstam random article] is not just about an actress, it is also about [http://en.wikipedia.org/wiki/Category:1907_births 1907 births], [http://en.wikipedia.org/wiki/Category:1976_deaths 1976 deaths], and [http://en.wikipedia.org/wiki/Category:Deaths_from_myocardial_infarction deaths from myocardial infarction].
|Location=
 
|GPS Location=
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.
}}
 
</pre>
In markup, this can look like:
Edit the page to see the template text.
 
</noinclude><includeonly>
  <nowiki>Phyllis Konstam ([[born::14 April 1907]] [[died::20 August 1976]])
{{ #if: {{{Tags|}}} |<!-- temporary, remove after corrected -->
  was an [[is from: England | English]] [[is a::film actress]].
{{ #set: Location={{{Tags}}} }}{{ #set: Arts={{{Tags}}} }}{{ #set: Type={{{Tags}}} }}
  She was born in [[born in::London]] and died in [[died in::Somerset]]  
| }}
  from a [[died of::heart attack]].</nowiki>
{{ #if: {{{Image|}}} |
 
{{ #set:Image={{{Image|}}} }}{{ #set:GPS Location={{ #geocode: {{{Location}}} }} }}
Oh no! Look at all those strange symbols! Well, actually there are just a few and they add a lot of value. Not only do you not have to add your subject to each of those categories, you can also re-use this information on other pages, for embedded queries and views.
[[File:{{{Image}}}|200px|thumb|left|{{PAGENAME}}]]
| }}
{{ #if: {{{Home page|}}} |
<div class="tpldiv"><span class="tpllabel">Home page</span>
<span class="tblvalue">[[Home page::{{{Home page|}}}]]</span>
</div>
| }}
{{ #if: {{{Location|}}} |
{{#arraymap:{{{Location}}}|,|x|[[Category:x]] |<nowiki> </nowiki>}}
<!-- {{#arraymap:{{{Location}}}|,|x|[[Location::x]] |<nowiki> </nowiki>}} -->
| }}
{{ #if: {{{Arts|}}} |
{{#arraymap:{{{Arts}}}|,|x|[[Category:x]] |<nowiki> </nowiki>}}
<!-- {{#arraymap:{{{Arts}}}|,|x|[[Arts::x]] |<nowiki> </nowiki>}} -->
| }}
{{ #if: {{{Type|}}} |
{{#arraymap:{{{Type}}}|,|x|[[Category:x]] |<nowiki> </nowiki>}}
<!-- {{#arraymap:{{{Type}}}|,|x|[[Type::x]] |<nowiki> </nowiki>}} -->
| }}


== Events with {{PAGENAME}} ==
I've entered actors using the above syntax. I can query them in embedded views:


{{ #ask: [[Category:Event]][[People::{{PAGENAME}}]]
{{ #ask: [[born::+]]
|?Start date
|?born
|?End date
|?died
|?Location
|?is from
|?died in
|?died of
}}
}}


{{#forminput:form=Event|||button text=Add an event|query string=Event[People]={{PAGENAME}}&Event[Tags]={{{Tags}}}|}}
The query will always show the latest information, you'll also see some entries created later in these pages. View the source (edit) this page to see how it's composed.


<br class="cleared" />
{{Next|SMW map}}


[[Category:Person]]
[[Category:SemWeb]]
</includeonly>