Wiki · iiRDS core concepts · Versions, files and selectors
iiRDS Selector: FragmentSelector and RangeSelector for parts of files
Not every piece of content has its own file. Chapters sit inside large PDF manuals, warnings inside HTML pages, and instructions inside a long audio track. iiRDS addresses these parts with selectors: pointers attached to a rendition that narrow it from the whole file to one location or range. This guide explains the abstract iiRDS Selector class and its two usable subclasses, FragmentSelector and RangeSelector, the rule that every selector names the standard its value follows, and which fragment identifier standards apply to PDF, XML, HTML and media. It shows how selectors make legacy PDFs granular without splitting them, why iiRDS/H does not allow them, and how precise anchors help AI assistants cite exact pages.
Valid for iiRDS 1.3Last reviewed Level: Advanced
- Technical documentation
- Machinery
- MedTech
- AI retrieval
Definition
In iiRDS (intelligent information Request and Delivery Standard), a Selector points to a part of a file, so that an information unit can refer to a section of a rendition instead of the whole file. Selector itself is abstract: a rendition must use one of its subclasses, FragmentSelector or RangeSelector.
A rendition names a whole file. When an information unit covers only part of that file, the rendition gets a selector through iirds:has-selector. The specification forbids using iirds:Selector directly; one of two subclasses is required.
A FragmentSelector selects by a single identifier in rdf:value, interpreted according to the standard named in dcterms:conformsTo — page=12 under the PDF media type, an XPointer expression under the XML media type, or t=90,210 under W3C Media Fragments. Only standards from the fragment selector list of the W3C Web Annotation Data Model may be used. Where the standard itself allows ranges, a single fragment identifier can already select one.
A RangeSelector must be used when the format cannot express a range directly. It links a start and an end FragmentSelector with iirds:has-start-selector and iirds:has-end-selector.
In one sentence
An iiRDS Selector is a pointer from a rendition into its file, expressed as a FragmentSelector for one identifier or a RangeSelector for a start and an end.
Example
A machine builder holds a 180-page PDF operating manual for a CNC lathe, released years ago and not scheduled for rewriting. To make it useful in the service portal, the team defines three topics: "Lockout before maintenance" (pages 22 to 24), "Changing the chuck jaws" (pages 61 to 66) and "Alarm list" (pages 140 to 158). Each topic has a rendition pointing to the same PDF file, narrowed by a RangeSelector with page= start and end values. Each topic carries its own lifecycle phase and audience metadata. The PDF is not altered, and a machine display can now link straight to the alarm list.
How it applies
Technical documentation
Selectors decouple granularity from file structure. An HTML page with many error codes can stay one file, while a FragmentSelector with an XPointer or #id value lets each code be delivered as its own Fragment with metadata. The page itself can remain a topic with a plain rendition, so both levels of granularity coexist on one file.
Migration
For legacy PDFs, range selectors are the shortest route to fine-grained delivery: define units for chapters, point them at page ranges, and keep the original file. Mind the boundary convention: in the specification's page-range example, the range includes the start page but not the end page, so a chapter ending on page 24 needs page=25 as its end value.
MedTech
When approved instructions for use exist as a fixed PDF, selectors can expose sections such as warnings or cleaning instructions as separate units without changing the approved file. Selectors do not validate content; they only make a part addressable. Note that iiRDS/H packages do not allow selectors at all, so handover packages deliver such documents whole.
AI and retrieval
Selectors give retrieval systems chunk boundaries set by authors rather than by token counts, plus exact anchors for citations. An assistant can answer from the "Alarm list" unit and deep-link to the PDF page, instead of pointing a technician at a whole manual. Keep the selector values with each indexed chunk so the link can be rebuilt.
FragmentSelector vs. RangeSelector vs. Fragment
| Concept | What it selects or is | Key properties |
|---|---|---|
| FragmentSelector | One identifier; a range only if the standard allows it (for example t=90,210) |
rdf:value, dcterms:conformsTo |
| RangeSelector | Everything between a start and an end identifier | iirds:has-start-selector, iirds:has-end-selector |
| Fragment | An information unit that needs context — not a selector | IRI, metadata, renditions |
A Fragment is about meaning; a selector is about location. The two often appear together, because a small unit frequently lives inside a larger file.
In RDF
A topic delivered from a page range of a PDF, and a fragment selected from an XML file by XPointer. Shown in Turtle for readability — inside a package, metadata.rdf is written in RDF/XML.
@prefix iirds: <http://iirds.tekom.de/iirds#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
<https://example.com/iirds/alarm-list> a iirds:Topic ;
iirds:has-rendition [
a iirds:Rendition ;
iirds:format "application/pdf" ;
iirds:source "content/pdf/lathe-operating-manual.pdf" ;
iirds:has-selector [
a iirds:RangeSelector ;
iirds:has-start-selector [
a iirds:FragmentSelector ;
dcterms:conformsTo <http://tools.ietf.org/rfc/rfc3778> ;
rdf:value "page=140"
] ;
iirds:has-end-selector [
a iirds:FragmentSelector ;
dcterms:conformsTo <http://tools.ietf.org/rfc/rfc3778> ;
rdf:value "page=159"
]
]
] .
<https://example.com/iirds/alarm-e17> a iirds:Fragment ;
iirds:has-rendition [
a iirds:Rendition ;
iirds:format "application/xml" ;
iirds:source "content/xml/alarms.xml" ;
iirds:has-selector [
a iirds:FragmentSelector ;
dcterms:conformsTo <http://tools.ietf.org/rfc/rfc3023> ;
rdf:value "xpointer(id('alarm-e17'))"
]
] .
In topic-based authoring and modular architectures
In native topic-based authoring, each topic is usually its own file, so selectors are rarely needed; reuse happens in the source, for example through a DITA content reference. Selectors matter where published output bundles many modules into one file — a merged PDF, a single-page HTML manual, a training video — and each module should still be delivered with its own metadata. In modular delivery architectures, a selector is the bridge between monolithic deliverables and granular consumption: the portal, the machine display or the retrieval index works with units, while the package keeps one physical file. Stable anchors, such as element IDs rather than page numbers, make selectors survive re-publication better.
Concept cluster
How this concept connects to the other iiRDS core concepts.
- iiRDS RenditionSelectors are attached to a rendition and narrow its file reference to one part.
- iiRDS DocumentChapters of a PDF Document can become their own units through range selectors on the same file.
- iiRDS TopicA topic can live inside a larger file and still be delivered on its own via a selector.
- iiRDS InformationUnitThe unit carries the metadata; the selector only locates its content in the file.
- iiRDS container and ZIP archiveThe file a selector points into is always a content file inside the package container.
- iiRDS ConsumerConsumers must interpret the selector's value according to the standard it declares.
Also searched as
- iiRDS Selector
- iirds:Selector
- iiRDS FragmentSelector
- iiRDS RangeSelector
- iirds:has-selector
- iiRDS PDF page range
- selector
Questions this article answers:
- what is a selector in iiRDS
- how to reference a PDF page range in iiRDS
- iiRDS FragmentSelector vs RangeSelector
- iirds:has-selector example
- point to part of a file in iiRDS
Explore further
In the glossary
Frequently asked questions
- What is a selector in iiRDS?
- A selector points to a part of a file referenced by a rendition, so an information unit can cover a section of the file instead of the whole file. It is attached with iirds:has-selector.
- What is the difference between FragmentSelector and RangeSelector?
- A FragmentSelector selects by a single identifier, such as one PDF page. A RangeSelector selects everything between a start and an end, each given as a FragmentSelector.
- Can I use iirds:Selector directly?
- No. The specification requires one of the subclasses, iirds:FragmentSelector or iirds:RangeSelector.
- How do I reference a page range of a PDF in iiRDS?
- Use a RangeSelector with two FragmentSelectors whose rdf:value is page=n and whose dcterms:conformsTo is the PDF media type, RFC 3778. In the specification's example, the start page is included and the end page is not.
- Which standards can a FragmentSelector use?
- Only fragment identifier standards listed for the W3C Web Annotation Data Model's fragment selector, for example the PDF and XML media types or W3C Media Fragments.
- Does a selector have its own metadata?
- No. A selector is only a pointer into a file. Metadata belongs to the information unit that owns the rendition.
- Are selectors allowed in iiRDS/H?
- No. The handover variant iiRDS/H does not allow selectors; its documents are delivered as whole files.
Conclusion
Selectors let iiRDS be granular without forcing files to be. Choose a FragmentSelector when the format's own fragment syntax can express the part you mean, a RangeSelector when it cannot, and always name the standard in dcterms:conformsTo. The file stays untouched, and each selected part can carry its own metadata as a unit.