#lang datalog % ----------------------FRANCOUZSKA NOVA VLNA - PRIKLAD--------------------------- % ----pokud kod kopirujete do online editoru, smazte prvni radek #lang datalog---- % --- online editor: http://ysangkok.github.com/mitre-datalog.js/wrapper.html ---- % -------------------------------------------------------------------------------- % reziser(autor, dilo, cesky nazev) director(francois_truffaut, tirez_sur_le_pianiste, strilejte_na_pianistu). director(francois_truffaut, jules_et_jim, jules_a_jim). director(francois_truffaut, la_peau_douce, hebka_kuze). director(francois_truffaut, fahrenheit_451, 451_fahrenheita). director(francois_truffaut, la_mariee_etait_en_noir, nevesta_byla_v_cernem). director(francois_truffaut, les_quatre_cents_coups, nikdo_mne_nema_rad). director(francois_truffaut, antoine_et_colette, antoine_a_colette). % (original, cesky nazev) - jak se ten film jmenuje v CR? Zeptam se napr. "filmcz(la_peau_douce,X)?" filmcz(B,C) :- director(A,B,C). % pouze film a poze reziser pro pripadne dalsi uziti only_director(A) :- director(A,B,C). only_film(B) :- director(A,B,C). % autor/autori scenare (autor,dilo) screenwriter(marcel_moussy, tirez_sur_le_pianiste). screenwriter(jean_gruault, jules_et_jim). screenwriter(jean_louis_richarr, la_peau_douce). screenwriter(jean_louis_richarr, fahrenheit_451). screenwriter(jean_louis_richarr, la_mariee_etait_en_noir). screenwriter(marcel_moussy, les_quatre_cents_coups). % autor scenare pro vyhledavani s ceskymi nazvy scenarista(A,B) :- screenwriter(A,C), filmcz(C,B). only_screenwriter(A) :- screenwriter(A,B). % skladatel (aurtor,dilo) composer(georges_delerue, tirez_sur_le_pianiste). composer(georges_delerue, jules_et_jim). composer(georges_delerue, la_peau_douce). composer(bernard_herrmann, fahrenheit_451). composer(bernard_herrmann, la_mariee_etait_en_noir). composer(jean_constantin, les_quatre_cents_coups). composer(georges_delerue, antoine_et_colette). skladatel(A,B) :- composer(A,C), filmcz(C,B). only_composer(A) :- composer(A,B). % tvurce filmu (osoba,dilo), priklad dotazu: "film_maker(X, jules_et_jim)?" vypise vsechny tvurce filmu Jules a Jim. film_maker(A,B) :- director(A,B,C). film_maker(A,B) :- screenwriter(A,B). film_maker(A,B) :- composer(A,B). % tvurce pro ceske hledani napr. "tvurce(jean_louis_richarr, X)?" tvurce(A,B) :- film_maker(A,C), filmcz(C,B). % co_op = cooperator(jmeno,jmeno). Vypise tvurce, s kterymy dotazovany spolupracoval napr. "co_op(georges_delerue, X)?" co_op(A,B) :- film_maker(A,C), director(B,C,D). co_op(A,B) :- film_maker(A,C), screenwriter(B,C). co_op(A,B) :- film_maker(A,C), composer(B,C). spolupracovnik(A,B) :- co_op(A,B). % herec + role (herec, film, role) actor(charles_aznavour, tirez_sur_le_pianiste, charlie_kohler). actor(charles_aznavour, tirez_sur_le_pianiste, edouard_saroyan). actor(marie_dubois, tirez_sur_le_pianiste, lena). actor(nicole_berger, tirez_sur_le_pianiste, therese_saroyan). actor(henri_serre, jules_et_jim, jim). actor(oskar_wernere, jules_et_jim, jules). actor(jeanne_moreau, jules_et_jim, catherine). actor(jean_desailly, la_peau_douce, pierre_lachenay). actor(francoise_dorleac, la_peau_douce, nicole). actor(nelly_benedetti, la_peau_douce, franca_lachenay). actor(oskar_werner, fahrenheit_451, guy_montag). actor(julie_christie, fahrenheit_451, clarisse). actor(julie_christie, fahrenheit_451, linda_montag). actor(cyril_cusack, fahrenheit_451, the_captain). actor(jeanne_moreau, la_mariee_etait_en_noir, julie_kohler). actor(michel_bouquet, la_mariee_etait_en_noir, coral). actor(jean_claude_brialy, la_mariee_etait_en_noir, corey). actor(jean_pierre_leaud, les_quatre_cents_coups, antoine_doinel). actor(jeanne_moreau, les_quatre_cents_coups, woman_with_dog). actor(jean_claude_brialy, les_quatre_cents_coups, man_in_street). actor(jean_pierre_leaud, antoine_et_colette, antoine_doinel). actor(marie_france_pisier, antoine_et_colette, colette). actor(jean_francois_adam, antoine_et_colette, albert_tazzi). % herec (jmeno, filmcz, role) - slouzi pro vyhledavani v cj herec(A,B,C) :- actor(A,D,C), filmcz(D,B). % postava ve filmu (role, film) otazka: jake postavy jsou ve filmu? napr. "role(X, jules_et_jim)?" role(C,B) :- actor(A,B,C). rolecz(A,B) :- role(A,C), filmcz(C,B). % fullcredits neboli tvurci a herci dohromady, proste vsichni co s tim filmem maji cokoliv spolecneho (jmeno, film). fullcredits(A,B) :- film_maker(A,B). fullcredits(A,B) :- actor(A,B,C). tvurci_a_herci(A,B) :- fullcredits(A,C), filmcz(C,B).