ID zu Prädikaten zuordnen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • ID zu Prädikaten zuordnen

    ID zu Prädikaten zuordnen

    Hallo,

    ich würde den männlichlichen, etc. Prädikaten nun gerne IDs zuordnen, damit doppelte Namen nicht sofort gelöscht werden, wenn es eine Namensgleichheit gibt.
    Eine ID zu generieren habe ich inzwischen hinbekommen, allerdings hängt es noch beim Einfügen in das Prädikat. Mit der folgenden Regel:


    [code:1]
    maennlich(M, X):- maennlich(M), generate_ID(X), writeq(maennlich(M, X)), write('.'), nl, fail. [/code:1]

    verabschiedet er sich immer in eine Endlosschleife, was wohl am Prädikat generate_ID/1 liegt. Alleine funktioniert dieses Prädikat jedoch.
    Wenn ich dieses Prädikat an die erste Stelle hole:

    [code:1]maennlich(M, X):- generate_ID(X), maennlich(M), writeq(maennlich(M, X)), write('.'), nl, fail. [/code:1]

    produziert er zwar immernoch eine Endlosschleife, aber er macht zwischendurch noch ein Paar Ausgaben. Allerdings kommt auch hier nicht das Gewünschte heraus. Dann gibt er nämlich sämtliche Männlich-Prädikate mit derselben ID aus und inkrementiert diese ID dann bei jedem Durchlauf.

    [code:1]
    ?- maennlich(M, X).

    maennlich(paul, 1).
    maennlich(fritz, 1).
    maennlich(heinz, 1).
    maennlich(paul, 2).
    maennlich(fritz, 2).
    maennlich(heinz, 2).
    maennlich(paul, 3).
    maennlich(fritz, 3).
    maennlich(heinz, 3).

    usw. [/code:1]

    Weiß jemand von euch weiter??