Part of the WebMEM® Protocol
Fragment Class: IndexFragment
Location: /protocol/fragments/indexfragment/
Status: Current Draft
Last Updated: 2026-08-24
Overview
An IndexFragment is a WebMEM fragment class for publishing a scoped index or collection of related entities, identifiers, records, or other resolvable objects.
It is anchored to a defined entity or context—such as a geographic area, organization, product family, dataset, or collection—and identifies the members associated with that scope.
An IndexFragment may expose identifiers, canonical references, member attributes, counts, and resolution information needed to connect the index to more specific knowledge objects.
Unlike a DataFragment, which represents source-observed factual knowledge, or a DerivedStatsFragment, which represents calculated or aggregated knowledge, an IndexFragment represents membership and navigability within a defined information space.
It serves as a structured entry point from a broader context to the identifiable objects available within that context.
Semantic Purpose
The semantic purpose of an IndexFragment is to state:
Within this defined context, these are the identifiable objects that belong to or are available within the collection.
An IndexFragment establishes a machine-readable relationship between:
- the context or entity defining the collection;
- the members of that collection;
- the identifiers used to distinguish those members;
- and, where available, the paths by which those members can be resolved further.
This allows a publisher to expose not merely that a collection exists, but what is in it.
IndexFragment Within an SDT
An IndexFragment exists as one modular knowledge object within a Semantic Data Template (SDT).
The relationship is:
Web Resource → SDT → IndexFragment → Indexed Members
An SDT may contain one or more IndexFragments when the resource represents multiple collections or different classes of indexed objects.
For example, a geographic resource may contain:
- a
MetaFragmentestablishing geographic context; - a
DerivedStatsFragmentdescribing statistics about the available market; - and an
IndexFragmentidentifying the individual products or entities available within that market.
Each fragment serves a different semantic purpose while participating in the same page-level machine knowledge representation.
IndexFragment Requirements
A conforming IndexFragment should establish enough information to identify the collection, its scope, and its members.
| Element | Purpose |
|---|---|
| Fragment Class | Identifies the knowledge object as an IndexFragment. |
| Fragment ID | Provides a stable identifier for the index fragment within the published knowledge structure. |
| Entity or Context | Identifies the entity, location, organization, dataset, collection, or other scope defining the index. |
| Indexed Members | Identifies the entities, records, identifiers, or other objects belonging to the collection. |
| Member Identity | Provides sufficient identity information to distinguish indexed members from one another. |
| Source | Identifies the source supporting membership in the collection when the index is based on external source data. |
| Provenance | Connects the index or its members to source and lineage information supporting the published collection. |
Where the publisher knows how indexed members map to canonical resources, the IndexFragment may also expose resolution information.
Indexed Members
The members of an IndexFragment may represent many kinds of identifiable objects.
Examples include:
- product IDs;
- plan IDs;
- contract IDs;
- provider IDs;
- organization IDs;
- dataset records;
- geographic entities;
- documents;
- related resources;
- or other objects that can be distinguished within a defined collection.
An indexed member may be represented by a simple identifier when the identifier itself is sufficient, or by a structured member object when additional information is required.
Simple Identifier Index
A simple IndexFragment may expose a collection of stable identifiers.
<template
data-webmem-fragment
data-fragment-class="IndexFragment"
data-fragment-id="county-plan-index">
<section
data-entity-type="County"
data-entity-id="04015"
data-plan-year="2026"
data-provenance-ref="#provenance-cms-landscape">
<ul data-role="index">
<li data-entity-type="MedicarePlan"
data-entity-id="H5521-290-0">
H5521-290-0
</li>
<li data-entity-type="MedicarePlan"
data-entity-id="H2406-129-0">
H2406-129-0
</li>
<li data-entity-type="MedicarePlan"
data-entity-id="H3931-129-0">
H3931-129-0
</li>
</ul>
</section>
</template>
This fragment establishes that the three identified Medicare plans belong to the collection defined by the county and plan-year context.
Structured Member Index
Indexed members may include additional attributes when those attributes help identify, distinguish, contextualize, or resolve the members.
<template
data-webmem-fragment
data-fragment-class="IndexFragment"
data-fragment-id="county-plan-index">
<section
data-entity-type="County"
data-entity-id="04015"
data-plan-year="2026"
data-provenance-ref="#provenance-cms-landscape">
<ol data-role="index">
<li
data-entity-type="MedicarePlan"
data-entity-id="H5521-290-0">
<span data-role="name">
Example Medicare Advantage Plan
</span>
<data data-field="plan_type" value="PPO">PPO</data>
<a
data-role="canonical-resource"
href="/medicare-advantage/plans/H5521-290-0/">
H5521-290-0
</a>
</li>
<li
data-entity-type="MedicarePlan"
data-entity-id="H2406-129-0">
<span data-role="name">
Example Medicare HMO
</span>
<data data-field="plan_type" value="HMO">HMO</data>
<a
data-role="canonical-resource"
href="/medicare-advantage/plans/H2406-129-0/">
H2406-129-0
</a>
</li>
</ol>
</section>
</template>
The purpose of the additional attributes is not to turn the IndexFragment into a DataFragment for every member. The additional information exists to make the indexed objects identifiable, interpretable, or resolvable within the collection.
Index Membership and Identity
An IndexFragment expresses membership in a defined collection. It does not itself redefine the identity of the objects it contains.
Indexed members should therefore use stable identifiers whenever practical.
The same entity may appear in multiple indexes while retaining the same identity.
For example, a Medicare plan might appear in:
- a county availability index;
- a carrier-specific index;
- a contract-specific index;
- or another collection relevant to that plan.
The collection context changes. The underlying entity identity does not.
Read the Identity specification →
IndexFragment and Resolution
IndexFragments play an important role in the WebMEM Resolution Model because an index can connect a broad entity or context to the more specific objects available within it.
A machine may begin with a context such as:
- a county;
- a state;
- an organization;
- a contract;
- a product family;
- or another defined collection.
The IndexFragment can then expose the identifiable members associated with that context.
Where canonical resources for those members are known, the index may provide direct resolution paths.
Where member identifiers are composite or require transformation, the index may provide or reference resolution instructions describing how those identifiers map to canonical resources.
This makes the IndexFragment more than a list.
It can function as a machine-readable bridge between a collection and the objects that compose it.
Resolution Instructions
An IndexFragment may include resolution information when the publisher knows how indexed identifiers map to canonical resources.
For example, a composite identifier may contain multiple meaningful components:
H5521-290-0
If the publisher knows that this identifier consists of a contract ID, plan ID, and segment ID, that structure can be made explicit.
<div
data-role="resolver"
data-resolver-type="token-split"
data-pattern="-">
<meta
data-token="contract_id"
content="0">
<meta
data-token="plan_id"
content="1">
<meta
data-token="segment_id"
content="2">
<data data-role="navigation-template">
/medicare-advantage/plans/{contract_id}-{plan_id}-{segment_id}/
</data>
</div>
The index still performs its original semantic role: identifying the members of a collection.
The resolution instructions make explicit how those members can be traversed to more specific resources.
Read the WebMEM Resolution Model →
IndexFragment and Resolvers
An IndexFragment and a resolver are closely related but are not the same thing.
The IndexFragment answers:
What identifiable objects belong to this context or collection?
A resolver answers:
How can a machine move from the current context or identifier toward a more specific information object?
An IndexFragment may therefore provide the collection upon which a resolver operates, participate in a resolver, or contain resolution information appropriate to its indexed members.
The distinction preserves the semantic purpose of the IndexFragment while allowing indexes to participate directly in machine resolution.
Read the Resolver specification →
IndexFragment vs. DataFragment
| DataFragment | IndexFragment |
|---|---|
| Represents source-observed facts about an entity or context. | Represents the identifiable members of a defined collection or context. |
| Answers: What facts are known about this object? | Answers: What objects belong here? |
| Example: a plan’s monthly premium is $35. | Example: this plan ID is one of the plans available in this county. |
| Primarily expresses factual attributes. | Primarily expresses membership, identity, and navigability. |
IndexFragment vs. DerivedStatsFragment
| DerivedStatsFragment | IndexFragment |
|---|---|
| Represents calculated facts about a collection or context. | Represents the members of the collection or context. |
| Answers: What can be calculated about this collection? | Answers: What is in this collection? |
| Example: 42 Medicare Advantage plans are available in the county. | Example: these are the 42 Medicare Advantage plan IDs available in the county. |
| Publishes aggregates, averages, percentages, counts, distributions, or other derived metrics. | Publishes identifiers, entities, records, canonical references, or other indexed members. |
The two fragment classes frequently complement each other within the same SDT.
Provenance
An IndexFragment should preserve the evidentiary basis for membership in the collection when that membership is derived from an external source.
Provenance may identify:
- the source dataset or datasets;
- the source creator or publisher;
- the canonical source location;
- an archive or source-file location;
- publication or effective dates;
- retrieval or import dates;
- source version information;
- source format;
- checksum or integrity information;
- and other lineage information required to establish why the indexed objects belong to the collection.
When all indexed members share the same source basis, provenance may be established at the fragment level.
When members originate from different sources, more specific provenance relationships may be used.
Read the Provenance specification →
Conformance
A conforming IndexFragment must:
- identify itself as an
IndexFragment; - have an identifiable fragment scope;
- identify the entity, collection, or context defining the index;
- contain one or more identifiable indexed members;
- provide sufficient identity information to distinguish those members;
- identify or reference provenance when membership is based on external source data;
- and conform to the applicable WebMEM serialization requirements.
When resolution information is included, it must preserve the distinction between the indexed identifier and the canonical resource or object to which that identifier resolves.
Relationship to WebMEM 1.x
The IndexFragment class originated in the WebMEM 1.x Semantic Data Template specification and remains a defined fragment class in the current WebMEM Protocol.
The original IndexFragment established a scoped listing or navigational index of related entities within a dataset. That semantic purpose remains unchanged.
The current protocol extends the role of the IndexFragment by explicitly recognizing its importance to machine resolution.
An IndexFragment can now expose not only which objects belong to a collection, but also the identifiers, canonical references, and resolution information that allow machines to traverse from the collection toward those objects.
The class has not changed purpose. The resolution model makes the navigational function that was already present in IndexFragment explicit.