2010-08-26 179 views
1

我最近安装了MediaWiki扩展Semantic MediaWiki。在这个扩展中,你可以定义属性。它们就像价值的分类。如果我定义两个属性是这样的:语义mediawiki属性计算

[StartYear :: 2000]] [[EndYear :: 2005]

是否有可能使基于这些特性的计算,如果我做了语义搜索。例如:

{{#ask:[类别:工程]] [[EndYear]] - [[StartYear] = 5 }}

得到与5年的持续时间的所有项目?

最好,UP

+0

我发现,你可以分配数据类型转换为属性。在这种情况下,我将数据类型编号分配给“EndYear”和“StartYear”,但它仍然不起作用。 – user366121 2010-08-26 11:18:43

回答

1

AFAICT,你不能做的计算中#ask查询,可以做计算,使用ParserFunction#expr:。它会,呃,复杂混合在一起,但它应该是可能的。评论你是否成功尝试了它,如果我有机会,我会用我发现的任何东西来编辑这个答案。

2

为此,您需要预先处理每个项目页面的时间间隔。

如果您使用的模板,你可以轻松地创建与下面的代码做到这一点:

[[Interval::{{#expr:{{{StartYear}}} - {{{EndYear}}}}}| ]] 

然后你就可以查询它是这样的:

{{#ask: [[Category:Project]] [[Interval::5]]}}