feat: Update manifest generated timestamp and mark slot fixes as completed with detailed response
This commit is contained in:
parent
821d040b9d
commit
be18d6761c
6 changed files with 257 additions and 11 deletions
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"generated": "2026-01-22T15:51:41.730Z",
|
||||
"generated": "2026-01-22T16:05:23.652Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 3029,
|
||||
"categoryCounts": {
|
||||
|
|
|
|||
|
|
@ -715,7 +715,7 @@ class LinkMLSchemaService {
|
|||
|
||||
if (schema.slots) {
|
||||
const slotsWithClassRange = Object.entries(schema.slots)
|
||||
.filter(([_, slot]) => slot.range && typeof slot.range === 'string' && !['string', 'integer', 'float', 'boolean', 'uri', 'uriorcurie', 'date', 'datetime'].includes(slot.range))
|
||||
.filter(([_, slot]) => slot && slot.range && typeof slot.range === 'string' && !['string', 'integer', 'float', 'boolean', 'uri', 'uriorcurie', 'date', 'datetime'].includes(slot.range))
|
||||
.map(([name, slot]) => `${name}→${slot.range}`);
|
||||
if (slotsWithClassRange.length > 0) {
|
||||
debugLog(`[LinkMLSchemaService] ${fileName}: slots with class/enum ranges: ${slotsWithClassRange.join(', ')}`);
|
||||
|
|
@ -1488,7 +1488,7 @@ class LinkMLSchemaService {
|
|||
|
||||
// Scan all slots for this class as range
|
||||
for (const [slotName, slot] of this.slotSchemas.entries()) {
|
||||
if (slot.range === className) {
|
||||
if (slot && slot.range === className) {
|
||||
exportInfo.slotsWithThisRange.push(slotName);
|
||||
}
|
||||
}
|
||||
|
|
@ -1868,7 +1868,7 @@ class LinkMLSchemaService {
|
|||
const slots: string[] = [];
|
||||
|
||||
for (const [slotName, slot] of this.slotSchemas.entries()) {
|
||||
if (slot.range === className) {
|
||||
if (slot && slot.range === className) {
|
||||
slots.push(slotName);
|
||||
}
|
||||
}
|
||||
|
|
@ -2032,7 +2032,7 @@ class LinkMLSchemaService {
|
|||
|
||||
// Second pass: Calculate exports from slots with class ranges
|
||||
for (const [slotName, slot] of this.slotSchemas.entries()) {
|
||||
if (slot.range && counts.has(slot.range)) {
|
||||
if (slot && slot.range && counts.has(slot.range)) {
|
||||
// This slot has a class as its range
|
||||
const classesUsingSlot = slotToClasses.get(slotName);
|
||||
if (classesUsingSlot) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"generated": "2026-01-22T16:05:23.652Z",
|
||||
"generated": "2026-01-22T19:17:33.553Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 3029,
|
||||
"categoryCounts": {
|
||||
|
|
|
|||
102
schemas/20251121/linkml/modules/classes/SocialNetworkMember.yaml
Normal file
102
schemas/20251121/linkml/modules/classes/SocialNetworkMember.yaml
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
# SocialNetworkMember class
|
||||
# Created 2026-01-22 per slot_fixes.yaml revision for connection (Rule 53)
|
||||
#
|
||||
# Generation date: 2026-01-22
|
||||
# Rule compliance: 53 (slot_fixes.yaml), 39 (RiC-O naming)
|
||||
#
|
||||
# Represents a member in a social/professional network
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/SocialNetworkMember
|
||||
name: social_network_member_class
|
||||
title: Social Network Member Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
foaf: http://xmlns.com/foaf/0.1/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_identifier
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_description
|
||||
- ../slots/linkedin_profile_url
|
||||
|
||||
classes:
|
||||
SocialNetworkMember:
|
||||
class_uri: foaf:Person
|
||||
description: |
|
||||
A member in a social or professional network.
|
||||
|
||||
**DEFINITION**:
|
||||
|
||||
SocialNetworkMember represents a person who is part of a professional
|
||||
network (LinkedIn, ORCID, etc.) in the context of heritage sector
|
||||
network analysis.
|
||||
|
||||
**RELATIONSHIP TO PersonConnection**:
|
||||
|
||||
`PersonConnection` is a subclass/specialization that includes
|
||||
additional metadata about the connection relationship (degree,
|
||||
heritage relevance, etc.). `SocialNetworkMember` is the base
|
||||
class for any network member.
|
||||
|
||||
**USE CASES**:
|
||||
|
||||
1. LinkedIn connection network analysis
|
||||
2. Heritage sector professional mapping
|
||||
3. Cross-institutional collaboration discovery
|
||||
4. Alumni and association network analysis
|
||||
|
||||
**SEMANTIC PATTERN**:
|
||||
|
||||
```
|
||||
ConnectionNetwork
|
||||
│
|
||||
└── has_or_had_member → SocialNetworkMember (THIS CLASS)
|
||||
├── has_or_had_identifier: LinkedIn URL
|
||||
├── has_or_had_label: Person name
|
||||
└── (subclasses add connection-specific metadata)
|
||||
```
|
||||
|
||||
Created as part of connection migration per slot_fixes.yaml (Rule 53).
|
||||
|
||||
exact_mappings:
|
||||
- foaf:Person
|
||||
close_mappings:
|
||||
- schema:Person
|
||||
|
||||
slots:
|
||||
- has_or_had_identifier
|
||||
- has_or_had_label
|
||||
- has_or_had_description
|
||||
- linkedin_profile_url
|
||||
|
||||
slot_usage:
|
||||
has_or_had_identifier:
|
||||
description: Unique identifier for this network member (LinkedIn URL, ORCID, etc.).
|
||||
has_or_had_label:
|
||||
description: Name of the network member.
|
||||
linkedin_profile_url:
|
||||
description: LinkedIn profile URL if available.
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
custodian_types_rationale: Network members can be associated with any heritage type.
|
||||
specificity_score: 0.60
|
||||
specificity_rationale: Specialized class for social network analysis.
|
||||
|
||||
comments:
|
||||
- "Base class for network members - PersonConnection extends this"
|
||||
- "Created 2026-01-22 per slot_fixes.yaml connection migration"
|
||||
- "Enables heritage sector network analysis"
|
||||
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label:
|
||||
label_text: "Jan de Vries"
|
||||
linkedin_profile_url: "https://www.linkedin.com/in/jan-de-vries-heritage/"
|
||||
description: "Heritage professional as network member"
|
||||
|
|
@ -19,7 +19,6 @@
|
|||
"begin_of_the_end.yaml",
|
||||
"birth_edtf.yaml",
|
||||
"birth_iso_date.yaml",
|
||||
"canonical_access_rule.yaml",
|
||||
"canonical_value.yaml",
|
||||
"capacity.yaml",
|
||||
"capacity_type.yaml",
|
||||
|
|
|
|||
|
|
@ -7912,7 +7912,8 @@ fixes:
|
|||
would enhance semantic clarity and allow for richer metadata about access rules.
|
||||
|
||||
This would align with best practices for modeling access conditions.'
|
||||
done: false
|
||||
done: true
|
||||
response: "Completed 2026-01-22 by claude-sonnet-4. Created Permission.yaml, PermissionType.yaml (abstract), PermissionTypes.yaml (with BishopsPermission, InstitutionalAffiliation, etc.). Migrated DiocesanArchive.yaml to use requires_or_required → Permission. canonical_access_rule.yaml archived."
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/canonical_value
|
||||
revision:
|
||||
- label: has_or_had_canonical_form
|
||||
|
|
@ -15032,9 +15033,153 @@ fixes:
|
|||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/has_aspect_ratio
|
||||
revision:
|
||||
- label: has_or_had_ratio
|
||||
- label: has_or_had_degree
|
||||
type: slot
|
||||
- label: AspectRatio
|
||||
type: class
|
||||
# https://nde.nl/ontology/hc/slot/has_appellation_type
|
||||
# https://nde.nl/ontology/hc/slot/has_appellation_type
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/has_assertion_date
|
||||
revision:
|
||||
- label: is_or_was_asserted_on
|
||||
type: slot
|
||||
- label: TimeSpan
|
||||
type: class
|
||||
- label: start_of_the_start
|
||||
type: slot
|
||||
- label: Timestamp
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_assertion_rationale
|
||||
revision:
|
||||
- label: has_or_had_rationale
|
||||
type: slot
|
||||
- label: Rationale
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/has_assertion_value
|
||||
revision:
|
||||
- label: has_or_had_value
|
||||
type: slot
|
||||
- label: Value
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/has_assessment_category
|
||||
revision:
|
||||
- label: has_or_had_category
|
||||
type: slot
|
||||
- label: AssessmentCategory
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_assessment_date
|
||||
revision:
|
||||
- label: is_or_was_assessed_on
|
||||
type: slot
|
||||
- label: TimeSpan
|
||||
type: class
|
||||
- label: start_of_the_start
|
||||
type: slot
|
||||
- label: Timestamp
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_associated_taxon
|
||||
revision:
|
||||
- label: has_or_had_hypernym
|
||||
type: slot
|
||||
- label: Taxon
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_auction_house
|
||||
revision:
|
||||
- label: is_or_was_conducted_by
|
||||
type: slot
|
||||
- label: AuctionHouse
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_auction_sale_name
|
||||
revision:
|
||||
- label: is_or_was_conducted_by
|
||||
type: slot
|
||||
- label: AuctionHouse
|
||||
type: class
|
||||
- label: publishes_or_published
|
||||
type: slot
|
||||
- label: AuctionSaleCatalog
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/has_audio_event_segment
|
||||
revision:
|
||||
- label: contains_or_contained
|
||||
type: slot
|
||||
- label: AudioEventSegment
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/has_audit_date
|
||||
revision:
|
||||
- label: is_or_was_based_on
|
||||
type: slot
|
||||
- label: Audit
|
||||
type: class
|
||||
- label: temporal_extent
|
||||
type: slot
|
||||
- label: TimeSpan
|
||||
type: class
|
||||
- label: start_of_the_start
|
||||
type: slot
|
||||
- label: Timestamp
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/has_audit_opinion
|
||||
revision:
|
||||
- label: is_or_was_based_on
|
||||
type: slot
|
||||
- label: Audit
|
||||
type: class
|
||||
- label: draws_or_drew_opinion
|
||||
type: slot
|
||||
- label: AuditOpinion
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/has_auditor_name
|
||||
revision:
|
||||
- label: is_or_was_based_on
|
||||
type: slot
|
||||
- label: Audit
|
||||
type: class
|
||||
- label: is_or_was_conducted_by
|
||||
type: slot
|
||||
- label: Auditor
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/has_authentication_required_flag
|
||||
revision:
|
||||
- label: requires_or_required
|
||||
type: slot
|
||||
- label: Authentication
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_authority_file_abbreviation
|
||||
revision:
|
||||
- label: contributes_or_contributed
|
||||
type: slot
|
||||
- label: AuthorityData
|
||||
type: class
|
||||
- label: has_or_had_label
|
||||
type: slot
|
||||
- label: Label
|
||||
type: class
|
||||
- label: has_or_had_type
|
||||
type: slot
|
||||
- label: LabelType
|
||||
type: class
|
||||
- label: includes_or_included
|
||||
type: slot
|
||||
- label: LabelTypes
|
||||
type: class
|
||||
note: AbbreviationLabel class is defined in the LinkML file
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_authority_file_name
|
||||
revision:
|
||||
- label: contributes_or_contributed
|
||||
type: slot
|
||||
- label: AuthorityData
|
||||
type: class
|
||||
- label: has_or_had_label
|
||||
type: slot
|
||||
- label: Label
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/has_authority_file_url
|
||||
revision:
|
||||
- label: contributes_or_contributed
|
||||
type: slot
|
||||
- label: AuthorityData
|
||||
type: class
|
||||
- label: has_or_had_url
|
||||
type: slot
|
||||
- label: URL
|
||||
type: class
|
||||
# https://nde.nl/ontology/hc/slot/has_auxiliary_place
|
||||
|
|
|
|||
Loading…
Reference in a new issue