2013-05-02 57 views
0

(我有点新的整个语义Mediawiki的事情,已经为淘一些线索在网络上这个小项目我做的)语义链接到MediaWiki:通过查询定义派生属性

我如何请去定义从Semantic Mediawiki中的其他属性派生的属性。假设我已经创建了SMW课程并将提供有关课程进度的详细信息(即当前页面/页面总数(%))。

我读到这里有一个额外的SUBPAGES属性存在的语义特殊特性扩展。这会有帮助吗?我猜我可以用#ask或者某种排序来检查我整个课程的子页面。

任何进一步(更好)的想法?

回答

0

您可以使用#ask查询来定义语义属性。这里有一个例子,我的一个维基正在按照您所描述的方式进行操作,显示出一个数字,然后显示总人口的百分比。在这种情况下,我首先定义了两个变量,只是为了使代码更具可读性,并且因为我需要两次website_count值,所以我避免了第二个查询。

{{ 
#vardefine: website_extension | 
    {{#ask: [[Has extension::{{FULLPAGENAME}}]] | format=count }} 
}}{{ 
#vardefine: website_count | 
    {{#ask: [[Category:Website]] [[Is validated::True]] [[Is active::True]] [[Collect extension data::True]] | format=count }} 
}} 
[[Has website count::{{#var:website_extension}}]] ([[Has website percent::{{#expr: (({{#var: website_extension}}/{{#var: website_count}}) * 100) round2 }}]]%) 

子对象和语义附加特殊属性不需要任何这些。

+0

嗨杰米感谢您的帮助!然而在你的情况下,如果我正确地解释代码,你实际上并没有计算你的网站的位置。有没有什么方法可以确定一个维基页面的位置,比如说一组拥有特定属性的页面,按照特定的用户定义索引排序?我猜想把页面“分组”在一起并不困难,但是要为每个页面定义一个唯一的索引,然后可以整齐地更改而不会发生冲突,这就是挑战......或者我只是不知道我是如何绕过Semantic MW的。 – mercurial 2013-05-08 09:52:39

+0

对不起,我没有意识到你正在寻找一个订单。它实际上听起来像你在寻找一个排名?此项目是第15个100?然后你可以得出你的百分比。为此,只需做一次上述计数,但为订单添加测试。例如'{{#ask:[[Has extension :: {{FULLPAGENAME}}]] [[已排序字段::> {{#var:some_value}}]] | format = count}}'。我实际上是在[模板]上完成这个工作(http://wiki.planetkubb.com/w/index.php?title=Template:Team&action=edit),搜索“有团队排名”。 – 2013-05-16 19:28:50