shacl-vue/tools/property_group_schema.yaml
Stephan Heunis 3a06850899 Adds a script and schema file for property group design and graph export:
Generate a serialized graph of triples from a LinkML-turned-SHACL schema
and a separately specified list of property groups.

This script takes a LinkML schema with UI annotations and a data file
containing a list property groups as input arguments and then:
- validates the data file according to the LinkML schema located in this
  repository at 'tools/property_group_schema.yaml'
- validates the UI-annotated schema (TODO)
- converts the property groups in the data file to RDF
- exports the UI-annotated schema to SHACL
- combines the property groups and schema exports into a single graph
- serializes the complete graph to a 'ttl' file

This allows a user to design the categorical structure of a user interface
via an easy-to-edit YAML file, and end up with a single-file graph that can
be used as input to the 'shacl-vue' user interface.
2024-05-22 23:59:35 +02:00

90 lines
No EOL
2.1 KiB
YAML

id: https://concepts.datalad.org/s/pgui/unreleased
name: property_group_ui
version: UNRELEASED
status: bibo:status/draft
title: Property Group schema for UI
description: |
comments:
- ALL CONTENT HERE IS UNRELEASED AND MAY CHANGE ANY TIME
license: MIT
prefixes:
dlsddui: https://concepts.datalad.org/s/sddui/unreleased/
pgui: https://concepts.datalad.org/s/pgui/unreleased/
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs: http://www.w3.org/2000/01/rdf-schema#
sh: http://www.w3.org/ns/shacl#
xsd: http://www.w3.org/2001/XMLSchema#
linkml: https://w3id.org/linkml/
emit_prefixes:
- pgui
- rdf
- rdfs
- sh
- xsd
- dlsddui
imports:
- linkml:types
slots:
id:
identifier: true
description: >-
The name of the property group that should be unique within the
context of a given graph.
range: string
label:
slot_uri: rdfs:label
description: >-
The label of the property group that will be displayed as the
heading of a section for this property group in the user interface
range: string
order:
slot_uri: sh:order
description: >-
The order that a
range: decimal
description:
slot_uri: rdfs:comment
description: >-
A description of the
range: string
classes:
PropertyGroup:
class_uri: sh:PropertyGroup
description: >-
A property group will be used by nodes in a graph (i.e. fields) via
`sh:group` in order to group these nodes together under a relevant category.
All nodes that belong to a specific property group will be rendered together
in the resulting UI.
slots:
- id
- label
- order
- description
slot_usage:
id:
required: true
label:
required: true
order:
required: true
description:
required: true
see_also:
- https://www.w3.org/TR/shacl/#group
- https://datashapes.org/forms.html#property-groups
Container:
class_uri: pgui:Container
tree_root: true
attributes:
property_groups:
slot_uri: pgui:property_groups
multivalued: true
inlined_as_list: true
range: PropertyGroup