Recomendador de Pelicula,Musica,Libro

Excuse me, I’m new

I’m using: SWI-Prolog (threaded, 64 bits, version 8.1.2)

I want the code to: Recommended movies, music, books

look on the internet and what I found is something like that:

% your code here

:- use_module(library(pairs)).

recomienda(musica,Gustos,Recomendacion):-
	findall(Musica,musica(Musica),Musicos),						%Crea una lista con todas los musicos en la base de conocimiento
	make_recomendation(Gustos,Musicos,Recomendaciones),			%make_recomendation filtra musicos de acuerdo a los gustos y las ordena
	member(Recomendacion,Recomendaciones).	

recomienda(libro,Gustos,Recomendacion):-
	findall(Libro,libro(Libro),Libros),							%Crea una lista con todos los libros en la base de conocimiento
	make_recomendation(Gustos,Libros,Recomendaciones),			%make_recomendation filtra los libros de acuerdo a los gustos y las ordena
	member(Recomendacion,Recomendaciones).						%Se coge un elemento de la lista de libros

recomienda(pelicula,Gustos,Recomendacion):-
	findall(Pelicula,pelicula(Pelicula),Peliculas),				%Crea una lista con todas las películas en la base de conocimiento
	make_recomendation(Gustos,Peliculas,Recomendaciones),		%make_recomendation filtra las películas de acuerdo a los gustos y las ordena
	member(Recomendacion,Recomendaciones).						%Se coge un elemento de la lista de perlículas

make_recomendation(Gustos,[],[]).								%Función para recursividad.
make_recomendation(Gustos,Elementos,SortedRecomendaciones):-	
	findall(Calidad-Elemento,(member(Elemento,Elementos),calidad(Elemento,Gustos,Calidad),Calidad>0),Pairs),
	%Crea una lista de pares Calidad-Elemento donde Calidad > 0	(al menos tiene que tener un género en común para incluirse en la lista)
	sort(Pairs,AuxPairs),										%Ordena la lista de acuerdo con la Calidad pero de manera ascendente																						
	invert(AuxPairs,SortedPairs),								%Invierte la lista para que quede ordenado de forma descendente
	pairs_values(SortedPairs,SortedRecomendaciones).			%Crea una lista solo con las peliculas, eliminando la calidad


calidad(Elemento,Gustos,Calidad):-
	genero(Elemento,Generos),
	my_intersect(Gustos,Generos,Comunes),
	tam(Comunes,Calidad).
/****************************************************************************
UTILIDADES
----------
my_intersect/3: devuelve la intersección de dos listas (elementos comunes) 
invert/2:		invierte el orden de la lista
addend/3:		añade elemento al final de una lista
tam/2: 			devuelve el tamaño de una lista
*****************************************************************************/
my_intersect([],_,[]).
my_intersect([A|As],Bs,[A|Cs]):-
    member(A,Bs),
    !,
    my_intersect(As,Bs,Cs).
my_intersect([_|As],Bs,Cs):-
	my_intersect(As,Bs,Cs).

invert([],[]).
invert([H|L],L2):-
	invert(L,L3),
	addend(H,L3,L2).

addend(X,[],[X]).
addend(X,[C|R],[C|R1]):-
	addend(X,R,R1). 

tam([],0).
tam([_|L],N):-
	tam(L,X),
	N is X + 1.

/****************************************************************************
Base de conocimiento - Películas
--------------------
Cotiene diferentes películas de diferentes géneros.
*****************************************************************************/

pelicula(sagaStarWars).
director(sagaStarWars,georgeLucas).
genero(sagaStarWars,[spaceOpera,cienciaFiccion,blockbuster,accion]).

pelicula(titanic).
director(titanic,jamesCameron).
genero(titanic,[romance,catastrofe,drama]).

pelicula(everithingIsIlluminated).
director(everithingIsIlluminated,lievSchreiber).
genero(everithingIsIlluminated,[comediaDramatica,comedia,drama,]).

pelicula(intoTheWild).
director(intoTheWild,seanPenn).
genero(intoTheWild,[drama,roadMovie,hechosReales]).

pelicula(ghostInTheShell).
director(ghostInTheShell,mamoruOshii).
genero(ghostInTheShell,[cienciaFiccion,cyberpunk,ciberpunk,thrillerPsicologico,thriller,animacion]).

pelicula(alien).
director(alien,ridleyScott).
genero(alien,[terror,cienciaFiccion,suspense]).

pelicula(lesMiserables).
director(lesMiserables,tomHooper).
genero(lesMiserables,[musical,historico,drama,romance]).

pelicula(moulinRouge).
director(moulinRouge,bazLuhrmann).
genero(moulinRouge,[musical,drama,romance]).

pelicula(amelie).
director(amelie,jeanPierreJeunet).
genero(amelie,[comedia,romance]).

pelicula(theFightClub).
director(theFightClub,davidFincher).
genero(theFightClub,[drama,comediaNegra,accion]).

pelicula(senToChihiroNoKamikakushi).
director(senToChihiroNoKamikakushi,hayaoMiyazaki).
genero(senToChihiroNoKamikakushi,[animacion,aventura,fantasía,drama]).




/****************************************************************************
Base de conocimiento - Libros
--------------------
Cotiene diferentes libros de diferentes géneros.
*****************************************************************************/

libro(amanecerRojo).
autor(amanecerRojo,pierceBrown).
genero(amanecerRojo,[novela,cienciaFiccion,distopia,juvenil]).

libro(lordOfTheRings).
autor(lordOfTheRings,jRRTolkien).
genero(lordOfTheRings,[fantasía,aventura,medieval,novelaCortes]).

libro(sagaEragon).
autor(sagaEragon,christopherPaolini).
genero(sagaEragon,[fantasía,aventura,dragones]).

libro(elResplandor).
autor(elResplandor,stephenKing).
genero(elResplandor,[novela,novelaNegra,terror,intriga,suspense]).

libro(laMillaVerde).
autor(laMillaVerde,stephenKing).
genero(laMillaVerde,[novela,suspense,drama,misterio]).

libro(elNombreDelViento).
autor(elNombreDelViento,patrickRothfuss).
genero(elNombreDelViento,[novela,fantasia,fantasiaHeroica,juvenil]).

libro(sagaNacidosDeLaBruma).
autor(sagaNacidosDeLaBruma,brandomSanderson).
genero(sagaNacidosDeLaBruma,[novela,fantasia,cienciaFiccion,juvenil]).

libro(sagaDelBrujo).
autor(sagaDelBrujo,andrzejSapkowski).
genero(sagaDelBrujo,[novela,fantasia,fantasiaHeroica]).

libro(laMaquinaDelTiempo).
autor(laMaquinaDelTiempo,herbertGeorgeWells).
genero(laMaquinaDelTiempo,[novela,cienciaFiccion,aventura]).

libro(guiaDelAutoestopistaGalactico).
autor(guiaDelAutoestopistaGalactico,douglasAdams).
genero(guiaDelAutoestopistaGalactico,[novela,cienciaFiccion,cienciaFiccionHumoristica,humor,novelaComica]).

libro(lasFloresDelMal).
autor(lasFloresDelMal,charlesBaudelaire).
genero(lasFloresDelMal,[poesia,poesiaLirica,muerte,belleza]).

/****************************************************************************
Base de conocimiento - Música
--------------------
Cotiene diferentes musicos de diferentes géneros.
*****************************************************************************/

musica(djangoReindhart).
genero(djangoReindhart,[jazz,swing,gypsyJazz,gypsy,guitar]).

musica(charlieParker).
genero(charlieParker,[jazz,bebop,saxophone]).

musica(milesDavis).
genero(milesDavis,[jazz,trumpet]).

musica(marcusMiller).
genero(marcusMiller,[jazz,funk,bass]).

musica(funkiwis).
genero(funkiwis,[rock,rap,funk,spanish]).

musica(diabloSwingOrchestra).
genero(diabloSwingOrchestra,[jazz,metal,swing,opera]).

musica(vitaImana).
genero(vitaImana,[metal,grooveMetal,spanish]).

musica(fkj).
genero(fkj,[electronica,techno,house,hiphop,jazz]).

musica(masego).
genero(masego,[hiphop,rap,electronica,house]).

musica(craneo).
genero(craneo,[hiphop,rap,lofi,spanish]).

musica(lasser).
genero(lasser,[hiphop,rap,lofi,spanish]).

musica(bnmp).
genero(bnmp,[rap,trap,spanish]).

musica(tommyCash).
genero(tommyCash,[trap]).

musica(littleBig).
genero(littleBig,[rave,funeralRave,rapRave,rap,russian]).

musica(juanLuisGuerra).
genero(juanLuisGuerra,[bachata,salsa,merengue,mambo,popLatino,latino]).

musica(buenaVistaSocialClub).
genero(buenaVistaSocialClub,[sonCubano,guajira,salsa,bolero]).

musica(afroCubanAllstars).
genero(afroCubanAllstars,[sonCubano,timba,salsa,latin]).

musica(donOmar).
genero(donOmar,[reggaeton,latino]).

musica(badBunny).
genero(badBunny,[reggaeton,trap,latino]).

musica(ledZeppelin).
genero(ledZeppelin,[clasico,rock]).

but what made it go and I get pure warnings, could someone help me?

Loading your code generates several discontiguous predicate warnings for the genero/2, pelicula/1, and director/2. But those warnings also print a suggested solution. E.g.

Use :- discontiguous genero/2. to suppress this message

Simply add the suggested directives at the top of your source file.