Erinevus lehekülje "Ask a query about Obama" redaktsioonide vahel
Mine navigeerimisribale
Mine otsikasti
| 1. rida: | 1. rida: | ||
| − | This example is a small modification of the obama1.txt problem, with an actual question added. | + | This example is a small modification of the obama1.txt problem, with an actual question added and a bit less output. |
Suppose we have a triplet | Suppose we have a triplet | ||
| 105. rida: | 105. rida: | ||
</pre> | </pre> | ||
| − | and look at the | + | and look at the --- PROOF --- in output. |
It is a good idea to send the output to a file and then process it later, like this: | It is a good idea to send the output to a file and then process it later, like this: | ||
Redaktsioon: 9. november 2015, kell 16:22
This example is a small modification of the obama1.txt problem, with an actual question added and a bit less output.
Suppose we have a triplet
http://en.wikipedia.org/wiki/Barack_Obama, id:type, http://conceptnet5.media.mit.edu/web/c/en/person
then we encode it in the otter format like this:
rdf("http://en.wikipedia.org/wiki/Barack_Obama",
"id:type",
"http://conceptnet5.media.mit.edu/web/c/en/person").
and then we add three handmade common-sense taxonomy rules (observe that A->B is equivalent to -A | B)
-rdf(X,"id:type",
"http://conceptnet5.media.mit.edu/web/c/en/person") |
rdf(X,"id:type",
"http://conceptnet5.media.mit.edu/web/c/en/animal").
-rdf(X,"id:type",
"http://conceptnet5.media.mit.edu/web/c/en/animal") |
rdf(X,"id:type",
"mortal").
-rdf(X,"id:type",
"http://conceptnet5.media.mit.edu/web/c/en/person") |
rdf(X,"id:CapableOf",
"id:eat").
Now we add the question: is Obama mortal? We add the question in a negated form, like this:
-rdf("http://en.wikipedia.org/wiki/Barack_Obama",
"id:type",
"mortal").
The whole problem obama2.txt with the strategy selection and everything, ready to run:
% clear automatic strategy selection
clear(auto).
% use capital letters (A,X,T,...) as vars
set(prolog_style_variables).
% select the search strategy
set(hyper_res). % an alternative is to use set(binary_res).
set(factor).
% select sensible amount of output
clear(print_given). % uncomment to see input and process
clear(print_kept). % do not prints out generated and kept clauses.
assign(stats_level, 0).
% just make it stop after N secs
assign(max_seconds, 10).
list(sos).
% example data
rdf("http://en.wikipedia.org/wiki/Barack_Obama",
"id:type",
"http://conceptnet5.media.mit.edu/web/c/en/person").
% some simple taxonomy rules of the form A->B i.e. -A | B in clause form.
-rdf(X,"id:type",
"http://conceptnet5.media.mit.edu/web/c/en/person") |
rdf(X,"id:type",
"http://conceptnet5.media.mit.edu/web/c/en/animal").
-rdf(X,"id:type",
"http://conceptnet5.media.mit.edu/web/c/en/animal") |
rdf(X,"id:type",
"mortal").
-rdf(X,"id:type",
"http://conceptnet5.media.mit.edu/web/c/en/person") |
rdf(X,"id:CapableOf",
"id:eat").
% our question (negated)
-rdf("http://en.wikipedia.org/wiki/Barack_Obama",
"id:type",
"mortal").
end_of_list.
Just send it to otter via standard inpt:
otter < obama2.txt
and look at the --- PROOF --- in output.
It is a good idea to send the output to a file and then process it later, like this:
otter < obama2.txt > obama2.out