跳到内容

wikimedia/mediawiki-extensions-WikibaseMediaInfo

WikibaseMediaInfo是对维基数据库添加用于处理有关多媒体文件的结构化数据的MediaInfo实体。

扩展插件挂接到文件页面。它存储补充元数据关于[MediaInfo中文件的(标题和描述语句)实体](#MediaInfo实体(M-item))。用户可以查看、创建、编辑和删除这些数据。

要求

系统级依赖项

  • 弹性搜索*(请参见在这里有关如何安装的更多信息)
  • 节点.js v6用于开发期间的测试。节点依赖关系将是一旦我们的CI系统能够支持,升级到更新的LTS版本。

MW扩建

必须在之前安装和配置以下MediaWiki扩展安装WikibaseMediaInfo:

搜索功能

WikibaseMediaInfo添加了一些新的搜索功能。要使用它们,您需要安装并配置以下与搜索相关的扩展:

UploadWizard功能

WikibaseMediaInfo还为上载向导扩展,但不是必需的。

安装

正确设置CirrusSearch和Wikibase后,通过添加wfLoadExtension(“WikibaseMediaInfo”);以及所需的配置变量到本地设置.php.

你可能需要跑步composer安装在扩展目录中,或在如果您使用的安装程序将所有扩展的依赖项合并到MediaWiki的供应商目录中。

安装后设置

描述财产

Wikibase的一个基本构建块是声明.这个声称由给定语句生成有两个基本部分,属性。目前,WikibaseMediaInfo支持具有单一属性:描述属性。

如果您在本地开发环境中运行此扩展,您将需要为此属性添加Wikibase记录。最简单的方法是:

  1. 引导到特殊:NewProperty
  2. 添加标签设置为的项目描述。确保将数据类型设置为项目.
  3. 更新您的本地设置.php文件,以便描述属性已设置到您刚刚创建的属性的ID:
$wgMediaInfoProperties=[“descriptions”=>“P123”,];

实体

为了向语句中添加值,您还需要将Entity项添加到您的本地Wikibase实例。这可以在以下位置手动完成:特殊:NewItem,或使用WikibaseImport脚本(见下文)。

Wikibase导入

您可以选择使用非官方Wikibase导入扩展到自动化从另一个Wikibase实例(例如Wikidata)。有关更多信息,请参阅该项目的自述文件。

联邦

待定

更少的变量

由于Wikimedia UI基本变量不在核心中,所以我们需要将它们作为一个包依赖项,然后使用shell脚本将它们复制到图书馆目录。收件人更新基本变量,需要package.json中的新版本并安装然后跑npm运行build-lib将更新的文件复制到图书馆.提交更新了个文件。

我们将基本变量包含在自定义变量文件中,资源/mediainfo-variables.less。要在其他文件中使用它们,请包括mediainfo-variables.less媒体变量而不是直接包含基本文件本身。

配置

扩展配置变量是一组键值对。他们是详细记录在WikibaseMediaInfo/extension.json.配置变量应添加到本地设置.php。以下配置选项可用于此扩展:

变量 示例值 违约 笔记
$wgMediaInfoProperties($wgMedia信息属性) [“描述”=>“P123”] {} 要显示的默认WB属性(例如“描述”)
$wgMediaInfoHelpUrls($wgMedia信息帮助URL) [“P1”=>“https://commons.wikimedia.org/wiki/Special:MyLanguage/commons:描述' ] {} 链接到页面以了解有关wikibase属性的更多信息
$wgUploadWizardConfig[“wikibase”][“enabled”] 真/假 UploadWizard功能标签
$wgUploadWizardConfig[“wikibase”][“字幕”] 真/假 上载向导功能标志
$wgUploadWizardConfig[“wikibase”][“statements”] 真/假 UploadWizard功能标签

媒体信息词汇表

属性(P项)

属性用于对文件进行分类或描述。它在中有一个唯一的id表单中的wikibasePxxx公司例如第123页。文件属性的示例有“descriptes”(图像是什么)、“resolution”、“created by”、,“许可证”。

项目(Q-项目)

项目是概念、主题或对象。它由中的唯一id表示表格Qxxx公司例如,在Wikidata上,地球是项目第2季度CC0许可证是问题6938433.

索赔

关于由键值对(通常是属性-项目),例如许可证=CC-By-SADepicts=狗.索赔已存储简单地作为字符串,根据需要使用属性id和项id。对于例如,描绘一只黑猫的图像可能有这样的说法descriptions=猫(颜色=黑色).

标题

描述媒体文件及其语言的短文本。这是用过的向WikibaseMediaInfo提供文件的简短描述(与wikibase中的“标签”)。

MediaInfo实体(M-item)

包含媒体文件结构化数据的Wikibase实体。它是存储在文件页面的插槽中包括

  • Mxxx格式的ID,其中xxx是关联wiki页面的ID
  • 任意数量的标题
  • 任何数量的索赔

(注意:如果没有标题或索赔数据,则实体不会存储在数据库-在这种情况下,实体被称为“虚拟实体”)

限定符

限定符是修改主声明的辅助声明。例如图片的前景可能是一棵树,背景可能是大海哪种情况下可能有2个与之相关的“描述”索赔-“descriptes=树(应用于部分=前景)”和“descripts=海(应用于part=背景)'。

MediaInfo用户界面

MediaInfo实体显示在其关联的文件上,并且可以从中进行编辑第页。标题和索赔分别显示,索赔分为“描述”索赔和“其他”索赔。

搜索

按标题搜索

用户可以像搜索一样,通过MediaInfo标题搜索文件为了其他任何事情。例如,如果用户上传埃菲尔铁塔的图片,并以多语种进入“Tour Eiffel”(法语)和“Eiffel-Tower”(英语)文件标题,另一个用户可以搜索“埃菲尔铁塔”或“游览埃菲尔”。

搜索单个索赔

假设[“史诗”:“P1]是媒体信息属性

要搜索索赔,请使用haswb语句关键字。例如,要搜索使用Mont Blanc(Q583)搜索图像haswb语句:P1=Q583.

搜索索赔也可以使用限定符。例如,搜索图像背景是勃朗峰(Q583)(Q13217555),其中P518为地产“适用于部件”使用:

haswb语句:P1=Q583[P518=Q13217555]

同时搜索多个索赔

可以使用逻辑OR在单个搜索关键字中使用管道字符|例如,描述猫(Q146)或狗(Q144)罐头的文件使用找到

haswb语句:P1=Q146 | P1=Q144

通过使用两个单独的搜索关键字,可以使用逻辑AND组合声明。例如,可以使用以下命令找到描述猫和狗的文件:

haswb语句:P1=Q146 haswb语句:P1=Q144

搜索带有数量限定符的索赔

要搜索包含数量的索赔,请使用wb结算数量关键字。例如,描述2个人(Q5)的文件可以通过以下方式找到:

wb语句数量:P1=Q5=2

比较运算符>,>=,<<=也可以使用,因此搜索对于描述2人以上的文件,可以使用以下命令找到:

wb语句数量:P1=Q5>2

搜索一系列值

可以使用两个wb报表数量关键字。对于例如,要查找描述2到5个人(Q5)的文件,请使用:

wb语句数量:P1=Q5>=2 wb语句质量:P1=Q 5<=5

搜索实施

保存“文件”页面时,以下MediaInfo数据将写入Elasticsearch索引(所有示例都使用Wikidata属性和项目ID):

  • 每种语言的字幕数据都存储在打开_文本领域

  • 索赔以以下格式存储propertyID=值作为中的数组元素语句关键字使用wikibase属性ID(和项目ID,如果值是一项)

    例如,“描述家猫”存储为P1=问题146

  • 带有限定符的声明存储在语句关键字字段以及格式中的限定符属性ID=值[限定符属性ID=限定符值].

    例如,蒙娜丽莎的画(维基数据条目Q12418)描绘了一片天空(Q13217555)(Wikidata属性P518)。如果我们安排的话Wikibase声明中的数据应该是:“描绘天空,应用于部分背景”,将存储为P1=Q12418[P518=Q13217555]

    注意,带有限定符的索赔也存储在没有限定符的情况下增加它们的可发现性。例如,如果有人输入了上面的claim-plus-qualifier,索赔P1=Q12418也会被存储,因此可以通过单独搜索“descriptions sky”以及搜索“描绘天空,应用于部分背景”。

  • 存储带有限定符的索赔数据,其中限定符值是数量在中报表_数量格式中的字段propertyID=值|数量,例如,“描述人,数量1”存储为P1=问题5 |1.

请注意,并非所有索赔都会存储。索赔将在ElasticSearch中编入索引仅当以下所有条件均为真时:

  • 索赔具有实际价值(即其价值不是“无价值”或“某些价值”)
  • 我们知道如何处理其值以进行索引。更多的价值处理器可能是未来增加,但目前我们要求索赔的价值为Q项目ID、字符串(字母数字)或数量(数字)
  • 索赔的Wikidata属性ID不在可配置的排除列表中标识($wgWBRepoSettings['searchIndexPropertiesExclude'])
  • 任何一个
    • 其属性ID位于可配置的属性ID列表中,该列表应为编入索引的($wgWBRepoSettings[“搜索索引属性”])
    • 它的属性类型位于一个可配置的属性类型列表中被编入索引($wgWBRepoSettings[“搜索索引类型”])

请注意,对于要存储的索赔数量,索赔必须满足上述标准数量限定符的属性ID必须为显示在属性ID的可配置列表中($wgWBRepoSettings['searchIndexQualifierPropertiesForQuantity']).

测验

PHPU单位

PHPUnit测试位于测试/phpunit。您可以运行不需要的测试MediaWiki框架(位于测试/phpunit/composer)通过运行作曲家测试。此命令还使用PHPCS运行代码样式检查。

依赖MediaWiki框架的测试(位于测试/phpunit/mediawiki)必须使用MediaWiki核心运行作曲家phpunit:入口点命令。

节点-Q单元

此扩展支持使用Node.JS和Q单位。这些测试的定义见测试/节点-qunit。要运行它们,请打开终端和运行npm运行测试:单元。它们也包括在较大的npm测试脚本(这意味着它们将在CI中运行)。

如果您在本地运行测试,则应使用节点版本6.x,以便更接近与CI和生产同等。

测试依赖项

package.json包定义了一系列devDependencies(开发依赖项)用于测试环境,包括一些声明的前端模块和在运行时通过PHP加载(OOJS、OOUI、jQuery等)。这些依赖关系将如果core中的包版本维护/资源/国外资源.yaml文件更改。版本应精确地固定以避免任何潜在的问题。

另请参见

关于

MediaWiki扩展WikibaseMediaInfo的Github镜像-我们的实际代码由Gerrit托管(请参阅https://www.mediawiki.org/wiki/Developer_access用于贡献)

资源

许可证

行为准则

星星

观察者

叉子

发布

未发布版本

包装

未发布包