%% Copyright (C) 2017, 2019, 2020, 2021 Dennis J. Darland %% This file is part of darland's philosophy. %% darland's philosophy is free software: you can redistribute it and/or modify %% it under the terms of the GNU General Public License as published by %% the Free Software Foundation, either version 3 of the License, or %% (at your option) any later version. %% darland's philosophy is distributed in the hope that it will be useful, %% but WITHOUT ANY WARRANTY; without even the implied warranty of %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %% GNU General Public License for more details. %% You should have received a copy of the GNU General Public License %% along with darland's philosophy. If not, see . %% Common Prolog & Life predicates to simulate Dennis J. Darlands philosophy. %% Started Writing 1/4/2017 %% This is a total rewrite of what I started about 10 years ago. %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% There are 7 relations of both understanding. %% Those of understanding are defined in terms of rrrr and ssss %% The 7 cases are: %% 1 words %% 2 ideas %% 3 objects %% 4 words_ideas %% 5 words_objects %% 6 ideas_objects %% 7 words_ideas_objects %% These are intended to compare two Subjects beliefs on the %% same arguments. (Incomplete) %% Checking agreement or disagreenent of two Subjects (word-object) qqqq(test_understanding_agrees_words_objects, Subject1, Subject2, Time1, Time2, Word_Object_List) :- qqqq(cond, understands_words_objects(Subject1, Time1, Word_Object_List), qqqq(cond, understands_words_objects(Subject2, Time2, Word_Object_List), qqqq(write, "Both ", Subject1, " and ", Subject2, " understand ", Word_Object_List, " at times ", Time1, " and ", Time2, " respectively."), qqqq(write, Subject1, " understands ", Word_Object_List, " at time ", Time1, " but ", Subject2, " does not ", " at time ", Time2)), qqqq(cond, understands_words_objects(Subject2, Time2, Word_Object_List), write(Subject2, " understands ", Word_Object_List, " at time ", Time2, " but ", Subject1, " does not ", " at time ", Time1), qqqq( write, "Neither ", Subject1, " nor ", Subject2, " understand ", Word_Object_List, " at times ", Time1, " and ", Time2, " respectively."))). qqqq(test_understanding_agrees_objects, Subject1, Subject2, Time1, Time2, Object_List) :- qqqq(cond, understands_objects(Subject1, Time1, Object_List), qqqq(cond, understands_objects(Subject2, Time2, Object_List), qqqq(write, "Both ", Subject1, " and ", Subject2, " understand ", Object_List, " at times ", Time1, " and ", Time2, " respectively."), qqqq(write, Subject1, " understands ", Object_List, " at time ", Time1, " but ", Subject2, " does not ", " at time ", Time2)), qqqq(cond, understands_objects(Subject2, Time2, Object_List), qqqq(write, Subject2, " understands ", Object_List, " at time ", Time2, " but ", Subject1, " does not ", " at time ", Time1), qqqq(write, "Neither ", Subject1, " nor ", Subject2, " understand ", Object_List, " at times ", Time1, " and ", Time2, " respectively."))).