title: README

README
========================================

目標
----------------------------------------

* Jenaの推論エンジンを供えたウェブサービス．
* 教材にJavaScriptを埋め込んで，RESTで通信させる．
* SCORM対応のLMSを参考にするが，対応はしない．
* Axis2のaarファイルとして作成するが，
  別ファイルでJenaLMS-all.jarも作成し，
  「java -jar JenaLMS-all.jar」でも起動するようにする．

インストール(deploy)
----------------------------------------

### ウェブサービス

まず，/etc/jenalms.ttlなどの設定ファイルを準備し，
ルールやオントロジファイルなどの必要なファイルを用意し，
必要に応じてMySQLのデータベースとアカウントをセットアップ
しておきます．このへんは下の「設定ファイルなど」の項を
参照して下さい．

deployはJenaLMS.aarをaxis2のservicesに入れるだけ
です．

ウェブページからAjaxでJenaLMSと通信させるためには，
そのウェブページとJenaLMSが同じホストの同じポートで
提供される必要があるはずなので，Tomcatとapacheな
どの連帯は必須になると思います．apacheのproxyモジュール
で連帯させると，axis2の一部のページが上手く表示
されないようですが，RESTのサービスは動作するよう
なので問題なさそうです．連帯させる場合にはJenaLMSの
エンドポイントがホスト名の後に

    /axis2/services/JenaLMS

を付けたものになるように，すなおに設定して下さい．

### ウェブページ

JenaLMSと同じホスト同じポートで配信されることを前提
にしています．これは，サンプルなのでXOOPSなどに移植
する時にはユーザIDなどを適切に取ってくるように変更
する必要があります．

オントロジー？
----------------------------------------

オントロジーに関しては別ページにまとめました。

* [Ontology.mm](./Ontology.mm)

設定ファイルなど
----------------------------------------

JenaLMSが起動した時に、設定ファイルを読み込んで、
そこに記述されている内容に従って初期化されるように
しました。

今の所、設定ファイルは/etc/jenalms.ttlにあると
課程しています。Windowsの場合はC:\\WINDOWS\\jenalms.ttl
です．もしそこに無ければ${user.home}/.jenalms.ttl
も探します。

JenaLMSに関連するファイルは，この設定ファイル以外にも，
ルールファイルやオントロジーファイルなどがありますが，
これらのファイルは，設定ファイルの記述で自由に配置する
ことができます．以下にサンプルを乗せときます。リレーショナル
データベースを使わない例ですが，「[ :use_rdb 'false' ] .」の
ところをtrueにすれば，MySQLでの永続化が可能です(他の
データベースは未確認)．以下の例はLinuxまたはMacOSXで使う
場合の例です．Windowsでファイルの場所を指定する時には，
「file://C:/JL/lms.rules」のような形式のURLを記述して
下さい．

    # JenaLMSの設定ファイル
    # 
    @prefix : <http://x314.do-johodai.ac.jp/JenaLMS/conf#> .

    #リレーショナルデータベースを使ってデータを永続化するかどうか？
    [ :use_rdb 'false' ] .
    
    #JenaLMSのルールファイル
    [ :ruleFile 'file:///var/lib/JenaLMS/lms.rules' ] .
    
    #JenaLMSのオントロジーファイル
    [ :ontFile 'file:///var/lib/JenaLMS/ont.n3' ] .
    
    #JenaLMSのデータ(RDF)ファイル(リレーショナルデータベースを
    #使わない場合のみ有効)
    [ :dataFile 'file:///var/lib/JenaLMS/data.n3' ] .
    
    #リレーショナルデータベースを使う場合の設定
    #使わない場合でも，設定しておいて害はないです．
    [ :rdb_driver     'com.mysql.jdbc.Driver' ;
      :rdb_url        'jdbc:mysql://localhost:3306/jena?useUnicode=true&characterEncoding=utf8' ;
      :rdb_user       'jena' ;
      :rdb_passwd     'password' ;
      :rdb_type       'MySQL' ;
      :rdb_model_name 'JenaLMS' ] .
    
    #タイマーの設定
    [ :timer_enable 'false' ;
      :timer_interval '60000' ] .

ちなみに，MySQLの場合rdb_urlのURLにはデータベース名や文字コード
の設定も含まれます．たぶん「useUnicode=true」は必須で
「characterEncoding=utf8」の部分が実際の文字コードだと
思われます．
