Files
CommonCoreOntologies/.github/deployment/sparql/missing_definition_source.sparql
SHANMUKH SAI d5bee8d7a3 Feature/sparql qc queries (#789)
* feat: add SPARQL QC queries for CCO release pipeline (Tasks 1-9)

- Fix CCO_classes_have_BFO_superclass.sparql namespace (v1 -> v2)
- Add validate-profile DL targets to Makefile (Step 6b)
- Add build/artifacts/ and build/lib/ to .gitignore
- New: no_cco_elucidation.sparql (Step 6j)
- New: missing_definition_source.sparql (Step 6h)
- New: exactly_1_label.sparql (Step 6c)
- New: exactly_1_curated_in.sparql (Step 6c)
- New: annotation_language_tag.sparql (Step 6i)
- New: iri_format_check.sparql (Step 6e)
- New: curated_in_matches_ontology.sparql (Step 6f)
- New: no_duplicate_declarations.sparql (Step 6d)

All queries tested against CommonCoreOntologiesMerged.ttl and
verified with synthetic TTL files to confirm non-silent failure.
Pre-release gaps surfaced: 815 missing definition sources,
1 missing curated-in (ont00001660), 9 missing @en language tags.

* feat: add duplicate_iri_number.sparql QC query

* fix: remove validate-profile-individual from all target

* feat: add automated release notes generation

- Add .github/release.yml to categorize PRs by label in release notes
- Add 'Generate Release Notes' step to manage_release.yml that calls
  the GitHub API to auto-generate notes and injects them into the
  existing draft release via gh release edit --notes-file

* ci: trigger clean run for artifact upload
2026-03-25 09:54:12 -04:00

42 lines
1.4 KiB
SPARQL

# Title:
# Definition Source Required
# Constraint Description:
# All CCO classes and object properties that have a skos:definition should also
# have a cco:ont00001754 [definition source] annotation. Terms missing a
# definition source are flagged as warnings. Some terms may legitimately lack a
# source (e.g., primitive relations); those should be reviewed case by case.
# Severity:
# Warning
# Reference:
# CCO Release Process v2, Step 6h
# Pattern based on: min_1_eng_def.sparql
# Author:
# github.com/shanmukhkalasamudram
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX cco: <https://www.commoncoreontologies.org/>
SELECT DISTINCT ?resource ?label ?error
WHERE {
VALUES ?type { owl:Class owl:ObjectProperty }
?resource a ?type .
# Must have a definition (already caught by min_1_eng_def if missing)
?resource skos:definition ?definition .
# Scope to current CCO terms only
FILTER (regex(str(?resource), "https://www.commoncoreontologies.org/"))
FILTER (!isBlank(?resource))
# Flag those missing a definition source
OPTIONAL { ?resource cco:ont00001754 ?source }
FILTER (!bound(?source))
OPTIONAL { ?resource rdfs:label ?label }
BIND (CONCAT("WARNING: Term ", str(?resource), " has a definition but is missing cco:ont00001754 [definition source].") AS ?error)
}
ORDER BY ?resource