我正在研究一个用户管理的数据库,并在MediaWiki上定居,使用Semantic MediaWiki作为引擎。我安装了Semantic Forms,以迫使最终用户在创建或编辑条目时遵守一定的标准。问题是,由于用户可以在任何形式的文本输入中添加语义符号,它可能会偏离系统的适当结构,例如,如果它是IMDB克隆,用户可以添加[[Directed by:Forest Gump]]
,然后导致电影"阿甘正传"显示在导演列表下。
我怀疑是否有任何设置可以简单地关闭或打开它,但我有一两个关于如何使其工作的想法。
第一,也许有一种方法可以禁用特定名称空间上的语义符号,并将表单放在这些名称空间上。我有一种感觉,这将导致形式只是打破。
另一个想法是修改代码。这显然是一种不太理想的方法。要开始,我相信我需要在SFTextAreaInput
上创建某种过滤器,它将禁用用户插入文本的语义符号,但是唉,我不确定如何开始。
嗯,Semantic MediaWiki仍然是一个Wiki。在传统的企业数据库中,限制用户的输入选项是确保数据完整性的一种手段。这不是维基所做的;使用wiki的想法是,是的,用户可以输入错误的信息,但是另一个用户会修改它,并让第一个用户知道哪里出错了。
我不会试图强迫SMW进行严格的数据采集。我的意思是,你有选项,如删除standard input
字段的形式:
'''Free text:'''
{{{standard input|free text|rows=10}}}
如果用户在选择导演页面时选择了电影页面,那么您可能希望通过填充来自导演类别的表单控件来鼓励正确的选择,例如:
{{{field|Director|input type=combobox|values from category=Directors}}}
是的,他们仍然可以选择"阿甘正传",但如果发生这种情况,那么有人故意绕过预先选择的正确选项的事实比系统允许的事实更紧迫。
当系统鼓励而不是强制有效知识时,wiki工作得最好。
我是Wolfgang Fahl,我是smartMediaWiki方法的幕后推手。你可能想走smartMediaWiki的路线看到
- http://semantic-mediawiki.org/wiki/SMWCon_Spring_2015/smartMediaWiki
首先,不要只看属性值,也要看类别。
{{#ask: [[Category:Movie]] [[Directed by::+]]
|?Directed by
}}
将只显示既设置了属性又在正确类别中的页面。
在smartMediaWiki方法中,您将创建一个主题"电影",并且电影的条目将通过表单完成。这是最近发展起来的语义形式和语义PageSchemas思想的细化。你可以在今年秋天的巴塞罗那SMWCon 2015上找到更多相关信息。