Skip to content

Add PersonalNote ontology schema - #1100

Open
EgorPPS wants to merge 1 commit into
mainfrom
add-personal-note-ontology
Open

Add PersonalNote ontology schema#1100
EgorPPS wants to merge 1 commit into
mainfrom
add-personal-note-ontology

Conversation

@EgorPPS

@EgorPPS EgorPPS commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Adds PersonalNote — a note a person wrote for themselves.

Why a new schema rather than reuse

The registry currently has no type for this, and the two nearest candidates are both something else:

  • Note (18a83870-…) is platform documentation. Every record of it in the wild is an integration note or a marketplace listing ("Ontology: File", "Marketplace Listing"); it has no author and no creation time, its content is a URI pointing at a file, and its audience means "who is this documentation written for". A person's note does not belong there.
  • TaskNote is scoped to a task — it requires taskId.

Shape

Modelled on schema.org/NoteDigitalDocument, so the semantics are familiar outside W3DS, but the identity and time fields follow this registry's convention rather than schema.org's — id / createdAt / authorEName instead of dateCreated / author — because all 30 existing schemas name them that way and a reader here should not have to special-case one type. The mapping is stated in the schema description.

Deliberately domain-level and general: what a note is about goes in about / keywords, never into a narrower type. A note about paint and a note about a bike ride are the same kind of thing, and splitting them by subject is how vocabulary fragments.

Two fields worth calling out:

  • derivedRecords — references to records extracted from the note (a purchase read off a photographed letter, a product identified in it), each carrying confidence when it was inferred rather than read verbatim. The note stays authoritative for what was actually said: a derived reading can be wrong and redone, the original cannot.
  • capturedBy — the eName of the application that recorded it, so a reader can tell an app-assisted capture from a hand-typed one.

additionalProperties: true, following communityActivity and socialMediaPost.

Context

Written for Nootropic, where a person hands over a photo, a voice note or a document and expects the meaning to be findable years later. Their utterance is stored as a PersonalNote and anything structured we extract references it. It is published in our self-description at /.well-known/w3ds-platform.json with registered: false until this merges — the flag is checked against this registry at request time rather than maintained by hand.

Happy to rename fields or drop derivedRecords / capturedBy if you would rather keep the type minimal.

Summary by CodeRabbit

  • New Features
    • Added a standardized PersonalNote schema.
    • Personal notes now support content, authorship, creation time, attachments, discovery details, provenance, related records, and archive status.
    • Required fields ensure each note includes an identifier, text, creation timestamp, and author.

A person's own note — the general case that has been missing: the existing
Note ontology is platform documentation (no author, no creation time,
content is a file URI), and TaskNote is scoped to a task.

Modelled on schema.org/NoteDigitalDocument, with identity and time fields
following this registry's convention (id / createdAt / authorEName) rather
than schema.org's, so it reads like its neighbours here.
@EgorPPS
EgorPPS requested a review from coodos as a code owner August 5, 2026 07:29
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c1608510-f678-4384-ba66-8804e990b9e4

📥 Commits

Reviewing files that changed from the base of the PR and between 6d1b8b6 and 43294c5.

📒 Files selected for processing (1)
  • services/ontology/schemas/personalNote.json

📝 Walkthrough

Walkthrough

Added a draft-07 JSON Schema for PersonalNote. The schema defines note identity, content, metadata, attachments, provenance, archive status, derived-record references, required fields, and additional-property handling.

Changes

PersonalNote schema

Layer / File(s) Summary
PersonalNote validation contract
services/ontology/schemas/personalNote.json
Defines the PersonalNote object, property types, nested derivedRecords references, required fields, archive default, and allowance for additional properties.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: coodos

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the schema and design, but it omits the issue number, change type, testing details, and checklist. Add the Issue Number, Type of change, How the change has been tested, and completed Change checklist sections.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the addition of the PersonalNote ontology schema.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch add-personal-note-ontology

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant