Version 3.4.0 · All versions

These are the docs as released with Solid Memo 3.4.0. Read the latest docs.

Standards

Every standard and specification Solid Memo uses, with its version, its status, a link to where it is published, and where the code uses it. A term you do not know is in the glossary. The rules the code follows beyond these formats, such as SM-2, are in policy.md.

Open means the specification is published for anyone to read and implement, free of charge and of royalties, with no single vendor deciding who may use it. Every specification below is open in that sense. Some are drafts or de facto specifications rather than formal standards; Drafts and de facto specifications says which, and why each one does not stand in the way of reuse.

Solid

StandardVersionStatusWhere usedOpen
Solid Protocol0.11.0W3C Solid Community Group draftReading and writing the pod: packages/solid/src/ through @inrupt/solid-client; the storage found by pim:storage (data-model.md)Yes (draft)
Solid-OIDC0.1.0W3C Solid Community Group draftLogin and session restore: solidSessionGateway.ts through @inrupt/solid-client-authn-browser (authentication.md)Yes (draft)
WebID and the Solid WebID ProfileWebID 1.0 (2014); Solid WebID Profile 1.0.0W3C Incubator Group editor's draft; W3C Solid Community Group draftThe user's identity and the profile the app reads the issuer, storage and type indexes from (authentication.md, onboarding.md, data-model.md)Yes (draft)
Type Indexes1.0.0Editor's draftFinding and registering an instance: typeIndex.ts (data-model.md)Yes (draft)
Web Access Control and Access Control PolicyWAC 1.0.0; ACP 0.9.0W3C Solid Community Group draftsMaking a published release public: solidReleasePublisher.ts, through @inrupt/solid-client's universal access, which speaks whichever the pod uses (boundaries.md)Yes (draft)
Linked Data Platform1.0W3C RecommendationContainers in the pod and in the guest's pod: localPod.ts (guest-mode.md)Yes

Linked data

StandardVersionStatusWhere usedOpen
RDF1.1W3C RecommendationAll data in the pod, the vocabulary, the shapes and the deck libraryYes
Turtle1.1W3C RecommendationEvery document Solid Memo writes, read and written with N3.js: packages/turtle/ (architecture.md)Yes
JSON-LD1.1W3C RecommendationA deck saved as a file (data-model.md, deckFile.ts); the site's description in apps/web/index.htmlYes
SPARQL 1.1 Update1.1W3C RecommendationAn edit to a document in the pod, sent as a PATCH of DELETE DATA and INSERT DATA blocks (datasets.ts), and accepted by the guest's pod (localPod.ts). The Solid Protocol's own patch format, N3 Patch, is not usedYes
RDF Schema1.1W3C RecommendationSolid Memo's vocabulary, ns/vocab/v1.ttl (vocab.md)Yes
OWL 22W3C RecommendationThe vocabulary's classes and properties, and owl:deprecated on a retired card (vocab.md)Yes
XML Schema datatypes1.1W3C RecommendationTyped literals (xsd:dateTime, xsd:integer, …)Yes
SHACL1.0 (W3C Recommendation, 2017)W3C RecommendationThe shapes in ns/shapes/, checked in the browser by rdf-validate-shacl and in CI by pySHACL (shapes.md, validation.md)Yes
DCAT3W3C RecommendationDecks, releases and the library's catalog (deck-library.md, releaseModel.ts)Yes
DCAT-AP3.0.1SEMIC (European Commission) specificationProfile validation of decks and the library, with the vendored shapes in packages/vocab/vendor/dcat-ap/3.0.1/ (validation.md)Yes
ADMS1.0W3C Working Group Noteadms:versionNotes on a release (deck-library.md)Yes
SKOS2009W3C RecommendationThe concept schemes in ns/vocab/ (vocab.md), checked with the vendored SkoHub shapesYes
PROV-O2013W3C RecommendationHow a release was made, and the sources it was derived from (deck-library.md, provenanceRules.ts)Yes
SPDX RDF terms2.3Linux Foundation specification (SPDX 2.2.1 is ISO/IEC 5962:2021)spdx:checksum with SHA-256 for the script a deck was made by, in its provenance (decks/swedish-labour-market-taxonomy-occupation-names/v2.ttl), checked by DCAT-AP's checksum shape; the spdx: prefix a release is written with (solidReleaseDraftRepository.ts)Yes
DCMI Metadata Terms2020DCMI Recommendation (ISO 15836-2)Titles, descriptions, creators, licenses and dates (dcterms:)Yes
FOAF0.99Specification by its authors, stable since 2014Agents: creators and the publisher (agentRecord.ts)Yes
vCard Ontology2014W3C Interest Group NoteA deck version's contact, a vcard:Kind with the project's issue tracker as its vcard:hasURL (deck-library.md), checked by deckLibrary.tsYes
schema.orgcurrent release, unpinned (releases)W3C Community Group vocabulary, de factoCourses, chapters, steps and wrong options (courses.md); the site's description in apps/web/index.htmlYes (de facto)
EU Vocabularies authority tablesas referenced in ns/vocab/external.ttlPublications Office of the European Union reference dataA deck's languages and its data theme EDUC (deck-library.md)Yes
IANA media typesregistryIANA registrydcat:mediaType of a deck's distributionYes

Text and languages

StandardVersionStatusWhere usedOpen
CommonMark0.31.2Specification by the CommonMark projectText in Markdown: packages/markdown/ (markdown.md)Yes
GitHub Flavored Markdown, pipe tables only0.29-gfmSpecification by GitHub, de factoTables in Markdown text, through micromark-extension-gfm-table (markdown.md)Yes (de facto)
markdown-cjk-friendlythrough micromark-extension-cjk-friendly ^2.0.2Proposed amendment to CommonMarkEmphasis next to Chinese, Japanese and Korean text (markdown.md)Yes (proposal)
BCP 47RFC 5646 and RFC 4647IETF Best Current PracticeLanguage tags on text, deck languages and the app's locales: languageTag.ts, locale.ts (vocab.md, i18n.md)Yes
Unicode CLDR plural rulesthe browser's CLDRUnicode ConsortiumPlural messages, through Intl.PluralRules (i18n.md, policy.md)Yes
ECMAScript Internationalization APIthe browser'sEcma International standard (ECMA-402)Plural rules, number and date formats: i18n.tsxYes
Unicode Normalization FormsUAX #15Unicode Standard AnnexText in normalization form C in the deck library and in search (deck-library.md)Yes
Unicode Bidirectional AlgorithmUAX #9Unicode Standard AnnexText written right to left keeps its own direction: isolated between U+2068 and U+2069 in a message (langText.ts), and by the style sheet (i18n.md)Yes
Unicode Text SegmentationUAX #29, the runtime'sUnicode Standard AnnexCharacters counted as grapheme clusters, through Intl.Segmenter, in the deck library's checks (deckLibrary.ts)Yes
Unicode Collation AlgorithmUTS #10, the browser'sUnicode Technical StandardSorting and comparing cards and decks, through Intl.Collator (cardQuery.ts, deckTable.ts)Yes
CSS Writing ModesLevel 4W3C Candidate Recommendationdirection and unicode-bidi: isolate for the right-to-left languages, under :lang() in style.css (i18n.md)Yes
CSVRFC 4180IETF RFC (Informational)The answers a learner downloads from the statistics: answerCsv.ts (statistics.md)Yes

The web

StandardVersionStatusWhere usedOpen
OpenID Connect Core and OAuth 2.01.0; RFC 6749OpenID Foundation final specification; IETF RFCUnder Solid-OIDC (authentication.md)Yes
DPoPRFC 9449IETF RFCUnder Solid-OIDC: tokens bound to the browser's keyYes
HTTP SemanticsRFC 9110IETF Internet StandardConditional writes to the pod and the guest's pod: If-Match the ETag read, If-None-Match: * to create (solidDeckRepository.ts, localPod.ts, migrations.md)Yes
Web LinkingRFC 8288IETF RFC (Proposed Standard)The Link header with rel="type" that finds the storage, walking up from the WebID (solidStorageGateway.ts, data-model.md)Yes
UUIDRFC 9562, version 4IETF RFC (Proposed Standard)The names of new decks and cards, deck-<uuid> and card-<uuid>, which end up in IRIs in the pod, and the guest's pod's ETags, through crypto.randomUUID() (solidDeckRepository.ts, appUseCases.ts)Yes
Content Security PolicyLevel 3W3C Working DraftThe policy meta tag in apps/web/index.html, checked by build.test.ts (markdown.md); and the docs' pages, whose policy docsSite.ts writes and checkPage holds them to (markdown.md)Yes
Media QueriesLevel 5W3C Working Draftprefers-color-scheme for the theme and prefers-reduced-motion for motion (theme.tsx, motion.ts, style.css)Yes
SVG1.1 (Second Edition)W3C RecommendationThe docs' diagrams, drawn by the build into docs/diagrams/ and held by checkSvg to what Mermaid writes (diagrams.ts, markdown.md)Yes
WOFF2.0W3C RecommendationThe app's self-hosted fonts (vendor-code.md), and Fredoka, embedded in each of the docs' diagrams (markdown.md)Yes
IndexedDB3.0W3C specificationThe guest's pod: indexedDbResourceStore.ts (guest-mode.md)Yes
Web StorageHTML Living StandardWHATWG standardChoices kept on the device (privacy.md)Yes
Web LocksW3C Working DraftW3C Working DraftKeeping tabs apart while the guest's pod is written or moved (guest-mode.md)Yes
Open Graph—De facto, published by MetaLink previews in apps/web/index.htmlYes (de facto)
Sitemaps0.9De facto, by the major search enginessitemap.xml, written by the build (siteMap.ts)Yes (de facto)
robots.txtRFC 9309IETF RFCrobots.txt, written by the build (siteMap.ts)Yes
WCAG2.2W3C RecommendationThe Studio's minimum target size and single-key shortcuts that can be turned off (studio.md)Yes

The app is built on the web platform as a whole: HTML, CSS, the DOM, Fetch and ECMAScript. The table lists a part of it only when the app's data or what the reader sees depends on it.

Licenses in deck metadata are named by their own IRIs, such as https://creativecommons.org/licenses/by/4.0/, typed dcterms:LicenseDocument (deck-library.md).

The project

StandardVersionStatusWhere usedOpen
REUSE3.3Specification by the Free Software Foundation EuropeEvery file's copyright and license, in its SPDX header or in REUSE.toml, checked by reuse lint in CI (style.md, testing.md)Yes
SPDX License Listcurrent release, unpinnedLinux Foundation reference dataLicense identifiers in the files' SPDX-License-Identifier headers and in LICENSES/; dcterms:license <https://spdx.org/licenses/MIT> on the topics scheme (vocab.md)Yes
publiccode.ymlpubliccodeYmlVersion: "0"Specification by Developers Italia, de factopubliccode.yml, checked by the publiccode.yml parser in CI (testing.md)Yes (de facto)
Citation File Format1.2.0Specification by its authors, de factoCITATION.cff, its version and date set by each release (releasing.md)Yes (de facto)
Semantic Versioning2.0.0Specification by its authors, de factoThe app's versions, from 1.0.0, each chosen by semantic-release from the commits' types (releasing.md)Yes (de facto)
Conventional Commits1.0.0Specification by its authors, de factoEvery commit message from version 1.0.0 on, checked by commitlint in CI (CONTRIBUTING.md)Yes (de facto)
Contributor Covenant2.1Code of conduct by its authors, de factoCODE_OF_CONDUCT.mdYes (de facto)
EditorConfig—De facto, by its authorsThe whitespace the repository is written in: .editorconfig (style.md)Yes (de facto)

Drafts and de facto specifications

These are not formal standards. Each one is published openly and may be implemented by anyone, free of charge, so none of them stands in the way of others working with Solid Memo's code or data.