What is the cmi5 Publisher ID? End the confusion.

The cmi5 specification calls for a “publisher ID” to be placed in the context extensions of an xAPI statement.  But what is the cmi5 publisher ID?  How does it differ from the activity ID?

The cmi5 Publisher ID

In section 9.6 of the cmi5 specification developers are instructed to include the  publisher ID in the context extensions of all cmi5 defined statements.  (Specifically see section of the spec.) But if you look in the course structure, you won’t find a cmi5 publisher ID.  So what is it?

The answer is that the Publisher ID is the original activity ID provided by the course developer in the course structure.  This means that the cmi5 publisher ID is three things:

  1. When a statement references the course itself, the publisher ID is the “id” property found in the course metadata (see section 13.1.1).
  2. When a statement references a block, the publisher ID is the “id” property found in the block metadata (see section 13.1.2).
  3. When a statement references an AU, the publisher ID is the “id” property found in the AU metadata (see section 13.1.4).

LMS Generated Activity ID

In the “object” property of a cmi5 statement, you must never use the cmi5 publisher ID.  You should only include the publisher’s ID in the grouping property of context activities.  Every other place where the cmi5 spec calls for activityId you must use the LMS provided activityId.  This means that the LMS must generate a unique id value for each of the three items listed above: course, block and AU.  The generated ID must not match the cmi5 publisher ID.  This is defined in the specification in sections 8.1 and 9.3.9.

Sample Statements

If you would like to see how the publisher ID and LMS generated activity IDs are used, you can see samples on the cmi5 spec’s GitHub page.  For more information on cmi5, be sure and checkout this blog’s xAPI and cmi5 category.

Art Werkenthin
Art Werkenthin is president of RISC, Inc. and has over 30 years' experience working with LMS systems in the Oil & Gas, Retail, Finance and other industries. Mr. Werkenthin holds a B.S. in Electrical Engineering and an M.B.A. in Information Systems Management from the University of Texas. Mr. Werkenthin is a member of the ADL cmi5 committee and frequently presents on cmi5 and xAPI. Follow him on Twitter @AWerkenthin for xAPI and cmi5 updates, as well as blog post announcements.