owned this note
owned this note
Published
Linked with GitHub
# Interop Flowchart
* of specific shape (eg. Project)
* all owned by specific agent (eg. ACME)
* all in specific registration, owned by specific agent (eg. ACME)
* specific instances, owned by specific agent (eg. ACME)
```mermaid
graph TB
ApplicationRegistration(Application Registration)
AccessReceipt(Access Receipt)
DataGrant(Data Grant)
ReferencedDataGrant(Referenced Data Grant)
RemoteDataGrant(Remote Data Grant)
ReferencedRemoteDataGrant(Referenced Remote Data Grant)
DataRegistration(Data Registration)
RemoteDataRegistration(Remote Data Registration)
RemoteAgentDataRegistration(Remote Agent Data Registration)
DataInstance(Data Instance)
ApplicationRegistration -- hasAccessReceipt --> AccessReceipt
AccessReceipt -- hasDataGrant --> DataGrant
AccessReceipt -- hasRemoteDataGrant --> RemoteDataGrant
DataGrant -- hasDataRegistration --> DataRegistration
DataGrant -- hasReferencedDataGRant --> ReferencedDataGrant
DataGrant -- hasDataInstance --> DataInstance
ReferencedDataGrant -- hasDataRegistration --> DataRegistration
ReferencedDataGrant -- hasDataGrant --> DataGrant
ReferencedDataGrant -- hasDataInstance --> DataInstance
RemoteDataGrant -- hasDataGrant --> DataGrant
RemoteDataGrant -- hasReferencedDataGrant --> ReferencedDataGrant
RemoteDataGrant -- hasReferencedRemoteDataGrant --> ReferencedRemoteDataGrant
RemoteDataGrant -- hasRemoteDataRegistration --> RemoteDataRegistration
RemoteDataGrant -- hasRemoteDataFromAgent --> RemoteAgentDataRegistration
ReferencedRemoteDataGrant -- hasDataGrant --> DataGrant
ReferencedRemoteDataGrant -- hasReferencedDataGrant --> ReferencedDataGrant
ReferencedRemoteDataGrant -- hasRemoteDataRegistration --> RemoteDataRegistration
ReferencedRemoteDataGrant -- hasRemoteDataGrant --> RemoteDataGrant
ReferencedRemoteDataGrant -- hasRemoteDataFromAgent --> RemoteAgentDataRegistration
RemoteDataRegistration -- hasRemoteAgentDataRegistration --> RemoteAgentDataRegistration
RemoteAgentDataRegistration -- hasDataRegistration --> DataRegistration
RemoteAgentDataRegistration -- satisfiesDataGrant --> DataGrant
RemoteAgentDataRegistration -- satisfiesDataGrant --> ReferencedDataGrant
DataRegistration -- ldp:contains --> DataInstance
```
```mermaid
graph TB
AccessReceipt([Access Receipt])
DataGrant([Data Grant - AllInstances])
subgraph alice.example
AccessReceipt -- :hasDataGrant --> DataGrant %%0
end
DataGrant -- :hasDataRegistration --> Projects %%1
Registry([Data Registry - Omni])
Projects([Data Registration - Omni Projects])
PX([Data Instance - PX])
PY([Data Instance - PY])
PZ([Data Instance - PZ])
subgraph omni.example
Registry -- :hasDataRegistration --> Projects %%2
Projects -- ldp:contains --> PX %%3
Projects -- ldp:contains --> PY %%4
Projects -- ldp:contains --> PZ %%5
end
%% granted
classDef granted fill:#D5E8D4,stroke:#82B366
class AccessReceipt,DataGrant granted
class Projects,PX,PY,PZ granted
linkStyle 0 stroke:#82B366
linkStyle 1 stroke:#82B366
linkStyle 2 stroke:gray
linkStyle 3 stroke:#82B366
linkStyle 4 stroke:#82B366
linkStyle 5 stroke:#82B366
%% unknown
classDef unknown fill:#F5F5F5,stroke:gray
class Registry unknown
```
```mermaid
graph TB
AccessReceipt([Access Receipt])
DataGrant([Data Grant - SelectedInstances])
subgraph alice.example
AccessReceipt -- :hasDataGrant --> DataGrant %%0
end
DataGrant -- :hasDataRegistration --> Projects %%1
DataGrant -- :hasDataInstance --> P1 %%2
DataGrant -- :hasDataInstance --> P3 %%3
Registry([Data Registry - Omni])
Projects([Data Registration - ACME Projects])
P1([Data Instance - P1])
P2([Data Instance - P2])
P3([Data Instance - P3])
subgraph acme.example
Registry -- :hasDataRegistration --> Projects %%4
Projects -- ldp:contains --> P1 %%5
Projects -- ldp:contains --> P2 %%6
Projects -- ldp:contains --> P3 %%7
end
%% granted
classDef granted fill:#D5E8D4,stroke:#82B366
class AccessReceipt,DataGrant,P1,P3 granted
linkStyle 0 stroke:#82B366
linkStyle 2 stroke:#82B366
linkStyle 3 stroke:#82B366
%% unknown
classDef unknown fill:#F5F5F5,stroke:gray
class Registry unknown
linkStyle 4 stroke:gray
%% denied
classDef denied fill:#F8CECC,stroke:#B85450
class Projects,P2 denied
linkStyle 1 stroke:#B85450
linkStyle 5 stroke:#B85450
linkStyle 6 stroke:#B85450
linkStyle 7 stroke:#B85450
```
```mermaid
graph TB
AccessReceipt([Access Receipt])
DataGrant([Data Grant - SelectedInstances])
ReferencedDataGrant([Referenced Data Grant - InheritSelected ])
subgraph alice.example
AccessReceipt -- :hasDataGrant --> DataGrant %%0
DataGrant -- :hasReferencedDataGrant --> ReferencedDataGrant %%1
end
DataGrant -- :hasDataRegistration --> Projects %%2
ReferencedDataGrant -- :hasDataRegistration --> Tasks %%3
DataGrant -- :hasDataInstance --> P1 %%4
DataGrant -- :hasDataInstance --> P3 %%5
Registry([Data Registry ACME])
Projects([Data Registration - ACME Projects])
Tasks([Data Registration - ACME TAsks])
P1([Data Instance - P1])
P2([Data Instance - P2])
P3([Data Instance - P3])
T1([Data Instance - T1])
T2([Data Instance - T2])
T3([Data Instance - T3])
T4([Data Instance - T4])
T5([Data Instance - T5])
subgraph acme.example
Registry -- :hasDataRegistration --> Projects %%6
Registry -- :hasDataRegistration --> Tasks %%7
Projects -- ldp:contains --> P1 %%8
Projects -- ldp:contains --> P2 %%9
Projects -- ldp:contains --> P3 %%10
P1 -- ex:hasTask --> T1 %%11
P1 -- ex:hasTask --> T2 %%12
P2 -- ex:hasTask --> T3 %%13
P2 -- ex:hasTask --> T4 %%14
P3 -- ex:hasTask --> T5 %%15
end
%% granted
classDef granted fill:#D5E8D4,stroke:#82B366
class AccessReceipt,DataGrant,ReferencedDataGrant granted
class P1,P3,T1,T2,T5 granted
linkStyle 0 stroke:#82B366
linkStyle 1 stroke:#82B366
linkStyle 4 stroke:#82B366
linkStyle 5 stroke:#82B366
linkStyle 11 stroke:#82B366
linkStyle 12 stroke:#82B366
linkStyle 15 stroke:#82B366
%% unknown
classDef unknown fill:#F5F5F5,stroke:gray
class Registry,P2,T3,T4 unknown
linkStyle 6 stroke:gray
linkStyle 7 stroke:gray
linkStyle 8 stroke:gray
linkStyle 9 stroke:gray
linkStyle 10 stroke:gray
linkStyle 13 stroke:gray
linkStyle 14 stroke:gray
%% denied
classDef denied fill:#F8CECC,stroke:#B85450
class Projects,Tasks denied
linkStyle 2 stroke:#B85450
linkStyle 3 stroke:#B85450
```
```mermaid
erDiagram
DataGrant }o--|{ DataInstance : hasDataInstance
DataGrant }o--|| DataRegistration : hasDataRegistration
DataRegistration |o--o{ DataInstance : "ldp:contains"
DataGrant {
scopeOfGrant SelectedInstances
}
```
```mermaid
erDiagram
DataGrant }o--|| DataRegistration : hasDataRegistration
DataGrant {
scopeOfGrant AllInstances
}
```
```mermaid
erDiagram
DataGrant }o--|{ DataInstance : hasDataInstance
DataGrant ||--o{ ReferencedDataGrant : hasReferencedDataGrant
DataGrant }o--|| DataRegistration : hasDataRegistration
ReferencedDataGrant }o--|| DataRegistration : hasDataRegistration
DataRegistration |o--o{ DataInstance : "ldp:contains"
DataGrant {
scopeOfGrant SelectedInstances
}
ReferencedDataGrant {
scopeOfGrant InheritInstances
}
```