跳转到内容

维基教科书堆栈/历史

来自维基教科书,开放世界中的开放书籍

以下是维基教科书堆栈如何演变到其当前形式的概述。

第一个整体书籍目录是一组名为书架的页面,该目录在 2003 年维基教科书成立后几个月内启动。书架是手动维护的页面,主要包含书籍列表。书籍架集合的整体组织最初是一个名为所有书架的页面,于 2005 年移至项目空间(因此,维基教科书:所有书架)。2006 年,书架被分组到部门中,顶层页面重命名为维基教科书:部门。由于维基教科书,像其维基媒体姐妹一样,是一个大部分去中心化的志愿者项目,手动维护的中心目录往往不完整且过时,这些问题在 2006 年由社区讨论。[1]

另请参见:主题:按主题分类的书籍

主题命名空间于 2007 年 8 月下旬激活[2],主题层次结构逐渐取代了旧的书架。每个书籍主页都会有一个{{主题}} 模板调用,其参数将是书籍所属的最窄主题——根据建议,通常只有一个或两个。主题页面本身使用动态页面列表DPL),这是一个维基平台扩展,用于动态生成属于类别交集的页面的列表,该扩展于 2005 年为维基新闻(在那里列出满足各种标准的文章是一个普遍的需求)开发。这将每本书的维护负担分摊给各个书籍,使其成为每个书籍主页的一部分,在那里它会被对那些特定书籍感兴趣的用户注意到并承担,而不是依赖于对进行集中管理感兴趣的贡献者队伍不断增加;主题层次结构的日常维护所需的人工投入很少,这将与主题的数量成正比,而不是与书籍的数量成正比。

所有书籍

[编辑 | 编辑源代码]

书架越来越少使用,人们一直在讨论是否要废弃它们,转而使用主题页面;但是,人们仍然担心主题层次结构,即当一本书被归档到一个狭窄的主题下时,它不会出现在该狭窄主题所属的更大主题的主题页面上。这个问题在 2011 年下旬得到了解决[3],通过实施“所有书籍”类别,这些类别由已有的{{主题}} 模板调用自动填充。在这种安排下,当从主题空间外部转录主题页面时,它会响应一个包含其一个或两个父主题的列表,从而使其他页面——尤其是所有书籍类别页面和书籍主页——能够确定祖先。因此,书籍主页上的{{主题}} 模板可以推断出,鉴于要显式列出在书籍主页底部的狭窄主题,该主题的所有祖先是什么。

随着所有书籍类别的实施,提供了一种原始形式的半自动化,以帮助人工操作员维护系统。各种相互关联的页面中的每一个都会在其标准格式化模板中包含对系统中相邻页面的完整性检查,当某些内容看起来不正确时,页面会显示诊断消息,提供一个或多个“按钮”来启动人工操作员可能希望用于解决问题的各种编辑操作,并将自己归类到类别:需要关注 (所有书籍)中。

主题层次结构在那个时候的一些缺陷是

  • 主题页面无论多么有用和布局精美,如果您转到书籍主页的底部,维基平台为您提供的链接,尽管被称为“主题”,[4] 将链接到相关的主题类别,而不是主题页面本身,主题类别页面没有这种有用且布局精美的信息显示。
  • 书籍类别和主题类别之间的区别仍然令人困惑。
  • 如果一本书被归档到顶级主题中,该书将不会在任何地方被列出。顶级主题页面使用了不同的模板,{{根主题}} 而不是 {{主题页面}},以考虑这些主题没有指定的父主题,并且这些主题中的书籍数量可能太大,无法有意义地列出它们。作者被告知不要将书籍列入根主题,但这不是由半自动化来强制执行的,而且也不完全清楚它应该被强制执行,因为有时很难知道该把它们放到哪里。
  • 在内部,{{主题}} 模板使用了一种笨拙的技术来深度搜索列出主题的祖先——父主题的父主题的父主题等。维基平台谨慎地分配提供给维基标记的任何计算能力,以防止事故和恶意损坏(当然,包括故意生成服务器负载作为拒绝服务攻击)。这部分原因是模板不能调用自身;另一个原因是嵌套模板调用的总深度是有限的。{{主题}} 使用了一系列子模板;/0 将找到父主题,并为每个父主题调用/1/1 会执行相同的操作并调用/2 等等;如果这些模板中的一个发现它需要更深入,但序列中的下一个模板还不存在,它会将自己标记为需要人工操作员干预。然而,实际上,这会遇到平台对嵌套模板调用深度的限制。

2016 年,维基教科书类别基础设施进行了大修,最终目的是允许维基教科书为页面和书籍建立主题类别;特别是,为来自姊妹项目的传入主题链接提供合适的目标。[5] 由于这些包含页面的主题类别将成为与书籍类别和主题类别不同的第三组主要类别,而且仅仅是两种类别的存在已经引起了某种程度的混乱,因此大修从通过添加前缀主题:重命名主题类别开始——因此,类别:主题:数学 等等——并将书籍类别重命名为通过添加前缀书籍:。在此过程中,主题页面和主题类别也进行了修改,以允许类别请求从主题页面转录完整的显示;因此,当读者转到书籍主页的底部并点击显示主题:数学的链接时,他们将立即看到主题页面的完整显示,即使他们仍然在查看主题类别。

然而,一旦主题类别和书籍类别被重命名,在预期的包含页面主题的新类别中就出现了术语问题。显然需要一个前缀,其含义与书籍:主题:相比一目了然,但主题:本身就是一个相当模糊的前缀,它至少与现有的类别一样适用于新的类别。解决此术语问题的第一步是将前缀主题:在其所有上下文中替换为前缀书架:。由于顶级主题太大,不可能合理地称为“书架”,因此选择了前缀部门:来表示它们,回想起 2006 年的书架组织。

将新式部门和书架以及它们的所有相关机制分组到一本书中,使所有这些都更容易协调,因为维基教科书基础设施已经发展,特别是为了便于管理与一本书相关的页面星座。

给顶级分组一个不同的前缀,部门:而不是书架:,可以轻松防止书籍直接归档到部门中。模板 {{书架}} 替换了 {{主题}},它在语法上无法请求归档到部门中:参数名称为书架,省略了前缀。当书架与部门名称相同,默认情况下它被认为是“保留”的书架,并且仅列出直接归档到该书架名称下的书籍,例如 书架:数学;这可以通过在相同名称的部门中指定相同名称的书架不是保留的来覆盖。

正如主题层次结构利用了在原始书架系统建立时尚不存在的设施——DPLs,Wikibooks 架构利用了模板{{evalx}}和模块:TScope,它们是在(Wikinews)设计用于培养基于维基标记的自定义,通过涵盖大量特殊情况。除其他事项外,这些工具允许每个书架类别维护其所有祖先的列表,因此{{shelves}}不必进行深度嵌套查询来尝试组装此列表。每个书架将自己的祖先列表与其父级的祖先列表进行比较,从而检测到何时需要更新这些列表,并发出信号以供人工操作员干预(一种在 2011 年建立 allbooks 系统时设想但尚未在技术上可行的技术);这是一个(希望)可行的策略,因为预计书架层次结构只会随着时间的推移而非常缓慢地发生变化。

通过对话框,更便捷的半自动化正在筹划中,未来可能会极大地促进对该系统的维护。 ({{evalx}}和TScope被设计为对话框工具的辅助支持。)

参考资料

[编辑 | 编辑源代码]
  1. 有关这些日期,请参见Meta:WikibooksWikibooks:Departments 的修订历史记录Wikibooks:Bookshelves/Generation 2
  2. Wikibooks:Reading room/Technical Assistance, 2007 年 8 月 31 日.
  3. Wikibooks:Reading room/Proposals/2011/December#Category closures
  4. 默认标签“Category”/“Categories”可以在页面MediaWiki:Pagecategories中覆盖;此操作在 2007 年 10 月 30 日进行,并在 2019 年 6 月 7 日恢复默认值。
  5. Wikibooks:Reading room/Proposals/2017/July#Category infrastructure(注意主题是在 2016 年 6 月开始的)。
华夏公益教科书