Computational Law
Law
without
Lawyers
 

Gates Ontology


An academic program sheet is an interactive worksheet with various choices of courses for a student to take. The user's goal in filling out this form is to specify courses that meet his interests while satisfying all academic requirements and not spending too much time in the program.

To see the desired behavior, load the finished program sheet and play around with it a bit. The Test Data button shows a sample way of filling in the form that satisfies all constraints. The Clear Data button at the bottom empties the sheet.

This program sheet contains the academic requirements in two forms. They are listed on the form in English, and they are encoded as Epilog rules that are not visible on the form. The rules are the basis for the dynamic behavior of the program sheet. As the user checks various courses, the English encoding of the requirements changes color. Black means that the requirement is satisfied; red means the requirement is not satisfied.

Your assignment this week is just the first step in creating this program sheet. Your job here is to design a vocabulary to represent the state of the sheet at any point in time. In later assignments, you will use this vocabulary to define the applicable rules.

  1. What are the objects in this world? For each such object, specify an Epilog symbol to represent that object and provide a brief description in English to help us understand which object the symbol represents.

  2. What relations are relevant in this world? For each such relation, specify an Epilog predicate to represent that relation, specify its arity, and provide a brief description in English to help us understand which relation the predicate represents.

  3. Using your vocabulary, create a dataset of facts describing the state after pushing the Test Data button.