1

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

解释了如何在Semantic MediaWiki中进行查询

{{#ask:
 [[Category:City]] [[Population::+]]
|?Population
|format=table
}}

是此类查询的示例。

现在有一个列显示运行索引/rowid 会很好,如下 所示

怎么可能做到这一点?

4

1 回答 1

0

我看了你想要的答案的模型。比 rowid 更具体地说,第一列中的数字实际上是城市名称的字母升序排列,因为即使表格被其他列使用,这些行也会保留它们的数字。所以继续这个假设,是的,有一种黑客的方式来实现这一点。

hackish 的解决方案是 hackish 的原因有很多,其中之一是它假设您希望查询返回的页面使用模板。在该模板中,您要设置 2 个属性。

第一个属性类似于

[[CityName::{{FULLPAGENAME}}]]

我们想要这样做的原因是将页面标题放在 SMW 可以使用的属性中。为什么现在会变得明显。

第二个属性看起来像这样:

[[CityAlphaRank::{{#ask: [[CityName::<{{FULLPAGENAME}}]] | format=count}}]]

该行的作用是,它按字母顺序计算当前页标题(包括当前页标题)之前有多少页标题并输出该数字。又名字母排序。

剩下的唯一事情就是修改您的查询,以便它使用这两个新属性。可能看起来像:

{{#ask:
 [[Category:City]] [[Population::<300000]]
|mainlabel=-
| ?CityAlphaRank
| ?CityName
| ?Population
| format=table
}}

请注意,这让我觉得丑陋和骇人听闻,在设计这个解决方案时,我设法从我的测试系统中哄骗了很多死亡的白色错误页面。因此,这个解决方案很可能是非常不可取的,但它确实有效。:)

于 2015-11-23T23:00:57.527 回答