• Stars
    star
    304
  • Rank 137,274 (Top 3 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created almost 10 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

JS utils functions to query a Wikibase instance and simplify its results

wikibase-sdk

JS utils functions to query a Wikibase instance and simplify its results

This package was primarily developed as wikidata-sdk but has now being generalized to support any Wikibase instance, wikidata.org among others, and was thus renamed wikibase-sdk.

This project received a Wikimedia Project Grant.

wikibase Β Β Β Β Β Β Β Β Β  wikidata

License npm version Required Node.js version npm downloads code style type definitions

Summary

Changelog

See CHANGELOG.md for version info

Dependencies

NodeJS >= v12.0.0 or not too outdated web browsers (see Object.fromEntries browser compatibility table) For older JS runtimes, you can use ES5 bundles from wikibase-sdk <= v8.

Install

as an ES module

Install via npm to be able to use the import the module.

npm install wikibase-sdk

Then in your javascript:

import { WBK } from 'wikibase-sdk'
const wbk = WBK({
  instance: 'https://my-wikibase-instan.se',
  sparqlEndpoint: 'https://query.my-wikibase-instan.se/sparql' // Required to use `sparqlQuery` and `getReverseClaims` functions, optional otherwise
})

The wdk object of previous versions of this documentation - from the time this module was bound to wikidata.org only - thus corresponds to the following:

import { WBK } from 'wikibase-sdk'

const wdk = WBK({
  instance: 'https://www.wikidata.org',
  sparqlEndpoint: 'https://query.wikidata.org/sparql'
})

For convenience, and for the sake of retro-compatibility, that same wdk object can be obtain directly from the wikibase-sdk/wikidata.org package:

import wdk from 'wikibase-sdk/wikidata.org'

By default wikibase-sdk assumes that your Wikibase instance has $wgScriptPath set to /w, but if that's not the case, you can set it by passing a wgScriptPath parameter:

import { WBK } from 'wikibase-sdk'
const wbk = WBK({
  instance: 'https://my-wikibase-instan.se',
  wgScriptPath: '/some_custom_script_path'
})

as an CommonJS module

Importing with CommonJS require is not supported anymore in version >= v9.0.0, but can still be done by installing an older version:

npm install wikibase-sdk@v8

See the corresponding version documentation

download pre-bundled files

Pre-bundled files is not supported anymore in version >= v9.0.0, but can still be done by pre-bundled files from older versions:

wget https://raw.githubusercontent.com/maxlath/wikibase-sdk/v8.1.1/dist/wikibase-sdk.js
wget https://raw.githubusercontent.com/maxlath/wikibase-sdk/v8.1.1/dist/wikidata-sdk.js
wget https://raw.githubusercontent.com/maxlath/wikibase-sdk/v8.1.1/dist/wikibase-sdk.min.js
wget https://raw.githubusercontent.com/maxlath/wikibase-sdk/v8.1.1/dist/wikidata-sdk.min.js

See the corresponding version documentation

Features

Wikibase API

A set of functions to make read queries to a Wikibase instance API (see Wikidata API documentation). For write operations, see wikibase-edit.

Wikibase Query

There are additional functions for Wikibase instances that have a SPARQL Query Service (such as Wikidata Query for wikidata.org). SPARQL can be a weird thing at first, but the Wikidata team and community really puts lots of efforts to make things easy with a super rich Wikidata Query Help page, an awesome tool to test you queries and visualize the result, and lots of examples!

General helpers

Contributing

Context

This library had for primary purpose to serve the needs of the inventaire project but extending its capabilities to other needs it totally possible: feel welcome to post your suggestions as issues or pull requests!

Design constraints

  • wikibase-sdk should stay "small" and dependency-free, so that a web application can include it in its bundle without paying a too high cost for it. A consequence is that the lib generates URLs where other libs would integrate doing the request and parsing it's response. But that actually feels quite right to do this way: simply generating the URLs let's users free to handle requests as they like (with callbacks, promises, async/await, custom request agent, whatever!)
  • Therefore, it should focus on providing basic, general helper functions most application working with a Wikibase instance would need.
  • Write operations should go into wikibase-edit as it involves working with Wikibase credentials/tokens.
  • General command-line interface tools should go to wikibase-cli, very specific ones β€” wikibase-dump-filter and alikes β€” should get their own modules.

See Also

You may also like

inventaire banner

Do you know Inventaire? It's a web app to share books with your friends, built on top of Wikidata! And its libre software too.

License

MIT

More Repositories

1

wikibase-cli

read and edit a Wikibase instance from the command line
JavaScript
206
star
2

wikibase-dump-filter

Filter and format a newline-delimited JSON stream of Wikibase entities
JavaScript
90
star
3

wikibase-edit

a lib to edit Wikibase from NodeJS
JavaScript
64
star
4

hub

Web hub based on Wikidata
JavaScript
36
star
5

backup-github-repo

Backup all the issues and pull requests of a Github repo, including the comments, events, and labels, as JSON and as HTML
JavaScript
36
star
6

time-capsule

A WebExtension to send links to your future self
JavaScript
27
star
7

wikidata-properties-dumper

a script to get a JSON file listing wikidata properties ids and their label in a given language
CoffeeScript
27
star
8

fix-utf8

Fix Unicode encoding errors
JavaScript
26
star
9

ipfs-add-from-url

A command line executable to add a file to IPFS from a URL instead of a file path
JavaScript
25
star
10

import-wikidata-dump-to-couchdb

import a subset or a full Wikidata dump into a CouchDB database
JavaScript
20
star
11

jsondepth

a small command-line tool to walk through the depth levels of a JSON objects
JavaScript
10
star
12

website-history-browser

a WebExtension to browse your history per website
Svelte
10
star
13

wikidata-agent

A single-user server to communicate with the Wikidata API in a simple, minimalist way
JavaScript
9
star
14

text-transform-cli

A collection of CLI tools to operate frequently needed text transformations
JavaScript
8
star
15

load-balance-lines

Parallelize newline-delimited data processing by load balancing lines between multiple processes
JavaScript
5
star
16

hashtags-hub

A web service to get links to hashtag pages on different web platforms. The main purpose of this tool is to be used on Wikidata as the 'formatter URL' (P1630) value of 'hashtag' (P2572)
JavaScript
5
star
17

irc-logger

super-tiny IRC bot to log channels
JavaScript
4
star
18

os-health-report

A micro server reporting simple information on its (Linux) host machine
JavaScript
4
star
19

wikidata-rank

[WIP] Attributing scores to Wikidata items, making those available via a web API and dumps, under a CC0 license
JavaScript
3
star
20

couch-init2

Opiniated CouchDB databases initializer
JavaScript
3
star
21

maximize-telegram-web

maximize Telegram Web so that large messages (like code samples) can be easily read
CSS
3
star
22

ndjson-2-json

minimal CLI converter from newline-delimited JSON to a JSON array
JavaScript
2
star
23

maxlath.github.io

my personal web hub
HTML
2
star
24

blog

my personal website in Meteor
HTML
2
star
25

wikidata-links-enhancer

browser script to display wikidata links under any wikimedia projects pages, just after the header
JavaScript
2
star
26

wikibase-dump-formatter

Extends Wikibase dump prefixed URIs with a custom domain
JavaScript
1
star
27

youtube-auto-ld

A WebExtension to automatically set Youtube video resolution to a low definition, to save resources
JavaScript
1
star
28

unicode-scripts-finder

find which unicode scripts a text is using
JavaScript
1
star
29

ouisharelabs

labs.ouishare.net
1
star
30

couchdb-view-by-keys

A command-line tool to query CouchDB views, focused on easing queries with complex JSON keys
JavaScript
1
star
31

wikibase-token

a promises-based lib abstracting authentification for write actions on the Wikidata API
JavaScript
1
star
32

wikibase-cli-template-collection

A collection of wikibase-cli templates
JavaScript
1
star
33

vscode-only-test

A minimalist vscode extension that adds a command to toggle Mocha `it.only` to the test the cursor is in
JavaScript
1
star
34

ndjson-apply

apply a JS function to a stream of newline-delimited JSON
JavaScript
1
star
35

quickstatements-to-wikibase-edit

Tools to convert QuickStatements commands into wikibase-edit format
JavaScript
1
star
36

json-apply

A CLI tool to transform JSON files with custom JS functions
JavaScript
1
star
37

couchdb-blazegraph-sync

[unstable] Keep a CouchDB database and a BlazeGraph namespace in sync
JavaScript
1
star