argument2
comment: can be a Literal or Resource

body
type: ObjectProperty
comment: rule body (antecedent): List of Atom

head
type: ObjectProperty
comment: rule head (consequent): List of Atom

Aunt
type: Class
equivalent class: Class
  intersection of: Woman
  intersection of: Class
    union of: Restriction
      on property: hasNephew
      min cardinality: 1
    union of: Restriction
      on property: hasNiece
      min cardinality: 1
subclass of: Relative
disjoint with: Uncle

Child
type: Class
equivalent class: Class
  intersection of: Person
  intersection of: Restriction
    on property: hasParent
    min cardinality: 1

Nephew
type: Class
equivalent class: Class
  intersection of: Man
  intersection of: Class
    union of: Restriction
      on property: hasAunt
      min cardinality: 1
    union of: Restriction
      on property: hasUncle
      min cardinality: 1
subclass of: Relative
subclass of: Restriction
  on property: hasSex
  has value: Male
disjoint with: Niece

Niece
type: Class
equivalent class: Class
  intersection of: Woman
  intersection of: Class
    union of: Restriction
      on property: hasAunt
      min cardinality: 1
    union of: Restriction
      on property: hasUncle
      min cardinality: 1
subclass of: Relative
subclass of: Restriction
  on property: hasSex
  has value: Female

Parent
type: Class
equivalent class: Class
  intersection of: Person
  intersection of: Restriction
    on property: hasChild
    min cardinality: 1

Sibling
type: Class
equivalent class: Class
  intersection of: Person
  intersection of: Restriction
    on property: hasSibling
    min cardinality: 1

Uncle
type: Class
equivalent class: Class
  intersection of: Man
  intersection of: Class
    union of: Restriction
      on property: hasNephew
      min cardinality: 1
    union of: Restriction
      on property: hasNiece
      min cardinality: 1
subclass of: Relative
subclass of: Restriction
  on property: hasSex
  has value: Male

Atom
type: Class
comment: common superclass

Builtin
type: Class
subclass of: Restriction
  on property: maxArgs
  all values from: int
subclass of: Restriction
  on property: args
  all values from: int
subclass of: Restriction
  on property: minArgs
  max cardinality: 1
subclass of: Restriction
  on property: maxArgs
  max cardinality: 1
subclass of: Restriction
  on property: minArgs
  all values from: int
subclass of: Restriction
  on property: args
  max cardinality: 1

BuiltinAtom
type: Class
subclass of: Atom
subclass of: Restriction
  on property: arguments
  all values from: List
subclass of: Restriction
  on property: arguments
  cardinality: 1
subclass of: Restriction
  on property: builtin
  all values from: Builtin
subclass of: Restriction
  on property: builtin
  cardinality: 1
comment: consists of a builtin and a List of arguments

ClassAtom
type: Class
subclass of: Atom
subclass of: Restriction
  on property: argument1
  all values from: Thing
subclass of: Restriction
  on property: classPredicate
  all values from: Class
subclass of: Restriction
  on property: argument1
  cardinality: 1
subclass of: Restriction
  on property: classPredicate
  cardinality: 1
comment: consists of a classPredicate and argument1

DataRangeAtom
type: Class
subclass of: Atom
subclass of: Restriction
  on property: argument1
  cardinality: 1
subclass of: Restriction
  on property: argument1
  all values from: Thing
subclass of: Restriction
  on property: dataRange
  all values from: Datatype
subclass of: Restriction
  on property: dataRange
  cardinality: 1
comment: consists of a dataRange and argument1

DatavaluedPropertyAtom
type: Class
subclass of: Error3
subclass of: Atom
subclass of: Restriction
  on property: argument1
  cardinality: 1
subclass of: Restriction
  on property: argument1
  all values from: Thing
subclass of: Restriction
  on property: propertyPredicate
  cardinality: 1
subclass of: Restriction
  on property: argument2
  all values from: Literal
subclass of: Restriction
  on property: propertyPredicate
  all values from: DatatypeProperty
comment: consists of a propertyPredicate (owl:DatatypeProperty), argument1 (owl:Thing), and argument2 (rdfs:Literal)

DifferentIndividualsAtom
type: Class
subclass of: Error6
subclass of: Atom
subclass of: Restriction
  on property: argument2
  all values from: Thing
subclass of: Restriction
  on property: argument1
  all values from: Thing
subclass of: Restriction
  on property: argument1
  cardinality: 1
comment: consists of argument1 (owl:Thing) and argument2 (owl:Thing)

Imp
type: Class
subclass of: Restriction
  on property: head
  all values from: AtomList
subclass of: Restriction
  on property: body
  max cardinality: 1
subclass of: Restriction
  on property: head
  max cardinality: 1
subclass of: Restriction
  on property: body
  all values from: AtomList
comment: implication (rule)

IndividualPropertyAtom
type: Class
subclass of: Error2
subclass of: Atom
subclass of: Restriction
  on property: argument1
  all values from: Thing
subclass of: Restriction
  on property: propertyPredicate
  all values from: ObjectProperty
subclass of: Restriction
  on property: propertyPredicate
  cardinality: 1
subclass of: Restriction
  on property: argument1
  cardinality: 1
subclass of: Restriction
  on property: argument2
  all values from: Thing
comment: consists of a propertyPredicate (owl:ObjectProperty), argument1 (owl:Thing), and argument2 (owl:Thing)

SameIndividualAtom
type: Class
subclass of: Error1
subclass of: Atom
subclass of: Restriction
  on property: argument1
  cardinality: 1
subclass of: Restriction
  on property: argument1
  all values from: Thing
subclass of: Restriction
  on property: argument2
  all values from: Thing
comment: consists of argument1 (owl:Thing) and argument2 (owl:Thing)

Variable
type: Class
comment: indicate that a URI is being used as a variable

F01
type: NamedIndividual
type: Woman
name: Mary
has sex: Female

F02
type: NamedIndividual
type: Woman
name: Catherine
has sex: Female
has parent: M01

F03
type: NamedIndividual
type: Woman
name: Elizabeth
has sex: Female
has parent: M01

F04
type: NamedIndividual
type: Woman
name: Marilyn
has sex: Female

F05
type: NamedIndividual
type: Woman
name: Anna
has sex: Female
has parent: M02

F06
type: NamedIndividual
type: Woman
name: Eva
has sex: Female
has parent: M04

F07
type: NamedIndividual
type: Woman
name: Audrey
has sex: Female

F08
type: NamedIndividual
type: Woman
name: Emily
has sex: Female

F09
type: NamedIndividual
type: Woman
name: Surrey
has sex: Female
has parent: M03

F10
type: NamedIndividual
type: Woman
name: Whitney
has sex: Female

M01
type: NamedIndividual
type: Man
name: Bill
has consort: F01
has child: F02
has child: F03
has child: M02
has sex: Male

M02
type: NamedIndividual
type: Man
name: Adam
has consort: F04
has child: F05
has parent: M01
has child: M03
has child: M05
has sex: Male

M03
type: NamedIndividual
type: Man
name: George
has consort: F08
has child: F09
has parent: M02
has sex: Male

M04
type: NamedIndividual
type: Man
name: Phillipe
has consort: F03
has child: F06
has child: M06
has parent: M07
has sex: Male

M05
type: NamedIndividual
type: Man
name: Michael
has parent: M02
has sex: Male

M06
type: NamedIndividual
type: Man
name: Tom
has consort: F10
has parent: M04
has child: M09
has sex: Male

M07
type: NamedIndividual
type: Man
name: Johon
has consort: F07
has child: M04
has sex: Male

M08
type: NamedIndividual
type: Man
name: Jimmy
has consort: F06
has child: M10
has sex: Male

M09
type: NamedIndividual
type: Man
name: Ronald
has parent: M06
has sex: Male

M10
type: NamedIndividual
type: Man
name: Jack
has parent: M08
has sex: Male

abs
type: NamedIndividual
args: 2

add
type: NamedIndividual
min args: 3

addDayTimeDurationToDate
type: NamedIndividual
args: 3

addDayTimeDurationToDateTime
type: NamedIndividual
args: 3

addDayTimeDurationToTime
type: NamedIndividual
args: 3

addDayTimeDurations
type: NamedIndividual
args: 3

addYearMonthDurationToDate
type: NamedIndividual
args: 3

addYearMonthDurationToDateTime
type: NamedIndividual
args: 3

addYearMonthDurations
type: NamedIndividual
args: 3

anyURI
type: NamedIndividual
args: 7

booleanNot
type: NamedIndividual
args: 2

ceiling
type: NamedIndividual
args: 2

contains
type: NamedIndividual
args: 2

containsIgnoreCase
type: NamedIndividual
args: 2

cos
type: NamedIndividual
args: 2

date
type: NamedIndividual
args: 5

dateTime
type: NamedIndividual
args: 8

dayTimeDuration
type: NamedIndividual
args: 5

divide
type: NamedIndividual
args: 3

divideDayTimeDuration
type: NamedIndividual
args: 3

divideYearMonthDuration
type: NamedIndividual
args: 3

empty
type: NamedIndividual
args: 1

endsWith
type: NamedIndividual
args: 2

equal
type: NamedIndividual
args: 2

first
type: NamedIndividual
args: 2

floor
type: NamedIndividual
args: 2

greaterThan
type: NamedIndividual
args: 2

greaterThanOrEqual
type: NamedIndividual
args: 2

integerDivide
type: NamedIndividual
args: 3

length
type: NamedIndividual
args: 2

lessThan
type: NamedIndividual
args: 2

lessThanOrEqual
type: NamedIndividual
args: 2

listConcat
type: NamedIndividual
min args: 3

listIntersection
type: NamedIndividual
args: 3

listSubtraction
type: NamedIndividual
args: 3

lowerCase
type: NamedIndividual
args: 2

matches
type: NamedIndividual
args: 2

member
type: NamedIndividual
args: 2

mod
type: NamedIndividual
args: 3

multiply
type: NamedIndividual
min args: 3

multiplyDayTimeDuration
type: NamedIndividual
args: 3

multiplyYearMonthDuration
type: NamedIndividual
args: 3

normalizeSpace
type: NamedIndividual
args: 2

notEqual
type: NamedIndividual
args: 2

pow
type: NamedIndividual
args: 3

replace
type: NamedIndividual
args: 4

resolveURI
type: NamedIndividual
args: 3

rest
type: NamedIndividual
args: 2

round
type: NamedIndividual
args: 2

roundHalfToEven
type: NamedIndividual
args: 2

sin
type: NamedIndividual
args: 2

startsWith
type: NamedIndividual
args: 2

stringConcat
type: NamedIndividual
min args: 3

stringEqualIgnoreCase
type: NamedIndividual
args: 2

stringLength
type: NamedIndividual
args: 2

sublist
type: NamedIndividual
args: 2

substring
type: NamedIndividual
min args: 3
max args: 4

substringAfter
type: NamedIndividual
args: 3

substringBefore
type: NamedIndividual
args: 3

subtract
type: NamedIndividual
args: 3

subtractDateTimesYieldingDayTimeDuration
type: NamedIndividual
args: 3

subtractDateTimesYieldingYearMonthDuration
type: NamedIndividual
args: 3

subtractDates
type: NamedIndividual
args: 3

subtractDayTimeDurationFromDate
type: NamedIndividual
args: 3

subtractDayTimeDurationFromDateTime
type: NamedIndividual
args: 3

subtractDayTimeDurationFromTime
type: NamedIndividual
args: 3

subtractDayTimeDurations
type: NamedIndividual
args: 3

subtractTimes
type: NamedIndividual
args: 3

subtractYearMonthDurationFromDate
type: NamedIndividual
args: 3

subtractYearMonthDurationFromDateTime
type: NamedIndividual
args: 3

subtractYearMonthDurations
type: NamedIndividual
args: 3

tan
type: NamedIndividual
args: 2

time
type: NamedIndividual
args: 5

translate
type: NamedIndividual
args: 4

unaryMinus
type: NamedIndividual
args: 2

unaryPlus
type: NamedIndividual
args: 2

upperCase
type: NamedIndividual
args: 2

yearMonthDuration
type: NamedIndividual
args: 3