Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
a051575
updating version info to align with 2.1 release
johnbeve Apr 7, 2026
9a8b27c
Rebuild merged file to Develop Branch(#861) (#864)
shanmukhkalasamudram Apr 10, 2026
af9c38e
Add files via upload
johnbeve May 15, 2026
48827b4
Update README.md (#869)
johnbeve May 15, 2026
d9b266a
Cco purls (#873)
johnbeve May 19, 2026
2e06c40
added documentation about nsof brief (#877)
johnbeve Jun 2, 2026
2c80216
Added modernization nsof brief (#878)
johnbeve Jun 2, 2026
c880d93
updated readem to remove purl lang
johnbeve Jun 2, 2026
0d93da8
Regenerate CCO IRI resolution files from v2.1 (#881)
shanmukhkalasamudram Jun 15, 2026
6c21ee3
Merge to develop to clear #870 conflict (#888)
shanmukhkalasamudram Jun 21, 2026
8d6efe8
amplitude to magnitude in process profile def. (#880)
oliviahobai Jun 22, 2026
feadee0
Refactor Communication Artifact Functions (#854)
APCox Jun 24, 2026
809bc50
Refactoring 'Act of Communication by Media' and related classes (#853)
APCox Jun 24, 2026
5b8e73f
Fix #885 Government Domain Border definition (#889)
SakJaeLim Jun 24, 2026
f7e61d6
add note to international community (#894)
johnbeve Jun 25, 2026
3f67cae
adding argo to candidate extensions (#900)
johnbeve Jun 28, 2026
58fe490
subdirectories for candidates
johnbeve Jun 28, 2026
a54191c
Adding sparql qc for CCO and candidate extensions (#902)
johnbeve Jun 28, 2026
7f55ed0
Adding two properties for "process has first/last instant" (#862)
giacomodecolle Jun 28, 2026
b73ce4d
Drop Proposition Language Throughout (#903)
johnbeve Jun 28, 2026
1ada82f
Update TimeOntology.ttl
johnbeve Jun 29, 2026
922fd19
deprecating duplicate datatype properties (#905)
johnbeve Jun 29, 2026
b16b55a
Add Act of Refrain class to EventOntology (#910)
PhiBabs935 Jun 29, 2026
c8364e5
Adding Act of Censuring to Event ontology per 866 (#911)
PhiBabs935 Jun 29, 2026
321ffc3
Update bounding box def (#912)
johnbeve Jun 29, 2026
f988bef
added bfo import statement to all modules (#914)
johnbeve Jun 29, 2026
5890ac9
adjust make to clear false violations
johnbeve Jun 30, 2026
9bd691c
addressing whitespaces, language tags, etc (#916)
johnbeve Jun 30, 2026
010c998
fixing trailing whitespaces
johnbeve Jun 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
29 changes: 29 additions & 0 deletions .github/deployment/sparql/citation-required.sparql
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Title:
# Missing Bibliographic Citation
# Constraint Description:
# Every resource shall have one or more bibliographic citations.
# Severity:
# Error

PREFIX cco: <https://www.commoncoreontologies.org/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX dcterms: <http://purl.org/dc/terms/>

SELECT DISTINCT ?entity ?type WHERE {
VALUES ?type {
owl:Class
owl:ObjectProperty
owl:DatatypeProperty
owl:AnnotationProperty
owl:NamedIndividual
}

?entity a ?type .

FILTER(STRSTARTS(STR(?entity), STR(cco:)))

FILTER NOT EXISTS {
?entity dcterms:bibliographicCitation ?citation .
}
}
ORDER BY ?entity
25 changes: 25 additions & 0 deletions .github/deployment/sparql/feature-not-under-environmental.sparql
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Title:
# Feature Classes Not Under Environmental Feature
# Constraint Description:
# Finds classes whose labels indicate geospatial or environmental features but which are not subclasses of Environmental Feature.
# Severity:
# Error

PREFIX cco: <https://www.commoncoreontologies.org/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT DISTINCT ?class ?label WHERE {
?class a owl:Class ;
rdfs:label ?label .

FILTER(STRSTARTS(STR(?class), STR(cco:)))
FILTER(?class != cco:ont00000574) # Environmental Feature

FILTER(REGEX(STR(?label), "Feature$", "i"))

FILTER NOT EXISTS {
?class rdfs:subClassOf+ cco:ont00000574 .
}
}
ORDER BY ?label
37 changes: 37 additions & 0 deletions .github/deployment/sparql/is-curated-in-iri.sparql
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Title:
# is curated in ontology Cardinality or Value Problem
# Constraint Description:
# Every class, property, and individual shall have exactly one is curated in ontology statement, and its value shall be an ontology IRI.
# Severity:
# Error

PREFIX cco: <https://www.commoncoreontologies.org/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>

SELECT ?entity ?type (COUNT(?curatedIn) AS ?curatedInCount) ?problem WHERE {
VALUES ?type {
owl:Class
owl:ObjectProperty
owl:DatatypeProperty
owl:AnnotationProperty
owl:NamedIndividual
}

?entity a ?type .

FILTER(STRSTARTS(STR(?entity), STR(cco:)))

OPTIONAL {
?entity cco:ont00001760 ?curatedIn .
}

BIND(
IF(COUNT(?curatedIn) != 1,
"resource does not have exactly one is curated in ontology statement",
"ok")
AS ?problem
)
}
GROUP BY ?entity ?type
HAVING(COUNT(?curatedIn) != 1)
ORDER BY ?entity
35 changes: 35 additions & 0 deletions .github/deployment/sparql/language-tag-and-period.sparql
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Title:
# Definition Formatting Problems
# Constraint Description:
# Every definition shall have an English language tag, be set as a complete sentence, and terminate in a period. This query checks language tag and final punctuation.
# Severity:
# Warning

PREFIX cco: <https://www.commoncoreontologies.org/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

SELECT DISTINCT ?entity ?definition ?problem WHERE {
VALUES ?type {
owl:Class
owl:ObjectProperty
owl:DatatypeProperty
owl:AnnotationProperty
}

?entity a ?type ;
skos:definition ?definition .

FILTER(STRSTARTS(STR(?entity), STR(cco:)))

{
FILTER(!LANGMATCHES(LANG(?definition), "en"))
BIND("definition does not have an English language tag" AS ?problem)
}
UNION
{
FILTER(!REGEX(STR(?definition), "\\.$"))
BIND("definition does not terminate in a period" AS ?problem)
}
}
ORDER BY ?entity ?problem
25 changes: 25 additions & 0 deletions .github/deployment/sparql/media-not-under-media-content.sparql
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Title:
# Media Content Classes Not Under Media Content Entity
# Constraint Description:
# Finds classes whose labels indicate media, documents, messages, images, videos, reports, spreadsheets, or similar content but which are not subclasses of Media Content Entity.
# Severity:
# Error

PREFIX cco: <https://www.commoncoreontologies.org/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT DISTINCT ?class ?label WHERE {
?class a owl:Class ;
rdfs:label ?label .

FILTER(STRSTARTS(STR(?class), STR(cco:)))
FILTER(?class != cco:ont00002001) # Media Content Entity

FILTER(REGEX(STR(?label), "Document|Message|Image|Video|Book|Spreadsheet|Report|Transcript|Certificate|Chart|Database|List", "i"))

FILTER NOT EXISTS {
?class rdfs:subClassOf+ cco:ont00002001 .
}
}
ORDER BY ?label
17 changes: 17 additions & 0 deletions .github/deployment/sparql/missing-version-iri.sparql
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Title:
# Ontology Missing Version IRI
# Constraint Description:
# Every ontology in CCO shall have a version IRI.
# Severity:
# Error

PREFIX owl: <http://www.w3.org/2002/07/owl#>

SELECT DISTINCT ?ontology WHERE {
?ontology a owl:Ontology .

FILTER NOT EXISTS {
?ontology owl:versionIRI ?versionIRI .
}
}
ORDER BY ?ontology
43 changes: 43 additions & 0 deletions .github/deployment/sparql/no_multiple_parents.sparql
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Title:
# No multiple inheritance
# Constraint Description:
# Classes have at most one immediate asserted parent.
# Severity:
# Error

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>

SELECT ?class ?label
(COUNT(DISTINCT ?parent) AS ?parentCount)
(GROUP_CONCAT(DISTINCT STR(?parentLabel); separator=" | ") AS ?parentLabels)
?warningMessage
WHERE {
?class a owl:Class ;
rdfs:label ?label ;
rdfs:subClassOf ?parent .

FILTER (!ISBLANK(?class)) .
FILTER (!ISBLANK(?parent)) .
FILTER (?parent != owl:Thing) .
FILTER (?parent != owl:Nothing) .
FILTER (?parent != ?class) .

?parent a owl:Class .

OPTIONAL {
?parent rdfs:label ?parentLabel .
}

BIND (
CONCAT(
"Warning: Class ",
STR(?label),
" has too many direct asserted superclass parents."
)
AS ?warningMessage
)
}
GROUP BY ?class ?label ?warningMessage
HAVING (COUNT(DISTINCT ?parent) > 2)
28 changes: 28 additions & 0 deletions .github/deployment/sparql/no_parenthetical_labels.sparql
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Title:
# No Parenthetical Labels
# Constraint Description:
# No label shall include a parenthetical, such as "tank (vehicle)"
# Severity:
# Error

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>

SELECT ?class ?label ?warningMessage
WHERE {
?class a owl:Class ;
rdfs:label ?label .

FILTER (!ISBLANK(?class)) .
FILTER (REGEX(STR(?label), "\\([^\\)]*\\)")) .

BIND (
CONCAT(
"Warning: Class ",
STR(?label),
" has a parenthetical qualifier in its label."
)
AS ?warningMessage
)
}
31 changes: 31 additions & 0 deletions .github/deployment/sparql/no_reflexive_subclassOf.sparql
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Title:
# No Reflexive SubclassOf
# Constraint Description:
# No class should be asserted as a subclass of itself.
# Severity:
# Error

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>

SELECT ?class ?warningMessage
WHERE {
?class a owl:Class .

FILTER (!ISBLANK(?class)) .

?class rdfs:subClassOf ?class .

OPTIONAL {
?class rdfs:label ?label .
}

BIND(
CONCAT(
"Warning: Class ",
COALESCE(STR(?label), STR(?class)),
" is explicitly asserted as a subclass of itself"
)
AS ?warningMessage
)
}
30 changes: 30 additions & 0 deletions .github/deployment/sparql/owl_classes_not_rdf_classes.sparql
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Title:
# No rdfs:Class only owl:Class
# Constraint Description:
# Classes must be declared using owl:Class rather than rdfs:Class
# Severity:
# Error

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>

SELECT ?class ?label ?warningMessage
WHERE {
?class a rdfs:Class .

FILTER (!ISBLANK(?class)) .

OPTIONAL {
?class rdfs:label ?label .
}

BIND (
CONCAT(
"Warning: Entity ",
COALESCE(STR(?label), STR(?class)),
" is declared as rdfs:Class. Use owl:Class instead."
)
AS ?warningMessage
)
}
27 changes: 27 additions & 0 deletions .github/deployment/sparql/required-metadata.sparql
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Title:
# Ontology Metadata Cardinality Violation
# Constraint Description:
# Every ontology shall have exactly one license, rights statement, version info statement, and description.
# Severity:
# Error

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX dcterms: <http://purl.org/dc/terms/>

SELECT ?ontology ?property (COUNT(?value) AS ?valueCount) WHERE {
?ontology a owl:Ontology .

VALUES ?property {
dcterms:license
dcterms:rights
owl:versionInfo
dcterms:description
}

OPTIONAL {
?ontology ?property ?value .
}
}
GROUP BY ?ontology ?property
HAVING(COUNT(?value) != 1)
ORDER BY ?ontology ?property
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Title:
# Temporal Relations Missing Domain or Range
# Constraint Description:
# Finds Time Ontology object properties whose labels indicate temporal relations but which lack an asserted domain or range.
# Severity:
# Warning

PREFIX cco: <https://www.commoncoreontologies.org/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT DISTINCT ?property ?label ?missing WHERE {
?property a owl:ObjectProperty ;
rdfs:label ?label .

FILTER(STRSTARTS(STR(?property), STR(cco:)))
FILTER(REGEX(STR(?label), "interval|instant|inside", "i"))

{
FILTER NOT EXISTS { ?property rdfs:domain ?domain }
BIND("missing domain" AS ?missing)
}
UNION
{
FILTER NOT EXISTS { ?property rdfs:range ?range }
BIND("missing range" AS ?missing)
}
}
ORDER BY ?label ?missing
Loading
Loading