% -*-Prolog-*- :- use_module(library(logicmoo_user)). % if we learn that someone has a full name, then we know they are a 'lmcode'. full_name(U,_) ==> 'lmcode'(U). % if we learn that someone has a host name, then we know they are a 'lmcode'. host_name(U,_) ==> 'lmcode'(U). % when we know a 'lmcode''s full name and host name, make a 'lmcode'/3 assertion. 'lmcode'(User), full_name(User,Name), host_name(User,Host) ==> 'lmcode'(User,Name,Host). % the default full_name for a 'lmcode' is 'unknown'. 'lmcode'(User), ~full_name(User,X)/(X\==unknown) ==> full_name(User,unknown). % the default host_name for a 'lmcode' is 'unknown'. 'lmcode'(User), ~host_name(User,X)/(X\==unknown) ==> host_name(User,unknown). ==> full_name(finin,'Tim Finin'). ==> host_name(finin,antares). ==> full_name(robin,'Robin,McEntire'). ==> host_name(fritzson,hamlet).