Additional Collections an ActivityPub Actor exposes beyond the standard inbox/outbox/followers/following — extension points for application-specific feeds.

An open-ended list of named or anonymous Collections — bookmarks, drafts, an alternate-channel outbox, anything the application needs. Clients SHOULD discover and label these from the Actor's published metadata; servers SHOULD treat them as fully addressable like the standard endpoints.

An Actor exposing custom streams


The street address of an Address — number, street name, unit.

vCard's street-address line. Note the hyphen in the source name is preserved. Pair with `urn:solid:locality`, `urn:solid:region`, `urn:solid:postal-code`, `urn:solid:country-name` on a `vcard:Address`. For a schema.org-flavored address, use `schema:streetAddress` on a `urn:solid:PostalAddress`.

Address with street


Asserts that one class is a subclass of another — instances of the subclass are also instances of the superclass.

Transitive: if A is a subclass of B and B of C, then A is a subclass of C. Reasoners use this to infer that a `urn:solid:Person` is also a `urn:solid:Agent`. A class may be a subclass of multiple parents (multiple inheritance is permitted in RDFS).

Person is a subclass of Agent


The parent Organization that this OrganizationalUnit is part of — the inverse of `hasSubOrganization`.

Inverse of `urn:solid:hasSubOrganization`. Use on a unit to point at its parent — useful for traversal up an org chart. Typically declared once (a unit has one parent), but ORG allows multiple parents for matrix structures.

Engineering team pointing at parent company


Asserts that one property is a refinement of another — every triple using the subproperty also (logically) holds with the superproperty.

urn:solid:Property urn:solid:subClassOf urn:solid:domain urn:solid:range

Transitive, like `subClassOf`. Reasoners use it to climb the property hierarchy — knowing `prov:wasRevisionOf` is a subproperty of `prov:wasDerivedFrom` lets a query for derivations also find revisions. Use to model specialised/general predicate pairs.

wasRevisionOf is a subproperty of wasDerivedFrom


A topic of the resource — typically expressed as keywords, key phrases, or controlled-vocabulary terms.

Use repeatedly to enumerate subjects. Values can be string keywords, but a SKOS Concept or controlled-vocabulary term is preferred for interoperability. For "the principal thing this document is about", `urn:solid:primaryTopic` is more specific.

Article tagged with subjects


A natural-language summary of the object — typically shorter than its `content`.

ActivityStreams' short-form digest — in Mastodon and other fediverse clients this is the content-warning / spoiler-text field. Pair with `urn:solid:content` for the full body. For long-form bibliographic abstracts, prefer `urn:solid:abstract`; for generic resource descriptions, `urn:solid:description`.

Note with a content-warning summary


Language-tagged variants of an ActivityStreams Object's `summary` — keys are BCP 47 language tags, values are the localised summary strings.

On the fediverse, `summary` is also used as the content warning / spoiler text — `summaryMap` lets that warning be translated alongside the post body. Pair with `contentMap` so the visible warning matches the language of the content the user will reveal.

A Note with localised content warning

Je n'arrive pas à croire ce qui vient de se passer…


A list of subunits of the resource — chapters, sections, parts.

Free-form text or list — typically a serialized TOC. For a structured part-of relation pointing at separate resources for each subunit, prefer `urn:solid:hasPart` (then each part has its own resource and metadata).

Book with a table of contents

Ch 1: Down the Rabbit-Hole; Ch 2: The Pool of Tears; Ch 3: A Caucus-Race; ...


An object that is part of the private secondary audience of the subject — typically a hashtag or @mention.

ActivityStreams' inline-mention slot — used by ActivityPub posts to attach `as:Hashtag` or `as:Mention` references that surface in the body. Repeat to list multiple tags. Distinct from `urn:solid:subject` (broader topical metadata) and `urn:solid:audience` (intended recipients).

Note tagging another actor


The target of the activity — the indirect object of the action.

Where `as:object` is the direct object of an Activity, `as:target` is the indirect object — the destination, recipient, or container. For `as:Add`, `as:Move`, `as:Remove`: the collection items are added to / moved into / removed from. For `as:Like`: rarely used (object is enough).

Add a note to a collection


A telephone number for the subject — typically as a plain string.

Schema.org's simple string-valued phone predicate ("+44-20-1234-5678"). Distinct from `urn:solid:hasTelephone` (vCard, uses a `tel:` URI for stricter parsing). Use whichever matches your data flavor.

Organization with a phone string


The temporal coverage of the resource — what time period it is about or applies to.

Distinct from `urn:solid:date`/`urn:solid:created` (when the resource was made) — `temporal` is the time period the resource is *about* (a 19th-century history dataset, a Q1-2026 financial report). Value is typically a `dcterms:PeriodOfTime` or an ISO 8601 interval string. Pair with `urn:solid:spatial`.

Dataset covering 2026 Q1


The minimum time between samples in a DCAT Dataset or Distribution — the granularity of the time axis.

Encoded as an `xsd:duration` (`PT1H` = hourly samples, `P1D` = daily, `PT15M` = 15-minute). Crucial when the same dataset is published at multiple cadences — clients pick the right Distribution based on the resolution they need, not just the format.

A dataset with hourly temporal resolution


The textual content of the resource — used by Comments, Answers, Questions, and other text-bearing schema.org types.

Schema.org's general-purpose text-body predicate. Distinct from `urn:solid:articleBody` (Article-specific) and `urn:solid:content` (ActivityStreams). Use on `urn:solid:Comment`, `urn:solid:Answer`, `urn:solid:Question`, or any schema.org type that bears prose.

Comment with text


A main category of a DCAT Dataset — typically a SKOS Concept from a controlled-vocabulary theme list.

Distinct from `urn:solid:keyword` (free-text tags): `dcat:theme` points at structured `urn:solid:Concept`s from a published theme vocabulary. The EU Data Theme vocabulary (`http://publications.europa.eu/resource/authority/data-theme/`) is the canonical example. The ConceptScheme is declared via `dcat:themeTaxonomy` on the parent Catalog.

Dataset with a theme


A thumbnail rendering of the image — a smaller version for previews.

Use on a full-size image to point at a smaller preview rendition. Both subject and object should be `urn:solid:Image`. For richer image-object metadata (width, height, content URL), schema:ImageObject + schema:thumbnail carry more fields.

Image with a thumbnail


A name given to the resource — the headline or short identifier.

Use for the headline of works (articles, bookmarks, documents, events). Both `dcterms:title` and `schema:name` map here — they are interchangeable in practice for these resource types. For people use `urn:solid:name`; for short labels in UI use `rdfs:label`.

Bookmark with a title


The primary recipients of the object — the wire-level "send to" addresses.

ActivityPub's primary delivery list — receivers in `to` are visible recipients and the activity is delivered to their inboxes. Use the symbolic IRI `https://www.w3.org/ns/activitystreams#Public` to make a post world-readable. For semantic targeting ("intended for friends"), use `urn:solid:audience` instead.

Public note


The SKOS ConceptScheme of which the Concept is a top-level entry-point — the inverse of `hasTopConcept`.

Inverse of `urn:solid:hasTopConcept`. Use on the Concept side when you want top-concept membership declared without editing the ConceptScheme. Implies `inScheme` membership for the same scheme.

Top concept declaring its scheme


A thing the document is about — the inverse of `page`.

A document can have many `topic`s with no implied primacy. Use `urn:solid:primaryTopic` when one topic is the principal subject (one per document). The inverse `urn:solid:page` goes from subject → document.

Document about two people


A thing the agent is interested in — points at the resource itself, not at a page about it.

Use when the interest target is itself a resource (a Person, Organization, Project, concept). For "a page about something I'm interested in", use `urn:solid:interest`. Note the underscore in the source name is preserved.

Person interested in a project


The total number of members in an ActivityStreams Collection — the size the client would see if all pages were concatenated.

urn:solid:Collection urn:solid:items urn:solid:first urn:solid:partOf

Authoritative count even when the Collection is paginated and only a subset of `items` is materialised in any given response. Drives "42 likes" / "123 followers" UI without forcing the client to walk the entire pagination chain.

Followers Collection summary


On a Solid pod owner's profile, an application origin granted broad trust — typically permitted to read or write across the pod without per-resource ACL grants.

A pre-WAC-AC pattern, still widely used: each `trustedApp` value carries `acl:origin` (the app's URL origin) and `acl:mode` (the modes granted). Solid CSS, NSS, and others honour this for app-level authorisation. Newer specs (ACP) supersede it but legacy pods still depend on it.

Profile granting an app Read+Write trust


Asserts that a resource is an instance of a class — the predicate behind JSON-LD's `@type` keyword.

The most-used predicate in all of RDF. JSON-LD authors usually write `@type: "Person"`; the underlying triple is `<subject> rdf:type urn:solid:Person`. A subject can have many types simultaneously (multi-typing is normal in RDF, unlike most class-based languages).

An instance of multiple classes


OWL class expression: defines a class as the union of a list of other classes — instances of the new class are instances of any one of the listed classes.

Logical OR across classes. Common use: declaring `rdfs:domain` or `rdfs:range` for a property that accepts multiple types — "this property's value is a Person OR an Organization." Value is an `rdf:List` of class IRIs.

Domain accepting either of two classes


The parent Organization that this OrganizationalUnit belongs to — inverse of `hasUnit`.

Sub-property of `urn:solid:subOrganizationOf` constrained to point at the parent of an OrganizationalUnit. Inverse of `urn:solid:hasUnit`. Functionally equivalent to `subOrganizationOf` for OrganizationalUnit subjects.

Engineering team pointing at parent


The unit of measurement for the linear dimensions of an ActivityStreams Place — `radius` and `altitude` are interpreted in this unit.

Standard values: `cm`, `feet`, `inches`, `km`, `m`, `miles`, or any custom URI. Default is metres when `units` is absent. Applies to `radius` and `altitude`; latitude/longitude are always degrees.

A Place in feet


The date and time the object was last updated.

ActivityStreams' last-edit timestamp. Functionally equivalent to `dcterms:modified` (`urn:solid:modified`), but stays in the AS namespace for ActivityPub-flavored data. ISO 8601 `xsd:dateTime`. Pair with `urn:solid:published` (first-published time).

Note with publication and update timestamps


An ActivityStreams Object's primary URL — the human-facing page where the Object can be viewed in a browser, distinct from its `@id` (the AP-facing identifier).

On Mastodon-style fediverse content, `@id` is `https://mastodon.example/users/alice/statuses/123` (server-to-server) while `as:url` is `https://mastodon.example/@alice/123` (the user-facing permalink). Clients render `url` to readers and use `@id` for federation. May be a string or an `as:Link` — the Link form lets you supply rel/type/hreflang.

A Note with a separate user-facing URL


An entity used by the activity — an input or dependency that existed before the activity started.

PROV's input pointer: the activity consumed or referenced the entity. Pair with `prov:wasGeneratedBy` on the output side to form a full input-activity-output chain. For typed usage with roles or timing, qualify with `prov:qualifiedUsage`.

Build used a source file


The date or period of validity of the resource — when it should be considered current and applicable.

Use for time-bounded resources — coupons, certificates, regulations, embargoed reports. Value is typically an ISO 8601 interval. Distinct from `urn:solid:available` (when it became obtainable) and `urn:solid:issued` (when it was published).

Discount coupon valid through Q2


The cryptographic key (or other verification material) the verifier should use to check a proof — typically a fragment of a DID Document.

urn:solid:proof urn:solid:DIDDocument urn:solid:authentication urn:solid:assertionMethod

Value is an IRI that dereferences to a verification method object — usually `<did>#<keyId>` in a DID Document. The verifier resolves the key, then uses it to validate the signature in the surrounding `proof`. Same property is reused by VC proofs and DID Document key registrations.

A proof referring to a verification method


The version designation of the resource — typically a string like "2.0" or "v3.1.4".

Schema.org's version-string predicate. Distinct from `urn:solid:hasVersion` (which points at *another resource* that's a version) and `urn:solid:isVersionOf` (the inverse). Use `version` for the bare string identifier of *this* resource's version.

Spec with a version string


Links a resource or RDF class to an ES module URL that renders it — the SolidOS data-browser pane convention.

Pane-discovery convention used by SolidOS / mashlib / LOSOS data browsers: a subject (resource or rdfs:Class) `view`s an ES module URL whose default export renders the subject. Lowercase property — distinct from `urn:solid:View` (the ActivityStreams 2.0 View activity class).

Register a renderer module for a class


An agent that had a role or responsibility in the activity — performed it, oversaw it, or was implicated in it.

PROV agent-to-Activity relation — distinct from `wasAttributedTo` (which links an Entity to its responsible Agent). Use `wasAssociatedWith` for who ran the build, who reviewed the change, who triggered the pipeline. Qualify via `prov:qualifiedAssociation` to add a role and a Plan.

Build associated with a software agent


An agent to which the entity is attributed — without claiming the agent performed any specific action.

PROV's lightweight "this is associated with that agent" relation — weaker than `prov:wasGeneratedBy` (which requires a specific Activity). For richer attribution with a role, qualify via `prov:qualifiedAttribution` and a `prov:Attribution` resource.

Document attributed to a person


An entity from which the subject entity was derived — a precursor or input.

Use to record the upstream entity a derived work descends from — translations, summaries, transformed datasets. Repeat to list multiple sources. For typed derivation (revision, quotation, primary-source), pair with `prov:qualifiedDerivation` and a `prov:Derivation` resource.

Translation derived from an original


An Entity that ended a PROV Activity — the signal, completion event, or termination input that caused the Activity to stop.

The mirror of `prov:wasStartedBy`. Use when termination has an identifiable trigger (a stop signal, a deadline document, a downstream consumer indicating completion). For plain wall-clock time, use `prov:endedAtTime`.

Build activity ended by a cancel signal


The PROV activity that generated the entity — the production event responsible for its existence.

PROV-grade pointer from an entity (the result) at the activity (the process). Pair with `prov:generatedAtTime` for the timestamp. For lighter-weight "this was created" semantics without a separate Activity resource, `urn:solid:created` (a date) is sufficient.

Document generated by a build run


The most general PROV influence relation — asserts that one Entity, Activity, or Agent had some effect on another, without specifying the kind of influence.

urn:solid:Influence urn:solid:wasDerivedFrom urn:solid:wasGeneratedBy urn:solid:used urn:solid:wasAssociatedWith

The supertype of every PROV influence link (`wasDerivedFrom`, `wasGeneratedBy`, `used`, `wasAssociatedWith`, `actedOnBehalfOf`, etc.). Use only when the kind of influence is unknown or deliberately unspecified — otherwise the more specific subproperty carries more meaning to consumers.

Generic influence between two entities


An activity exchanged information with the prior activity — without naming the entity that flowed between them.

PROV's lightweight "this activity follows that one" relation — used when you want to record temporal/causal ordering between activities without modelling the intermediate Entity. For full traceability, prefer chaining `urn:solid:used` and `urn:solid:wasGeneratedBy` through explicit Entities.

Build informed by previous test run


The PROV Activity that invalidated (deleted, retracted, expired) the Entity.

PROV's invalidation pointer — the inverse-in-time of `prov:wasGeneratedBy`. Records that an Entity ceased to exist at a particular Activity. Pair with `prov:invalidatedAtTime` for the timestamp. ActivityStreams' lighter equivalent for social data is `as:Tombstone`.

Document invalidated by a deletion


An Entity is a quotation, excerpt, or reproduction of part of another Entity — the source remains identifiable and authoritative.

A subproperty of `prov:wasDerivedFrom`. Use when content is *literally* lifted from the source (a pull-quote in an article, an excerpted paragraph, a re-shared image) rather than transformed. The source is generally expected to be cite-able and verifiable.

An article quoting a tweet


An Entity that this Entity is a revision of — same nominal identity, updated content (a v2 of a document, a re-issued dataset).

urn:solid:Entity urn:solid:wasDerivedFrom urn:solid:specializationOf urn:solid:alternateOf

A subproperty of `prov:wasDerivedFrom` — every revision is a derivation, but a revision specifically replaces the prior version while keeping the same name/role. Use for explicit version chains (v1 → v2 → v3); use plain `wasDerivedFrom` when the new entity is a transformation rather than an update.

v2 of a report


An Entity that started a PROV Activity — the trigger or input whose existence caused the Activity to begin.

urn:solid:Activity urn:solid:wasEndedBy urn:solid:wasInformedBy urn:solid:startedAtTime

Identifies the *triggering* Entity (a request, a sensor reading, a message). Not the agent who acted (`wasAssociatedWith`) and not an upstream activity that handed off (`wasInformedBy`). For wall-clock time, use `prov:startedAtTime`.

Build activity started by a webhook payload


A weblog (blog) of the subject — the document the agent publishes posts to.

Points at the blog as a whole, not at an individual post. An agent may have multiple weblogs (personal, work, project-specific). Use `urn:solid:homepage` for the main page about the agent rather than their writing feed.

Person with a weblog


The width in pixels of an ActivityStreams Object — typically an Image, Video, or Link to a visual resource.

urn:solid:height urn:solid:Image urn:solid:Video urn:solid:Link

In pixels, not CSS units. Always declare alongside `as:height` — both together let renderers compute aspect ratios and pre-reserve layout space, avoiding cumulative layout shift when media loads asynchronously.

A Video with explicit dimensions


A homepage of an organization the person works for.

FOAF's lightweight "I work at that place" pointer — the value is the employer's homepage URL, not a structured Organization resource. For richer employment metadata, prefer `urn:solid:worksFor` pointing at a `urn:solid:Organization`. Repeat for multiple workplaces.

Person with a workplace homepage


An organization the person currently works for.

Use for current employment relationships. For past employers, use `schema:alumniOf`. For looser group affiliations (clubs, mailing lists, project contributors), `urn:solid:member` is more apt — `worksFor` implies an employment-like commitment.

Person employed by an organization