Help:故障处理

本页面解释的是各种常见的运行Semantic MediaWiki时的问题及其解决办法. 本列表之中未收录的问题可能已被SMW的支持机构解决，或者可能是您所希望上报的软件缺陷.

数据库错误：未知/不存在的数据表

 * Previewing or storing articles with semantic properties causes database errors.
 * 对带有语义属性的文章的预览或存储引起了数据库错误. 

最有可能的情况就是，您的数据库没有进行正确的初始化. 有关说明，请参见您的维基站点上的SMW管理员页面Special:SMWAdmin. 如果全部失败，当您已经存储了标注的时候，请依次运行维护脚本： 和

数据错误或不完整

 * Data has been entered and shows up in the Factbox, but it is not shown when using Special:Browse.
 * 数据已经录入且可以显示在事实框Factbox当中，但在使用语义属性浏览页面Special:Browse时不显示. 


 * Semantic queries do not return the expected results.
 * 语义查询不返回预期的结果. 

SMW所使用的数据有可能没有与您的维基站点之中的页面内容实现同步. 要核对这一点，请编辑一个受影响的页面，然后采用Special:Browse来查看其数据现在是否正确. 要自动修复所有的页面，请阅读Help:修复SMW数据. 如果这不是您遇到的问题，请查看下一项.

自定义命名空间上缺失数据

 * Data entered on pages in my custom namespace (e.g. "Portal:") is ignored, and queries do not show any pages of my custom namespace.
 * 在我的自定义命名空间（如"Portal:）之中的页面上所录入的数据被忽略，因而查询不显示我的自定义命名空间的任何页面. 

请确认$smwgNamespacesWithSemanticLinks之中列出了您的自定义命名空间 详情请阅读SMW_Settings.php. 如果这个办法不行，请检查您是否利用$smwgNamespacesWithSemanticLinks，把查询限制到了特定的命名空间.

数据库错误：非法校对规则

 * When issuing semantic queries, I receive database errors that talk about some "illegal collation". Otherwise storing of annotations seems to work.
 * 当发出语义查询时，我收到若干关于某一"非法校对规则"的数据库错误. 在其他情况下，则对标注的存储看上去奏效. 

您的MediaWiki和SMW数据库表的生成采用是不同的设置. 要修复这个问题，请首先尝试运行维护脚本： 之后再运行： 如果该方法没有奏效，则需要检查您的数据库的校对规则/字符集（collation/character set）设置. 为此，可采用数据库前端工具来完成或执行如下的SQL命令： 查看比如数据库表"categorylinks"的校对规则/字符集，并如MySQL手册所述，将您的数据库的默认校对规则/字符集变更为这些设置. 最后，再次运行前面所说的那些维护脚本.

非英语语言失败

 * In my non-English installation, properties don't work even when I follow the examples.
 * "在我的非英语安装里，属性都不起作用，即便是我依照那些示例来做. "

尽管SMW通常提供英文别名，您也可能需要对特殊属性和命名空间使用本地化名称. 对于每种语言，翻译后的字符串和别名位于语言（languages）子目录当中.

在LocalSettings.php之中添加如下设置语句可能会起作用：

页面空白或不完整

 * After installing SMW, some or all pages are not displayed at all, or just incompletely.
 * "在安装SMW之后，某些或所有页面根本不显示，或者只是不完整. "

这通常是因为某些网站上的限制性的内存默认设置所造成的，而并不是直接由SMW所造成的（任何额外的扩展代码都可能会造成这个问题）. 在LocalSettings.php之中，取消对如下行的注释，并可能要按照您的需求调整其中的取值：

大于100M几乎没什么用处，但对于某些情况下的大型页面，可能会需要50M左右的数值.

大型查询无明显原因中断

 * In case I try to run queries with a lot of printout statements (> 7) Special:Ask abandons the entries I have made.
 * "当我试图运行带有大量打印输出语句的查询时（> 7），语义搜索页面Special:Ask会抛弃我已经完成的那些条目. "

最为可能的情况就是，当前您的工作环境采用的是Suhosin，仅仅支持较小的URL长度限值. 这就意味着，当某个URL超过该限值的情况下，就会对该请求进行分拆，从而造成查询故障. 要解决该问题，必须在您的服务器上的文件php.ini当中，把变量"suhosin.get.max_value_length"的取值设为1024或更大的数值.