/* Gramatica Tiempo Metereologico */ analisis(F,X,Y) :- asercion(F,X,Y). /* lista de predicciones */ asercion([F]) --> una_prediccion(F). asercion([F|F2]) --> una_prediccion(F), mas_prediccion(F2). mas_prediccion([F]) --> conj, una_prediccion(F). mas_prediccion([F|F2]) --> coma, una_prediccion(F), mas_prediccion(F2). /* Prediccion */ una_prediccion([T]) -->tiempo(T,L),en,lugares(L). /* Tiempo */ tiempo(T,L) --> t_nom(normal,L,T). tiempo(T,L) --> t_adj(normal,L,T). tiempo(T,L) --> t_nom(M,L,T), adj(M). tiempo(T,L) --> adv(M), t_adj(M,L,T). /* Lista de lugares */ lugares(L) --> un_lugar(L). lugares([L|L2]) --> un_lugar(L), mas_lugares(L2). mas_lugares([L]) --> conj, en, un_lugar(L). mas_lugares([L|L2]) --> coma, en, un_lugar(L), mas_lugares(L2). /* Lugares */ un_lugar(F) --> npr(F). un_lugar(F) --> det(G,N), lug_nom(F,G,N). un_lugar(F) --> det(G,singular), gen(X,F,G,singular), lug_adj(X,_,_). un_lugar(F) --> det(G,plural), gen([X|X2],F,G,plural), lug_adj(X,_,_), zonas(X2). /* Lista de zonas */ zonas([L]) --> conj, lug_adj(L,_,_). zonas([L|L2]) --> coma, lug_adj(L,_,_),zonas(L2). /* Lexico - Gramatica */ npr(W) --> [W],{npropio(W)}. lug_nom(W,G,N) --> [W],{lugar_nom(W,G,N)}. lug_adj(W,G,N) --> [W],{lugar_adj(W,G,N)}. det(G,N) --> [W],{determ(W,G,N)}. coma --> [',']. conj --> [y]. en --> [en]. en --> []. gen(X,P,G,N) --> [W],{generico(W,X,P,G,N)}. t_nom(M,L,P) --> [W],{tiempo_nom(W,M,L,P)}. t_adj(M,L,P) --> [W],{tiempo_adj(W,M,L,P)}. adv(X) --> [W],{adverbio(W,X)}. adj(X) --> [W],{adjetivo(W,X)}. /* Lexicon */ /* Nombres propios */ npropio(catalunya). npropio(valencia). npropio(baleares). npropio(andalucia). /* Lugares */ lugar_nom(cantabrico,masculino,singular). lugar_nom(mediterraneo,masculino,singular). lugar_nom(atlantico,masculino,singular). lugar_nom(peninsula,femenino,singular). lugar_nom(islas,femenino,plural). lugar_nom(pirineos,masculino,plural). lugar_nom(norte,masculino,singular). lugar_nom(sur,masculino,singular). lugar_nom(este,masculino,singular). lugar_nom(oeste,masculino,singular). lugar_adj(cantabrica,femenino,singular). lugar_adj(mediterranea,femenino,singular). lugar_adj(atlantica,femenino,singular). lugar_adj(insular,femenino,singular). lugar_adj(pirenaica,femenino,singular). lugar_adj(peninsular,femenino,singular). lugar_adj(norte,masculino,singular). lugar_adj(sur,masculino,singular). lugar_adj(este,masculino,singular). lugar_adj(oeste,masculino,singular). generico(cuadrante,X,cuadrantre(X),masculino,singular). generico(region,X,region(X),femenino,singular). generico(zona,X,zona(X),femenino,singular). generico(costa,X,costa(X),femenino,singular). generico(tercio,X,tercio(X),masculino,singular). generico(regiones,X,region(X),femenino,plural). generico(zonas,X,zona(X),femenino,plural). generico(costas,X,costa(X),femenino,plural). /* Adjetivos */ adjetivo(variable,variable). adjetivo(escasa,escaso). adjetivo(escaso,escaso). adjetivo(escasos,escaso). adjetivo(escasas,escaso). adjetivo(creciente,creciente). adjetivo(radiante,radiante). adjetivo(moderado,moderado). adjetivo(moderada,moderado). adjetivo(moderadas,moderado). adjetivo(moderados,moderado). adjetivo(intenso,intenso). adjetivo(intensa,intenso). adjetivo(intensos,intenso). adjetivo(intensas,intenso). /* Tiempo */ tiempo_nom(lluvia,M,L,lluvia(M,L)). tiempo_nom(lluvias,M,L,lluvia(M,L)). tiempo_nom(chubascos,M,L,lluvia(M,L)). tiempo_nom(granizo,M,L,granizo(M,L)). tiempo_nom(sol,M,L,sol(M,L)). tiempo_nom(nebulosidad,M,L,nubes(M,L)). tiempo_nom(tormentas,M,L,tormenta(M,L)). tiempo_adj(soleado,M,L,sol(M,L)). tiempo_adj(lluvioso,M,L,lluvia(M,L)). tiempo_adj(nuboso,M,L,nubes(M,L)). tiempo_adj(tormentoso,M,L,tormenta(M,L)). /* Adverbios */ adverbio(moderadamente,moderado). adverbio(escasamente,escaso). adverbio(poco,poco). adverbio(muy,mucho). adverbio(ocasionalmente,ocasional). adverbio(ligeramente,ocasional). /* Determinantes */ determ(el,masculino,singular). determ(los,masculino,plural). determ(las,femenino,plural). determ(la,femenino,singular).