ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Semantic MediaWiki

2022-03-30 16:31:07  阅读:235  来源: 互联网

标签:wiki Semantic 查询 MediaWiki 属性 页面


一、简介

SMW是什么呢?

它是Mediawiki的一个扩展,用于管理wiki中的结构化数据并查询该数据以创建动态表示:表格、时间线、地图、列表等。Mediawiki有助于搜索、组织、标记、浏览、评估和共享wiki的内容。传统的wiki只包含计算机既无法理解也无法评估的文本,而而SMW添加了语义注释,使wiki可以充当协作数据库。

二、语义属性

2.1 属性和语义网三元组

SMW的核心是所谓的属性,属性可以理解为“信息类别”,它们以机器可以理解的方式编码。如果在给定页面中使用属性+值,就会隐式创建一个所谓的三元组。

比如我们添加信息“Semantic MediaWiki和Semantic Forms”有关,我们就得到如下的三元组:

 

 

在Semantic MediaWiki中,我们通过向页面添加定义属性/值对的代码来创建三元组。因此,关于上边的例子:

- 这个页面(SMW)是我们用属性描述的subject

- Is related是属性的名字,是所谓的谓词,即上述的"predicate"

- Semantic Forms页面是属性的值,代表对象

对应的wiki代码如下

[[Is related to::Semantic Forms]]

与RDF的相似之处

在资源描述框架RDF中,类似以下的片段定义了相同的关系。

 

 

在某些方面,Semantic MediaWiki是RDF的Wiki等价物,页面的语义数据可以像这样导出为RDF:

[http://edutechwiki.unige.ch/en/Special:ExportRDF/Semantic_MediaWiki RDF feed]

2.2 属性类型

Semantic MediaWiki中的属性以面向对象编程类似的方式定义类型化数据,属性与[[property_name::property_value]]语法一起使用。默认情况下,属性的值是一个wiki页面,即属性的默认数据类型只是一个wiki页面。

MediaWiki  [[is a:: Wiki]]

以下示例显示了URL值,但是,这并不意味着Has Website的数据类型是一个URL。由于属性的默认值是wiki页面,因此我们必须明确地创建和编辑属性页面,如下所述:

[[Has website:: http://www.semantic-mediawiki.org/wiki/Semantic_MediaWiki]]

属性类型的数据类型

 

 

 

手动编码

每个属性都是通过属性命名空间中的一个页面定义的。要创建具有property_name和value的属性,只需在任何其他页面中使用如下语法:

[[property_name:: your_property_value]]

然后,键入属性。默认情况下,属性的类型为页面,即它将链接到普通的wiki页面。

要定义属性及其类型,有三种方法

(1a)用一个值创建一个属性实例,然后创建/手动编写属性页。

利用[[property_name:: your_property_value]]创建属性,或者使用模版创建

创建或编辑property:your_property页面,并且添加一个类型声明如下:

This is a property of type [[Has type::URL]].

(1b)使用Create with Form

原理相同,但它允许从下拉列表中选择数据类型。

(2)使用Special:CreateProperty

创建属性(包括其页面和类型声明)的最简单的方法是使用特殊页面中的表单。

2.3 显示属性

属性的显示方式取决于其类型和附加参数,默认情况下只会显示值,可以是简单的文本,也可以是链接。

非链接的值

我们定义了“has accronym”属性的数据类型为string,因此该值不会显示为wiki链接,下表显示了发生的情况:

 

2.4 注释值

 

2.5 查找属性

有几个选项可以帮助查找属性。

默认工具

使用 special:properties

3. 内联查询

Semantic Mediawiki包括用于语义搜索的查询语言,可以在三种情况下使用:

1. 通过Special:Ask页面的形式

2. 在所谓的concepts中,例如saved queries

3. 在内联查询中

大多数使用都是在内联查询中使用的。

查询通常定义三件事:

1. 要选择的页面

2. 要显示关于这些页面的哪些信息

3. 结果应该如何去格式化

内联查询动态包括查询结果,如下例所示。此功能是通过所谓的解析器功能实现的。

#ask函数采用许多参数,特别是:页面选择、要显示的信息以及如何显示。

#show函数显示单个页面的信息,即它是#ask函数的一种快捷方式。

一个简单的查询将列出一个类别中的所有代码。以下代码:

{{#ask: [[Category: MediaWiki extension]]}}

会产生如下结果:

 

 

3.1 简单查询

根据定义,各种查询子句与AND运算符组合

以下代码选择“软件信息”类别中的所有页面,其中属性“Is developed by”包含属性值“Yaron Koren”:

 

输出结果如下:

 

我们也可以使用通配符,例如,如果我们想列出所有包含“Is Developed by”属性的页面,我们将使用以下的表达式:

 

输出结果如下:

 

3.2 查询语法

粗略地说,#ask的语法如下:包括三组信息

 

 

 

默认情况下,查询将返回一个列表wiki页面,即不告诉显示哪些其他信息以及是否应该跳过页面本身。

搜索条件(子句)可以包括属性/值(包括通配符和比较器)、类别和其他一些东西。此外,可以使用析取(或)。

3.2.2 在类别和页面中搜索

要在一个类别和所有子类别中搜索,只需要使用正常的wiki语法,例如:

仅包含此条件的查询将返回MediaWiki扩展中的所有页面。例如,查询{{#ask: [[Category: MediaWiki extension]]}}将产生这个列表:Maps (MediaWiki extension) , Mediawiki collection extension installation , Page Forms , Semantic Drilldown , Semantic Forms Inputs , Semantic Maps , Semantic MediaWiki , Semantic Result Formats , VisualEditor

3.2.3 搜索属性值

属性条件可以采用多种形式,即定义一个值,使用通配符或包含比较器。

简单的属性值搜索

要搜索具有给定值的属性,请使用普通的属性语法,例如:

 

查询{{#ask: [[Developed with::MediaWiki software]]}}得到的结果是页面的列表:CS4CSTranscribe Bentham

通配符

使用+表示通配符

该查询{{#ask: [[Supports languages::+]]}}生成页面列表:Maps (MediaWiki extension) , Mediawiki , Mediawiki collection extension installation , Page Forms , Semantic Drilldown , Semantic MediaWiki , Some software

比较器

比较器作用于属性值,它们被放置在属性条件中的“::”之后。

 

 

 

 

查询{{#ask: [[Was last edited::>1 September 2013]]}}得到的结果是页面列表Semantic MediaWikiSemantic Result FormatsVisualEditor

查询{{#ask: [[Has field of science::~bio*]]}}查询结果为: BudburstNotes from NaturePlankton PortalWorm Watch Lab它将返回Has field of science属性至少包含一个“bio”的页面。下面的表格列出了找到的属性值:

 

 

3.2.4 子查询

使用附加属性进行查询

3.3 显示结果

默认情况下,包含多个要显示的属性的结果显示为表格,下面的代码选择了与上面相同的页面,但也显示了最后的修订号值。

 

得到的结果如下:

 

语义结果格式允许生成图形,以下显示了Yaron Koren被定义为开发者以及其他开发者参与的所有页面。

 

得到如下的结果:

 

3.4 查询运算符

SMW查询可以包括比较器并允许OR(析取)

3.5 故障排除

使用调试选项测试#ask表达式

 

 

请注意,默认情况下内联#ask仅返回50个结果,使用limit=..参数来改变它。

4 特殊性质和复合数据

4.1 特殊属性

特殊属性由系统自动生成,具有各种功能。默认情况下,这些属性尚未定义。为了使用他们,我们建议一下步骤:

1. 使用Special:Properties列出所有的属性

2. 将鼠标悬停在红色连接上,维基会判断它是否是特殊属性

3. 点击红色链接

4. 用表格创作

5. 选择type=text

4.2 复合数据

SMW采用基于页面的方法,这使得“老师拥有三个香蕉”之类的数据变得困难,即他“有香蕉”和“他有三个”。可以使用子对象或语义内部对象来处理这个问题,二者具有相同的语法,但工作方式不同。

 

标签:wiki,Semantic,查询,MediaWiki,属性,页面
来源: https://www.cnblogs.com/lbwBH/p/16074435.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有