[論文レビュー] SWISH: SWI-Prolog for Sharing
SWISH は、SWI-Prolog とウェブテクノロジを基盤に構築された、ウェブベースで共同作業が可能な Prolog 開発環境であり、リアルタイムでのコード編集、クエリ実行、結果の可視化を可能にします。ClioPatria や TRILL といったシステムと統合可能で、教育分野への導入を支援し、Pengines を用いたサーバーサイド実行を実現するモジュラークライアント・サーバー・アーキテクチャにより、共有でインタラクティブな Prolog プrogramming を実現しています。
Recently, we see a new type of interfaces for programmers based on web technology. For example, JSFiddle, IPython Notebook and R-studio. Web technology enables cloud-based solutions, embedding in tutorial web pages, atractive rendering of results, web-scale cooperative development, etc. This article describes SWISH, a web front-end for Prolog. A public website exposes SWI-Prolog using SWISH, which is used to run small Prolog programs for demonstration, experimentation and education. We connected SWISH to the ClioPatria semantic web toolkit, where it allows for collaborative development of programs and queries related to a dataset as well as performing maintenance tasks on the running server and we embedded SWISH in the Learn Prolog Now! online Prolog book.
研究の動機と目的
- リアルタイムでの共同作業、教育、データ分析を支援するウェブベースでインタラクティブな Prolog 開発環境を構築すること。
- Prolog をウェブチュートリアル、ドキュメンテーション、データ探索ワークフローにシームレスに統合できること。
- ブラウザ経由で Prolog プログラムを共有・実行できるスケーラブルで安全かつ拡張可能なプラットフォームを提供すること。
- Web ページへの埋め込みにより Prolog のアクセス性を向上させ、確率的推論やセマンティックウェブクエリなど、複数のユースケースをサポートすること。
- 複数文書編集、完全なモジュール編集、Markdown を用いたチュートリアル作成といった今後の拡張機能の基盤を構築すること。
提案手法
- システムは、jQuery、Bootstrap、RequireJS を用いて構築された JavaScript クライアントを採用し、ブラウザ上でインタラクティブな編集、クエリ入力、結果のレンダリングを実現しています。
- サーバーサイドは、HTTP サーバーライブラリと Pengines フレームワークを用いて、SWI-Prolog で完全に実装されており、HTTP を介してリモートで Prolog クエリを実行します。
- SWISH は、構文強調、コード補完、ドキュメンテーション検索、クロスリファレンシングのための既存の Prolog ライブラリと統合されています。
- サーバーが管理する共有ソースリポジトリを通じて、ソースコードの共有とバージョン管理が可能になっています。
- 確率的推論などの特殊ユースケースに対しては、コアサーバーを変更せずにクライアントサイドの JavaScript の変更によりクエリランナーを拡張しています。
- アーキテクチャにより、Web ページへの埋め込み(例:Learn Prolog Now!)や、ClioPatria や TRILL といったセマンティックウェブツールとの統合が可能になっています。
実験結果
リサーチクエスチョン
- RQ1現代的でウェブベースのインターフェースをどのように設計すれば、インタラクティブで共同作業可能な Prolog プログラミングを実現できるか?
- RQ2Prolog をウェブベースの教育資料やデータ分析ワークフローにどの程度効果的に埋め込めるか?
- RQ3Pengines を用いて、HTTP を介してサーバーサイドの Prolog 実行を安全かつ効率的に公開するにはどうすればよいか?
- RQ4リアルタイムでのコードと結果の共有を実現するため、Prolog をウェブテクノロジとどのように統合できるか?
- RQ5RDF/OWL 推論や確率的論理プログラミングといった高度なユースケースをサポートするには、SWISH をどのように拡張できるか?
主な発見
- SWISH は、ライブコード編集、クエリ実行、結果の可視化を備えたブラウザベースのインターフェースにより、リアルタイムで共同作業可能な Prolog プログラミングを成功裏に実現しました。
- 本システムは、Learn Prolog Now! のオンライン教科書に成功裏に統合され、教育的文脈での有用性が実証されました。
- ClioPatria と統合することで、共同データ探索やサーバー保守が可能になり、SPARQL や SQL ベースのデータセットへの共有アクセスが実現しました。
- クライアントサイドのランナーロジックをわずかに変更するだけで、cplint や TRILL を用いた確率的 Prolog プログラムの実行が可能になり、拡張性が実証されました。
- メモリリークなどの安定性の問題により週1回の再起動を要するものの、アクティブユーザーへの影響は最小限に抑えられ、システムは使用可能で安定しています。
- 今後の拡張の基盤として、完全なモジュール編集、複数文書ワークフロー、Markdown を用いたチュートリアル作成が可能であることが示されました。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。