我正在开发一个用户管理的数据库,并使用Semantic MediaWiki作为引擎确定MediaWiki。我安装了语义表单以强制最终用户在创建或编辑条目时符合某个标准。问题在于,由于用户可以向任何表单文本输入添加语义符号,因此它可以抛弃系统的正确结构,即如果它是IMDB克隆,则用户可以添加[[Directed by:Forest Gump]]
,这将导致电影"森林阿甘"出现在董事名单之下。
我怀疑是否有任何设置可以简单地关闭或打开,但我已经有一两个关于如何使其工作的想法。
其中一种方法可能是在特定名称空间上禁用语义表示法并将表单放在这些名称空间上。我有一种感觉,这将导致形式只是打破。
另一个想法是修改代码。这显然是不太理想的方法。首先,我认为我需要在SFTextAreaInput
上创建某种过滤器,这将禁用用户插入文本的语义符号,但是我不确定如何开始使用它。< / p>
答案 0 :(得分:1)
嗯,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最有效。
答案 1 :(得分:1)
我的名字是Wolfgang Fahl我支持smartMediaWiki方法。您可能想要使用smartMediaWiki路线 见
首先,不要仅仅根据属性值,例如也是一个类别。
{{#ask: [[Category:Movie]] [[Directed by::+]]
|?Directed by
}}
仅显示同时具有属性集并且属于正确类别的页面。
在smartMediaWiki方法中,您将创建一个主题“电影”,电影的输入将通过表单完成。这是最近发展的SemanticForms和Semantic PageSchemas概念的详细说明。您可以在今年秋季的SMWCon Barcelona 2015上找到更多相关信息。