Input: READING; threshold value TV, aggregation level of time interval , aggregation level of position |
; acceptable rate acra; adjustable time interval adj; adjustable parameters and |
Output: clean ghost and redundant data, remark incomplete data, repair missing and inconsistent data; |
size of smooth window sw |
Begin |
Aggregation (READING, , ); |
Builddirectedgraph (, , ); |
; number of tuples in table READING; |
For each record’s in READING do |
If only appears once except the root node or only appears at the root node without |
references |
Delete the tuple; //clean ghost data |
Else if with an unchanged position appears twice or more |
Delete the tuple with later timestamp; //clean redundant data |
Else if don’t appears at the root node |
Remark as a non-cloned fake; //distinguish non-cloned fake |
Else if with a complete path appears at the root node but don’t appears at several adjacent |
nodes |
Remark as a cloned fake; //distinguish cloned fake |
Else if appears at the root node and disappear at some continue nodes |
Remark as a stolen object; //distinguish stolen object |
Else if doesn’t appear at a node |
ra++; |
Remark as a missing object at the missing node; //distinguish missing readings |
For to the number of paths do |
= the weight of the ith path from parent to child of the missing nodes; |
If ≥ TV |
Insert into ’s missing node into STAY; //infer group of missing readings |
with certain paths |
Else repair ’s missing node in STAY by further aggregating higher and ; |
//aggregate node of inconsistent readings with fuzzy paths |
End if |
End for |
Else if appears at two nodes at a same timestamp |
Remark the tuple as an inconsistent object at the inconsistent node; //distinguish inconsistent |
readings |
For to the number of paths do |
the weight of the th path from parent to child of the inconsistent nodes; |
If ≥ TV |
Repair ’s inconsistent node into STAY; //infer group of inconsistent readings |
with certain paths |
Else repair ’s inconsistent node in STAY by further aggregating higher and ; |
//aggregate node of inconsistent readings with fuzzy paths |
End if |
End for |
End if |
End for |
/; |
number of tuples of in cleaned table READING/; |
; |
End |