CredentialEngine / Schema-Development

Development of the vocabularies for the CTI models
14 stars 8 forks source link

Prerequisites often have an "OR" and/or "AND". Need to addreess course prerequisite use cases that include an "OR" and/or "AND" #938

Open jeannekitchens opened 6 months ago

jeannekitchens commented 6 months ago

See the Ivy Tech Community College Course Catalog. There are numerous examples of prerequisites with "ORs" and/or "ANDS" https://catalog.ivytech.edu/content.php?catoid=7&navoid=771,

ACCT 101 - Financial Accounting PREREQUISITES: Demonstrated competency through appropriate assessment or earning a grade of “C” or better in ENGL 093 - Introduction to College Writing and ENGL 083 - Reading Strategies for College, or ENGL 095 - Integrated Reading and Writing, or ENGL 075 - Co-Requisite Integrated Readin, and MATH 023 - Essentials of Algebra or MATH 080 - Mathematical Principles. PROGRAM: Accounting CREDIT HOURS MIN: 3 LECTURE HOURS MIN: 3 DATE OF LAST REVISION: Summer, 2020

philbarker commented 6 months ago

ceterms:requires and a ConditionProfile or two might be the answer. This isn't a simple relationship between two courses, which is what we are currently reserving ceterms:prerequisite for.

PS: I could be persuaded to use ceterms:prerequisite for complex course-to-course relationships, but the mentions of competency and assessment and grade suggest there is more going on here.

(Ideally I would like us to clean up the whole requirements area, but that would involve breaking changes.)

siuc-nate commented 6 months ago

This seems like the kind of thing we built pathways for, particularly with regard to constraints akin to "earning a grade of C or better". It could be done with a set of Condition Profiles and the ceterms:alternativeCondition property, but a Pathway would probably be cleaner in the end.

philbarker commented 6 months ago

This seems like the kind of thing we built pathways for,...

Yep, I thought that too, but there isn't really a pathway here. And it's part of what would be nice to clean up about requirements: the conditions in pathways can just be plain requirements too.

siuc-nate commented 6 months ago

I'm having some difficulty parsing the grammar of the ands/ors in the paragraph. Does this seem right?:

(
    (
        ENGL 093 - Introduction to College Writing 
        AND 
        ENGL 083 - Reading Strategies for College
    )
    OR
    (ENGL 095 - Integrated Reading and Writing)
    OR
    (ENGL 075 - Co-Requisite Integrated Readin)
)
AND
(
    MATH 023 - Essentials of Algebra 
    OR 
    MATH 080 - Mathematical Principles
)

In other words, you:

siuc-nate commented 6 months ago

It's unclear as to whether the credit/lecture hours are part of the prerequisites (and whether or not they'd still be required if a person "demonstrated competency through appropriate assessment"), but the data would look something like this (pretend there are bnodes/published data for each of the concepts and courses):

{
  "@type": "ceterms:Course",
  "ceterms:prerequisite": [
    {
      "@type": "ceterms:ConditionProfile",
      "ceterms:creditValue": [
        {
          "@type": "ceterms:ValueProfile",
          "schema:minValue": 3,
          "ceterms:creditUnitType": [
            "_:CreditHour"
          ]
        },
        {
          "@type": "ceterms:ValueProfile",
          "schema:minValue": 3,
          "ceterms:creditUnitType": [
            "_:LectureHour"
          ]
        }
      ]
    },
    {
      "@type": "ceterms:ConditionProfile",
      "ceterms:alternativeCondition": [
        {
          "@type": "ceterms:ConditionProfile",
          "ceterms:alternativeCondition": [
            {
              "@type": "ceterms:ConditionProfile",
              "ceterms:description": { "en": "Demonstrated competency through appropriate assessment" }
            },
            {
              "@type": "ceterms:ConditionProfile",
              "ceterms:description": { "en": "Earned a grade of C or better in the Course." },
              "ceterms:targetLearningOpportunity": [ "_:MATH023" ]
            },
            {
              "@type": "ceterms:ConditionProfile",
              "ceterms:description": { "en": "Earned a grade of C or better in the Course." },
              "ceterms:targetLearningOpportunity": [ "_:MATH080" ]
            }
          ]
        }
      ]
    },
    {
      "@type": "ceterms:ConditionProfile",
      "ceterms:alternativeCondition": [
        {
          "@type": "ceterms:ConditionProfile",
          "ceterms:alternativeCondition": [
            {
              "@type": "ceterms:ConditionProfile",
              "ceterms:description": { "en": "Demonstrated competency through appropriate assessment" }
            },
            {
              "@type": "ceterms:ConditionProfile",
              "ceterms:description": { "en": "Earned a grade of C or better in the Course." },
              "ceterms:targetLearningOpportunity": [ "_:ENGL095" ]
            },
            {
              "@type": "ceterms:ConditionProfile",
              "ceterms:description": { "en": "Earned a grade of C or better in the Course." },
              "ceterms:targetLearningOpportunity": [ "_:ENGL075" ]
            },
            {
              "@type": "ceterms:ConditionProfile",
              "ceterms:description": { "en": "Earned a grade of C or better in the Courses." },
              "ceterms:targetLearningOpportunity": [ "_:ENGL093", "_:ENGL083" ]
            }
          ]
        }
      ]
    }
  ]
}
siuc-nate commented 1 month ago

See #848 and #947