From 36a1b985aeadfb802572bc6d07a56cdae1f9f6cf Mon Sep 17 00:00:00 2001 From: Robert David <9427084@gmail.com> Date: Wed, 20 May 2026 17:28:47 +0200 Subject: [PATCH 1/8] Added global configuration Changed global configuration to a subsection Fixed html bug --- shacl12-ui/index.html | 70 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/shacl12-ui/index.html b/shacl12-ui/index.html index 9260104f..338fc42d 100644 --- a/shacl12-ui/index.html +++ b/shacl12-ui/index.html @@ -671,6 +671,76 @@

Property UI Component

+
+

SHACL Global Configuration

+

+ A shapes graph may contain a SHACL instance of the class shui:Configuration + to define global configuration properties for rendering the UI. + shui:Configuration is a SHACL subclass of sh:Graph + The following properties can be defined for a shui:Configuration instance. +

Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertySummary and Syntax Rules
shui:defaultNamespace + The default namespace used to construct fresh user-added nodes. + The value of shui:defaultNamespace is an IRI. +
shui:hasLanguagePreference + The language selection for displaying labels in widgets. + The value of shui:hasLanguagePreference is a well-formed SHACL list where all members are language tags. + The preferred language is determined according to the order of priority in the list from beginning (highest) to end (lowest ). +
shui:timeZone + The time zone used to construct new terms with datatype xsd:dateTime. + The value of shui:timeZone is xsd:string. +
shui:shapesLabelPreference + The label properties used to determine labels to display in widgets. + Properties are looked up in the shapes graph. + The value of shui:shapesLabelPreference is a well-formed SHACL list where all members are IRIs. +
shui:dataLabelPreference + The label properties used to determine labels to display in widgets and labels to represent nodes values in the widgets. + Properties are looked up in the data graph. + The value of shui:dataLabelPreference is a well-formed SHACL list where all members are IRIs. +
+
+

TODO: Describe the constraint collection/aggregation behaviour here for both Node and Property UI Component.

From 79019b8cc7ae2b3bc80383cde8067137cb3bcf81 Mon Sep 17 00:00:00 2001 From: Robert David <9427084@gmail.com> Date: Thu, 21 May 2026 17:17:06 +0200 Subject: [PATCH 2/8] Added label resolution using global configuration --- shacl12-ui/index.html | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/shacl12-ui/index.html b/shacl12-ui/index.html index 338fc42d..32905fdd 100644 --- a/shacl12-ui/index.html +++ b/shacl12-ui/index.html @@ -1446,7 +1446,7 @@

Language Resolution

expressed is up to the implementation. Possible approaches include but are not limited to:
  • @@ -1524,6 +1524,11 @@

    Label Resolution

  • +

    + Label resolution is done according to the property IRIs listed using the SHACL global configuration property shui:dataLabelPreference. + It defaults to rdfs:label. +

    +

    Property Labels

    @@ -1547,7 +1552,7 @@

    Property Labels

  • If P is a predicate IRI and the shapes graph - contains one or more rdfs:label triples with subject P, select + contains one or more triples with properties determined by label resolution and with subject P, select the best matching value using language resolution. If a match is found, use that literal as the label.
  • @@ -1582,13 +1587,13 @@

    Value Node Labels

  • If the data graph contains one or more values for the configured property path for - the value node label resolution (defaulting to rdfs:label) for V, + the value node determined by label resolution for V, select the best matching value using language resolution. If a match is found, use that literal as the label.
  • If the shapes graph contains one or more values for the configured property path for - the value node label resolution (defaulting to rdfs:label) for V, + the value node determined by label resolution for V, select the best matching value using language resolution. If a match is found, use that literal as the label.
  • From 2e0eba364bda475c62a7960b2d47a518b0b3e01d Mon Sep 17 00:00:00 2001 From: Robert David <9427084@gmail.com> Date: Thu, 21 May 2026 17:21:16 +0200 Subject: [PATCH 3/8] Fixed global-configuration link --- shacl12-ui/index.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/shacl12-ui/index.html b/shacl12-ui/index.html index 32905fdd..4ed40fca 100644 --- a/shacl12-ui/index.html +++ b/shacl12-ui/index.html @@ -433,6 +433,12 @@

    Terminology

    >value node + , + + SHACL Global Configuration + .

    From 5d0fc15697e7780c6752b099daaf3e96e250532f Mon Sep 17 00:00:00 2001 From: Robert David <9427084@gmail.com> Date: Thu, 21 May 2026 17:25:48 +0200 Subject: [PATCH 4/8] Replaced one more rdfs:label with label resolution --- shacl12-ui/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shacl12-ui/index.html b/shacl12-ui/index.html index 4ed40fca..bbb7612e 100644 --- a/shacl12-ui/index.html +++ b/shacl12-ui/index.html @@ -1452,7 +1452,7 @@

    Language Resolution

    expressed is up to the implementation. Possible approaches include but are not limited to:
  • @@ -1531,7 +1531,7 @@

    Label Resolution

    - Label resolution is done according to the property IRIs listed using the SHACL global configuration property shui:dataLabelPreference. + Label resolution is done according to the property IRIs listed using the global configuration property shui:dataLabelPreference. It defaults to rdfs:label.

    @@ -1552,7 +1552,7 @@

    Property Labels

  • If P is a predicate IRI and the data graph - contains one or more rdfs:label triples with subject P, select + contains one or more triples with properties determined by label resolution and with subject P, select the best matching value using language resolution. If a match is found, use that literal as the label.
  • From ea14d7ab28fe9e35e009cda2225949c34c8843d1 Mon Sep 17 00:00:00 2001 From: Robert David <9427084@gmail.com> Date: Sat, 6 Jun 2026 15:15:36 +0200 Subject: [PATCH 5/8] Changes on label property resolution --- shacl12-ui/index.html | 73 ++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 39 deletions(-) diff --git a/shacl12-ui/index.html b/shacl12-ui/index.html index bbb7612e..ee92c5af 100644 --- a/shacl12-ui/index.html +++ b/shacl12-ui/index.html @@ -682,7 +682,7 @@

    SHACL Global Configuration

    A shapes graph may contain a SHACL instance of the class shui:Configuration to define global configuration properties for rendering the UI. - shui:Configuration is a SHACL subclass of sh:Graph + sh:Graph is a SHACL subclass of shui:Configuration. The following properties can be defined for a shui:Configuration instance.

    Parameters:
    @@ -697,7 +697,7 @@

    SHACL Global Configuration

    @@ -706,29 +706,22 @@

    SHACL Global Configuration

    The language selection for displaying labels in widgets. The value of shui:hasLanguagePreference is a well-formed SHACL list where all members are language tags. The preferred language is determined according to the order of priority in the list from beginning (highest) to end (lowest ). + An empty literal (`""`) represents no language, i.e., a string literal with no language tag. - + - - - - @@ -740,8 +733,7 @@

    SHACL Global Configuration

    shui:defaultNamespace <http://example.com/ns#> ; shui:hasLanguagePreference ("" "en" "de") ; shui:hasTimeZone "Europe/Vienna" ; - shui:shapesLabelPreference (rdfs:label, skos:prefLabel) ; - shui:dataLabelPreference (skos:prefLabel, dcterms:title, rdfs:label) . + shui:labelPreference (skos:prefLabel, dcterms:title, rdfs:label) .

    @@ -1530,10 +1522,13 @@

    Label Resolution

    -

    - Label resolution is done according to the property IRIs listed using the global configuration property shui:dataLabelPreference. - It defaults to rdfs:label. -

    +
    +

    Label Property Resolution

    +

    + Label property resolution is done according to the preferred property IRIs listed in the global configuration property shui:labelPreference. + Preferred labels default to sh:name for Property Labels and rdfs:label for Value Node Labels. +

    +

    Property Labels

    @@ -1546,25 +1541,24 @@

    Property Labels

    1. If the property shape has one or more values for the configured property path for - the property label resolution (defaulting to sh:name), select the best - matching value using language resolution. If a match is found, use that literal - as the label. + properties determined by label property resolution, select the best + matching value using language resolution. + If a match is found, use that literal as the label.
    2. If P is a predicate IRI and the data graph - contains one or more triples with properties determined by label resolution and with subject P, select - the best matching value using language resolution. If a match is found, use - that literal as the label. + contains one or more triples with properties determined by label property resolution and with subject P, select + the best matching value using language resolution. + If a match is found, use that literal as the label.
    3. If P is a predicate IRI and the shapes graph - contains one or more triples with properties determined by label resolution and with subject P, select - the best matching value using language resolution. If a match is found, use - that literal as the label. + contains one or more triples with properties determined by label property resolution and with subject P, select + the best matching value using language resolution. + If a match is found, use that literal as the label.
    4. - If P is a predicate IRI, use the - local name resolution of P as the label. + If P is a predicate IRI, use the local name resolution of P as the label.
    5. Otherwise, an implementation-specific translation algorithm should be applied to convert the complex property path @@ -1589,19 +1583,20 @@

      Value Node Labels

      whose sh:path is annotated with shui:propertyRole shui:LabelRole, retrieve the values of that path from the data graph for subject V. Select the best matching value using - language resolution. If a match is found, use that literal as the label. + language resolution. + If a match is found, use that literal as the label.
    6. If the data graph contains one or more values for the configured property path for - the value node determined by label resolution for V, - select the best matching value using language resolution. If a match is found, use - that literal as the label. + the value node determined by label property resolution for V, + select the best matching value using language resolution. + If a match is found, use that literal as the label.
    7. If the shapes graph contains one or more values for the configured property path for - the value node determined by label resolution for V, - select the best matching value using language resolution. If a match is found, use - that literal as the label. + the value node determined by label property resolution for V, + select the best matching value using language resolution. + If a match is found, use that literal as the label.
    8. If V is an IRI, use the From 3c52415f741838d8364ea5c49411bdf2e1101002 Mon Sep 17 00:00:00 2001 From: Robert David <9427084@gmail.com> Date: Sat, 6 Jun 2026 15:29:48 +0200 Subject: [PATCH 6/8] Fixes to streamline label property resolution --- shacl12-ui/index.html | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/shacl12-ui/index.html b/shacl12-ui/index.html index ee92c5af..cf0c3076 100644 --- a/shacl12-ui/index.html +++ b/shacl12-ui/index.html @@ -449,6 +449,14 @@

      Terminology

      value for display. +
      +
      Language Resolution
      +
      + Label Property Resolution is the process of determining and ordering the + label property IRIs for label resolution, prioritizing the preferred or most relevant property + IRI for retrieval. It generates a default IRI when no suitable value exists. +
      +
      Label Resolution
      @@ -456,7 +464,7 @@

      Terminology

      display label for an RDF resource, or generating a fallback value when no suitable value exists. It applies to both value nodes and properties identified by sh:path, the latter of which is commonly used to label form elements. - The process includes language resolution and considers labeling-related annotations from the + The process includes label property resolution and language resolution, and considers labeling-related annotations from the shapes graph, data graph, application environment, and user preferences, to determine the best label for UI presentation.
      @@ -730,7 +738,7 @@

      SHACL Global Configuration

      ex:config a shui:Configuration ; - shui:defaultNamespace <http://example.com/ns#> ; + shui:defaultNamespace "<"http://example.com/ns#" ; shui:hasLanguagePreference ("" "en" "de") ; shui:hasTimeZone "Europe/Vienna" ; shui:labelPreference (skos:prefLabel, dcterms:title, rdfs:label) . @@ -1525,7 +1533,7 @@

      Label Resolution

      Label Property Resolution

      - Label property resolution is done according to the preferred property IRIs listed in the global configuration property shui:labelPreference. + Label property resolution (i.e., determining the label properties for retrieving label values) is done according to the preferred property IRIs listed in the global configuration property shui:labelPreference. Preferred labels default to sh:name for Property Labels and rdfs:label for Value Node Labels.

      From 84146fd48187af58061ea3bde710305e59aaf5e1 Mon Sep 17 00:00:00 2001 From: Robert David <9427084@gmail.com> Date: Sat, 6 Jun 2026 15:31:54 +0200 Subject: [PATCH 7/8] Minor fix --- shacl12-ui/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shacl12-ui/index.html b/shacl12-ui/index.html index cf0c3076..9b5a93d0 100644 --- a/shacl12-ui/index.html +++ b/shacl12-ui/index.html @@ -450,7 +450,7 @@

      Terminology

      -
      Language Resolution
      +
      Label Property Resolution
      Label Property Resolution is the process of determining and ordering the label property IRIs for label resolution, prioritizing the preferred or most relevant property From babede3dcdc741a75a49055f20d9e832cb2b9878 Mon Sep 17 00:00:00 2001 From: Robert David <9427084@gmail.com> Date: Tue, 7 Jul 2026 14:47:55 +0200 Subject: [PATCH 8/8] Update index.html Removed 'has' from configuration properties. --- shacl12-ui/index.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/shacl12-ui/index.html b/shacl12-ui/index.html index 9b5a93d0..ecfd00dc 100644 --- a/shacl12-ui/index.html +++ b/shacl12-ui/index.html @@ -709,10 +709,10 @@

      SHACL Global Configuration

    - + @@ -739,8 +739,8 @@

    SHACL Global Configuration

    ex:config a shui:Configuration ; shui:defaultNamespace "<"http://example.com/ns#" ; - shui:hasLanguagePreference ("" "en" "de") ; - shui:hasTimeZone "Europe/Vienna" ; + shui:languagePreference ("" "en" "de") ; + shui:timeZone "Europe/Vienna" ; shui:labelPreference (skos:prefLabel, dcterms:title, rdfs:label) .
    @@ -1452,7 +1452,7 @@

    Language Resolution

    expressed is up to the implementation. Possible approaches include but are not limited to:
  • shui:defaultNamespace The default namespace used to construct fresh user-added nodes. - The value of shui:defaultNamespace is an IRI. + The value of shui:defaultNamespace is a Literal whose value is a valid IRI.
    shui:timeZone The time zone used to construct new terms with datatype xsd:dateTime. - The value of shui:timeZone is xsd:string. + The value of shui:timeZone is of datatype xsd:string.
    shui:shapesLabelPreferenceshui:labelPreference - The label properties used to determine labels to display in widgets. - Properties are looked up in the shapes graph. - The value of shui:shapesLabelPreference is a well-formed SHACL list where all members are IRIs. -
    shui:dataLabelPreference - The label properties used to determine labels to display in widgets and labels to represent nodes values in the widgets. - Properties are looked up in the data graph. - The value of shui:dataLabelPreference is a well-formed SHACL list where all members are IRIs. + The label properties used to determine the labels to display in widgets and labels to represent nodes values in the widgets. + The value of shui:labelPreference is a well-formed SHACL list where all members are IRIs. + The preferred label property is determined according to the order of priority in the list from beginning (highest) to end (lowest).
    shui:hasLanguagePreferenceshui:languagePreference The language selection for displaying labels in widgets. - The value of shui:hasLanguagePreference is a well-formed SHACL list where all members are language tags. + The value of shui:languagePreference is a well-formed SHACL list where all members are language tags. The preferred language is determined according to the order of priority in the list from beginning (highest) to end (lowest ). An empty literal (`""`) represents no language, i.e., a string literal with no language tag.