Help:P2738
Help page for disjoint union of (P2738) . This help page will be included in Property talk:P2738. Please be careful editing it not to break the included page.
Disjoint union and union
As the cases are similar, this page documents both the properties union of (P2737) and disjoint union of (P2738). Both properties are properties for classes or metaclasses, see Classification and Basic membership properties. Disjoint union and union are relationships between a class (say C for example) and a list of its subclasses (say L for the list).
Their purpose is to represent two different but related things:
- the union one states that and instance of C is an instance of at least one of the class listed in L.
- the disjoint union has the first property but add the constraint that every instance of C is instance of exactly one class in L.
In both cases, all the values in L are listed in a single statement, as qualifiers, using the qualifier list item (P11260), and the main value statement list of values as qualifiers (Q23766486) as a placeholder.
Examples
union of
Radio and TV programs. Some media programs can be both TV programs and Radio programs, like Spelling Bee (Q7575891) is an example of on Wikidata. But it can be assumed that all broadcasting program (Q11578774) are at least one of them. (or on the web also ?)
list item (P11260) ⟨ television program (Q15416) ⟩
list item (P11260) ⟨ radio program (Q1555508) ⟩
disjoint union of
Take the particles that a atomic nucleus (Q37147) are made of. These particles are called the nucleon (Q102165) . There is exactly two kinds of nucleons : the proton (Q2294) and the neutron (Q2348) . Moreother, one specific nucleon (Q102165) can either be a proton or a neutron, but nether a proton and a neutron. Nucleons, protons and neutrons are all classes of real world objects, because there is many nucleons instances in nature (see Help:Classification and Help:Basic membership properties for more explanations)
- Then the following statement means exactly that.
===
Rationale and usage instructions
===
It's very common that we regroup objects or concepts into similar classes of object or concepts in broad classes, then that we further divide this broad classes into smaller classes that don't overlap and such that any instance of the broad class is an instance of exactly one of the smaller one. For example we can define people that belongs to a sport club into age based categories (junior, senior, ...)
But in sport, it's also very common to divide people into unrelated sex based categories, or weight based categories.
More generally, there is often several useful ways to partition of a set (Q381060) a class of instances. To reflect that on Wikidata we need a way to regroup the classes that divide the class in one way, to regroup the classes that partition into another way, and not to mix things up.
This is how we achieve this : we use one statements per way to partition our main class. Each of these statement uses a dummy value (list of values as qualifiers (Q23766486)) as a main statement value, because what's meaningful and useful is the values for qualifier. The set of classes that partitions the set is indicated by the set of qualifiers built with list item (P11260) .
Constraints
It can be checked with a sparql query that no instances of the subject of parent class is instance of none of the classes in a union of statement. The Lua Module Module:Requests/union_of has functions to generate such queries that find the items that do not fit and could be used in some kind of constraint report. They are included in Template:Class reports.