18.11.2012 Aufrufe

Dokument 1 - RWTH Aachen University

Dokument 1 - RWTH Aachen University

Dokument 1 - RWTH Aachen University

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

6.3 Anfrageumschreibung zur Datenintegration 153<br />

function makeExtendedMCDs<br />

Eingabe: Datenquelle s und DW-Relation r,<br />

Teilziele p und q mit vars(p) = {Y1, . . . , Ym} und vars(q) = {X1, . . . , Xn}<br />

Abbildung f der Variablen von q auf die Variablen von p,<br />

MiniCon-Beschreibung m = (s, ϕ, ρ, h, G)<br />

Ausgabe: eine Menge B von erweiterten MiniCon-Beschreibungen, falls die Bedingungen<br />

des MiniCon-Algorithmus für p und q erfüllt sind, sonst ∅.<br />

1: FOR i := 1, . . . , n<br />

2: IF Xi ∈ vars(head(r)) AND f(Xi) �∈ vars(head(s)) THEN RETURN ∅<br />

3: IF Xi ∈ dom(ϕ) AND ϕ(Xi) �= f(Xi) THEN<br />

4: IF ϕ(Xi) �∈ vars(head(s)) OR f(Xi) �∈ vars(head(s)) THEN RETURN ∅<br />

5: IF ϕ(Xi) ∈ dom(h) AND h(ϕ(Xi)) �= f(Xi) THEN RETURN ∅<br />

6: h := h ∪ {ϕ(Xi) → f(Xi)}<br />

7: ELSE<br />

8: ϕ := ϕ ∪ {Xi → f(Xi)}<br />

9: END<br />

10: END<br />

11: ρ := ρ ∪ {q → p}; G := G ∪ {q}<br />

12: B := ∅; ok:=true<br />

13: FOR i := 1, . . . , n<br />

14: IF ϕ(Xi) �∈ vars(head(s)) THEN<br />

15: FORALL q ′ ∈ body(r) \ {q} mit Xi ∈ vars(q ′ )<br />

16: ok:=false<br />

17: FORALL p ′ ∈ body(s)<br />

18: f :=relevantPredicate(q ′ ,p ′ )<br />

19: IF f �= NULL THEN<br />

20: B := B ∪ makeExtendedMCDs(s,r ← body(r) \ {q}, p ′ , q ′ , f, m)<br />

21: END<br />

22: END<br />

23: END<br />

24: END<br />

25: END<br />

26: IF ok=true THEN<br />

27: FORALL Y ∈ vars(head(s)) ∧ Y �∈ dom(h)<br />

28: h := h ∪ {Y → Y }<br />

29: END<br />

30: IF NOT satisfiable(ϕ(body(r)) \ G ∪ h(body(s))) THEN RETURN ∅<br />

31: RETURN {m}<br />

32: ELSE<br />

33: RETURN B<br />

34: END<br />

Abbildung 6.8: Algorithmus zur Generierung der erweiterten MiniCon-Beschreibungen für<br />

bestimmte Teilziele

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!