/************************************************************************** Programa familia Tenemos una serie de hechos, como es_masculino(jose), es_femenino(ana), es_progenitor_de(jose,raul), es_conyugue_de(jose,clara), bajo los cuales podemos hacer una serie de preguntas en relacion a los siguientes parentescos: es_masculino; es_femenino; es_progenitor_de; es_conyugue_de; es_padre_de; es_madre_de; es_abuelo_de; es_abuela_de; es hijo_de; es_hija_de; es_esposo_de; es_esposa_de; es_hermana_de; es_tio_de; es_tia_de; es_nieto_de; es_nieta_de; es_yerno_de; es_nuera_de; es_suegro_de; es_suegra_de; es_primo_de; es_prima_de. Sigue estos haciedole preguntas por los diferentes parentescos, si deseas puedes hacer una base de hechos en relacion a tu familia. Luego trata crear otros como, es_bis-abuelo_de, es_bis-abuela_de, etc. Recuerda que para un mejor seguimiento de las clausulas, puedes ocupar el trace, si deseas solo ver algunas clausulas tienes que colocar: trace clausula1 clausula2 clausula3...clausulaN Ej: si deseo seguir con trace solo las clausulas es_hermana_de, es_nieto_de y es_hija_de tendra que colocar al principio del programa trace es_hermana_de es_nieto_de es_hija_de Inteligencia Artificial Gonzalo Villarreal Farah Corre con la versi—n Turbo Prolog 2.0 ********************************************************************/ DOMAINS persona=symbol PREDICATES es_masculino(persona) es_femenino(persona) es_progenitor_de(persona,persona) es_conyugue_de(persona,persona) es_padre_de(persona,persona) es_madre_de(persona,persona) es_abuelo_de(persona,persona) es_abuela_de(persona,persona) es_hijo_de(persona,persona) es_hija_de(persona,persona) es_esposo_de(persona,persona) es_esposa_de(persona,persona) es_hermano_de(persona,persona) es_hermana_de(persona,persona) es_tio_de(persona,persona) es_tia_de(persona,persona) es_nieto_de(persona,persona) es_nieta_de(persona,persona) es_yerno_de(persona,persona) es_nuera_de(persona,persona) es_suegro_de(persona,persona) es_suegra_de(persona,persona) es_primo_de(persona,persona) es_prima_de(persona,persona) es_compadre_de(persona,persona) CLAUSES es_masculino(jose). es_masculino(raul). es_masculino(manuel). es_masculino(luis). es_masculino(jorge). es_masculino(juan). es_femenino(clara). es_femenino(maria). es_femenino(sandra). es_femenino(ana). es_femenino(rosa). es_femenino(cecilia). es_progenitor_de(jose,raul). es_progenitor_de(clara,raul). es_progenitor_de(manuel,sandra). es_progenitor_de(maria,sandra). es_progenitor_de(raul,ana). es_progenitor_de(sandra,ana). es_progenitor_de(raul,luis). es_progenitor_de(sandra,luis). es_progenitor_de(jorge,cecilia). es_progenitor_de(ana,cecilia). es_progenitor_de(luis,juan). es_progenitor_de(rosa,juan). es_conyugue_de(jose,clara). es_conyugue_de(manuel,maria). es_conyugue_de(raul,sandra). es_conyugue_de(jorge,ana). es_conyugue_de(luis,rosa). es_abuelo_de(X,Y):- es_progenitor_de(X,Z), es_progenitor_de(Z,Y), es_masculino(X). es_abuela_de(X,Y):- es_progenitor_de(X,Z), es_progenitor_de(Z,Y), es_femenino(X). es_padre_de(X,Y):- es_progenitor_de(X,Y), es_masculino(X). es_madre_de(X,Y):- es_progenitor_de(X,Y), es_femenino(X). es_hijo_de(X,Y):- es_progenitor_de(Y,X), es_masculino(X). es_hija_de(X,Y):- es_progenitor_de(Y,X), es_femenino(X). es_esposo_de(X,Y):- es_conyugue_de(X,Y), es_masculino(X). es_esposa_de(X,Y):- es_conyugue_de(X,Y), es_femenino(X). es_hermano_de(X,Y):- es_progenitor_de(Z,X), es_progenitor_de(Z,Y), es_masculino(X),!, X<>Y. es_hermana_de(X,Y):- es_progenitor_de(Z,X), es_progenitor_de(Z,Y), es_femenino(X),!, X<>Y. es_tio_de(X,Y):- es_progenitor_de(Z,Y), es_hermano_de(X,Z). es_tio_de(X,Y):- es_progenitor_de(P,Y), es_hermana_de(Z,P); es_hermano_de(Z,P), es_conyugue_de(X,Z). es_tia_de(X,Y):- es_progenitor_de(Z,Y), es_hermana_de(X,Z). es_tia_de(X,Y):- es_progenitor_de(P,Y), es_hermano_de(Z,P); es_hermana_de(Z,P), es_conyugue_de(Z,X). es_nieto_de(X,Y):- es_masculino(X), es_progenitor_de(Y,Z), es_progenitor_de(Z,X). es_nieta_de(X,Y):- es_femenino(X), es_progenitor_de(Y,Z), es_progenitor_de(Z,X). es_yerno_de(X,Y):- es_progenitor_de(Y,Z), es_conyugue_de(X,Z), es_masculino(X). es_nuera_de(X,Y):- es_progenitor_de(Y,Z), es_conyugue_de(Z,X), es_femenino(X). es_suegro_de(X,Y):- es_progenitor_de(X,Z), es_conyugue_de(Z,Y), es_masculino(X). es_suegro_de(X,Y):- es_conyugue_de(Y,Z), es_progenitor_de(X,Z), es_masculino(X). es_suegra_de(X,Y):- es_progenitor_de(X,Z), es_conyugue_de(Z,Y), es_femenino(X). es_suegra_de(X,Y):- es_conyugue_de(Y,Z), es_progenitor_de(X,Z), es_femenino(X). es_primo_de(X,Y):- es_masculino(X), es_progenitor_de(Z,X), es_progenitor_de(P,Y), es_hermano_de(Z,P), Z<>P. es_prima_de(X,Y):- es_femenino(X), es_progenitor_de(Z,X), es_progenitor_de(P,Y), es_hermana_de(Z,P), Z<>P. es_compadre_de(X,Y):- es_masculino(X), es_masculino(Y), es_progenitor_de(X,A), es_progenitor_de(Y,B), es_conyugue_de(A,B); es_progenitor_de(X,A), es_progenitor_de(Y,B), es_conyugue_de(B,A).