Semantic MediaWiki
Semantic MediaWiki | |
---|---|
| |
简介 | 一个 MediaWiki 扩展 |
网站 | semantic-mediawiki.org |
语义媒体维基(Semantic MediaWiki,简称 SMW)是 MediaWiki 的一个扩展,它为传统的百科式条目引入了“语义层”。通过在页面中添加架构化属性,SMW 让知识不再仅仅是文本,而是可以被计算机理解、查询和重用的数据[注 1][1][2]。这种语义化能力使得 MediaWiki 不仅能作为内容管理系统,还能发展成轻量级的知识图谱与数据平台。无论是个人知识库、学术项目,还是企业内部的信息管理,SMW 都能提供强大的数据建模、查询和可视化支持。
SMW 的基本概念
SMW 的核心思想是通过“语义属性(Properties)”对页面内容进行标注,从而使维基既是知识库,也是数据库。
语义属性(Properties)
语义属性 是 SMW 中最基本的构建模块。
- 在条目中,编辑者可以为某个主题添加属性及其值,例如:
- 条目 Python 可以被赋予属性
条目类型::编程语言
- 条目 深圳 可以被赋予属性
所在国家::中国
- 条目 Python 可以被赋予属性
- 属性的形式类似于“键-值对”,其中“键”是属性名称(Property),而“值”可以是字符串、数值、日期、地理坐标,甚至是指向其他条目的链接。
- 通过属性,条目的信息不再只是自然语言文本,而是能被计算机理解和处理的结构化数据。
SMW 允许用户预先定义属性的类型(例如文本、数字、布尔值、页面链接等),以确保数据的一致性和可查询性。
分类(Categories)与概念(Concepts)
在 SMW 的语义框架中,“分类(Categories)”和“概念(Concepts)”是两个用于组织和分组条目的不同机制。二者各有定位与用途,理解它们的差异与协作方式对构建语义知识库非常关键。
分类(Categories)
分类是 MediaWiki 的原生功能[3],不是 SMW 特有的。SMW 扩展并不“重写”分类系统,而是沿用并兼容 MediaWiki 的分类机制:
- 在普通 MediaWiki 中,用户可以在页面中添加
[[Category:某分类]]
,将页面归入某个分类[注 2]。此分类会自动生成一个分类页,列出所有归入该分类的页面。 - 在 SMW 中,依然可以对条目使用分类标签,SMW 并不会屏蔽或替代这个功能。
- SMW 强化了 分类与属性/查询 的协同关系:分类既可以作为一种粗粒度的组织方式,也可以在语义查询中作为一种条件(如
[[Category:信息技术]]
)用来过滤页面。 - SMW 文档[4]中是这么说的:
“Categories 是 MediaWiki 提供的分类内容的方式。SMW 推荐在一个领域 (domain) 内使用分类 (classes),而在分类的成员 (instances) 上使用属性 (properties) 来描述细节。”
- 分类可以有层级关系(子分类 / 超分类),用于建立粗粒度的组织结构。
因此,分类主要用于 大型主题 / 类别划分 或 人为分组,对于快速粗略组织条目的作用仍然重要。
查询(Semantic Queries)的基本原理
SMW 的另一大核心功能是 语义查询。
- 查询的目标是,基于语义属性,从维基中提取结构化信息。
- 最常用的查询语法是
#ask
解析器函数。例如: {{ #ask: [[条目类型::wiki 站点]] | ?站点链接 | format=table | limit=10 | mainlabel=站点名称 }}
- 这个查询会返回“一个呈现 wiki 站点的表格,首列标题为站点名称,第二列标题为站点链接,表格项数限制为 10 项”[注 3]。
语义查询的特点:
- 基于条件过滤:用户可以根据属性和值筛选条目
- 可视化展示:查询结构可以以表格、列表、地图等多种形式呈现。
- 动态更新:当条目数据发生变化时,所有依赖的查询结构会自动刷新,保持一致性
通过语义查询,SMW 将一个普通的维基转变为强大的信息检索系统,能够支持类似数据库的功能。