Data Quality Monitoring Reports (DEPRECATED)
From SemWebQuality.org
(Difference between revisions)
(→= Conditional Value Rule) |
(→Data-Quality-Monitoring Reports) |
||
Line 25: | Line 25: | ||
} | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Conditional Property Rule === | ||
+ | |||
+ | <syntaxhighlight lang="sql"> | ||
+ | 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 . | ||
+ | } . | ||
+ | |||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Missing Value Rule === | ||
+ | |||
+ | <syntaxhighlight lang="sql"> | ||
+ | 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 "" . | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Missing Property Rule === | ||
+ | |||
+ | <syntaxhighlight lang="sql"> | ||
+ | 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 . | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Legal Value Rule === | ||
+ | |||
+ | <syntaxhighlight lang="sql"> | ||
+ | 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)) . | ||
+ | |||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Legal Value Range Rule === | ||
+ | |||
+ | <syntaxhighlight lang="sql"> | ||
+ | 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) . | ||
+ | } | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Syntax Rule === | ||
+ | |||
+ | <syntaxhighlight lang="sql"> | ||
+ | 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)) . | ||
+ | } | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Conditional Syntax Rule === | ||
+ | |||
+ | <syntaxhighlight lang="sql"> | ||
+ | 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)) . | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Functional Dependency Rule (2 AND Conditions) === | ||
+ | |||
+ | <syntaxhighlight lang="sql"> | ||
+ | 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)) . | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Duplicate Instance Rule === | ||
+ | |||
+ | <syntaxhighlight lang="sql"> | ||
+ | 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 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Expiry Rule === | ||
+ | |||
+ | <syntaxhighlight lang="sql"> | ||
+ | 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) | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Update Rule === | ||
+ | |||
+ | <syntaxhighlight lang="sql"> | ||
+ | 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) | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 12:23, 27 August 2011
Data-Quality-Monitoring 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 . } }
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)) . }
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)) . }
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
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) }