Structured Data

Structured data, in this context, refer to data structured as Things in SolidDatasets, where SolidDatasets are organized in Containers.

Things, SolidDataset, and Containers

Data is structured as properties of a Thing, where a Thing refers to a data entity. For example, if you want to save information about a course, you can have a Thing that represents a book for the course, and save various properties (such as name, author) for that book; the author itself can be another Thing with its own properties.

A Thing is saved as part of a SolidDataset, where a SolidDataset contains a set of Things. That is, you do not save a Thing independently from its SolidDataset.

You can organize SolidDatasets in a Container. A Container can contain SolidDatasets and other Resources, including other Containers. Containers are analogous to folders in a directory structure.

For example, in your Pod, you could have: a Container named fall2021/; fall2021/ contains another Container named courses/; courses/ contains a SolidDataset that corresponds to the course Writing101; and the Writing101 contains data about the Things (such as the books) for that course.

A Pod represented as a directory structure, containing a folder "profile" with a document "card", and a folder "fall2021", which in turn contains a folder "courses", which contains a document "Writing101". Alongside the directory structure, the "Writing101" document is also shown individually, containing separate areas labelled "#book1", "#book2" and "#otherThing".

URL as Identifiers

Each Container’s URL act as its unique identifier. A Container’s URL ends with a slash /.

Each SolidDataset’s URL act as its unique identifier. Its URL path consists of its containers and its name.

Each Thing’s URL act as its unique identifier. Typically, all Things in a SolidDataset have URLs relative to the SolidDataset’s URL. That is, a Thing’s URL generally is the SolidDataset’s URL appended with a # hash fragment.

For example, consider the following content in a Pod where the Pod URL is https://pod.inrupt.com/docsteam/:

A Pod represented as a directory structure, containing a folder "profile" with a document "card", and a folder "fall2021", which in turn contains a folder "courses", which contains a document "Writing101". Alongside the directory structure, the "Writing101" document is also shown individually, containing separate areas labelled "#book1", "#book2" and "#otherThing".
  • fall2021/, the Container, has the URL https://pod.inrupt.com/docsteam/fall2021/.

  • courses/, the Container, has the URL https://pod.inrupt.com/docsteam/fall2021/courses/.

  • Writing101, the SolidDataset, has the URL https://pod.inrupt.com/docsteam/fall2021/courses/Writing101.

  • The Things in Writing101 have URLs relative to its URL; e.g.,

    • https://pod.inrupt.com/docsteam/fall2021/courses/Writing101#book1

    • https://pod.inrupt.com/docsteam/fall2021/courses/Writing101#book2

    • https://pod.inrupt.com/docsteam/fall2021/courses/Writing101#otherThing

Inrupt Client Library

To read and write data to Pods, Inrupt provides the solid-client library.