Consider non-entailed positive test cases for test driven ontology debugging
Request by Patrick (in German)
Ich hab jetzt nochmal unser Tool/Demo-Paper genau durchgelesen. Wir beschreiben dort u.a. den Fall, dass manuelle positive TCs zu einem Fehler in der Onto „führen“ (also: auf diesen aufmerksam machen können). Das wäre genau das, was wir vorgestern/gestern gesprochen haben, wenn man Saved TCs spezifiziert hat und dann testen möchte, ob alle gemeinsam erfüllbar sind.
Ich hab mir jetzt den Code angesehen – so wie ich das verstanden habe, wird in Klasse ConsistencyChecker das DiagnoseModel zusammengebaut für die Interactive Debugging Session und returned. In dieser Klasse – und nur dort – sollten demnach Änderungen passieren. Hab ich das richtig verstanden?
Wir machen in dieser Klasse eigentlich schon fast alles richtig (z.B. Signatur-Erstellung für den module extractor) – es fehlt nur noch die Berücksichtigung der positiven TCs. D.h.: (1) Der reasoner muss als argument [ontology] den input [Onto + correctFormulas + positive TCs] bekommen. (Zeile 48) a. unter “positive TCs” sind alle bis dato abgespreicherten Entailed TCs zu verstehen. (2) Diese in (1) erstellte [ontology] kann/muss dann – wie im aktuellen Code – unverändert unten bei SyntacticLocalityModuleExtractor extractor = new SyntacticLocalityModuleExtractor(ontologyManager, ontology, ModuleType.STAR); (Zeile 70+71) verwendet werden. (3) Anschießend noch die CorrectFormulas aus den possiblyFaulty löschen – wird bereits richtig gemacht: possiblyFaulty.removeAll(dm.getCorrectFormulas()); (Zeile 117) (4) Und: Nur diejenigen formulas in den possiblyFaulty behalten, die auch zuvor drin waren (damit bleiben alle positiven TCs, die zuvor in den possibly faulties waren (z.B. durch Querybeantwortung), auch in den possibly faulties, alle anderen (z.B. neue saved TCs) werden aus den possibly faulties rausgelöscht.
Nur die beiden roten Punkte wären zu implementieren.