我无法在Semantic Mediawiki中编写显示相关信息的查询。假设作者有两个主要属性:Quotes
和AuthorOf
,书籍则有一个:HasQuotedAuthor
。
假设有三位作者:柯勒律治、拜伦和狄更斯。
-
拜伦和狄更斯具有属性
[[Quotes::Byron]]
-
Byron具有属性
[[AuthorOf::The first kiss of love]]
和[[AuthorOf::The Dream]]
-
Dickens具有属性
[[AuthorOf::A Christmas Carol]]
和[[AuthorOf::Oliver Twist]]
-
《梦想》和圣诞颂歌具有属性
[[HasQuotedAuthor::Coleridge]]
你如何在柯勒律治的页面上建立一个查询,以获得一个表格,其中包括引用他的作者,以及只引用柯勒律奇实际引用的相关书籍?
我在这里为您创建了这些页面和查询:http://smw.referata.com/wiki/Coleridge
你要找的是引用{{PAGENAME}}
(在本例中为柯勒律治)的任何一本书的作者。您的查询如下:
{{#ask: [[Author of::<q>[[HasQuotedAuthor::{{PAGENAME}}]]</q>]] }}
结果为:Byron, Dickens
或者你可以同时打印书籍和作者:
{{#ask:[[HasQuotedAuthor::{{PAGENAME}}]]
|?-Author of
}}
Author of
前面的减号表示反向特性。换言之,我们想展示作者已经写了这本书。我们也可以使用这个查询来创建一个类似于第一个列表的列表,只需隐藏第一列:
{{#ask:[[HasQuotedAuthor::{{PAGENAME}}]]
|?-Author of
|format=ul
|mainlabel=-
}}