Extension:WikibaseQualityConstraints

What is currently possible
We developed the Special Page Constraint Report which enables users to perform live constraint checks on any given entity (item or property) by simply typing the ID into the text box. Note that you are not able to enter the entity's label.

The check result is presented in a table showing all constraints on the claims and whether they are violated or not. For each Violation you are able to hover over a "[?]" to get a tooltip (on touch devices you get the tooltip by performing a click-gesture). The tooltip will provide you with the constraint explanation. Furthermore, it is possible to view the specific constraint parameters (like the conflicting items in a 'Conflicts with'-Constraint or the min- and max-values for a 'Range'-Constraint) by clicking on "[...]" right next to the constraint name.

Currently we do this based on the constraints that were defined on the talk pages. To be able to do this on a special page in reasonable time and particularly on live data, we parsed every talk page and build a database table with every constraint with their corresponding parameters.

There are currently 20 constraint types defined via Constraint-Template from which we are currently checking 16.

What currently doesn't work
The other four constraints usually get displayed with the status "todo" indicating that we have to do some work on it.

The Unique value constraint is currently not checked because it is not possible to check the uniqueness of a value among 14 million items when there is no index defined on the tables.

Unfortunately, the check for the Format constraint is also not possible at this time due to security reasons.

Since everyone can create a new constraint template, it is to be expected that some constraints which have not been implemented yet still exist. This is the case for the Value only constraint (meaning, the property must not be used as a qualifier or reference) and the Source constraint (the property must only be used as a reference). We are working on an implementation for these constraints which should become available in the next version.

Currently, the checks are based on the constraints we parse periodically from the property talk pages. This is obviously not the best solution. We are currently working on a PyWikiBot to migrate the constraints to statements on properties and on hooks to keep this table up-to-date.