2017-01-25 3 views
0

私の質問は、Tin Can PHP APIライブラリのPersonオブジェクトに関連しており、どのような用途が考えられますか?Tin Can PHPライブラリ:Personオブジェクト

このライブラリのPersonオブジェクトは、xAPI仕様のパート3セクション2.4(リンク:https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Communication.md#24-agents-resource)のエージェントリソースの実装です(これまでのところ理解しています)。仕様は、Personオブジェクトを認識し、オブジェクトの目的は、それがより思われるディレクトリサービス

として

外部 サービス由来エージェントに関する結合情報を提供することであることを示し(see link)の開発者からは、仕様のPersonオブジェクトは、1つのオブジェクト内で、多数の異なるAgentオブジェクトに分散されている人に関する情報を収集する手段を提供することを目的としています。

私は、ライブラリの例以下の難しさがあったが、次の(単純化)のコードでは、SCORMクラウドLRSで動作しているようです:

... 
$agent1 = new TinCan\Agent(); 
$agent1 
    ->setMbox('[email protected]') 
    ->setName('Dr David Jones'); 

$agent2 = new TinCan\Agent(); 
$agent2 
    ->setMbox('[email protected]') 
    ->setName('David Jones'); 

$person = new TinCan\Person(); 
$person 
    ->setMbox([$agent1->getMbox(), $agent2->getMbox()]) 
    ->setName([$agent1->getName(), $agent2->getName()]); 
... 

はLRSに保存されることを意図し、ライブラリのPersonオブジェクトですか?もしそうなら、私はライブラリのStatementオブジェクトを使ってそのような手段を見つけることができませんでした。そうでない場合は、意図した用途は何ですか?

私は説明のために感謝します。ありがとうございました。

答えて

1

APIは、このオブジェクトを保存する手段を提供しません。 LRSは、同じエンティティを表す複数のエージェントをPersonオブジェクトにアセンブルする手段を何でも使用することを意図しています。意図された目的は、ステートメントストリームにアクセスするシステムが複数のエージェントに対してそれらのストリームを組み合わせて、その人の全体的な活動の完全な画像を得ることができるようにすることです。

渡す:

例えば、私は3(またはX)人として私を表す識別子を有することができる、のは、彼らがしていると仮定しましょうPerson読み取り専用リソースに対するエージェント識別子(完全なエージェント表現としての)のいずれか1つは、それらをすべて含むPersonオブジェクトを返しますは、LRSによって十分な知識があると仮定してそれらをマップします。したがって、レポートシステムでは、ステートメントストリームを読み取って、新しいエージェントごとにPersonオブジェクトを要求し、異種の(例えば)actorプロパティを持つステートメントを、その人の完全なアクティビティの単一レコードに調整することは可能です。ここで重要な点は、LRSは、エージェントを連携させるために必要な知識を持つように開発(または統合)されていなければならないことです。

TinCanPHPは、理論上、LRPとして通信するのと同じくらいLRSを書き込むために使用できるため、データモデルオブジェクトの全範囲を提供します。ここでの重要な実装の詳細は、TinCan\Personオブジェクトを返すTinCan\RemoteLRSクラスを介してGET /agentsの読み取り専用リソースを提供することです。あなたのコードはTinCan\RemoteLRSクラスのインスタンスとやり取りしていないので、実際にはLRSと通信していないので、この場合SCORM CloudのLRSは無関係です。利用可能なリソースを使用して対話する場合は、(少なくとも作成時に)複数のエージェントを関連付ける方法がわからないため、渡されたエージェントのみを含むPersonオブジェクトが返されますが、デフォルトはエージェントに提供されます。

+0

詳細返信Brianに感謝します。 LRSは複数のエージェントを関連付ける方法をどのように知ることができますか?あなたの例が示しているように、エージェント識別子はしばしば共通点を持たないでしょう。 –

+1

@Grant_Baileyは通常、他のカスタムメカニズムを使用します。例えば、アクティブなディレクトリを使用する大企業は、従業員に自分の電子メールアドレス、twitterハンドルを要求したり、内部化できる他の内部システムからの他のアカウントベースの識別子に関する情報を持っていたり、すべての既知の識別子で。 –