I'm very interested in a Wiki system that supports semantic web concepts, and so I was happy to read this article about a proposed implementation for a a Semantic MediaWiki.
The article suggests some additional markup that can be added to the current MediaWiki system (that runs Wikipedia and some other Wikis) that would allow semantic information to be integrated into the human readable text.
I was a bit surprised to see that two additional kinds of tags were proposed: attributes and relations. Apparently, attributes are features of the the thing described in the page, whereas relations exist between pages. For example, on the page for Berlin, instead of the current MediaWiki markup:
Berlin is the capital of [[Germany]].
Berlin has [[3.390.444]]] inhabitants.
you would write the enhanced markup:
Berlin is the capital of [[is capital of::Germany]].
Berlin has [[population:=3.390.444]] inhabitants.
where "is capital of" is a relation, "population" is an attribute, and "Germany" is described on a separate Wiki page. Note that attributes and relations are specified using a different syntax.
I don't see the need for both relations and attributes. To me, "capital city" and "population" are both just properties of Berlin. In other words, I think you could write a simpler form of markup that uses a single unified syntax to indicate a property:
Berlin is the capital of [[is capital of::Germany]].
Berlin has [[population::3.390.444]] inhabitants.
It's tempting to say that "attributes are different because they have literal values and don't ever link to a separate page" but this is not true. For example, the page associated with a Rose might include the following text:
The color of a rose is often [[color::Red]].
where "color" is clearly an attribute of a Rose but "Red" has its own page.
I'd be interested to hear reasons why a single "property" tag would not suffice. I've sent an email to Markus Krötzsch, the lead behind the implementation proposal, to see if he can provide any insights, and will post them if I hear back from him.
Graham,
I think the difference between the "::" and ":=" syntax is that "::" describes a property whose range is another resource, while ":=" is intended to convey a literal value. Think of it as the difference between an OWL's ObjectProperty and DatatypeProperty.
Without stating that they differ, the system might infer that "3.390.444" is a proper resource in the SebWeb/RDF sense.
My two cents...
Brian
PS. Thanks for the link! But it's spelled Ontogon, not Ontagon. :)
Posted by: Brian | Sep 06, 2005 at 09:32 PM
Hi Brian,
I anticipated and addressed your point explicitly at the end of my blog entry; "Red" is an attribute of a Rose as well as a concept in its own right.
Cheers,
Graham
p.s. Sorry about the mispelling; it's fixed now!
Posted by: Graham Glass | Sep 06, 2005 at 09:37 PM
Hi Graham,
Markus will give you a longer answer soon, but just a short notice: one of the points of seperating attributes from properties is, that the Wikipedia markup right now is *not* "Berlin has [[3.390.444]] inhabitants." but rather "Berlin has 3.390.444 inhabitants.", i.e. the number is not a link at all. So having attributes actually allowes you to make literals like this without having to force you to write an article about every number (and size, and age, and geographical latitude, etc.)
Taking your example of the rose, I'd write it down as a property because we have an article about red in the Wikipedia, so we can link it (in case you look it up, take a look at the greek version of the article as well ;)
I hope it's a bit clearer now. Cheers, Denny
Posted by: denny | Sep 07, 2005 at 01:24 AM
Hello Graham,
thanks for your comment. I guess that we really have to provide a prototype implementation or some examples soon. Things are harder to explain in theory than in practice ...
I posted your question and a long answer at the implementation talk page: http://meta.wikimedia.org/wiki/Talk:Semantic_MediaWiki/Implementation A shorter summary of the differences is as follows:
* Relations describe relations between articles, which are displayed as links and thus connect to other relevant resources. Searching for links is simple: e.g. one can search for all articles with a "is capital of" link to "Germany".
* Attributes describe data-properties of articles, which are displayed as plain text, support automatic unit conversions, can be ordered, and must be translated into standard compliant XML-expressions for export. Searching for attributes requires advanced options, e.g. one would seldom like to search for all articles with "population" attribute being exactly 3390444, but rather for all that are at least or at most that size, and one wants to order the results increasingly or decreasingly. When searching for physical quantities, one wants to work with units, e.g. when searching all rivers longer than 500 miles.
So both annotations describe "properties" of an article, but they are treated quite differently in practice. Alas, the expression "attribute" cannot clarify this difference, and can be mistaken to refer to properties in a more general sense.
The above talk page is a good loctation for further discussion.
Best regards,
Markus
Posted by: Markus Krötzsch | Sep 07, 2005 at 06:37 AM