Page MenuHomePhabricator

[Toolhub Milestone 1] Define updated toolinfo standard
Closed, ResolvedPublic

Description

The toolinfo standard defined by @Husky's tool directory is the current de-facto standard for tool metadata. It has a number of limitations, including:

  • Not enough information compared to what people want
  • Difficult to present in multiple languages
  • Uses a freeform keyword system, which can't effectively be internationalized and readily leads to keyword duplication (image vs. images vs. media vs. multimedia).

The goal of this task is to define an updated toolinfo standard that is fully backwards compatible with the current standard. This is Version 1. Optionally we could create a Version 2 that breaks backwards compatibility, but both would need to be supported.

Event Timeline

Maybe this is doable via tags, but I'd like to see a way to specify which projects a tool is designed for. Sometimes a tool is designed for a specific project, e.g. Commons, other times a family of projects, e.g. all Wikisources or any wiki.

Harej renamed this task from Define updated toolinfo standard to [Milestone] Define updated toolinfo standard.Feb 7 2018, 2:33 AM
Harej renamed this task from [Milestone] Define updated toolinfo standard to [Milestone 1] Define updated toolinfo standard.Feb 7 2018, 3:15 AM

I have now codified the current spec used by @Husky's directory as version 1.0.0 of the Wikimedia Tool JSON schema:

{
	"$schema": "http://json-schema.org/draft-07/schema#",
	"title": "Wikimedia Tool",
	"description": "A tool is a piece of software that helps facilitate contribution toward, or consumption of, a Wikimedia project, not including the core wiki software and its extensions",
	"version": "1.0.0",
	"authors": ["Hay Kranen", "James Hare"],
	"definitions": {
		"tool": {
			"type": "object",
			"properties": {
				"name": {
					"type": "string"
				},
				"title": {
					"type": "string"
				},
				"description": {
					"type": "string"
				},
				"url": {
					"type": "string"
				},
				"keywords": {
					"type": "string"
				},
				"author": {
					"type": "string"
				},
				"repository": {
					"type": "string"
				}
			},
			"required": ["name", "title", "description", "url"]
		}
	},
	"oneOf": [{
			"type": "array",
			"items": {
				"$ref": "#/definitions/tool"
			}
		},
		{
			"type": "object",
			"$ref": "#/definitions/tool"
		}
	]
}

As I research tool discoverability needs, I will be releasing an updated version of this standard that is totally backwards compatible with the current standard. That will be version 1.1.0. Either at the same time or shortly after, I will be working on a non-backwards compatible version. This will be version 2.0.0.

Harej renamed this task from [Milestone 1] Define updated toolinfo standard to [Catalog Milestone 1] Define updated toolinfo standard.Mar 19 2018, 10:21 PM
Harej moved this task from In Progress to Backlog on the Toolhub board.
Harej renamed this task from [Catalog Milestone 1] Define updated toolinfo standard to [Toolhub Milestone 1] Define updated toolinfo standard.Mar 29 2018, 12:30 AM
Freddy1984g changed the task status from Resolved to Declined.Dec 9 2022, 8:58 PM
Freddy1984g updated the task description. (Show Details)
Freddy1984g removed subscribers: Legoktm, Husky.
Aklapper changed the task status from Declined to Resolved.Dec 9 2022, 9:09 PM
Aklapper updated the task description. (Show Details)
Aklapper added subscribers: Husky, Legoktm.