wikibase / query-engine
对一组 Wikibase 实体进行查询的答案
Requires
- php: >=5.3.0
- ask/ask: ~1.0
- data-values/data-values: ~0.1
- data-values/geo: ~0.2
- data-values/iri: ~0.1
- data-values/number: ~0.1
- data-values/time: ~0.6
- doctrine/dbal: ~2.4
- wikibase/data-model: ~1.0@dev|~0.8.1|~0.9
Requires (Dev)
- ext-sqlite3: *
- symfony/console: ~2.4
Suggests
- ext-pcntl: Allows graceful interruption of the entities importer
- symfony/console: Allows use of the command line interface
This package is not auto-updated.
Last update: 2020-01-22 01:41:39 UTC
README
WMDE 已停止此组件的开发。可以在 jeroen/query-engine 找到对其进行进一步开发的分支。
Wikibase QueryEngine
在 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\StoreSchema
用于扩展
- 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 项目 编写的。
链接
- Packagist 上的 Wikibase QueryEngine
- Ohloh 上的 Wikibase QueryEngine
- GitHub 上的 Wikibase QueryEngine
- TravisCI 构建状态