Status: | effective |
Progress: | 100% |
Version: | 1.0+ |
排除故障
Template:Interlanguagelink: en
排除故障 | |
---|---|
Property "Has description" (as page type) with input value "Explains various common problems when running Semantic MediaWiki and how to fix them." contains invalid characters or is incomplete and therefore can cause unexpected results during a query or annotation process. | |
Table of Contents | |
本页面解释的是各种常见的运行Semantic MediaWiki时的问题及其解决办法。本列表之中未收录的问题可能已被SMW的支持机构解决,或者可能是您所希望上报的软件缺陷。
数据库错误:未知/不存在的数据表
- Previewing or storing articles with semantic properties causes database errors.
- 对带有语义属性的文章的预览或存储引起了数据库错误。
最有可能的情况就是,您的数据库没有进行正确的初始化。有关说明,请参见您的维基站点上的SMW管理员页面Special:SMWAdmin。如果全部失败,当您已经存储了标注的时候,请依次运行维护脚本:
php SMW_refreshData.php -vfp
和
php SMW_refreshData.php -v
数据错误或不完整
- 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数据库表的生成采用是不同的设置。要修复这个问题,请首先尝试运行维护脚本:
php SMW_refreshData.php -vfp
之后再运行:
php SMW_refreshData.php -v
如果该方法没有奏效,则需要检查您的数据库的校对规则/字符集(collation/character set)设置。
为此,可采用数据库前端工具来完成或执行如下的SQL命令:
SHOW CREATE TABLE tablename;
查看比如数据库表"categorylinks"的校对规则/字符集,并如MySQL手册所述,将您的数据库的默认校对规则/字符集变更为这些设置。最后,再次运行前面所说的那些维护脚本。
非英语语言失败
- In my non-English installation, properties don't work even when I follow the examples.
- "在我的非英语安装里,属性都不起作用,即便是我依照那些示例来做。"
尽管SMW通常提供英文别名,您也可能需要对特殊属性和命名空间使用本地化名称。对于每种语言,翻译后的字符串和别名位于语言(languages)子目录当中。
在LocalSettings.php之中添加如下设置语句可能会起作用:
setlocale( LC_ALL, "en_US.UTF-8" );
页面空白或不完整
- After installing SMW, some or all pages are not displayed at all, or just incompletely.
- "在安装SMW之后,某些或所有页面根本不显示,或者只是不完整。"
这通常是因为某些网站上的限制性的内存默认设置所造成的,而并不是直接由SMW所造成的(任何额外的扩展代码都可能会造成这个问题)。在LocalSettings.php之中,取消对如下行的注释,并可能要按照您的需求调整其中的取值:
ini_set( 'memory_limit', '20M' );
大于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或更大的数值。