☰

✍️🤖 Agent/Guido

Dry run

Without -w ezwd builds the item and prints it, nothing is written:

ezwd -m paper --example
# example of paper_props: https://www.wikidata.org/wiki/Q141609355
label: 'GraphWiseLearn: Personalized Learning Through Semantified TEL, Leveraging
  QA-Enhanced LLM-Generated Content'
description: scholarly article published in 2025
title: 'GraphWiseLearn: Personalized Learning Through Semantified TEL, Leveraging
  QA-Enhanced LLM-Generated Content'
author:
- Q110462723
language: Q1860
publication_date: '2025-01-28'
pages: 74-83
doi: 10.1007/978-3-031-78955-7_8
dblp: conf/esws/Fahl24
# dry-run:
label: GraphWiseLearn: Personalized Learning Through Semantified TEL, Leveraging QA-Enhanced LLM-Generated Content
description: scholarly article published in 2025
  P31 instance of: Q13442814
  P1476 title: {'text': 'GraphWiseLearn: Personalized Learning Through Semantified TEL, Leveraging QA-Enhanced LLM-Generated Content', 'language': 'en'}
  P50 author: Q110462723
    P1545 series ordinal: 1
  P407 language of work or name: Q1860
  P577 publication date: {'time': '+2025-01-28T00:00:00Z', 'before': 0, 'after': 0, 'precision': 11, 'timezone': 0, 'calendarmodel': 'http://www.wikidata.org/entity/Q1985727'}
  P304 page(s): 74-83
  P356 DOI: 10.1007/978-3-031-78955-7_8
  P8978 DBLP publication ID: conf/esws/Fahl24

One line per statement, the qualifiers indented below it. The output is the item as built, there is no separate preview; with -d the item JSON is printed instead.

Checks

After the dry run ezwd reports problems: a record value whose property got no claim, a conversion error, and a record column without mapping. With --strict a problem sets exit code 1, so a script can refuse to write:

ezwd --strict -m paper -r paper.yaml || echo "record has problems"
no mapping for column series_ordinal - value is ignored

RDF

--format prints the built item in the Wikidata RDF model: wdt: for the values, p:/ps: for the statements and pq: for the qualifiers; an item without id is wd:Qnew:

ezwd -m paper --example --format turtle
wd:Qnew rdfs:label "GraphWiseLearn: Personalized Learning Through Semantified TEL, Leveraging QA-Enhanced LLM-Generated Content"@en ;
    schema1:description "scholarly article published in 2025"@en ;
    p:P50 wds:Qnew-3 ;
    wdt:P50 wd:Q110462723 ;
    wdt:P356 "10.1007/978-3-031-78955-7_8" ;
    wdt:P577 "2025-01-28T00:00:00+00:00"^^xsd:dateTime .
wds:Qnew-3 pq:P1545 "1" ;
    ps:P50 wd:Q110462723 .

The formats are those of rdflib: turtle, json-ld, ntriples, xml and the others of --help. See #8.

Sandbox

--test targets test.wikidata.org. Its property and item ids differ from production, so only a mapping made for it validates there, the bundled sandbox mapping.

Write

ezwd -m paper -r paper.yaml -w

-w writes with the credentials of the configured account and prints the new Q id. A production write is gated: dedup search, dry run, the acting account stated, go by the human, see the procedure on Record.

Lag and timeouts

Reads go out without maxlag, so a dry run and get_record answer while the replication lag of Wikidata is high; writes keep the maxlag default of WikibaseIntegrator and wait (#18). Every API call has a timeout of 10 s to connect and 60 s to read (#16).