Skip to content
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

Add ceterms:affiliation to Condition Profile #944

Open
siuc-nate opened this issue Aug 5, 2024 · 1 comment
Open

Add ceterms:affiliation to Condition Profile #944

siuc-nate opened this issue Aug 5, 2024 · 1 comment

Comments

@siuc-nate
Copy link
Contributor

We have a use case where a partner has a series of career centers which offer pathways, but each career center only offers those pathways to students from a given set of high schools (a different set for each career center).

We don't have a great way to communicate this kind of requirement in CTDL. The closest we have right now would be something like:
Credential -[requires]-> Condition Profile -[audience]-> audience:Member (and/or audience:CurrentStudent)
But there's no way to indicate what the seeker must be a member/student of.

The same notion would apply to entry condition, recommends, advancedStandingFrom, etc. (especially when alternative conditions are considered), so I think it makes sense as a property (or two) of Condition Profile.

We have affiliation as a property of ceterms:CredentialPerson already. Since all of the properties of Condition Profile inherently apply (in the "requires/advanced standing/etc." context) to the person seeking the credential, I think we could extend the domain of the affiliation property to include Condition Profile, then add use the existing audienceType property to reference things like "CurrentStudent", "FullTime", etc.

As an example:

{
  "@type": "ceterms:Certificate",
  "ceterms:offeredBy": [ "uri-for-career-center" ],
  "ceterms:ownedBy": [ "uri-for-state-agency" ],
  "ceterms:requires": [
    {
      "@type": "ceterms:ConditionProfile",
      "ceterms:description": { "en": "Available to current full-time in-state students attending one of the following high schools: [list of high schools]" },
      "ceterms:audienceType": [
        "audience:CurrentStudent"
        "audience:FullTime"
      ],
      "ceterms:residencyType": [
        "residency:InState"
      ],
      "ceterms:affiliation": [
        "uri-for-high-school-1",
        "uri-for-high-school-2",
        "uri-for-high-school-3"
      ]
    }
  ]
}

More granularity could be expressed with the existing alternativeCondition structure:

{
  "@type": "ceterms:Certificate",
  "ceterms:offeredBy": [ "uri-for-career-center" ],
  "ceterms:ownedBy": [ "uri-for-state-agency" ],
  "ceterms:requires": [
    {
      "@type": "ceterms:ConditionProfile",
      "ceterms:description": { "en": "Available to current in-state students attending [list of high schools]" },
      "ceterms:audienceType": [
        "audience:CurrentStudent"
      ],
      "ceterms:residencyType": [
        "residency:InState"
      ],
      "ceterms:alternativeCondition": [
        {
          "@type": "ceterms:ConditionProfile",
          "ceterms:description": { "en": "Available to full-time students of [high school 1] with a fee." },
          "ceterms:affiliation": [
            "uri-for-high-school-1"
          ],
          "ceterms:audienceType": [
            "audience:FullTime"
          ],
          "ceterms:estimatedCost": [
            "(Cost profile(s) for this option)"
          ]
        },
        {
          "@type": "ceterms:ConditionProfile",
          "ceterms:description": { "en": "Available to part time students of [high school 2] who are 21 or older." },
          "ceterms:affiliation": [
            "uri-for-high-school-2"
          ],
          "ceterms:audienceType": [
            "audience:PartTime"
          ],
          "ceterms:minimumAge": 21,
        },
        {
          "@type": "ceterms:ConditionProfile",
          "ceterms:description": { "en": "Available to full- or part-time students of [high school 3] who live in [cities]" },
          "ceterms:affiliation": [
            "uri-for-high-school-3"
          ],
          "ceterms:audienceType": [
            "audience:FullTime",
            "audience:PartTime"
          ],
          "ceterms:residentOf": [
            "(Jurisdiction Profile for a given set of cities)"
          ]
        }
      ]
    }
  ]
}

Other usages would apply in different contexts, like Collection's membershipCondition property - one of the conditions might be that the course/credential/program/etc. in question has an affiliation with some particular organization (though that might call for a loosening of the definition).

For now though:
Proposal:

URI: ceterms:affiliation
Add Domain: ceterms:ConditionProfile

@siuc-nate siuc-nate changed the title Determine a way to indicate that something is only available to members of a particular group/organization/audience Add ceterms:affiliation to Condition Profile Aug 5, 2024
@philbarker
Copy link
Collaborator

philbarker commented Aug 6, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants