私は最近、KRR(知識表現と推論)とASPについて知りましたが、それらについて以前に聞いたことはありません(プロローグについては少し除く)。それらについて少し読んだところ、主な用途の1つはAIのようです。
私の質問は、ASPまたは他の宣言型言語がどれだけ広く使用されているか、それらを頻繁に使用するプログラム(検索エンジンなど)はありますか、それとも主に研究目的ですか?彼らがあまり知られていない理由は何ですか?AI開発がプログラミングのより「高度なレベル」に属しているためでしょうか。
私は最近、KRR(知識表現と推論)とASPについて知りましたが、それらについて以前に聞いたことはありません(プロローグについては少し除く)。それらについて少し読んだところ、主な用途の1つはAIのようです。
私の質問は、ASPまたは他の宣言型言語がどれだけ広く使用されているか、それらを頻繁に使用するプログラム(検索エンジンなど)はありますか、それとも主に研究目的ですか?彼らがあまり知られていない理由は何ですか?AI開発がプログラミングのより「高度なレベル」に属しているためでしょうか。
回答:
ASPまたは他の宣言型言語がどれだけ広く使用されているか
私が最も一般的なASPプログラミング言語だと思うプロローグの活動を見ることができます:
これに基づくと、Prologの最上位パッケージは(483 / 139,326)x 100 = 0.35%で、Node.jsの大きなパッケージの1つと同じくらい人気があります。または0.07%の数のパッケージ。
主に研究目的ですか
IMOはい、それは主に研究目的のためです。しかし、それはに似ているOCamlの Facebookなどの企業ユーザーが公開されるまで、私の経験から、研究目的のためにほとんどだった、フロー(入力されたJavaScriptプログラミングを)、と公表他人Coqの主流にOCamlのを持って助けた(自動化された定理証明)、。
彼らがあまり知られていない理由は何ですか?
IMOプロローグは、(a)異なるパラダイムであり、(b)パッケージマネージャーが標準に達していないため(最近では大きな問題です)、(c)伝道された Webフレームワークがないため、使用されません。Node.js用のNPMのような優れたパッケージマネージャーがあり、市場に出されたWebフレームワークと、伝道者の小さなグループがあった場合、それが主流になるのに役立ちます。Rubyには37個のシグナルとRailsがあり、PythonにはGoogleなどがありました。
AI開発がプログラミングのより「高度なレベル」に属しているためでしょうか。
いいえ、そうではありません。一部のAI研究では、モデリングにプロローグを使用していますが、AIの要件ではありません。AIは2つの部分に分けることができます。(1)関係が学習されていて明確に定義されていない機械学習/確率論ベースのモデルと、(2)手動で定義されたモデル。ほとんどのAIは両方の混合ですが、手動で定義されたモデルは価値があり、大部分はプライベートに保たれます。手動で定義されたモデルはPrologを使用して定義することができ、それを行うためのペーパーはいくつかありますが、必須ではありません。要約すると、すべてのAI作業は通常のプログラミング言語で行うことができますが、場合によっては、Prologを使用することで少しコンパクトになる場合があります。
私は、SWI-Prologのインストールを通じて、354人の学生(ほとんどはSE)を歩いたところです。インストールに関する約12の問題がありました。ほとんどの人がこのプロセスをかなり簡単だと考えました。
SWI-Prologのユーザー数が100倍だった場合、インストールはさらに洗練されたものになると認めます。しかし、インストールが非常に難しいため、だれも遠慮していません。
パックに関しては、パックをインストールするには、pack_install(my_pack)をクエリします。
それがあります簡単にルビーの宝石をインストールするよりも。
さて、それは非研究分野で使われている頻度のよう-ので、D / Lの統計平均何もA)http://swi-prolog.orgが(CDNを介して提供され、我々は、複数のサーバーを使用する必要がありますし、CDNは述べていること何か)、そしてb)ユーザーの大多数がPL理論/調査コースを履修している学部生であることを知っています。
商用利用はより一般的になっています。私は数年前からPrologだけを書いていて、私は学者ではありません(時には、大学の請負業者として働いていましたが、学者としてではなく、エンジニアとして働いていました)。
ほとんどのアプリケーションはAIまたは機械学習環境にあります。ハードMLの問題は、多くの場合、シンボリックAIの混合から恩恵を受けます。
1980年代には、象徴的なAIが主流でした。その間、エキスパートシステムが急増しました。それらの多くは、Prologでコーディングされています。
今日でも、(一部の領域では)ビジネスルールシステムとビジネスルールエンジン、およびビジネスルール管理システムで使用されるビジネスルールアプローチがあり、IMHOは1980年代のエキスパートシステムを直接継承しています。私の知る限り、多くのビジネス指向ソフトウェアは同様の原則に基づいて構築されています。そのようなシステムを備えた銀行では、多くの信用(または保険)決定が今日自動的に(そして毎日)行われていると思います。XSLTのような書き換えシステムも日常的に使用されており、1980年代のエキスパートシステムのアイデアの子孫です。宣言型プログラミングを含む(CLIPSあるいはメイクや他のルールベースのシステム s)は、一般的なプログラミングおよびソフトウェア業界におけるシンボリックAIアイデアの解消と見なすことができます(何かが「簡単」になり、「普及」するとすぐに、AIと呼ばれなくなります)。
今日、AIは機械学習アプローチ(ニューラルコンピューティングを含む)に限定されています。1980年代以前は(広く)AIと呼ばれていたものが、現在AGIと呼ばれています。
次のAIの冬は、抽象的な解釈の冬になるかもしれません。抽象解釈は、静的プログラム分析に関する理論と考え方です。今日、そのAIは流行語になり、ソフトウェアの安全性に関するほとんどの問題の解決策として提示されることがあります(そうではありません)。
一部の人(私を含む)は、シンボリックAIは完全に(少なくとも他のパラダイムと組み合わせると)死んでいるわけではないと考えています。興味深い見解は、彼のブログでのJacques Pitrat(引退した研究者でフランスのAI開拓者)の見解です。
しかし、AI(Dartmouth 1956で定義されている「人工知能」と「高度な情報学」の両方)システムの構築は困難です。それらを開発するには長年の努力が必要です。Brookの洞察を思い出してください:「1人の女性が9か月で1人の赤ん坊を作るのに、9人の女性が1か月で赤ん坊を作ることはできません」。これは、複雑でやりがいのあるソフトウェアシステムにも当てはまります(完成までに9年かかる可能性がありますが、才能のあるソフトウェア研究者の小さなチームに9年間支払う余裕がない世界に住んでいます)。私が完全に理解していない(しかし、私は深く後悔している)社会的および経済的理由により、ソフトウェアにはITERのような大規模な長期プロジェクトに相当するものはありません(そして、数十人の研究者がいる4年または5年以上続く小さな長期の研究プロジェクトすらありません)。softwareheritageプロジェクトも参照してください。ソフトウェアドメインは、1980年代に栄えた多くのアイデアよりも、今日では全体として創造性に欠けています。Liam ProvenのFOSDEM 2018の講演「The Circuit Less Traveled」をご覧ください
主に(XX前の世紀に呼ばれた何番目の世紀)AIと呼ばれる今日でAGI。用語が変更されている、と野心はほとんどなくなって、今日です。最近、2020年代初頭のAIは、主にニューラルネットワークと機械学習に関するものです。2019年私の気持ちは、AIが(それは今日役に立たない流行語になったということですこれ以上についてrtificial Iの ntelligence)。