Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
15c9074
feat(ui): add boolean select editor score
edmondchuc Dec 18, 2025
cfabe40
feat(ui): add auto-complete editor score
edmondchuc Dec 18, 2025
3f4efa4
chore(ui): rename ui shapes graphs
edmondchuc Dec 18, 2025
7509f3f
feat(ui): add blank node editor score
edmondchuc Dec 18, 2025
a26bc5a
feat(ui): add date picker editor score
edmondchuc Dec 18, 2025
0d8d558
feat(ui): add date time picker editor score
smessie Jan 5, 2026
e58645f
feat(ui): add details editor score
smessie Jan 5, 2026
1186abf
feat(ui): add enum select editor score
smessie Jan 5, 2026
17edf4a
feat(ui): add instances select editor score
smessie Jan 5, 2026
ca67694
feat(ui): add rich text editor score
smessie Jan 5, 2026
615fdb3
feat(ui): add sub class editor score
smessie Jan 5, 2026
9a53199
feat(ui): add text area editor score
smessie Jan 5, 2026
40ad98c
feat(ui): add text area with lang editor score
smessie Jan 5, 2026
7c8f820
feat(ui): add text field editor score
smessie Jan 5, 2026
fe5caa4
feat(ui): add text field with lang editor score
smessie Jan 5, 2026
479e08d
feat(ui): add uri editor score
smessie Jan 5, 2026
dd624ca
feat(ui): add blank node viewer score
smessie Jan 6, 2026
75ff04a
feat(ui): add details viewer score
smessie Jan 6, 2026
4c1a3c3
feat(ui): add HTML viewer score
smessie Jan 6, 2026
6e6c5ef
feat(ui): add hyperlink viewer score
smessie Jan 6, 2026
8157de5
feat(ui): add image viewer score
smessie Jan 6, 2026
2268690
feat(ui): add label viewer score
smessie Jan 6, 2026
5f6b986
feat(ui): add lang string viewer score
smessie Jan 6, 2026
5b1fd25
feat(ui): add literal viewer score
smessie Jan 6, 2026
9e0d78c
feat(ui): add uri viewer score
smessie Jan 6, 2026
3fe9915
feat(ui): add value table viewer score
smessie Jan 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 36 additions & 36 deletions shacl12-ui/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@
company: "KurrawongAI",
companyURL: "https://kurrawong.ai",
mailto: "edmond@kurrawong.ai",
url: "https://www.edmondchuc.com/",
w3cid: 163845,
},
{
Expand Down Expand Up @@ -997,7 +998,7 @@ <h4>shui:AutoCompleteEditor</h4>
<b>Score:</b>
<ul>
<li>1 if the value is an IRI.</li>
<li>0 otherwise.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand Down Expand Up @@ -1038,7 +1039,7 @@ <h4>shui:BlankNodeEditor</h4>
<b>Score:</b>
<ul>
<li>1 for blank nodes.</li>
<li>0 otherwise.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1053,8 +1054,8 @@ <h4>shui:BooleanSelectEditor</h4>
<b>Score:</b>
<ul>
<li>10 for <code>xsd:boolean</code> literals.</li>
<li>0 for non-literals and when there is a <code>sh:datatype</code> constraint.</li>
<li><code>null</code> for properties allowing literals without specifying a particular datatype.</li>
<li><s>0 for non-literals and when there is a <code>sh:datatype</code> constraint.</s></li>
<li>0 for properties allowing literals without specifying a particular datatype.</li>
</ul>
</p>
<p>
Expand All @@ -1077,7 +1078,7 @@ <h4>shui:DatePickerEditor</h4>
<ul>
<li>10 for <code>xsd:date</code> literals.</li>
<li>5 if the property has <code>sh:datatype xsd:date</code>.</li>
<li>0 otherwise.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1099,7 +1100,7 @@ <h4>shui:DateTimePickerEditor</h4>
<ul>
<li>10 for <code>xsd:dateTime</code> literals.</li>
<li>5 if the property has <code>sh:datatype xsd:dateTime</code>.</li>
<li>0 otherwise.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1119,8 +1120,8 @@ <h4>shui:DetailsEditor</h4>
<p>
<b>Score:</b>
<ul>
<li><code>null</code> for non-literals, i.e., it can be selected manually via <code>shui:editor</code>.</li>
<li>0 otherwise.</li>
<li>0 for non-literals, i.e., it can be selected manually via <code>shui:editor</code>.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand Down Expand Up @@ -1191,7 +1192,7 @@ <h4>shui:EnumSelectEditor</h4>
<b>Score:</b>
<ul>
<li>10 if there exists a <code>sh:in</code> constraint for the same property at the current focus node.</li>
<li>0 otherwise.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1211,8 +1212,8 @@ <h4>shui:InstancesSelectEditor</h4>
<p>
<b>Score:</b>
<ul>
<li><code>null</code> if there exists a <code>sh:class</code> for the property.</li>
<li>0 otherwise.</li>
<li><code>0</code> if there exists a <code>sh:class</code> for the property.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1234,7 +1235,7 @@ <h4>shui:RichTextEditor</h4>
<b>Score:</b>
<ul>
<li>10 for <code>rdf:HTML</code> literals.</li>
<li>0 otherwise.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1255,7 +1256,7 @@ <h4>shui:SubClassEditor</h4>
<p>
<b>Score:</b>
<ul>
<li><code>null</code>, i.e., this should be selected explicitly through a <code>shui:editor</code> statement.
<li><code>0</code>, i.e., this should be selected explicitly through a <code>shui:editor</code> statement.
However, this widget is typically only used if the property has a
<a href="https://datashapes.org/constraints.html#RootClassConstraintComponent"><code>dash:rootClass</code></a>
constraint, or (at minimum) only allows classes as values.
Expand All @@ -1281,12 +1282,12 @@ <h4>shui:TextAreaEditor</h4>
<p>
<b>Score:</b>
<ul>
<li>0 if the property is marked <code>sh:singleLine true</code>.</li>
<li>-1 if the property is marked <code>sh:singleLine true</code>.</li>
<li>20 if the value is an <code>xsd:string</code> literal and <code>sh:singleLine false</code>.</li>
<li>5 if the value is an <code>xsd:string</code> literal.</li>
<li>2 if the property has <code>xsd:string</code> among the permissible datatypes.</li>
<li><code>null</code> if the property has a custom datatype (not from xsd or rdf namespaces but for example <code>geo:wktLiteral</code>).</li>
<li>0 otherwise.</li>
<li><code>0</code> if the property has a custom datatype (not from xsd or rdf namespaces but for example <code>geo:wktLiteral</code>).</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1307,10 +1308,10 @@ <h4>shui:TextAreaWithLangEditor</h4>
<p>
<b>Score:</b>
<ul>
<li>0 if the property is marked <code>sh:singleLine true</code>.</li>
<li>-1 if the property is marked <code>sh:singleLine true</code>.</li>
<li>15 if the value is an <code>rdf:langString</code> literal and <code>sh:singleLine false</code>.</li>
<li>5 if the value is an <code>rdf:langString</code> literal or the property permits such values.</li>
<li>0 otherwise.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1332,7 +1333,7 @@ <h4>shui:TextFieldEditor</h4>
<b>Score:</b>
<ul>
<li>10 if the value is a literal that is neither <code>rdf:langString</code> nor <code>xsd:boolean</code>.</li>
<li>0 otherwise.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1354,7 +1355,7 @@ <h4>shui:TextFieldWithLangEditor</h4>
<ul>
<li>11 if the value is an <code>rdf:langString</code> literal or the property permits either <code>rdf:langString</code> or <code>xsd:string</code>.</li>
<li>5 if the property is not <code>sh:singleLine false</code> and permits <code>rdf:langString</code> values.</li>
<li>0 otherwise.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1376,8 +1377,8 @@ <h4>shui:URIEditor</h4>
<b>Score:</b>
<ul>
<li>10 if the value is an IRI node and the property has <code>sh:nodeKind sh:IRI</code> and no <code>sh:class</code> constraint.</li>
<li><code>null</code> if the value is an IRI node.</li>
<li>0 otherwise.</li>
<li><code>0</code> if the value is an IRI node.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand Down Expand Up @@ -1406,7 +1407,7 @@ <h4>shui:BlankNodeViewer</h4>
<b>Score:</b>
<ul>
<li>1 for blank nodes.</li>
<li>0 for all other nodes.</li>
<li><s>0 for all other nodes.</s></li>
</ul>
</p>
<p>
Expand All @@ -1422,8 +1423,7 @@ <h4>shui:DetailsViewer</h4>
<p>
<b>Score:</b>
<ul>
<li>0 for literals.</li>
<li><code>null</code> for IRIs and blank nodes.</li>
<li>0 for non-literals, i.e., it can be selected manually via <code>shui:Viewer</code>.</li>
</ul>
</p>
<p>
Expand All @@ -1439,7 +1439,7 @@ <h4>shui:HTMLViewer</h4>
<b>Score:</b>
<ul>
<li>50 for literals with datatype <code>rdf:HTML</code>.</li>
<li>0 for all other values.</li>
<li><s>0 for all other values.</s></li>
</ul>
</p>
<p>
Expand All @@ -1455,8 +1455,8 @@ <h4>shui:HyperlinkViewer</h4>
<b>Score:</b>
<ul>
<li>50 for literals with datatype <code>xsd:anyURI</code>.</li>
<li><code>null</code> for <code>xsd:string</code> literals.</li>
<li>0 for all other values.</li>
<li>0 for <code>xsd:string</code> literals.</li>
<li><s>0 for all other values.</s></li>
</ul>
</p>
<p>
Expand All @@ -1482,7 +1482,7 @@ <h4>shui:LabelViewer</h4>
<b>Score:</b>
<ul>
<li>5 if the value is an IRI.</li>
<li>0 otherwise.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1499,7 +1499,7 @@ <h4>shui:LangStringViewer</h4>
<b>Score:</b>
<ul>
<li>10 if the value is a literal of type <code>rdf:langString</code>.</li>
<li>0 otherwise.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1513,7 +1513,7 @@ <h4>shui:LiteralViewer</h4>
<b>Score:</b>
<ul>
<li>1 if the value is a literal.</li>
<li>0 otherwise.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1527,7 +1527,7 @@ <h4>shui:URIViewer</h4>
<b>Score:</b>
<ul>
<li>1 if the value is an IRI.</li>
<li>0 otherwise.</li>
<li><s>0 otherwise.</s></li>
</ul>
</p>
<p>
Expand All @@ -1544,7 +1544,7 @@ <h4>shui:ValueTableViewer</h4>
<p>
<b>Score:</b>
<ul>
<li><code>null</code>, i.e., this should be selected explicitly through a <code>shui:editor</code> statement.
<li>0, i.e., this should be selected explicitly through a <code>shui:viewer</code> statement.
</li>
</ul>
</p>
Expand Down Expand Up @@ -1628,12 +1628,12 @@ <h2>Property Roles</h2>
<h3>Direct Role Annotation</h3>

<p>
Property roles can be annotated on property shapes by using the <code></code>shui:propertyRole</code> predicate and linking directly to a property role instance.
Property roles can be annotated on property shapes by using the <code></code>shui:propertyRole</code> predicate and linking directly to a property role instance.
SHACL renderers may use such direct annotations to drive the way specific user-interface elements are displayed.
</p>

<p>
It is possible but not recommended to assign the same property role to multiple property shapes that apply to the same focus node using the direct role annotation form.
It is possible but not recommended to assign the same property role to multiple property shapes that apply to the same focus node using the direct role annotation form.
When this is done, the resulting behavior is undefined.
</p>

Expand All @@ -1652,7 +1652,7 @@ <h3>Direct Role Annotation</h3>
</div>
</div>
<p>
This example illustrates the common case where a property shape is directly annotated with <code>shui:LabelRole</code>.
This example illustrates the common case where a property shape is directly annotated with <code>shui:LabelRole</code>.
This informs user-interfaces that the shape's value nodes represent human-readable labels for resources.
</p>
</aside>
Expand Down
9 changes: 9 additions & 0 deletions shacl12-ui/widgets/editors/auto-complete-editor.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
PREFIX shui: <http://www.w3.org/ns/shacl-ui#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

shui:autoCompleteEditorScore1
a shui:WidgetScore ;
shui:dataGraphShape shui:isIRI ;
shui:score 1 ;
shui:widget shui:AutoCompleteEditor ;
.
9 changes: 9 additions & 0 deletions shacl12-ui/widgets/editors/blank-node-editor.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
PREFIX shui: <http://www.w3.org/ns/shacl-ui#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

shui:blankNodeEditorScore1
a shui:WidgetScore ;
shui:dataGraphShape shui:isBlankNode ;
shui:score 1 ;
shui:widget shui:BlankNodeEditor ;
.
16 changes: 16 additions & 0 deletions shacl12-ui/widgets/editors/boolean-select-editor.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
PREFIX shui: <http://www.w3.org/ns/shacl-ui#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

shui:booleanSelectEditorScore10
a shui:WidgetScore ;
shui:dataGraphShape shui:isBoolean ;
shui:score 10 ;
shui:widget shui:BooleanSelectEditor ;
.

shui:booleanSelectEditorScoreNull
a shui:WidgetScore ;
shui:score 0 ;
shui:shapesGraphShape shui:literalsAllowedAndNoDatatypeSpecified ;
shui:widget shui:BooleanSelectEditor ;
.
16 changes: 16 additions & 0 deletions shacl12-ui/widgets/editors/date-picker-editor.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
PREFIX shui: <http://www.w3.org/ns/shacl-ui#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

shui:datePickerEditorScore10
a shui:WidgetScore ;
shui:dataGraphShape shui:isDate ;
shui:score 10 ;
shui:widget shui:DatePickerEditor ;
.

shui:datePickerEditorScore5
a shui:WidgetScore ;
shui:score 5 ;
shui:shapeGraphShape shui:isDate ;
shui:widget shui:DatePickerEditor ;
.
16 changes: 16 additions & 0 deletions shacl12-ui/widgets/editors/date-time-picker-editor.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
PREFIX shui: <http://www.w3.org/ns/shacl-ui#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

shui:dateTimePickerEditorScore10
a shui:WidgetScore ;
shui:dataGraphShape shui:isDateTime ;
shui:score 10 ;
shui:widget shui:DateTimePickerEditor ;
.

shui:dateTimePickerEditorScore5
a shui:WidgetScore ;
shui:score 5 ;
shui:shapeGraphShape shui:isDateTime ;
shui:widget shui:DateTimePickerEditor ;
.
9 changes: 9 additions & 0 deletions shacl12-ui/widgets/editors/details-editor.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
PREFIX shui: <http://www.w3.org/ns/shacl-ui#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

shui:detailsEditorScore0
a shui:WidgetScore ;
shui:score 0 ;
shui:shapesGraphShape shui:isNotLiteral ;
shui:widget shui:DetailsEditor ;
.
9 changes: 9 additions & 0 deletions shacl12-ui/widgets/editors/enum-select-editor.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
PREFIX shui: <http://www.w3.org/ns/shacl-ui#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

shui:enumSelectEditorScore10
a shui:WidgetScore ;
shui:score 10 ;
shui:shapeGraphShape shui:hasInConstraint ;
shui:widget shui:EnumSelectEditor ;
.
9 changes: 9 additions & 0 deletions shacl12-ui/widgets/editors/instances-select-editor.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
PREFIX shui: <http://www.w3.org/ns/shacl-ui#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

shui:instancesSelectEditorScore0
a shui:WidgetScore ;
shui:score 0 ;
shui:shapeGraphShape shui:hasClassConstraint ;
shui:widget shui:InstancesSelectEditor ;
.
9 changes: 9 additions & 0 deletions shacl12-ui/widgets/editors/rich-text-editor.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
PREFIX shui: <http://www.w3.org/ns/shacl-ui#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

shui:richTextEditorScore10
a shui:WidgetScore ;
shui:dataGraphShape shui:isHTML ;
shui:score 10 ;
shui:widget shui:RichTextEditor ;
.
8 changes: 8 additions & 0 deletions shacl12-ui/widgets/editors/sub-class-editor.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
PREFIX shui: <http://www.w3.org/ns/shacl-ui#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

shui:subClassEditorScore0
a shui:WidgetScore ;
shui:score 0 ;
shui:widget shui:SubClassEditor ;
.
Loading