2015-05-21 15 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上找到更多关于此的信息。