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

Create AlignmentMap class and related properties (3rd party Maps) #498

Closed
stuartasutton opened this Issue Dec 3, 2017 · 4 comments

Comments

Projects
None yet
3 participants
@stuartasutton
Contributor

stuartasutton commented Dec 3, 2017

This issue is solely related to mappings (connections) between entities as asserted by 3rd parties and explicitly does not include mappings of entities by parties privy to the the creation and canonical definition of those entities. The proposal here is for one new class and three accompanying properties. An example of what's meant here is the Indiana Military Bridge Program Roadmap:

indiana-military_mapping

The issue is a more focused proposal initially framed in issue #413 .

The basic metadata infrastructure proposed here is not new--it is embodied in tools created by both ASN and CASS and bears a passing relationship to the CASE AssociationObject. Those relationships can be demonstrated by looking at such mappings created by ASN (mapping a set of Michigan K-12 standards to CCSS):

michigan-ccss_mapping

... and in the CASS mapping functionality for aligning learning resources to competencies:

screen shot 2017-12-03 at 8 49 17 am

While the CASS mapping appears to be one off--i.e., creating on single mapping, the ASN solution, using RDF and the rdf:Statement class, aggregates a logical related set of entity-to-entity mappings into a sort of container entity -- referred to in this proposal as AlignmentMap. In essence, this looks like the following:

2017-08-14

rdf:Statement class

At the core of the functionality is the rdf:Statement class that has three baked-in properties: rdf:subject, rdf:predicate, and rdf:object. Any RDF parser or application will immediately recognize an instance of rdf:Statement as a triple. The rdf:subject and rdf:object are the URIs of the two entities being mapped (connected), and the rdf:predicate is the property URI that provides the mapping verb (e.g., teaches, assesses, requires, advancedStandingFor etc.). In essence, the rdf:Statement replicates the core functionality of the CASE association object but is baked into RDF and not something tacked on and foreign to downstream Linked Data systems.

In the specification suggested here, nothing beyond the rdf:subject, rdf:predicate, and rdf:object are required; however, it is assumed that instances of rdf:Statement in various contexts will be extended (profiled) to include other relevant properties (e.g., assertedBy, weight etc.). I assume that when we look at instances of AlignmentMap in the Registry, that there will be a defined set of extension properties supported.

Domain and Range

The rdfs:domain of the rdf:subject, rdf:predicate, and rdf:object is rdf:Statement. However, no rdfs:range is declared for any of them. As a result, mappings (connections) can be declared between RDF instances of any two RDF classes as illustrated in the two figures below:

  1. in the first, a mapping of two ctdl:Credential entities with an advancedStandingFor predicate; and

  2. in the second, a mapping of a ctdl:Competency entity to an onet:Occupation entity with the ctdl:occupationType property.

2017-12-03-maptype-2b

2017-12-03-maptype-2c

AlignmentMap class

The AlignmentMap "container" class has only one required property--hasStatement--that can be repeated as many times as necessary to express all of its associated mapping triples. It is assumed, however, that profiles will have sufficient properties with an rdfs:domain of AlignmentMap to identify the map and its provenance to machines and people.

Draft definition:

An entity that aggregates a set of logically related statements defining relationships (connections) between arbitrary entities and the nature of those relationship.

Map properties

  1. hasAlignmentMap:

Draft definition: "Alignment map belonging to the organization or person."

  1. hasStatement:

Draft definition: "Alignment mapping statement belonging to the alignment map."

  1. inAlignmentMap

Draft definition: "Alignment map to which the alignment mapping statement belongs."

Example:

JSON-LD (Using Vincennes example above)

{
  "@context": {
    "ceterms": "http://purl.org/ctdl/terms/",
    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
    "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
    "xsd": "http://www.w3.org/2001/XMLSchema#"
  },
  "@graph": [
    {
      "@id": "http://credentialengine.org/resources/14289552-7528-11e7-b5a5-be2e44b06b34",
      "@type": "ceterms:CredentialOrganization",
      "ceterms:hasAlignmentMap": {
        "@id": "http://credentialengine.org/maps/14287f9a-7528-11e7-b5a5-be2e44b06b34"
      },
      "ceterms:name": {
        "@language": "en-US",
        "@value": "Indiana Commission for Higher Education"
      }
    },  
    {
      "@id": "http://credentialengine.org/maps/14287f9a-7528-11e7-b5a5-be2e44b06b34",
      "@type": "ceterms:AlignmentMap",
      "ceterms:description": {
        "@language": "en-US",
        "@value": "Roadmap of MOS/Rating: 68Q Pharmacy Specialist mapping to Vincennes University A.S. Career: Tech Degree in Pharmacy Technician"
      },
      "ceterms:hasStatement": {
        "@id": "http://credentialengine.org/mapstatement/1428830a-7528-11e7-b5a5-be2e44b06b34"
      },
      "ceterms:name": {
        "@language": "en-US",
        "@value": "US Army Military Bridge Program Roadmap-68Q Pharmacy Specialist"
      },
      "ceterms:ownedBy": {
        "@id": "http://credentialengine.org/resources/14289552-7528-11e7-b5a5-be2e44b06b34"
      }
    },
    {
      "@id": "http://credentialengine.org/mapstatement/1428830a-7528-11e7-b5a5-be2e44b06b34",
      "@type": "rdf:Statement",
      "ceterms:assertedBy": {
        "@id": "http://credentialengine.org/resources/14289552-7528-11e7-b5a5-be2e44b06b34"
      },
      "ceterms:creditHourValue": 3,
      "ceterms:inAlignmentMap": {
        "@id": "http://credentialengine.org/maps/14287f9a-7528-11e7-b5a5-be2e44b06b34"
      },
      "rdf:object": {
        "@id": "http://catalog.vinu.edu/catalog/COMM148"
      },
      "rdf:predicate": {
        "@id": "ceterms:advancedStandingFor"
      },
      "rdf:subject": {
        "@id": "http://www.goarmy.com/careers/68Q-E5"
      }
    }
  ]
}

RDF Turtle

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ceterms: <http://purl.org/ctdl/terms/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://credentialengine.org/maps/14287f9a-7528-11e7-b5a5-be2e44b06b34> a ceterms:AlignmentMap ;
    ceterms:name "US Army Military Bridge Program Roadmap-68Q Pharmacy Specialist"@en-US ;
    ceterms:description "Roadmap of MOS/Rating: 68Q Pharmacy Specialist mapping to Vincennes University A.S. Career: Tech Degree in Pharmacy Technician"@en-US ;
    ceterms:hasStatement <http://credentialengine.org/mapstatement/1428830a-7528-11e7-b5a5-be2e44b06b34> ;
    ceterms:ownedBy <http://credentialengine.org/resources/14289552-7528-11e7-b5a5-be2e44b06b34>. 
    
<http://credentialengine.org/mapstatement/1428830a-7528-11e7-b5a5-be2e44b06b34> a rdf:Statement ;
    rdf:subject <http://www.goarmy.com/careers/68Q-E5> ;
    rdf:predicate ceterms:advancedStandingFor ;
    rdf:object <http://catalog.vinu.edu/catalog/COMM148> ;
    ceterms:creditHourValue "3"^^xsd:integer ;
    ceterms:inAlignmentMap <http://credentialengine.org/maps/14287f9a-7528-11e7-b5a5-be2e44b06b34> ;
    ceterms:assertedBy <http://credentialengine.org/resources/14289552-7528-11e7-b5a5-be2e44b06b34> .
    
<http://credentialengine.org/resources/14289552-7528-11e7-b5a5-be2e44b06b34> a ceterms:CredentialOrganization ;
    ceterms:name "Indiana Commission for Higher Education"@en-US ;
    ceterms:hasAlignmentMap <http://credentialengine.org/maps/14287f9a-7528-11e7-b5a5-be2e44b06b34> .
@stuartasutton

This comment has been minimized.

Contributor

stuartasutton commented Dec 4, 2017

In my sentence "In essence, the rdf:Statement replicates the core functionality of the CASE association object but is baked into RDF and not something tacked on and foreign to downstream Linked Data systems", I did not intend to demean CASE but rather to note that in RDF, relationships exist as first order citizens of the data model meaning that direct, meaningful links can be established between nodes that support queries in graph stores to efficiently navigate those relationship. Replication of this behavior in convention datastore models is less efficient requiring complex, multiple tables with multiple foreign keys and requiring nested SQL queries and complex joins resulting in a denigration of performance as data size grows.

@stuartasutton

This comment has been minimized.

Contributor

stuartasutton commented Feb 18, 2018

Proposal for new properties and classes enabling basic Alignment Maps.

NOTE: Observe the intentional mixing of schema:domainIncludes / rdfs:domain & schema:rangeIncludes & rdfs:range

SEE ALSO: CTDL Handbook: Alignment Maps

ADD

Shorthand URI: ceterms:AlignmentMap
Type of Term: rdfs:Class
Label: Alignment Map
Definition: An entity comprised of a set of alignment or mapping assertions between two existing entities such as mapping a certificate providing advanced standing to a degree.
Comment: Alignment maps provide the means for parties to assert sets of alignments between already existing entities created by themselves or other parties--e.g., a 3rd party mapping of a learning resource owned by one party to a credential owned by another; or, mapping a military occupational experience or Military Occupational Specialty (MOS code) as advanced standing to a course or credential.

ADD

Shorthand URI: ceterms:hasAlignmentMap
Type of Term: rdf:Property
Label: Has Alignment Map
Definition: Alignment map owed by the agent.
Domain Includes: ceterms:Agent
Range: ceterms:AlignmentMap

ADD

Shorthand URI: ceterms:hasStatement
Type of Term: rdf:Property
Label: Has Statement
Definition: Alignment assertion belonging to the alignment map.
Domain: ceterms:AlignmentMap
Range: rdf:Statement

ADD

Shorthand URI: ceterms:inAlignmentMap
Type of Term: rdf:Property
Label: In Alignment Map
Definition: Alignment map to which the statement belongs.
Domain : rdf:Statement
Range: ceterms:AlignmentMap

NOTE 1:

The class and properties defined here provide a basic architecture for making mapping assertions. As rdf:Statement, these assertions take the form of reified RDF triples. Those triples can be enhanced through the addition of refining properties as required by the context. The range of those refining properties is potentially very large. Any appropriate RDF property can be used. The base architecture defined here does not attempt to fill in this space of refining properties.

NOTE 2:

The rdf:subject and rdf:object of the rdf:Statement defining the mapping assertion are deliberately not defined making it possible to relate (map) any two entities regardless of their class.

@siuc-nate

This comment has been minimized.

siuc-nate commented Apr 11, 2018

These changes have been made in pending CTDL and noted in the history tracking.

@stuartasutton

This comment has been minimized.

Contributor

stuartasutton commented Jul 11, 2018

Course articulation agreements are a form of such mappings (see https://www.elon.edu/transferarticulation/ and issue #538).

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