...
There was little sense in comparing KS to the complete suite of OSIDs because OSIDs include much more than what is relevant to a conventional student system. However, within those services which were applicable to KS, the complete OSID feature set was included although it may not be seen as a priority for KS.
...
OSIDs: definitions based in OSID 3.0.0rc6
Out-of-band mechanisms include anything requiring knowledge of an identifier (key) that assumes the existence of information not specified by core contract. Typically, it's anywhere where a Type is used. OBAs also include the knowledge that additional services need to be utilized in order to accomplish the feature (services also have identifiers so the knowledge of their existence is an agreement).
Extra data may accompany the Type. (Although KS is very loose about this) the KS entity Type is a specification of the set of extra attributes that accompany the entity. In OSIDs, a similar thing is accomplished using OsidRecord Types. While each mechanism has its pros and cons, this analysis is just concerned about the ability to map features across the two frameworks.
Requiring an OBA is not necessarily a deficiency, though it can be a candidate for future work. KS has been focused on the business of student systems and is more likely to include more specific administrative detail within that domain. OSIDs are primarily concerned with interoperability across domains and is more likely to brush off behind-the-scenes detail, require more service orchestration, and include some things not of interest to student systems.
Model | Feature | KS | OSID | Comments |
---|---|---|---|---|
canonical courses | CourseService.Course | osid.course.Course | ||
campus | CourseService.Course.CampusLocations | osid.course.Course.CourseCampusRecord | ||
code | CourseService.Course.Code | osid.course.Course.Number | ||
code management | CourseService.Course.suffix CourseService.Course.level CourseService.Course.SubjectArea | osid.course.Course.CourseCodeRecord | OSIDs can assign more than one "level" to a Course as defined by its GradeSystem. | |
cross listed courses | CourseService.Course.CrossListings | osid.course.Course.CourseCrossListingRecord | ||
effective dating | CourseService.Course.EffectiveDate CourseService.Course.ExpirationDate CourseService.Course.StartTerm CourseService.Course.EndTerm | osid.course.Course.IsActive osid.course.rules.CourseEnabler | This data in KS informs the offerability is the course but may not be enforced. | |
fees | CourseService.Course.Fees CourseService.Course.Revenue CourseService.Course.Expenditure | osid.course.Course.CourseFeeRecord | KS has not been redesigned with respect to KSA. | |
instructors | CourseService.Course.PrimaryInstructor CourseService.Course.Instructors | osid.acknowledgement.Credit osid.contact.Contact | In KS, the canonical instructors are not necessarily the ones who are teaching in a particular term, but instructors who are associated with the course. | |
joint courses | CourseService.Course.Joints | osid.relationship.Relationship | ||
learning objectives | CourseService.Course.CourseSpecificLos | osid.Course.LearningObjectives | ||
names | CourseService.Course.CourseTitle CourseService.Course.TranscriptTitle | osid.course.Course.DisplayName osid.course.Course.Title | OSID display names are brought into "context" (e.g. a transcript application gets the transcript title through the display name while the LMS may see the course code through the display name). Management of these different names can be done via OsidRecord. | |
options | CourseService.Course.CreditOptions CourseService.Course.GradingOptions | osid.course.Course.CreditAmounts osid.course.Course.GradingOptions | ||
organizations | CourseService.Course.UnitsDeployment CourseService.Course.UnitsContentOwner | osid.course.Course.Sponsors osid.course.rules.CourseProcessorEnabler | Content owner is a better name than sponsors. Deployment smells like an authorization rule. | |
pilot courses | CourseService.Course.isPilotCourse | osid.course.Course.PilotCourseRecord | ||
prerequisites | rules | osid.course.Course.Prerequisites | OSIDs should rename these rules to requisites. | |
special topics | CourseService.Course.IsSpecialTopicsCourse | osid.course.Course.SpecialTopicsCourseRecord | ||
subject areas | CourseService.Course.SubjectArea | osid.ontology.Subject | OSID subject tagging not used as an identifier. | |
terms offered | CourseService.Course.TermsOffered | osid.course.Course.TermsOfferedCourseRecord | Muddled feature. | |
time | CourseService.Course.Duration CourseService.Course.OutOfClassHours | OSIDs manage at the activity level but doesn't roll up to the course level. | ||
versioning | CourseService.Course.Version | osid.journaling.JournalEntry | ||
canonical formats | CourseService.Format | KS uses Formats to vary the Activities. OSIDs can surface these as different Courses. | ||
canonical activities | CourseService.Activity | osid.course.ActivityUnit | ||
content owner | CourseService.Activity.UnitsContentOwner | osid.course.Activity.ContentActivityRecord | ||
estimated enrollment | CourseService.Activity.DefaultEnrollmentEstimate | osid.course.Activity.EnrollmentActivityRecord | ||
learning objectives | CourseService.Activity.Attributes | osid.course.ActivityUnit.LearningObjectives | ||
time estimates | CourseService.Activity.ContactHours CourseService.Activity.Attributes | osid.course.ActivityUnit.TotalTargetContactTime osid.course.ActivityUnit.TotalTargetIndividualEffort osid.course.ActivityUnit.WeeklyContactTime osid.course.ActivityUnit.WeeklyIndividualEffort | KS adds more detail at offering. | |
canonical program | ProgramService.XYZProgram | osid.course.program.Program | ||
accrediting agencies | ProgramService.MajorDiscipline.AccreditingAgencies | osid.course.program.Program.AccreditationProgramRecord | ||
classification | ProgramService.XProgram.UniversityClassification | osid.ontology.Subject | ||
code | ProgramService.XProgram.Code | osid.course.program.Program.Number | ||
codes (other) | ProgramService.XProgram.Cip2000Code ProgramService.XProgram.Cip2010Code ProgramService.XProgram.HegisCode | osid.ontology.Subject | ||
core program | ProgramService.CoreProgram | osid.relationship.Relationship | program hierarchy | |
credentials | ProgramService.CredentialProgram.ResultOptions | osid.course.program.Program.Credentials | ||
effective dating | ProgramService.XProgram.EffectiveDate ProgramService.XProgram.StartTerm ProgramService.XProgram.EndTerm ProgramService.XProgram.EndProgramEntryTerm | osid.course.program.rules.ProgramEnabler | ||
honors | ProgramService.HonorsProgram | osid.relationship.Relationship | program hierarchy | |
intensity | ProgramService.XProgram.Intensity | osid.ontology.Subject | ||
instructors | ProgramService.MajorDiscipline.PublishedInstructors | osid.acknowledgement.Credit | ||
learning objectives | ProgramService.XProgram.LearningObjectives | osid.course.program.Program.LearningObjectives | ||
level | ProgramService.CredentialProgram.Level | osid.course.Program.LevelProgramRecord | ||
location | ProgramService.XProgram.CampusLocations | osid.course.program.Program.CampusProgramRecord | ||
majors | ProgramService.MajorDiscipline | osid.relationship.Relationship | program hierarchy | |
minors | ProgramService.MinorDiscipline | osid.relationship.Relationship | program hierarchy | |
orgs | ProgramService.XProgram.DivisionsContentOwner ProgramService.XProgram.DivisionsStudentOversight ProgramService.XProgram.DivisionsDeployment ProgramService.XProgram.DivisionsFinancialControl ProgramService.XProgram.UnitsContentOwner ProgramService.XProgram.UnitsFinancialResources ProgramService.XProgram.UnitsFinancialControl ProgramService.XProgram.UnitsDeployment ProgramService.XProgram.UnitsStudentOversight ProgramService.CredentialProgram.Institution | osid.course.program.Program.Sponsors osid.course.program.Program.XYZOrgProgramRecord osid.authorization
| these are overkill in KS | |
publication targets | ProgramService.CProgram.CatalogPublicationTargets | osid.course.program.Program.PublicationProgramRecord | ||
requirements | ProgramService.XProgram.ProgramRequirements | osid.course.program.Program.CompletionRequirements | ||
review period | ProgramService.MinorDiscipline.NextReviewPeriod | osid.course.program.Program.ReviewProgramRecord | Reviews should be properly modeled. | |
titles | ProgramService.XProgram.ShortTitle ProgramService.XProgram.LongTitle ProgramService.XProgram.TranscriptTitle ProgramService.CProgram.DiplomaTitle | osid.course.program.Program.DisplayName osid.course.program.Program.Ttitle osid.course.program.Program.TranscriptProgramRecord | OSID display names are brought into "context" (e.g. a transcript application gets the transcript title through the display name while the LMS may see the course code through the display name). Management of these different names can be done via OsidRecord. | |
url | ProgramService.CProgram.Url | osid.course.program.Program.URLProgramRecord | ||
variations | ProgramService.ProgramVariation | osid.relationship.Relationship | program hierarchy | |
versioning | ProgramService.XProgram.Version | osid.journaling.JournalEntry | ||
syllabus | osid.course.syllabus.Syllabus | |||
content | osid.course.syllabus.Docet.Assessements osid.course.syllabus.Docet.Assets | |||
learning objectives | osid.course.syllabus.Docet.LearningObjectives | |||
modules | osid.course.syllabus.Module | |||
time management | osid.course.syllabus.Docet.Duration |
...