--- tags: - Solid - ShEx --- # Editorial Review of Interoperability Data Model ## Present - Eric P - Justin B - elf Pavlik ## Minutes ### Reviewing interop.shex ```turtle <#DataConsentShape> <#DdataConsentAllShape> OR <#DataConsentAllFromAgentShape> OR <#DataConsentAllFromRegistryShape> # ... <#DataConsentShape999> { a [ interop:DataConsent ] ; interop:dataOwner IRI ; interop:registeredAgent IRI ; interop:registeredShapeTree IRI ; interop:satisfiesAccessNeed IRI? ; interop:accessMode @<#:AccessModes>+ ; interop:creatorAccessMode @<#:AccessModes>* ; interop:scopeOfConsent @<#:DataGrantScopes> ; interop:satisfiesAccessNeed IRI? ; ( interop:hasDataInstance IRI* | interop:hasDataResource IRI* ) ; interop:inheritsFromConsent IRI? } <#DataConsentAllShape> { a [ interop:DataConsent ] ; interop:registeredAgent IRI ; interop:registeredShapeTree IRI ; interop:satisfiesAccessNeed IRI? ; interop:accessMode @<#:AccessModes>+ ; interop:creatorAccessMode @<#:AccessModes>* ; interop:scopeOfConsent [ interop:All ] ; interop:satisfiesAccessNeed IRI? . } <#DataConsentAllFromAgentShape> { a [ interop:DataConsent ] ; interop:dataOwner IRI ; interop:registeredAgent IRI ; interop:registeredShapeTree IRI ; interop:satisfiesAccessNeed IRI? ; interop:accessMode @<#:AccessModes>+ ; interop:creatorAccessMode @<#:AccessModes>* ; interop:scopeOfConsent [ interop:AllFromAgent ] ; interop:satisfiesAccessNeed IRI? . } <#DataConsentAllFromRegistryShape> { a [ interop:DataConsent ] ; interop:dataOwner IRI ; interop:registeredAgent IRI ; interop:registeredShapeTree IRI ; interop:satisfiesAccessNeed IRI? ; interop:accessMode @<#:AccessModes>+ ; interop:creatorAccessMode @<#:AccessModes>* ; interop:scopeOfConsent [ interop:AllFromRegistry ] ; interop:hasDataRegistration IRI ; interop:satisfiesAccessNeed IRI? . } <#DataConsentSelectedFromRegistryShape> { a [ interop:DataConsent ] ; interop:dataOwner IRI ; interop:registeredAgent IRI ; interop:registeredShapeTree IRI ; interop:accessMode @<#:AccessModes>+ ; interop:creatorAccessMode @<#:AccessModes>* ; interop:scopeOfConsent [ interop:SelectedFromRegistry ] ; interop:hasDataRegistration IRI ; interop:hasDataInstance IRI+ ; interop:satisfiesAccessNeed IRI? . } <#DataConsentInheritedShape> { a [ interop:DataConsent ] ; interop:dataOwner IRI? ; interop:registeredAgent IRI ; interop:registeredShapeTree IRI ; interop:satisfiesAccessNeed IRI? ; interop:accessMode @<#:AccessModes>+ ; interop:creatorAccessMode @<#:AccessModes>* ; interop:scopeOfConsent [ interop:Inherited ] ; interop:hasDataRegistration IRI? ; interop:inheritsFromConsent IRI ; interop:satisfiesAccessNeed IRI? . } ``` ## Labeled Constraints: ```turtle # Data Registration <#ReusedTripleExpressions> { $<#CommonRegProps> ( interop:registeredBy IRI ; interop:registeredWith IRI ; interop:registeredAt xsd:dateTime ; interop:updatedAt xsd:dateTime ; ) $<#DataConsentProps> ( ) } <#DataRegistrationShape> { a [ interop:DataRegistration ] ; &<#CommonRegProps> ; interop:registeredShapeTree IRI ; interop:registeredType IRI* } ``` ```turtle # Application Registration <#ApplicationRegistrationShape> { a [ interop:ApplicationRegistration ] ; &<#CommonRegProps> ; interop:registeredAgent IRI ; interop:hasAccessGrant IRI ; } ``` ```turtle # Social Agent Registration <#SocialAgentRegistrationShape> { a [ interop:SocialAgentRegistration ] ; interop:registeredBy IRI ; interop:registeredWith IRI ; interop:registeredAt xsd:dateTime ; interop:updatedAt xsd:dateTime ; interop:registeredAgent IRI ; interop:hasAccessGrant IRI ; interop:reciprocalRegistration IRI? } ``` ## Use of "has" in properties vs. alternative casing