Data Quality Monitoring Reports (DEPRECATED)
From SemWebQuality.org
(Difference between revisions)
m (moved DQM-Vocabulary Primer to Data Quality Monitoring Reports) |
|||
Line 1: | Line 1: | ||
− | == | + | == Completeness Reports == |
− | + | ||
− | + | ||
=== Conditional Value Rule === | === Conditional Value Rule === | ||
Line 49: | Line 47: | ||
?i ?tpropURI ?mandatoryvalue . | ?i ?tpropURI ?mandatoryvalue . | ||
} . | } . | ||
− | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 89: | Line 86: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | == Syntactical Accuracy Reports == | ||
=== Legal Value Rule === | === Legal Value Rule === | ||
Line 96: | Line 94: | ||
?dqr a dqm:LegalValueRule . | ?dqr a dqm:LegalValueRule . | ||
?dqr dqm:testedProperty ?tprop . | ?dqr dqm:testedProperty ?tprop . | ||
− | + | ?dqr dqm:testedClass ?tclass . | |
− | + | ?tclass dqm:hasURI ?tclassreal . | |
?tprop dqm:hasURI ?tpropreal . | ?tprop dqm:hasURI ?tpropreal . | ||
BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . | BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . | ||
Line 115: | Line 113: | ||
} . | } . | ||
FILTER (!bound(?value1)) . | FILTER (!bound(?value1)) . | ||
− | + | } | |
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 127: | Line 124: | ||
?dqr dqm:testedProperty ?tprop . | ?dqr dqm:testedProperty ?tprop . | ||
?dqr dqm:testedClass ?tclass . | ?dqr dqm:testedClass ?tclass . | ||
− | OPTIONAL{ | + | OPTIONAL{ |
− | + | ?dqr dqm:upperLimit ?upperLimit . | |
− | } | + | } |
− | OPTIONAL{ | + | OPTIONAL{ |
− | + | ?dqr dqm:lowerLimit ?lowerLimit . | |
− | } | + | } |
?tclass dqm:hasURI ?tclassreal . | ?tclass dqm:hasURI ?tclassreal . | ||
?tprop dqm:hasURI ?tpropreal . | ?tprop dqm:hasURI ?tpropreal . | ||
BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . | BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . | ||
BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . | BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . | ||
− | + | ?i a ?tclassURI . | |
?i ?tpropURI ?value . | ?i ?tpropURI ?value . | ||
FILTER (smf:cast(?value, xsd:float) > ?upperLimit || smf:cast(?value, xsd:float) < ?lowerLimit) . | FILTER (smf:cast(?value, xsd:float) > ?upperLimit || smf:cast(?value, xsd:float) < ?lowerLimit) . | ||
} | } | ||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 151: | Line 147: | ||
?dqr a dqm:SyntaxRule . | ?dqr a dqm:SyntaxRule . | ||
?dqr dqm:testedProperty ?tprop . | ?dqr dqm:testedProperty ?tprop . | ||
− | + | ?dqr dqm:testedClass ?tclass . | |
− | + | ?dqr dqm:regex ?regex . | |
− | + | ?tclass dqm:hasURI ?tclassreal . | |
?tprop dqm:hasURI ?tpropreal . | ?tprop dqm:hasURI ?tpropreal . | ||
BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . | BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . | ||
BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . | BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . | ||
− | OPTIONAL{ | + | OPTIONAL{ |
− | + | ?i a ?tclassURI . | |
− | + | ?i ?tpropURI ?value . | |
} | } | ||
FILTER (!regex(str(?value), ?regex)) . | FILTER (!regex(str(?value), ?regex)) . | ||
} | } | ||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 173: | Line 168: | ||
?dqr a dqm:ConditionalSyntaxRule . | ?dqr a dqm:ConditionalSyntaxRule . | ||
?dqr dqm:testedProperty ?tprop . | ?dqr dqm:testedProperty ?tprop . | ||
− | + | ?dqr dqm:testedClass ?tclass . | |
− | + | ?dqr dqm:regex ?regex . | |
− | + | ?tclass dqm:hasURI ?tclassreal . | |
?tprop dqm:hasURI ?tpropreal . | ?tprop dqm:hasURI ?tpropreal . | ||
− | + | ?dqr dqm:hasCondition ?cond1 . | |
?cond1 dqm:conditionalProperty ?cprop . | ?cond1 dqm:conditionalProperty ?cprop . | ||
?cprop dqm:hasURI ?cpropreal . | ?cprop dqm:hasURI ?cpropreal . | ||
Line 185: | Line 180: | ||
BIND (smf:buildURI(?cpropreal) AS ?cpropURI) . | BIND (smf:buildURI(?cpropreal) AS ?cpropURI) . | ||
?i a ?tclassURI . | ?i a ?tclassURI . | ||
− | + | ?i ?cpropURI ?condvalueplain . | |
?i ?tpropURI ?value . | ?i ?tpropURI ?value . | ||
FILTER (str(?condvalue) = str(?condvalueplain) && !regex(str(?value), ?regex)) . | FILTER (str(?condvalue) = str(?condvalueplain) && !regex(str(?value), ?regex)) . | ||
Line 191: | Line 186: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | == Semantic Accuracy Reports == | ||
=== Functional Dependency Rule (2 AND Conditions) === | === Functional Dependency Rule (2 AND Conditions) === | ||
Line 198: | Line 194: | ||
?dqr a dqm:FunctionalDependencyRule . | ?dqr a dqm:FunctionalDependencyRule . | ||
?dqr dqm:testedProperty ?tprop . | ?dqr dqm:testedProperty ?tprop . | ||
− | + | ?dqr dqm:testedClass ?tclass . | |
− | + | ?tclass dqm:hasURI ?tclassreal . | |
?tprop dqm:hasURI ?tpropreal . | ?tprop dqm:hasURI ?tpropreal . | ||
− | + | ?dqr dqm:hasCondition ?cond1 . | |
?cond1 dqm:conditionalProperty ?cprop1 . | ?cond1 dqm:conditionalProperty ?cprop1 . | ||
?cprop1 dqm:hasURI ?cpropreal1 . | ?cprop1 dqm:hasURI ?cpropreal1 . | ||
?cond1 dqm:equals ?condvalue1 . | ?cond1 dqm:equals ?condvalue1 . | ||
− | + | ?cond1 dqm:and ?cond2 . | |
?cond2 dqm:conditionalProperty ?cprop2 . | ?cond2 dqm:conditionalProperty ?cprop2 . | ||
?cprop2 dqm:hasURI ?cpropreal2 . | ?cprop2 dqm:hasURI ?cpropreal2 . | ||
Line 214: | Line 210: | ||
BIND (smf:buildURI(?cpropreal2) AS ?cpropURI2) . | BIND (smf:buildURI(?cpropreal2) AS ?cpropURI2) . | ||
?i a ?tclassURI . | ?i a ?tclassURI . | ||
− | + | ?i ?cpropURI1 ?condvalue1 . | |
− | + | ?i ?cpropURI2 ?condvalue2 . | |
− | + | ?dqr dqm:hasDependentValue ?dvalue . | |
− | + | ?dvalue dqm:equals ?dvaluereal . | |
?i ?tpropURI ?value . | ?i ?tpropURI ?value . | ||
FILTER (str(?dvaluereal) != str(?value)) . | FILTER (str(?dvaluereal) != str(?value)) . | ||
Line 223: | Line 219: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | == Population Uniqueness Reports == | ||
=== Duplicate Instance Rule === | === Duplicate Instance Rule === | ||
Line 229: | Line 226: | ||
WHERE { | WHERE { | ||
?dqr a dqm:DuplicateInstanceRule . | ?dqr a dqm:DuplicateInstanceRule . | ||
− | + | ?dqr dqm:testedClass ?tclass . | |
?dqr dqm:testedProperty ?tprop . | ?dqr dqm:testedProperty ?tprop . | ||
− | + | ?tclass dqm:hasURI ?tclassreal . | |
− | + | ?tprop dqm:hasURI ?tpropreal . | |
BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . | BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . | ||
BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . | BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . | ||
?i a ?tclassURI . | ?i a ?tclassURI . | ||
− | + | ?i ?tpropURI ?value . | |
− | + | ?i2 ?tpropURI ?value2 . | |
− | FILTER(?i!=?i2 && str(?value) = str(?value2)) | + | FILTER(?i!=?i2 && str(?value) = str(?value2)) |
} | } | ||
GROUP BY ?dqr ?i | GROUP BY ?dqr ?i | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | == Timeliness Reports == | ||
=== Expiry Rule === | === Expiry Rule === | ||
Line 249: | Line 247: | ||
WHERE { | WHERE { | ||
?dqr a dqm:ExpiryRule . | ?dqr a dqm:ExpiryRule . | ||
− | + | ?dqr dqm:testedClass ?tclass . | |
?dqr dqm:testedProperty ?tprop . | ?dqr dqm:testedProperty ?tprop . | ||
− | + | ?tclass dqm:hasURI ?tclassreal . | |
− | + | ?tprop dqm:hasURI ?tpropreal . | |
BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . | BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . | ||
BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . | BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . | ||
− | LET(?today:=afn:now()) . | + | LET(?today:=afn:now()) . |
?i a ?tclassURI . | ?i a ?tclassURI . | ||
− | + | ?i ?tpropURI ?expiry . | |
− | FILTER(?expiry<?today) | + | FILTER(?expiry<?today) |
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 267: | Line 265: | ||
SELECT ?dqr ?i ?timestamp | SELECT ?dqr ?i ?timestamp | ||
WHERE { | WHERE { | ||
− | ?dqr a dqm:UpdateRule . | + | ?dqr a dqm:UpdateRule . |
− | ?dqr dqm:testedClass ?tclass . | + | ?dqr dqm:testedClass ?tclass . |
− | ?dqr dqm:testedProperty ?tprop . | + | ?dqr dqm:testedProperty ?tprop . |
− | ?dqr dqm:expectedUpdateInterval ?duration . | + | ?dqr dqm:expectedUpdateInterval ?duration . |
− | ?tclass dqm:hasURI ?tclassreal . | + | ?tclass dqm:hasURI ?tclassreal . |
− | ?tprop dqm:hasURI ?tpropreal . | + | ?tprop dqm:hasURI ?tpropreal . |
− | BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . | + | BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . |
− | BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . | + | BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . |
− | ?i a ?tclassURI . | + | ?i a ?tclassURI . |
− | ?i ?tpropURI ?timestamp . | + | ?i ?tpropURI ?timestamp . |
− | LET(?expectedUpdate:=dqf:requiredTimestamp(?duration)) | + | LET(?expectedUpdate:=dqf:requiredTimestamp(?duration)) |
− | FILTER(?expectedUpdate>?timestamp) | + | FILTER(?expectedUpdate>?timestamp) |
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 12:31, 27 August 2011
Contents |
Completeness Reports
Conditional Value Rule
SELECT ?i ?condvalue WHERE { ?dqr a dqm:ConditionalValueRule . ?dqr dqm:testedProperty ?tprop . ?dqr dqm:testedClass ?tclass . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . ?i a ?tclassURI . ?dqr dqm:hasCondition ?cond1 . ?cond1 dqm:conditionalProperty ?cprop . ?cprop dqm:hasURI ?cpropreal . ?cond1 dqm:equals ?condvalue . BIND (smf:buildURI(?cpropreal) AS ?cpropURI) . ?i ?cpropURI ?VALUE . FILTER (str(?VALUE) = str(?condvalue)) . ?i ?tpropURI "" . }
Conditional Property Rule
SELECT ?dqr ?i ?condvalue WHERE { ?dqr a dqm:ConditionalPropertyRule . ?dqr dqm:testedProperty ?tprop . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . ?i a ?tclassURI . ?dqr dqm:hasCondition ?cond1 . ?cond1 dqm:conditionalProperty ?cprop . ?cprop dqm:hasURI ?cpropreal . ?cond1 dqm:equals ?condvalue . BIND (smf:buildURI(?cpropreal) AS ?cpropURI) . ?i ?cpropURI ?VALUE . FILTER (str(?VALUE) = str(?condvalue)) . NOT EXISTS { ?i ?tpropURI ?mandatoryvalue . } . }
Missing Value Rule
SELECT ?i WHERE { ?dqr a dqm:MissingValueRule . ?dqr dqm:testedProperty ?tprop . ?dqr dqm:testedClass ?tclass . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . ?i a ?tclassURI . ?i ?tpropURI "" . }
Missing Property Rule
SELECT ?i WHERE { ?dqr a dqm:MissingPropertyRule . ?dqr dqm:testedProperty ?tprop . ?dqr dqm:testedClass ?tclass . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . ?i a ?tclassURI . NOT EXISTS{ ?i ?tpropURI ?VALUE . } }
Syntactical Accuracy Reports
Legal Value Rule
SELECT ?i ?dqr WHERE { ?dqr a dqm:LegalValueRule . ?dqr dqm:testedProperty ?tprop . ?dqr dqm:testedClass ?tclass . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . ?dqr dqm:referenceClass ?rclass . ?dqr dqm:referenceProperty ?rprop . ?rclass dqm:hasURI ?rclassvalue . ?rprop dqm:hasURI ?rpropvalue . BIND (smf:buildURI(?rpropvalue) AS ?rpropURI) . BIND (smf:buildURI(?rclassvalue) AS ?rclassURI) . ?i a ?tclassURI . ?i ?tpropURI ?VALUE . OPTIONAL { ?s2 a ?rclassURI . ?s2 ?rpropURI ?value1 . FILTER (str(?value1) = str(?VALUE)) . } . FILTER (!bound(?value1)) . }
Legal Value Range Rule
SELECT ?dqr ?i WHERE { ?dqr a dqm:LegalValueRangeRule . ?dqr dqm:testedProperty ?tprop . ?dqr dqm:testedClass ?tclass . OPTIONAL{ ?dqr dqm:upperLimit ?upperLimit . } OPTIONAL{ ?dqr dqm:lowerLimit ?lowerLimit . } ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . ?i a ?tclassURI . ?i ?tpropURI ?VALUE . FILTER (smf:CAST(?VALUE, xsd:FLOAT) > ?upperLimit || smf:CAST(?VALUE, xsd:FLOAT) < ?lowerLimit) . }
Syntax Rule
SELECT ?dqr ?regex ?i WHERE { ?dqr a dqm:SyntaxRule . ?dqr dqm:testedProperty ?tprop . ?dqr dqm:testedClass ?tclass . ?dqr dqm:regex ?regex . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . OPTIONAL{ ?i a ?tclassURI . ?i ?tpropURI ?VALUE . } FILTER (!regex(str(?VALUE), ?regex)) . }
Conditional Syntax Rule
SELECT ?dqr ?regex ?i WHERE { ?dqr a dqm:ConditionalSyntaxRule . ?dqr dqm:testedProperty ?tprop . ?dqr dqm:testedClass ?tclass . ?dqr dqm:regex ?regex . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . ?dqr dqm:hasCondition ?cond1 . ?cond1 dqm:conditionalProperty ?cprop . ?cprop dqm:hasURI ?cpropreal . ?cond1 dqm:equals ?condvalue . BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . BIND (smf:buildURI(?cpropreal) AS ?cpropURI) . ?i a ?tclassURI . ?i ?cpropURI ?condvalueplain . ?i ?tpropURI ?VALUE . FILTER (str(?condvalue) = str(?condvalueplain) && !regex(str(?VALUE), ?regex)) . }
Semantic Accuracy Reports
Functional Dependency Rule (2 AND Conditions)
SELECT ?dqr ?i ?dvaluereal ?VALUE WHERE { ?dqr a dqm:FunctionalDependencyRule . ?dqr dqm:testedProperty ?tprop . ?dqr dqm:testedClass ?tclass . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . ?dqr dqm:hasCondition ?cond1 . ?cond1 dqm:conditionalProperty ?cprop1 . ?cprop1 dqm:hasURI ?cpropreal1 . ?cond1 dqm:equals ?condvalue1 . ?cond1 dqm:AND ?cond2 . ?cond2 dqm:conditionalProperty ?cprop2 . ?cprop2 dqm:hasURI ?cpropreal2 . ?cond2 dqm:equals ?condvalue2 . BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . BIND (smf:buildURI(?cpropreal1) AS ?cpropURI1) . BIND (smf:buildURI(?cpropreal2) AS ?cpropURI2) . ?i a ?tclassURI . ?i ?cpropURI1 ?condvalue1 . ?i ?cpropURI2 ?condvalue2 . ?dqr dqm:hasDependentValue ?dvalue . ?dvalue dqm:equals ?dvaluereal . ?i ?tpropURI ?VALUE . FILTER (str(?dvaluereal) != str(?VALUE)) . }
Population Uniqueness Reports
Duplicate Instance Rule
SELECT ?dqr ?i WHERE { ?dqr a dqm:DuplicateInstanceRule . ?dqr dqm:testedClass ?tclass . ?dqr dqm:testedProperty ?tprop . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . ?i a ?tclassURI . ?i ?tpropURI ?VALUE . ?i2 ?tpropURI ?value2 . FILTER(?i!=?i2 && str(?VALUE) = str(?value2)) } GROUP BY ?dqr ?i
Timeliness Reports
Expiry Rule
SELECT ?dqr ?i ?expiry ?today WHERE { ?dqr a dqm:ExpiryRule . ?dqr dqm:testedClass ?tclass . ?dqr dqm:testedProperty ?tprop . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . LET(?today:=afn:now()) . ?i a ?tclassURI . ?i ?tpropURI ?expiry . FILTER(?expiry<?today) }
Update Rule
SELECT ?dqr ?i ?TIMESTAMP WHERE { ?dqr a dqm:UpdateRule . ?dqr dqm:testedClass ?tclass . ?dqr dqm:testedProperty ?tprop . ?dqr dqm:expectedUpdateInterval ?duration . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (smf:buildURI(?tpropreal) AS ?tpropURI) . BIND (smf:buildURI(?tclassreal) AS ?tclassURI) . ?i a ?tclassURI . ?i ?tpropURI ?TIMESTAMP . LET(?expectedUpdate:=dqf:requiredTimestamp(?duration)) FILTER(?expectedUpdate>?TIMESTAMP) }