2021-12-07 Agenda: https://hackmd.io/iVlburEVSRmhFxAtjtmAsw | Code of Conduct: https://github.com/solid/specification#code-of-conduct
github-actions[bot] on gh-pages
deploy: f6b422e59a082d1b3e3a577… (compare)
elf-pavlik on main
primer: updated some snippets … primer: updated names of scopes primer: updated some snippets … and 4 more (compare)
for anyone editing sequence diagrams and using vscode: https://marketplace.visualstudio.com/items?itemName=tomoyukim.vscode-mermaid-editor
main
and prune branches in the repo https://github.com/solid/data-interoperability-panel/branches
@justinwb @ericprud I've been looking at Data Grant and it's flavors Referenced Data Grant, Remote Data Grant, Referenced Remote Data Grant
As I understand it, depending on value of interop:scopeOfGrant
one of other properties is expected to be set on the Grant itself.
For example interop:scopeOfGrant interop:SelectedInstances ;
would require setting hasDataInstance
Now looking at shape
<#DataGrantShape> {
a [ interop:DataGrant ] ;
interop:hasAccessGrant @<#:AccessGrantShape> ;
interop:satisfiesAccessNeed @<#:AccessNeedShape> ;
interop:registeredShapeTree IRI ;
interop:hasDataRegistration IRI ;
interop:accessMode @<#:AccessModes>+ ;
interop:scopeOfGrant @<#:DataGrantScopes> ;
interop:hasDataInstance IRI* ;
interop:hasReferencedDataGrant @<#:ReferencedDataGrantShape>
}
zero or more hasDataInstance
are valid, no matter value of scopeOfGrant
Would it make sense to create more specific shapes (one per data grant scope), which would have stricter definitions? eg.
<#DataGrantShapeSelectedInstances> {
a [ interop:DataGrant ] ;
interop:hasAccessGrant @<#:AccessGrantShape> ;
interop:satisfiesAccessNeed @<#:AccessNeedShape> ;
interop:registeredShapeTree IRI ;
interop:hasDataRegistration IRI ;
interop:accessMode @<#:AccessModes>+ ;
interop:scopeOfGrant [ interop:SelectedInstances ] ;
interop:hasDataInstance IRI+ ;
interop:hasReferencedDataGrant @<#:ReferencedDataGrantShape>
}
etc.
interop:scopeOfGrant
.<#DataGrantForSelectedInstancesShape> {
a [ interop:DataGrantForSelectedInstances ] ;
interop:hasAccessGrant @<#:AccessGrantShape> ;
interop:satisfiesAccessNeed @<#:AccessNeedShape> ;
interop:registeredShapeTree IRI ;
interop:hasDataRegistration IRI ;
interop:accessMode @<#:AccessModes>+ ;
interop:hasDataInstance IRI+ ;
interop:hasReferencedDataGrant @<#:ReferencedDataGrantShape>
}
<#DataGrantForSelectedInstancesShape> {
a [ interop:DataGrantForSelectedInstances ] ;
interop:hasAccessGrant @<#:AccessGrantShape> ;
interop:satisfiesAccessNeed @<#:AccessNeedShape> ;
interop:registeredShapeTree IRI ;
interop:accessMode @<#:AccessModes>+ ;
interop:hasDataInstance IRI+ ;
interop:hasReferencedDataGrant @<#:ReferencedDataGrantShape>
}
ReferencedDataGrant
with scope AllInstances
for DataRegistration
xyz, rather thatn creating regular Data Grant
for xyz?ReferencedDataGrant
with scope InheritInstances
since it relies on which instances are selected in "parent" grant. Actually I don't see reason to use ReferencedDataGrant
in any other case other than with InheritInstances
.
@justinwb when someone would create
ReferencedDataGrant
with scopeAllInstances
forDataRegistration
xyz, rather thatn creating regularData Grant
for xyz?
I understandReferencedDataGrant
with scopeInheritInstances
since it relies on which instances are selected in "parent" grant. Actually I don't see reason to useReferencedDataGrant
in any other case other than withInheritInstances
.
@justinwb and :point_up:
st:references
in Shape Trees spec and it bubbled up from there.
@justinwb when someone would create
ReferencedDataGrant
with scopeAllInstances
forDataRegistration
xyz, rather thatn creating regularData Grant
for xyz?
I understandReferencedDataGrant
with scopeInheritInstances
since it relies on which instances are selected in "parent" grant. Actually I don't see reason to useReferencedDataGrant
in any other case other than withInheritInstances
.
InheritInstances is definitely the most important case, but even when presenting AllInstances, there’s a difference in how a root (e.g. project) grant and the behavior of types (like tasks) that inherit based on the root being selected.