You've already forked ui-cviko1
14 KiB
14 KiB
In [3]:
my_string = "bbaccbabba"
In [4]:
print(my_string)
change = True
while change:
change = False
#Rule1
if my_string.find("ba") != -1:
my_string = my_string.replace("ba", "ab", 1)
print("Rule1: ", my_string)
change = True
if my_string.find("ca") != -1:
my_string = my_string.replace("ca", "ac", 1)
print("Rule2: ", my_string)
change = True
if my_string.find("cb") != -1:
my_string = my_string.replace("cb", "bc", 1)
print("Rule3: ", my_string)
change = True
In [5]:
%pip install pytholog
In [7]:
import pytholog as pl
In [15]:
new_base = pl.KnowledgeBase("persons")
new_base([
"man(john)",
"man(jack)",
"woman(alice)",
"father(jack, john)",
"father(jack, alice)"
])
In [16]:
# Je Jack muž?
new_base.query(pl.Expr("man(jack)"))
Out[16]:
In [17]:
# -||- John
new_base.query(pl.Expr("man(john)"))
Out[17]:
In [18]:
# -||- Tom
new_base.query(pl.Expr("man(tom)"))
Out[18]:
In [19]:
# Je Jack otcom Alice?
new_base.query(pl.Expr("father(jack, alice)"))
Out[19]:
In [20]:
# -||- Anna
new_base.query(pl.Expr("father(jack, anna)"))
Out[20]:
In [22]:
# Kto je muž?
new_base.query(pl.Expr("man(X)"))
Out[22]:
In [24]:
# Kto je otcom Alice?
new_base.query(pl.Expr("father(Who, alice)"))
Out[24]:
In [27]:
# Deti Johna
new_base.query(pl.Expr("father(jack, X)"))
Out[27]:
In [29]:
new_base = pl.KnowledgeBase("persons")
new_base(
[ "father(juraj,jozef)",
"father(jozef,jana)",
"father(jozef,zuzana)",
"father(michal,katka)",
"mother(dana,jana)",
"mother(dana,zuzana)",
"mother(dana,katka)",
"mother(jana,jano)",
"man(juraj)",
"man(jozef)",
"man(michal)",
"man(jano)",
"man(miro)",
"woman(dana)",
"woman(jana)",
"woman(zuzana)",
"woman(katka)"
]
)
In [30]:
# Je Jano muž?
new_base.query(pl.Expr("man(jano)"))
Out[30]:
In [32]:
# Kto je otcom Zuzany?
new_base.query(pl.Expr("father(X, zuzana)"))
Out[32]:
In [33]:
# Deti Dany
new_base.query(pl.Expr("mother(dana, X)"))
Out[33]:
In [34]:
# Kto sú ženy?
new_base.query(pl.Expr("woman(X)"))
Out[34]:
In [47]:
new_base = pl.KnowledgeBase("loves")
new_base(["likes(peter,jana)",
"likes(fero,maria)",
"likes(jozo,jana)",
"likes(peter,maria)",
"likes(jozo,maria)",
"likes(peter,pavla)",
"likes(jozo,pavla)",
"likes(peter,beer)",
"likes(fero,beer)",
"likes(peter,vine)",
"likes(maria,vine)",
"likes(pavla,beer)",
"likes(jana,beer)",
"likes(pavla,peter)",
"likes(jana,fero)",
"girl(jana)",
"girl(pavla)",
"girl(maria)",
"boy(peter)",
"boy(fero)",
"boy(jozo)"])
In [48]:
# Komu sa páči Pavla?
new_base.query(pl.Expr("likes(Who, pavla)"))
Out[48]:
In [49]:
# Kto a čo sa páči Pavle?
new_base.query(pl.Expr("likes(pavla, X)"))
Out[49]:
In [50]:
# Kto a čo sa páči Petrovi?
new_base.query(pl.Expr("likes(peter, X)"))
Out[50]:
In [51]:
# Kto a čo sa páči Ferovi?
new_base.query(pl.Expr("likes(fero, X)"))
Out[51]:
In [52]:
# Pridať pravidlo: Jožo má rád dievčatá, ktoré majú radi pivo.
new_base(["likes(jozo, X) :- girl(X), likes(X, beer)"])
In [53]:
# Koho má rad Jožo?
new_base.query(pl.Expr("likes(jozo, D)"))
Out[53]:
In [57]:
new_base.clear_cache()
In [61]:
# Pridať pravidlo: Fero má rád divčatá, ktoré majú radi jeho.
new_base(["likes(fero, X) :- girl(X), likes(X, fero)"])
In [63]:
# Kto a čo sa páči Ferovi?
new_base.query(pl.Expr("likes(fero, Dievca)"))
Out[63]:
In [64]:
family = pl.KnowledgeBase("family")
family([
"parents(susanne,charles,jane)",
"parents(susanne,charles,diana)",
"parents(susanne,charles,jack)",
"parents(jane,tom,peter)",
"parents(jane,tom,anne)",
"parents(anne,luis,kate)"])
In [65]:
# Kto je matka Petra?
family.query(pl.Expr("parents(Who, _, peter)"))
Out[65]:
In [66]:
# Kto je otec Petra?
family.query(pl.Expr("parents(_, Who, peter)"))
Out[66]:
In [ ]: