Skip to content

Instantly share code, notes, and snippets.

@ad-m
Last active October 27, 2015 06:47
Show Gist options
  • Select an option

  • Save ad-m/4bfb1d39949c707a8697 to your computer and use it in GitHub Desktop.

Select an option

Save ad-m/4bfb1d39949c707a8697 to your computer and use it in GitHub Desktop.
Projektowanie drzewa genealogicznego w środowisku języka Prolog
digraph G {
subgraph cluster_0 {
style=filled;
color=lightgrey;
node [style=filled,color=white];
a -> b [label="rodzic"];
kobieta [shape=polygon];
mezczyzna [shape=circle];
label = "legenda";
}
agata [shape=polygon]
daria [shape=polygon]
oliwia [shape=polygon]
natalia [shape=polygon]
justyna [shape=polygon]
danuta [shape=polygon]
ela [shape=polygon]
wioletta [shape=polygon]
ola [shape=polygon]
izabela [shape=polygon]
barabasz [shape=circle]
jozef [shape=circle]
witek [shape=circle]
tomasz [shape=circle]
kamil [shape=circle]
karol [shape=circle]
marek [shape=circle]
kacper [shape=circle]
wlodzimierz [shape=circle]
adam [shape=circle]
wiktor [shape=circle]
jurek [shape=circle]
piotr [shape=circle]
agata -> witek;
agata -> tomasz;
jozef -> tomasz;
jozef -> witek;
witek -> oliwia;
witek -> natalia;
daria -> oliwia
daria -> natalia
tomasz -> kamil
justyna -> kamil
tomasz -> karol
justyna -> karol
danuta -> justyna
danuta -> piotr
danuta -> adam
danuta -> izabela
danuta -> wioletta
danuta -> jurek
barabasz -> justyna
barabasz -> piotr
barabasz -> adam
barabasz -> izabela
barabasz -> wioletta
barabasz -> jurek
izabela -> ola
marek -> ola
wioletta -> kacper
wlodzimierz -> kacper
piotr -> wiktor
ela -> wiktor
agata -> "1955" [label="rok"];
daria -> "1970" [label="rok"];
oliwia -> "1999" [label="rok"];
natalia -> "2000" [label="rok"];
justyna -> "1972" [label="rok"];
danuta -> "1954" [label="rok"];
ela -> "1970" [label="rok"];
wioletta -> "1973" [label="rok"];
ola -> "1998" [label="rok"];
izabela -> "1973" [label="rok"];
barabasz -> "1954" [label="rok"];
jozef -> "1954" [label="rok"];
witek -> "1970" [label="rok"];
tomasz -> "1972" [label="rok"];
kamil -> "1995" [label="rok"];
karol -> "1995" [label="rok"];
marek -> "1970" [label="rok"];
kacper -> "2005" [label="rok"];
wlodzimierz -> "1975" [label="rok"];
adam -> "1970" [label="rok"];
wiktor -> "2000" [label="rok"];
jurek -> "1973" [label="rok"];
piotr -> "1977" [label="rok"];
natalia -> liceum [label="uczone"];
oliwia -> liceum [label="uczone"];
kamil -> studia [label="uczone"];
karol -> studia [label="uczone"];
ola -> technikum [label="uczone"];
wiktor -> gimnazjum [label="uczone"];
kacper -> podstawowka [label="uczone"];
natalia -> grac [label="lubi"];
oliwia -> czytac [label="lubi"];
kamil -> malowac [label="lubi"];
karol -> rysowac [label="lubi"];
ola -> kolorowac [label="lubi"];
wiktor -> plywac [label="lubi"];
kacper -> jezdzic [label="lubi"];
natalia -> pilka [label="posiada"];
oliwia -> ksiazka [label="posiada"];
kamil -> farby [label="posiada"];
karol -> kredki [label="posiada"];
ola -> rower [label="posiada"];
wiktor -> czepek [label="posiada"];
kacper -> deskorolka [label="posiada"];
}
digraph G {
subgraph cluster_0 {
style=filled;
color=lightgrey;
node [style=filled,color=white];
a -> b [label="rodzic"];
kobieta [shape=polygon];
mezczyzna [shape=circle];
label = "legenda";
}
agata [shape=polygon]
daria [shape=polygon]
oliwia [shape=polygon]
natalia [shape=polygon]
justyna [shape=polygon]
danuta [shape=polygon]
ela [shape=polygon]
wioletta [shape=polygon]
ola [shape=polygon]
izabela [shape=polygon]
barabasz [shape=circle]
jozef [shape=circle]
witek [shape=circle]
tomasz [shape=circle]
kamil [shape=circle]
karol [shape=circle]
marek [shape=circle]
kacper [shape=circle]
wlodzimierz [shape=circle]
adam [shape=circle]
wiktor [shape=circle]
jurek [shape=circle]
piotr [shape=circle]
agata -> witek;
agata -> tomasz;
jozef -> tomasz;
jozef -> witek;
witek -> oliwia;
witek -> natalia;
daria -> oliwia
daria -> natalia
tomasz -> kamil
justyna -> kamil
tomasz -> karol
justyna -> karol
danuta -> justyna
danuta -> piotr
danuta -> adam
danuta -> izabela
danuta -> wioletta
danuta -> jurek
barabasz -> justyna
barabasz -> piotr
barabasz -> adam
barabasz -> izabela
barabasz -> wioletta
barabasz -> jurek
izabela -> ola
marek -> ola
wioletta -> kacper
wlodzimierz -> kacper
piotr -> wiktor
ela -> wiktor
}
rodzic(agata,witek).
rodzic(agata,tomasz).
rodzic(jozef,tomasz).
rodzic(jozef,witek).
rodzic(witek,oliwia).
rodzic(witek,natalia).
rodzic(daria,oliwia).
rodzic(daria,natalia).
rodzic(tomasz,kamil).
rodzic(justyna,kamil).
rodzic(tomasz,karol).
rodzic(justyna,karol).
rodzic(danuta,justyna).
rodzic(danuta,piotr).
rodzic(danuta,adam).
rodzic(danuta,izabela).
rodzic(danuta,wioletta).
rodzic(danuta,jurek).
rodzic(barabasz,justyna).
rodzic(barabasz,piotr).
rodzic(barabasz,adam).
rodzic(barabasz,izabela).
rodzic(barabasz,wioletta).
rodzic(barabasz,jurek).
rodzic(izabela, ola).
rodzic(marek, ola).
rodzic(wioletta, kacper).
rodzic(wlodzimierz, kacper).
rodzic(piotr, wiktor).
rodzic(ela, wiktor).
kobieta(agata).
kobieta(daria).
kobieta(oliwia).
kobieta(natalia).
kobieta(justyna).
kobieta(danuta).
kobieta(ela).
kobieta(wioletta).
kobieta(ola).
kobieta(izabela).
mezczyzna(barabasz).
mezczyzna(jozef).
mezczyzna(witek).
mezczyzna(tomasz).
mezczyzna(kamil).
mezczyzna(karol).
mezczyzna(marek).
mezczyzna(kacper).
mezczyzna(wlodzimierz).
mezczyzna(adam).
mezczyzna(wiktor).
mezczyzna(jurek).
mezczyzna(piotr).
dziecko(X,Y):-rodzic(Y,X).
para(X,Y):- rodzic(X,Z), rodzic(Y,Z),X\=Y,!.
corka(C,Y):-rodzic(Y,C),kobieta(C).
syn(S,Y):-rodzic(Y,S),mezczyzna(S).
matka(X,Y):-rodzic(X,Y),kobieta(X).
ojciec(X,Y):- rodzic(X,Y),mezczyzna(X).
maz(X,Y):- mezczyzna(X),para(X,Y).
zona(X,Y):-kobieta(X), para(X,Y).
rodzenstwo(X,Y):-rodzic(Z,X),rodzic(Z,Y),mezczyzna(Z),X\=Y.
brat(X,Y):-rodzenstwo(X,Y),mezczyzna(Y).
siostra(X,Y):-rodzenstwo(X,Y),kobieta(Y).
dziadek(X,Y):-ojciec(X,Z),rodzic(Z,Y).
babcia(X,Y):- matka(X,Z),rodzic(Z,Y).
wnuczeta(X,Z):-dziecko(X,C),dziecko(C,Z).
wnuk(X,Z):-wnuczeta(X,Z),mezczyzna(X).
wnuczka(X,Z):-wnuczeta(X,Z),kobieta(X).
ciotka(X,Z):-rodzic(V,X),(siostra(V,Z);(brat(Y,V),zona(Z,Y))).
wujek(X,Z):-rodzic(V,X),(brat(V,Z);(siostra(Y,V),maz(Z,Y))).
ziec(X,Z):-corka(C, X),maz(Z,C).
brat_cioteczny(X,Z):-(wujek(X,C);ciotka(X,C)),syn(Z,C).
stryj(X,Z):-ojciec(C,X),brat(C,Z).
siostra_stryjeczna(X,Z):-stryj(X,C),corka(Z,C).
synowa(X,Z):-syn(C,X),zona(Z,C).
siostra_cioteczna(X,Z):-ciotka(X,C),corka(Z,C).
brat_stryjeczny(X,Z):-stryj(X,C),syn(Z,C).
rok(agata, 1955).
rok(daria, 1970).
rok(oliwia, 1999).
rok(natalia, 2000).
rok(justyna, 1972).
rok(danuta, 1954).
rok(ela, 1970).
rok(wioletta, 1973).
rok(ola, 1998).
rok(izabela, 1973).
rok(barabasz,1954).
rok(jozef, 1954).
rok(witek, 1970).
rok(tomasz, 1972).
rok(kamil, 1995).
rok(karol, 1995).
rok(marek, 1970).
rok(kacper, 2005).
rok(wlodek, 1975).
rok(adam, 1970).
rok(wiktor, 2000).
rok(jurek, 1973).
rok(piotr, 1977).
uczone(natalia, liceum).
uczone(oliwia, liceum).
uczone(kamil,studia).
uczone(karol, studia).
uczone(ola,technikum).
uczone(wiktor, gimnazjum).
uczone(kacper, podstawowka).
lubi(natalia, grac).
lubi(oliwia, czytac).
lubi(kamil, malowac).
lubi(karol, rysowac).
lubi(ola,kolorowac).
lubi(wiktor, plywac).
lubi(kacper, jezdzic).
posiada(natalia, pilka).
posiada(oliwia, ksiazka).
posiada(kamil, farby).
posiada(karol, kredki).
posiada(ola,rower).
posiada(wiktor, czepek).
posiada(kacper, deskorolka).
gra_pilka(X):- lubi(X,grac),posiada(X,pilka).
wiek(X,Z):- rok(X,Y),(Z is 2015 - Y).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment