28.12.2012 Aufrufe

Vereinfachte Integration von Fachwissen in Computerprogramme ...

Vereinfachte Integration von Fachwissen in Computerprogramme ...

Vereinfachte Integration von Fachwissen in Computerprogramme ...

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.

7.7.1 Units 75<br />

Revise-Operation<br />

Die Operation Revise, dargestellt als Algorithmus 7.7 erzeugt e<strong>in</strong>e aktive Version<br />

e<strong>in</strong>es Subsystems als Versionsnachfolger e<strong>in</strong>es existierenden Subsystems.<br />

Algorithmus 7.7 Revise(D: cmElementCollection, x: unit, W: SET of cmElements):<br />

cmElementCollection<br />

1: if ¬x.FX ∨ x �∈ D then<br />

2: RETURN(D);<br />

3: end if<br />

4: D ′ := D;<br />

5: SET of cmElements revise set := XS(D, x) ∩ W;<br />

6: SET of cmElements new u set := {};<br />

7: for all y ∈ revise set do<br />

8: if y is a unit then<br />

9: new u := unit:New(<br />

NewID(D ′ ), y.NAME, y.DESCR, y.AL, {}, {}, [{}, ]y.ID, FALSE);<br />

10: else if y is a constra<strong>in</strong>t then<br />

11: new u := constra<strong>in</strong>t:New(NewID(D ′ ), y.DESCR, y.EXPR, y.ID, FALSE);<br />

12: end if<br />

13: new u set := new u set ∪ {new u};<br />

14: D ′ := D ′ ∪ {new u};<br />

15: end for<br />

16: for all y ∈ new u set do<br />

17: y.NUU := ConnectRevisions(D, y, y.NUU, new u set);<br />

18: y.NUC := ConnectRevisions(D, y, y.NUC, new u set);<br />

19: [y.NUP := ConnectRevisions(D, y, y.NUP, new u set);]<br />

20: end for<br />

21: RETURN(D ′ );<br />

ConnectRevisions-Operation<br />

Die Operation ConnectRevisions, dargestellt als Algorithmus 7.8 wird <strong>von</strong> der<br />

Revise-Operation gebraucht.<br />

CheckConstra<strong>in</strong>ts-Operation<br />

Algorithmus 7.9 repräsentiert die Operation CheckConstra<strong>in</strong>ts. Diese Operation<br />

durchläuft alle Constra<strong>in</strong>ts, die <strong>von</strong> e<strong>in</strong>er Unit aus über L<strong>in</strong>ks erreicht werden können<br />

und wertet diese aus. S<strong>in</strong>d alle ausgewerteten Ausdrücke wahre Aussagen, gibt<br />

die Funktion den Wert TRUE zurück.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!