Data Quality Monitoring Reports - SemWebQuality.org

Data Quality Monitoring Reports

From SemWebQuality.org
(Difference between revisions)
Jump to: navigation, search
(SPARQL-Problem-Reports)
(SPARQL-Problem-Reports)
Line 93: Line 93:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
[[Click here to learn how to define a data requirement for this report]]
+
[[Create Data Requirements#Example 2: Conditional Property Completeness Rule|Click here to learn how to define a data requirement for this report]]
  
 
===Example 3: Syntax Rule Violations (OWL DL Design)===
 
===Example 3: Syntax Rule Violations (OWL DL Design)===

Revision as of 15:35, 11 October 2011

Problem reports are an excellent instrument to quickly identify instances with requirement violations.

Contents

Prerequisites

With the DQM-Vocabulary you can easily create problem reports. All you need is a SPARQL-Endpoint. Before you can automatically analyze your data for requirement violations, you need to perform the following steps:

SPARQL-Problem-Reports

Each type of data requirement has different problem reports, since the nature of data requirements differs. Moreover, the actual SPARQL query you can use depends on the design option you have chosen to make your ontology elements an instance of dqm:TestedClass and dqm:TestedProperty (See Create Data Requirements#Define Tested Elements for an explanation). In the following you find several SPARQL queries that make use of your data requirements to identify class instances with requirement violations.

Example 1.1: Property Completeness Violations (OWL DL Design)

SELECT ?dqr ?i
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) .
    {    
        ?i a ?tclassURI .
        NOT EXISTS{
           ?i ?tpropURI ?value .
        }
    }UNION{
        ?i a ?tclassURI .
        ?i ?tpropURI "" .
    }
}

Click here to learn how to define a data requirement for this report

Example ´1.2: Property Completeness Violations (OWL Full Design)

SELECT ?dqr ?i
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 .
    {    
        ?i a ?tclass .
        NOT EXISTS{
           ?i ?tprop ?value .
        }
    }UNION{
        ?i a ?tclass .
        ?i ?tprop "" .
    }
}

Click here to learn how to define a data requirement for this report

Example 2: Conditional Property Completeness Violations (OWL DL Design)

SELECT ?dqr ?i ?condvalue
WHERE {
    ?dqr a dqm:ConditionalPropertyCompletenessRule .
    ?dqr dqm:testedClass ?tclass . 
    ?dqr dqm:testedProperty1 ?tprop .
    ?dqr dqm:requiredProperty "true"^^xsd:boolean .
    ?dqr dqm:requiredValue "true"^^xsd:boolean .
    ?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 (IRI(str(?tclassreal)) AS ?tclassURI) .
    BIND (IRI(str(?tpropreal)) AS ?tpropURI) .
    BIND (IRI(str(?cpropreal)) AS ?cpropURI) .
    {
       ?i a ?tclassURI .
       ?i ?cpropURI ?value 
       NOT EXISTS{
          ?i ?tpropURI ?value1 .
      }
    }UNION{ 
       ?i a ?tclassURI .
       ?i ?cpropURI ?value .
       ?i ?tpropURI "" .
    }
    FILTER (str(?value) = str(?condvalue)) .
}

Click here to learn how to define a data requirement for this report

Example 3: Syntax Rule Violations (OWL DL Design)

SELECT ?dqr ?i
WHERE {
    ?dqr a dqm:SyntaxRule .
    ?dqr dqm:testedProperty1 ?tprop .
    ?dqr dqm:testedClass ?tclass . 
    ?dqr dqm:regex ?regex .
    ?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 ?value .
    FILTER (!regex(str(?value), ?regex)) .
}

Click here to learn how to define a data requirement for this report

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox