% Figure 2.2 of RobertsonAgusti 99 % a_type(T, B) -- describes type T of box B % a_link(T, A, B) -- describes link of type T from A to B a_type(requirement, R):- member(R, ['Loan application system', 'Represent divisions', 'Represent communications', 'Key role of loan department', 'Wish to automate']). a_type(issue, I):- member(I, ['Describing divisions', 'Representing communications channels', 'A special model of the loan department', 'How much of loan assessment is it realistic to to automate', 'Representing different decisions in divisions']). a_type(position, P):- member(P, ['As operators', 'As data streams', 'No special treatment', 'Constructing local decision procedures']). a_type(decision, D):- member(D, ['An operator model', 'All divisions represented as operators', 'Model based decision procedures']). a_link(specializes, 'Represent divisions', 'Loan application system'). a_link(specializes, 'Representing communications channels', 'Loan application system'). a_link(specializes, 'Key role of loan department', 'Loan application system'). a_link(specializes, 'Wish to automate' , 'Loan application system'). a_link(generates, 'Represent divisions', 'Describing divisions', 'Loan application system'). a_link(generates, 'Represent communications', 'Representing communications channels'). a_link(generates, 'Key role of loan department', 'A special model of the loan department'). a_link(generates, 'Wish to automate', 'How much of loan assessment is it realistic to to automate'). a_link(responds_to, 'As operators', 'Describing divisions' ). a_link(responds_to, 'As data streams', 'Representing communications channels' ). a_link(responds_to, 'No special treatment', 'A special model of the loan department'). a_link(based_on, 'An operator model', 'As operators'). a_link(based_on, 'An operator model', 'As data streams'). a_link(resolves, 'An operator model', 'Describing divisions'). a_link(resolves, 'An operator model', 'Representing communications channels'). a_link(based_on, 'All divisions represented as operators', 'No special treatment'). a_link(depends_on, 'All divisions represented as operators', 'An operator model'). a_link(is_suggested_by, 'All divisions represented as operators', 'Representing different decisions in divisions'). a_link(depends_on, 'Model based decision procedures', 'An operator model'). a_link(based_on, 'Model based decision procedures', 'Constructing local decision procedures'). a_link(responds_to, 'Constructing local decision procedures', 'Representing different decisions in divisions'). contributes(A, B) :- a_link(_, A, B). contributes(A,B) :- a_link(_, X, B), contributes(A,X).