# Shape Trees - Editorial Session April 19th, 2021 ## Present - Justin B - Eric P ## Minutes ### Client / Server Operations JB: The document right now is really confusing because it mixes the roles between client and server, when instead it should clearly delineate client/server operations, and in non-normative text explain how a client could perform the server operations in (e.g.) a proxy-like scenario. RESOLVED: Documentation will break out client / server operations clearly. +1 JB, +1 EP ACTION: ericP to add introductory section explaining that the `server` can also be implemted as a proxy library per https://github.com/shapetrees/specification/issues/37#issuecomment-822364846. ### Initialization of Statics? JB: PLANT has a last step called "initialize static content". Looks at "st:contained" Shape Trees for static labels. PROPOSED: Shift the burden of initializing statics / creating any resources to the invoker of the plant operation (e.g. the client) - +1 JB, +1 EP ### Shape Tree Metadata on non Container Resources JB: I find it problematic that the spec doesn't support shape tree metadata on non-container resources. If a given non-container resource is managed by a shape tree, i should be able to discover that directly through metadata associated with the resource. PROPOSED: Store / associate shape tree metadata with non-container resources. +1 JB, +1 EP [documented by ericP in https://github.com/shapetrees/specification/issues/38#issuecomment-821800928] ### Shape Trees for Shape Validation JB: should folks use Shape Trees to say this node conforms to this shape? ... utility: if your server supports ShapeTrees, it gives you a protocol/syntax for applying shape validation. If it's not ShapeTrees, we need another syntax. ... engineering: ``` turtle [ st:node <#doc> ; st:shape <.../SomeShape> ; st:shapeTree <.../SomeShapeTree> ] ``` vs. without ShapeTrees (equivalent of [ShapeMap](https://shexspec.github.io/shape-map/)) ``` turtle [ st:node <#doc> ; st:shape <.../SomeShape> ] ``` ### Link Relation for Shape Tree Metadata EP: Issue with rel=https://shapetrees.org#ShapeTree as the link relation type, because it's not taking you to the shapetree ([example](https://shapetrees.org/TR/specification/#discover)), it's taking you to a metadata resource with one or more shape tree locator(s). PROPOSED: Change the link relation to something (like) https://shapetrees.org/#ShapeTreeLocator - current: ``` turtle <#shapetree> st:hasShapeTreeLocator <#bc1b490a-537d-4749-b778-cd7d6da3ac56> . <#bc1b490a-537d-4749-b778-cd7d6da3ac56> a st:ShapeTreeLocator ; st:hasRootShapeTree <http://commonnote.example/commonnote#container-tree> ; st:hasShapeTree <http://commonnote.example/commonnote#container-tree> ; st:hasShapeTreeInstanceRoot </data/CommonNotes/> . ``` proposed: `Link: <...#bc1b490a-537d-4749-b778-cd7d6da3ac56>; rel="http://shapetrees.org/#ShapeTreeLocator" ` ``` turtle <#bc1b490a-537d-4749-b778-cd7d6da3ac56> a st:ShapeTreeLocator ; st:location [ st:hasRootShapeTree <http://commonnote.example/commonnote#container-tree> ; st:hasShapeTree <http://commonnote.example/commonnote#container-tree> ; st:hasShapeTreeInstanceRoot </data/CommonNotes/> st:node <#doc> ; st:shape <.../SomeShape> ; ] ; . ``` ``` turtle <#bc1b490a-537d-4749-b778-cd7d6da3ac56> a st:ShapeTreeLocator ; st:location [ st:hasRootShapeTree <http://commonnote.example/commonnote#container-tree> ; st:hasShapeTree <http://commonnote.example/commonnote#container-tree> ; st:hasShapeTreeInstanceRoot </data/CommonNotes/> st:node <#doc> ; st:shape <.../SomeShape> ; ], [ st:hasRootShapeTree <http://commonnote.example/commonnote#container-tree> ; st:hasShapeTree <http://commonnote.example/commonnote#container-tree> ; st:hasShapeTreeInstanceRoot </data/CommonNotes/> st:node <#doc> ; # maybe another node? don't know why not. st:shape <.../AnotherShape> ; ] ; . ``` PROPOSED: Change the metadata structure to use st:ShapeTreeLocator and st:location(s). +1 EP, +1 JB PROPOSED: Store the focus node and shape in each st:location. +1 EP, +1 JB COMPLETED: https://github.com/shapetrees/specification/pull/43