Wow, tell me more and show me!
1 Like
An educational web app to teach International Criminal Law. E.g., is such and such Genocide? Why or why not?
My initial Prolog code:
/*
* Genocide
* https://world.public.law/rome_statute/article_6_genocide
*/
criminal_liability(genocide, Accused, Group) :-
genocidal_intent(Accused, Group),
article_6_group(Group),
genocidal_act(Accused, Group).
article_6_group(Group) :- national_group(Group).
article_6_group(Group) :- ethnic_group(Group).
article_6_group(Group) :- racial_group(Group).
article_6_group(Group) :- religious_group(Group).
genocidal_act(Accused, Group) :- act(Accused, killed, Group).
genocidal_act(Accused, Group) :- act(Accused, caused_serious_bodily_harm, Group).
genocidal_act(Accused, Group) :- act(Accused, deliberately_inflicted_conditions, Group).
genocidal_act(Accused, Group) :- act(Accused, imposed_measures_to_prevent_births, Group).
genocidal_act(Accused, Group) :- act(Accused, forcibly_transferred_children, Group).
This file has been truncated. show original
SWI Prolog’s s(CASP) is interesting because it has an explain function. Without that, it’ll be a little more work to show how the proof was arrived at.
1 Like