@@ -8,6 +8,77 @@ When a given [=Agent=] is the subject of an [=Access Authorization=],
88an [=Access Grant=] is generated and [[#ar-hierarchy|stored]]
99in the [=Agent Registration=] for that [=Agent=] .
1010
11+ ## Application Registration ## {#application-registration}
12+
13+ An <dfn>Application Registration</dfn> provides the [=Social Agent=]
14+ with a place to maintain metadata, state, preferences, and
15+ other application-specific data associated with a given [=Application=] they
16+ have elected to use.
17+
18+ [=Application Registrations=] are stored in an [=Agent Registry=] .
19+
20+ [Class Definition] (interop.ttl#ApplicationRegistration) -
21+ [Shape Definition] (interop.shex#ApplicationRegistrationShape) -
22+ [Shape Tree Definition] (interop.tree#ApplicationRegistrationTree)
23+
24+ <table class="classinfo data" align="left" id="classApplicationRegistration">
25+ <colgroup></colgroup>
26+ <colgroup></colgroup>
27+ <colgroup></colgroup>
28+ <thead>
29+ <tr>
30+ <th> Property</th>
31+ <th> Range</th>
32+ <th> Description</th>
33+ </tr>
34+ </thead>
35+ <tbody>
36+ <tr>
37+ <td> registeredBy</td>
38+ <td> [SocialAgent] (#classSocialAgent)</td>
39+ <td> [=Social Agent=] that registered the [=Application Registration=] </td>
40+ </tr>
41+ <tr>
42+ <td> registeredWith</td>
43+ <td> [Application] (#classApplication)</td>
44+ <td> [=Application=] used to create the [=Application Registration=] </td>
45+ </tr>
46+ <tr>
47+ <td> registeredAt</td>
48+ <td> xsd:dateTime</td>
49+ <td> Date and time the [=Application Registration=] was created</td>
50+ </tr>
51+ <tr>
52+ <td> updatedAt</td>
53+ <td> xsd:dateTime</td>
54+ <td> Date and time the [=Application Registration=] was updated</td>
55+ </tr>
56+ <tr>
57+ <td> registeredAgent</td>
58+ <td> [Application] (#classApplication)</td>
59+ <td> The [=Application=] that was registered</td>
60+ </tr>
61+ <tr>
62+ <td> hasAccessGrant</td>
63+ <td> [AccessGrant] (#classAccessGrant)</td>
64+ <td> Links to an [=Access Grant=] describing the access that has been
65+ granted to the `registeredAgent`</td>
66+ </tr>
67+ </tbody>
68+ </table>
69+
70+ <figure>
71+ <figcaption> Alice's [=Application Registration=] for Projectron at
72+ https://alice.pod.example/agents/2f2f3628/ -
73+ <a href="snippets/alice.example/2f2f3628.ttl">View</a> </figcaption>
74+ <pre class=include-code>
75+ path: snippets/alice.example/2f2f3628.ttl
76+ highlight: turtle
77+ show: 11-18
78+ </pre>
79+ </figure>
80+
81+
1182## Social Agent Registration ## {#social-agent-registration}
1283
1384A <dfn>Social Agent Registration</dfn> provides the [=Social Agent=]
@@ -69,6 +140,16 @@ interact with.
69140 <td> Links to an [=Access Grant=] describing the access that has been
70141 granted to the `registeredAgent`</td>
71142 </tr>
143+ <tr>
144+ <td> skos:prefLabel</td>
145+ <td> xsd:string</td>
146+ <td> Human readable label assigned by the user creating the registration</td>
147+ </tr>
148+ <tr>
149+ <td> skos:note</td>
150+ <td> xsd:string</td>
151+ <td> Optional note which can further help with recognising the agent</td>
152+ </tr>
72153 </tbody>
73154</table>
74155
@@ -84,20 +165,18 @@ interact with.
84165 </pre>
85166</figure>
86167
87- ## Application Registration ## {#application-registration }
168+ ## Social Agent Invitation ## {#social-agent-invitation }
88169
89- An <dfn>Application Registration</dfn> provides the [=Social Agent=]
90- with a place to maintain metadata, state, preferences, and
91- other application-specific data associated with a given [=Application=] they
92- have elected to use.
170+ A <dfn>Social Agent Invitation</dfn> provides the [=Social Agent=]
171+ with a simple and secure way to establish data sharing with other [=Social Agents=] .
93172
94- [=Application Registrations =] are stored in an [=Agent Registry=] .
173+ [=Social Agent Invitations =] are stored in an [=Agent Registry=] .
95174
96- [Class Definition] (interop.ttl#ApplicationRegistration ) -
97- [Shape Definition] (interop.shex#ApplicationRegistrationShape ) -
98- [Shape Tree Definition] (interop.tree#ApplicationRegistrationTree )
175+ [Class Definition] (interop.ttl#SocialAgentInvitation ) -
176+ [Shape Definition] (interop.shex#SocialAgentInvitationShape ) -
177+ [Shape Tree Definition] (interop.tree#SocialAgentInvitationTree )
99178
100- <table class="classinfo data" align="left" id="classApplicationRegistration ">
179+ <table class="classinfo data" align="left" id="classSocialAgentInvitation ">
101180 <colgroup></colgroup>
102181 <colgroup></colgroup>
103182 <colgroup></colgroup>
@@ -112,48 +191,67 @@ have elected to use.
112191 <tr>
113192 <td> registeredBy</td>
114193 <td> [SocialAgent] (#classSocialAgent)</td>
115- <td> [=Social Agent=] that registered the [=Application Registration =] </td>
194+ <td> [=Social Agent=] that registered the [=Social Agent Invitation =] </td>
116195 </tr>
117196 <tr>
118197 <td> registeredWith</td>
119198 <td> [Application] (#classApplication)</td>
120- <td> [=Application=] used to create the [=Application Registration =] </td>
199+ <td> [=Application=] used to create the [=Social Agent Invitation =] </td>
121200 </tr>
122201 <tr>
123202 <td> registeredAt</td>
124203 <td> xsd:dateTime</td>
125- <td> Date and time the [=Application Registration =] was created</td>
204+ <td> Date and time the [=Social Agent Invitation =] was created</td>
126205 </tr>
127206 <tr>
128207 <td> updatedAt</td>
129208 <td> xsd:dateTime</td>
130- <td> Date and time the [=Application Registration =] was updated</td>
209+ <td> Date and time the [=Social Agent Invitation =] was updated</td>
131210 </tr>
132211 <tr>
133- <td> registeredAgent </td>
134- <td> [Application] (#classApplication) </td>
135- <td> The [=Application=] that was registered </td>
212+ <td> capabilityUrl </td>
213+ <td> [[!capability-urls|Capability URL]] </td>
214+ <td> Secure link used to accept the invitation </td>
136215 </tr>
137216 <tr>
138- <td> hasAccessGrant</td>
139- <td> [AccessGrant] (#classAccessGrant)</td>
140- <td> Links to an [=Access Grant=] describing the access that has been
141- granted to the `registeredAgent`</td>
217+ <td> skos:prefLabel</td>
218+ <td> xsd:string</td>
219+ <td> Human readable label assigned by the user creating the invitation</td>
220+ </tr>
221+ <tr>
222+ <td> skos:note</td>
223+ <td> xsd:string</td>
224+ <td> Optional note which can further help with understanding who is being invited</td>
142225 </tr>
143226 </tbody>
144227</table>
145228
146229<figure>
147- <figcaption> Alice's [=Application Registration=] for Projectron at
148- https://alice.pod.example/agents/2f2f3628/ -
149- <a href="snippets/alice.example/2f2f3628.ttl">View</a> </figcaption>
230+ <figcaption> Alice's [=Social Agent Invitation=] for Yori at
231+ https://alice.pod.example/agents/a1umr5yx/ -
232+ <a href="snippets/alice.example/a1umr5yx.ttl">View</a>
233+ </figcaption>
150234 <pre class=include-code>
151- path: snippets/alice.example/2f2f3628 .ttl
235+ path: snippets/alice.example/a1umr5yx .ttl
152236 highlight: turtle
153- show: 11-18
237+ show: 14-99
154238 </pre>
155239</figure>
156240
241+ [=Authorization Agent=] accepting an authenticated request, targeting the `capabilityUrl`
242+ from a [=Social Agent Invitation=]
243+ * MUST respond with the [[!WEBID]] of the [=Social Agent=] who created the [=Social Agent Invitation=] , using `Content-Type: text/plain`
244+ * MUST use the identity of the [=Social Agent=] , from the incoming request,
245+ as the `registeredAgent` for newly created [=Social Agent Registration=] .
246+ * SHOULD use the `skos:prefLabel` from the [=Social Agent Invitation=] for the new [=Social Agent Registration=] .
247+ * SHOULD use the `skos:note` from the [=Social Agent Invitation=] for the new [=Social Agent Registration=] .
248+ * SHOULD schedule [[#agent-registration-discovery]] on the `registeredAgent` from the new [=Social Agent Registration=] .
249+ After the successful discovery, add it as `reciprocalRegistration`
250+
251+ Note: Commonly the [=Authorization Agent=] , making the request on behalf of the [=Social Agent=] accepting the invitation,
252+ will create corresponding [=Social Agent Registration=] after receiving the [[!WEBID]] in the response,
253+ which means that it is not available before receiving the response.
254+
157255## Agent Registry ## {#ar-registry}
158256
159257An <dfn>Agent Registry</dfn> is a collection of <dfn>Agent Registrations</dfn> .
0 commit comments