Page MenuHomePhabricator

Adopt the constraint level system of analytical/empirical constraints plus suggestions
Open, Needs TriagePublic



  • We have a "mandatory constraint" status but, since the development team does not intend to make the software enforce any constraints for now, this name is misleading and users don't know when a constraint should have the "mandatory" status or the unspecified/default one. This causes the constraints to be alternately upgraded and downgraded/removed by different users following their own interpretations of "mandatory" and the current number of violations instead of objective and stable criteria.
  • The "suggestion" status is being developed (T204439). Since "suggestion" will be the weakest constraint status, it would be interesting if this were the default/unspecified status from now on, but for that we should give the current default/unspecified status a specific meaning.
  • Some constraints are valid for all universes, our world and any fictional ones, because they are only related to the definition of the property and not to the universe to which the entity belongs (e.g., VIAF numbers can't have letters and the universe of an entity or its characteristics are irrelevant), while other constraints are only valid for our universe, not for fictional universes (e.g., the "number of pages" should be between 1 and 100000, but you can describe in a film a fictional book with as many pages as you want). This is a relatively clear classification of constraints and a very similar one was proposed by R. Wieringa et al. in "Specifying dynamic and deontic integrity constraints" (1989), where the equivalent first type of constraints, that is stronger, is called analytical, and the latter, that is weaker, empirical.

Proposal: We might:

  • rename "mandatory constraint" status to "analytical constraint" status (no need to change any QIDs nor the software behavior),
  • explicitly set an "empirical constraint" status to all the constraints with a currently unspecified/default status by means of a bot,
  • consider unspecified/default statuses as "suggestion" (T204439) from now on.

The names "analytical" and "empirical" might be different ("by definition"? "all universes"? "observed"? "real world"?) if these aren't clear, the important point is the criteria used to distinguish the constraint levels and their behaviors.

Future work (different task): Once this is done, empirical constraints might not be checked on entities with a "from fictional universe" (P1080) statement or they might be considered suggestions.

Any comments are appreciated.

Event Timeline

Hey :)

I have given this some thought and I don't think this makes things more understandable/clear than they are right now.

Hey. :-)

I don't think this makes things more understandable/clear

What exactly? There are several points here that perhaps I should have written as different tasks:

  • Creating an Item for the current "normal" level in order to use it as a value for "constraint status" and give it labels, statements, etc. The software doesn't recognize any Item for this level right now.
  • Making suggestions the new default level because it's the new lowest level.
  • Giving a specific meaning to the current "normal" level or defining some objective criteria (e.g., analytical vs. empirical) to distinguish the current "normal" and "mandatory" levels.
  • Renaming the current "normal" or "mandatory" levels in case we've given them specific meanings or introduced some objective ways to distinguish them.