All Projects → Navid2zp → go-wikidata

Navid2zp / go-wikidata

Licence: MIT license
Wikidata API bindings in go.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to go-wikidata

wikiapi
JavaScript MediaWiki API for node.js
Stars: ✭ 28 (+3.7%)
Mutual labels:  wikipedia, wikidata, wikipedia-api
wikipedia for humans
No description or website provided.
Stars: ✭ 44 (+62.96%)
Mutual labels:  wikipedia, wikipedia-api
entity-fishing
A machine learning tool for fishing entities
Stars: ✭ 176 (+551.85%)
Mutual labels:  wikipedia, wikidata
equalstreetnames
Map visualizing the streetnames by gender : 50 cities in 11 countries
Stars: ✭ 64 (+137.04%)
Mutual labels:  wikipedia, wikidata
wikibot
Some MediaWiki bot examples including wikipedia, wikidata using MediaWiki module of CeJS library. 採用 CeJS MediaWiki 自動化作業用程式庫來製作 MediaWiki (維基百科/維基數據) 機器人的範例。
Stars: ✭ 26 (-3.7%)
Mutual labels:  wikipedia, wikidata
wikipedia-api-docs
Wikipedia API documentation
Stars: ✭ 61 (+125.93%)
Mutual labels:  wikipedia, wikipedia-api
wiki-tui
A simple and easy to use Wikipedia Text User Interface
Stars: ✭ 74 (+174.07%)
Mutual labels:  wikipedia, wikipedia-api
wikifox
A clean and simplified WikiPedia powered by wikifox.js
Stars: ✭ 50 (+85.19%)
Mutual labels:  wikipedia, wikipedia-api
wikipedia-live-monitor
No description or website provided.
Stars: ✭ 19 (-29.63%)
Mutual labels:  wikipedia, wikipedia-api
pywikibot-scripts
Own pywikibot scripts (for Wikimedia projects)
Stars: ✭ 16 (-40.74%)
Mutual labels:  wikipedia, wikidata
OA-signalling
A project to coordinate implementing a system to signal whether references cited on Wikipedia are free to reuse
Stars: ✭ 19 (-29.63%)
Mutual labels:  wikipedia, wikidata
wikirepo
Python based Wikidata framework for easy dataframe extraction
Stars: ✭ 33 (+22.22%)
Mutual labels:  wikipedia, wikidata
Wptools
Wikipedia tools (for Humans): easily extract data from Wikipedia, Wikidata, and other MediaWikis
Stars: ✭ 371 (+1274.07%)
Mutual labels:  wikipedia, wikidata
pageviews.js
A lightweight JavaScript client library for the Wikimedia Pageviews API for Wikipedia and various of its sister projects for Node.js and the browser.
Stars: ✭ 24 (-11.11%)
Mutual labels:  wikipedia, wikipedia-api
Jivesearch
A search engine that doesn't track you.
Stars: ✭ 364 (+1248.15%)
Mutual labels:  wikipedia, wikidata
Wikipedia Tools For Google Spreadsheets
Wikipedia Tools for Google Spreadsheets — Install:
Stars: ✭ 96 (+255.56%)
Mutual labels:  wikipedia, wikidata
Wiki
Wikipedia Interface for Node.js
Stars: ✭ 180 (+566.67%)
Mutual labels:  wikipedia
Alfred Searchio
Alfred workflow to auto-suggest search results from multiple search engines and languages.
Stars: ✭ 250 (+825.93%)
Mutual labels:  wikipedia
Apple
Kiwix for offline access on iOS and macOS
Stars: ✭ 174 (+544.44%)
Mutual labels:  wikipedia
Gradlewiki
关于Gradle编译你需要知道的一切
Stars: ✭ 174 (+544.44%)
Mutual labels:  wikipedia

go-wikidata

GoDoc Build Go Report Card GitHub license

Wikidata API bindings in golang.

This package is suitable for retrieving data from wikidata database using its public API. Methods for updating, editing and adding to wikidata are not implemented (yet).

Read more about wikidata API: https://www.wikidata.org/w/api.php

Contents

Install

go get github.com/Navid2zp/go-wikidata

Get Entities

// Create a request
req, err := gowikidata.NewGetEntities([]string{"Q1"})

// Configurations such as props, sites and etc.
req.SetSites([]string{"enwiki", "fawiki"})

// Call get to make the request based on the configurations
res, err := req.Get()
Get entity methods:

Request methods:

// Param: props
// Default: info|sitelinks|aliases|labels|descriptions|claims|datatype
req.SetProps([]string{"info", "claims"})

// Param: sites
req.SetSites([]string{"enwiki", "fawiki"})

// Param: sitefilter
req.SetSiteFilter([]string{"enwiki", "fawiki"})

// Param: normalize
req.SetNormalize(true)

// Param: languagefallback
req.SetLanguageFallback(true)

// Param: languages
req.SetLanguages([]string{"en", "fa"})

// Param: redirects
req.SetRedirects(true)

// Param: titles
req.SetTitles([]string{"title", "another"})


// Method chaining is also supported
req.SetNormalize(true).SetSites([]string{"enwiki", "fawiki"})

Response methods:

claimReq, err := res["Q1"].NewGetClaims()

Same as calling NewGetClaims. See "Get Claims" for more information.

Get Claims

// Create a request
// You must either provide entity id or a claim GUID
req, err := gowikidata.NewGetClaims("Q1", "")

// Call get to make the request based on the configurations
res, err := req.Get()

You can also call NewGetClaims on Entity type.

Get claims methods:

Request methods:

// Param: props
// Default: references
req.SetProps([]string{"references"})

// Param: rank
// One of the following values: deprecated, normal, preferred
req.SetRank("normal")

// Param: property
req.SetProperty("P31")

Search

// Create a request
// Both search and language are required
req, err := gowikidata.NewSearch("abc", "en")

// Call get to make the request based on the configurations
res, err := req.Get()
Search methods:

Request methods:

// Param: props
// Default: url
req.SetProps([]string{"url"})

// Param: limit
// Default: 7
req.SetLimit(10)

// Param: strictlanguage
req.SetStrictLanguage(true)

// Param: type
// One of the following values: item, property, lexeme, form, sense
// Default: item
req.SetType("item")

// Param: continue
// Default: 0
req.SetContinue(7)

Response methods:

// Next page of results
// new coninue = limit + previous continue value
nextPage, err := res.Next()

Get Wikipedia Page Item

Find Wikipedia page item ID in wikidata by page slug (https://en.wikipedia.org/wiki/[SLUG]).

wikiDataID, err := gowikidata.GetPageItem("Earth")
fmt.Println(wikiDataID) // "Q2"

Get Available Badges

badges, err := gowikidata.GetAvailableBadges()

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].