-
Notifications
You must be signed in to change notification settings - Fork 44
Issue 869 #900
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: gh-pages
Are you sure you want to change the base?
Issue 869 #900
Changes from all commits
36a1b98
79019b8
2e0eba3
5d0fc15
ea14d7a
3c52415
84146fd
babede3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -433,6 +433,12 @@ <h3>Terminology</h3> | |||||||||
| >value node</a | ||||||||||
| > | ||||||||||
| </dfn> | ||||||||||
| , | ||||||||||
| <dfn data-lt="global configuration"> | ||||||||||
| <a href="https://www.w3.org/TR/shacl/#global-configuration" | ||||||||||
| >SHACL Global Configuration</a | ||||||||||
| > | ||||||||||
| </dfn> | ||||||||||
| . | ||||||||||
| </p> | ||||||||||
| <div class="def"> | ||||||||||
|
|
@@ -443,14 +449,22 @@ <h3>Terminology</h3> | |||||||||
| value for display. | ||||||||||
| </div> | ||||||||||
| </div> | ||||||||||
| <div class="def"> | ||||||||||
| <div class="term-def-header">Label Property Resolution</div> | ||||||||||
| <div> | ||||||||||
| <dfn data-lt="label property resolution">Label Property Resolution</dfn> 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. | ||||||||||
| </div> | ||||||||||
| </div> | ||||||||||
| <div class="def"> | ||||||||||
| <div class="term-def-header">Label Resolution</div> | ||||||||||
| <div> | ||||||||||
| <dfn data-lt="label resolution">Label Resolution</dfn> is the process of selecting the most appropriate | ||||||||||
| 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 <code>sh:path</code>, the latter of which is commonly used to label form elements. | ||||||||||
|
|
||||||||||
| The process includes <a>language resolution</a> and considers labeling-related annotations from the | ||||||||||
| The process includes <a>label property resolution</a> and <a>language resolution</a>, and considers labeling-related annotations from the | ||||||||||
| <a>shapes graph</a>, <a>data graph</a>, application environment, and user preferences, to determine the best label for UI presentation. | ||||||||||
| </div> | ||||||||||
| </div> | ||||||||||
|
|
@@ -671,6 +685,68 @@ <h3>Property UI Component</h3> | |||||||||
| </div> | ||||||||||
| </section> | ||||||||||
|
|
||||||||||
| <section id="global-configuration"> | ||||||||||
| <h3>SHACL Global Configuration</h3> | ||||||||||
| <p> | ||||||||||
| A shapes graph may contain a <a>SHACL instance</a> of the class <code>shui:Configuration</code> | ||||||||||
| to define global configuration properties for rendering the UI. | ||||||||||
| <code>sh:Graph</code> is a <a>SHACL subclass</a> of <code>shui:Configuration</code>. | ||||||||||
| The following properties can be defined for a <code>shui:Configuration</code> instance. | ||||||||||
| <div class="parameters">Parameters:</div> | ||||||||||
| <table class="term-table"> | ||||||||||
| <thead> | ||||||||||
| <tr> | ||||||||||
| <th>Property</th> | ||||||||||
| <th>Summary and Syntax Rules</th> | ||||||||||
| </tr> | ||||||||||
| </thead> | ||||||||||
| <tbody> | ||||||||||
| <tr> | ||||||||||
| <td><code>shui:defaultNamespace</code></td> | ||||||||||
| <td> | ||||||||||
| The default namespace used to construct fresh user-added nodes. | ||||||||||
| The value of <code>shui:defaultNamespace</code> is a <a>Literal</a> whose value is a valid IRI. | ||||||||||
| </td> | ||||||||||
| </tr> | ||||||||||
| <tr> | ||||||||||
| <td><code>shui:languagePreference</code></td> | ||||||||||
| <td> | ||||||||||
| The language selection for displaying labels in widgets. | ||||||||||
| The value of <code>shui:languagePreference</code> 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 ). | ||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I find the description of an empty Literal behavior useful to add as well. Also a redundant space.
Suggested change
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The redundant space was not fixed yet. |
||||||||||
| An empty literal (`""`) represents no language, i.e., a string literal with no language tag. | ||||||||||
| </td> | ||||||||||
| </tr> | ||||||||||
| <tr> | ||||||||||
| <td><code>shui:timeZone</code></td> | ||||||||||
| <td> | ||||||||||
| The time zone used to construct new terms with <a>datatype</a> <code>xsd:dateTime</code>. | ||||||||||
| The value of <code>shui:timeZone</code> is of datatype <code>xsd:string</code>. | ||||||||||
| </td> | ||||||||||
| </tr> | ||||||||||
| <tr> | ||||||||||
| <td><code>shui:labelPreference</code></td> | ||||||||||
| <td> | ||||||||||
| The label properties used to determine the labels to display in widgets and labels to represent nodes values in the widgets. | ||||||||||
| The value of <code>shui:labelPreference</code> 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). | ||||||||||
| </td> | ||||||||||
| </tr> | ||||||||||
| </tbody> | ||||||||||
| </table> | ||||||||||
| <aside class="example" title="Sample Instance Data"> | ||||||||||
| <div class="shapes-graph"> | ||||||||||
| <div class="turtle"> | ||||||||||
| ex:config a shui:Configuration ; | ||||||||||
| shui:defaultNamespace "<"http://example.com/ns#" ; | ||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I may be misreading, but it seems that this URI markup is broken. I think this fixes it.
Suggested change
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Something is wrong here, I think it should be:
Suggested change
|
||||||||||
| shui:languagePreference ("" "en" "de") ; | ||||||||||
| shui:timeZone "Europe/Vienna" ; | ||||||||||
| shui:labelPreference (skos:prefLabel, dcterms:title, rdfs:label) . | ||||||||||
| </div> | ||||||||||
| </div> | ||||||||||
| </p> | ||||||||||
| </section> | ||||||||||
|
|
||||||||||
| <p class="ednote">TODO: Describe the constraint collection/aggregation behaviour here for both Node and Property UI Component.</p> | ||||||||||
| </section> | ||||||||||
|
|
||||||||||
|
|
@@ -1376,7 +1452,7 @@ <h3>Language Resolution</h3> | |||||||||
| expressed is up to the implementation. Possible approaches include but are not limited to: | ||||||||||
| <ul> | ||||||||||
| <li>A UI feature that allows the user to select a preferred display language or languages priorities.</li> | ||||||||||
| <li>A predefined language configuration in the application settings.</li> | ||||||||||
| <li>A <a>global configuration</a> using the property <code>shui:languagePreference</code>.</li> | ||||||||||
| </ul> | ||||||||||
| </li> | ||||||||||
| <li> | ||||||||||
|
|
@@ -1454,6 +1530,14 @@ <h3>Label Resolution</h3> | |||||||||
| </li> | ||||||||||
| </ul> | ||||||||||
|
|
||||||||||
| <section id="label-property-resolution"> | ||||||||||
| <h4>Label Property Resolution</h4> | ||||||||||
| <p> | ||||||||||
| Label property resolution (i.e., determining the label properties for retrieving label values) is done according to the preferred property IRIs listed in the <a>global configuration</a> property <code>shui:labelPreference</code>. | ||||||||||
| Preferred labels default to <code>sh:name</code> for Property Labels and <code>rdfs:label</code> for Value Node Labels. | ||||||||||
| </p> | ||||||||||
| </section> | ||||||||||
|
|
||||||||||
| <section id="label-resolution-property-labels"> | ||||||||||
| <h4>Property Labels</h4> | ||||||||||
|
|
||||||||||
|
|
@@ -1465,25 +1549,24 @@ <h4>Property Labels</h4> | |||||||||
| <ol> | ||||||||||
| <li> | ||||||||||
| If the <a>property shape</a> has one or more values for the configured <a>property path</a> for | ||||||||||
| the property label resolution (defaulting to <code>sh:name</code>), select the best | ||||||||||
| matching value using <a>language resolution</a>. If a match is found, use that literal | ||||||||||
| as the label. | ||||||||||
| properties determined by <a>label property resolution</a>, select the best | ||||||||||
| matching value using <a>language resolution</a>. | ||||||||||
| If a match is found, use that literal as the label. | ||||||||||
| </li> | ||||||||||
| <li> | ||||||||||
| If <var>P</var> is a predicate IRI and the <a>data graph</a> | ||||||||||
| contains one or more <code>rdfs:label</code> triples with subject <var>P</var>, select | ||||||||||
| the best matching value using <a>language resolution</a>. If a match is found, use | ||||||||||
| that literal as the label. | ||||||||||
| contains one or more triples with properties determined by <a>label property resolution</a> and with subject <var>P</var>, select | ||||||||||
| the best matching value using <a>language resolution</a>. | ||||||||||
| If a match is found, use that literal as the label. | ||||||||||
| </li> | ||||||||||
| <li> | ||||||||||
| If <var>P</var> is a predicate IRI and the <a>shapes graph</a> | ||||||||||
| contains one or more <code>rdfs:label</code> triples with subject <var>P</var>, select | ||||||||||
| the best matching value using <a>language resolution</a>. If a match is found, use | ||||||||||
| that literal as the label. | ||||||||||
| contains one or more triples with properties determined by <a>label property resolution</a> and with subject <var>P</var>, select | ||||||||||
| the best matching value using <a>language resolution</a>. | ||||||||||
| If a match is found, use that literal as the label. | ||||||||||
| </li> | ||||||||||
| <li> | ||||||||||
| If <var>P</var> is a predicate IRI, use the | ||||||||||
| <a>local name resolution</a> of <var>P</var> as the label. | ||||||||||
| If <var>P</var> is a predicate IRI, use the <a>local name resolution</a> of <var>P</var> as the label. | ||||||||||
| </li> | ||||||||||
| <li> | ||||||||||
| Otherwise, an implementation-specific translation algorithm should be applied to convert the complex property path | ||||||||||
|
|
@@ -1508,19 +1591,20 @@ <h4>Value Node Labels</h4> | |||||||||
| whose <code>sh:path</code> is annotated with | ||||||||||
| <code>shui:propertyRole shui:LabelRole</code>, retrieve the values of that path from | ||||||||||
| the <a>data graph</a> for subject <var>V</var>. Select the best matching value using | ||||||||||
| <a>language resolution</a>. If a match is found, use that literal as the label. | ||||||||||
| <a>language resolution</a>. | ||||||||||
| If a match is found, use that literal as the label. | ||||||||||
| </li> | ||||||||||
| <li> | ||||||||||
| If the <a>data graph</a> contains one or more values for the configured property path for | ||||||||||
| the value node label resolution (defaulting to <code>rdfs:label</code>) for <var>V</var>, | ||||||||||
| select the best matching value using <a>language resolution</a>. If a match is found, use | ||||||||||
| that literal as the label. | ||||||||||
| the value node determined by <a>label property resolution</a> for <var>V</var>, | ||||||||||
| select the best matching value using <a>language resolution</a>. | ||||||||||
| If a match is found, use that literal as the label. | ||||||||||
| </li> | ||||||||||
| <li> | ||||||||||
| If the <a>shapes graph</a> contains one or more values for the configured property path for | ||||||||||
| the value node label resolution (defaulting to <code>rdfs:label</code>) for <var>V</var>, | ||||||||||
| select the best matching value using <a>language resolution</a>. If a match is found, use | ||||||||||
| that literal as the label. | ||||||||||
| the value node determined by <a>label property resolution</a> for <var>V</var>, | ||||||||||
| select the best matching value using <a>language resolution</a>. | ||||||||||
| If a match is found, use that literal as the label. | ||||||||||
| </li> | ||||||||||
| <li> | ||||||||||
| If <var>V</var> is an IRI, use the | ||||||||||
|
|
||||||||||
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI:
This is a link to SHACL 1.0 which does not have an id for
#global-configuration.(all the links in this area are also to SHACL 1.0 but, mostly, the target anchor fragment exists).