domingo, 4 de octubre de 2015

Practica 3: Razonamiento Lógico con Powerloom

Octavio Castañeda
Antonio Sepúlveda


04 de octubre de 2015

Agentes Inteligentes

Fernando Velasco

Código:
(CL:IN-PACKAGE "STELLA")
(DEFMODULE " /PL-USER/ARBOLF")
(IN-MODULE "PL-USER/ARBOLF")
(IN-DIALECT :KIF)

(DEFCONCEPT PERSON)
(DEFCONCEPT MALE (?P PERSON) :<=> (NOT (FEMALE ?P)))
(DEFCONCEPT FEMALE (?P PERSON) :<=> (NOT (MALE ?P)))
(DEFCONCEPT PARENT (?P) :<=> (AND (PERSON ?P) (EXISTS ?C (PARENT-OF ?P ?C))))
(DEFRELATION PARENT-OF ((?P PARENT) (?C PERSON)))
(DEFCONCEPT MOTHER (?M PERSON) :<=> (AND (PARENT ?M) (FEMALE ?M)))
(DEFCONCEPT FATHER (?F PERSON) :<=> (AND (PARENT ?F) (MALE ?F)))
(DEFCONCEPT CHILD (?C PERSON) :<=> (AND (PERSON ?C) (EXISTS ?P (PARENT-OF ?P ?C))))
(DEFRELATION CHILD-OF ((?C PERSON) (?P PERSON)))
(DEFRELATION SIBLING-OF ((?X PERSON) (?Y PERSON)) :<=> (EXISTS ?P (AND (PARENT-OF ?P ?X) (PARENT-OF ?P ?Y) (NOT (= ?X ?Y)))) :=> (PARENT-OF ?P ?Y))
(DEFRELATION GRANDPARENT-OF ((?X PERSON) (?Y PERSON)) :<=> (EXISTS ?P (AND (PARENT-OF ?X ?P) (PARENT-OF ?P ?Y))) :=> (PARENT-OF ?P ?Y))
(DEFCONCEPT SPOUSE (?A) :<=> (AND (PERSON ?A) (EXISTS ?B (SPOUSE-OF ?A ?B))))
(DEFRELATION SPOUSE-OF ((?SP PERSON) (?P PERSON)) :<=> (AND (PERSON ?P) (SPOUSE-OF ?P ?SP)))
(DEFCONCEPT HUSBAND (?H PERSON) :<=> (EXISTS ?W (AND (SPOUSE-OF ?H ?W) (MALE ?H))))
(DEFCONCEPT WIFE (?H PERSON) :<=> (EXISTS ?W (AND (SPOUSE-OF ?H ?W) (FEMALE ?H))))
(DEFCONCEPT GRANDFATHER (?X PERSON) :<=> (EXISTS ?Y (AND (GRANDPARENT-OF ?X ?Y) (MALE ?X))))
(DEFCONCEPT GRANDMOTHER (?X PERSON) :<=> (EXISTS ?Y (AND (GRANDPARENT-OF ?X ?Y) (FEMALE ?X))))
(DEFCONCEPT BROTHER ((?X PERSON)) :<=> (EXISTS ?Y (AND (SIBLING-OF ?X ?Y) (MALE ?X))))
(DEFCONCEPT SISTER ((?X PERSON)) :<=> (EXISTS ?Y (AND (SIBLING-OF ?X ?Y) (FEMALE ?X))))
(DEFCONCEPT SON (?S PERSON) :<=> (EXISTS ?P (AND (PARENT-OF ?P ?S) (MALE ?S))))
(DEFCONCEPT DAUGHTER (?S PERSON) :<=> (EXISTS ?P (AND (PARENT-OF ?P ?S) (FEMALE ?S))))
(DEFRELATION UNCLEAUNT-OF ((?U PERSON) (?C PERSON)) :<=> (EXISTS ?P (AND (SIBLING-OF ?U ?P) (PARENT-OF ?P ?C))))
(DEFRELATION GRAN-UNCLE-AUNT-OF ((?g PERSON)(?c PERSON)) :<=> (EXISTS ?X (AND(UNCLE-AUNT-OF ?G ?X (PARENT-OF ?P ?C))))
(DEFRELATION COUSINES-OF ((?C PERSON) (?Y PERSON))
  :<=> (EXISTS ?U (AND (UNCLEAUNT-OF ?U ?C) (PARENT-OF ?U ?Y))))
(DEFCONCEPT COUSIN (?C PERSON)
  :<=> (EXISTS ?P (AND (COUSINES-OF ?C ?P) (MALE ?C))))
(DEFCONCEPT COUSINE (?C PERSON)
  :<=> (EXISTS ?P (AND (COUSINES-OF ?C ?P) (FEMALE ?C))))
(DEFRELATION PARENTINLAW-OF ((?P PERSON) (?Y PERSON))
  :<=> (EXISTS ?S (AND (PARENT-OF ?P ?S) (SPOUSE-OF ?S ?Y))))
(DEFCONCEPT MOTHERINLAW (?P PERSON)
  :<=> (EXISTS ?S (AND (PARENTINLAW-OF ?P ?S) (FEMALE ?P))))
(DEFCONCEPT FATHERINLAW (?P PERSON)
  :<=> (EXISTS ?S (AND (PARENTINLAW-OF ?P ?S) (MALE ?P))))
(DEFRELATION GRANDCHILD-OF ((?GC PERSON) (?P PERSON))
  :<=> (EXISTS ?S (AND (PARENT-OF ?P ?S) (PARENT-OF ?S ?GC))))
(DEFCONCEPT GRANDSON (?S PERSON)
  :<=> (EXISTS ?X (AND (GRANDCHILD-OF ?S ?X) (MALE ?S))))
(DEFCONCEPT GRANDDAUGHTER (?S PERSON)
  :<=> (EXISTS ?X (AND (GRANDCHILD-OF ?S ?X) (FEMALE ?S))))
(DEFRELATION SIBLINGINLAW-OF ((?S PERSON) (?P PERSON))
  :<=> (OR (EXISTS ?H (AND (SPOUSE-OF ?S ?H) (SIBLING-OF ?H ?P))) (EXISTS ?H (AND (SIBLING-OF ?S ?H) (SPOUSE-OF ?H ?P)))))
(DEFCONCEPT BROTHERINLAW (?P PERSON)
  :<=> (EXISTS ?X (AND (SIBLINGINLAW-OF ?P ?X) (MALE ?P))))
(DEFCONCEPT SISTERINLAW (?P PERSON)
  :<=> (EXISTS ?X (AND (SIBLINGINLAW-OF ?P ?X) (FEMALE ?P))))
(DEFRELATION NEPHE-WNIECE-OF ((?N PERSON) (?X PERSON))
  :<=> (EXISTS ?P (AND (SIBLING-OF ?X ?P) (PARENT-OF ?P ?N))))
(DEFCONCEPT NEPHEW (?P PERSON)
  :<=> (EXISTS ?X (AND (NEPHEWNIECE-OF ?P ?X) (MALE ?P))))
(DEFCONCEPT NIECE (?P PERSON)
  :<=> (EXISTS ?X (AND (NEPHEWNIECE-OF ?P ?X) (FEMALE ?P))))
(DEFRELATION GRANDUNCLE-OF ((?G PERSON) (?C PERSON))
  :<=> (EXISTS ?X (AND (UNCLEAUNT-OF ?G ?X) (PARENT-OF ?X ?C))))
(ASSERT (MALE MIGUEL))
(ASSERT (MALE ALEJANDRO))
(ASSERT (MALE FERNANDO))
(ASSERT (MALE ALBERTO))
(ASSERT (FEMALE CARMEN))
(ASSERT (FEMALE MARIA))
(ASSERT (FEMALE LUCIA))
(ASSERT (FEMALE BERTA))
(ASSERT (FEMALE PATRICIA))
(ASSERT (MALE TOMAS))
(ASSERT (BROTHER FERNANDO))
(ASSERT (SIBLING-OF ALEJANDRO CARMEN))
(ASSERT (GRANDPARENT-OF ALBERTO MARCOS))
(ASSERT (PARENT MARIA))
(ASSERT (PARENT CARMEN))
(ASSERT (PAREN ALBERTO))
(ASSERT (SIBLINGINLAW-OF TOMAS LUCIA))
(ASSERT (SISTER BERTA))
(ASSERT (FEMALE LOLA))
(ASSERT (FEMALE MIMADRE))
(ASSERT (FEMALE LOLASMOM))
(ASSERT (FEMALE MI))
(ASSERT (PARENT-OF LOLASMOM LOLA))
(ASSERT (PARENT-OF MIMADRE LOLASMOM))
(ASSERT (PARENT-OF MIMADRE MI))
(ASSERT (PERSON MARCOS))
(ASSERT (PARENT LOLASMOM))
(ASSERT (PARENT MIMADRE))
(ASSERT (MALE ABUELO))
(ASSERT (MALE HERMANO))
(ASSERT (FEMALE HIJA))
(ASSERT (PARENT-OF HERMANO HIJA))
(ASSERT (PARENT-OF ABUELO HERMANO))
(ASSERT (SIBLING-OF HERMANO MI))
(ASSERT (PARENT HERMANO))
(ASSERT (PARENT ABUELO))
(ASSERT (FEMALE TOTA))
(ASSERT (FEMALE |TO¤A|))
(ASSERT (MALE PEPE))
(ASSERT (PARENT-OF |TO¤A| PEPE))
(ASSERT (SIBLING-OF TOTA |TO¤A|))
(ASSERT (UNCLEAUNT-OF TITO TOTA))
(ASSERT (PARENT |TO¤A|))
(ASSERT (PERSON TITO))
(ASSERT (MALE JORGE))
(ASSERT (MALE PADRE))
(ASSERT (PARENT-OF PADRE JORGE))
(ASSERT (PARENT-OF ABUELO PADRE))
(ASSERT (PARENT PADRE))
(ASSERT (MALE JOVEN))
(ASSERT (FEMALE ESPOSA))
(ASSERT (MALE UHIJO))
(ASSERT (FEMALE ABUELA))
(ASSERT (PARENT-OF ABUELA UHIJO))
(ASSERT (SPOUSE-OF UHIJO ESPOSA))
(ASSERT (PARENT-OF ESPOSA JOVEN))
(ASSERT (GRANDPARENT-OF ABUELA MI))
(ASSERT (PARENT ABUELA))
(ASSERT (PARENT ESPOSA))

1. ¿Qué relación tiene conmigo Lola? Si su madre fue la única hija de mi madre.

Ask:
(retrieve all (and (person ?p) (person ?s) (nephew-niece-of ?p ?s)))
(ask (nephew-niece-of Lola I))
(ask (niece Lola))




2.  ¿Qué es de mí el abuelo paterno de la hija de mi único hermano?

Ask:
(ask (parent-of Abuelo I))



3.  Tito es tío de Tota, Tota es hermana de Toña, Toña es madre de Pepe ¿Qué es Tito de Pepe?

Ask:
(ask (grand-uncle-aunt-of Tito Pepe))



4.  ¿Quién es el único nieto del padre del padre de Jorge?

Ask:
(retrieve all ?p (grandson ?p))
(ask (grandchild-of Jorge Abuelo))



5.  ¿Qué parentesco tiene conmigo? Un joven que es el hijo de la esposa del único hijo de mi abuela.

Ask:
(ask (sibling-of I Joven))



Comentarios:

La verdad es que tuvimos muchos problemas al ejecutar los Ask a Powerloom, no sabemos porque nos daban los resultados aun cuando estaban definidas tanto las relaciones como los conceptos. Pero bueno en la parte superior viene el código que utilizamos y en las preguntas viene cual sería el Ask para obtener la respuesta.















No hay comentarios:

Publicar un comentario