ObjectiveBean

Name ObjectiveBean
Usage HandcarLearningService
getObjectivesInBank getObjectiveInBankById getObjectiveById getObjectivesInBankByIds getObjectivesByIds getObjectiveParents getObjectiveChildren getObjectiveRequisites getObjectiveDependents getObjectiveEquivalents getRelatedObjectivesForRelationType createObjectiveInBank updateObjectiveInBank deleteObjectiveInBank
Type Complex

Description

Learning Objective

Two main genus types: (1) TOPIC -- A Topic to be learned or a concept to be
mastered typically expressed as a NOUN (2) OUTCOME -- A expression of a
specific objective or outcome to be mastered typically expressed starting
with a VERB Can often organized on a scale such as Bloom's Taxonomy *

Objectives are often organized into hierarchies of topics and sub-topics
which end in specific OUTCOME's tied to the leaf topics.

TODO: Task #61 Investigate TLL SUTD data which has broad OUTCOMES at the top as
opposed to being specific ones at the bottom of a TOPIC tree!

OSID reference: Objective

Structure Definition

ShortName Name Type Description Required? Read only? Implementation Notes
id Id String Unique identifier for the object within the service.

You DO NOT HAVE TO SET THE ID -- the service constructs it for you when you create an object.

However... You MAY set it to an "alias" by which you which to later access this object. The alias id MUST be unique across
all aliases for that kind of object.

The alias id is composed of 3 parts... namespace : identifier @ authority.

If a namespace is supplied it must match the namespace of the type of object being created, if not supplied the namespace
defaults to the namespace of the type of the object being created.

If the authority is supplied it must be the "USER-ALIAS" if not supplied then this authority will be used as the default.


Even if you do supply an alias Id when creating the object then the service still constructs and assigns an new unique
internal id for the object BUT it also adds the ID you supplied as an aliasId.

Note: if you do not assign an alias when you create the object you can assign one using the id service, addAliasId method.



The id is expected to be unique and should be treated as if the id is opaque. Opaque means that no consumer should
interrogate the structure of the string but should just manipulate it as a whole.

Having said that, there two things you should know about ids: (1) They should follow this structure:
namespace:identifier@authority . (2) All ids passed through the RESTful interface have been encoded so they do not mess up
URLS when fetched when used as parameters to fetch a particular object. They are decoded back when passed back in. This is
applied not just to this ID field but ALL ids passed in as parameters and fetched back as fields on beans.

These two issues should NOT make a difference to any processing, it just explains the structure you would find if you
examined the contents of an id.

OSID reference: Id *
Required Read only on updates  
genusTypeId Genus Type Id String The genus type of the object.

This is a code that indicates the detailed type of an object, it represents a further breakdown of the object into
sub-categories.

For example in MC3 Learning Objectives have two main types: (1) TOPIC (2) OUTCOME

The name and description of the type can be found by calling the type service.

OSID reference: OsidObject
Required    
displayName Display Name DisplayTextBean Get the name of the object to be displayed on the screen to a user.

All objects MUST HAVE A DISPLAY NAME.

OSID reference: OsidObject
Required    
description Description DisplayTextBean The description of the object

The consumer might have to interrogate the format type to properly display the the description on the screen.

In particular some of the objectives have LATEX markup in them that needs to be translated to display appropriately.

OSID reference: OsidObject
     
objectiveBankId Objective Bank Id String The id of an objective bank through which this objective may be managed.

It is technically possible for an objective to belong to more than one
bank but it can only be updated or managed via a bank so this is supplied
to support that process.

This is a readonly field an cannot be updated via calls to update the
objective in the database.

Any changes to this field will be ignored during those calls.

OSID reference: ObjectiveAdminSession
     
assessmentId Assessment Id String The id of an assessment that may be used to measure a student's
proficiency in this objective.

Right now this field is not implemented.

OSID reference: Objective
    not implemented
knowledgeCategoryId Knowledge Category Id String This is the id of a grade object that places this objective on a scale of
knowledge.

Details on the id returned may be looked up via the method
getGrade

To get a list of legal values for this field, please see
getKnowledgeCategoryGradeSystemForBank

See:
IOWA State's RevisedBloomsHandout.pdf
South Africa School Appendix_B.pdf
CMU Knowlege-CogProcDimension.pdf

OSID reference: Objective
     
cognitiveProcessId Cognitive Process Id String This is the id of a grade object that places this objective on a scale of
cognitive processes.

Details on the id returned may be looked up via the method
getGrade

To get a list of legal values for this field, please see
getCognitiveProcessGradeSystemForBank

One such scale is Bloom's taxonomy of Learning Objectives
Wikipedia Bloom's Taxonomy

OSID reference: Objective
     
current Current boolean Indicates if the object might be stale or if it was freshly pulled from the underlying data store.

If the object was fetched from a cache then this value should be false.

OSID reference: Identifiable
Required Read only  
sortKey Sort Key String Sort key that can be used to sort this object when in a list.

This value is NOT persisted but is calculated based on the query that was used to fetch the objects.

For example the larger the value the more relevant the keyword search applies to this object.
     
extensionRecord Extension Record ExtensionRecordBean Extension Record for this object if the method requested that the extension record be
included.
     
auditTrail Audit Trail AuditTrailBean Audit trail information about when this object was created/updated      

JSON Structure

{
     "type" : "Objective",
     "id" : "id",
     "genusTypeId" : "id",
     "displayName" :  {
          "languageTypeId" : "id",
          "scriptTypeId" : "id",
          "formatTypeId" : "id",
          "text" : "XXXX"
          },
     "description" :  {
          "languageTypeId" : "id",
          "scriptTypeId" : "id",
          "formatTypeId" : "id",
          "text" : "XXXX"
          },
     "objectiveBankId" : "id",
     "assessmentId" : "id",
     "knowledgeCategoryId" : "id",
     "cognitiveProcessId" : "id",
     "current" : true,
     "sortKey" : "XXXX",
     "extensionRecord" :  {
          "recordTypeIds" : ["id", ...],
          "recordProperties" : [ {
               "displayName" :  {
                    "languageTypeId" : "id",
                    "scriptTypeId" : "id",
                    "formatTypeId" : "id",
                    "text" : "XXXX"
                    },
               "description" :  {
                    "languageTypeId" : "id",
                    "scriptTypeId" : "id",
                    "formatTypeId" : "id",
                    "text" : "XXXX"
                    },
               "recordTypeId" : "id",
               "value" : "XXXX",
               "displayLabel" :  {
                    "languageTypeId" : "id",
                    "scriptTypeId" : "id",
                    "formatTypeId" : "id",
                    "text" : "XXXX"
                    },
               "associatedId" : "id"
               },
               ...],
          "associatedId" : "id"
          },
     "auditTrail" :  {
          "addedBy" : "XXXX",
          "addedOn" : "YYYY-MM-DDThh:mm:ss",
          "updatedBy" : "XXXX",
          "updatedOn" : "YYYY-MM-DDThh:mm:ss",
          "comment" : "XXXX"
          }
}