Skip to content

Commit abb91e6

Browse files
author
Chipo Hamayobe
committed
Updated code
1 parent 250c56b commit abb91e6

1 file changed

Lines changed: 91 additions & 6 deletions

File tree

src/main/java/uct/cs/klm/algorithms/relevant/RelevantClosureEntailmentBase.java

Lines changed: 91 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -216,13 +216,44 @@ private ModelEntailment CreateResponse(
216216
_logger.debug(String.format("=> %s: %s", k.rankNumber(), k.formulas()));
217217
}
218218

219+
var finalRemovedRanking = new ModelRankCollection();
220+
var relevantKb = ReasonerUtils.toMaterialisedKnowledgeBase(relevantRanking.getKnowledgeBase());
221+
// _logger.debug(String.format("=> %REL: %s", relevantKb));
222+
// _logger.debug(String.format("=> %REM: %s", removedRanking.getKnowledgeBase()));
223+
224+
for (var removeRank : removedRanking) {
225+
ModelRank rank = new ModelRank(removeRank.getRankNumber());
226+
boolean addRank = false;
227+
228+
for (var removeStatement : removeRank.getFormulas()) {
229+
230+
if (relevantKb.contains(ReasonerUtils.toMaterialisedFormula(removeStatement))) {
231+
rank.addFormula(removeStatement);
232+
addRank = true;
233+
} else {
234+
var remainRank = remainingRanking.getRank(removeRank.getRankNumber());
235+
if (remainRank == null) {
236+
ModelRank newRank = new ModelRank(removeRank.getRankNumber());
237+
newRank.addFormula(removeStatement);
238+
remainingRanking.add(newRank);
239+
} else {
240+
remainingRanking.getRank(removeRank.getRankNumber()).addFormula(removeStatement);
241+
}
242+
}
243+
}
244+
245+
if (addRank) {
246+
finalRemovedRanking.add(rank);
247+
}
248+
}
249+
219250
var finalTime = ReasonerUtils.ToTimeDifference(startTime, System.nanoTime());
220251

221252
return new ModelRelevantClosureEntailment.ModelRelevantClosureEntailmentBuilder()
222253
.withKnowledgeBase(baseRank.getKnowledgeBaseKb())
223254
.withQueryFormula(queryFormula)
224255
.withBaseRanking(baseRank.getRanking())
225-
.withRemovedRanking(removedRanking)
256+
.withRemovedRanking(finalRemovedRanking)
226257
.withRemainingRanking(remainingRanking)
227258
.withRelevantRankCollection(relevantRanking)
228259
.withIrrelevantRankCollection(irrelevantRanking)
@@ -271,17 +302,72 @@ private ModelRelevanceResult GetRelevantRanks(
271302
KnowledgeBase miniKb = new KnowledgeBase();
272303

273304
if (reasonerType == ReasonerType.MinimalRelevantClosure) {
274-
int counter = 0;
305+
306+
var allRanks = baseRankCollection.getRankingCollectonExceptInfinity();
307+
List<Integer> justList = new ArrayList<>();
308+
309+
for (ModelRank rank : allRanks) {
310+
311+
var rankFomulas = rank.getFormulas();
312+
313+
_logger.debug(String.format("=> Rel Rank %s: %s", rank.getRankNumber(), rankFomulas));
314+
315+
int justCounter = 0;
316+
for (var just : justificationCollection) {
317+
318+
if (justList.contains(justCounter)) {
319+
continue;
320+
}
321+
322+
var rankNumber = -1;
323+
_logger.debug(String.format("=> Rel Just %s: %s", justCounter, just.getFormulas()));
324+
325+
for (var formula : just.getFormulas()) {
326+
327+
var deMaterialised = ReasonerUtils.toDematerialisedFormula(formula);
328+
_logger.debug(String.format("=> Rel Formula %s: %s IN %s", justCounter, deMaterialised, rankFomulas));
329+
330+
if (rankFomulas.contains(deMaterialised)) {
331+
if (rankNumber == -1) {
332+
rankNumber = rank.getRankNumber();
333+
justList.add(justCounter);
334+
}
335+
336+
if (rank.getRankNumber() == rankNumber) {
337+
miniKb.add(formula);
338+
}
339+
}
340+
}
341+
342+
justCounter++;
343+
}
344+
}
345+
346+
_logger.debug(String.format(" Mini := %s", miniKb.getFormulas()));
347+
348+
/*
349+
275350
for (int i = 0; i < justificationCollection.size(); i++) {
276351
277-
var rank = baseRankCollection.getRank(counter);
352+
var rank = baseRankCollection.getRank(counter);
353+
354+
if (rank == null || counter == Symbols.INFINITY_RANK_NUMBER) {
355+
counter++;
356+
continue;
357+
}
358+
359+
var rankdeMaterialised = ReasonerUtils.toMaterialisedKnowledgeBase(rank.getFormulas());
278360
var rankNumber = -1;
361+
362+
_logger.debug(String.format("=> Rel Rank %s: %s", counter, rankdeMaterialised));
279363
280364
for (var formula : justificationCollection.get(i)) {
281365
366+
_logger.debug(String.format("=> Rel Formula %s: %s", counter, formula));
367+
282368
var deMaterialised = ReasonerUtils.toDematerialisedFormula(formula);
283369
284-
if (rank != null && rank.getFormulas().contains(deMaterialised)) {
370+
if (rankdeMaterialised.contains(deMaterialised)) {
285371
if (rankNumber == -1) {
286372
rankNumber = rank.getRankNumber();
287373
}
@@ -297,8 +383,7 @@ private ModelRelevanceResult GetRelevantRanks(
297383
counter++;
298384
}
299385
}
300-
301-
_logger.debug(String.format(" Mini := %s", miniKb.getFormulas()));
386+
*/
302387
}
303388

304389
ModelRankCollection resultIncosistentRank = new ModelRankCollection();

0 commit comments

Comments
 (0)