6

在我的语义 Scandalous Poets Wiki 中,我希望能够查询具有特定值的属性的所有页面,最好按属性分组。例如,给定值“Lord Byron”,我希望收到这样的列表:

儿子:凯瑟琳·戈登、约翰·“疯狂杰克”·拜伦

传闻的情人:卡罗琳·兰姆夫人、简·伊丽莎白·斯科特“牛津夫人”、奥古斯塔·利、安妮·伊莎贝拉·米尔班克、尼科洛·吉罗、奥古斯塔·利、特蕾莎·马克里

父亲:艾达·洛芙蕾丝、克拉拉·阿莱格拉·拜伦

传闻的父亲:伊丽莎白梅多拉利

...等等。我相信此功能已在此处演示: http ://semantic-mediawiki.org/wiki/Special:Browse/California在标题“隐藏链接此处的属性”下。它也类似于http://semantic-mediawiki.org/w/index.php?title=Template:Invert-property - 但此模板一次只返回一个已知属性名称的值。

根据http://semantic-mediawiki.org/wiki/Germany MediaWiki 内部不支持反向关系,尽管 Special:Browse 页面似乎正在管理;是否有任何扩展或其他技术可以做到这一点?

4

2 回答 2

4

您可以通过在查询中的属性前面简单地放置一个“-”来查询属性的倒数。例如:

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

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

于 2012-06-14T20:50:12.153 回答
0

这就是我如何处理指向特定页面的链接集合。我必须在这里处理的问题是关系可能在当前页面和其他页面上都建立。您可能会发现这很有用。此外,您可能想用“sun of”替换“has supernode”,用“father of”替换“has subnode”。我还使用 mediawiki 的数组扩展来合并重复值。

== Links ==
=== Super-Nodes ===
{{#arraydefine:key_1
|{{#ask:[[{{PAGENAME}}]]
|?has supernode
|mainlabel=-
|headers=hide
|format=array
|}}
}}
{{#arraydefine:key_2
|{{#ask:[[has subnode::{{PAGENAME}}]]
|format=array
|}}
}}
{{#arrayunion:key_mrg |key_1 |key_2 }}
{{#arraysort:key_mrg|nat}}
{{#arrayprint:key_mrg}}

=== Sub-Nodes ===
{{#arraydefine:key_1
|{{#ask:[[{{PAGENAME}}]]
|?has subnode
|mainlabel=-
|headers=hide
|format=array
|}}
}}
{{#arraydefine:key_2
|{{#ask:[[has supernode::{{PAGENAME}}]]
|format=array
|}}
}}
{{#arrayunion:key_mrg |key_1 |key_2 }}
{{#arraysort:key_mrg|nat}}
{{#arrayprint:key_mrg}}
于 2020-12-28T14:59:47.150 回答