Skip to content

nanopublishing with coding agents and iolanta

Installation

Install all skills from this repository into the current project for your agent of choice:

Install
npx skills add https://github.com/iolanta-tech/nanopublishing --skill '*' -a claude-code # (1)!
  1. Some valid agent values include: claude-code, codex, cursor, and others.

Add -g if you want a global install instead of a project-local one.

Example session

claude
codex --full-auto # (1)!
  1. Codex needs --full-auto here to permit access to cache directories.
cursor-agent # (1)!
  1. Or just use chat in Cursor IDE.
Dave avatarDave
Please write, in index.md, that Europa is a satellite of Jupiter, according to the International Astronomical Union.
HAL 9000 avatarHAL 9000
Here you are.
index.md
# Europa is a satellite of Jupiter

**Europa** is a natural satellite of **Jupiter**.

According to the **International Astronomical Union (IAU)**, Europa is one of Jupiter's moons.
Dave avatarDave
How do we express that one thing is a satellite of another? /find-url-for satellite of
HAL 9000 avatarHAL 9000

Wikidata has wdt:P397 , but for readability we can mint a local predicate and declare it as a subproperty.

Dave avatarDave
Okay, let's rely upon wikidata. /semantify index.md, then.
HAL 9000 avatarHAL 9000

I've added YAML-LD frontmatter and mapped the astronomy claim to linked data.

---
"@context":
  - https://nanopublishing.iolanta.tech/context/v0.yamlld
  - this:is-satellite-of:
      "@type": "@id"
    rdfs:subPropertyOf:
      "@type": "@id"

$nanopublication:
  $assertion:
    - $id: this:is-satellite-of
      rdfs:label: is satellite of
      rdfs:subPropertyOf: wdt:P397
    - $id: wd:Q3143
      this:is-satellite-of: wd:Q319

  prov:wasAttributedTo: wd:Q6867

npx:describes: wd:Q319
---

# Europa is a satellite of Jupiter

**Europa** is a natural satellite of **Jupiter**.

According to the **International Astronomical Union (IAU)**, Europa is one of Jupiter's moons.
Dave avatarDave
Okay, that looks fine. /nanopublish index.md.
HAL 9000 avatarHAL 9000
It is published. The signed artifact remains beside the Markdown source.

Published nanopublication screenshot

Visualization

graph TB
  subgraph subgraph_ed7e37817b6bf4b31f433f0d5d54de99["Nanopublication RAQtNxM5sbzt…"]
    direction TB
      Label_6177c00a83eb1f0f3dae2c2c90f600f0["● Nanopublication"]
    class Label_6177c00a83eb1f0f3dae2c2c90f600f0 label
    click Label_6177c00a83eb1f0f3dae2c2c90f600f0 "https://w3id.org/np/RAQtNxM5sbzt7-4lGVzAMPQtT32wDUGJAqKJObwdbYNDs"
    subgraph subgraph_621d82af6eda714867bee56e1c545baa["Assertion"]
      direction LR
        https___www_wikidata_org_entity_Q3143("Europa")
      click https___www_wikidata_org_entity_Q3143 "https://www.wikidata.org/entity/Q3143"
      https___www_wikidata_org_entity_Q319("Jupiter")
      click https___www_wikidata_org_entity_Q319 "https://www.wikidata.org/entity/Q319"
      https___w3id_org_np_RAQtNxM5sbzt7-4lGVzAMPQtT32wDUGJAqKJObwdbYNDs_is-satellite-of("is satellite of")
      click https___w3id_org_np_RAQtNxM5sbzt7-4lGVzAMPQtT32wDUGJAqKJObwdbYNDs_is-satellite-of "https://w3id.org/np/RAQtNxM5sbzt7-4lGVzAMPQtT32wDUGJAqKJObwdbYNDs/is-satellite-of"
      http___www_wikidata_org_prop_direct_P397("parent astronomical body")
      click http___www_wikidata_org_prop_direct_P397 "http://www.wikidata.org/prop/direct/P397"
      https___www_wikidata_org_entity_Q3143 --- b7a1a2e8a6d591bc4721775dcaedf9a0(["is satellite of"])--> https___www_wikidata_org_entity_Q319
      click b7a1a2e8a6d591bc4721775dcaedf9a0 "https://w3id.org/np/RAQtNxM5sbzt7-4lGVzAMPQtT32wDUGJAqKJObwdbYNDs/is-satellite-of"
      class b7a1a2e8a6d591bc4721775dcaedf9a0 predicate
      https___w3id_org_np_RAQtNxM5sbzt7-4lGVzAMPQtT32wDUGJAqKJObwdbYNDs_is-satellite-of --- 62b436b1b5a0c4d5907b64350f2ccab3(["subPropertyOf"])--> http___www_wikidata_org_prop_direct_P397
      click 62b436b1b5a0c4d5907b64350f2ccab3 "http://www.w3.org/2000/01/rdf-schema#subPropertyOf"
      class 62b436b1b5a0c4d5907b64350f2ccab3 predicate
    end
    Html_71140ad16295c3119e490ad645307ace["<div style='font-weight:600;margin-bottom:0.5em'>Provenance</div><table style='border-collapse:collapse'><tbody><tr><td>was attributed to</td><td><a href="https://www.wikidata.org/entity/Q6867">International Astronomical Union</a></td></tr><tr><td>generated at time</td><td>🕐 2026-04-05T09:36:30.129841</td></tr></tbody></table>"]
    Html_2e90f2cfa8a9ad3fc88320b3a01cddc1["<div style='font-weight:600;margin-bottom:0.5em'>PubInfo</div><table style='border-collapse:collapse'><tbody><tr><td>describes</td><td><a href="https://www.wikidata.org/entity/Q319">Jupiter</a></td></tr><tr><td>Date Created</td><td>🕐 2026-04-05T09:36:30.144Z</td></tr><tr><td>has public key</td><td>🔑 MIIBIjANBgkqhkiG9w0…U5hqU4B8FwHUwIDAQAB</td></tr><tr><td>was attributed to</td><td><a href="https://orcid.org/0009-0001-8740-4213">Anatoly Scherbakov</a></td></tr><tr><td>has signature</td><td>✍️ QjdBUbzFm7Zdw6At/ar…OXOIYRA3lyXrezkLg==</td></tr><tr><td>generated at time</td><td>🕐 2026-04-05T09:36:30.129841</td></tr><tr><td>has algorithm</td><td>⚙️ RSA</td></tr></tbody></table>"]
    subgraph_621d82af6eda714867bee56e1c545baa --> Html_71140ad16295c3119e490ad645307ace
    Label_6177c00a83eb1f0f3dae2c2c90f600f0 --> Html_2e90f2cfa8a9ad3fc88320b3a01cddc1
  end
  classDef predicate fill:#1f2233,stroke:transparent,color:#f8fafc,stroke-width:0px;
  classDef hidden fill:transparent,stroke:transparent,color:transparent,stroke-width:0px;
  classDef label fill:transparent,stroke:transparent,color:#e5e7eb,stroke-width:0px;
  classDef nanopubdot fill:#0f172a,stroke:#0f172a,color:transparent,stroke-width:2px;
  classDef transparent fill:transparent,stroke:transparent,color:transparent,stroke-width:0px;

See the full example

HAL 9000 avatar: “HAL9000 - Sharper Reflections.svg” by Cryteria and MorningLemon, licensed under CC BY 3.0, via Wikimedia Commons.