something is a person if it is either Adam or Eve, or if it has a mother. We can express this in a single rule as follows:

person(X) :- (X=adam; X=eve; mother(X, Y)).

  • sebastiancarlos@lemmy.sdf.orgOP
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    6 days ago

    Depends on how you want to define your domain knowledge.

    The thing you need to define for sure is the predicate mother/2 (Which has arity 2, or in other words, two arguments). From then on, multiple options are available:

    1. Take mother(X, Y) as an “axiom”, and define mother terms for all elements:
    mother(abel, eve).
    mother(isaac, sarah).
    
    1. Derive mother(X, Y) from female(X) and parent(X, Y) terms.
    mother(X, Y) :- 
      parent(X, Y), 
      female(Y).
    
    1. Smash the institutional gender power structures and define only parent/2 terms instead of mother/2 and father/2.