Demo voor de thesis presentatie

advertisement
Demo voor de thesis presentatie
Ik laat eerst de files zien met database en query. .
Database file: demo.l.pro: (dit is de echte file; het commentaar wordt
genegeerd door de parser).
Demo presentatie
Database:
Regel1: een ouder van een ouder is een grootouder
kind(X,Y), kind(Y,Z) :> grootouder(Z,X).
Regel2: een grootouder die vrouwelijk is is een grootmoeder
grootouder(Z,X), sexe (Z,vrouwelijk) :> grootmoeder(Z,X).
De feiten:
kind(wim, christine).
kind(christine,elza).
sexe(elza, vrouwelijk).
Query file: demo.q.pro:
Demo presentatie
Query: is er een X die de grootmoeder is van Y.
grootmoeder(X,Y).
Dan laat ik het interactief menu zien:
h : help
? : help
q : exit
s : perform a single inference step
g : go; stop working interactively
m : menu
e : execute menu item
qe : enter a query
p : print the graphs
De oplossing wordt dan stap per stap gezocht en uiteindelijk wordt de
oplossing getoond met het closure path, daarbij aantonende dat dit
closure pad niet slechts een theoretisch constructie is.
(Ik laat alleen de oplossing zien hier).
Solution:
Substitution:
[(_1?X,1$_$_2?Z)(_1?Y,1$_$_2?X)(1$_$_2?Z,2$_$_1?Z)(1$_$_2?X,2
$_$_1?X)(2$_$_1?X,wim)(2$_$_1?Y,christine)(2$_$_1?Z,elza)]
Closure:
(sexe(elza,vrouwelijk)./2,sexe(elza,vrouwelijk)./2)
(kind(christine,elza)./2,kind(christine,elza)./2)
(kind(wim,christine)./2,kind(wim,christine)./2)
(kind(wim,christine),kind(christine,elza) :>
grootouder(elza,wim)./2,grootouder(elza,wim)./2)
(grootouder(elza,wim),sexe(elza,vrouwelijk) :>
grootmoeder(elza,wim)./2,grootmoeder(elza,wim)./10)
General rule:
"sexe(X2,vrouwelijk),kind(X1,X2),kind(X3,X1) :>
grootmoeder(X2,X3)."
***End solutions***
Ik herhaal deze oplossing met commentaar:
De oplossing is een reeks substituties die op de query moeten toegepast
worden. De cijfers zijn de ‘provenance’ information ; deze geeft de
oorsprong van de triples aan.
Solution:
Substitution:
[(_1?X,1$_$_2?Z)(_1?Y,1$_$_2?X)(1$_$_2?Z,2$_$_1?Z)(1$_$_2?X,2
$_$_1?X)(2$_$_1?X,wim)(2$_$_1?Y,christine)(2$_$_1?Z,elza)]
Closure:
(sexe(elza,vrouwelijk)./2,sexe(elza,vrouwelijk)./2)
**** de vorige regel geeft aan dat het feit sexe(elza,vrouwelijk)
bevestigd is geworden.
****
(kind(christine,elza)./2,kind(christine,elza)./2)
(kind(wim,christine)./2,kind(wim,christine)./2)
(kind(wim,christine),kind(christine,elza) :>
grootouder(elza,wim)./2,grootouder(elza,wim)./2)
**** Vorige regel geeft aan als gegeven de rule en de feiten :
kind(wim,christine)./2, (ouder(christine,elza)./2,
dan kan geconcludeerd worden: grootouder(elza,wim)./2)
****
(grootouder(elza,wim),sexe(elza,vrouwelijk) :>
grootmoeder(elza,wim)./2,grootmoeder(elza,wim)./10)
General rule:
"sexe(X2,vrouwelijk),kind(X1,X2),kind(X3,X1) :>
grootmoeder(X2,X3)."
*****
Bovenstaande regel is de algemene regel voor het bepalen van een
grootmoeder die werd afgeleid vanuit het inferencing proces.
****
***End solutions***
Download