@prefix activity: <https://knobit.org/id/activity/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix edu: <https://knobit.org/def/> .
@prefix knobit: <https://knobit.org/id/knobit/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema: <https://schema.org/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

activity:QO-3 a edu:Activity ;
    rdfs:label "Derive data quality rules"@en,
        "Andmekvaliteedi reeglite tuletamine"@et ;
    dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
    rdfs:comment "Stage 3 (Data quality rules) of the data-quality skill: produces 03-dq-rules/dq-rules.yaml and passes the stage's validation gate."@en ;
    edu:requiresKnobit knobit:K-155,
        knobit:K-313,
        knobit:K-502,
        knobit:K-510,
        knobit:K-553,
        knobit:K-556,
        knobit:K-565,
        knobit:K-601,
        knobit:K-603,
        knobit:K-622,
        knobit:K-623,
        knobit:K-624,
        knobit:K-651,
        knobit:K-655,
        knobit:K-658,
        knobit:K-705,
        knobit:K-852,
        knobit:Q-212,
        knobit:Q-214,
        knobit:Q-303,
        knobit:Q-304,
        knobit:Q-307,
        knobit:Q-308,
        knobit:Q-309,
        knobit:Q-310,
        knobit:Q-311,
        knobit:Q-312,
        knobit:Q-313,
        knobit:Q-314,
        knobit:Q-315,
        knobit:Q-316,
        knobit:Q-317,
        knobit:Q-318,
        knobit:Q-319,
        knobit:Q-320,
        knobit:Q-321,
        knobit:Q-322,
        knobit:Q-323,
        knobit:Q-324,
        knobit:Q-325,
        knobit:Q-326,
        knobit:Q-351,
        knobit:Q-352,
        knobit:Q-353,
        knobit:Q-354,
        knobit:Q-355,
        knobit:Q-356,
        knobit:Q-357,
        knobit:Q-358 ;
    schema:position 3 .

edu:Activity rdfs:label "Activity"@en,
        "Tegevusnäitaja"@et .

knobit:K-155 rdfs:label "Explains current value, history and point-in-time reproducibility"@en .

knobit:K-313 rdfs:label "Recognises a declared constraint the target platform does not enforce"@en .

knobit:K-502 rdfs:label "Recognises an update anomaly in a logical data model"@en .

knobit:K-510 rdfs:label "Recognises a stored derivable attribute"@en .

knobit:K-553 rdfs:label "Explains the insertion, update and deletion anomalies"@en .

knobit:K-556 rdfs:label "Explains third normal form"@en .

knobit:K-565 rdfs:label "Explains derived data and point-in-time snapshots"@en .

knobit:K-601 rdfs:label "Recognises an unmanaged duplicate column"@en .

knobit:K-603 rdfs:label "Recognises a stored derived or summary value"@en .

knobit:K-622 rdfs:label "Recognises an overwrite where history is required"@en .

knobit:K-623 rdfs:label "Recognises inconsistent validity periods in a versioned table"@en .

knobit:K-624 rdfs:label "Recognises a reference to a versioned table by business key alone"@en .

knobit:K-651 rdfs:label "Explains controlled denormalisation"@en .

knobit:K-655 rdfs:label "Explains null semantics and three-valued logic"@en .

knobit:K-658 rdfs:label "Explains history strategies and validity-period conventions"@en .

knobit:K-705 rdfs:label "Recognises history kept without its constraints checked"@en .

knobit:K-852 rdfs:label "Explains SQL dialect differences"@en .

knobit:Q-212 rdfs:label "Recognises a rule assigned to a missing data quality check"@en .

knobit:Q-214 rdfs:label "Recognises a data-update rule with no enforcing or detecting mechanism"@en .

knobit:Q-303 rdfs:label "Recognises a constraint deferred without a check"@en .

knobit:Q-304 rdfs:label "Recognises a derived or copied column without a check"@en .

knobit:Q-307 rdfs:label "Recognises a check with no rule behind it"@en .

knobit:Q-308 rdfs:label "Recognises a check outliving its rule"@en .

knobit:Q-309 rdfs:label "Recognises a check unable to fail"@en .

knobit:Q-310 rdfs:label "Recognises a check on the wrong object"@en .

knobit:Q-311 rdfs:label "Recognises a check weaker than its rule"@en .

knobit:Q-312 rdfs:label "Recognises a check stronger than its rule"@en .

knobit:Q-313 rdfs:label "Recognises a check measuring the wrong population"@en .

knobit:Q-314 rdfs:label "Recognises nulls left to chance in a check predicate"@en .

knobit:Q-315 rdfs:label "Recognises a past event judged against present data"@en .

knobit:Q-316 rdfs:label "Recognises a set rule written as a row rule"@en .

knobit:Q-317 rdfs:label "Recognises a check expression unable to run"@en .

knobit:Q-318 rdfs:label "Recognises a misfiled data quality dimension"@en .

knobit:Q-319 rdfs:label "Recognises duplicate checks for one rule"@en .

knobit:Q-320 rdfs:label "Recognises a threshold at odds with its rule"@en .

knobit:Q-321 rdfs:label "Recognises disagreeing severity, threshold and failure action"@en .

knobit:Q-322 rdfs:label "Recognises a rejection destroying more than it protects"@en .

knobit:Q-323 rdfs:label "Recognises a check failure with no capable owner"@en .

knobit:Q-324 rdfs:label "Recognises a check scheduled at the wrong moment"@en .

knobit:Q-325 rdfs:label "Recognises an aggregate hiding a total failure"@en .

knobit:Q-326 rdfs:label "Recognises an empty population reported as a pass"@en .

knobit:Q-351 rdfs:label "Explains data quality dimensions"@en .

knobit:Q-352 rdfs:label "Explains traceability from data rule to check"@en .

knobit:Q-353 rdfs:label "Explains the population, measure and threshold of a check"@en .

knobit:Q-354 rdfs:label "Explains row-level and set-level checks"@en .

knobit:Q-355 rdfs:label "Explains severity, threshold and failure action"@en .

knobit:Q-356 rdfs:label "Explains scheduling checks against loads and use"@en .

knobit:Q-357 rdfs:label "Explains segmented data quality reporting"@en .

knobit:Q-358 rdfs:label "Explains ownership of data quality failures"@en .

