component-interop vocabulary

Namespace IRI: https://jeff-zucker.github.io/component-interop/ns# (prefix ci:). These terms describe component-interop loader manifests, which are valid JSON-LD 1.1 via the shared context context.jsonld. The machine-readable ontology is embedded in this page as application/ld+json.

Borrowed terms (not minted here; schema: is always http://schema.org/): schema:name names libraries, attributes, stages, capability keys, and attribute-pair names — exact-identifier semantics, narrower than schema.org's general label; schema:description a component's one-sentence user-facing description; schema:softwareHelp a component's USER online help page; schema:url, ui:label, ui:icon, schema:additionalProperty (http://www.w3.org/ns/ui#, documented in sol-components' data/ui-vocab.ttl) — a manifest entry is a ui:Component or a ui:Link, the same shapes menus and palettes use, with schema:additionalProperty values being schema:PropertyValue pairs; dct:conformsTo the SHACL shape a component's data conforms to; dct:references the data document(s) it reads/writes; rdfs:seeAlso (as the manifest key customElements) links a manifest to the library's custom-elements.json.

The manifest format's own SHACL shape: shapes/manifest.shaclc (compact syntax, canonical) / shapes/manifest.shacl.ttl (Turtle, for tooling). These define only the manifest envelope; the shared item shapes (ui:Component / ui:Link) live in sol-components' shapes/menu.shacl — validators load both files into one shapes graph, and an entry opts into item-level validation by carrying an explicit @type.

TermTypeDefinition
ci:ManifestClassA component-interop loader manifest: declares the components, capability attributes, staged module URLs, and shared-value wiring of one library.
ci:componentPropertyLinks a manifest (or a stage) to an entry it offers — a ui:Component whose schema:url module filename is the tag, plus optional display metadata (ui:label, ui:icon, schema:description, schema:additionalProperty defaults, dct:conformsTo, dct:references, schema:softwareHelp, ci:module), or a ui:Link (schema:url + ui:label — nothing to load). No formal range — a deliberate union; the shared shapes in sol-components' shapes/menu.shacl constrain each kind.
ci:sharedModulePropertyLinks a manifest (or a stage) to a dependency module mapped in the import map; the module node carries schema:name (its bare specifier).
ci:attributePropertyLinks a manifest to a data-* capability attribute declaration (schema:name + ci:module). Distinct from the custom-elements-manifest sense of a component's own attributes.
ci:stagePropertyLinks a manifest to a per-environment URL set (e.g. local, cdn).
ci:providesPropertyDeclares a shared value the library can supply (schema:name, ci:service, ci:respondTo, ci:sendValue, ci:priority).
ci:consumesPropertyDeclares a shared value the library can adopt (schema:name, ci:call, ci:from, ci:module).
ci:acceptsPropertyDeclares a value applied to an element's attribute (schema:name, ci:onElement, ci:applyValueTo, ci:transform).
ci:modulePropertyA module reference: the module resource itself (IRI) or an import-map specifier (string literal) the loader resolves. Deliberately dual — see the ontology comment; the SHACL shapes constrain it per context.
ci:servicePropertyRegistry service key a provider exposes the value from.
ci:respondToPropertyDOM event name(s) a provider answers with the value.
ci:sendValuePropertyDot-path into the event detail or service object the provided value is read from.
ci:priorityPropertyNumeric tiebreaker among multiple providers of one capability.
ci:callPropertyRegistered handler invoked with the consumed value.
ci:fromPropertyPreferred provider library name for a consumed value.
ci:onElementPropertyCSS selector of the element an accepted value applies to.
ci:applyValueToPropertyAttribute name the accepted value is written to.
ci:transformPropertyNamed transformation applied before the value is set (e.g. stripHash).