Biological Queries using Protege

The project MalariaExampleWorkflow includes queries that we wrote in Protege's Axiom Language (PAL). Protege can define queries in the three following ways.
1) The Query Tab can be used to write simple queries of the form: return all instances of a class where one of the class’s slot values contains a specified value (e.g., all the biomolecular processes that exhibit the function of Adhesion).
2) PAL Queries use first order logic and the operator find, findall to define queries.
3) PAL constraints use first order logic to define constraints. The instances that violate the constraints are shown. PAL constraint can be used to formulate queries; if you want to query for A where A.a = x, then you write a constraint of the form Forall A, A.a != x and check for constraint violation.

In the Malaria example, we used all three options to formulate queries. Examples of queries include:
1) Biopolymers that have the same set of roles and are not inhibited by the same inhibitor
2) What atomic activities have the same participants?
3) All activities that are a kind of adhesion
4) All activities that are a kind of adhesion and occur in the erythrocytic plasma membrane
5) All activities inhibited by cytochalazin