Skip to content

Commit 723dd1f

Browse files
Fix specs
1 parent cddd453 commit 723dd1f

File tree

2 files changed

+2
-62
lines changed

2 files changed

+2
-62
lines changed

.github/workflows/Build-TREE-spec.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121

2222
# if your doc isn’t in the root folder,
2323
# or Bikeshed otherwise can’t find it:
24-
SOURCE: spec.bs
24+
SOURCE: 01-tree-specification.bs
2525

2626
# output filename defaults to your input
2727
# with .html extension instead,

spec.bs 01-tree-specification.bs

+1-61
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Abstract:
1919

2020
# Overview # {#overview}
2121

22-
<img src="https://docs.google.com/drawings/d/e/2PACX-1vTTCjBkBum1J4xgbg0oZJaD_H05dpZxhL6jrp1yzqoIsYw5EOa-7D24No_rfEyTipq1rLb-_tPTEYV0/pub?w=1093&amp;h=546" alt="An overview of the TREE specification with the TREE collection, a reference to the first focus node of its members, and the relations to other nodes from the current node."/>
22+
<img src="https://docs.google.com/drawings/d/e/2PACX-1vTTCjBkBum1J4xgbg0oZJaD_H05dpZxhL6jrp1yzqoIsYw5EOa-7D24No_rfEyTipq1rLb-_tPTEYV0/pub?w=1093&amp;h=546" alt="An overview of the TREE specification with the TREE collection, a reference to the first focus node of its members, and the relations to other nodes from the current node.">
2323

2424
The TREE specification introduces these core concepts:
2525
* a <code>tree:Collection</code> is a subclass of <code>dcat:Dataset</code> ([[!vocab-dcat-3]]). The specialization being that it is a DCAT dataset a collection of members. It typically has these properties when described in a node:
@@ -130,66 +130,6 @@ The latter uses the <code>sh:NodeShape</code> from the <code>tree:shape</code> p
130130

131131
Note: The way we process SHACL shapes into Shape Template is important to understand in order to know when an HTTP request will be triggered when designing SHACL shapes. A cardinality constraint not being exactly matched or a <code>sh:pattern</code> not being respected will not trigger an HTTP request, and instead just add the invalid quads to the Member. This is a design choice: we only define triggers for HTTP request from the SHACL shape to come to a complete set of quads describing the member the data publisher pointed at using <code>tree:member</code>.
132132

133-
# Discovery and source selection# {#hypermedia}
134-
135-
TREE tackles discovery and source selection on three levels: i) interface discovery, ii) view discovery, and iii) dataset discovery.
136-
Interface discovery discovers what collection the current page is part of, and discovers what the next possible HTTP requests are through relations and search forms.
137-
One dataset can have multiple views that can be published across different servers, selecting one for a certain use case is part of the view discovery.
138-
Dataset discovery is then selecting a <code>tree:Collection</code> of interest.
139-
140-
141-
## Interface discovery ## {#interface-discovery}
142-
143-
Interface discovery starts when a URL is provided to a specific <code>tree:Node</code>.
144-
A node from which all members of a collection can be discovered (an “entry node”), can be found through a triple stating <code>ex:C1 tree:view ex:N1</code> with <code>ex:C1</code> being a <code>tree:Collection</code> and <code>ex:N1</code> being a <code>tree:Node</code>.
145-
146-
When the current page is a <code>tree:Node</code>, there MUST be a property linking the current page URL to the URI of the <code>tree:Collection</code>. However, not from all <code>tree:Node</code>s all members can be reached, and therefore 2 other properties can be used: <code>void:subset</code>, or the inverse property, <code>dcterms:isPartOf</code>.
147-
148-
<code>ex:C1 tree:view <> .</code> links the current page to the <code>tree:Collection</code>.
149-
150-
We refer to next chapters for traversing across multiple relations, or for using search forms.
151-
152-
## View discovery ## {#multiple-views}
153-
154-
Todo: This will be reworked
155-
156-
Note: How a client picks the right view is use case specific. The <code>tree:ViewDescription</code>’s properties can help in that regards.
157-
158-
In order to prioritize a specific view link, the relations and search forms in the entry nodes can be studied for their relation types, path or remaining items.
159-
The class <code>tree:ViewDescription</code> indicates a specific TREE structure on a <code>tree:Collection</code>.
160-
Through the property <code>tree:viewDescription</code> a <code>tree:Node</code> can link to an entity that describes the view, and can be reused in data portals as the <code>dcat:DataService</code>.
161-
162-
<div class="example">
163-
```turtle
164-
## What can be found in a tree:Node
165-
ex:N1 a tree:Node ;
166-
tree:viewDescription ex:View1 .
167-
168-
ex:C1 a tree:Collection ;
169-
tree:view ex:N1 .
170-
171-
## What can be found on a data portal
172-
ex:C1 a dcat:Dataset .
173-
ex:View1 a tree:ViewDescription, dcat:DataService ;
174-
dcat:endpointURL ex:N1 ; # The entry point that can be advertised in a data portal
175-
dcat:servesDataset ex:C1 .
176-
```
177-
</div>
178-
179-
When there is no <code>tree:viewDescription</code> property in this page, a client either already discovered the description of this view in an earlier <code>tree:Node</code>, either the current <code>tree:Node</code> is implicitly the ViewDescription. Therefore, when the property path <code>tree:view → tree:viewDescription</code> does not yield a result, the view properties MUST be extracted from the object of the <code>tree:view</code> triple.
180-
A <code>tree:Node</code> can also be double typed as the <code>tree:ViewDescription</code>. A client must thus check for ViewDescriptions on both the current node without the <code>tree:viewDescription</code> qualification, as on the current node with the <code>tree:viewDescription</code> link.
181-
182-
183-
## Dataset discovery ## {#multiple-collections}
184-
185-
When multiple collections are found by a client, it can choose to prune the collections based on the <code>tree:shape</code> property.
186-
Therefore a data publisher SHOULD annotate a <code>tree:Collection</code> instance with a SHACL shape.
187-
The <code>tree:shape</code> points to a SHACL description of the shape (<code>sh:NodeShape</code>).
188-
189-
Note: the shape can be a blank node, or a named node on which you should follow your nose when it is defined at a different HTTP URL.
190-
191-
Note: For compatibility with the [Solid specifications](https://solidproject.org/TR/), a ShEx shape may also be given (see the chapter on compatibility bellow).
192-
193133
# The tree:Relations # {#relations}
194134

195135
The initial configuration of the <code>tree:Collection</code> and the description of the view is always provided when the view has been discovered, either in a separate document describing the view, either in the entry node itself. The configuration MUST be reused on any subsequent <code>tree:Node</code>.

0 commit comments

Comments
 (0)