glam/.opencode/rules/verified-ontology-terms.md
kempersc f3c0586d09 Refactor schema and slots for improved clarity and organization
- Updated `has_or_had_url` slot to allow a broader range of values by changing its range from `uriorcurie` to `Any`.
- Removed obsolete slots: `house_number`, `html_file`, `html_snapshot_path`, and `http_status_code`.
- Introduced new classes: `CeasingEvent`, `FileLocation`, `FilePath`, `HTMLFile`, `HTTPStatusCode`, `HouseNumber`, `MaximumHumidity`, `MinimumHumidity`, `TargetHumidity`, and `WKT` to better represent various concepts.
- Migrated existing slots to new structures, ensuring alignment with RiC-O naming conventions.
- Added new slots: `ceases_or_ceased_through`, `has_or_had_file_location`, `has_or_had_file_path`, `has_or_had_http_status`, and `is_or_was_observed_by` to capture additional metadata.
- Enhanced descriptions and annotations for clarity and context.
2026-01-28 10:49:49 +01:00

3.7 KiB

Rule 62: Verified Ontology Terms Reference

🚨 CRITICAL: All class_uri, slot_uri, and mapping properties (exact_mappings, close_mappings, etc.) MUST use verified classes and predicates that exist in the local ontology files at data/ontology/.

1. Verified Ontology Files

The following ontologies are locally available in data/ontology/. Always verify terms against these specific files. NO HALLUCINATIONS ALLOWED.

Mandatory Verification Step: Before using any class_uri, slot_uri, or mapping URI, you MUST grep the term in the local ontology file to confirm it exists.

Prefix Namespace Local File Key Classes/Predicates (Verified)
cpov: http://data.europa.eu/m8g/ core-public-organisation-ap.ttl PublicOrganisation, contactPage, email
crm: http://www.cidoc-crm.org/cidoc-crm/ CIDOC_CRM_v7.1.3.rdf E1_CRM_Entity, E5_Event, P2_has_type
rico: https://www.ica.org/standards/RiC/ontology# RiC-O_1-1.rdf Record, Agent, hasOrHadHolder (Note: Use v1.1 file)
pico: https://personsincontext.org/model# pico.ttl PersonObservation, role
prov: http://www.w3.org/ns/prov# prov.ttl Activity, Agent, wasGeneratedBy
skos: http://www.w3.org/2004/02/skos/core# skos.rdf Concept, prefLabel, broader
schema: https://schema.org/ frontend/public/ontology/schemaorg.owl Organization, Place, name, url
dcterms: http://purl.org/dc/terms/ dublin_core_elements.rdf identifier, title, description
org: http://www.w3.org/ns/org# org.rdf Organization, hasMember
tooi: https://identifier.overheid.nl/tooi/def/ont/ tooiont.ttl Overheidsorganisatie
dcat: http://www.w3.org/ns/dcat# dcat3.ttl Dataset, Catalog, dataset
gn: https://www.geonames.org/ontology# geonames_ontology.rdf Feature
dqv: http://www.w3.org/ns/dqv# dqv.ttl QualityMeasurement, hasQualityAnnotation
premis: http://www.loc.gov/premis/rdf/v3/ premis3.owl fixity, storedAt, Event

2. Verification Procedure (MANDATORY)

You MUST verify every term. Do not assume a term exists just because it sounds standard.

# 1. Identify the source ontology file
ls data/ontology/

# 2. Grep for the specific term (e.g., 'hasFixity')
grep "hasFixity" data/ontology/premis3.owl
# Result: EMPTY -> Term does not exist! DO NOT USE.

# 3. Grep for the correct term (e.g., 'fixity')
grep "fixity" data/ontology/premis3.owl
# Result: <owl:ObjectProperty rdf:about=".../fixity"> -> Term exists. USE THIS.

3. LinkML Mapping Requirements

Mappings must be precise and verified.

  • exact_mappings = skos:exactMatch (Semantic equivalence)
  • close_mappings = skos:closeMatch (Near equivalence)
  • related_mappings = skos:relatedMatch (Association)
  • broad_mappings = skos:broadMatch (Broader concept)
  • narrow_mappings = skos:narrowMatch (Narrower concept)

4. Prohibited/Invalid Terms (Hallucinations)

Do NOT use these commonly hallucinated or incorrect terms. They have been verified as non-existent in our local ontologies:

  • dqv:ConfidenceScore (Use dqv:QualityMeasurement)
  • premis:hasFixity (Use premis:fixity)
  • premis:hasFrameRate (Verify specific PREMIS properties first)
  • schema:HeritageBuilding (Use schema:LandmarksOrHistoricalBuildings)
  • rico:has_provenance (Use rico:history)
  • rico:hasProvenance (Use rico:history)
  • schema:archive (Use schema:archiveHeld or schema:archivedAt)

Always verify against the local file content.