-
Notifications
You must be signed in to change notification settings - Fork 403
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Context and Goals #556
Comments
Thanks for raising this issue Roger! On points 1 and 2, I agree these are areas for improvement and I'd welcome if you'd like to make a pull request for one or both of those. Perhaps on point 2, we could say "The Experience API describes a service" instead of "is a service". On your main point, my personal view is that this kind of background and selling of the benefits of Tin Can doesn't belong in the document itself. This document, I think, is aimed at people that have already been sold on the benefits and are looking to implement. One reason for this is that the document, as a specification, is taken to be very precise. If we were to list use cases, for example, it could be taken to mean that we don't support the use cases that we missed out. Another reason for keeping this stuff out is that the tighter the scope, the less work! Somebody would need to write all of that content and maintain it. if we can keep the specification focused, we can move faster and make the text we do have clearer. |
Hey Roger, let me answer these to the best of my ability.
|
Hi Andrew: I agree with the need to keep the document concise and the language Roger On Mon, Dec 15, 2014 at 11:18 AM, Andrew Downes [email protected]
Roger Swetnam |
WRT andy's comment below, it's important to note that an LRS is not required to conform to the xAPI specification. It is a way and the spec does encourage employing an LRS, but to be clear, one can simply apply the data model to activity providers and send statements to any any endpoint, such as a Postgres database. -a- #mobile Aaron E. Silvers | MakingBetter 857.34.BEARD | @aaronesilvers Let’s meet! Pick a time. On Monday, Dec 15, 2014 at 2:42 PM, Andy Johnson [email protected], wrote:
|
Roger, The challenge of stating the intentions behind the development of xAPI is, as Andrew Downes alluded to, a story that will change over time and so the narrative itself must be maintained. And then, who is to own that narrative? Groups write specifications well enough and that takes discussion, debate, trolling, reconciliation, etc. it's a process just to get on the same, objective technical page. Narratives are subjective. The messy reality is there are many reasons that overlapped and reinforced each other that brought xAPI into being. A strong narrative arc is that of addressing longstanding limitations of SCORM, but that is not the main reason the (now called) TLA gained the attention of the CNRI and ADL in 2009-2010. For so many reasons, these stories of our sausage making should be retold… just not in the spec, imho. ;) -a- #mobile Aaron E. Silvers | MakingBetter 857.34.BEARD | @aaronesilvers Let’s meet! Pick a time. On Mon, Dec 15, 2014 at 2:51 PM, rswetnam [email protected]
|
Seems like consensus is that we do need aims, but we don't need to make any changes to the spec. Can this be closed? |
I suggest that Section 2.0 The Role of the Experience API be rewritten to address the following issues:
3.Although the xAPI describes an interface, the first line defines it in terms of one concrete implementation of that interface - namely as a service that allows statements of experience to be stored in an LRS The Experience API (Application Programming Interface) - or xAPI as it is commonly called - is a framework that facilitates the description, communication and storage of learning experiences in a consistent manner in a digital environment. The purpose of the xAPI is to promote interoperability of computer programs that follow this framework. The xAPI builds upon and extends the Shareable Content Object Reference Model or SCORM that was developed to track users' progress as they took online computer-based training courses. Unlike SCORM, however, the xAPI is meant to deal with all types of learning experience, both online and offline. The current version of that para is as follows: The Experience API is a service that allows for statements of experience to be delivered to and stored securely in a Learning Record Store (LRS). These statements of experience are typically learning experiences, but the API can address statements of any kind of experience. The Experience API is dependent on Activity Providers to create and track these learning experiences; this specification provides a data model and associated components on how to accomplish these tasks. |
Hey thanks @rswetnam. In response to the comments:
Overall, great catches and we'll have to get those in a PR soon. |
I suggest changing the title of Section 2.0 to Overview or Introduction from Role of the Experience API since a couple of the subheadings have nothing to do with the role. 2.0 Introduction The Experience API (Application Programming Interface) - or xAPI as it is commonly called - is a framework that facilitates the description, communication and storage of learning experiences in a consistent manner in a digital environment. The purpose of the xAPI is to promote interoperability of computer programs that follow this framework. I also suggest removing the second paragraph since the xAPI does not provide Data Transfer methods for the storage and retrieval of Objects to/from a Learning Record Store nor does it provide security methods allowing for the trusted exchange of information between the Learning Record Store and trusted sources as stated there |
I may be missing a technically, but a good bit of the spec is about transferring data in the form of objects that are stored and retrieved. The security section is here: https://github.com/adlnet/xAPI-Spec/blob/master/xAPI.md#security |
I suggested earlier in this thread some of the inaccuracies that I felt were in 2.0 - Role of the Experience API. Here I will suggest some changes and my reasons for them. Here goes... 2.0 IntroductionThe Experience API (Application Programming Interface) - or xAPI as it is commonly called - is a framework that facilitates the description of learning experiences and their communication and storage in a consistent manner in a digital environment. As an application programming interface, the xAPI does not set out how the framework should be implemented. Rather, it sets out the essential components of that framework and how they relate to each other. The purpose of the xAPI and the goals of this document are:
Remove following paragraph - although the xAPI talks about security and data transfer, it does not provide methods for implementing them as this paragraph suggests
Replace with The second way that the xAPI promotes interoperability is by setting out the transfer methods that must be used when communicating information about learning experiences between programs that adhere to the framework. As part of this, it sets out the information that needs to be included and how it must be handled via RESTFul HTTP methods. This is set out in Sections 6 and 7. Finally, a major goal of the framework is to promote the reliability of programs that use the framework. Reliability in this context means that users of the programs can be assured that the descriptions of learning experiences that are stored and retrieved have not been altered but are treated as "immutable". It also means that these programs have implemented certain minimum levels of security. This is also set out Sections 6 and 7. |
I'm all in favour of updating that introduction text but I have some comments on the text proposed. I wonder if this could be more easily reviewed and commented on as a pull request? My main concern with this change is that I think the emphasis on computer programs and programmers is unhelpful. Certainly programs written by programmers will be on the front line of interoperability, but the goal is interoperability of the wider systems that these programs are part of. A more minor concern is that the term 'specification' is more commonly used than 'framework' in referring to xAPI. |
Hi Andrew: Your point about over-emphasizing computer programs and programmers is well taken and I will have another go at it. Before doing so, I'd be interested in your thoughts about including Application Programming Interface in the title of the document (xAPI)? Is there a reason that it is there or should we think of xAPI in similar terms as the Xke in Jaguar - a kind of sexy name but with no real meaning - I think? |
@rswetnam Just to check I've understood; are you suggesting changing the name of the spec? I definitely don't think that changing the name of the specification after there's already a ton adopters using that name is a good idea, regardless of any arguments for and against the good-ness of that name. |
No - I'm not suggesting that the name be changed - I'm just wondering if in fact the we should be saying that the framework/specification is in fact an Application Programming Interface as suggested by the acronym xAPI. |
I don't think it is an API itself, despite the name, it's a specification describing an API. |
API is commonly used to describe specifications for their implementations, which are also called APIs. The term's more than a bit overloaded ;) |
can we close this now it's been answered? |
In order to promote the wider adoption of the xAPI, I think that it's important that the document set out more clearly, the rationale for the xAPI and situate it's historical context more clearly. It should answer questions for both technical and non-technical readers such as "Why should i use it?" "What can it do that SCORM can't" I don't think these questions adequately set out in the document.
My own experience in reading the xAOI document the first few times was that the "helpful" Reading Guidelines in the description and rationale sections actually impaired my attempts to understand the document. Rather than just complain about this, I thought I would offer some suggestions on how the document could be improved in that regard through "pull requests" - now that I under stand what they are. But before doing this, there are a number of questions - some quite mundane and trivial - that I have that hopefully members of the community can help me with.
The text was updated successfully, but these errors were encountered: