glam/QUICK_STATUS_FEATUREPLACE_COMPLETE.md
kempersc 6eb18700f0 Add SHACL validation shapes and validation script for Heritage Custodian Ontology
- Created SHACL shapes for validating temporal consistency and bidirectional relationships in custodial collections and staff observations.
- Implemented a Python script to validate RDF data against the defined SHACL shapes using the pyshacl library.
- Added command-line interface for validation with options for specifying data formats and output reports.
- Included detailed error handling and reporting for validation results.
2025-11-22 23:22:10 +01:00

3.4 KiB

Quick Status: FeaturePlace Implementation Complete

Date: 2025-11-22
Status: Complete
Time: ~45 minutes


What We Built

1. FeatureTypeEnum (298 values)

File: schemas/20251121/linkml/modules/enums/FeatureTypeEnum.yaml
Size: 106 KB

Physical feature types from Wikidata:

  • MANSION (Q1802963) - large dwelling house
  • PARISH_CHURCH (Q16970) - place of Christian worship
  • MUSEUM (Q33506) - institution housing collections
  • MONUMENT (Q4989906) - commemorative structure
  • CEMETERY (Q39614) - burial ground
  • CASTLE (Q23413) - fortified building
  • ...292 more values

2. FeaturePlace Class

File: schemas/20251121/linkml/modules/classes/FeaturePlace.yaml
Size: 12 KB

Classifies physical feature types for nominal place references.

Key Concept:

  • CustodianPlace = WHERE (nominal reference: "Rijksmuseum")
  • FeaturePlace = WHAT TYPE (classification: MUSEUM building)

Required Fields:

  • feature_type: FeatureTypeEnum value
  • classifies_place: Link to CustodianPlace
  • was_derived_from: Source observations

Optional Fields:

  • feature_name: Name/label
  • feature_description: Physical characteristics
  • feature_note: Classification rationale
  • valid_from/valid_to: Temporal validity

3. Updated CustodianPlace

File: schemas/20251121/linkml/modules/classes/CustodianPlace.yaml

Added:

  • Import: ./FeaturePlace
  • Slot: has_feature_type (optional link to FeaturePlace)
  • Updated example with feature type classification

Relationship Model

CustodianPlace ("Rijksmuseum")
    ↓ has_feature_type (optional)
FeaturePlace
    ├─ feature_type: MUSEUM
    ├─ feature_description: "Neo-Gothic building (1885)"
    └─ classifies_place → back to CustodianPlace

Bidirectional:

  • CustodianPlace → FeaturePlace: has_feature_type (optional)
  • FeaturePlace → CustodianPlace: classifies_place (required)

Examples

Museum Building

CustodianPlace:
  place_name: "Rijksmuseum"
  has_feature_type:
    feature_type: MUSEUM
    feature_description: "Neo-Gothic museum building (1885)"

Historic Mansion

CustodianPlace:
  place_name: "het herenhuis in de Schilderswijk"
  has_feature_type:
    feature_type: MANSION
    feature_description: "17th-century canal mansion"

Church Archive

CustodianPlace:
  place_name: "Oude Kerk Amsterdam"
  has_feature_type:
    feature_type: PARISH_CHURCH
    feature_description: "Medieval church (1306)"

Ontology Alignment

FeaturePlace:

  • crm:E27_Site (CIDOC-CRM physical site)
  • schema:LandmarksOrHistoricalBuildings (Schema.org)

CustodianPlace:

  • crm:E53_Place (CIDOC-CRM conceptual place)
  • schema:Place (Schema.org)

Distinction: E27_Site (physical) vs E53_Place (nominal/conceptual)


Statistics

  • Total enum values: 298
  • Top hypernym: Heritage sites (144, 48.3%)
  • Files created: 2
  • Files modified: 1
  • Total size: 118 KB

Next Steps

  1. Validate schemas: Run linkml-validate
  2. Generate RDF: Use gen-owl for RDF serialization
  3. Update main schema: Add imports
  4. Create test instances: YAML validation examples

Documentation

📄 Full report: FEATUREPLACE_IMPLEMENTATION_COMPLETE.md
📄 Extraction report: README_F_EXTRACTION.md
📄 Source data: data/wikidata/GLAMORCUBEPSXHFN/hyponyms_curated_full_f.yaml


Status: Ready for integration