Refined metadata scheme and applied it to posts
This commit is contained in:
parent
e806e6764b
commit
831590bc72
19 changed files with 703 additions and 47 deletions
97
metadata/corpus-metadata-backup.md
Normal file
97
metadata/corpus-metadata-backup.md
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
# Corpus Metadata
|
||||
|
||||
- All notes in `/Users/rico/Library/Mobile Documents/iCloud~md~obsidian/Documents/MyVault/iso27diy-corp/Corpus` need metadata.
|
||||
- These metadata need to follow the [obsidian-front-matter-syntax](obsidian-front-matter-syntax.md).
|
||||
- Obsidian calls metadata variables 'Properties'
|
||||
- In this Corpus we use General properties (every note should have them) and specific properties (depending on the kind of note, which can be inferred from the `notetype` property, see below).
|
||||
|
||||
## General properties
|
||||
|
||||
**Notetype**
|
||||
|
||||
The `notetype` field will have one of the following values:
|
||||
|
||||
- `guide`: guided, hands-on lessons, learning by doing, interactive lessons
|
||||
- `explanation`: background and context to the standards, paraphrases of the original standard texts, opinion, discussion, underlying principles, interpretation
|
||||
- `application`: steps to solve a specific, real-world problem. Implementing the standard in real world environments, implementation aids, implementation examples, templates, etc.
|
||||
- `reference`: secondary sources of information, like original standard texts, dictionaries, terms and definitions.
|
||||
- `publication`: for content created by TSW for publication, e.g. articles, eBooks, social media posts.
|
||||
- `other`: for all notes that, by there content, cannot be placed in one for the previous categories.
|
||||
- `iso27diyGIS`: notes that belong to the ISO27DIY Guided Implementation System (GIS).
|
||||
|
||||
**Language**
|
||||
|
||||
- For the `language` property we use the language code as defined in ISO 639-1.
|
||||
|
||||
**Isotags**
|
||||
|
||||
The property `isotags`, of type list, allows any note to be linked to clauses and controls of the ISO 27001 / ISO 27002 standard, by the `id` property of the Original Standard Texts, found in `Corpus/Standards/ISO27x/OST/27001/EN` and `/Corpus/Standards/ISO27x/OST/27002/EN`, respectively.
|
||||
|
||||
For example, a note that needs to be linked to ISO 27001 clause 5.2 Policy, will get a value of `C.5.2` added to its `isotags` list. Likewise, a note that needs to be linked to ISO 27002 control 5.15 Access control, will get a value of `A.5.15` added to its `isotags` list.
|
||||
|
||||
## Properties for ISO 27001 and 27002 Original Standard Texts
|
||||
|
||||
Original Standard Texts are found in `Corpus/Standards/ISO27x/OST/` .
|
||||
|
||||
*Important: the body of these notes must never be changed!*
|
||||
|
||||
OST notes inherit the general properties, and also have the following properties:
|
||||
|
||||
- `status`: as of yet, the only value defined for the property is `active`. I foresee a `superseded` or `replaced` status for later.
|
||||
- `sourcetext`: the standard name and version, e.g. `iso27001:en:2022`
|
||||
|
||||
The OST/27002 have specific properties deduced from chapter 4 of the standard ("Themes and Attributes"). They are:
|
||||
- `theme`
|
||||
- `control_type`
|
||||
- `information_security_properties`
|
||||
- `cybersecurity_concepts`
|
||||
- `operational_capabilities`
|
||||
- `security_domains`.
|
||||
|
||||
For the possible values of these properties, see [themes-and-attributes-in-iso-27002](themes-and-attributes-in-iso-27002.md).
|
||||
|
||||
## Properties for the ISO27DIY Guided Implementation System
|
||||
|
||||
- Notes in the `iso27DIY-gis` folder and subfolders are of `notetype` `iso27diyGIS`.
|
||||
- Notes in the `iso27DIY-gis/guide` subfolder ...
|
||||
- Notes in the `iso27DIY-gis/reference` subfolder ...
|
||||
|
||||
## Properties for Publications
|
||||
|
||||
- publications can be found in `iso27diy-corp/Marketing/publications` and are of `notetype` `publication`
|
||||
|
||||
|
||||
```
|
||||
---
|
||||
title: "" # post title
|
||||
series: "" # series title
|
||||
series-slug: "" # series title as a slug, e.g. "access-control-basics"
|
||||
series-part: 1 # position within the series; omit if standalone
|
||||
theme: "" # broader topic cluster, e.g. "ISO27001 myths"
|
||||
channels: # list — a post can go to multiple channels
|
||||
- linkedin
|
||||
- newsletter
|
||||
- blog
|
||||
status: draft # draft | ready | scheduled | published
|
||||
publish-dates: # ISO 8601, e.g. 2026-06-10; can be a list if channels differ
|
||||
linkedin: 2026-06-10
|
||||
newsletter: 2026-06-17
|
||||
blog: 2026-06-17
|
||||
published-urls: # fill in after publishing; one per channel
|
||||
linkedin: ""
|
||||
blog: ""
|
||||
content-type: "" # post | article | newsletter-section | thread
|
||||
source-notes: # vault notes this was drawn from
|
||||
- "[[path/to/note]]"
|
||||
tags: []
|
||||
|
||||
notetype: publication
|
||||
isotags:
|
||||
iso-id
|
||||
audience
|
||||
|
||||
---
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
|
@ -16,7 +16,7 @@ The `notetype` field will have one of the following values:
|
|||
- `application`: steps to solve a specific, real-world problem. Implementing the standard in real world environments, implementation aids, implementation examples, templates, etc.
|
||||
- `reference`: secondary sources of information, like original standard texts, dictionaries, terms and definitions.
|
||||
- `publication`: for content created by TSW for publication, e.g. articles, eBooks, social media posts.
|
||||
- `other`: for all notes that, by there content, cannot be placed in one for the previous categories.
|
||||
- `other`: for all notes that, by their content, cannot be placed in one of the previous categories.
|
||||
- `iso27diyGIS`: notes that belong to the ISO27DIY Guided Implementation System (GIS).
|
||||
|
||||
**Language**
|
||||
|
|
@ -37,7 +37,7 @@ Original Standard Texts are found in `Corpus/Standards/ISO27x/OST/` .
|
|||
|
||||
OST notes inherit the general properties, and also have the following properties:
|
||||
|
||||
- `status`: as of yet, the only value defined for the property is `active`. I foresee a `superseded` or `replaced` status for later.
|
||||
- `status`: as of yet, the only value defined for the property is `active`. I foresee a `superseded` or `replaced` status for later.
|
||||
- `sourcetext`: the standard name and version, e.g. `iso27001:en:2022`
|
||||
|
||||
The OST/27002 have specific properties deduced from chapter 4 of the standard ("Themes and Attributes"). They are:
|
||||
|
|
@ -46,52 +46,98 @@ The OST/27002 have specific properties deduced from chapter 4 of the standard ("
|
|||
- `information_security_properties`
|
||||
- `cybersecurity_concepts`
|
||||
- `operational_capabilities`
|
||||
- `security_domains`.
|
||||
- `security_domains`
|
||||
|
||||
For the possible values of these properties, see [themes-and-attributes-in-iso-27002](themes-and-attributes-in-iso-27002.md).
|
||||
|
||||
## Properties for the ISO27DIY Guided Implementation System
|
||||
|
||||
- Notes in the `iso27DIY-gis` folder and subfolders are of `notetype` `iso27diyGIS`.
|
||||
- Notes in the `iso27DIY-gis` folder and subfolders are of `notetype` `iso27diyGIS`.
|
||||
- Notes in the `iso27DIY-gis/guide` subfolder ...
|
||||
- Notes in the `iso27DIY-gis/reference` subfolder ...
|
||||
|
||||
## Properties for Publications
|
||||
|
||||
- publications can be found in `iso27diy-corp/Marketing/publications` and are of `notetype` `publication`
|
||||
Publications are found in `iso27diy-corp/Marketing/publications` and are of `notetype` `publication`.
|
||||
|
||||
### Folder structure
|
||||
|
||||
```
|
||||
All publication notes live directly under `iso27diy-corp/Marketing/publications/posts/`. There are no audience or proposition subfolders — segmentation is handled entirely by front matter.
|
||||
|
||||
### Controlled vocabularies
|
||||
|
||||
**`proposition`** — which ISO27DIY product or practice this content promotes:
|
||||
- `advisory` — Richard's advisory practice (ZZP)
|
||||
- `canvas` — the Canvas Method product
|
||||
- `iso27diy` — the ISO27DIY SaaS product
|
||||
|
||||
**`audience`** — who the content is aimed at:
|
||||
- `leadership` — directors, board members, senior management
|
||||
- `msp` — managed service providers
|
||||
- `technical` — IT professionals, security practitioners
|
||||
- `general` — no specific segment
|
||||
|
||||
**`channels`** — where the content is published:
|
||||
- `linkedin`
|
||||
- `newsletter`
|
||||
- `blog`
|
||||
|
||||
**`linkedin-account`** — which LinkedIn account was used; only relevant when `linkedin` is in `channels`:
|
||||
- `personal` — Richard's personal LinkedIn profile
|
||||
- `company` — ISO27DIY company page
|
||||
|
||||
**`content-type`** — the format of the content:
|
||||
- `post`
|
||||
- `article`
|
||||
- `newsletter-section`
|
||||
- `thread`
|
||||
|
||||
**`status`**:
|
||||
- `draft` — work in progress
|
||||
- `ready` — approved, not yet scheduled
|
||||
- `scheduled` — publish date set
|
||||
- `published` — live
|
||||
|
||||
### Template
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: "" # post title
|
||||
series: "" # series title
|
||||
series-slug: "" # series title as a slug, e.g. "access-control-basics"
|
||||
series-part: 1 # position within the series; omit if standalone
|
||||
theme: "" # broader topic cluster, e.g. "ISO27001 myths"
|
||||
channels: # list — a post can go to multiple channels
|
||||
title: "" # human-readable post title
|
||||
language: "" # ISO 639-1 code: en | nl
|
||||
|
||||
proposition: "" # advisory | canvas | iso27diy
|
||||
|
||||
series-id: "" # short machine-readable code, e.g. s01, s02; omit if standalone
|
||||
series-title: "" # human-readable series name; omit if standalone
|
||||
series-part: # integer position within series; null if unpositioned draft; omit if standalone
|
||||
|
||||
audience: # one or more of: leadership | msp | technical | general
|
||||
- leadership
|
||||
|
||||
channels: # one or more of: linkedin | newsletter | blog
|
||||
- linkedin
|
||||
- newsletter
|
||||
- blog
|
||||
status: draft # draft | ready | scheduled | published
|
||||
publish-dates: # ISO 8601, e.g. 2026-06-10; can be a list if channels differ
|
||||
linkedin: 2026-06-10
|
||||
newsletter: 2026-06-17
|
||||
blog: 2026-06-17
|
||||
published-urls: # fill in after publishing; one per channel
|
||||
linkedin-account: personal # personal | company; omit if linkedin not in channels
|
||||
|
||||
content-type: # one or more of: post | article | newsletter-section | thread
|
||||
- post
|
||||
|
||||
status: draft # draft | ready | scheduled | published
|
||||
|
||||
publish-dates: # ISO 8601 datetime in UTC, e.g. 2026-05-13T17:30:00Z
|
||||
linkedin: 2026-05-13T17:30:00Z
|
||||
|
||||
published-urls: # fill after publishing; omit channels not yet published
|
||||
linkedin: ""
|
||||
blog: ""
|
||||
content-type: "" # post | article | newsletter-section | thread
|
||||
source-notes: # vault notes this was drawn from
|
||||
|
||||
source-notes: # optional — vault notes this was drawn from; omit if none
|
||||
- "[[path/to/note]]"
|
||||
tags: []
|
||||
|
||||
notetype: publication
|
||||
isotags:
|
||||
iso-id
|
||||
audience
|
||||
|
||||
isotags: [] # ISO 27001/27002 clause/control links; omit if not applicable
|
||||
tags: []
|
||||
---
|
||||
```
|
||||
|
||||
### Filename convention
|
||||
|
||||
|
||||
Publication filenames follow the pattern `{series-id}p{series-part}{language} - {title-slug}.md`, e.g. `s01p01en - IT is not going to fix your security problem.md`. Standalone posts use a plain descriptive slug with no series prefix.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue