1

我正在开发一个用户管理的数据库,并以 Semantic MediaWiki 作为引擎选择了 MediaWiki。我安装了 Semantic Forms 以强制最终用户在创建或编辑条目时遵守某个标准。问题是,由于用户可以向任何表单文本输入添加语义符号,它可能会破坏系统的正确结构,即如果它是一个 IMDB 克隆,用户可以添加[[Directed by:Forest Gump]]这将导致电影“Forest Gump”显示在董事名单下。

我怀疑是否有任何设置可以简单地关闭或打开它,但我对如何让它工作有一个或两个想法。

一,也许有一种方法可以禁用特定名称空间上的语义符号并将表单放在这些名称空间上。我有一种感觉,这将导致表单只是破坏。

另一个想法是修改代码。这显然是不太理想的方法。要开始,我相信我需要创建某种过滤器SFTextAreaInput来禁用用户插入文本的语义符号,但是我不确定如何开始。

4

2 回答 2

1

好吧,Semantic MediaWiki 仍然是一个 Wiki。在您的经典企业数据库中,您限制用户的输入选项以确保数据完整性。那不是 wiki 所做的。wiki 的想法是,是的,用户可以输入不正确的信息,但是另一个用户会修改它并让第一个用户知道哪里出了问题。

我不会试图强迫 SMW 进行严格的数据采集。我的意思是,您确实可以选择删除standard input表单中的字段:

'''Free text:'''

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

如果用户在应该选择导演页面时选择了电影页面,那么您可能希望通过填充导演类别的表单控件来鼓励正确选择,例如:

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

是的,他们仍然可以不遗余力地选择“阿甘正传”,但如果发生这种情况,那么有人故意绕过预先选择的正确选项这一事实比系统允许这样做更紧迫。

当系统鼓励而不是强制执行有效知识时,Wiki 工作得最好。

于 2015-06-06T17:36:27.923 回答
1

我叫 Wolfgang Fahl,我支持 smartMediaWiki 方法。你可能想去 smartMediaWiki 路线看

首先,不要只看属性值,还要看类别。

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

只会显示同时设置了属性并且属于正确类别的页面。

在 smartMediaWiki 方法中,您将创建一个主题“电影”,电影的输入将通过表单完成。这是对最近发展的 SemanticForms 和语义 PageSchemas 理念的阐述。您可以在今年秋天的 2015 年巴塞罗那 SMWCon 上找到更多相关信息。

于 2015-06-24T13:07:54.650 回答