wikibase/query-engine

此包已被弃用,不再维护。没有建议的替代包。

对一组 Wikibase 实体进行查询的答案

0.3.1 2014-08-25 13:10 UTC

This package is not auto-updated.

Last update: 2020-01-22 01:41:39 UTC


README

WMDE 已停止此组件的开发。可以在 jeroen/query-engine 找到对其进行进一步开发的分支。

Wikibase QueryEngine

Build Status Code Coverage Scrutinizer Code Quality Dependency Status

Packagist: 最新稳定版本 下载次数

Wikibase QueryEngine 是一个组件,支持在 Ask 查询中使用一组 Wikibase 实体。

它主要用于 Wikibase MediaWiki 扩展,但与这些扩展或 MediaWiki 本身没有任何依赖关系。

最近的变化可以在 发布说明 中找到。

安装

您可以使用 Composer 下载并安装此包以及其依赖项。或者,您可以直接克隆 git 仓库并自行处理加载。

Composer

要将此包添加为本地、特定项目的依赖项,只需将 wikibase/query-engine 依赖项添加到项目的 composer.json 文件中。以下是一个定义了 Wikibase QueryEngine 1.0 依赖项的最小 composer.json 文件示例。

    {
        "require": {
            "wikibase/query-engine": "1.0.*"
        }
    }

手动安装

获取 Wikibase QueryEngine 代码,无论是通过 git 还是其他方式。还需要获取所有依赖项。您可以在 composer.json 文件的 "require" 部分找到依赖项列表。加载所有依赖项,并通过包含其入口点:WikibaseQueryEngine.php 加载 Wikibase QueryEngine 库。

测试

此库附带了一套 PHPUnit 测试,涵盖了所有非平凡代码。您可以使用根目录中找到的 PHPUnit 配置文件运行这些测试。这些测试还可以通过 TravisCI 运行,因为根目录中提供了一个 TravisCI 配置文件。

运行测试

phpunit

使用方法

此组件的公共接口是 Wikibase\QueryEngine 中的所有内容。其他类和接口通常是包私有的,不应在包外部使用或了解。每个存储实现都有自己的附加公共类列表。

SQLStore

SQLStore 的公共类

构造时所需

  • SQLStore\SQLStore
    • SQLStore\StoreSchema
      • SQLStore\DataValueHandlers
    • SQLStore\StoreConfig

用于扩展

  • SQLStore\DataValueHandler

构建一个SQLStore

use Wikibase\QueryEngine\SQLStore\SQLStore;
use Wikibase\QueryEngine\SQLStore\StoreSchema;
use Wikibase\QueryEngine\SQLStore\StoreConfig;
use Wikibase\QueryEngine\SQLStore\DataValueHandlers;
use Wikibase\QueryEngine\SQLStore\DVHandler\NumberHandler;

$dvHandlers = new DataValueHandlers();

$dvHandlers->addMainSnakHandler( 'number', new NumberHandler() );

$store = new Store(
    new StoreSchema( 'table_prefix_', $dvHandlers ),
    new StoreConfig( 'store name' )
);

命令行界面

要在根目录下获取可用命令列表,请执行以下操作

php queryengine

SQLStore内部结构

表:entities

  • id, string: entities id的序列化
  • type, string: 实体的类型

Snak表

所有Snak表都有以下字段

  • row_id, int
  • subject_id, string
  • subject_type, string
  • property_id, string
  • statement_rank, int

模式定义在StoreSchema.php中动态构建。

值Snak表

对于存储配置支持的数据值类型,每个类型都有一个值Snak表。

所有数据值表都有一组额外的字段,这些字段特定于它们存储的数据值类型。对于存储器原生的数据值类型。

无值Snak表

额外字段

  • snak_type, int: snak的类型,即"无值"

作者

Wikibase QueryEngine是由 Wikidata 团队为 Wikidata 项目 编写的。

链接

相关项目

Phabricator上的错误

https://phabricator.wikimedia.org/project/view/115/