2013-05-02 92 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