Page MenuHomePhabricator

Design a more flexible replacement for Fingerprint class
Open, Needs TriagePublic

Description

Wikibase currently has hard-coded knowledge about labels, descriptions, and aliases. It does not support other kinds of terms.

To allow entity types that have other kinds of terms than labels, descriptions, and aliases (e.g. image captions, lexeme lemmas, or word form representations), Wikibase needs to become more flexible, in two ways:

  1. Code that needs to precess all terms (or a configurable set of term types) in a generic way needs a data structure that can contain multiple lists of terms (or term groups). This is similar to Fingerprint, except that the class itself would not know which kinds of terms it supports, it would accept any type. An example of this is code feeding the search index.
  2. Code that performs operations specific to a certain kind of term. Such code needs a plug-in interface, so extensions that define new entity types and term types can provide handlers to do the right thing in that place. An example would be code that provides an RDF mapping for terms.

This task is about surveying and investigating such bits of code, and coming up with a design that provides the required flexibility.