Skip to content
Snippets Groups Projects
Commit f939da21 authored by dmt's avatar dmt
Browse files

Fix bug in finding the complete relationship between models.

parent 29070b83
No related branches found
No related tags found
No related merge requests found
......@@ -99,10 +99,20 @@ class KnowledgeDatabase(ABC):
def remove_dependent_models(self,
relative_model: PragmaticMachineLearningModel):
print("relative:k ", relative_model.uid)
to_remove = []
for domain in self.database:
for model in domain.knowledge.values():
if model.origin == relative_model.origin:
self.remove(model)
print(model.origin)
if isinstance(model.origin, str):
if model.origin == relative_model.uid:
to_remove.append(model)
elif isinstance(model.origin, list):
if relative_model.uid in model.origin:
to_remove.append(model)
else: continue
for model in to_remove:
self.remove(model)
def inject_logger(self, logger):
self.logger = logger
......@@ -168,7 +178,13 @@ class RelativeFinder:
set_z = self.index_z[model.purpose]
relatives = set_s.intersection(set_z)
elif pair == ("complete", ):
set_t = self.index_t[(model.min_timestamp, model.max_timestamp)]
set_t = set()
for min_time, max_time in self.index_t.keys():
if (model.min_timestamp >= min_time and
model.max_timestamp <= max_time) or \
(model.min_timestamp <= min_time and
model.max_timestamp >= max_time):
set_t.update(self.index_t[(min_time, max_time)])
set_s = self.index_sigma[model.subject]
set_z = self.index_z[model.purpose]
relatives = set_t.intersection(set_s).intersection(set_z)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment