Data Quality Monitoring Reports (DEPRECATED) - SemWebQuality.org

Data Quality Monitoring Reports (DEPRECATED)

From SemWebQuality.org
(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
== Data-Quality-Monitoring Reports ==
+
== 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 .  
+
    ?dqr dqm:testedClass ?tclass .  
  ?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) .
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 .
+
      ?dqr dqm:upperLimit ?upperLimit .
}
+
    }
OPTIONAL{
+
    OPTIONAL{
    ?dqr dqm:lowerLimit ?lowerLimit .
+
      ?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 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:testedClass ?tclass .  
?dqr dqm:regex ?regex .
+
    ?dqr dqm:regex ?regex .
  ?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) .
OPTIONAL{
+
    OPTIONAL{
  ?i a ?tclassURI .
+
      ?i a ?tclassURI .
    ?i ?tpropURI ?value .
+
      ?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:testedClass ?tclass .  
?dqr dqm:regex ?regex .
+
    ?dqr dqm:regex ?regex .
  ?tclass dqm:hasURI ?tclassreal .
+
    ?tclass dqm:hasURI ?tclassreal .
 
     ?tprop dqm:hasURI ?tpropreal .
 
     ?tprop dqm:hasURI ?tpropreal .
?dqr dqm:hasCondition ?cond1 .
+
    ?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 ?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 .  
+
    ?dqr dqm:testedClass ?tclass .  
  ?tclass dqm:hasURI ?tclassreal .
+
    ?tclass dqm:hasURI ?tclassreal .
 
     ?tprop dqm:hasURI ?tpropreal .
 
     ?tprop dqm:hasURI ?tpropreal .
?dqr dqm:hasCondition ?cond1 .
+
    ?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 .
+
    ?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 ?cpropURI1 ?condvalue1 .
?i ?cpropURI2 ?condvalue2 .
+
    ?i ?cpropURI2 ?condvalue2 .
?dqr dqm:hasDependentValue ?dvalue .
+
    ?dqr dqm:hasDependentValue ?dvalue .
?dvalue dqm:equals ?dvaluereal .
+
    ?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:testedClass ?tclass .  
 
     ?dqr dqm:testedProperty ?tprop .
 
     ?dqr dqm:testedProperty ?tprop .
?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 ?value .
+
    ?i ?tpropURI ?value .
?i2 ?tpropURI ?value2 .
+
    ?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:testedClass ?tclass .  
 
     ?dqr dqm:testedProperty ?tprop .
 
     ?dqr dqm:testedProperty ?tprop .
?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) .
LET(?today:=afn:now()) .
+
    LET(?today:=afn:now()) .
 
     ?i a ?tclassURI .
 
     ?i a ?tclassURI .
  ?i ?tpropURI ?expiry .
+
    ?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)
}
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox