1 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:23:54 ] 過去スレ Prologでまったり Part3 pc11.2ch.net/test/read.cgi/tech/1193354806/ PrologでまったりPart 2 pc11.2ch.net/test/read.cgi/tech/1102664221/ Prolog でまったり pc5.2ch.net/test/read.cgi/tech/976462999/ リンク集 www.summa.jp/lang/logic/prolog.htm bach.istc.kobe-u.ac.jp/prolog/ チュートリアル www.amzi.com/AdventureInProlog/ computing.unn.ac.uk/staff/cgpb4/prologbook/ www.intranet.csupomona.edu/~jrfisher/www/prolog_tutorial/pt_framer.html bach.istc.kobe-u.ac.jp/prolog/intro/ www.geocities.jp/m_hiroi/prolog/ www.asahi-net.or.jp/~JF1T-YSD/prologV2/
2 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:27:17 ] P-99: Ninety-Nine Prolog Problems https://prof.ti.bfh.ch/hew1/informatik3/prolog/p-99/
3 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:32:21 ] 新スレおめでとうございます。
4 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 22:16:07 ] 404 Not Found www.summa.jp/lang/logic/prolog.htm www.asahi-net.or.jp/~JF1T-YSD/prologV2/
5 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 00:35:26 ] 乙( >>1 ).
6 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 01:30:05 ] >>4 lang.x0.com/logic/prolog/ light21.s26.xrea.com/prologV2/ ほい移転先
7 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 07:55:28 ] まったりしてきた
8 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 11:57:29 ] 以下の住所に関する事実 address([bitdiddle, ben], [slumerville, [ridge, road], 10]). address([hacker, alyssa, p], [cambridge, [mass, ave], 78]). address([fect, cy, d], [cambridge, [ames, street], 3]). address([tweakit, lem, e], [boston, [bay, state, road], 22]). address([reasoner, louis], [slumerville, [pine, tree, road], 80]). address([warbucks, oliver], [swellesley, [top, heap, road]]). address([scrooge, eben], [weston, [shady, lane], 10]). address([cratchet, robert], [allston, [n, harvard, street], 16]). address([aull, dewitt], [slumerville, [onion, square], 5]). から、各々近場にいる人について述べる述語livesNearを作りたいのですが、 livesNear(Person1, Person2) :- address(Person1, [Town|Rest1]), address(Person2, [Town|Rest2]), not(same(Person1, Person2)). こう作ってしまう場合、livesNear(P,Q)と問い合わせをすると(Aさん,Bさん) という組み合わせと、(Bさん、Aさん)という入れ替えたものの2つが重複 して出てくることになります。 重複しないようにするにはどうすればいいでしょうか。
9 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 12:00:16 ] sameという述語の定義は same(X,X). です。
10 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 17:50:00 ] >>8 p(a). p(b). の述語定義がされているとします。 ?- p(X),p(Y),not(X=Y). X = a, Y = b; X = b, Y = a; no の重複を回避する方法はありません。重複を回避するには、最初から、 p/1でなく、p/2を p(1,a). p(2,b). のように定義して、 ?- p(N1,X),p(N2,Y),N1<N2. N1 = 1, X = a, N2 = 2, Y = b; no とするのが一案。 述語p/1のままだと、 組合せ(X,1,[A]) :- member(A,X). 組合せ([A|Y],N,[A|X]) :- N > 1,M is N - 1,組合せ(Y,M,X). 組合せ([_|Y],N,A) :- N > 1,組合せ(Y,N,A). ?- findall(U,p(U),L),組合せ(L,2,[X,Y]). が考えられます。
11 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 02:43:41 ] 「重複しない」という事の意味が漏れには分からない。というか課題の定義が曖昧だと思う。 述語livesNear/2の意味は「Person1の近場にPerson2が住んでいる」だよね? もしそうなら「Aさんの近場にBさんが...」と「Bさんの近場にAさんが...」という 「重複した」結果こそ正しいと思う。両者の間には双方向な関連があるのだから。 もし問い合わせが livesNear('Aさん', P) あるいは livesNear('Bさん', P) だとしたら、 「重複しない」という述語定義に対して、>>8 はどんな結果を期待するのだろうか。
12 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 16:24:31 ] >>10 どうもありがとうございます。数字と対応づけしないといけないんですか。 >>11 主として、これは疑問文として使用します。 叙述としては、確かに(Aさん、Bさん)、(Bさん、Aさん)とは 同格として扱うべきですが、疑問文として、 「この住所録の中の人物の中で、お互いに近くに住んでいる人たちは、 誰と誰ですか?」 という問の回答として、「AさんとBさん、あと、BさんとAさんです。」は、 不自然です。
13 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 17:55:27 ] なんとかできました。 map([bitdiddle, ben], 0). map([hacker, alyssa, p], 1). map([fect, cy, d], 2). map([tweakit, lem, e], 3). map([reasoner, louis], 4). map([warbucks, oliver], 5). map([scrooge, eben], 6). map([cratchet, robert], 7). map([aull, dewitt], 8). と対応をつけた上で、 livesNear(Person1, Person2) :- address(Person1, [Town|Rest1]), address(Person2, [Town|Rest2]), map(Person1,Number1), map(Person2,Number2), Number1 < Number2. としました。
14 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:47:19 ] >>11 です。 では、質問の意図は「(近場に住む人同士における)関連の存在」を質問しているのではなく、 「(近場に住む人々を)列挙する」ことにあると考えていいのかな?(回りくどくてゴメソ) もしそうであれば、近場に3人以上の人が住んでいるケースでは、リストを使わないと 列挙できないから、問い合わせは livesNear(P,Q) ではなく、以下のようなコードになる。 findAllLivesNear(People) :- !, findall(Town, address(_, [Town|_]), Towns), reject_duplicates(Towns,T), % 重複している要素を取り除く findAllLivesNear(T, People). findAllLivesNear([], []) :- !. findAllLivesNear([T|Town], [P|People]) :- findall(Person, address(Person, [T|_]), P), length(P, Length), Length >= 2, !, findAllLivesNear(Town, People). findAllLivesNear([_|Town], People) :- !, findAllLivesNear(Town, People).
15 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:49:36 ] % リロードするんだった.....orz >>14 実行結果は以下のとおり。ご参考まで。 ?- findAllLivesNear(P). P = [ [[hacker, alyssa, p], [fect, cy, d]], [[bitdiddle, ben], [reasoner, louis], [aull, dewitt]] ]. 回答は「hackerとfect、あと、bitdiddleとreasonerとaullです」となって不自然さは無い。
16 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 14:40:11 ] この問題は? 例 2.2 7つの部屋がある。その内の4つの部屋を4人のプログラマの事務 室として割当て、残りの3つの部屋をコンピュータ端末機器を設置する 部屋としたい。このような割当て方は7×6×5×4=840通りある。 『組合せ構造とグラフ理論入門』C.L.リュー著 成瀬弘、秋山仁共訳 マグロウヒル好学社 p42 より、 さて、この840通りをすべて数え上げる非決定性述語を定義せよ。
17 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:05:15 ] 処理系に依存する問題をひとつ。 「千人万首 ―よよのうたびと―」という高名な和歌サイト www.asahi-net.or.jp/~SG2H-YMST/yamatouta/sennin.html から情報を引き出し、 第一引数に作者名を与えると、第二引数にその作者の歌が 一首づつとりだせる述語 千人万首/2 を定義しなさい。 ただし、取り出すのは歌本体のみで題や解説、類歌、本歌などは 削ぎ落としてください。
18 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 19:10:48 ] まあ、こんな感じで「Prolog述語 1000Tips」を目指します。
19 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 20:16:58 ] >>18 1000分野、10000Tips行きましょう。
20 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 05:42:50 ] 1/10000Tips どんな情報源でもよいから、そらで覚えていれば勿論それでよいから、 和暦、西暦変換述語を作れ。
21 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 05:45:04 ] 1/10000Tips
22 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 05:48:32 ] 1/10000Tips ジョギングシュミレーター(サイト)を参考にして、 体重、走行距離、タイムから、消費エネルギーと脂肪燃焼量を得る述語を 定義せよ。
23 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 06:00:11 ] >>18->>22 出典の記載ルール等を決めておかないといけない。 オブジェクト指向的な枠組みがないから、 述語で定義するとして、標準的な述語構成例が欲しい。
24 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 06:10:29 ] それから、問題を出すときは、 1/10000Tips (解答準備済み/解答準備未了) 等のコメントを入れて、未解決問題がスレに大量に残ることを避けよう。 解答準備済みで出題した人は様子を見て、良いタイミングで模範?解答を 載せるべし。
25 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 07:28:55 ] >>23 述語定義して公開するなると、著作権の問題が出てきます。 Prologの書籍50冊分の巻末参考文献を全部sortして述語として 公開するとする。私はその文献の内2%くらいしか目を通した ことがない。それでも誰も文句をいわないだろう。ところが、 古川康一著「Prolog入門」の参考文献だけを述語定義して載せた 場合はどうなのか?これは問題になるかな。
26 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 06:49:31 ] httpd_status_code(100,'Continue','この応答はクライアントへの仮の応答です。多くの 場合、プロキシーやサーバーは、最終的な応答を返すまでにはまだ時間がかかる場合にこ のコードを使います。' httpd_status_code(101,'Switching Protocols','HTTP/1.1では現在は使われていません が、準拠しているアプリケーションがUpgradeヘッダーに示される、より有利なプロトコ ルや効果的なプロトコルに切り替えようとしていることを示します。'). httpd_status_code(200,'OK','全般的に成功したことを示します。'). httpd_status_code(201,'Created','このコードは、PUTリクエストへのレスポンスで用い ることができるコードで、新しいリソースが作成されて利用可能であることを示します') . <以下略> この述語の場合は、www.amazon.co.jp/dp/4894710412/ からの 全コピーであることは明らかです。実際、Prolog述語はこういうのだらけ。 前スレにちょっとだけ著作権の話がでたと思うけど書物を写し取った述語の 公開できるのはどの範囲か。Webサイトの場合はどうか。
27 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 07:14:52 ] ちょっと話が逸れますが、>>26 の場合は10年近く前に本を傍らに置いて タイプした。ところが今はこのくらいの情報はWebから入手できる。 そういう変化は、Prolog言語の意味をも決定的に変えたと思う。以前は 単位節データベースとルール節はある程度バランスを保っていたが、 現在では、99%以上が単位節、しかも>>26 に見られるように、将来の利用に 含みを残して、原文そのままを引数に取り込む。Prologの解説書で示される 開発手法やプログラミング事例とは全く違う。10000Tipsの狙いは、そういう ことをはっきり示すことでもあります。
28 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 08:00:34 ] >>27 10000Tipsにしても、ここよりも日本Prolog協会のメーリングリストで提起する方が 相応しい課題ではないかな。
29 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 17:35:35 ] >>27 徹底して非形式的なデータ蒐集に努めるというのは面白いかも。 例えば、述語名が衝突したらその時点で何か解決策を捜す。
30 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 11:16:14 ] >>27 以前はPrologプログラムの開発時間はプログラマのタイプ時間に 近似していたのだが、最近は検索ルールを書く時間に近くなった ことは確かだな。
31 名前:デフォルトの名無しさん [2009/03/13(金) 11:34:02 ] Prologって結局、「とまり木言語」なのかも知れない。 最終的にはデータベースやXMLファイルとして振り分けられるでしょ。 考えてみればAI言語を標榜していた頃からずっとそうじゃないか。
32 名前:デフォルトの名無しさん [2009/03/14(土) 05:55:59 ] >>27 ルール節って書かない?
33 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 06:04:24 ] >>32 書かない。負節は書くw このスレでも強調されているように、結局Prologプログラミングは member/2,append/3,findall/3の繰り返し。少し前に出てきた組合せ系 の述語などがライブラリ化していると、もうほとんどルールを書く 必要はない。負節のログに頭部を付加してライブラリに加えることは ある。 以前は**コードなどの処理も書いたから、1342という口座番号を '0001342'にするヘッドゼロサプライ処理などが文字列からparse_atom する度に発生した。それで手続的決まり文句も随分と書いたが、10年 くらいまえに書き尽くした。
34 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 06:46:09 ] 自動仕訳ルールの追加というようなことは日常的に発生するが、それも 銀行口座の明細から取得するような場合は、すでに形式化しているから、 単位節一節の追加だし、摘要的な記述からの場合もS,V,Oが確定すれば ほぼ決定的になる。この場合、本体に2副目標を持つルール節を一つ追加。
35 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 07:15:04 ] ごめん。本体に1副目標を持つルール節一つを追加。でした。
36 名前:デフォルトの名無しさん [2009/03/15(日) 17:48:02 ] >>33 むかしエキスパートシステムに書いたような簡単なif-thenルールなら、 今でも書くと思うけど。subgoalが1-3個くらいのやつ。
37 名前:35 mailto:sage [2009/03/16(月) 04:15:51 ] Oが複数でてくることもあり、やはり本体1副目標では決まらず 2~3副目標になることも多いようです。
38 名前:デフォルトの名無しさん [2009/03/17(火) 07:43:36 ] 頭痛がしてきた
39 名前:デフォルトの名無しさん [2009/03/17(火) 07:45:42 ] 1/10000Tips
40 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 08:57:53 ] 一向に中身のあるTipは現れないw 初心者のための言語スレに誤爆してしまった
41 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 05:44:26 ] 本でも読めば。
42 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 10:10:04 ] 入門者です。前スレにでていたPrologで学ぶAIプログラミングを買ってみました。 二章のLHKあたりで既に挫折しそう…
43 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 08:10:39 ] うおー規制解除 kimiyasu-arai.at.webry.info/200801/article_1.html > 下記はLispによるProlog処理系の例である。 動かしてないけど、なんか変数の扱いがすごくあやしい。。
44 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 08:15:04 ] >>8 > 重複しないようにするにはどうすればいいでしょうか。 最初見たとき livesNear(P,Q), P @< Q と書いて「いや、それはちょっと…」という反応を見たいと思ったのに規制のせいで
45 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 09:56:29 ] >>44 ならほど。考えも及ばなかったwww
46 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 10:02:19 ] なるほど。でした・・・
47 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 14:11:05 ] >>44 この話題から外れるけれど・・ アトム(文字列)の大小比較は、集約(鍵)問題を扱ったとき場合を以外には、 実務的にあまり使う機会はなかったのですが、最近、古庄普二著 東大総研刊 「汎用超高速データベース処理技術 多様なデータ構造と超並列への普遍的アプローチ RealTimeVIDP」 を読んでPrologのデータ構造の中に値の順序性をもう少し取り入れる余地は ないかなど気になっていた。
48 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 14:16:39 ] >>43 どんな感じであやしい?
49 名前:47 mailto:sage [2009/03/28(土) 14:59:44 ] 古庄晋二著でした
50 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 18:23:58 ] >>48 はっきり変だと思えるのは?_の扱い。関数ab、fb(束縛の追加と検索?)あたりでは 無名変数もどきというか、単一化されない扱いになってるんだけど、 実際には、?xなどのローカルな変数名をgensymで作ったグローバルな名前に 書き換えるとき、何も特別扱いされていないから、意味がないんじゃないかっていう。
51 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 10:14:03 ] そろそろSWI-Prolog Reference Manual の邦訳が欲しくなってきた。 SWI-Prologの動きが活発になってきて、参照機会が急に増えた。 こうなってくると、常に楽に参照できる「ベース」が欲しい。
52 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 01:39:45 ] 精神力が異常。
53 名前:デフォルトの名無しさん [2009/05/07(木) 08:08:13 ] prologで同じ解を出さないようにするにはどうするの?誰か教えて><
54 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 08:14:00 ] >>53 >>8 以下を読んでみてください。
55 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 00:05:44 ] Prolog用語を整理しかけたら、変なことに気づいた。 ISO、JISではどうやら、 '' は null atom(空アトム) [] は empty list(空リスト) らしい。 null と empty の使い分けもまあ微妙だけど、もし www.weblio.jp/category/computer/prolg が五十音順だとすると、ひょっとして 空(から)アトム 空(くう)リスト と読み分けるんだろうか、という疑問が湧いたw
56 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 12:05:58 ] ISLISP (JIS X 3012) の訳語対照表では 「く」の位置に 空リスト empty list 空リスト null とあるな。 ISLISP では null と empty list が同一視されるから、このような訳しかたを 選んだようだが。
57 名前:デフォルトの名無しさん [2009/05/09(土) 10:54:13 ] prologでちょっと複雑なことさせようとするとプログラミングするのがかなり難しい>< これも慣れると簡単になるのだろうか
58 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 08:23:49 ] >>57 どのような部分で難しいと感じるか、教えてください。 できればソースプログラムを見せてください。
59 名前:デフォルトの名無しさん [2009/05/10(日) 10:10:05 ] >>58 ソートの処理をさせるときとか
60 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 13:26:44 ] >>59 ソートはちょっと違うかも知れないけど・・・。 Prologのプログラミングはただひたすら、appendだけで プログラムを書くつもりで行けばよい。
61 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 05:22:09 ] >>60 repeat. repeat :- repeat. は append([],X,X). append([U|X],Y,[U|Z]) :- append(X,Y,Z). 実は同一パターン。 member(A,[A|_]). member(A,[_|R]) :- member(A,R). は ?- ..., repeat, ... は ?- ..., append(_,_,_), ... でいけそうだが、 スタックオーバーフローを起こすだろうから実用にはならない。 member(A,L) :- append(L1,[A|L2],L). だから、 ?- ... ,member(A,L), は ?- ... , append(_,[A|_],L), でよい。 member/2を使っていると、member/3 member(A,[A|R],R). member(A,[_|R1],R) :- member(A,R1,R). や member/4が欲しくなる。 member(A,[],[A|R],R). member(A,[B|R1],[B|R2],R) :- member(A,R1,R2,R). ここまでくると 引数の位置が違うだけでappend/3と同じ述語と考えてよい。つまり、 Prologプログラムの大半にmember/2が絡んでくるがこれは全部append/3でよい。
62 名前:60 mailto:sage [2009/05/11(月) 05:51:47 ] すみません。ちょっと編集をまちがえた。 repeat. repeat :- repeat. は append([],X,X). append([U|X],Y,[U|Z]) :- append(X,Y,Z). と 実は同一パターン。 ?- ..., repeat, ... は ?- ..., append(_,_,_), ... でいけそうだが、 スタックオーバーフローを起こすだろうから実用にはならない。 member(A,[A|_]). member(A,[_|R]) :- member(A,R). は ... <以下略> が正しい順序でした。
63 名前:60 mailto:sage [2009/05/11(月) 05:55:25 ] >>62 さん 60は私ですw
64 名前:60 mailto:sage [2009/05/11(月) 06:09:03 ] どこまで、副目標としてappend/3を使うか、それとも 別述語を定義して使うのかは指針があるわけでもなく、 迷うけどね。
65 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 22:12:02 ] >>57 なんでappendの話に飛ばしたかというと、Prologプログラムは8割方が 簡易オンメモリデータベース。残りの2割の内、7割くらいが findall/3 と append/3 (member/2) の組み合わせ。(fail;trueもありますね)。 残りの6%くらいが入出力とかsplit,atom_codesのような文字列処理。 こんな配分です。つまり、"データこそすべて"プログラミングに findall append を粘り強く積み重ねるだけで、ほとんどの難しい ところはなくなってしまいます。 あなたが指摘した"複雑なこと"のプログラミングは極めて例外的な 部分ではないかと思います。
66 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 02:51:24 ] ロジック プログラミング言語「デカルト言語」の開発者に聞く - SourceForge.JP Magazine sourceforge.jp/magazine/09/05/11/0417217 さあ聞こうじゃないか もちろんまだ読んでないがw
67 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:57:07 ] >>66 Kbuntu 7.1 でコンパイルしてみたら、 syserr.c:31:21: error: ncurses.h: No such file or directory syserr.c: In function 'void syserr(char*, ...)': syserr.c:59: error: 'endwin' was not declared in this scope make: *** [syserr.o] エラー 1 となりうまくいかない。どうすればいいの?
68 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:33:37 ] >>67 svn.sourceforge.jp/view/trunk/descartes/configure.in?view=log&root=descartes > 14 : dnl Checks for libraries. > 15 : dnl Replace `main' with a function in -lncurses: > 16 : AC_CHECK_LIB(ncurses, main) > 17 : dnl Replace `main' with a function in -lreadline: > 18 : AC_CHECK_LIB(readline, main) よくわからんけど、どうやらここの「main」というのはテンプレ通りで、 本当は「各ライブラリに含まれるはずの関数」を指定しなければライブラリの存在チェックにならないんじゃないかな
69 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:34:48 ] と、思わず一つ勉強になっちゃったぜ えへへ
70 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:58:20 ] これこれ www.gnu.org/software/hello/manual/autoconf/Libraries.html > Test whether the library library is available > by trying to link a test program > that calls function function with the library.
71 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:03:55 ] >>67 結論としては、作者にこのスレを教えてあげるとかw
72 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:27:23 ] >>67 ちょっとソース見たけど、ncursesがなかった場合に対応できるような感じではなかったから、 どのみちncursesを入れなきゃダメなんだろうね
73 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 10:25:12 ] >>72 ncurses.hは Kbuntu Ubuntu にはなくて、私がすぐ手に入るのは、 FC5のncurses.hディレクトリなんだけど、これをコピーすれぱいいのかな? やってみよう。
74 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 14:17:57 ] ディレクトリはncurses.h ではなくてncursesだった。続いて、 readlineディレクトリが無いときた。これもコピーと・・・
75 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 14:29:17 ] c++ -g -O2 -o descartes pl.o pllex.o unify.o bin_node.o gc.o var.o \ pred.o syserr.o builtin.o expression.o context.o module.o let.o regex.o \ token.o func.o timeout.o utf8.o euc.o sjis.o code.o help.o mkstemp.o \ cwd.o sysmodule.o format.o sleep.o complx.o lisp.o compiler.o matrix.o \ ncurlib.o lib_include.o opcall.o syserr.o: In function `syserr(char*, ...)': /home/k1/descartes/syserr.c:59: undefined reference to `endwin' sysmodule.o: In function `GetlineEval()': /home/k1/descartes/sysmodule.c:2409: undefined reference to `readline' /home/k1/descartes/sysmodule.c:2411: undefined reference to `add_history' sysmodule.o: In function `GetLine(Context*, Node*, List*)': 以下、大量にエラーがでて撃沈。
76 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 14:47:45 ] 何か無茶苦茶やってませんかw とりあえず綴りは「Kbuntu」じゃなくて「Kubuntu」みたいですね 使ったことないけど ubuntuforums.org/showthread.php?t=296224 > Re: install curses/ncurses > sudo apt-get install build-essentials > sudo apt-get install libncurses5-dev こんな情報が
77 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 14:49:52 ] てゆーかもうさすがにスレ違いかと
78 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 16:01:17 ] >>77 デカルトさんまたねw
79 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 16:32:46 ] slashdot.jp/interview/09/05/11/0445205.shtml こっちのページの方が面白そうだよ 作者も降臨してるし
80 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 17:19:06 ] デカルト言語のキーワードの一つは「オレオレ」かな
81 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 17:20:16 ] オレ惟ふ故にオレオレ
82 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:15:19 ] ttp://lists.sourceforge.jp/mailman/archives/descartes-developer/2009-May/000012.html > 次のPrologのプログラムはDecartes > ではどのように書けばよいのでしょうか。 > > factorial(0,1). (以下略) sourceforge.jp/projects/descartes/wiki/ManGrammar ここによると、 ・is/2にあたるのは、<let #変数名 = 式>、<#変数名 = 式>など ・(<)/2など、数値の関係を与える式の評価は、<compare 式>など ・ただし、扱う数値の型によって述語を使い分ける必要がある(letf、letc、comparef) みたいな感じ?要はLispで適当にマクロを組んだ感じかな
83 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:23:39 ] しばらく読んでみたけど、結局、 sourceforge.jp/projects/descartes/wiki/ManBuiltin X+b = a+Y という単純なマッチングを普通に書く方法が見つからないww
84 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 08:29:52 ] :- op(850,xfx,>>). ?- もう少し本格的な生成文法でなんとかならないの >>76 .
85 名前:84 mailto:sage [2009/05/17(日) 08:31:59 ] 誤爆です。こっちへ書くつもりだった。 pc12.2ch.net/test/read.cgi/tech/1179157784/
86 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 09:13:13 ] >>85 閑してますねw
87 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 19:50:12 ] 学生さん! どなたかこの本、邦訳してくださらないか。 "Building Expert Systems in Prolog" Dennis Merritt著 1989年 Springer-Verlag ISBN 0-387-97016-9
88 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 00:11:34 ] >>87 エキスパートシステムって、実用化までたどり着けなかったシステムと 聞いてますけど、いまさら翻訳する意味あるんですか。
89 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 02:38:11 ] 駅スパアトなら使ってるけど?
90 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 04:35:33 ] >>88 金字塔的な書籍は何でも読みたい。 ロジカルアプローチは世界的に再評価の時期に入っているから、 読み直しの要求は出てくるよ。
91 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 05:19:32 ] >>88 エキスパートシステムは漸く事業化の時期に来たのではないか。 20年(一世代)待ったということになる。 エージェントアプローチ + エキスパートシステムでリプレース できるアプリケーションは無限にあるよ。
92 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 06:59:08 ] 比較的最近"眺めた"本で翻訳して欲しいなぁと思った本を列挙。 "Towards Putting Abstract Interpretation of Prolog into Practice" F.Gobert著 2008 年 VDM Verlag ISDN:978-3-8364-8858-7 "Clause and Effect" --Prolog Programming for the Working Programmer-- William F.Clocksin著 1997年 Springer Verlag ISBN:3-540-62971-8 "Intelligent Image Processing in Prolog" Bruce Batchelor著 1991年 Springer-Verlag ISBN:3-540-19647-1 (この本は初心者言語スレで 紹介したところ何故か罵倒された) "AI Algorithms, Data Structures, and Idioms in Prolog,Lisp, and Java" George F.Luger William A.Stubblefield共著 2009年 Addison Wesley ISBN-13:978-0-13-607047-4 (この本はAI携帯スレで紹介した)
93 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 09:32:23 ] 三重野博司著の「人事情報エキスパートシステム」という本に210くらいの 質問事例が載っています。ほとんど揺らぎとでも表現したいくらいの微妙な 差異のif-thenルールを積み重ねているのですが大変参考になりました。 それで感じたのはエキスパートシステムを能率よく構築するためには 質問文やif-thenルールの自動生成が欠かせないのではないか、という ことでした。
94 名前:93 mailto:sage [2009/05/19(火) 09:49:21 ] 210くらいのif-thenルールが載っています。 でした・・
95 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 09:51:34 ] オントロジーは?
96 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 10:17:05 ] オントロロロギッタンディスカー
97 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 23:45:46 ] blog.livedoor.jp/heitatta/archives/65113337.html > もともと大学で Lisp を少しやっていたので、() をカッコ、コッカと読む習慣は持っているのだが、 > [] をギッコン、ガッコンと読まれて面喰らった。そーか、そう読むのか。 mjd?
98 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 01:04:31 ] www-ksl.stanford.edu/kst/what-is-an-ontology.html
99 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 05:01:56 ] >>93 最初に言語のクラスを定義しておいて、組み合わせで 文を生成していくというようなことかな。 エキスパートシステムにそういう部分が必須であると いう意味ですか? 言語クラスの定義、辞書の定義まで、すべてのアプリ ケーションのリプレースに必要とまでの主張だとすると 多少はオントロジーとも無関係ではないかもしれないw
100 名前:デフォルトの名無しさん [2009/05/20(水) 05:29:18 ] Prologって今から思えても意味ありますか? 特技みたいに思ってもらえたりするでしょうか?