feat: add relational document system specification and plan
This commit is contained in:
parent
ef65e38bb2
commit
9152f868ce
6 changed files with 393 additions and 0 deletions
30
specs/001-create-a-neovim/data-model.md
Normal file
30
specs/001-create-a-neovim/data-model.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
# Data Model: Relational Document System
|
||||
|
||||
This document outlines the key entities for the relational document system.
|
||||
|
||||
## Entities
|
||||
|
||||
### Document
|
||||
- **Description**: A markdown file with YAML frontmatter.
|
||||
- **Attributes**:
|
||||
- `type` (string): The type of the document (e.g., "person", "meeting").
|
||||
- `properties` (object): A set of key-value pairs defined in the YAML frontmatter.
|
||||
|
||||
### Schema
|
||||
- **Description**: A definition for a document type, specifying its properties and their types. As per the clarification, schemas are not strictly enforced but are inferred from existing documents.
|
||||
- **Attributes**:
|
||||
- `name` (string): The name of the document type.
|
||||
- `properties` (object): A dictionary of property names and their inferred types (e.g., string, number, date).
|
||||
|
||||
### Query
|
||||
- **Description**: A definition in a custom block syntax that filters and sorts documents.
|
||||
- **Attributes**:
|
||||
- `document_type` (string): The type of document to query.
|
||||
- `filters` (array): A list of filter conditions (e.g., `property == value`).
|
||||
- `sort_by` (array): A list of properties to sort the results by.
|
||||
|
||||
### View
|
||||
- **Description**: A virtual buffer that displays the results of a query.
|
||||
- **Attributes**:
|
||||
- `query` (Query): The query that generated the view.
|
||||
- `documents` (array): A list of documents that match the query.
|
Loading…
Add table
Add a link
Reference in a new issue