2015-05-21 51 views
1

我正在處理用戶主持的數據庫,並將其作爲引擎與Semantic MediaWiki一起定居在MediaWiki上。我安裝了語義表單來強制最終用戶在創建或編輯條目時符合特定標準。問題在於,由於用戶可以將語義符號添加到任何形式的文本輸入中,所以它可以拋棄系統的正確結構,即,如果它是IMDB克隆,則用戶可以添加[[Directed by:Forest Gump]],這將導致電影「森林阿甘「出現在董事名單之下。如何禁用Semantic MediaWiki Forms中的文本區域中的語義符號?

我懷疑是否有任何設置可以簡單地關閉或關閉,但我已經對如何使其工作有一兩個想法。

一個,也許有一種方法來禁用特定命名空間上的語義符號並將這些形式放在這些命名空間上。我有一種感覺,認爲這會導致這些表格只能被打破。

另一個想法是修改代碼。這顯然是不太理想的做法。要開始,我相信我需要在SFTextAreaInput上創建某種過濾器,這會禁用用戶插入文本的語義符號,但是,我不確定如何開始。

回答

1

那麼,Semantic MediaWiki仍然是一個Wiki。在您的古典企業數據庫中,您將用戶的輸入選項限制爲確保數據完整性的一種手段。這不是維基所做的事情;用維基百科的想法是,用戶可以輸入不正確的信息,但另一個用戶會修改它,讓第一個用戶知道什麼是錯的。

我不會試圖強制SMW進入剛性數據採集。我的意思是,你有選擇,如在形式去除standard input領域:

'''Free text:''' 

{{{standard input|free text|rows=10}}} 

如果用戶選擇動畫頁面時,他們應該選擇一個導演頁面,那麼你可能想通過填充來鼓勵正確的選擇從董事類別,如表單控件:

{{{field|Director|input type=combobox|values from category=Directors}}} 

是的,他們仍然可以走得很遠以他們的方式來選擇「阿甘正傳」,但如果出現這種情況則是,有人故意規避預選正確的選項比系統允許的事實更迫切。

當系統鼓勵而不是強制實施有效的知識時,Wiki最適合。

1

我叫沃爾夫岡·法爾我是smartMediaWiki方法的幕後人。你可能想去smartMediaWiki路線 看到

一開始不按屬性值,但如只是去也由一個類別。

{{#ask: [[Category:Movie]] [[Directed by::+]] 
|?Directed by 
}} 

將只顯示同時具有屬性集和正確類別的頁面。

在smartMediaWiki方法中,您將創建一個主題「電影」,並通過表單完成電影的輸入。這是最近發展起來的SemanticForms和語義PageSchemas概念的詳細闡述。您可以在今年秋季的SMWCon Barcelona 2015上找到更多關於此的信息。