Intensional predicates

Intensional predicates express computations by means of rules, which look like named queries:

strong_pokemon(Name) :- pokemon(_, Name, HP), HP > 150.
  • The rule’s head names the predicate strong_pokemon and its single argument Name (also called head variable).

  • The rule’s body is a conjunction, which uses a body variable HP.

  • Database view: an intensional predicate defines how to compute a new table from existing ones

  • Deductive view: an intensional predicate gives us rules for inferring new conclusions from what we already know

By evaluating all intensional predicates based on the EDB, we get the intensional database (IDB).