{"action":"created","issue":{"url":"https://api.github.com/repos/adlnet/xAPI-Spec/issues/1005","repository_url":"https://api.github.com/repos/adlnet/xAPI-Spec","labels_url":"https://api.github.com/repos/adlnet/xAPI-Spec/issues/1005/labels{/name}","comments_url":"https://api.github.com/repos/adlnet/xAPI-Spec/issues/1005/comments","events_url":"https://api.github.com/repos/adlnet/xAPI-Spec/issues/1005/events","html_url":"https://github.com/adlnet/xAPI-Spec/issues/1005","id":183243946,"number":1005,"title":"Actor object: properties where ObjectType is Group","user":{"login":"GrantBailey","id":17286122,"avatar_url":"https://avatars.githubusercontent.com/u/17286122?v=3","gravatar_id":"","url":"https://api.github.com/users/GrantBailey","html_url":"https://github.com/GrantBailey","followers_url":"https://api.github.com/users/GrantBailey/followers","following_url":"https://api.github.com/users/GrantBailey/following{/other_user}","gists_url":"https://api.github.com/users/GrantBailey/gists{/gist_id}","starred_url":"https://api.github.com/users/GrantBailey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GrantBailey/subscriptions","organizations_url":"https://api.github.com/users/GrantBailey/orgs","repos_url":"https://api.github.com/users/GrantBailey/repos","events_url":"https://api.github.com/users/GrantBailey/events{/privacy}","received_events_url":"https://api.github.com/users/GrantBailey/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2016-10-16T01:54:49Z","updated_at":"2016-10-18T02:13:29Z","closed_at":null,"body":"The xAPI specification (at https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md#2422-when-the-actor-objecttype-is-group) indicates that in the Actor object, where the ObjectType is Group, the 'member' property is required for both anonymous groups and identified groups.\r\n\r\nThe requirement for a member in the anonymous group type appears to be inappropriate, given the definition of an anonymous group as 'a cluster of people where there is no ready identifier for this cluster'.\r\n\r\nThe following code example (which uses the PHP API) should not work according to the specification but throws no error:\r\n\r\n$actor = new TinCan\\Agent (\r\n    [ \r\n\t'objectType' => 'Group',\r\n\t'name' => 'Tin Can group',\r\n\t'mbox' => 'mailto:user@example.com'\r\n\t]\r\n);"},"comment":{"url":"https://api.github.com/repos/adlnet/xAPI-Spec/issues/comments/254387516","html_url":"https://github.com/adlnet/xAPI-Spec/issues/1005#issuecomment-254387516","issue_url":"https://api.github.com/repos/adlnet/xAPI-Spec/issues/1005","id":254387516,"user":{"login":"GrantBailey","id":17286122,"avatar_url":"https://avatars.githubusercontent.com/u/17286122?v=3","gravatar_id":"","url":"https://api.github.com/users/GrantBailey","html_url":"https://github.com/GrantBailey","followers_url":"https://api.github.com/users/GrantBailey/followers","following_url":"https://api.github.com/users/GrantBailey/following{/other_user}","gists_url":"https://api.github.com/users/GrantBailey/gists{/gist_id}","starred_url":"https://api.github.com/users/GrantBailey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GrantBailey/subscriptions","organizations_url":"https://api.github.com/users/GrantBailey/orgs","repos_url":"https://api.github.com/users/GrantBailey/repos","events_url":"https://api.github.com/users/GrantBailey/events{/privacy}","received_events_url":"https://api.github.com/users/GrantBailey/received_events","type":"User","site_admin":false},"created_at":"2016-10-18T02:13:29Z","updated_at":"2016-10-18T02:13:29Z","body":"Brian,\r\n\r\nI tried with the ADL LRS and the error message was 'One and only one of mbox, mbox_sha1sum, openid, account may be supplied with an Agent'.\r\n\r\nI have reproduced my whole statement below in case I have made some other error.\r\n\r\n$id = guidv4(generateRandomString());\r\n$actor = new TinCan\\Agent (\r\n    [ \r\n\t'objectType' => 'Group',\r\n\t'name' => 'Tin Can group',\r\n\t'member' => \r\n\t\t[\r\n\t\t'objectType' => 'Agent',\r\n\t\t'name' => 'Jim Sample',\r\n\t\t'mbox' => 'mailto:jim@sample.com'\r\n\t\t]\r\n\t]\r\n);\r\n$verb = new TinCan\\Verb(\r\n    [ \r\n\t'id' => 'http://adlnet.gov/expapi/verbs/attempted',\r\n    'display' => ['en-US' => 'attempted']\r\n    ]\r\n);\r\n$activity = new TinCan\\Activity (\r\n    [ \r\n\t'id' => 'http://www.baileyandireland.com/tincan/IAL/1.1'\r\n\t]\r\n);\r\n\r\n// Compose statement for sending to the LRS\r\n$statement = new TinCan\\Statement (\r\n    [\r\n\t'id' => $id,\r\n\t'actor' => $actor,\r\n\t'verb'  => $verb,\r\n\t'object' => $activity\r\n    ]\r\n);\r\n\r\n// Send the statement\r\n$response = $lrs->saveStatement($statement);\r\n\r\n// Retrieve statements from the LRS\r\n$response = $lrs->queryStatements(['limit' => 2]);"}}
{"actor":{"display_login":"GrantBailey"}}