Skip to content

Add ceterms:LearningProgram to the domain of ceterms:aggregateData? #1080

Description

@ChelseaKR

While mapping California ETPL training program data to CTDL, I found that ceterms:aggregateData cannot attach to a ceterms:LearningProgram under the explicit domain declarations, though it can attach to the parent class.

ceterms:LearningOpportunityProfile's property list carries 104 properties and ceterms:LearningProgram's carries 103. The one property present on the parent and absent from the subclass is aggregateData. Sampling the shared properties (estimatedDuration, deliveryType, targetLearningResource) shows the convention is explicit enumeration, with each naming both classes, so aggregateData appears to be the single property where LearningProgram was not enumerated.

Observed in the term JSON at https://credreg.net/ctdl/terms/aggregateData/json and https://credreg.net/ctdl/terms/LearningProgram/json, retrieved 2026-08-06.

The practical stake: AggregateDataProfile is where earnings and completion counts live, and state ETPL-derived data is outcome-bearing learning programs. A validator or publisher coding against the per-class list will reject outcome data on a LearningProgram that the parent class permits.

Should LearningProgram (and possibly Course) be added to aggregateData's domainIncludes, as #850 did for degreeConcentrations? If the intended pattern for program outcomes is instead qdata:DataSetProfile referencing the program, a note in the aggregateData usage guidance would save implementers the wrong turn.

Happy to open a PR against the schema files if that is welcome! Thanks y'all.

Metadata

Metadata

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions