0

私は問題があります。私は何週間もこの問題を理解できません。例えば:

parent(john,paul). 
parent(paul,tom).  
parent(tom,mary).  
ancestor(X,Y) :- parent(X,Y). 
ancestor(X,Y) :- parent(X,Z),
                 ancestor(Z,Y).

クエリは:

swipl -s /home/alikoyuncu/pl/ples.pl -g "ancestor(X,'tom')" -t halt.

出力:

% library(swi_hooks) compiled into pce_swi_hooks 0.00 sec, 3,856 bytes
% /home/alikoyuncu/pl/ples.pl compiled 0.01 sec, 119,096 bytes

alikoyuncu@alikoyuncu-EasyNote-TM98:/var/www/nlp$

変数 X を取得するにはどうすればよいですか?


私はphpから呼び出しています。私のphpコード:

<?php

try
{

    $cmd ="swipl --quiet -s /home/alikoyuncu/pl/ples.pl -g \"forall(f(X,gel),writeln(X))\" -t halt.";
    $cmd2="/var/www/nlp/betik.sh";
    exec( $cmd, $output );


if($output==null)
{
    echo "null";
}
else
{
    foreach( $output as $tampon ) { echo "$tampon .nci satir <br>"; };
}

}
catch(Exception $ex)
{
    echo "Error";
}
?>
4

1 に答える 1

2

ファイルをクエリする一般的な方法は次のとおりです。

$ prolog

これにより、swi prolog インタプリタを入力できます。

Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.10.4)
Copyright (c) 1990-2011 University of Amsterdam, VU Amsterdam
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.

For help, use ?- help(Topic). or ?- apropos(Word).

次にクエリを実行できる場所:

?- consult(ples.pl).

(または[ples].)ファイルをロードしてから

?- ancestor(X, tom).

望ましい結果を得るために。

それ以外の場合、コマンドラインからこれを呼び出すには、次のことをお勧めします。

swipl --quiet -s ples.pl -g "forall(ancestor(X, tom), writeln(X)), halt."
于 2012-09-08T15:00:35.503 に答える