Page MenuHomePhabricator

Improve constraint checking for disjoint union of (P2738)
Open, Needs TriagePublic

Description

User story
As a Wikidata editor, I want the constraint system to properly implement disjoint union of (P2738) checks, so that data modeling errors are caught early.

Suggested improvement

  • Add automated constraint checking for P2738.
  • Show the warning both at the violating P31/P279 statement and at the P2738 statement itself.

Acceptance criteria

  • A class with a P2738 statement triggers a constraint violation when a direct or indirect instance or subclass of that class does not satisfy the disjoint union condition
  • The violation is shown on the item’s P31 (for the instance) or P279 (for the subclass) statement(s)
  • The violation is also shown on the P2738 statement of the class
  • Reports of all violations are generated regularly (current report is incomplete, as it checks only direct subclasses of the disjoint classes and it doesn't check instances)

Previous discussion

Event Timeline

Pings @Arian_Bozorg for assessing feasibility of implementing P2738 constraint checks

Maybe some SPARQL queries from Classification.js could be reused and @TomT0m (its author) could provide some insights.