43

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)).

you are viewing a single comment's thread
view the rest of the comments
[-] sebastiancarlos@lemmy.sdf.org 8 points 1 week ago* (last edited 1 week 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.
[-] silasmariner@programming.dev 6 points 1 week ago

I never saw such a potent combination of gender politics and prolog

this post was submitted on 03 Jan 2025
43 points (92.2% liked)

Programmer Humor

32707 readers
163 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS