diff --git a/src/kb.py b/src/kb.py new file mode 100644 index 00000000..bb9e31e8 --- /dev/null +++ b/src/kb.py @@ -0,0 +1,871 @@ +import pytholog as pl + +tractor_kb = pl.KnowledgeBase("tractor") +tractor_kb([ + + # DEFINIOWANIE FAKTÓW + + # Zasoby traktora + "traktor(traktor)", + "pojemnosc_silnika(traktor, 5.65)", # l + "srednie_spalanie(traktor, 0.27)", # l/km + "ładowność_przyczepy(traktor, 2.75)", # ton + "cena_paliwa(traktor, 6.48)", # zł/l + "pojemność_podlewanie(traktor, 2000)", + + # Środowisko + "pole(pole)", + "wilgotnosc(pole, 10)", + "pH_gleby(pole, 6,5)", + + # Warzywa + "warzywo(bób)", + "warzywo(brokuł)", + "warzywo(brukselka)", + "warzywo(burak)", + "warzywo(cebula)", + "warzywo(cukinia)", + "warzywo(dynia)", + "warzywo(fasola)", + "warzywo(groch)", + "warzywo(jarmuż)", + "warzywo(kalafior)", + "warzywo(kalarepa)", + "warzywo(kapusta)", + "warzywo(marchew)", + "warzywo(ogórek)", + "warzywo(papryka)", + "warzywo(pietruszka)", + "warzywo(pomidor)", + "warzywo(por)", + "warzywo(rukola)", + "warzywo(rzepa)", + "warzywo(rzodkiewka)", + "warzywo(sałata)", + "warzywo(seler)", + "warzywo(szpinak)", + "warzywo(ziemniak)", + + # Średnia masa zebranych warzyw z jednego kwadratu przy standardowym obfitowaniu + "masa(bób, 24.33)", + "masa(brokuł, 30.02)", + "masa(brukselka, 15.32)", + "masa(burak, 30.46)", + "masa(cebula, 14.67)", + "masa(cukinia, 40.1)", + "masa(dynia, 68.01)", + "masa(fasola, 15.39)", + "masa(groch, 29.92)", + "masa(jarmuż, 14.51)", + "masa(kalafior, 65.82)", + "masa(kalarepa, 40.91)", + "masa(kapusta, 64.69)", + "masa(marchew, 13.73)", + "masa(ogórek, 27.89)", + "masa(papryka, 30.13)", + "masa(pietruszka, 14.75)", + "masa(pomidor, 16.89)", + "masa(por, 15.23)", + "masa(rukola, 13.28)", + "masa(rzepa, 30.93)", + "masa(rzodkiewka, 17.27)", + "masa(sałata, 25.92)", + "masa(seler, 24.45)", + "masa(szpinak, 15.29)", + "masa(ziemniak, 63.83)", + + # Ilość wody potrzebna w fazie wzrostu + "woda(bób, 30)", + "woda(brokuł, 40)", + "woda(brukselka, 50)", + "woda(burak, 25)", + "woda(cebula, 35)", + "woda(cukinia, 45)", + "woda(dynia, 55)", + "woda(fasola, 30)", + "woda(groch, 25)", + "woda(jarmuż, 35)", + "woda(kalafior, 40)", + "woda(kalarepa, 30)", + "woda(kapusta, 40)", + "woda(marchew, 35)", + "woda(ogórek, 45)", + "woda(papryka, 40)", + "woda(pietruszka, 35)", + "woda(pomidor, 50)", + "woda(por, 35)", + "woda(rukola, 45)", + "woda(rzepa, 30)", + "woda(rzodkiewka, 30)", + "woda(sałata, 40)", + "woda(seler, 35)", + "woda(szpinak, 35)", + "woda(ziemniak, 30)", + + # Fazy życia wraz z procentem potrzebnej wody (w stosunku do fazy wzrostu) + "faza(posadzono, 0.75)", + "faza(rośnie, 1)", + "faza(dojrzało, 0.5)", + "faza(zgniło, 0)", + + # Czas wysiewu - liczba oznacza dany tydzień roku + "wysiew(bób, 13)", + "wysiew(brokuł, 13)", + "wysiew(brukselka, 13)", + "wysiew(burak, 16)", + "wysiew(cebula, 13)", + "wysiew(cukinia, 19)", + "wysiew(dynia, 19)", + "wysiew(fasola, 17)", + "wysiew(groch, 13)", + "wysiew(jarmuż, 13)", + "wysiew(kalafior, 13)", + "wysiew(kalarepa, 13)", + "wysiew(kapusta, 13)", + "wysiew(marchew, 13)", + "wysiew(ogórek, 18)", + "wysiew(papryka, 14)", + "wysiew(pietruszka, 13)", + "wysiew(pomidor, 17)", + "wysiew(por, 13)", + "wysiew(rukola, 13)", + "wysiew(rzepa, 13)", + "wysiew(rzodkiewka, 13)", + "wysiew(sałata, 13)", + "wysiew(seler, 13)", + "wysiew(szpinak, 13)", + "wysiew(ziemniak, 15)", + + # Czas kiełkowania - dni + "czas(bób, posadzono, 7)", + "czas(brokuł, posadzono, 6)", + "czas(brukselka, posadzono, 4)", + "czas(burak, posadzono, 7)", + "czas(cebula, posadzono, 8)", + "czas(cukinia, posadzono, 5)", + "czas(dynia, posadzono, 8)", + "czas(fasola, posadzono, 6)", + "czas(groch, posadzono, 4)", + "czas(jarmuż, posadzono, 5)", + "czas(kalafior, posadzono, 4)", + "czas(kalarepa, posadzono, 7)", + "czas(kapusta, posadzono, 7)", + "czas(marchew, posadzono, 6)", + "czas(ogórek, posadzono, 6)", + "czas(papryka, posadzono, 4)", + "czas(pietruszka, posadzono, 7)", + "czas(pomidor, posadzono, 5)", + "czas(por, posadzono, 5)", + "czas(rukola, posadzono, 8)", + "czas(rzepa, posadzono, 8)", + "czas(rzodkiewka, posadzono, 4)", + "czas(sałata, posadzono, 6)", + "czas(seler, posadzono, 5)", + "czas(szpinak, posadzono, 5)", + "czas(ziemniak, posadzono, 6)", + + # Czas dojrzewania - dni + "czas(bób, rośnie, 69)", + "czas(brokuł, rośnie, 74)", + "czas(brukselka, rośnie, 84)", + "czas(burak, rośnie, 62)", + "czas(cebula, rośnie, 97)", + "czas(cukinia, rośnie, 47)", + "czas(dynia, rośnie, 92)", + "czas(fasola, rośnie, 54)", + "czas(groch, rośnie, 69)", + "czas(jarmuż, rośnie, 59)", + "czas(kalafior, rośnie, 65)", + "czas(kalarepa, rośnie, 54)", + "czas(kapusta, rośnie, 85)", + "czas(marchew, rośnie, 71)", + "czas(ogórek, rośnie, 53)", + "czas(papryka, rośnie, 78)", + "czas(pietruszka, rośnie, 62)", + "czas(pomidor, rośnie, 75)", + "czas(por, rośnie, 65)", + "czas(rukola, rośnie, 55)", + "czas(rzepa, rośnie, 65)", + "czas(rzodkiewka, rośnie, 53)", + "czas(sałata, rośnie, 57)", + "czas(seler, rośnie, 59)", + "czas(szpinak, rośnie, 62)", + "czas(ziemniak, rośnie, 67)", + + # Czas dojrzałosci - dni + "czas(bób, dojrzało, 7)", + "czas(brokuł, dojrzało, 6)", + "czas(brukselka, dojrzało, 8)", + "czas(burak, dojrzało, 5)", + "czas(cebula, dojrzało, 9)", + "czas(cukinia, dojrzało, 7)", + "czas(dynia, dojrzało, 5)", + "czas(fasola, dojrzało, 4)", + "czas(groch, dojrzało, 8)", + "czas(jarmuż, dojrzało, 7)", + "czas(kalafior, dojrzało, 6)", + "czas(kalarepa, dojrzało, 8)", + "czas(kapusta, dojrzało, 7)", + "czas(marchew, dojrzało, 9)", + "czas(ogórek, dojrzało, 6)", + "czas(papryka, dojrzało, 5)", + "czas(pietruszka, dojrzało, 7)", + "czas(pomidor, dojrzało, 4)", + "czas(por, dojrzało, 8)", + "czas(rukola, dojrzało, 4)", + "czas(rzepa, dojrzało, 5)", + "czas(rzodkiewka, dojrzało, 6)", + "czas(sałata, dojrzało, 7)", + "czas(seler, dojrzało, 8)", + "czas(szpinak, dojrzało, 4)", + "czas(ziemniak, dojrzało, 6)", + + # Ceny obsadzenia kwadratu + "cena(bób, 1.24)", + "cena(brokuł, 1.69)", + "cena(brukselka, 2.37)", + "cena(burak, 0.91)", + "cena(cebula, 1.53)", + "cena(cukinia, 1.48)", + "cena(dynia, 2.14)", + "cena(fasola, 1.07)", + "cena(groch, 0.87)", + "cena(jarmuż, 1.62)", + "cena(kalafior, 1.73)", + "cena(kalarepa, 1.39)", + "cena(kapusta, 1.91)", + "cena(marchew, 1.26)", + "cena(ogórek, 1.88)", + "cena(papryka, 1.96)", + "cena(pietruszka, 1.35)", + "cena(pomidor, 1.75)", + "cena(por, 1.14)", + "cena(rukola, 1.44)", + "cena(rzepa, 1.17)", + "cena(rzodkiewka, 1.08)", + "cena(sałata, 1.68)", + "cena(seler, 1.29)", + "cena(szpinak, 1.62)", + "cena(ziemniak, 1.97)", + + # Ceny zysku za kg + "zysk(bób, 17.34)", + "zysk(brokuł, 13.72)", + "zysk(brukselka, 27.91)", + "zysk(burak, 10.56)", + "zysk(cebula, 10.22)", + "zysk(cukinia, 11.88)", + "zysk(dynia, 12.45)", + "zysk(fasola, 14.76)", + "zysk(groch, 13.09)", + "zysk(jarmuż, 14.28)", + "zysk(kalafior, 13.67)", + "zysk(kalarepa, 11.94)", + "zysk(kapusta, 10.83)", + "zysk(marchew, 10.14)", + "zysk(ogórek, 10.65)", + "zysk(papryka, 11.37)", + "zysk(pietruszka, 10.97)", + "zysk(pomidor, 11.23)", + "zysk(por, 10.78)", + "zysk(rukola, 11.56)", + "zysk(rzepa, 10.31)", + "zysk(rzodkiewka, 10.19)", + "zysk(sałata, 10.42)", + "zysk(seler, 10.81)", + "zysk(szpinak, 11.79)", + "zysk(ziemniak, 9.94)", + + # Cena ekologicnzego warzywa (za kg) + "zysk_eko(bób, 19.34)", + "zysk_eko(brokuł, 15.72)", + "zysk_eko(brukselka, 29.91)", + "zysk_eko(burak, 12.56)", + "zysk_eko(cebula, 12.22)", + "zysk_eko(cukinia, 13.88)", + "zysk_eko(dynia, 14.45)", + "zysk_eko(fasola, 16.76)", + "zysk_eko(groch, 15.09)", + "zysk_eko(jarmuż, 16.28)", + "zysk_eko(kalafior, 15.67)", + "zysk_eko(kalarepa, 13.94)", + "zysk_eko(kapusta, 12.83)", + "zysk_eko(marchew, 12.14)", + "zysk_eko(ogórek, 12.65)", + "zysk_eko(papryka, 13.37)", + "zysk_eko(pietruszka, 13.97)", + "zysk_eko(pomidor, 13.23)", + "zysk_eko(por, 12.78)", + "zysk_eko(rukola, 13.56)", + "zysk_eko(rzepa, 12.31)", + "zysk_eko(rzodkiewka, 12.19)", + "zysk_eko(sałata, 12.42)", + "zysk_eko(seler, 12.81)", + "zysk_eko(szpinak, 13.79)", + "zysk_eko(ziemniak, 11.94)", + + # pH wzrostu + "ph_wzrostu(bób, 6.0)", + "ph_wzrostu(brokuł, 6.5)", + "ph_wzrostu(brukselka, 6.0)", + "ph_wzrostu(burak, 6.5)", + "ph_wzrostu(cebula, 5.5)", + "ph_wzrostu(cukinia, 6.0)", + "ph_wzrostu(dynia, 6.5)", + "ph_wzrostu(fasola, 6.0)", + "ph_wzrostu(groch, 6.5)", + "ph_wzrostu(jarmuż, 6.5)", + "ph_wzrostu(kalafior, 6.0)", + "ph_wzrostu(kalarepa, 6.5)", + "ph_wzrostu(kapusta, 6.0)", + "ph_wzrostu(marchew, 6.5)", + "ph_wzrostu(ogórek, 6.0)", + "ph_wzrostu(papryka, 6.5)", + "ph_wzrostu(pietruszka, 6.0)", + "ph_wzrostu(pomidor, 6.5)", + "ph_wzrostu(por, 6.0)", + "ph_wzrostu(rukola, 6.5)", + "ph_wzrostu(rzepa, 6.0)", + "ph_wzrostu(rzodkiewka, 6.5)", + "ph_wzrostu(sałata, 6.0)", + "ph_wzrostu(seler, 6.5)", + "ph_wzrostu(szpinak, 6.0)", + "ph_wzrostu(ziemniak, 5.5)", + + # Złe sąsiedztwo warzyw z procentem plonów, jaki otrzymujemy + "przeszkadza(bób, cebula, 0.90)", + "przeszkadza(bób, fasola, 0.80)", + "przeszkadza(bób, groch, 0.85)", + "przeszkadza(bób, papryka, 0.75)", + "przeszkadza(bób, pomidor, 0.70)", + "przeszkadza(bób, rukola, 0.90)", + "przeszkadza(bób, seler, 0.80)", + "przeszkadza(brokuł, brukselka, 0.85)", + "przeszkadza(brokuł, cebula, 0.90)", + "przeszkadza(brokuł, jarmuż, 0.80)", + "przeszkadza(brokuł, kalafior, 0.70)", + "przeszkadza(brokuł, kapusta, 0.75)", + "przeszkadza(brokuł, marchew, 0.85)", + "przeszkadza(brokuł, papryka, 0.65)", + "przeszkadza(brokuł, pietruszka, 0.80)", + "przeszkadza(brokuł, pomidor, 0.60)", + "przeszkadza(brokuł, rukola, 0.90)", + "przeszkadza(brokuł, rzodkiewka, 0.85)", + "przeszkadza(brukselka, cebula, 0.90)", + "przeszkadza(brukselka, kalafior, 0.70)", + "przeszkadza(brukselka, marchew, 0.85)", + "przeszkadza(brukselka, papryka, 0.75)", + "przeszkadza(brukselka, pietruszka, 0.80)", + "przeszkadza(brukselka, pomidor, 0.60)", + "przeszkadza(brukselka, por, 0.90)", + "przeszkadza(brukselka, rukola, 0.90)", + "przeszkadza(brukselka, rzodkiewka, 0.85)", + "przeszkadza(brukselka, ziemniak, 0.85)", + "przeszkadza(burak, cebula, 0.90)", + "przeszkadza(burak, fasola, 0.80)", + "przeszkadza(burak, marchew, 0.85)", + "przeszkadza(burak, papryka, 0.75)", + "przeszkadza(burak, pietruszka, 0.80)", + "przeszkadza(burak, por, 0.90)", + "przeszkadza(burak, rukola, 0.90)", + "przeszkadza(burak, szpinak, 0.85)", + "przeszkadza(burak, ziemniak, 0.85)", + "przeszkadza(cebula, fasola, 0.80)", + "przeszkadza(cebula, groch, 85)", + "przeszkadza(cebula, kalafior, 0.70)", + "przeszkadza(cebula, kapusta, 0.75)", + "przeszkadza(cebula, marchew, 0.85)", + "przeszkadza(cebula, papryka, 0.75)", + "przeszkadza(cebula, por, 0.90)", + "przeszkadza(cebula, rukola, 0.90)", + "przeszkadza(cebula, rzepa, 0.85)", + "przeszkadza(cebula, rzodkiewka, 0.85)", + "przeszkadza(cukinia, ogórek, 0.90)", + "przeszkadza(cukinia, papryka, 0.75)", + "przeszkadza(cukinia, pomidor, 0.60)", + "przeszkadza(cukinia, rukola, 0.90)", + "przeszkadza(cukinia, ziemniak, 0.85)", + "przeszkadza(dynia, ogórek, 0.90)", + "przeszkadza(dynia, papryka, 0.75)", + "przeszkadza(dynia, rukola, 0.90)", + "przeszkadza(dynia, ziemniak, 0.85)", + "przeszkadza(fasola, groch, 0.85)", + "przeszkadza(fasola, kalarepa, 0.80)", + "przeszkadza(fasola, kapusta, 0.75)", + "przeszkadza(fasola, papryka, 0.75)", + "przeszkadza(fasola, pomidor, 0.60)", + "przeszkadza(fasola, por, 0.90)", + "przeszkadza(fasola, rukola, 0.90)", + "przeszkadza(groch, papryka, 0.75)", + "przeszkadza(groch, pomidor, 0.60)", + "przeszkadza(groch, por, 0.90)", + "przeszkadza(groch, rukola, 0.90)", + "przeszkadza(groch, ziemniak, 0.85)", + "przeszkadza(jarmuż, kalafior, 0.70)", + "przeszkadza(jarmuż, marchew, 0.85)", + "przeszkadza(jarmuż, papryka, 0.75)", + "przeszkadza(jarmuż, pomidor, 0.60)", + "przeszkadza(jarmuż, por, 0.90)", + "przeszkadza(jarmuż, rukola, 0.90)", + "przeszkadza(jarmuż, ziemniak, 0.85)", + "przeszkadza(kalafior, kapusta, 0.75)", + "przeszkadza(kalafior, marchew, 0.85)", + "przeszkadza(kalafior, papryka, 0.75)", + "przeszkadza(kalafior, pietruszka, 0.80)", + "przeszkadza(kalafior, pomidor, 0.60)", + "przeszkadza(kalafior, por, 0.90)", + "przeszkadza(kalafior, rukola, 0.90)", + "przeszkadza(kalafior, rzodkiewka, 0.85)", + "przeszkadza(kalafior, ziemniak, 0.85)", + "przeszkadza(kalarepa, kapusta, 0.75)", + "przeszkadza(kalarepa, marchew, 0.85)", + "przeszkadza(kalarepa, papryka, 0.75)", + "przeszkadza(kalarepa, pietruszka, 0.80)", + "przeszkadza(kalarepa, pomidor, 0.60)", + "przeszkadza(kalarepa, rukola, 0.90)", + "przeszkadza(kalarepa, rzodkiewka, 0.85)", + "przeszkadza(kapusta, marchew, 0.85)", + "przeszkadza(kapusta, papryka, 0.75)", + "przeszkadza(kapusta, pietruszka, 0.80)", + "przeszkadza(kapusta, pomidor, 0.60)", + "przeszkadza(kapusta, rukola, 0.90)", + "przeszkadza(kapusta, rzodkiewka, 0.85)", + "przeszkadza(kapusta, ziemniak, 0.85)", + "przeszkadza(marchew, papryka, 0.75)", + "przeszkadza(marchew, pomidor, 0.60)", + "przeszkadza(marchew, pietruszka, 0.80)", + "przeszkadza(marchew, rukola, 0.90)", + "przeszkadza(marchew, por, 0.90)", + "przeszkadza(marchew, seler, 0.80)", + "przeszkadza(marchew, ziemniak, 0.85)", + "przeszkadza(ogórek, papryka, 0.75)", + "przeszkadza(ogórek, pomidor, 0.60)", + "przeszkadza(ogórek, rukola, 0.90)", + "przeszkadza(ogórek, rzepa, 0.85)", + "przeszkadza(ogórek, rzodkiewka, 0.85)", + "przeszkadza(ogórek, ziemniak, 0.85)", + "przeszkadza(papryka, pomidor, 0.60)", + "przeszkadza(papryka, por, 0.90)", + "przeszkadza(papryka, rukola, 0.90)", + "przeszkadza(papryka, rzepa, 0.85)", + "przeszkadza(papryka, rzodkiewka, 0.85)", + "przeszkadza(papryka, sałata, 0.80)", + "przeszkadza(papryka, seler, 0.80)", + "przeszkadza(papryka, szpinak, 0.85)", + "przeszkadza(papryka, zeimniak, 0.85)", + "przeszkadza(pietruszka, pomidor, 0.60)", + "przeszkadza(pietruszka, rukola, 0.90)", + "przeszkadza(pietruszka, sałata, 0.80)", + "przeszkadza(pomidor, rukola, 0.90)", + "przeszkadza(pomidor, rzodkiewka, 0.85)", + "przeszkadza(pomidor, ziemniak, 0.85)", + "przeszkadza(por, rukola, 0.90)", + "przeszkadza(por, seler, 0.80)", + "przeszkadza(rukola, rzepa, 0.85)", + "przeszkadza(rukola, rzodkiewka, 0.85)", + "przeszkadza(rukola, sałata, 0.80)", + "przeszkadza(rukola, seler, 0.80)", + "przeszkadza(rukola, szpinak, 0.85)", + "przeszkadza(rukola, ziemniak, 0.85)", + "przeszkadza(sałata, seler, 0.80)", + "przeszkadza(seler, ziemniak, 0.85)", + + # Dobre sąsiedztwo warzyw z procentem plonow, jaki otrzymujemy + "pomaga(bób, kapusta, 1.31)", + "pomaga(bób, ziemniak, 1.05)", + "pomaga(brokuł, por, 1.52)", + "pomaga(brokuł, seler, 1.21)", + "pomaga(brokuł, ziemniak, 1.12)", + "pomaga(burak, groch, 1.42)", + "pomaga(burak, kalarepa, 1.15)", + "pomaga(burak, kapusta, 1.38)", + "pomaga(burak, ogórek, 1.11)", + "pomaga(burak, pomidor, 1.25)", + "pomaga(burak, rzodkiewka, 1.34)", + "pomaga(burak, sałata, 1.41)", + "pomaga(burak, seler, 1.59)", + "pomaga(cebula, cukinia, 1.06)", + "pomaga(cebula, kalarepa, 1.41)", + "pomaga(cebula, ogórek, 1.25)", + "pomaga(cebula, pomidor, 1.46)", + "pomaga(cebula, sałata, 1.51)", + "pomaga(cukinia, groch, 1.59)", + "pomaga(cukinia, szpinak, 1.43)", + "pomaga(dynia, fasola, 1.14)", + "pomaga(fasola, jarmuż, 1.52)", + "pomaga(fasola, ogórek, 1.19)", + "pomaga(fasola, rzepa, 1.46)", + "pomaga(fasola, seler, 1.23)", + "pomaga(fasola, szpinak, 1.36)", + "pomaga(fasola, ziemniak, 1.18)", + "pomaga(groch, kalarepa, 1.26)", + "pomaga(groch, kapusta, 1.39)", + "pomaga(groch, marchew, 1.33)", + "pomaga(groch, ogórek, 1.11)", + "pomaga(groch, rzepa, 1.41)", + "pomaga(groch, rzodkiewka, 1.53)", + "pomaga(groch, seler, 1.42)", + "pomaga(groch, szpinak, 1.17)", + "pomaga(jarmuż, kapusta, 1.54)", + "pomaga(kalarepa, ogórek, 1.28)", + "pomaga(kalarepa, por, 1.15)", + "pomaga(kalarepa, seler, 1.27)", + "pomaga(kalarepa, szpinak, 1.45)", + "pomaga(kalarepa, ziemniak, 1.32)", + "pomaga(kapusta, seler, 1.41)", + "pomaga(kapusta, szpinak, 1.53)", + "pomaga(marchew, ogórek, 1.19)", + "pomaga(ogórek, por, 1.23)", + "pomaga(ogórek, seler, 1.47)", + "pomaga(ogórek, szpinak, 1.28)", + "pomaga(pietruszka, por, 1.29)", + "pomaga(pietruszka, rzodkiewka, 1.39)", + "pomaga(pomidor, por, 1.48)", + "pomaga(pomidor, rzepa, 1.24)", + "pomaga(pomidor, seler, 1.22)", + "pomaga(pomidor, szpinak, 1.36)", + "pomaga(por, rzodkiewka, 1.24)", + "pomaga(por, sałata, 1.56)", + "pomaga(por, szpinak, 1.17)", + "pomaga(rzepa, seler, 1.53)", + "pomaga(rzepa, szpinak, 1.05)", + "pomaga(rzodkieka, szpinak, 1.48)", + "pomaga(seler, szpinak, 1.37)", + "pomaga(szpinak, ziemniak, 1.45)", + + # Opryski + "oprysk(insektycyd)", + "oprysk(fungicyd)", + "oprysk(repelent)", + "oprysk(herbicyd)", + + # Cena oprysku + "cena(insektycyd, 48.47)", + "cena(fungicyd, 51.99)", + "cena(repelent, 31.18)", + "cena(herbicyd, 76.49)", + + # Wydajność oprysku - liczba kwadratów, na które wystarczy + "wydajność(insektycyd, 20.5)", + "wydajność(fungicyd, 8)", + "wydajność(repelent, 57)", + "wydajność(herbicyd, 12.25)", + + # Czas (w dniach), jaki należy odczekać między opryskami lub jaki musi upłynąć od oprysku do zbiorów + "czas(insektycyd, 14)", + "czas(fungicyd, 21)", + "czas(repelent, 4)", + "czas(herbicyd, 21)", + + # Nawozy + "nawóz(eco Growth)", + "nawóz(bioFertilizer Pro)", + "nawóz(greenNourish Boost)", + "nawóz(earthEssence Feed)", + "nawóz(ecoAcidicSoil)", + "nawóz(organicpHBalance Plus)", + "nawóz(bioAcidifier Pro)", + "nawóz(greenSoilGuardian pH-Down)", + "nawóz(naturalAcidicSoilMaster)", + + # Nawozy ekologiczne + "eko(eco Growth)", + "eko(bioFertilizer Pro)", + "eko(ecoAcidicSoil)", + "eko(organicpHBalance Plus)", + + + # Cena nawozu + "cena(eco Growth, 39.99)", + "cena(bioFertilizer Pro, 49.99)", + "cena(greenNourish Boost, 29.99)", + "cena(earthEssence Feed, 59.99)", + "cena(ecoAcidicSoil, 25.99)", + "cena(bioAcidifier Pro, 34.99)", + "cena(greenSoilGuardian, 27.50)", + "cena(organicpHBalance Plus, 29.99)", + "cena(naturalAcidicSoilMaster, 31.75)", + + # Wydajność nawozu w przeliczeniu na kwadrat + "wydajność(eco Growth, 23.5)", + "wydajność(bioFertilizer Pro, 15.25)", + "wydajność(greenNourish Boost, 15)", + "wydajność(earthEssence Feed, 35.5)", + "wydajność(ecoAcidicSoil, 18.75)", + "wydajność(organicpHBalancePlus, 12.5)", + "wydajność(bioAcidifierPro, 20)", + "wydajność(greenSoilGuardianpHDown, 30)", + "wydajność(naturalAcidicSoilMaster, 25)", + + # Przeznaczenie + "pH(ecoAcidicSoil, 6.0)", + "pH(bioAcidifier Pro, 6.0)", + "pH(greenSoilGuardian, 6.0)", + "pH(organicpHBalance Plus, 5.5)", + "pH(naturalAcidicSoilMaster, 5.5)", + + # Czas (w dniach), na jaki wystarczy jedno nawożenie + "czas(eco Growth, 24)", + "czas(bioFertilizer Pro, 29)", + "czas(greenNourish Boost, 37)", + "czas(earthEssence Feed, 21)", + "czas(ecoAcidicSoil, 18)", + "czas(bioAcidifier Pro, 21)", + "czas(greenSoilGuardian, 22)", + "czas(organicpHBalance Plus, 19)", + "czas(naturalAcidicSoilMaster, 23)", + + # Wpływ nawozu na warzywo + "pomaga(burak, eco Growth, 1.07)", + "pomaga(brokuł, eco Growth, 1.05)", + "pomaga(fasola, eco Growth, 1.04)", + "pomaga(groch, eco Growth, 1.06)", + "pomaga(jarmuż, eco Growth, 1.05)", + "pomaga(kalarepa, eco Growth, 1.12)", + "pomaga(kapusta, eco Growth, 1.04)", + "pomaga(marchew, eco Growth, 1.03)", + "pomaga(ogórek, eco Growth, 1.08)", + "pomaga(papryka, eco Growth, 1.06)", + "pomaga(pietruszka, eco Growth, 1.05)", + "pomaga(rzepa, eco Growth, 1.05)", + "pomaga(szpinak, eco Growth, 1.06)", + "pomaga(ziemniak, eco Growth, 1.04)", + "pomaga(burak, bioFertilizer Pro, 1.08)", + "pomaga(brokuł, bioFertilizer Pro, 1.06)", + "pomaga(pomidor, bioFertilizer Pro, 1.07)", + "pomaga(sałata, bioFertilizer Pro, 1.06)", + "pomaga(seler, bioFertilizer Pro, 1.05)", + "pomaga(szpinak, bioFertilizer Pro, 1.06)", + "pomaga(cebula, bioFertilizer Pro, 1.04)", + "pomaga(cukinia, bioFertilizer Pro, 1.03)", + "pomaga(marchew, bioFertilizer Pro, 1.05)", + "pomaga(rzepa, bioFertilizer Pro, 1.05)", + "pomaga(bób, greenNourish Boost, 1.03)", + "pomaga(brokuł, greenNourish Boost, 1.06)", + "pomaga(cebula, greenNourish Boost, 1.04)", + "pomaga(cukinia, greenNourish Boost, 1.05)", + "pomaga(dynia, greenNourish Boost, 1.04)", + "pomaga(groch, greenNourish Boost, 1.03)", + "pomaga(jarmuż, greenNourish Boost, 1.07)", + "pomaga(kalafior, greenNourish Boost, 1.05)", + "pomaga(kapusta, greenNourish Boost, 1.04)", + "pomaga(marchew, greenNourish Boost, 1.06)", + "pomaga(ogórek, greenNourish Boost, 1.04)", + "pomaga(papryka, greenNourish Boost, 1.05)", + "pomaga(pietruszka, greenNourish Boost, 1.06)", + "pomaga(por, greenNourish Boost, 1.03)", + "pomaga(rzodkiewka, greenNourish Boost, 1.04)", + "pomaga(sałata, greenNourish Boost, 1.07)", + "pomaga(seler, greenNourish Boost, 1.05)", + "pomaga(szpinak, greenNourish Boost, 1.08)", + "pomaga(ziemniak, greenNourish Boost, 1.04)", + "pomaga(rukola, greenNourish Boost, 1.06)", + "pomaga(bób, earthEssence Feed, 1.02)", + "pomaga(brokuł, earthEssence Feed, 1.04)", + "pomaga(cebula, earthEssence Feed, 1.03)", + "pomaga(cukinia, earthEssence Feed, 1.05)", + "pomaga(dynia, earthEssence Feed, 1.03)", + "pomaga(groch, earthEssence Feed, 1.02)", + "pomaga(jarmuż, earthEssence Feed, 1.06)", + "pomaga(kalafior, earthEssence Feed, 1.04)", + "pomaga(kapusta, earthEssence Feed, 1.03)", + "pomaga(marchew, earthEssence Feed, 1.05)", + "pomaga(ogórek, earthEssence Feed, 1.03)", + "pomaga(papryka, earthEssence Feed, 1.04)", + "pomaga(pietruszka, earthEssence Feed, 1.05)", + "pomaga(por, earthEssence Feed, 1.12)", + "pomaga(rukola, earthEssence Feed, 1.05)", + "pomaga(rzodkiewka, earthEssence Feed, 1.03)", + "pomaga(sałata, earthEssence Feed, 1.06)", + "pomaga(seler, earthEssence Feed, 1.04)", + "pomaga(szpinak, earthEssence Feed, 1.07)", + "pomaga(ziemniak, earthEssence Feed, 1.03)", + + # DEFINIOWANIE REGUŁ + + "ile_podlać(X, B, Y):- warzywo(X), woda(X,Z), faza(B,C), wilgotnosc(pole,A), Y is C*Z-A", + + "gnije(X, B, Y):- warzywo(X), woda(X,Z), faza(B,C), wilgotnosc(pole, A), Y is 1.3*C*Z-A", + + "usycha(X, B, Y):- warzywo(X), woda(X,Z), faza(B,C), wilgotnosc(pole, A), Y is 0.7*C*Z-A", + + "ile_rośnie(X,Y):- warzywo(X), czas(X, posadzono, A), czas(X, rośnie, B), Y is A+B", + + "cena_zakupu(Y, A, B):- warzywo(B), cena(B, C), Y is A*C", + + "koszt_nawozu(D, E, A, B, C):- warzywo(B), nawóz(D), pomaga(B,D,F)," + " czas(D, G), ile_rośnie(B,H), wydajność(D,I), cena(D,J), E is A*C/I*J", + + "multi_nawóz(A,B,C,D):- warzywo(C), nawóz(D), pomaga(C,D,A)", + + "nawóz_pH(D, B):- ph_wzrostu(D, A), pH(B, A)", + + "nawóz_do(A,B):- warzywo(A), nawóz(B), pomaga(A,B,C)", + + "zysk_warzywo(Y, A, B):- warzywo(B), zysk(B, C), Y is A*C", + + "zysk_warzywo_eko(Y, A, B):- warzywo(B), zysk_eko(B, C), Y is A*C", + + "czas_oprysk(A,B):- oprysk(B), czas(B,A)", + + "czas_nawóz(A,B):- nawóz(B), czas(B,A)", + + "koszt_oprysku(A,B,C):- oprysk(C), cena(C,D), wydajność(C,E), A is D*B/E", + + "spalono(A,B):- srednie_spalanie(traktor, C), A is B*C", + + "miejsce(A,B):- ładowność_przyczepy(traktor, C), A is C*1000-B", + + "zostało_wody(A,B,C):- " + +]) + +# Wygodniejsze w obsłudze metody + +# Woda + + +def zostalo_wody(zatankowano, zuzyto): + return [{"Zostało": zatankowano-zuzyto}] + + +def max_wody(): + wynik = float(tractor_kb.query(pl.Expr("pojemność_podlewanie(traktor, Max"))[0]["Max"]) + return [{"Max": wynik}] + +# Przyczepa + + +def miejsce(kg): + query = "miejsce(Miejsce, " + str(kg) + ")" + wynik = float(tractor_kb.query(pl.Expr(query))[0]["Miejsce"]) + return [{"Miejsce": wynik}] + + +# Paliwo + + +def spalono(litry): + query = "spalono(Spalono, " + str(litry) + ")" + wynik = float(tractor_kb.query(pl.Expr(query))[0]["Spalono"]) + return [{"Spalono": wynik}] + + +def koszt_paliwa(ile): + cena_paliwa = float(tractor_kb.query(pl.Expr("cena_paliwa(traktor, Cena)"))[0]["Cena"]) + return [{"Koszt": cena_paliwa*ile}] + + +# Uprawa - podlewanie + + +def ile_podlac(warzywo, faza): + query = "ile_podlać(" + warzywo + ", " + faza + ", Woda)" + return [{"Woda": float(tractor_kb.query(pl.Expr(query))[0]["Woda"])}] + + +def gnije(warzywo, faza): + query = "gnije(" + warzywo + ", " + faza + ", Woda)" + return [{"Woda": float(tractor_kb.query(pl.Expr(query))[0]["Woda"])}] + + +def usycha(warzywo, faza): + query = "usycha(" + warzywo + ", " + faza + ", Woda)" + return [{"Woda": float(tractor_kb.query(pl.Expr(query))[0]["Woda"])}] + + +# Warzywa + + +def ile_rosnie(warzywo): + query = "ile_rośnie(" + warzywo + ", Dni)" + return [{"Dni": float(tractor_kb.query(pl.Expr(query))[0]["Dni"])}] + + +def koszt_zakupu(ile, warzywo): + query = "cena_zakupu( Koszt, " + str(ile) + ", " + warzywo + ")" + return [{"Koszt": float(tractor_kb.query(pl.Expr(query))[0]["Koszt"])}] + + +def zysk_warzywo(kg, warzywo): + query = "zysk_warzywo( Koszt, " + str(kg) + ", " + warzywo + ")" + wynik = float(tractor_kb.query(pl.Expr(query))[0]["Koszt"]) + return [{"Koszt": wynik}] + + +def zysk_warzywo_eko(kg, warzywo): + query = "zysk_warzywo_eko( Koszt, " + str(kg) + ", " + warzywo + ")" + wynik = float(tractor_kb.query(pl.Expr(query))[0]["Koszt"]) + return [{"Koszt": wynik}] + + +# Nawozy + + +def koszt_nawozu(kwadraty, warzywo, ile_razy): + query = "koszt_nawozu(Nawóz, Koszt," + str(kwadraty) + ", " + warzywo + ", " + str(ile_razy) + ")" + wynik = tractor_kb.query(pl.Expr(query)) + for each in wynik: + each["Koszt"] = float(each["Koszt"]) + return wynik + + +def nawoz_ph(warzywo): + query = "nawóz_pH(" + warzywo + ", Nawóz)" + return tractor_kb.query(pl.Expr(query)) + + +def nawoz_do(warzywo): + query = "nawóz_do(" + warzywo + ", Nawóz)" + return tractor_kb.query(pl.Expr(query)) + + +def czas_nawoz(nawoz): + query = "czas_nawóz(Czas, " + nawoz + ")" + wynik = int(tractor_kb.query(pl.Expr(query))[0]["Czas"]) + return [{"Czas": wynik}] + + +# Opryski + + +def czas_oprysk(oprysk): + query = "czas_oprysk(Czas, " + oprysk + ")" + wynik = int(tractor_kb.query(pl.Expr(query))[0]["Czas"]) + return [{"Czas": wynik}] + + +def koszt_oprysku(kwadraty, oprysk): + query = "koszt_oprysku(Koszt, " + str(kwadraty) + ", " + oprysk + ")" + wynik = float(tractor_kb.query(pl.Expr(query))[0]["Koszt"]) + return [{"Koszt": wynik}] + + +# Mnożniki do zbiorów + + +def multi_sasiad(warzywo, sasiad): + proba = [ + tractor_kb.query(pl.Expr("pomaga(" + warzywo + ", " + sasiad + ", Mul)")), + tractor_kb.query(pl.Expr("pomaga(" + sasiad + ", " + warzywo + ", Mul)")), + tractor_kb.query(pl.Expr("przeszkadza(" + warzywo + ", " + sasiad + ", Mul)")), + tractor_kb.query(pl.Expr("przeszkadza(" + sasiad + ", " + warzywo + ", Mul)")) + ] + mnoznik = 1 + for zal in proba: + if zal != ['No']: + mnoznik *= float(zal[0]["Mul"]) + return [{"Mul": mnoznik}] + + +def multi_sasiedzi(warzywo, sasiedzi): + mnoznik = 1 + for sasiad in sasiedzi: + mnoznik *= multi_sasiad(warzywo, sasiad)[0]["Mul"] + return [{"Mul": mnoznik}] + + +def multi_nawoz(ile_razy, warzywo, nawoz): + query = "multi_nawóz(Mul, " + str(ile_razy) + ", " + warzywo + ", " + nawoz + ")" + wyniki = float(tractor_kb.query(pl.Expr(query))[0]["Mul"]) + return [{"Cena": pow(wyniki, ile_razy)}]