Skip to content
This repository was archived by the owner on Apr 13, 2022. It is now read-only.

Commit d10808c

Browse files
author
Andrei
committed
Create data-discovery.md
1 parent cb17697 commit d10808c

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed

data-discovery.md

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
# Solid Discovery (Draft)
2+
3+
The following describes discovery in the Solid framework using HTTP link
4+
following aka "follow your nose".
5+
6+
### Starting point -- WebID
7+
8+
#### Fetching the Profile
9+
10+
The public profile is what you get when you look up someone's WebID directly.
11+
Strip off any hash and localid part. For example.
12+
13+
```
14+
https://example.databox.me/profile/card#me -> https://example.databox.me/profile/card
15+
```
16+
17+
The starting point of Solid discovery is a
18+
[WebID](http://www.w3.org/2005/Incubator/webid/spec/identity/) user profile,
19+
which is a hash based URI, typically denoting a (FOAF) Agent. From this profile
20+
all of your storage can be found (discovery). The Profile typically contains
21+
public name and contact information about someone, and pointers to public data
22+
used by various apps.
23+
24+
When an application dereferences the public profile, it should also fetch any
25+
* owl:sameAs
26+
* rdfs:seeAlso
27+
* space:preferencesFile
28+
links it finds in the public profile document. (one level deep)
29+
30+
31+
The preferencesFile is a private file that is linked from the main WebID profile, and
32+
contains miscellaneous data not in your public profile. In general, the same triples
33+
will be put in the public profile.
34+
35+
### Discoverability
36+
37+
Once a complete view of the profile has been created, applications will follow links
38+
to discover where relevant data is located, in order to read and write data there.
39+
40+
## Type registry configuration
41+
42+
The type registry is typically document that holds resources that register a specific
43+
resource type and map it to a location on the user's data space.
44+
45+
Note: The Type Registry is mainly intended as a Library discovery mechanism.
46+
Recommend that coarse-grained library types are registered (as opposed to every RDF Class written by an app)
47+
48+
A typical Solid account will have a private type index, where applications will register
49+
the top container type. For example, a contacts app will register the type `vcard:AddressBook`
50+
and the instance (or data location) as `/contacts/` in a new resource at `/settings/privateTypeIndex.ttl#ab09fd`.
51+
52+
If the user decides it wants to make public that she is using a certain application, it can indicate this
53+
by registering the same type in a public index document at `/settings/publicTypeIndex.ttl#19da01.
54+
55+
Both registry documents will be linked to from the user's main profile (and from it, the preferences file):
56+
57+
In the public profile:
58+
```
59+
<#me> space:TypeIndex </settings/publicTypeIndex.ttl>.
60+
```
61+
62+
In the preferencesFile:
63+
```
64+
<#me> space:TypeIndex </settings/privateTypeIndex.ttl>.
65+
```
66+
67+
The TypeIndex resource will contain things like:
68+
```
69+
<#r1> a solid:TypeRegistration;
70+
solid:forClass vcard:addressBook;
71+
solid:instance </contacts/book#this>.
72+
```
73+
74+
### By application
75+
76+
A list (public or private) of
77+
78+
```
79+
<#me> space:AppIndex <byType>.
80+
```
81+
82+
And then in there things like
83+
84+
```
85+
<#r5> a solid:AppRegistration;
86+
solid:forApp ghld:app-shedule
87+
solid:instanceIndex </polls/list.ttl>.
88+
```
89+
90+
and then in `/polls/list.ttl` things like
91+
92+
```
93+
<#i345> a solid:Instance;
94+
solid:forApp ghld:app-shedule;
95+
dc:created 2012-12-09;
96+
solid:instance </polls/list3/congig#this>;
97+
```
98+
99+
Alternative:
100+
101+
An app may register a defaultApp URI when creating a data container.
102+
When the user opens that container in the browser, a meshlib-like (thin)
103+
app can be loaded first, which in turns fetches the meta file.
104+
105+
106+
### Storage Discovery
107+
108+
#### Storage
109+
110+
* Starting Point: WebID
111+
* Type: [pim : storage](http://www.w3.org/ns/pim/space#storage)
112+
113+
For example, for a given WebID (https://example.databox.me/card#me),
114+
the corresponding storage location URI is https://example.databox.me/.
115+
116+
```
117+
<#me>
118+
space:storage <.> .
119+
<http://www.w3.org/ns/pim/space#storage> <../> ;
120+
```
121+
122+
#### App Configuration Workspace - OLD
123+
124+
* Starting Point: WebID or preferencesFile
125+
* Type: [pim : workspace](http://www.w3.org/ns/pim/space#workspace)
126+
127+
The app configuration workspace is a container of many different app
128+
configurations. It is also possible to use the "glob * " function, for
129+
convenience, to get all configurations of various apps that are in use.
130+
131+
#### App configuration Files
132+
133+
* Starting Point: App Configuration Workspace
134+
* Type: [pim : ConfigurationFile](http://www.w3.org/ns/pim/space#configurationFile)
135+
136+
App configuration files contain all information related to an app.
137+
138+
### Ontologies
139+
140+
* pim : http://www.w3.org/ns/pim/space#
141+
142+
### Illustration
143+
144+
![discovery illustration](assets/discovery.png "discovery illustration")

0 commit comments

Comments
 (0)