Add Conversation Topics record class with nested topic taxonomy (agentic) - #2247
Open
rbuck23 wants to merge 8 commits into
Open
Add Conversation Topics record class with nested topic taxonomy (agentic)#2247rbuck23 wants to merge 8 commits into
rbuck23 wants to merge 8 commits into
Conversation
Introduce an experimental record-based agentic/topic class (keyed by xdm:topic) and an agentic/topic-hierarchy field group (xdm:L1-xdm:L5) so a topic taxonomy can be modeled as an AEP lookup (reference) dataset and joined to conversation/agentic data. Additive only; both start as meta:status experimental. Follows the existing record-class + lookup pattern (weather/paid-media). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Collapse the previous two-file split (agentic/topic class + agentic/ topic-hierarchy field group) into one self-contained fat record class, agentic/conversation, that extends data/record. It models a conversation record with nested conversation.signals.topic.hierarchy.level1-3. Still additive and experimental. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Move the conversation record from a class to a field group under fieldgroups/agentic. It no longer extends data/record; instead it sets meta:intendedToExtend to context/experienceevent and composes @context, matching the sibling conversation-event field group. Structure is unchanged: conversation.signals.topic.hierarchy.level1-5. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
For the conversation field group to be usable on a record/lookup dataset it must attach to a record class. Add a minimal agentic/conversation record class (extends data/record, keyed by xdm:conversationID) and point the field group's meta:intendedToExtend at it instead of experienceevent. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Drop the field group + record-class pair and go back to one self-contained fat record class, agentic/conversation, extending data/record, with the nested conversation.signals.topic.hierarchy.level1-5 structure. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rename the top-level wrapper xdm:conversation to xdm:conversationTopicTaxonomy (camelCase per convention) and xdm:hierarchy to xdm:taxonomy. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
clubycoder
approved these changes
Aug 28, 2026
| @@ -0,0 +1,15 @@ | |||
| { | |||
Member
There was a problem hiding this comment.
rename from conversation to conversation-topics
| "you may not use this file except in compliance with the License. You may obtain a copy", | ||
| "of the License at https://creativecommons.org/licenses/by/4.0/" | ||
| ], | ||
| "$id": "https://ns.adobe.com/xdm/classes/agentic/conversation", |
Member
There was a problem hiding this comment.
rename from agentic/conversation to agentic/conversation-topics
| "meta:status": "experimental", | ||
| "description": "A conversation record capturing derived conversation signals, including a topic taxonomy classification. Record-based (time-invariant) so it can be composed into a schema and used as a lookup/reference dataset.", | ||
| "definitions": { | ||
| "conversation": { |
Member
There was a problem hiding this comment.
rename from conversation to conversation-topics
| "$ref": "https://ns.adobe.com/xdm/data/record" | ||
| }, | ||
| { | ||
| "$ref": "#/definitions/conversation" |
Member
There was a problem hiding this comment.
rename from conversation to conversation-topics
Address @clubycoder review: rename the class artifact from agentic/conversation to agentic/conversation-topics (files, $id, title, definitions wrapper, and $ref). Property keys are unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Thanks @clubycoder! Done in 6005289 — renamed |
rbuck23
marked this pull request as ready for review
August 28, 2026 21:51
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #2249
Adds an experimental, record-based Conversation Topics class (
classes/agentic/conversation-topics) that models a conversation record carrying a nested topic taxonomy classification. Non-breaking — purely additive; ships asmeta:status: experimental.Motivation
Conversation/agentic data carries derived signals. Modeling the conversation as a record (time-invariant) lets it be composed into a schema and used as a reference/lookup dataset, with the topic taxonomy nested under
conversationTopicTaxonomy.signals.topic.taxonomyso it travels with the conversation record.Changes
components/classes/agentic/conversation-topics.schema.json— new experimental record class (meta:extendsdata/record), self-contained ("fat class"). Structure:components/classes/agentic/conversation-topics.example.1.json— class example.(Supersedes the earlier two-file split — the
agentic/topicclass andagentic/topic-hierarchyfield group were removed in favor of this single record class.)Validation
npm test— 2417 passing, 0 failingnpm run lint— clean (prettier)npm run validate— zero new failures vs themasterbaseline (remaining errors are pre-existing and unrelated to this file)npm run incompatibility-check— clean (additive only)Breaking changes
None.
🤖 Generated with Claude Code