2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

Prologサーバー

1 :Prolog:04/12/10 16:02:13 ID:???.net
Prologサーバー網の構築に向けて、
・ Prologサーバーとはなにか
・ Prologサーバーの共通仕様、機能
・ プログラミング技術
・ セキュリティについて
論じましょう。


147 :DNS未登録さん:2008/06/07(土) 06:24:38 ID:???.net
ErlangサーバにDownloadさせる仕様にできないか?
Erlangサーバの関数を d_eval() が モジュール erlang_server にあるとする。

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

これで良さそうだが、Erlang側でd_eval() を解析評価する時に、
append/2が先に評価されてしまって多分うまくいかない。

148 :DNS未登録さん:2008/06/21(土) 05:49:22 ID:???.net
コンパイルするべきモジュールを引数に分離して、しかも評価される関数を
文字列として渡してe_evalの中でさらに評価させる。

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

すっきりしない。

149 :DNS未登録さん:2008/06/21(土) 05:51:14 ID:???.net
二回に分離して質問するところを、強引に一回に納めた感じだ。

150 :DNS未登録さん:2008/09/19(金) 08:36:17 ID:???.net
crontabなんかで質問を予約する場合もサーバにリクエストするんだよね。
どんなコマンドになるの?


151 :DNS未登録さん:2008/09/19(金) 09:05:51 ID:???.net
>>150
>>104 - >>108 当たりにcrontabではありませんが、atコマンドでの
話が出ています。

152 :DNS未登録さん:2008/09/19(金) 09:21:09 ID:???.net
サーバがポート番号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が
実行マシンのドメイン名に置き換わるだけ。

153 :DNS未登録さん:2008/09/19(金) 14:17:11 ID:???.net
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


154 :DNS未登録さん:2008/09/19(金) 14:39:14 ID:???.net
>>153 の場合はポート番号は明記されていないからDefault値が
使われる。ポート番号がDefault値以外の場合は、サーバを
(_ドメイン:_ポート番号) :: で表現する。

155 :DNS未登録さん:2009/06/02(火) 15:22:52 ID:???.net
長い間関数評価述語として"is"の代わりに"は"を使ってきました。
しかし、Erlangサーバが充実してきたため、表記法を改めて、
今後は"<-"に統一しようと思います。

?- X <- append([1],[a,b]).
X = [1,a,b];
no
ですね。

156 :DNS未登録さん:2009/06/02(火) 15:47:01 ID:???.net
失礼。適切でなかった。統一してというのではなく、
Erlangの変数へのunifyが "->" なので
これはPrologの評価述語であるということを明確にするため、
"<-"を採用しました。

157 :DNS未登録さん:2009/06/07(日) 03:46:34 ID:???.net
そもそもPrologに P->Q1;Q2 なんていう構文があるのが間違ってる。

158 :DNS未登録さん:2009/12/02(水) 05:13:06 ID:???.net
四人一首問題のつづきです。
そもそも、サーバーから一音、一音、取り手に送り出すのはどうすればよいか?
取り手が突っつけば簡単だがそれでは本当らしくない。
サーバーが送り出す。相手は、取り手付属のサーバー。
この取り手付属のサーバーと取り手はこの歌の一音情報を
共有する必要がある。

159 :DNS未登録さん:2010/03/08(月) 07:04:50 ID:???.net
Erlangを関数呼び出しする場合、
関数評価述語として「は」を使っているようだが、
単純に中置演算子 erlang とした方がいいんじゃないかな。


160 :DNS未登録さん:2010/03/08(月) 08:26:05 ID:???.net
>>159
_値 erlang _erlang関数 ですか。

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

で、ある時 _式2 を _erlangサーバ::_モジュール:_eralang関数,
として評価する。こういう想定がありうるとするとやはり「は」に
統一されている方が好ましいように思います。erlangであるかどうかは
_erlangサーバの定義に係かってくることになります。


161 :DNS未登録さん:2010/10/28(木) 10:07:28 ID:???.net
サーバ 一単位あたりのプログラムサイズはどのくらいになるの?

162 :DNS未登録さん:2010/12/13(月) 22:19:39 ID:???.net
>>161
最小だと4MBくらいかな。
最初にスタックサイズを指定して起動するので、
そのデフォルト値をどう書き換えるかという問題に
なります。

163 :DNS未登録さん:2011/02/28(月) 08:43:35.41 ID:TEJDJ3BB.net
swi-prologを商用利用すると
どれぐらいお金いるんだろう?

164 :DNS未登録さん:2011/03/02(水) 12:36:19.16 ID:???.net
>>163
http://www.swi-prolog.org/license.html

このページの内容は、
私の英語力では意味不明です。

165 :DNS未登録さん:2011/03/03(木) 21:18:30.51 ID:1LopfZ9I.net
>>164
そうだよなー。わかりにくいよ。

166 :DNS未登録さん:2011/03/03(木) 21:20:24.17 ID:1LopfZ9I.net
Non-free (open or proprietary) software can be produced using SWI-Prolog, although contributed pure GPL components cannot be used.
作成したものを公開すればOKってことなのか?

167 :DNS未登録さん:2011/03/04(金) 12:51:31.34 ID:???.net
この翻訳から離れて、私が勝手に理解して
いるつもりになっているものは、
利用者からソースコードの開示を求められた
時には公開しなくてはならない。というこの一点。
以前は商用でソースの開示は考え難いことだったが、
現在ではごく当たり前のこと。商用であっても、
GPL、LGPL規約に「違反しない限り」課金されることはない。
SWI-Prologもこの範囲内にあるソフトだと思う。

168 :DNS未登録さん:2011/04/20(水) 18:04:00.40 ID:???.net
?- prologサーバ :: 生きている.
yes.
?-

169 :DNS未登録さん:2011/04/20(水) 18:05:41.58 ID:???.net
?- prologサーバ :: 何してる(_何してる).
_何してる = 暇してる.
yes
?-

170 :DNS未登録さん:2011/09/20(火) 05:56:36.56 ID:???.net
Erlang が異様に流行りだしました。もう一度、PrologからErlangを呼び出す
インターフェイスの話をまとめてください。


171 :DNS未登録さん:2011/11/01(火) 00:30:34.89 ID:???.net
Erlangてアーラン?

172 :DNS未登録さん:2012/07/04(水) 22:47:19.64 ID:???.net
test

173 :DNS未登録さん:2012/10/17(水) 10:23:46.83 ID:YFrysNEg.net
ム板でスレたて荒らしが現れた所為で、最近たてられたスレが全部DAT落ち処分されている。
ここのように平和なスレでも書き込むことはもちろん、時々はageておいた方がいいかも。

174 :DNS未登録さん:2012/10/23(火) 10:15:12.27 ID:???.net
Javascript上にPrologを建てて、
Prolog(Javascript) <-> Prolog <-> Prolog(Javascript)

という制御の勉強を復活させようと思います。
以前作っていたものは、ノートパソコンのディスククラッシュとともに
ほとんどが消え去ったので、もう一度作り直さなくてはならないから、
少し時間をください。

175 :DNS未登録さん:2015/02/21(土) 13:21:00.67 ID:???.net
えっちぃ絵をリクエストすると誰かが描いてくれるかもしれない素敵なスレ【R-18】
http://hayabusa.o p e n 2ch.net/test/read.cgi/news4vip/1423739321/

176 :DNS未登録さん:2016/11/17(木) 10:40:15.40 ID:lo+7nJq0.net
>>152
最近のLinuxなんかだと、w3cが動かないものがあるようだ。

# w3m -debug http://localhost:1212/・・・

でよいのかな。

177 :DNS未登録さん:2016/11/25(金) 11:07:28.04 ID:???.net
SWI-PrologのPrologサーバのトップ

サーバ(_ポート) :-
tcpソケットの準備(_ソケット,_ポート),
接続されたらソケットを開く(_ソケット, AcceptFd, _),
tcpインタプリタ(AcceptFd).


tcpソケットの準備(_ソケット,_ポート) :-
tcp_socket(_ソケット),
tcp_bind(_ソケット, _ポート),
tcp_listen(_ソケット, 5).

接続されたらソケットを開く(AcceptFd,_ソケット,_Peer,In,Out) :-
tcp_accept(AcceptFd, _ソケット, _Peer),
tcp_open_socket(_ソケット, In, Out).


tcpインタプリタ(AcceptFd) :-
repeat,
行を読みだして実行(AcceptFd),
fail.

178 :DNS未登録さん:2016/11/25(金) 11:12:57.76 ID:???.net
>>177 冒頭に以下の行が入るのだった。

:- use_module(library(socket)).

サーバ(_ポート) :-
・・・

179 :DNS未登録さん:2016/11/25(金) 11:18:10.14 ID:???.net
% 以下つづく。本当は親タスクにassertできたりするがここでは省略。

tcpインタプリタ(AcceptFd) :-
repeat,
行を読みだして実行(AcceptFd),
fail.

行を読みだして実行(AcceptFd) :-
接続されたらソケットを開く(AcceptFd,_ソケット,_Peer,In,Out),
一行読み出し項に変換(In,_項),
インタプリタの実行(_ソケット,In,Out,_項).

インタプリタの実行(_ソケット,In,Out,_項) :-
thread_create(項を実行して結果を返す(In, Out, _項),_,[]).

項を実行して結果を返す(In, Out, _項) :-
( catch(_項,_エラー情報,エラー情報の送信(Out,_エラー情報));
_項=false),!,
情報を送信する(Out,_項),
ストリームを閉じる(In,Out).

180 :DNS未登録さん:2016/11/25(金) 11:20:15.37 ID:???.net
一行読み出し項に変換(In,_項,_エラー情報) :-
行入力(In,_行),
行を解析して項を得る(_行,_項,_エラー情報).

行を解析して項を得る(_行,_項,_エラー情報) :-
catch(read_term_from_atom(_行,_項,[]),_エラー情報,_項 = false).


行入力(In,_行) :-
read_line_to_codes(In,Codes),
atom_codes(_行,Codes).

エラー情報の送信(Out,_エラー情報) :-
format('~w\n',[_エラー情報]),
format(Out,'~w\n',[_エラー情報]).

情報を送信する(Out,_項) :-
項を文字列に変換する(_項,_文字列),
書き出す(Out,_文字列).

書き出す(Out,_文字列) :-
format(Out,'~w\n',[_文字列]),
flush_output(Out).

項を文字列に変換する(_項,_文字列) :-
swritef(String,'%t',[_項]),
string_to_atom(String,_文字列).

ストリームを閉じる(In,Out) :-
close(In),
close(Out).

送信項と受信項の単一化(_項,_項).

エラー発生時はfail扱い :-
fail.

181 :DNS未登録さん:2016/11/25(金) 11:35:27.58 ID:3qBnIHqR.net
>>177
ここの十数行がやはり大事で、ここさえ押さえれば、サーバプログラムは大丈夫。
同じく省略しているが 行を読みだして実行/1 の冒頭で GET/POST行の解析等が
来るから、ここからの分岐は実際はもう少し重くなる。Prolog項が取れてからは
単純だが、副作用として出力をどのように処理するか、クライアントとどこまで
協調するかなど、実際の設計は難しい。

182 :182:2016/11/25(金) 11:38:00.92 ID:???.net
「副作用としての出力をどのように処理するか」
だな。

183 :DNS未登録さん:2016/11/26(土) 12:19:06.52 ID:???.net
クライアントから述語呼び出しを findall(_述語,_述語,L) に一皮被せて
対話(findall(_述語,_述語,L),Q) とするという方法もある。
サーバーはLに述語の解リストを返すが、それと共にQにクライアントが
次に取るべき行動を指示する。例えば
Q に see_other('http://xxx.org/tmp/fileaaa.html') が入ってきたりする。
このQをクライアントが受け取り、call(Q) することでサーバーが用意した
htmlファイルをクライアント側のブラウザに表示できる。

184 :DNS未登録さん:2016/11/26(土) 17:43:46.04 ID:???.net
これでクライアントがProlog処理系である場合はうまく行く。それでは、
クライアントがChromeのようなブラウザであり、actionでサーバアドレスや
ポートを指定し、inputやselectタグで述語引数情報を送ってくる場合は
どうか。
対話の相手がブラウザてあると、対話/2もfindall/3も理解してくれない。
この場合はhtmlファイルを直接、Socketのストリームに出力する必要が
あるだろう。もしそうだとしたら、それではクライアントがProlog処理系
であるか、ブラウザであるかはどの見分ければよいのだうか。

185 :DNS未登録さん:2016/11/26(土) 17:52:56.95 ID:???.net
最後の行を訂正する。「ブラウザであるかをどのように見分ければ良いのだろうか」

有力な方法としてinputとタグとしてname=定義域 value= に固有のブラウザ名~
入れておくという方法がある。サーバは定義域としてget/post情報の中の
定義域キーの情報を調べて、この中に登録済みのブラウザ名を値として発見
した場合はクライアントはブラウザとして振る舞う。これが一番簡単な解決法
であろう。

186 :DNS未登録さん:2016/12/22(木) 06:28:13.86 ID:TSmzxuJg.net
この話よくわからないのですが、
Prologクライアントからの質問には、質問の項を解決したものを返す。
ブラウザからの質問には、たとえば Moved Temporarily ステータスで
再度参照するべきファイル名を返す。というようなことですか。

187 :DNS未登録さん:2016/12/26(月) 23:10:43.86 ID:???.net
>>186
基本的にはそういう話です。
ブラウザへの応答は必ずしも別ファイルに書いてから
Moved Temporarily や See Other を返すのではなく、直接
ストリーム出力するのでもよいと思います。
ここ暫くは、最も悪影響が少なくブラウザであるか、
Prologクライアントであるかを判断させるサインの出し方の
話でした。

188 :DNS未登録さん:2018/02/19(月) 21:25:18.65 ID:???.net
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

189 :DNS未登録さん:2019/10/31(木) 09:09:25.86 ID:nkUuLbOY.net
目下、Prologサーバーの大幅書き換え中。
EUCだったIF/Prolog版からMTF8のSWI-Prolog版への書き換え。

190 :DNS未登録さん:2020/10/12(月) 11:21:51.81 ID:IhTUfyr+.net
>>176 -debug ではなくて

# w3m -dump http:// ・・・

ですね。

191 :DNS未登録さん:2020/10/12(月) 11:26:14.81 ID:IhTUfyr+.net
>>190
SWI-Prologだと

?- www_open_url('http://・・・').

でも行くことができます。ただこの場合、多分デスクトップにWEBブラウザが表示されてしまいますね。'.

192 :DNS未登録さん:2021/03/26(金) 18:19:12.61 ID:0DUMOMY6P
みずほが週休3日・4日を導入、副業もオッケーに!ただし給料は80%、60%に下がるが、あなたならどうする?
https://www.excite.co.jp/news/article/Jcast_kaisha_396186/
みずほFG 週休3〜4日制導入へ 新型コロナで働き方見直し
https://www3.nhk.or.jp/news/html/20201006/k10012651181000.html
副業OK時代!初心者に人気の副業を試してみて…メリット・デメリットとは
https://news.yahoo.co.jp/articles/2a38649705f3257595512daee1a073c231affc51
「労働時間の見直し」に先鞭をつけた みずほフィナンシャルグループ
https://blogos.com/article/490192/
来年度から副業解禁 人材多様化へ―大同生命次期社長
https://www.jiji.com/jc/article?k=2021031200008&g=eco
千葉興業銀行、4月から副業解禁 県内地銀初
https://www.nikkei.com/article/DGXZQOFB1177A0R10C21A3000000/
ベーシックはなぜ副業解禁したのか?|取り組み背景、制度設計方法、苦労したことなど聞いてみた
https://hrnote.jp/contents/b-contens-composition-basicfukugyo-180802/
ニューノーマルの「オフィス必要論」 コクヨが新オフィスにつくった“6つの機能”
https://www.itmedia.co.jp/business/articles/2103/03/news030.html
働く時間が短いほど効率が上がる。「週休3日制」がもたらす効果とは
https://ampmedia.jp/2019/10/17/new-weeklyholiday/

193 :DNS未登録さん:2021/05/21(金) 04:14:27.30 ID:H190obQ3.net
Google ChromeからSWI-Prologで書かれたサーバーから情報取得後、
表示されたHTMLファイルを<<更新>>しないとサーバー側の接続が切れないと
いう現象が発生しているのだが、何がいけないのだろうか。Firefoxでは起こらない。

194 :DNS未登録さん:2021/05/27(木) 13:34:30.58 ID:RDLrb0eI.net
>>193
20年も昔には、こういうトラベルが発生するとプロキシサーバーを介してやってみたりした。そうするとなぜかうまくいったり。

195 :DNS未登録さん:2021/05/27(木) 13:35:35.17 ID:RDLrb0eI.net
>>194
トラブルです。すみません。

196 :DNS未登録さん:2023/09/20(水) 04:07:05.14 ID:???.net
どんな困難も、君なら乗り越えられるよ。

66 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★