Re: Executing prolog queries from shell
Daniel Diaz <[email protected]>
| Newsgroups | gmane.comp.gnu.prolog.general |
|---|---|
| Message-ID | <[email protected]> |
Hi, there several ways to do what you want. Basically, you have to: 1) launch prolog, 2) consult your file, 3) execute your query, 4) save your results (on a file). Since it is not clear what you want to do exactly I give you some (a lot of) pointers: You can launch gprolog with special argument(s) to execute goal(s) (more or less immediately). See: http://gprolog.org/manual/html_node/gprolog007.html In that case you execute gprolog with the args from your python code. You can write a PrologScript (shebang) basically start your source file with #!/usr/bin/gprolog --consult-file. See: http://gprolog.org/manual/html_node/gprolog007.html#sec11 In that case you execute the script from your python code (don't forget the chmod u+x). Use the :- initialization(....) directive to execute an initial goal. See: http://gprolog.org/manual/html_node/gprolog022.html#initialization%2F1 To get the command-line arguments you can use for instanceargument_list(L) http://gprolog.org/manual/html_node/gprolog051.html#argument-counter%2F1 To save the result of your query you can use streams and term I/O. Streams: http://gprolog.org/manual/html_node/gprolog034.html Term output: http://gprolog.org/manual/html_node/gprolog038.html#write-term%2F3 To quit gprolog execute the goal: halt. http://gprolog.org/manual/html_node/gprolog042.html#abort%2F0 Finally, note that you can also compile your source file to native code with: gplc my_app.pl--no-top-level--no-debugger you can add options like gplc my_app.pl--no-top-level--no-debugger or even gplc my_app.pl--min-size See: http://gprolog.org/manual/html_node/gprolog009.html Then execute it (from your python code) simply with: ./my_app NB: use :- intialization(YOUR INIT GOAL) and halt to control the start and the end of your Prolog application. Daniel Le 10/12/2013 18:05, Antonios Antoniadis a écrit : > > Hello everyone. > > I started building the left hemisphere of my robot's brain with gprolog and I'm stuck on probably a very basic thing as I haven't touched prolog since uni. I want to execute/pass/pipe/whatever queries/code into prolog from the GNU/Linux shell and save/use the results. Like friends(bob,alice) to see if they are friends or whatever. I can run any shell command via python or the shell itself of course but what/how should I run (sysntax) to e.g. have gprolog use a specific file with my stored rules or whatever (complied I guess) and pass the query like an argument or input? Actually, is this possible at all? > > I hope I didn't confuse you! > > > Thank you, > > Antonios A. > > > _______________________________________________ > Users-prolog mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/users-prolog > -- Ce message a ete verifie par MailScanner pour des virus ou des polluriels et rien de suspect n'a ete trouve.