wikidata-sdk
Advanced tools
Comparing version 3.2.4 to 4.0.0
// Generated by CoffeeScript 1.10.0 | ||
(function() { | ||
var wd_, wikidataTimeToDateObject; | ||
var helpers, wikidataTimeToDateObject; | ||
wikidataTimeToDateObject = require('./wikidata_time_to_date_object'); | ||
wd_ = {}; | ||
helpers = {}; | ||
wd_.isNumericId = function(id) { | ||
helpers.isNumericId = function(id) { | ||
return /^[0-9]+$/.test(id); | ||
}; | ||
wd_.isWikidataId = function(id) { | ||
helpers.isWikidataId = function(id) { | ||
return /^(Q|P)[0-9]+$/.test(id); | ||
}; | ||
wd_.isWikidataEntityId = function(id) { | ||
helpers.isWikidataEntityId = function(id) { | ||
return /^Q[0-9]+$/.test(id); | ||
}; | ||
wd_.isWikidataPropertyId = function(id) { | ||
helpers.isWikidataPropertyId = function(id) { | ||
return /^P[0-9]+$/.test(id); | ||
}; | ||
wd_.normalizeId = function(id, numericId, type) { | ||
helpers.normalizeId = function(id, numericId, type) { | ||
if (type == null) { | ||
type = 'Q'; | ||
} | ||
if (wd_.isNumericId(id)) { | ||
if (helpers.isNumericId(id)) { | ||
if (numericId) { | ||
@@ -35,3 +35,3 @@ return id; | ||
} | ||
} else if (wd_.isWikidataId(id)) { | ||
} else if (helpers.isWikidataId(id)) { | ||
if (numericId) { | ||
@@ -47,4 +47,4 @@ return id.slice(1); | ||
wd_.getNumericId = function(id) { | ||
if (!wd_.isWikidataId(id)) { | ||
helpers.getNumericId = function(id) { | ||
if (!helpers.isWikidataId(id)) { | ||
throw new Error("invalid wikidata id: " + id); | ||
@@ -55,3 +55,3 @@ } | ||
wd_.normalizeIds = function(ids, numericId, type) { | ||
helpers.normalizeIds = function(ids, numericId, type) { | ||
if (type == null) { | ||
@@ -61,20 +61,20 @@ type = 'Q'; | ||
return ids.map(function(id) { | ||
return wd_.normalizeId(id, numericId, type); | ||
return helpers.normalizeId(id, numericId, type); | ||
}); | ||
}; | ||
wd_.wikidataTimeToDateObject = wikidataTimeToDateObject; | ||
helpers.wikidataTimeToDateObject = wikidataTimeToDateObject; | ||
wd_.wikidataTimeToEpochTime = function(wikidataTime) { | ||
helpers.wikidataTimeToEpochTime = function(wikidataTime) { | ||
return wikidataTimeToDateObject(wikidataTime).getTime(); | ||
}; | ||
wd_.wikidataTimeToISOString = function(wikidataTime) { | ||
helpers.wikidataTimeToISOString = function(wikidataTime) { | ||
return wikidataTimeToDateObject(wikidataTime).toISOString(); | ||
}; | ||
wd_.normalizeWikidataTime = wd_.wikidataTimeToEpochTime; | ||
helpers.normalizeWikidataTime = helpers.wikidataTimeToEpochTime; | ||
module.exports = wd_; | ||
module.exports = helpers; | ||
}).call(this); |
// Generated by CoffeeScript 1.10.0 | ||
(function() { | ||
var simplifyClaims, wd_; | ||
var simplifyClaims; | ||
wd_ = require('./helpers'); | ||
simplifyClaims = require('./simplify_claims'); | ||
@@ -21,11 +19,2 @@ | ||
} | ||
}, | ||
wdq: { | ||
entities: function(res) { | ||
var ref; | ||
res = res.body || res; | ||
return (ref = res.items) != null ? ref.map(function(item) { | ||
return wd_.normalizeId(item); | ||
}) : void 0; | ||
} | ||
} | ||
@@ -32,0 +21,0 @@ }; |
// Generated by CoffeeScript 1.10.0 | ||
(function() { | ||
var getLatLngFromCoordinates, nonNull, simplifyClaim, simplifyClaims, simplifyPropertyClaims, wd_; | ||
var getLatLngFromCoordinates, helpers, nonNull, simplifyClaim, simplifyClaims, simplifyPropertyClaims; | ||
wd_ = require('./helpers'); | ||
helpers = require('./helpers'); | ||
@@ -46,3 +46,3 @@ simplifyClaims = function(claims) { | ||
case 'time': | ||
return wd_.normalizeWikidataTime(datavalue.value.time); | ||
return helpers.normalizeWikidataTime(datavalue.value.time); | ||
case 'globe-coordinate': | ||
@@ -49,0 +49,0 @@ return getLatLngFromCoordinates(datavalue.value); |
@@ -14,4 +14,3 @@ // Generated by CoffeeScript 1.10.0 | ||
wikidata: 'https://www.wikidata.org/w/api.php', | ||
commons: 'http://commons.wikimedia.org', | ||
wdq: 'http://wdq.wmflabs.org/api' | ||
commons: 'http://commons.wikimedia.org' | ||
}; | ||
@@ -18,0 +17,0 @@ |
@@ -9,13 +9,13 @@ // Generated by CoffeeScript 1.10.0 | ||
wdk.searchEntities = require('./queries/wikidata_search_entities'); | ||
wdk.searchEntities = require('./queries/search_entities'); | ||
wdk.getEntities = require('./queries/wikidata_get_entities'); | ||
wdk.getEntities = require('./queries/get_entities'); | ||
wdk.getManyEntities = require('./queries/wikidata_get_many_entities'); | ||
wdk.getManyEntities = require('./queries/get_many_entities'); | ||
wdk.getWikidataIdsFromSitelinks = require('./queries/get_wikidata_ids_from_sitelinks'); | ||
wdk.sparqlQuery = require('./queries/wikidata_sparql_query'); | ||
wdk.sparqlQuery = require('./queries/sparql_query'); | ||
wdk.getReverseClaims = require('./queries/wdq_get_reverse_claims'); | ||
wdk.getReverseClaims = require('./queries/get_reverse_claims'); | ||
@@ -32,3 +32,3 @@ wdk.parse = require('./helpers/parse_responses'); | ||
wdk.simplifySparqlResults = require('./queries/wikidata_simplify_sparql_results'); | ||
wdk.simplifySparqlResults = require('./queries/simplify_sparql_results'); | ||
@@ -35,0 +35,0 @@ wdk.getWikidataIdsFromWikipediaTitles = wdk.getWikidataIdsFromSitelinks; |
# CHANGELOG | ||
*versions follow [SemVer](http://semver.org)* | ||
## 4.0.0 - 2016-09-09 | ||
* Compleltly removed uses and references to wdq: | ||
* BREAKING CHANGE: [getReverseClaims](https://github.com/maxlath/wikidata-sdk#get-entities-reverse-claims) now returns a query to the SPARQL endpoint. Its result should thus be parsed with [`wdk.simplifySparqlResults`](https://github.com/maxlath/wikidata-sdk#simplify-sparql-results) instead of `wdk.parse.wdq.entities`. This parser was thus removed. | ||
## 3.2.0 - 2016-06-06 | ||
@@ -5,0 +9,0 @@ * Added [wdk.simplifySparqlResults](https://github.com/maxlath/wikidata-sdk#simplify-sparql-results) |
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.wdk = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.10.0 | ||
(function() { | ||
var wd_, wikidataTimeToDateObject; | ||
var helpers, wikidataTimeToDateObject; | ||
wikidataTimeToDateObject = require('./wikidata_time_to_date_object'); | ||
wd_ = {}; | ||
helpers = {}; | ||
wd_.isNumericId = function(id) { | ||
helpers.isNumericId = function(id) { | ||
return /^[0-9]+$/.test(id); | ||
}; | ||
wd_.isWikidataId = function(id) { | ||
helpers.isWikidataId = function(id) { | ||
return /^(Q|P)[0-9]+$/.test(id); | ||
}; | ||
wd_.isWikidataEntityId = function(id) { | ||
helpers.isWikidataEntityId = function(id) { | ||
return /^Q[0-9]+$/.test(id); | ||
}; | ||
wd_.isWikidataPropertyId = function(id) { | ||
helpers.isWikidataPropertyId = function(id) { | ||
return /^P[0-9]+$/.test(id); | ||
}; | ||
wd_.normalizeId = function(id, numericId, type) { | ||
helpers.normalizeId = function(id, numericId, type) { | ||
if (type == null) { | ||
type = 'Q'; | ||
} | ||
if (wd_.isNumericId(id)) { | ||
if (helpers.isNumericId(id)) { | ||
if (numericId) { | ||
@@ -36,3 +36,3 @@ return id; | ||
} | ||
} else if (wd_.isWikidataId(id)) { | ||
} else if (helpers.isWikidataId(id)) { | ||
if (numericId) { | ||
@@ -48,4 +48,4 @@ return id.slice(1); | ||
wd_.getNumericId = function(id) { | ||
if (!wd_.isWikidataId(id)) { | ||
helpers.getNumericId = function(id) { | ||
if (!helpers.isWikidataId(id)) { | ||
throw new Error("invalid wikidata id: " + id); | ||
@@ -56,3 +56,3 @@ } | ||
wd_.normalizeIds = function(ids, numericId, type) { | ||
helpers.normalizeIds = function(ids, numericId, type) { | ||
if (type == null) { | ||
@@ -62,19 +62,19 @@ type = 'Q'; | ||
return ids.map(function(id) { | ||
return wd_.normalizeId(id, numericId, type); | ||
return helpers.normalizeId(id, numericId, type); | ||
}); | ||
}; | ||
wd_.wikidataTimeToDateObject = wikidataTimeToDateObject; | ||
helpers.wikidataTimeToDateObject = wikidataTimeToDateObject; | ||
wd_.wikidataTimeToEpochTime = function(wikidataTime) { | ||
helpers.wikidataTimeToEpochTime = function(wikidataTime) { | ||
return wikidataTimeToDateObject(wikidataTime).getTime(); | ||
}; | ||
wd_.wikidataTimeToISOString = function(wikidataTime) { | ||
helpers.wikidataTimeToISOString = function(wikidataTime) { | ||
return wikidataTimeToDateObject(wikidataTime).toISOString(); | ||
}; | ||
wd_.normalizeWikidataTime = wd_.wikidataTimeToEpochTime; | ||
helpers.normalizeWikidataTime = helpers.wikidataTimeToEpochTime; | ||
module.exports = wd_; | ||
module.exports = helpers; | ||
@@ -86,6 +86,4 @@ }).call(this); | ||
(function() { | ||
var simplifyClaims, wd_; | ||
var simplifyClaims; | ||
wd_ = require('./helpers'); | ||
simplifyClaims = require('./simplify_claims'); | ||
@@ -105,11 +103,2 @@ | ||
} | ||
}, | ||
wdq: { | ||
entities: function(res) { | ||
var ref; | ||
res = res.body || res; | ||
return (ref = res.items) != null ? ref.map(function(item) { | ||
return wd_.normalizeId(item); | ||
}) : void 0; | ||
} | ||
} | ||
@@ -120,8 +109,8 @@ }; | ||
},{"./helpers":1,"./simplify_claims":3}],3:[function(require,module,exports){ | ||
},{"./simplify_claims":3}],3:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.10.0 | ||
(function() { | ||
var getLatLngFromCoordinates, nonNull, simplifyClaim, simplifyClaims, simplifyPropertyClaims, wd_; | ||
var getLatLngFromCoordinates, helpers, nonNull, simplifyClaim, simplifyClaims, simplifyPropertyClaims; | ||
wd_ = require('./helpers'); | ||
helpers = require('./helpers'); | ||
@@ -167,3 +156,3 @@ simplifyClaims = function(claims) { | ||
case 'time': | ||
return wd_.normalizeWikidataTime(datavalue.value.time); | ||
return helpers.normalizeWikidataTime(datavalue.value.time); | ||
case 'globe-coordinate': | ||
@@ -236,4 +225,6 @@ return getLatLngFromCoordinates(datavalue.value); | ||
(function() { | ||
var buildUrl, forceArray, isPlainObject, parseSite, ref, shortLang; | ||
var buildUrl, forceArray, helpers, isPlainObject, ref, shortLang; | ||
helpers = require('../helpers/helpers'); | ||
buildUrl = require('../utils/build_url'); | ||
@@ -243,21 +234,19 @@ | ||
module.exports = function(titles, sites, languages, props, format) { | ||
module.exports = function(ids, languages, props, format) { | ||
var query, ref1; | ||
if (isPlainObject(titles)) { | ||
ref1 = titles, titles = ref1.titles, sites = ref1.sites, languages = ref1.languages, props = ref1.props, format = ref1.format; | ||
if (isPlainObject(ids)) { | ||
ref1 = ids, ids = ref1.ids, languages = ref1.languages, props = ref1.props, format = ref1.format; | ||
} | ||
format || (format = 'json'); | ||
if ((titles == null) || titles.length === 0) { | ||
throw new Error('no title provided'); | ||
if (!((ids != null) || ids.length === 0)) { | ||
throw new Error('no id provided'); | ||
} | ||
if ((sites == null) || sites.length === 0) { | ||
sites = ['enwiki']; | ||
if (ids.length > 50) { | ||
console.warn("getEntities accepts 50 ids max to match Wikidata API limitations:\nthis request won't get all the desired entities.\nYou can use getManyEntities instead to generate several request urls\nto work around this limitation"); | ||
} | ||
titles = forceArray(titles); | ||
sites = forceArray(sites).map(parseSite); | ||
ids = helpers.normalizeIds(forceArray(ids)); | ||
props = forceArray(props); | ||
query = { | ||
action: 'wbgetentities', | ||
titles: titles.join('|'), | ||
sites: sites.join('|'), | ||
ids: ids.join('|'), | ||
format: format | ||
@@ -275,43 +264,60 @@ }; | ||
parseSite = function(site) { | ||
if (site.length === 2) { | ||
return site + "wiki"; | ||
} else { | ||
return site; | ||
}).call(this); | ||
},{"../helpers/helpers":1,"../utils/build_url":12,"../utils/utils":14}],6:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.10.0 | ||
(function() { | ||
var getEntities, getIdsGroups, isPlainObject; | ||
getEntities = require('./get_entities'); | ||
isPlainObject = require('../utils/utils').isPlainObject; | ||
module.exports = function(ids, languages, props, format) { | ||
var ref; | ||
if (isPlainObject(ids)) { | ||
ref = ids, ids = ref.ids, languages = ref.languages, props = ref.props, format = ref.format; | ||
} | ||
if (!(ids instanceof Array)) { | ||
throw new Error("getManyEntities expects an array of ids"); | ||
} | ||
return getIdsGroups(ids).map(function(idsGroup) { | ||
return getEntities(idsGroup, languages, props, format); | ||
}); | ||
}; | ||
getIdsGroups = function(ids) { | ||
var group, groups; | ||
groups = []; | ||
while (ids.length > 0) { | ||
group = ids.slice(0, 50); | ||
ids = ids.slice(50); | ||
groups.push(group); | ||
} | ||
return groups; | ||
}; | ||
}).call(this); | ||
},{"../utils/build_url":12,"../utils/utils":14}],6:[function(require,module,exports){ | ||
},{"../utils/utils":14,"./get_entities":5}],7:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.10.0 | ||
(function() { | ||
var buildUrl, wd_, wdq_; | ||
var helpers, sparqlQuery; | ||
buildUrl = require('../utils/build_url'); | ||
helpers = require('../helpers/helpers'); | ||
wd_ = require('../helpers/helpers'); | ||
sparqlQuery = require('./sparql_query'); | ||
wdq_ = { | ||
claim: function(P, Q) { | ||
P = wd_.normalizeId(P, true); | ||
Q = wd_.normalizeId(Q, true); | ||
return buildUrl('wdq', { | ||
q: "CLAIM[" + P + ":" + Q + "]" | ||
}); | ||
}, | ||
string: function(P, string) { | ||
P = wd_.normalizeId(P, true); | ||
return buildUrl('wdq', { | ||
q: "STRING[" + P + ":" + string + "]" | ||
}); | ||
module.exports = function(property, value, limit) { | ||
var sparql; | ||
if (limit == null) { | ||
limit = 1000; | ||
} | ||
}; | ||
module.exports = function(P, value) { | ||
if (wd_.isWikidataEntityId(value)) { | ||
return wdq_.claim(P, value); | ||
} else { | ||
return wdq_.string(P, value); | ||
if (helpers.isWikidataEntityId(value)) { | ||
value = "wd:" + value; | ||
} else if (typeof value === 'string') { | ||
value = "\"" + value + "\""; | ||
} | ||
sparql = "SELECT ?subject WHERE {\n ?subject wdt:" + property + " " + value + " .\n}\nLIMIT " + limit; | ||
return sparqlQuery(sparql); | ||
}; | ||
@@ -321,9 +327,7 @@ | ||
},{"../helpers/helpers":1,"../utils/build_url":12}],7:[function(require,module,exports){ | ||
},{"../helpers/helpers":1,"./sparql_query":11}],8:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.10.0 | ||
(function() { | ||
var buildUrl, forceArray, isPlainObject, ref, shortLang, wd_; | ||
var buildUrl, forceArray, isPlainObject, parseSite, ref, shortLang; | ||
wd_ = require('../helpers/helpers'); | ||
buildUrl = require('../utils/build_url'); | ||
@@ -333,19 +337,21 @@ | ||
module.exports = function(ids, languages, props, format) { | ||
module.exports = function(titles, sites, languages, props, format) { | ||
var query, ref1; | ||
if (isPlainObject(ids)) { | ||
ref1 = ids, ids = ref1.ids, languages = ref1.languages, props = ref1.props, format = ref1.format; | ||
if (isPlainObject(titles)) { | ||
ref1 = titles, titles = ref1.titles, sites = ref1.sites, languages = ref1.languages, props = ref1.props, format = ref1.format; | ||
} | ||
format || (format = 'json'); | ||
if (!((ids != null) || ids.length === 0)) { | ||
throw new Error('no id provided'); | ||
if ((titles == null) || titles.length === 0) { | ||
throw new Error('no title provided'); | ||
} | ||
if (ids.length > 50) { | ||
console.warn("getEntities accepts 50 ids max to match Wikidata API limitations:\nthis request won't get all the desired entities.\nYou can use getManyEntities instead to generate several request urls\nto work around this limitation"); | ||
if ((sites == null) || sites.length === 0) { | ||
sites = ['enwiki']; | ||
} | ||
ids = wd_.normalizeIds(forceArray(ids)); | ||
titles = forceArray(titles); | ||
sites = forceArray(sites).map(parseSite); | ||
props = forceArray(props); | ||
query = { | ||
action: 'wbgetentities', | ||
ids: ids.join('|'), | ||
titles: titles.join('|'), | ||
sites: sites.join('|'), | ||
format: format | ||
@@ -363,46 +369,17 @@ }; | ||
}).call(this); | ||
},{"../helpers/helpers":1,"../utils/build_url":12,"../utils/utils":14}],8:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.10.0 | ||
(function() { | ||
var getEntities, getIdsGroups, isPlainObject; | ||
getEntities = require('./wikidata_get_entities'); | ||
isPlainObject = require('../utils/utils').isPlainObject; | ||
module.exports = function(ids, languages, props, format) { | ||
var ref; | ||
if (isPlainObject(ids)) { | ||
ref = ids, ids = ref.ids, languages = ref.languages, props = ref.props, format = ref.format; | ||
parseSite = function(site) { | ||
if (site.length === 2) { | ||
return site + "wiki"; | ||
} else { | ||
return site; | ||
} | ||
if (!(ids instanceof Array)) { | ||
throw new Error("getManyEntities expects an array of ids"); | ||
} | ||
return getIdsGroups(ids).map(function(idsGroup) { | ||
return getEntities(idsGroup, languages, props, format); | ||
}); | ||
}; | ||
getIdsGroups = function(ids) { | ||
var group, groups; | ||
groups = []; | ||
while (ids.length > 0) { | ||
group = ids.slice(0, 50); | ||
ids = ids.slice(50); | ||
groups.push(group); | ||
} | ||
return groups; | ||
}; | ||
}).call(this); | ||
},{"../utils/utils":14,"./wikidata_get_entities":7}],9:[function(require,module,exports){ | ||
},{"../utils/build_url":12,"../utils/utils":14}],9:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.10.0 | ||
(function() { | ||
var buildUrl, isPlainObject, wd_; | ||
var buildUrl, isPlainObject; | ||
wd_ = require('../helpers/helpers'); | ||
buildUrl = require('../utils/build_url'); | ||
@@ -436,3 +413,3 @@ | ||
},{"../helpers/helpers":1,"../utils/build_url":12,"../utils/utils":14}],10:[function(require,module,exports){ | ||
},{"../utils/build_url":12,"../utils/utils":14}],10:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.10.0 | ||
@@ -553,4 +530,3 @@ (function() { | ||
wikidata: 'https://www.wikidata.org/w/api.php', | ||
commons: 'http://commons.wikimedia.org', | ||
wdq: 'http://wdq.wmflabs.org/api' | ||
commons: 'http://commons.wikimedia.org' | ||
}; | ||
@@ -625,13 +601,13 @@ | ||
wdk.searchEntities = require('./queries/wikidata_search_entities'); | ||
wdk.searchEntities = require('./queries/search_entities'); | ||
wdk.getEntities = require('./queries/wikidata_get_entities'); | ||
wdk.getEntities = require('./queries/get_entities'); | ||
wdk.getManyEntities = require('./queries/wikidata_get_many_entities'); | ||
wdk.getManyEntities = require('./queries/get_many_entities'); | ||
wdk.getWikidataIdsFromSitelinks = require('./queries/get_wikidata_ids_from_sitelinks'); | ||
wdk.sparqlQuery = require('./queries/wikidata_sparql_query'); | ||
wdk.sparqlQuery = require('./queries/sparql_query'); | ||
wdk.getReverseClaims = require('./queries/wdq_get_reverse_claims'); | ||
wdk.getReverseClaims = require('./queries/get_reverse_claims'); | ||
@@ -648,3 +624,3 @@ wdk.parse = require('./helpers/parse_responses'); | ||
wdk.simplifySparqlResults = require('./queries/wikidata_simplify_sparql_results'); | ||
wdk.simplifySparqlResults = require('./queries/simplify_sparql_results'); | ||
@@ -662,3 +638,3 @@ wdk.getWikidataIdsFromWikipediaTitles = wdk.getWikidataIdsFromSitelinks; | ||
},{"./helpers/helpers":1,"./helpers/parse_responses":2,"./helpers/simplify_claims":3,"./queries/get_wikidata_ids_from_sitelinks":5,"./queries/wdq_get_reverse_claims":6,"./queries/wikidata_get_entities":7,"./queries/wikidata_get_many_entities":8,"./queries/wikidata_search_entities":9,"./queries/wikidata_simplify_sparql_results":10,"./queries/wikidata_sparql_query":11}],16:[function(require,module,exports){ | ||
},{"./helpers/helpers":1,"./helpers/parse_responses":2,"./helpers/simplify_claims":3,"./queries/get_entities":5,"./queries/get_many_entities":6,"./queries/get_reverse_claims":7,"./queries/get_wikidata_ids_from_sitelinks":8,"./queries/search_entities":9,"./queries/simplify_sparql_results":10,"./queries/sparql_query":11}],16:[function(require,module,exports){ | ||
// Copyright Joyent, Inc. and other Node contributors. | ||
@@ -665,0 +641,0 @@ // |
@@ -1,1 +0,1 @@ | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.wdk=e()}}(function(){return function e(t,i,n){function r(s,o){if(!i[s]){if(!t[s]){var u="function"==typeof require&&require;if(!o&&u)return u(s,!0);if(a)return a(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var c=i[s]={exports:{}};t[s][0].call(c.exports,function(e){var i=t[s][1][e];return r(i?i:e)},c,c.exports,e,t,i,n)}return i[s].exports}for(var a="function"==typeof require&&require,s=0;s<n.length;s++)r(n[s]);return r}({1:[function(e,t,i){(function(){var i,n;n=e("./wikidata_time_to_date_object"),i={},i.isNumericId=function(e){return/^[0-9]+$/.test(e)},i.isWikidataId=function(e){return/^(Q|P)[0-9]+$/.test(e)},i.isWikidataEntityId=function(e){return/^Q[0-9]+$/.test(e)},i.isWikidataPropertyId=function(e){return/^P[0-9]+$/.test(e)},i.normalizeId=function(e,t,n){if(null==n&&(n="Q"),i.isNumericId(e))return t?e:""+n+e;if(i.isWikidataId(e))return t?e.slice(1):e;throw new Error("invalid id")},i.getNumericId=function(e){if(!i.isWikidataId(e))throw new Error("invalid wikidata id: "+e);return e.replace(/Q|P/,"")},i.normalizeIds=function(e,t,n){return null==n&&(n="Q"),e.map(function(e){return i.normalizeId(e,t,n)})},i.wikidataTimeToDateObject=n,i.wikidataTimeToEpochTime=function(e){return n(e).getTime()},i.wikidataTimeToISOString=function(e){return n(e).toISOString()},i.normalizeWikidataTime=i.wikidataTimeToEpochTime,t.exports=i}).call(this)},{"./wikidata_time_to_date_object":4}],2:[function(e,t,i){(function(){var i,n;n=e("./helpers"),i=e("./simplify_claims"),t.exports={wd:{entities:function(e){var t,n,r;e=e.body||e,t=e.entities;for(r in t)n=t[r],n.claims=i(n.claims);return t}},wdq:{entities:function(e){var t;return e=e.body||e,null!=(t=e.items)?t.map(function(e){return n.normalizeId(e)}):void 0}}}}).call(this)},{"./helpers":1,"./simplify_claims":3}],3:[function(e,t,i){(function(){var i,n,r,a,s,o;o=e("./helpers"),a=function(e){var t,i,n;n={};for(t in e)i=e[t],n[t]=s(i);return n},s=function(e){return e.map(r).filter(n)},n=function(e){return null!=e},r=function(e){var t,n,r;if(r=e.mainsnak,null==r)return null;if(t=r.datatype,n=r.datavalue,null==n)return null;switch(t){case"string":case"commonsMedia":case"url":case"external-id":return n.value;case"monolingualtext":return n.value.text;case"wikibase-item":return"Q"+n.value["numeric-id"];case"time":return o.normalizeWikidataTime(n.value.time);case"globe-coordinate":return i(n.value);default:return null}},i=function(e){var t,i;return t=e.latitude,i=e.longitude,[t,i]},t.exports={simplifyClaims:a,simplifyPropertyClaims:s,simplifyClaim:r}}).call(this)},{"./helpers":1}],4:[function(e,t,i){(function(){var e,i,n,r;t.exports=function(t){var i,r,a;return a=t[0],r=t.slice(1),i=e(a,r),"Invalid Date"===i.toString()?n(a,r):i},e=function(e,t){return"-"===e?i(t):r(t)},r=function(e){return new Date(e)},i=function(e){var t;return t="-00"+e,new Date(t)},n=function(t,i){var n,r,a,s;return a=i.split("T")[0].split("-"),s=a[0],r=a[1],n=a[2],e(t,s)}}).call(this)},{}],5:[function(e,t,i){(function(){var i,n,r,a,s,o;i=e("../utils/build_url"),s=e("../utils/utils"),r=s.isPlainObject,n=s.forceArray,o=s.shortLang,t.exports=function(e,t,s,u,l){var c,f;if(r(e)&&(f=e,e=f.titles,t=f.sites,s=f.languages,u=f.props,l=f.format),l||(l="json"),null==e||0===e.length)throw new Error("no title provided");return null!=t&&0!==t.length||(t=["enwiki"]),e=n(e),t=n(t).map(a),u=n(u),c={action:"wbgetentities",titles:e.join("|"),sites:t.join("|"),format:l},null!=s&&(s=n(s).map(o),c.languages=s.join("|")),(null!=u?u.length:void 0)>0&&(c.props=u.join("|")),i("wikidata",c)},a=function(e){return 2===e.length?e+"wiki":e}}).call(this)},{"../utils/build_url":12,"../utils/utils":14}],6:[function(e,t,i){(function(){var i,n,r;i=e("../utils/build_url"),n=e("../helpers/helpers"),r={claim:function(e,t){return e=n.normalizeId(e,!0),t=n.normalizeId(t,!0),i("wdq",{q:"CLAIM["+e+":"+t+"]"})},string:function(e,t){return e=n.normalizeId(e,!0),i("wdq",{q:"STRING["+e+":"+t+"]"})}},t.exports=function(e,t){return n.isWikidataEntityId(t)?r.claim(e,t):r.string(e,t)}}).call(this)},{"../helpers/helpers":1,"../utils/build_url":12}],7:[function(e,t,i){(function(){var i,n,r,a,s,o;o=e("../helpers/helpers"),i=e("../utils/build_url"),a=e("../utils/utils"),r=a.isPlainObject,n=a.forceArray,s=a.shortLang,t.exports=function(e,t,a,u){var l,c;if(r(e)&&(c=e,e=c.ids,t=c.languages,a=c.props,u=c.format),u||(u="json"),null==e&&0!==e.length)throw new Error("no id provided");return e.length>50&&console.warn("getEntities accepts 50 ids max to match Wikidata API limitations:\nthis request won't get all the desired entities.\nYou can use getManyEntities instead to generate several request urls\nto work around this limitation"),e=o.normalizeIds(n(e)),a=n(a),l={action:"wbgetentities",ids:e.join("|"),format:u},null!=t&&(t=n(t).map(s),l.languages=t.join("|")),(null!=a?a.length:void 0)>0&&(l.props=a.join("|")),i("wikidata",l)}}).call(this)},{"../helpers/helpers":1,"../utils/build_url":12,"../utils/utils":14}],8:[function(e,t,i){(function(){var i,n,r;i=e("./wikidata_get_entities"),r=e("../utils/utils").isPlainObject,t.exports=function(e,t,a,s){var o;if(r(e)&&(o=e,e=o.ids,t=o.languages,a=o.props,s=o.format),!(e instanceof Array))throw new Error("getManyEntities expects an array of ids");return n(e).map(function(e){return i(e,t,a,s)})},n=function(e){var t,i;for(i=[];e.length>0;)t=e.slice(0,50),e=e.slice(50),i.push(t);return i}}).call(this)},{"../utils/utils":14,"./wikidata_get_entities":7}],9:[function(e,t,i){(function(){var i,n,r;r=e("../helpers/helpers"),i=e("../utils/build_url"),n=e("../utils/utils").isPlainObject,t.exports=function(e,t,r,a,s){var o;if(n(e)&&(o=e,e=o.search,t=o.language,r=o.limit,a=o.format,s=o.uselang),!((null!=e?e.length:void 0)>0))throw new Error("search can't be empty");return t||(t="en"),s||(s=t),r||(r="20"),a||(a="json"),i("wikidata",{action:"wbsearchentities",search:e,language:t,limit:r,format:a,uselang:s})}}).call(this)},{"../helpers/helpers":1,"../utils/build_url":12,"../utils/utils":14}],10:[function(e,t,i){(function(){var e,i,n,r,a=[].indexOf||function(e){for(var t=0,i=this.length;t<i;t++)if(t in this&&this[t]===e)return t;return-1};t.exports=function(t){var i,n,a,s,o,u;return"string"==typeof t&&(t=JSON.parse(t)),s=t.head.vars,n=t.results.bindings,1===s.length?(a=s[0],n.map(function(e){return r(e[a])}).filter(function(e){return null!=e})):(i=e(s),o=i[0],u=i[1],n.map(function(e){var t,i,n,s,l;for(l={},t=0,n=o.length;t<n;t++)a=o[t],l[a]={value:r(e[a]),label:e[a+"Label"].value};for(i=0,s=u.length;i<s;i++)a=u[i],l[a]=r(e[a]);return l}))},r=function(e){var t;if(null!=e)switch(e.type){case"uri":return n(e.value);case"bnode":return null;default:switch(null!=(t=e.datatype)?t.replace("http://www.w3.org/2001/XMLSchema#",""):void 0){case"decimal":case"integer":case"float":case"double":return parseFloat(e.value);case"boolean":return"true"===e.value;default:return e.value}}},n=function(e){return e.replace("http://www.wikidata.org/entity/","")},i=function(e){return/^\w+Label$/.test(e)},e=function(e){var t,i,n,r,s,o;for(s=[],o=[],t=0,i=e.length;t<i;t++)r=e[t],n=r+"Label",a.call(e,n)>=0?s.push(r):/^\w+Label$/.test(r)||o.push(r);return[s,o]}}).call(this)},{}],11:[function(e,t,i){(function(){t.exports=function(e){var t;return t=encodeURIComponent(e),"https://query.wikidata.org/sparql?format=json&query="+t}}).call(this)},{}],12:[function(e,t,i){(function(){var i,n,r;try{n=e("querystring")}catch(t){i=t,n=e("./querystring_lite")}r={wikidata:"https://www.wikidata.org/w/api.php",commons:"http://commons.wikimedia.org",wdq:"http://wdq.wmflabs.org/api"},t.exports=function(e,t){return r[e]+"?"+n.stringify(t)}}).call(this)},{"./querystring_lite":13,querystring:18}],13:[function(e,t,i){(function(){t.exports={stringify:function(e){var t,i,n;i="";for(t in e)n=e[t],null!=n&&(i+="&"+t+"="+n);return i=i.slice(1),"undefined"!=typeof encodeURI&&null!==encodeURI?encodeURI(i):i}}}).call(this)},{}],14:[function(e,t,i){(function(){t.exports={shortLang:function(e){return e.slice(0,3)},forceArray:function(e){return"string"==typeof e&&(e=[e]),e||[]},isPlainObject:function(e){return null!=e&&("object"==typeof e&&!(e instanceof Array))}}}).call(this)},{}],15:[function(e,t,i){(function(){var i,n,r,a,s,o,u,l;t.exports=l={},i=e("./helpers/helpers"),l.searchEntities=e("./queries/wikidata_search_entities"),l.getEntities=e("./queries/wikidata_get_entities"),l.getManyEntities=e("./queries/wikidata_get_many_entities"),l.getWikidataIdsFromSitelinks=e("./queries/get_wikidata_ids_from_sitelinks"),l.sparqlQuery=e("./queries/wikidata_sparql_query"),l.getReverseClaims=e("./queries/wdq_get_reverse_claims"),l.parse=e("./helpers/parse_responses"),r=e("./helpers/simplify_claims"),a=r.simplifyClaim,o=r.simplifyPropertyClaims,s=r.simplifyClaims,l.simplifyClaim=a,l.simplifyPropertyClaims=o,l.simplifyClaims=s,l.simplifySparqlResults=e("./queries/wikidata_simplify_sparql_results"),l.getWikidataIdsFromWikipediaTitles=l.getWikidataIdsFromSitelinks,l.helpers=i;for(n in i)u=i[n],l[n]=u}).call(this)},{"./helpers/helpers":1,"./helpers/parse_responses":2,"./helpers/simplify_claims":3,"./queries/get_wikidata_ids_from_sitelinks":5,"./queries/wdq_get_reverse_claims":6,"./queries/wikidata_get_entities":7,"./queries/wikidata_get_many_entities":8,"./queries/wikidata_search_entities":9,"./queries/wikidata_simplify_sparql_results":10,"./queries/wikidata_sparql_query":11}],16:[function(e,t,i){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,i,a){t=t||"&",i=i||"=";var s={};if("string"!=typeof e||0===e.length)return s;var o=/\+/g;e=e.split(t);var u=1e3;a&&"number"==typeof a.maxKeys&&(u=a.maxKeys);var l=e.length;u>0&&l>u&&(l=u);for(var c=0;c<l;++c){var f,d,p,m,h=e[c].replace(o,"%20"),g=h.indexOf(i);g>=0?(f=h.substr(0,g),d=h.substr(g+1)):(f=h,d=""),p=decodeURIComponent(f),m=decodeURIComponent(d),n(s,p)?r(s[p])?s[p].push(m):s[p]=[s[p],m]:s[p]=m}return s};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],17:[function(e,t,i){"use strict";function n(e,t){if(e.map)return e.map(t);for(var i=[],n=0;n<e.length;n++)i.push(t(e[n],n));return i}var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};t.exports=function(e,t,i,o){return t=t||"&",i=i||"=",null===e&&(e=void 0),"object"==typeof e?n(s(e),function(s){var o=encodeURIComponent(r(s))+i;return a(e[s])?n(e[s],function(e){return o+encodeURIComponent(r(e))}).join(t):o+encodeURIComponent(r(e[s]))}).join(t):o?encodeURIComponent(r(o))+i+encodeURIComponent(r(e)):""};var a=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},s=Object.keys||function(e){var t=[];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.push(i);return t}},{}],18:[function(e,t,i){"use strict";i.decode=i.parse=e("./decode"),i.encode=i.stringify=e("./encode")},{"./decode":16,"./encode":17}]},{},[15])(15)}); | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.wdk=e()}}(function(){return function e(t,i,n){function r(a,o){if(!i[a]){if(!t[a]){var u="function"==typeof require&&require;if(!o&&u)return u(a,!0);if(s)return s(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=i[a]={exports:{}};t[a][0].call(c.exports,function(e){var i=t[a][1][e];return r(i?i:e)},c,c.exports,e,t,i,n)}return i[a].exports}for(var s="function"==typeof require&&require,a=0;a<n.length;a++)r(n[a]);return r}({1:[function(e,t,i){(function(){var i,n;n=e("./wikidata_time_to_date_object"),i={},i.isNumericId=function(e){return/^[0-9]+$/.test(e)},i.isWikidataId=function(e){return/^(Q|P)[0-9]+$/.test(e)},i.isWikidataEntityId=function(e){return/^Q[0-9]+$/.test(e)},i.isWikidataPropertyId=function(e){return/^P[0-9]+$/.test(e)},i.normalizeId=function(e,t,n){if(null==n&&(n="Q"),i.isNumericId(e))return t?e:""+n+e;if(i.isWikidataId(e))return t?e.slice(1):e;throw new Error("invalid id")},i.getNumericId=function(e){if(!i.isWikidataId(e))throw new Error("invalid wikidata id: "+e);return e.replace(/Q|P/,"")},i.normalizeIds=function(e,t,n){return null==n&&(n="Q"),e.map(function(e){return i.normalizeId(e,t,n)})},i.wikidataTimeToDateObject=n,i.wikidataTimeToEpochTime=function(e){return n(e).getTime()},i.wikidataTimeToISOString=function(e){return n(e).toISOString()},i.normalizeWikidataTime=i.wikidataTimeToEpochTime,t.exports=i}).call(this)},{"./wikidata_time_to_date_object":4}],2:[function(e,t,i){(function(){var i;i=e("./simplify_claims"),t.exports={wd:{entities:function(e){var t,n,r;e=e.body||e,t=e.entities;for(r in t)n=t[r],n.claims=i(n.claims);return t}}}}).call(this)},{"./simplify_claims":3}],3:[function(e,t,i){(function(){var i,n,r,s,a,o;n=e("./helpers"),a=function(e){var t,i,n;n={};for(t in e)i=e[t],n[t]=o(i);return n},o=function(e){return e.map(s).filter(r)},r=function(e){return null!=e},s=function(e){var t,r,s;if(s=e.mainsnak,null==s)return null;if(t=s.datatype,r=s.datavalue,null==r)return null;switch(t){case"string":case"commonsMedia":case"url":case"external-id":return r.value;case"monolingualtext":return r.value.text;case"wikibase-item":return"Q"+r.value["numeric-id"];case"time":return n.normalizeWikidataTime(r.value.time);case"globe-coordinate":return i(r.value);default:return null}},i=function(e){var t,i;return t=e.latitude,i=e.longitude,[t,i]},t.exports={simplifyClaims:a,simplifyPropertyClaims:o,simplifyClaim:s}}).call(this)},{"./helpers":1}],4:[function(e,t,i){(function(){var e,i,n,r;t.exports=function(t){var i,r,s;return s=t[0],r=t.slice(1),i=e(s,r),"Invalid Date"===i.toString()?n(s,r):i},e=function(e,t){return"-"===e?i(t):r(t)},r=function(e){return new Date(e)},i=function(e){var t;return t="-00"+e,new Date(t)},n=function(t,i){var n,r,s,a;return s=i.split("T")[0].split("-"),a=s[0],r=s[1],n=s[2],e(t,a)}}).call(this)},{}],5:[function(e,t,i){(function(){var i,n,r,s,a,o;r=e("../helpers/helpers"),i=e("../utils/build_url"),a=e("../utils/utils"),s=a.isPlainObject,n=a.forceArray,o=a.shortLang,t.exports=function(e,t,a,u){var l,c;if(s(e)&&(c=e,e=c.ids,t=c.languages,a=c.props,u=c.format),u||(u="json"),null==e&&0!==e.length)throw new Error("no id provided");return e.length>50&&console.warn("getEntities accepts 50 ids max to match Wikidata API limitations:\nthis request won't get all the desired entities.\nYou can use getManyEntities instead to generate several request urls\nto work around this limitation"),e=r.normalizeIds(n(e)),a=n(a),l={action:"wbgetentities",ids:e.join("|"),format:u},null!=t&&(t=n(t).map(o),l.languages=t.join("|")),(null!=a?a.length:void 0)>0&&(l.props=a.join("|")),i("wikidata",l)}}).call(this)},{"../helpers/helpers":1,"../utils/build_url":12,"../utils/utils":14}],6:[function(e,t,i){(function(){var i,n,r;i=e("./get_entities"),r=e("../utils/utils").isPlainObject,t.exports=function(e,t,s,a){var o;if(r(e)&&(o=e,e=o.ids,t=o.languages,s=o.props,a=o.format),!(e instanceof Array))throw new Error("getManyEntities expects an array of ids");return n(e).map(function(e){return i(e,t,s,a)})},n=function(e){var t,i;for(i=[];e.length>0;)t=e.slice(0,50),e=e.slice(50),i.push(t);return i}}).call(this)},{"../utils/utils":14,"./get_entities":5}],7:[function(e,t,i){(function(){var i,n;i=e("../helpers/helpers"),n=e("./sparql_query"),t.exports=function(e,t,r){var s;return null==r&&(r=1e3),i.isWikidataEntityId(t)?t="wd:"+t:"string"==typeof t&&(t='"'+t+'"'),s="SELECT ?subject WHERE {\n ?subject wdt:"+e+" "+t+" .\n}\nLIMIT "+r,n(s)}}).call(this)},{"../helpers/helpers":1,"./sparql_query":11}],8:[function(e,t,i){(function(){var i,n,r,s,a,o;i=e("../utils/build_url"),a=e("../utils/utils"),r=a.isPlainObject,n=a.forceArray,o=a.shortLang,t.exports=function(e,t,a,u,l){var c,f;if(r(e)&&(f=e,e=f.titles,t=f.sites,a=f.languages,u=f.props,l=f.format),l||(l="json"),null==e||0===e.length)throw new Error("no title provided");return null!=t&&0!==t.length||(t=["enwiki"]),e=n(e),t=n(t).map(s),u=n(u),c={action:"wbgetentities",titles:e.join("|"),sites:t.join("|"),format:l},null!=a&&(a=n(a).map(o),c.languages=a.join("|")),(null!=u?u.length:void 0)>0&&(c.props=u.join("|")),i("wikidata",c)},s=function(e){return 2===e.length?e+"wiki":e}}).call(this)},{"../utils/build_url":12,"../utils/utils":14}],9:[function(e,t,i){(function(){var i,n;i=e("../utils/build_url"),n=e("../utils/utils").isPlainObject,t.exports=function(e,t,r,s,a){var o;if(n(e)&&(o=e,e=o.search,t=o.language,r=o.limit,s=o.format,a=o.uselang),!((null!=e?e.length:void 0)>0))throw new Error("search can't be empty");return t||(t="en"),a||(a=t),r||(r="20"),s||(s="json"),i("wikidata",{action:"wbsearchentities",search:e,language:t,limit:r,format:s,uselang:a})}}).call(this)},{"../utils/build_url":12,"../utils/utils":14}],10:[function(e,t,i){(function(){var e,i,n,r,s=[].indexOf||function(e){for(var t=0,i=this.length;t<i;t++)if(t in this&&this[t]===e)return t;return-1};t.exports=function(t){var i,n,s,a,o,u;return"string"==typeof t&&(t=JSON.parse(t)),a=t.head.vars,n=t.results.bindings,1===a.length?(s=a[0],n.map(function(e){return r(e[s])}).filter(function(e){return null!=e})):(i=e(a),o=i[0],u=i[1],n.map(function(e){var t,i,n,a,l;for(l={},t=0,n=o.length;t<n;t++)s=o[t],l[s]={value:r(e[s]),label:e[s+"Label"].value};for(i=0,a=u.length;i<a;i++)s=u[i],l[s]=r(e[s]);return l}))},r=function(e){var t;if(null!=e)switch(e.type){case"uri":return n(e.value);case"bnode":return null;default:switch(null!=(t=e.datatype)?t.replace("http://www.w3.org/2001/XMLSchema#",""):void 0){case"decimal":case"integer":case"float":case"double":return parseFloat(e.value);case"boolean":return"true"===e.value;default:return e.value}}},n=function(e){return e.replace("http://www.wikidata.org/entity/","")},i=function(e){return/^\w+Label$/.test(e)},e=function(e){var t,i,n,r,a,o;for(a=[],o=[],t=0,i=e.length;t<i;t++)r=e[t],n=r+"Label",s.call(e,n)>=0?a.push(r):/^\w+Label$/.test(r)||o.push(r);return[a,o]}}).call(this)},{}],11:[function(e,t,i){(function(){t.exports=function(e){var t;return t=encodeURIComponent(e),"https://query.wikidata.org/sparql?format=json&query="+t}}).call(this)},{}],12:[function(e,t,i){(function(){var i,n,r;try{n=e("querystring")}catch(t){i=t,n=e("./querystring_lite")}r={wikidata:"https://www.wikidata.org/w/api.php",commons:"http://commons.wikimedia.org"},t.exports=function(e,t){return r[e]+"?"+n.stringify(t)}}).call(this)},{"./querystring_lite":13,querystring:18}],13:[function(e,t,i){(function(){t.exports={stringify:function(e){var t,i,n;i="";for(t in e)n=e[t],null!=n&&(i+="&"+t+"="+n);return i=i.slice(1),"undefined"!=typeof encodeURI&&null!==encodeURI?encodeURI(i):i}}}).call(this)},{}],14:[function(e,t,i){(function(){t.exports={shortLang:function(e){return e.slice(0,3)},forceArray:function(e){return"string"==typeof e&&(e=[e]),e||[]},isPlainObject:function(e){return null!=e&&("object"==typeof e&&!(e instanceof Array))}}}).call(this)},{}],15:[function(e,t,i){(function(){var i,n,r,s,a,o,u,l;t.exports=l={},i=e("./helpers/helpers"),l.searchEntities=e("./queries/search_entities"),l.getEntities=e("./queries/get_entities"),l.getManyEntities=e("./queries/get_many_entities"),l.getWikidataIdsFromSitelinks=e("./queries/get_wikidata_ids_from_sitelinks"),l.sparqlQuery=e("./queries/sparql_query"),l.getReverseClaims=e("./queries/get_reverse_claims"),l.parse=e("./helpers/parse_responses"),r=e("./helpers/simplify_claims"),s=r.simplifyClaim,o=r.simplifyPropertyClaims,a=r.simplifyClaims,l.simplifyClaim=s,l.simplifyPropertyClaims=o,l.simplifyClaims=a,l.simplifySparqlResults=e("./queries/simplify_sparql_results"),l.getWikidataIdsFromWikipediaTitles=l.getWikidataIdsFromSitelinks,l.helpers=i;for(n in i)u=i[n],l[n]=u}).call(this)},{"./helpers/helpers":1,"./helpers/parse_responses":2,"./helpers/simplify_claims":3,"./queries/get_entities":5,"./queries/get_many_entities":6,"./queries/get_reverse_claims":7,"./queries/get_wikidata_ids_from_sitelinks":8,"./queries/search_entities":9,"./queries/simplify_sparql_results":10,"./queries/sparql_query":11}],16:[function(e,t,i){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,i,s){t=t||"&",i=i||"=";var a={};if("string"!=typeof e||0===e.length)return a;var o=/\+/g;e=e.split(t);var u=1e3;s&&"number"==typeof s.maxKeys&&(u=s.maxKeys);var l=e.length;u>0&&l>u&&(l=u);for(var c=0;c<l;++c){var f,p,d,m,h=e[c].replace(o,"%20"),g=h.indexOf(i);g>=0?(f=h.substr(0,g),p=h.substr(g+1)):(f=h,p=""),d=decodeURIComponent(f),m=decodeURIComponent(p),n(a,d)?r(a[d])?a[d].push(m):a[d]=[a[d],m]:a[d]=m}return a};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],17:[function(e,t,i){"use strict";function n(e,t){if(e.map)return e.map(t);for(var i=[],n=0;n<e.length;n++)i.push(t(e[n],n));return i}var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};t.exports=function(e,t,i,o){return t=t||"&",i=i||"=",null===e&&(e=void 0),"object"==typeof e?n(a(e),function(a){var o=encodeURIComponent(r(a))+i;return s(e[a])?n(e[a],function(e){return o+encodeURIComponent(r(e))}).join(t):o+encodeURIComponent(r(e[a]))}).join(t):o?encodeURIComponent(r(o))+i+encodeURIComponent(r(e)):""};var s=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},a=Object.keys||function(e){var t=[];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.push(i);return t}},{}],18:[function(e,t,i){"use strict";i.decode=i.parse=e("./decode"),i.encode=i.stringify=e("./encode")},{"./decode":16,"./encode":17}]},{},[15])(15)}); |
{ | ||
"name": "wikidata-sdk", | ||
"version": "3.2.4", | ||
"version": "4.0.0", | ||
"description": "a javascript tool suite to query and work with wikidata data", | ||
@@ -5,0 +5,0 @@ "main": "build/wikidata-sdk.js", |
@@ -10,3 +10,2 @@  | ||
- [Wikidata Query](http://query.wikidata.org/) (SPARQL) | ||
- [WMLabs WDQ](http://wdq.wmflabs.org/api_documentation.html) | ||
@@ -35,6 +34,7 @@ # Summary | ||
- [simplify sparql results](#simplify-sparql-results) | ||
- [WDQ queries](#wdq-queries) | ||
- [Other utils](#other-utils) | ||
- [A little CoffeeScript / Promises workflow demo](#a-little-coffeescript--promises-workflow-demo) | ||
- [Command Line Interface](#cli) | ||
- [Contributing](#contributing) | ||
- [See Also](#see-also) | ||
- [Command Line Interface tools](#command-line-interface-tools) | ||
- [License](#license) | ||
@@ -229,8 +229,5 @@ | ||
> **/!\ WDQ will be deprecated, use the [SPARQL endpoint](#sparql-queries) instead** | ||
In wikidata API answers, you can only access claims on the entity's page, not claims pointing to this entity (what would be in the "what links here" page). | ||
Fortunatly, you can query wikimedia awesome WDQ tool \o/ | ||
(And now also an even more awesome [SPARQL endpoint](#sparql-queries)) | ||
Fortunatly, we can use the [SPARQL endpoint](#sparql-queries) to get relations the other way around, answering the question "*what are the entities having this value for this property?*". This is `wdk.getReverseClaims``provides | ||
@@ -247,4 +244,4 @@ For instance, let's say you want to find all the entities that have Leo Tolstoy ([Q7243](http://www.wikidata.org/entity/Q7243)) for author ([P50](http://www.wikidata.org/entity/P50)) | ||
request(url, function(err, response){ | ||
if (err) { dealWithError(err) } | ||
var entities = wdk.parse.wdq.entities(response) | ||
if (err) return dealWithError(err) | ||
var entities = wdk.simplifySparqlResults(response.body) | ||
var url2 = wdk.getEntities(entities) | ||
@@ -255,3 +252,3 @@ request(url2 .... | ||
it also work for string values: e.g. let's say you want to find which book as 978-0-465-06710-7 for ISBN-13 ([P212](http://www.wikidata.org/entity/P212)): | ||
it also work for string values: e.g. let's say you want to find which book as `978-0-465-06710-7` for ISBN-13 ([P212](http://www.wikidata.org/entity/P212)): | ||
@@ -262,9 +259,9 @@ ```javascript | ||
### sparql queries | ||
### SPARQL queries | ||
But now, there is even more powerful than WDQ: the all mighty [Wikidata SPARQL endpoint](http://query.wikidata.org/)! | ||
SPARQL queries are the best way to extract knowledge from Wikidata entities graph. | ||
[SPARQL](https://en.wikipedia.org/wiki/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 [user manual](https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual), [an awesome tool to test you queries with autocomplete](https://query.wikidata.org/) and [lots of examples](https://www.mediawiki.org/wiki/Wikibase/Indexing/SPARQL_Query_Examples)! | ||
[SPARQL](https://en.wikipedia.org/wiki/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 [user manual](https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual), [an awesome tool to test you queries and visualize the result](https://query.wikidata.org/), a [tutorial](https://www.youtube.com/watch?v=oN5tdMSXWV8), and [lots of examples](https://www.mediawiki.org/wiki/Wikibase/Indexing/SPARQL_Query_Examples)! | ||
Then, to get JSON results you can [make a HTTP query to https://query.wikidata.org/sparql?query={SPARQL}&format=json](https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual#SPARQL_endpoint), which with Wdk can be done like this: | ||
Then, to get JSON results you can [make a HTTP query to https://query.wikidata.org/sparql?query={SPARQL}&format=json](https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual#SPARQL_endpoint), which with `wikidata-sdk` can be done like this: | ||
```javascript | ||
@@ -278,5 +275,2 @@ var url = wdk.sparqlQuery(SPARQL) | ||
var sparql = ` | ||
PREFIX wd: <http://www.wikidata.org/entity/> | ||
PREFIX wdt: <http://www.wikidata.org/prop/direct/> | ||
SELECT ?work ?date WHERE { | ||
@@ -462,5 +456,2 @@ ?work wdt:P50 wd:${authorQid} . | ||
### WDQ queries | ||
you can pass the results from `wdk.getReverseClaims` to `wdk.parse.wdq.entities`, it will return a list of Wikidata entities `Q` ids | ||
## Other utils | ||
@@ -496,6 +487,25 @@ | ||
## CLI | ||
moved to [wikidata-cli](https://npmjs.com/package/wikidata-cli) | ||
## Contributing | ||
Code contributions and propositions are very welcome, here are some design constraints you should be aware of: | ||
* `wikidata-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. | ||
* Therefore, it should focus on providing basic, general helper functions most application working with Wikidata would need | ||
## See Also | ||
### Command-Line Interface tools | ||
#### [wikidata-cli](https://www.npmjs.com/package/wikidata-cli) | ||
the command-line interface to Wikidata | ||
#### [wikidata-filter](https://npmjs.com/package/wikidata-filter) | ||
a command-line tool to filter a Wikidata dump by claim | ||
#### [wikidata-agent](https://github.com/maxlath/wikidata-agent) | ||
a small server to edit Wikidata from the terminal: | ||
`curl -X POST http://localhost:4115/claim -d 'entity=Q4115189&property=P2002&value=Zorg'` | ||
#### [wikidata-taxonomy](https://github.com/nichtich/wikidata-taxonomy) | ||
command-line tool to extract taxonomies from Wikidata | ||
# License | ||
[MIT](LICENSE.md) |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
425832
503
10663