/* print the employee relation */
employee_print(_) :-
  employee(FNAME, LNAME, SSN, BDATE, ADDRESS, S, SALARY, SUPERSSN, DNO),
  write(FNAME), write(' '), write(LNAME), write(' \t'), write(SSN),
  write(' '), write(BDATE), write(' \t'), write(ADDRESS), write(' '), 
  write(S), write(' '), write(SALARY), write(' '), write(SUPERSSN),
  write(' '), write(DNO), nl, fail.

/* print the employee relation as a html table */
table_start(_) :- write('<table border><tr><td>').
table_new_row(_) :- write('</td></tr><tr><td>').
table_row_mid(_) :- write('</td><td>').
table_end(_) :- write('</td></tr></table>').
employee_html(_) :-
 table_start(_), (employee_print_html(_) | nl), table_end(_).
employee_print_html(_) :-
  employee(FNAME, LNAME, SSN, BDATE, ADDRESS, S, SALARY, SUPERSSN, DNO),
  write(FNAME), table_row_mid(_), write(LNAME), table_row_mid(_),
  write(SSN), table_row_mid(_), write(BDATE), 
  table_row_mid(_), write(ADDRESS), table_row_mid(_), write(S),
  table_row_mid(_), write(SALARY), table_row_mid(_), write(SUPERSSN),
  table_row_mid(_), write(DNO), table_new_row(_), nl, fail.

/* print first_name, last_name, and supervisor's last_name */
employee_supervisor(FNAME, LNAME, SUPERLNAME) :-
  employee(FNAME, LNAME, _, _, _, _, _, SUPERSSN, _),
  employee(_, SUPERLNAME, SUPERSSN, _, _, _, _, _, _).
employee_supervisor_print(_) :-
  employee_supervisor(FNAME, LNAME, SUPERLNAME),
  write(FNAME), write(' '), write(LNAME),
  write(' \thas supervisor: '), write(SUPERLNAME), nl, fail.