Missing editor for schema_type #32

Open
opened 2025-04-30 04:43:58 +00:00 by mih · 1 comment
Owner

image

![image](/attachments/3e23aee7-552b-4fda-9c0c-5cd4f00fa5f1)
Owner

I think whether Type should show up in the first place is the main question that needs answering. This is what the SHACL looks like for dlidentifiers:Identifier:

dlidentifiers:Identifier a sh:NodeShape ;
    sh:closed true ;
    sh:description "An identifier is a label that uniquely identifies an item in a particular context. Some identifiers are globally unique. All identifiers are unique within their individual scope." ;
    sh:ignoredProperties ( dlidentifiers:schema_agency rdf:type ) ;
    sh:property [ sh:datatype xsd:string ;
            sh:description "String of characters such as \"T58:5\" or \"30:4833\" used to uniquely identify a concept within the scope of a given concept scheme." ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 1 ;
            sh:path dlidentifiers:notation ],
        [ sh:datatype xsd:anyURI ;
            sh:description "An agent responsible for making an entity." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 0 ;
            sh:path dlidentifiers:creator ],
        [ sh:datatype rdfs:Resource ;
            sh:description "State that the subject is an instance of a particular schema class. Typically, no explicit value needs to be assigned to this slot, because it matches the class type of a particular record. However, this slots can be used as a type designator of a schema element for validation and schema structure handling purposes. This is used to indicate specialized schema classes for properties that accept a hierarchy of classes as their range." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 2 ;
            sh:path rdf:type ] ;
    sh:targetClass dlidentifiers:Identifier .

The field / propertyshape in question has sh:path rdf:type. This is because this is the slot_uri of that slot, defined here: github.com/psychoinformatics-de/datalad-concepts@4abb86af91/src/types/unreleased.yaml (L92-L93).

I recall from some discussion some time ago, that the intention of that slot is for YAML / LinkML -based validation. In shacl-vue, the rendered form depends on the sh:NodeShape for the given class (here, dlidentifiers:Identifier).

By default in shacl-vue, the propertyshape with sh:path rdf:type is ignored. I am not sure why it was not the case here, perhaps a bug. But the bigger question is: should this still be the case?

I think whether `Type` should show up in the first place is the main question that needs answering. This is what the SHACL looks like for `dlidentifiers:Identifier`: ```ttl dlidentifiers:Identifier a sh:NodeShape ; sh:closed true ; sh:description "An identifier is a label that uniquely identifies an item in a particular context. Some identifiers are globally unique. All identifiers are unique within their individual scope." ; sh:ignoredProperties ( dlidentifiers:schema_agency rdf:type ) ; sh:property [ sh:datatype xsd:string ; sh:description "String of characters such as \"T58:5\" or \"30:4833\" used to uniquely identify a concept within the scope of a given concept scheme." ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path dlidentifiers:notation ], [ sh:datatype xsd:anyURI ; sh:description "An agent responsible for making an entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path dlidentifiers:creator ], [ sh:datatype rdfs:Resource ; sh:description "State that the subject is an instance of a particular schema class. Typically, no explicit value needs to be assigned to this slot, because it matches the class type of a particular record. However, this slots can be used as a type designator of a schema element for validation and schema structure handling purposes. This is used to indicate specialized schema classes for properties that accept a hierarchy of classes as their range." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path rdf:type ] ; sh:targetClass dlidentifiers:Identifier . ``` The field / propertyshape in question has `sh:path rdf:type`. This is because this is the `slot_uri` of that slot, defined here: https://github.com/psychoinformatics-de/datalad-concepts/blob/4abb86af912dbc1ab5399d6c2e20686de5824b4f/src/types/unreleased.yaml#L92-L93. I recall from some discussion some time ago, that the intention of that slot is for YAML / LinkML -based validation. In `shacl-vue`, the rendered form depends on the `sh:NodeShape` for the given class (here, `dlidentifiers:Identifier`). By default in `shacl-vue`, the propertyshape with `sh:path rdf:type` is ignored. I am not sure why it was not the case here, perhaps a bug. But the bigger question is: should this still be the case?
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
inm7/annotate.inm7.de-simplesubmit#32
No description provided.