Skip to content

Commit

Permalink
Sorted listing GR-relevant updates.
Browse files Browse the repository at this point in the history
  • Loading branch information
Daphne Odekerken committed Apr 18, 2024
1 parent 43a7ddf commit 8dc24d1
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ def enumerate_relevant_updates(self, iaf, label: str, topic: str):

# Line 6.
if self.last_model:
print(self.last_model)
# Line 7 and 8: get the completion corresponding to last_model.
last_completion_arguments, last_completion_attacks = \
self._get_guessed_completion()
Expand Down Expand Up @@ -232,10 +231,7 @@ def _check_answer_set_with_new_completion(
completion_control.assign_external(new_a, True)
externals_to_remove_later.append(new_a)
# Run solver for completion.
with completion_control.solve(
on_model=self._store_satisfiable, async_=True) as handle:
handle.wait(5)
handle.cancel()
completion_control.solve(on_model=self._store_satisfiable)

# Check satisfiability and store result.
result = False
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,26 +31,30 @@ def get_relevant_args_and_atts(self):

return relevant_arg, relevant_att

def get_printable_result(self):
def get_printable_result(self, justification_status):
result = []
for symbols in self.last_model:
justification_status = symbols.arguments[0].name.upper()
q1 = self.id_to_argument_name[symbols.arguments[1].name]
q2 = self.id_to_argument_name[symbols.arguments[2].name]
if symbols.name == 'add_query_relevant_for':
result.append(f'Adding {q1} is '
f'{justification_status}-relevant for {q2}.')
elif symbols.name == 'remove_query_relevant_for':
result.append(f'Removing {q1} is '
f'{justification_status}-relevant for {q2}.')
else:
q3 = self.id_to_argument_name[symbols.arguments[3].name]
if symbols.name == 'add_query_att_relevant_for':
result.append(f'Adding ({q1},{q2}) is '
f'{justification_status}-relevant for {q3}.')
if symbols.name == 'remove_query_att_relevant_for':
result.append(f'Removing ({q1},{q2}) is '
f'{justification_status}-relevant for {q3}.')
if justification_status == symbols.arguments[0].name:
q1 = self.id_to_argument_name[symbols.arguments[1].name]
q2 = self.id_to_argument_name[symbols.arguments[2].name]
if symbols.name == 'add_query_relevant_for':
result.append(f'Adding {q1} is '
f'{justification_status.upper()}-'
f'relevant for {q2}.')
elif symbols.name == 'remove_query_relevant_for':
result.append(f'Removing {q1} is '
f'{justification_status.upper()}-'
f'relevant for {q2}.')
else:
q3 = self.id_to_argument_name[symbols.arguments[3].name]
if symbols.name == 'add_query_att_relevant_for':
result.append(f'Adding ({q1}, {q2}) is '
f'{justification_status.upper()}-'
f'relevant for {q3}.')
if symbols.name == 'remove_query_att_relevant_for':
result.append(f'Removing ({q1}, {q2}) is '
f'{justification_status.upper()}-'
f'relevant for {q3}.')
return result

def enumerate_grounded_relevant_updates(
Expand Down
4 changes: 3 additions & 1 deletion src/py_arg_visualisation/pages/24_visualise_iafs.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,13 +239,15 @@ def display_iaf(
# Otherwise compute all relevant updates.
relevance_solver = GroundedRelevanceWithPreprocessingSolver()
relevance_solver.enumerate_grounded_relevant_updates(iaf, topic)
relevant_updates = relevance_solver.get_printable_result()
selected_arguments, selected_attacks = \
relevance_solver.get_relevant_args_and_atts()

# Show relevant updates.
graph_data = get_iaf_graph_data(
iaf, topic, selected_arguments, selected_attacks, color_blind_mode)
relevant_updates = []
for label in ['in', 'out', 'undec']:
relevant_updates += relevance_solver.get_printable_result(label)
relevance_text = [html.P(f'{topic} is unstable.'),
html.Ul([html.Li(relevant_item)
for relevant_item in relevant_updates])]
Expand Down

0 comments on commit 8dc24d1

Please sign in to comment.