Skip to content

Instantly share code, notes, and snippets.

@ktym
Last active February 26, 2025 14:15
Show Gist options
  • Save ktym/a60a63b911a8e78e05d1702e419e3496 to your computer and use it in GitHub Desktop.
Save ktym/a60a63b911a8e78e05d1702e419e3496 to your computer and use it in GitHub Desktop.

RDF-config JSON-LD generation

input.csv

a,b,c
1,foo,fuga
2,bar,hoge

config/a/prefix.yaml

my: <http://example.org/>

config/a/model.yaml

- My my:1:
  - a: my:Data
  - my:a:
    - a: 1
  - my:b:
    - b: "foo"
  - my:c:
    - c: "bar"

config/a/convert.yaml

- My:
  - subject:
    - csv("a")
    - prepend("my:")
  - objects:
    - a:
      - csv("a")
    - b:
      - csv("b")
      - prepend("my:")
    - c:
      - csv("c")
      - append(" is awesome")

Install

% git clone https://github.com/dbcls/rdf-config.git
% cd rdf-config
% bundle install

Convert

% bundle exec rdf-config --config config/a --convert input.csv --format turtle
@prefix my: <http://example.org/> .

my:1 a my:Data;
  my:a 1;
  my:b "my:foo";
  my:c "fuga is awesome" .

my:2 a my:Data;
  my:a 2;
  my:b "my:bar";
  my:c "hoge is awesome" .
% bundle exec rdf-config --config config/a --convert input.csv --format jsonl
{"@context":"context.jsonld","My":"my:1","@type":"my:Data","a":1,"b":"my:foo","c":"fuga is awesome"}
{"@context":"context.jsonld","My":"my:2","@type":"my:Data","a":2,"b":"my:bar","c":"hoge is awesome"}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment