home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l217 / 2.ddi / EXAMPLES / CH15EX01.PRO < prev    next >
Encoding:
Prolog Source  |  1990-03-26  |  1.4 KB  |  46 lines

  1. /*
  2.    Copyright (c) 1986, 90 by Prolog Development Center
  3. */
  4.    
  5. domains
  6.    db_selector = dba1 ; dba2
  7.    customers = customer(customer_name, address)
  8.    parts = part(part_name, ID, customer_name)
  9.    customer_name, part_name = symbol
  10.    ID = integer
  11.    address = string
  12.  
  13. predicates
  14.    access
  15.  
  16. goal
  17.    % create the databases dba1 and dba2
  18.    db_create(dba1, "dd1", in_memory),
  19.    db_create(dba2, "dd1.bin", in_file),
  20.  
  21.    % insert customer facts into chain1 in dba1
  22.    chain_insertz(dba1, chain1, customers,
  23.           customer("Joe Fraser","123 West Side"), _),
  24.    chain_insertz(dba1, chain1, customers,
  25.        customer("John Smith","31 East Side"), _),
  26.    chain_insertz(dba1, chain1, customers,
  27.        customer("Diver Dan","1 Water Way"), _),
  28.    chain_insertz(dba1, chain1, customers,
  29.        customer("Dave Devine","123 Heaven Street"), _),
  30.  
  31.    % insert parts facts into chain2 in dba2
  32.    chain_insertz(dba2, chain2, parts, part("wrench", 231, "John Smith"), _),
  33.    chain_insertz(dba2, chain2, parts, part("knife", 331, "Diver Dan"), _),
  34.    access,
  35.    db_close(dba1), db_close(dba2),
  36.    db_delete("dd1", in_memory),
  37.    db_delete("dd1.bin", in_file).
  38.  
  39. clauses
  40.    access:-
  41.       chain_terms(dba1, chain1, customers, customer(Name, ADDR), _),
  42.       chain_terms(dba2, chain2, parts, part(Part, Id, Name), _),
  43.       write("send ", Part, " part num ", Id, " to ", Addr), nl,
  44.       fail.
  45.    access. 
  46.