(:slot atom (term ) descriptor )
Declares a new
slot and types it using term . Typing is enforced using an
if-added rule. For example:
declares the slot has-disease to be a relation between people
and diseases. If one then asserts:
Algernon concludes that p1 isa people, and d1 isa diseases.
:slot takes the following ``keyword'' arguments:
- :cardinality n
- Asserts that the slot holds at
most n values. Defaults to nil (no restriction). In the current implementation,
cardinality information is primarily used to limit the application of if-needed rules (if a
slot is queried but is full then the rules are not applied).
- :partition partition
- Places the slot in partition
partition (see section 2.3.1). Defaults to main-partition.
- :backlink slot2
- Backlinks the slot to
slot2. This means that if Algernon learns (slot f1 f2) it will
conclude (via an if-added rule) (slot2
f2 f1).
- :inverse slot2
- Asserts that the inverse of the
slot is slot2. This is equivalent to bi-directional backlinks.
- :comment
- Adds a comment for the slot.