{"id":793,"date":"2026-03-12T19:12:54","date_gmt":"2026-03-12T18:12:54","guid":{"rendered":"http:\/\/magnusmanske.de\/wordpress\/?p=793"},"modified":"2026-03-12T19:12:54","modified_gmt":"2026-03-12T18:12:54","slug":"apis-and-descriptions","status":"publish","type":"post","link":"http:\/\/magnusmanske.de\/wordpress\/archives\/793","title":{"rendered":"APIs and Descriptions"},"content":{"rendered":"<p><a href=\"https:\/\/autodesc.toolforge.org\/\"><strong>AutoDesc<\/strong><\/a> has been a longstanding tool to generate descriptions for Wikidata items. Originally a spin-off from <a href=\"https:\/\/reasonator.toolforge.org\/\">Reasonator<\/a>, it started as my only JavaScript-based server application, generating both short and (for biographical items, and two languages) long descriptions. When the usual bitrot set in, I decided to move it over to Python, hoping to attract more developers; that did, however, not pan out. Also, I only managed to port the short description code, dropping support for the long descriptions in the process.<\/p>\n<p>Now, I have moved it to trusty Rust, and also ported the long description mode from the original JavaScript. I threw in some caching, so descriptions are now much faster &#8211; often &lt;1sec for short descriptions.<\/p>\n<p>In other news, my <strong><a href=\"https:\/\/crates.io\/crates\/mediawiki\">MediaWiki Rust API<\/a><\/strong> has now added all of the MediaWiki Action API functionality as proper Rust elements. Generators are also supported, as is <em>continue<\/em>. Results that are based on page_info results can be automatically parsed into an appropriate struct. I even threw in a <em>prelude::*<\/em> module to get everything you need in one line. Due to the massive addition of functionality, the version has also been bumped to 0.5.0.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AutoDesc has been a longstanding tool to generate descriptions for Wikidata items. Originally a spin-off from Reasonator, it started as my only JavaScript-based server application, generating both short and (for biographical items, and two languages) long descriptions. When the usual bitrot set in, I decided to move it over to Python, hoping to attract more [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,9,7],"tags":[],"class_list":["post-793","post","type-post","status-publish","format-standard","hentry","category-rust","category-wikidata","category-wikimedia-2"],"_links":{"self":[{"href":"http:\/\/magnusmanske.de\/wordpress\/wp-json\/wp\/v2\/posts\/793","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/magnusmanske.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/magnusmanske.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/magnusmanske.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/magnusmanske.de\/wordpress\/wp-json\/wp\/v2\/comments?post=793"}],"version-history":[{"count":1,"href":"http:\/\/magnusmanske.de\/wordpress\/wp-json\/wp\/v2\/posts\/793\/revisions"}],"predecessor-version":[{"id":794,"href":"http:\/\/magnusmanske.de\/wordpress\/wp-json\/wp\/v2\/posts\/793\/revisions\/794"}],"wp:attachment":[{"href":"http:\/\/magnusmanske.de\/wordpress\/wp-json\/wp\/v2\/media?parent=793"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/magnusmanske.de\/wordpress\/wp-json\/wp\/v2\/categories?post=793"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/magnusmanske.de\/wordpress\/wp-json\/wp\/v2\/tags?post=793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}