Tin Can PHPライブラリ:Personオブジェクト
私の質問は、Tin CanPHPAPIライブラリのPerson
オブジェクトと、それをどのように使用できるかに関するものです。
ライブラリのPerson
オブジェクトは、(私が理解している限り)xAPI仕様のパート3セクション2.4のエージェントリソースの実装です(リンク: https: //github.com/adlnet/xAPI-Spec/blob/master/xAPI-Communication.md#24-agents-resource )。仕様はPersonオブジェクトを認識し、オブジェクトの目的が
外部から派生したエージェントに関する情報を組み合わせて提供する ディレクトリサービスなどのサービス
その説明とライブラリの開発者(リンクを参照)から、仕様のPersonオブジェクトは、1つの中で収集する手段を提供することを目的としているようです。オブジェクト、さまざまなエージェントオブジェクトに分散している人物に関する情報。
ライブラリの例に従うのに苦労しましたが、次の(過度に単純化された)コードがSCORM CloudLRSで機能するようです:
..。 $ agent1 = new TinCan \ Agent(); $ agent1 -> setMbox('[email protected]') -> setName('Dr David Jones'); $ agent2 = new TinCan \ Agent(); $ agent2 -> setMbox('[email protected]') -> setName('デビッドジョーンズ'); $ person = new TinCan \ Person(); $ person -> setMbox([$ agent1-> getMbox()、$ agent2-> getMbox()]) -> setName([$ agent1-> getName()、$ agent2-> getName()]); ..。
ライブラリの
Person
オブジェクトはLRSに保存することを目的としていますか?もしそうなら、私はライブラリのStatement
オブジェクトを使用してそうする手段を見つけることができませんでした。そうでない場合、その使用目的は何ですか?説明していただければ幸いです。ありがとうございます。
答え :
解決策:
APIは、このオブジェクトを保存する手段を提供していません。 LRSは、同じエンティティを表す複数のエージェントをPersonオブジェクトにアセンブルできるあらゆる手段を使用することを目的としています。意図された目的は、ステートメントストリームにアクセスするシステムが、複数のエージェントのこれらのストリームを組み合わせて、その人の全体的なアクティビティの全体像を把握できるようにすることです。
たとえば、私が人として私を表す3つ(またはX)の識別子を持っている場合があります。それらが次のようになっていると仮定します。
mailto:[email protected]
mailto:[email protected]
{"name": "@dave11785","homePage": "https://twitter.com"}
これらのエージェント識別子のいずれかを(完全なエージェント表現として)Person読み取り専用リソースに渡すと、それらすべてを含むPersonオブジェクトが返されます。 LRSによる十分な知識があると仮定して、それらを一緒にマッピングします。 。したがって、レポートシステムの場合、ステートメントストリームを読み取っているときに、新しいエージェントが表示されるたびにPersonオブジェクトを要求し、異なる
actor
プロパティを使用してステートメントを調整することができます(インスタンス)その人の完全な活動の単一の記録に。ここで重要なのは、LRSは、エージェントを関連付けるために必要な知識を備えた方法で開発(または統合)されている必要があるということです。TinCanPHPは、理論的にはLRPと通信するのと同じくらいLRSを作成するために使用できるため、データモデルオブジェクトの全範囲を提供します。ここでの重要な実装の詳細は、
GET /agents
を提供するTinCan\RemoteLRS
クラスを介してGET /agents
読み取り専用リソースを提供することです。 -code-7}オブジェクト。コードはTinCan\RemoteLRS
クラスのインスタンスと相互作用していないため、実際にはLRSと通信していないため、この場合、SCORMCloudのLRSは関係ありません。利用可能なリソースを使用して対話する場合、(少なくとも執筆時点では)Cloudは複数のエージェントを関連付ける方法を知らないため、渡したエージェントのみを含むPersonオブジェクトが返されますが、デフォルトは、提供されているエージェントです。
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。