WebID/Public ID confusion

Adding some comments from my side, but I think @joshuef has covered everything already

They are indeed a service like www or any other subdomain you publish in a public name. So regardless the way an app can allow you to do all this, this is what it really happens underneath at the data representation level:

  • You have a Public Name, this is just a way to be able to reference and find a piece of data on the network using a human readable name, human readable name which you then see in a URL. The Public Name is simply the hash of a XOR address.
  • What we store at the location of a Public Name it’s a container, the Public Name Container (we are trying to use RDF for the format of such a container), this container lists services, each of these services is assigned a name and mapped to the location where the service’s data is stored. Here, again, a service name is just so we can have a human readable way of referencing and linking a service. So the service name becomes the subdomain of the URL, e.g. if you add to your sascha public name container an entry for a service called nature, which is mapped to a location where all the website’s files are stored, you can then be able to find such a location for the website’s files with safe://nature.sascha.
  • A WebID Profile document (if we want to start being strict with names) is just a document, a file, like any other file you can store on the network. When you create a WebID Profile what you do is store a WebID Profile document at a random location, just like when you store files of a website at random locations on the network (it depends how you decide to store these documents they may not be really random locations, but let’s forget that for now). After you stored the WebID Profile document at a location on the network, you can opt for publishing it with a human readable URL by linking it from a public name and service name. E.g. if you decide to do so by publishing it at safe://mywebid.josh, you add an entry to the josh public name container, this entry has a mapping from service name mywebid to the location of the WebID Profile document. A WebID, strictly to what the spec states, will then have the # with any of the subgrapth you stored in the WebID Pofile document, e.g. safe://mywebid.josh#me.

Thus, since everything is a service, which is stored anywhere on the network, you can then decide to reference/link to them using human readable URLs, or you can use the content addressable system we are working on and reference to it with a simply XOR URL, so I could effectively have a WebID which is something like safe://hyfktcegr68th4og68y9eks99cie14qtw44zpmjdttqqujxr3bb5jnnip7r:16048#me

4 Likes