Search code examples
mediawikisemantic-webmediawiki-templatessemantic-mediawiki

Query inverse relationships in Semantic MediaWiki


In my semantic Scandalous Poets Wiki, I'd like to be able to query all pages with properties with a particular value, ideally grouped by property. For instance, given the value "Lord Byron" I'd like to receive a list like so:

Son of: Catherine Gordon, John "Mad Jack" Byron

Rumored lover of: Lady Caroline Lamb, Jane Elizabeth Scott "Lady Oxford", Augusta Leigh, Anne Isabella Milbanke, Nicolò Giraud, Augusta Leigh, Teresa Makri

Father of: Ada Lovelace, Clara Allegra Byron

Rumored father of: Elizabeth Medora Leigh

...and so on. I believe this functionality is demonstrated here: http://semantic-mediawiki.org/wiki/Special:Browse/California under the heading "hide properties that link here". It's also similar to http://semantic-mediawiki.org/w/index.php?title=Template:Invert-property – but this template will only return values for one known property name at a time.

According to http://semantic-mediawiki.org/wiki/Germany MediaWiki does not internally support inverse relationships, though the Special:Browse page seems to be managing; are there any extensions or other techniques which can do this?


Solution

  • You can query the inverse of a property by simply putting a "-" in front of the property in your query. For example:

    {{#ask: [[Category:Poet]] 
    | ?-hasSon=son of
    }}
    

    See http://semantic-mediawiki.org/wiki/Help:Inverse_properties