生まれ変わったElggが可能にするカスタム版SNSの構築

 Elggは、独自のソーシャルネットワークサイト構築を目的に作成されたオープンソース系アプリケーションの1つだ。そのインストール手順は、ブログやwikiなどで利用されている一般的なWebベース型ソフトウェアのものと大差ないが、Elggから提供されるのは、ソーシャルネットワーキングサイトの構築に必要なコンポーネント一式であり、いわば自分独自のMySpace作成を可能とするのである。既にElggは複数の大学を含む世界各国の教育機関で利用されるようになっており、またSwatch社のように独自のソーシャルネットワーク作成に用いる企業も現れている。本稿執筆時点における最新版はElgg 1.0だが、これは開発者による各種プラットフォームでのソーシャルネットワーク構築を簡単化するべく、モジュール化を念頭に設計され直したバージョンである(編注:2009年1月28日時点ではElgg 1.2が最新)。

 今回のリリースに際して、Elggの開発元であるCurveriderのCTOを務めるBen Werdmuller氏により掲載されたブログ記事によると、同バージョンのソフトウェアではソーシャルネットワーキングにとって中心となる、アクセスパーミッションの細粒度化、タグ機能のクロスサイト化、各ユーザの所有権の強化(投稿記事の追跡による関連活動の執筆者へのフィードバック)などに関連した機能をコアに据えるよう改められたとのことだ。また同ソフトウェアは既に4年間の開発実績を有しているが、今回Elgg開発陣は、ソフトウェア全体をゼロから作り直すことを決定したという。「当初は単純な構造であったアプリケーションに、ソーシャルネットワーキングその他の次世代機能を後付けしていくというのはよくあるケースですが、私たちは最初からやり直すことにしました。これにより新たなElggは、柔軟性と拡張性と操作性を備えた高速なソーシャルテクノロジという新境地に到達することができたのです」

 Elgg 1.0は、フルパッケージ版とコア版という2つの形態にて提供されている。このうちコア版は、必要な機能は自分で選定して独自のソーシャルネットワークを構築するという開発者向けのものだ。「Elgg 1.0を中心にコミュニティが拡大していけば、プラグインの品揃えもより充実していき、ブログ、フォーラム、写真など様々な機能が取り込まれていくでしょう」とWerdmuller氏は説明する。

 対するフルパッケージ版のサイズは約1.4MBであり、その中には、ユーザプロファイル、ブログ、ファイルリポジトリ、フォーラム、ソーシャルブックマーキング、ダッシュボードといったソーシャルネットワーキングの必須機能が一式取り揃えられている。こうした機能の多くはプラグイン形態で提供されているので、それらを統合したものがフルパッケージ版とも見なせるだろう。またElggのインストール手順およびプラグインの設定法は、それぞれ詳細なドキュメントにまとめられている。

簡単に実行可能なカスタマイズとデータのインポート/エクスポート

 Elggのカスタマイズについては、プラグインの入れ替え以外にも、スタイルシートの編集やテーマの変更も行えるようになっているが、その他にもソーシャルネットワークとしての運用法に応じた多数の調整が実行可能だ。また独自のソーシャルネットワークを構築する場合については、ユーザに提示する各種サービスの簡単な変更を目的としたAPIとデータフォーマットが、Elgg開発陣から提供されている。

 「生まれ変わったElggにおける最大の変更点は、簡易化されたデータモデルおよび、ビューとロジックの分離としていいでしょう」とWerdmuller氏は語る。「現行のElggにおけるすべてのエンティティはElggEntityという単一クラスを継承するようになっており、これらエンティティ同士は任意に関連付けることができます。例えばユーザが、ブログの投稿記事、ファイル、ユーザプロファイルをリンクすることで(適切なプラグインの使用を前提)、これらの間を横断する形の検索といった新規の機能を提供できるでしょう。こうした処理の重要度は、RDF愛好者なら直ぐに実感してもらえるはずです」

 このような処理を実現するにあたって、各エンティティには任意形式のメタデータが付けられるようになっており、こうした情報をタグとした検索が行えるようになっている。またここでのエンティティにはアクセスパーミッション関連の機能も組み込まれているが、その具体的なコーディングについては、Elggにおける簡単なブログ構築法を解説したチュートリアルが参考になるだろう。

 その他にもElgg 1.0では、複数のビュータイプを併用する機能もサポートされている。こうした個々のビュータイプは、特定のインタフェースに合わせた形式にてElggページを提示するといった用途に使用でき、例えばElggベースのサイトでは、通常のブラウザに対しては標準的なHTML形式のビュータイプで応答し、モバイルデバイスに対してはモバイル専用のビュータイプで応答するといった切り換えが行えるのだ。

 Werdmuller氏は、ロジックとビューを分離したことで、新たなビュータイプの提供と追加が簡単化されたと説明している。例えばElgg 1.0におけるRSSフィードは、RSS用の単なる1つのビューであって、このフィードを付けるページのロジック自体はまったく同じなのだ。そしてElggではRSS以外にも、JavaScript Object Notation(JSON)、Friend of a Friend(FOAF)、Open Data Definition (OpenDD)といったビュータイプがサポートされている。「JSONビューなどはAJAXの愛好者用に準備したものですが、その他にも拡張性に優れたRESTfulおよびXML-RPC APIアーキテクチャを用意することで、プラグインを介したこの種の機能実装を簡単に行えるようにしてあります。これはElgg用のJ2MEフロントエンドなどが簡単に構築できることを意味し、それは通常のWebインタフェースというデフォルトの枠組みからの解放をもたらすことになるでしょう」

 Elggの開発陣は、異なるソーシャルネットワーク間でのデータ移植を可能にするプロトコルとしてOpenDDを定めているが、そこでは各ユーザの交友情報をそのまま維持するよう配慮されている。そしてWerdmuller氏の説明によると現在同社は、ネットワークの統合および完全なデータ移植性の確立を目指して、他のベンダに働きかけている段階とのことだ。「これこそがWebの将来のために真に必要なものだというのが、私どもの考えです」

 ブログ投稿記事に関するデータの移植性については、Curveriderの主任開発者であるMarcus Povey氏が書き起こした、ビューおよびアクションインタフェースを利用したElgg 1.0におけるデータのエクスポート/インポートの解説が参考になるはずだ。

 この解説の中でPovey氏は、Elggの従来リリース(Elgg Classic)から新規のコードベースに対するデータの移動は、OpenDDを利用することで“最低限の手間”にて行えると説明している。ただし、Elgg ClassicとElgg 1.0とではコードベースがまったく異なっている関係上、そのアップグレードには中間スクリプトが必要であり、Werdmuller氏はその将来的なリリースについて言及しているものの、具体的なタイムフレームまでは提示されていない。

Linux.com 原文(2008年9月23日)