demonlazeros has asked for the wisdom of the Perl Monks concerning the following question:

Does anybody have experiance with SCORM complient material, specifically SCORM conformant LMS. Question 2: What is meant by API (Application programing interface). I need to initiate an API using Perl. My confusion is what exactly is involved in initiating an API. Is it simply launching a Perl script? I've asked a few SCORM developers and they have given me short answers but of course to get the full story they require to be hired. Not that they dont deserve the compsation, but I think I can do it myself if I can only get the concept down and how it relates to Perl.

Replies are listed 'Best First'.
Re: SCORM and Perl
by Old_Gray_Bear (Bishop) on Aug 13, 2008 at 17:32 UTC
    SCORM according to the Wikipedia is "Sharable Content Object Reference Model", and is a Department of Defense project relating to "web-based e-learning". The latest edition of the SCORM reference books was published in 2006.

    According to the article: "The standard uses XML, and it is based on the results of work done by AICC (CBT), IMS Global Learning Consortium, IEEE, and Ariadne."

    Based on that statement, I'd expect that any of the generally available XML modules would be a good starting point to develop your API.

    You might look into the the 'External Links' at the end of the article. Under References I see links to SCORM Primer and "Concise articles like 'SCORM for Dummies' and 'SCORM For Developers', which should give you pointer to the kinds of objects your API will need to manipulate.

    This sounds like you have the start of an interesting CPAN module here.

    ----
    I Go Back to Sleep, Now.

    OGB

      Thanks all for your help. MY problem lies in that SCORM is mostlyfocused with the devopment of the SCO Sharabel Content Object which is the aqctual course. The LMS Learning Management System has very little requirements so most sites dont spend much time on it. Unfortunately www.scorm.com is one of the companies that only helps to a certain point. But your help in making me understand the API concept was very helpful. SCORM uses XML so my next step is to start figuring out how to parce scorm.
Re: SCORM and Perl
by samtregar (Abbot) on Aug 13, 2008 at 17:24 UTC
    The reason you can't get a straight answer to your question is simple - it doesn't make any sense! An API is not something you can "initiate." You can "define" an API, you can "call" and API, you can "program for" an API, but "initiate" doesn't parse here.

    An API is a set of functions, methods and/or objects that define the way you access a service. For example, the API for HTML::Template specifies that to create a new object you call new():

       my $template = HTML::Template->new(...);

    The API further defines what goes in the "..." above. The API is not the code for HTML::Template itself, it is the mechanism by which the code is accessed. This distinction isn't always honored though - some people talk about an API as if it encompassed the code behind the interface.

    I'd suggest you try again with the SCORM folks. Ask them how you can make API calls from Perl (if that's what you want to do) or how you can implement a SCORM-compliant API in Perl (if that's what you want). Most likely they'll respond by either pointing you to existing Perl libraries or describing the interface style they're using (SOAP, REST, etc.).

    -sam

Re: SCORM and Perl
by jethro (Monsignor) on Aug 13, 2008 at 17:16 UTC

    2. Generally an API is the definition of the visible subroutines, objects and variables of a library. In a way the stuff you read in the perldoc of any module on CPAN.

    Initiating an API might mean defining how your perl script or scripts (better call it modules) are called and how they are used (i.e. the interface). And in your case your module has to provide the functionality that the SCORM model demands

    Disclaimer: Even though I made that sound as if I knew what SCORM is, I just read about it in the wikipedia

Re: SCORM and Perl
by Your Mother (Archbishop) on Aug 13, 2008 at 20:07 UTC

    The LMS (learning management system, I presume) could be in Perl but it sounds like the API has to addressed from JS because the SCORM spec only allows browser-side clients-

    This API is implemented by what the SCORM calls an API Adapter. An API Adapter must reside in a window ... The API Adapter must be an ECMAScript (JavaScript) object named "API" that is accessible though the DOM...

    All communication between the content and the LMS is handled by this adapter, thus the content author does not need to worry about communicating with the server, he only needs to be able to find the API Adapter and make the appropriate JavaScript calls.

    SCORM Version 1.2 Overview for Developers

Re: SCORM and Perl
by samtregar (Abbot) on Aug 13, 2008 at 17:24 UTC
    The reason you can't get a straight answer to your question is simple - it doesn't make any sense! An API is not something you can "initiate." You can "define" an API, you can "call" and API, you can "program for" an API, but "initiate" doesn't parse here.

    An API is a set of functions, methods and/or objects that define the way you access services from a system. For example, in the API for HTML::Temlpate specifies that to create a new object you call new():

       my $template = HTML::Template->new(...);

    The API further defines what goes in the "..." above. The API is not the code for HTML::Template itself, it is the mechanism by which the code is accessed. This distinction isn't always honored though - some people talk about an API as if it encompassed the code behind the interface.

    I'd suggest you try again with the SCORM folks. Ask them how you can make API calls from Perl (if that's what you want to do) or how you can implement a SCORM-compliant API in Perl (if that's what you want).

    -sam

      Huh. I don't know how I got a double-post. If someone could delete the above that would be cool. The second post is more complete.

      -sam