Prologサーバー

このエントリーをはてなブックマークに追加
127DNS未登録さん:2007/06/18(月) 16:21:26 ID:qQekVywy
Linux上にIF/Prologで構築されているようですが、
WindowsでP#でもうまくいくでしょうか?
128DNS未登録さん:2007/06/18(月) 17:17:59 ID:???
およそ一年ぶりの書き込みになります。ageていただかなかったら
永久に気が付かなかったかも知れません
>>127
P# ! 知りません。3年くらい前にちらっとそんな話題が
あったような記憶があるのですが、マイクロソフトと関係が
あるのですか。
129DNS未登録さん:2007/06/18(月) 17:26:07 ID:???
>>126
XMLでのデータ授受は有力ではないでしょうか。
私はSOAPの詳細を知らないので気の利いたコメントは
できませんが、Prolog以外の言語に対してサーバーの
立場を取るとなると、クライアントの処理言語に対して
Prologの解析系を持てというのは現実的でないでしょう。
Prolog-XML変換はどこにでもあるのだから、Prolog側で
XML変換してあげればよい。
実際私は、XBRL(XMLベースのビジネス用通信形式テンプレート)と
Prolog項の変換の仕事をしたばかりです。
130DNS未登録さん:2007/08/01(水) 04:14:37 ID:???
  1980年代のProlog資料をまとめてあるサイトないかな。
131DNS未登録さん:2007/10/31(水) 18:35:10 ID:???
最近、Erlang との連携を始めました。TCP/IP経由で
Erlangをさらにサーバに見立てて、並列(平行)処理を
委託します。ただ今のところEUC-JPの漢字処理が
うまくいかず、Erlang側のプログラムはあまり凝った
ものが作れません。漢字処理が問題がある場合、
ソースに遡れば大概は上手くいくことが多いのですが、
Erlangはconfigure->make->make install で8時間くらい
かかる代物で、とても私が手を出せるものではありません。
132訂正:2007/10/31(水) 18:48:23 ID:???
ただ今のところ -> ただ、今のところ
漢字処理が問題がある場合、 -> 漢字処理に問題がある場合、
133DNS未登録さん:2007/11/05(月) 12:10:17 ID:???
何故にErlangが出てきたかという話をしておきます。
これはスケジューリング問題と関係があります。
Prologはスケジューリング問題の解決に最適な言語ですが、
これは「勤務表」のようなあまり、時間的な要求の厳しくない
領域を対象とした場合です。
ライン制御のような部分でのスケジューリングとなると
コードとしては洗練されたものになりますが、やはり、
GCによる遅延の問題がある。ラインの流れに追いつけなく
なる可能性があります。これを回避する方法はやはり、
その遅延が致命傷になる部分だけは切り離して、Prolog外で
処理するほかない。
そこで、Prologからのコード変換が容易で、小プロセスを
生成できて、並列による非同期処理が書きやすいErlangが
でてくる。
今のところは、Prolog/Erlang変換の研究の域をでませんが
相当に有望なのではないかと思います。
134DNS未登録さん:2008/04/10(木) 12:24:36 ID:???
INAP'96で日本では初めてのErlangチュートリアルが
あったのですが、当時10年の歴史がある言語なのに、
ほとんど知ってる人いなかったですね。最近の流行は
隔世の感ありです。
135DNS未登録さん:2008/04/12(土) 10:46:47 ID:???
Wijaという環境上に構築されるオーバーレイGHCというものが
あります。例の未踏ソフトの一つなのですが、PrologとGHCの
違いはありますが、やりたいことはたいへん似ているようです。
残念ながらうまく起動できなくて、今のところ私のサーバーと
混在できていません。今週はこれがテーマ。
136DNS未登録さん:2008/04/30(水) 04:35:35 ID:???
>>135
Wijaの方は進んで以内が、昨日、erlangサーバがevalしていなかったのを
ム板のErlangのスレのレスでのやりとりで、方法が分かったので書き換えて完成。
幸せ。
これまでは関数の機能番号と引数を一行づつ渡していた。functorで分解した
ような状態で。
137DNS未登録さん:2008/06/05(木) 10:51:17 ID:gGkN7ojL
Erlangサーバについてですが、
Prologサーバからさらに
Erlangサーバに要求をだすということですよね。
Erlangプログラムのuploadはどうやるの?

138DNS未登録さん:2008/06/05(木) 12:36:10 ID:???
>>137
Prologクライアントから直接呼ぶこともできます。
Prolog -> Erlang のバイナリーファイル転送は作ってないので、
そこは FTP か Samba のお世話になる。
upload_and_eval(ErlangServer,ErlangModule,Eval_Function) :-
  cp(ErlangModule.erl,ErlangServer::ErlangModule.erl),
  ErlangServer :: (c:c(ErlangModule) -> _),
  ErlangServer :: (ErlangModule:Eval_Function -> X).
ディレクトリはそれぞれホームディレクトリだとして。
139DNS未登録さん:2008/06/05(木) 12:37:44 ID:???
すみません。
upload_and_eval(ErlangServer,ErlangModule,Eval_Function,X) :-
でした。
140DNS未登録さん:2008/06/05(木) 13:06:17 ID:???
書き直します。
upload_and_eval(ErlangServer,ErlangModule,Eval_Function,X) :-
  cp(ErlangModule.erl,ErlangServer::ErlangModule.erl),
  ErlangServer :: (c:c(ErlangModule) -> {ok,ErlangModule}),
  ErlangServer :: (ErlangModule:Eval_Function -> X).
141DNS未登録さん:2008/06/05(木) 13:09:28 ID:???
upload_and_eval(ErlangServer,ErlangModule:Eval_Function -> X) :-
  cp(ErlangModule.erl,ErlangServer::ErlangModule.erl),
  ErlangServer :: (c:c(ErlangModule) -> {ok,ErlangModule}),
  ErlangServer :: (ErlangModule:Eval_Function -> X).
の方が分かり易いか。
142DNS未登録さん:2008/06/05(木) 18:14:59 ID:???
>>141
コピー元は自分だからPrologサーバで
  cp(ErlangModule.erl,ErlangServer::ErlangModule.erl),
を実行すると、Prologサーバのワーキングディレクトリから
ErlangModule.erlファイルをコピーしようとするはず。
これは具合が悪いから、cpはこの述語から切り離す他ないの
ではないか。
143DNS未登録さん:2008/06/05(木) 20:14:18 ID:???
>>142
そうでした。
144DNS未登録さん:2008/06/06(金) 04:53:10 ID:???
>>142
uload_and_eval(Myhostname,ErlangServer,ErlangModule:Eval_Function -> X) :-
  cp(Myhostname::ErlangModule.erl,ErlangServer::ErlangModule.erl),
  ErlangServer :: (c:c(ErlangModule) -> {ok,ErlangModule}),
  ErlangServer :: (ErlangModule:Eval_Function -> X).
一引数増やしました。
145DNS未登録さん:2008/06/06(金) 08:28:45 ID:???
Wijaの オーバレイ GHC 使ってみましたが、私のPrologサーバとはまったく違うものでした。
詳しい報告はあとで。
146DNS未登録さん:2008/06/07(土) 05:50:01 ID:???
upload_and_eval は長いから u_eval とする。
クライアントノードが c1
Prologサーバが p1
Erlangサーバが e1 として、c1がp1にe1へのu_eval()を委託する場合.
モジュールはmy 関数はappend/2とする。
?- p1::u_eval(c1,e1,(X は my:append([a,b],[c]))).
X = [a,b,c]
yes
p1を経由せず直接質問するなら
?- u_eval(c1,e1,(X は my:append([a,b],[c]))).
X = [a,b,c]
yes
となる。大分すっきりした。
147DNS未登録さん:2008/06/07(土) 06:24:38 ID:???
ErlangサーバにDownloadさせる仕様にできないか?
Erlangサーバの関数を d_eval() が モジュール erlang_server にあるとする。

?- X は e1::erlang_server:d_eval(c1,my:append([a,b],[c])).

これで良さそうだが、Erlang側でd_eval() を解析評価する時に、
append/2が先に評価されてしまって多分うまくいかない。
148DNS未登録さん:2008/06/21(土) 05:49:22 ID:???
コンパイルするべきモジュールを引数に分離して、しかも評価される関数を
文字列として渡してe_evalの中でさらに評価させる。

?- X は e1::erlang_server:d_eval(c1,my,"my:append([a,b],[c])").

すっきりしない。
149DNS未登録さん:2008/06/21(土) 05:51:14 ID:???
二回に分離して質問するところを、強引に一回に納めた感じだ。
150DNS未登録さん:2008/09/19(金) 08:36:17 ID:???
crontabなんかで質問を予約する場合もサーバにリクエストするんだよね。
どんなコマンドになるの?
151DNS未登録さん:2008/09/19(金) 09:05:51 ID:???
>>150
>>104 - >>108 当たりにcrontabではありませんが、atコマンドでの
話が出ています。
152DNS未登録さん:2008/09/19(金) 09:21:09 ID:???
サーバがポート番号1212で立ち上がって入れば、
:- tell(foo),listing,told.
を定時に実行させたければ、
w3c http://localhost:1212/prolog.file?query=%3F-+tell%28foo%29+%2C+%28listin
g%29+%2C+told
という一行だけのバッチファイルを作ってこれをcrontab -e で登録すればいい。
予約は自分のマシンだが、実行は他のマシンと言う場合は、localhostが
実行マシンのドメイン名に置き換わるだけ。
153DNS未登録さん:2008/09/19(金) 14:17:11 ID:???
Prologインタプリタの質問で予約する。
毎日自分のマシンで12時に上記のlistingを行うには、
?- 予約(毎日,12,0,(tell(foo),listing,told)).
yes
yahooというドメイン上のサーバでlistingを行うには、
?- 予約(毎日,12,0,yahoo :: (tell(foo),listing,told)).
yes
予約自体をyahoo上のサーバにするには、
?- yahoo :: 予約(毎日,12,0,(tell(foo),listing,told)).
yes
154DNS未登録さん:2008/09/19(金) 14:39:14 ID:???
>>153 の場合はポート番号は明記されていないからDefault値が
使われる。ポート番号がDefault値以外の場合は、サーバを
(_ドメイン:_ポート番号) :: で表現する。
155DNS未登録さん:2009/06/02(火) 15:22:52 ID:???
長い間関数評価述語として"is"の代わりに"は"を使ってきました。
しかし、Erlangサーバが充実してきたため、表記法を改めて、
今後は"<-"に統一しようと思います。

?- X <- append([1],[a,b]).
X = [1,a,b];
no
ですね。
156DNS未登録さん:2009/06/02(火) 15:47:01 ID:???
失礼。適切でなかった。統一してというのではなく、
Erlangの変数へのunifyが "->" なので
これはPrologの評価述語であるということを明確にするため、
"<-"を採用しました。
157DNS未登録さん:2009/06/07(日) 03:46:34 ID:???
そもそもPrologに P->Q1;Q2 なんていう構文があるのが間違ってる。
158DNS未登録さん:2009/12/02(水) 05:13:06 ID:???
四人一首問題のつづきです。
そもそも、サーバーから一音、一音、取り手に送り出すのはどうすればよいか?
取り手が突っつけば簡単だがそれでは本当らしくない。
サーバーが送り出す。相手は、取り手付属のサーバー。
この取り手付属のサーバーと取り手はこの歌の一音情報を
共有する必要がある。
159DNS未登録さん:2010/03/08(月) 07:04:50 ID:???
Erlangを関数呼び出しする場合、
関数評価述語として「は」を使っているようだが、
単純に中置演算子 erlang とした方がいいんじゃないかな。
160DNS未登録さん:2010/03/08(月) 08:26:05 ID:???
>>159
_値 erlang _erlang関数 ですか。

  ...,
  A は _式1,
  B は _式2,
  C は _式3, ... ,

で、ある時 _式2 を _erlangサーバ::_モジュール:_eralang関数,
として評価する。こういう想定がありうるとするとやはり「は」に
統一されている方が好ましいように思います。erlangであるかどうかは
_erlangサーバの定義に係かってくることになります。
161DNS未登録さん:2010/10/28(木) 10:07:28 ID:???
サーバ 一単位あたりのプログラムサイズはどのくらいになるの?
162DNS未登録さん:2010/12/13(月) 22:19:39 ID:???
>>161
最小だと4MBくらいかな。
最初にスタックサイズを指定して起動するので、
そのデフォルト値をどう書き換えるかという問題に
なります。
163DNS未登録さん:2011/02/28(月) 08:43:35.41 ID:TEJDJ3BB
swi-prologを商用利用すると
どれぐらいお金いるんだろう?
164DNS未登録さん:2011/03/02(水) 12:36:19.16 ID:???
>>163
http://www.swi-prolog.org/license.html

このページの内容は、
私の英語力では意味不明です。
165DNS未登録さん:2011/03/03(木) 21:18:30.51 ID:1LopfZ9I
>>164
そうだよなー。わかりにくいよ。
166DNS未登録さん:2011/03/03(木) 21:20:24.17 ID:1LopfZ9I
Non-free (open or proprietary) software can be produced using SWI-Prolog, although contributed pure GPL components cannot be used.
作成したものを公開すればOKってことなのか?
167DNS未登録さん:2011/03/04(金) 12:51:31.34 ID:???
この翻訳から離れて、私が勝手に理解して
いるつもりになっているものは、
利用者からソースコードの開示を求められた
時には公開しなくてはならない。というこの一点。
以前は商用でソースの開示は考え難いことだったが、
現在ではごく当たり前のこと。商用であっても、
GPL、LGPL規約に「違反しない限り」課金されることはない。
SWI-Prologもこの範囲内にあるソフトだと思う。
168DNS未登録さん:2011/04/20(水) 18:04:00.40 ID:???
?- prologサーバ :: 生きている.
yes.
?-
169DNS未登録さん:2011/04/20(水) 18:05:41.58 ID:???
?- prologサーバ :: 何してる(_何してる).
_何してる = 暇してる.
yes
?-
170DNS未登録さん:2011/09/20(火) 05:56:36.56 ID:???
Erlang が異様に流行りだしました。もう一度、PrologからErlangを呼び出す
インターフェイスの話をまとめてください。
171DNS未登録さん:2011/11/01(火) 00:30:34.89 ID:???
Erlangてアーラン?
172DNS未登録さん:2012/07/04(水) 22:47:19.64 ID:???
test
173DNS未登録さん:2012/10/17(水) 10:23:46.83 ID:YFrysNEg
ム板でスレたて荒らしが現れた所為で、最近たてられたスレが全部DAT落ち処分されている。
ここのように平和なスレでも書き込むことはもちろん、時々はageておいた方がいいかも。
174DNS未登録さん:2012/10/23(火) 10:15:12.27 ID:???
Javascript上にPrologを建てて、
Prolog(Javascript) <-> Prolog <-> Prolog(Javascript)

という制御の勉強を復活させようと思います。
以前作っていたものは、ノートパソコンのディスククラッシュとともに
ほとんどが消え去ったので、もう一度作り直さなくてはならないから、
少し時間をください。
175DNS未登録さん:2014/07/30(水) 18:51:27.65 ID:???
永くIF/Prologを使ってきたこのサーバーもSWI-Prologへの引越しが近くなってきた。
176DNS未登録さん
えっちぃ絵をリクエストすると誰かが描いてくれるかもしれない素敵なスレ【R-18】
http://hayabusa.o p e n 2ch.net/test/read.cgi/news4vip/1423739321/