% Everything in Our World
weapon(gun)
weapon(knife)
weapon(rope)
weapon(poison)
weapon(matches)
weapon(none)
autopsy(bullet wounds)
autopsy(stab wounds)
autopsy(blue face)
autopsy(positive drug test)
autopsy(burn marks)
autopsy(inconclusive)
death_cause(fatal gunshot) :- bullet wounds ^ gun
death_cause(stabbed) :- stab wounds ^ knife
death_cause(strangled) :- blue face ^ rope
death_cause(poisoned) :- positive drug test ^ poison
death_cause(arson) :- burn marks ^ matches
death_cause(inconclusive) :- inconclusive ^ none
married(craig, victim)
married(matthew, daniel)
have_relationship(theresa, victim)
have_relationship(craig, theresa)
have_relationship(john, victim)
% S has an affair on R with P if S is married to R, and S is in a relationship with P
affair(S, R, P) :- have_relationship(S, P) ^ married(S, R) ^ R != P.
% owes_money(S, P) = S owes P money
% S = P implies S is in debt/owes money to the bank
owes_money(matthew, victim)
owes_money(victim, john)
owes_money(victim, victim)
owes_money(daniel, victim)
% future plan: intrasuspect relations that affect their testimony about each other
% future plan: testimony comes with ‘symptoms’ that can determine the likelihood we should accept it (ie hesitance, stuttering, informal language)
arsonist(daniel)
arsonist(craig)
arsonist(victim)
% threatened(S, P) = S has threatened P
threatened(theresa, victim)
threatened(victim, craig)
threatened(craig, victim)
threatened(daniel, john)
threatened(victim, john)
motive(adultery, Suspect) :- married(Suspect, victim) ^ (have_relationship(Suspect, !victim) | had_relationship(!Suspect, victim)
motive(money, Suspect) :- owes_money(Suspect, victim) | owes_money(victim, Suspect)
motive(insanity, Suspect) :- arsonist(Suspect)
motive(protection, Suspect) :- threatened(Suspect, victim) | threatened(victim, Suspect)
motive(suicide, victim) :- owes_money(victim, victim) ^ affair(Suspect, victim, Partner) % figure this out later
% suspect(victim) = suicide possible causes, debt, affair, etc...
suspect(john)
suspect(craig)
suspect(theresa)
suspect(matthew)
suspect(daniel)
suspect(victim)
%program flow:
% start
% take suspect testimony
% determine if testimony is self-contradictory. If so, throw it out
% if not, save it, then attempt to refine beliefs based on it
% once all suspects (aside from the victim) have given their testimony, the program states its final beliefs
% the bailiff comes in and presents the actual cause of death and the murder weapon
% the program reprocesses with this final belief revision, then concludes who the killer is
% testimony that uses the current assumed murder weapon/cause makes the suspect more likely to be the killer and more credible