Data Quality Assessment Reports
From SemWebQuality.org
(Difference between revisions)
(→Completeness) |
(→Uniqueness in Depth) |
||
Line 48: | Line 48: | ||
==Uniqueness in Depth== | ==Uniqueness in Depth== | ||
+ | SELECT ?dqr ?tclassURI ?tpropURI ((COUNT(?i)/2) AS ?violations) (COUNT(?i3) AS ?total) | ||
+ | (((?total - ?violations)/?total) AS ?uniquenessDepth) | ||
+ | WHERE { | ||
+ | { | ||
+ | ?dqr a dqm:UniqueValueRule . | ||
+ | ?dqr dqm:testedClass ?tclass . | ||
+ | ?dqr dqm:testedProperty1 ?tprop . | ||
+ | ?tclass dqm:hasURI ?tclassreal . | ||
+ | ?tprop dqm:hasURI ?tpropreal . | ||
+ | BIND (IRI(str(?tpropreal)) AS ?tpropURI) . | ||
+ | BIND (IRI(str(?tclassreal)) AS ?tclassURI) . | ||
+ | ?i a ?tclassURI . | ||
+ | ?i ?tpropURI ?uniqueValue1 . | ||
+ | ?i2 ?tpropURI ?uniqueValue2 . | ||
+ | FILTER(?i!=?i2 && (str(?uniqueValue1) = str(?uniqueValue2))) | ||
+ | }UNION{ | ||
+ | ?dqr a dqm:UniqueValueRule . | ||
+ | ?dqr dqm:testedClass ?tclass . | ||
+ | ?dqr dqm:testedProperty1 ?tprop . | ||
+ | ?tclass dqm:hasURI ?tclassreal . | ||
+ | ?tprop dqm:hasURI ?tpropreal . | ||
+ | BIND (IRI(str(?tpropreal)) AS ?tpropURI) . | ||
+ | BIND (IRI(str(?tclassreal)) AS ?tclassURI) . | ||
+ | ?i3 a ?tclassURI . | ||
+ | } | ||
+ | }GROUP BY ?dqr ?tclassURI ?tpropURI | ||
==Syntactic Accuracy== | ==Syntactic Accuracy== |
Revision as of 17:08, 17 October 2011
Data Quality Scores can be used to get a quick impression about the quality state of a data source. Below you can find queries that can calculate data quality scores based on previously defined data requirements.
Contents |
Completeness
Scenario: | Calculate the completeness of a property based on the ratio of all instances of a class and instances that miss a specific property or property value. |
Input: | All property completeness rules (in OWL DL Design) |
Output: | Completeness Scores per Property Completeness Requirement |
SELECT ?dqr ?tclassURI ?tpropURI (COUNT(?s) AS ?violations) (COUNT(?s2) AS ?total) (((?total - ?violations)/?total) AS ?completeness) WHERE { { ?dqr a dqm:PropertyCompletenessRule . ?dqr dqm:testedClass ?tclass . ?dqr dqm:testedProperty1 ?tprop . ?dqr dqm:requiredValue "true"^^xsd:boolean . ?dqr dqm:requiredProperty "true"^^xsd:boolean . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (IRI(str(?tpropreal)) AS ?tpropURI) . BIND (IRI(str(?tclassreal)) AS ?tclassURI) . { ?s a ?tclassURI . NOT EXISTS{ ?s ?tpropURI ?value . } }UNION{ ?s a ?tclassURI . ?s ?tpropURI "" . } }UNION{ ?dqr a dqm:PropertyCompletenessRule . ?dqr dqm:testedClass ?tclass . ?dqr dqm:testedProperty1 ?tprop . ?dqr dqm:requiredValue "true"^^xsd:boolean . ?dqr dqm:requiredProperty "true"^^xsd:boolean . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (IRI(str(?tpropreal)) AS ?tpropURI) . BIND (IRI(str(?tclassreal)) AS ?tclassURI) . ?s2 a ?tclassURI . } }GROUP BY ?dqr ?tclassURI ?tpropURI
Uniqueness in Depth
SELECT ?dqr ?tclassURI ?tpropURI ((COUNT(?i)/2) AS ?violations) (COUNT(?i3) AS ?total) (((?total - ?violations)/?total) AS ?uniquenessDepth) WHERE { {
?dqr a dqm:UniqueValueRule . ?dqr dqm:testedClass ?tclass . ?dqr dqm:testedProperty1 ?tprop . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (IRI(str(?tpropreal)) AS ?tpropURI) . BIND (IRI(str(?tclassreal)) AS ?tclassURI) . ?i a ?tclassURI . ?i ?tpropURI ?uniqueValue1 . ?i2 ?tpropURI ?uniqueValue2 . FILTER(?i!=?i2 && (str(?uniqueValue1) = str(?uniqueValue2)))
}UNION{
?dqr a dqm:UniqueValueRule . ?dqr dqm:testedClass ?tclass . ?dqr dqm:testedProperty1 ?tprop . ?tclass dqm:hasURI ?tclassreal . ?tprop dqm:hasURI ?tpropreal . BIND (IRI(str(?tpropreal)) AS ?tpropURI) . BIND (IRI(str(?tclassreal)) AS ?tclassURI) . ?i3 a ?tclassURI . }
}GROUP BY ?dqr ?tclassURI ?tpropURI