wikidata-sdk
Advanced tools
Comparing version 3.1.0 to 3.2.0
@@ -31,2 +31,4 @@ // Generated by CoffeeScript 1.9.3 | ||
wdk.simplifySparqlResults = require('./queries/wikidata_simplify_sparql_results'); | ||
wdk.getWikidataIdsFromWikipediaTitles = wdk.getWikidataIdsFromSitelinks; | ||
@@ -33,0 +35,0 @@ |
# CHANGELOG | ||
*versions follow [SemVer](http://semver.org)* | ||
## 3.2.0 - 2016-06-06 | ||
* Added [wdk.simplifySparqlResults](https://github.com/maxlath/wikidata-sdk#simplify-sparql-results) | ||
## 3.1.0 - 2016-06-02 | ||
* Added [wdk.getManyEntities](https://github.com/maxlath/wikidata-sdk#get-many-entities-by-id) | ||
## 3.0.0 - 2016-05-13 | ||
@@ -5,0 +11,0 @@ * Extracting "bin" executables (qlabel, wikiqid) to there own modules: [wikidata-cli](https://npmjs.com/package/wikidata-cli). Bumping the major version as it could be considered a breaking change (despite the fact that those executables weren't really part of wikidata-sdk and that they were added very recently) |
@@ -446,3 +446,3 @@ (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){ | ||
},{"../utils/build_url":14,"../utils/utils":16}],9:[function(require,module,exports){ | ||
},{"../utils/build_url":15,"../utils/utils":17}],9:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.9.3 | ||
@@ -482,3 +482,3 @@ (function() { | ||
},{"../helpers/helpers":4,"../utils/build_url":14}],10:[function(require,module,exports){ | ||
},{"../helpers/helpers":4,"../utils/build_url":15}],10:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.9.3 | ||
@@ -525,3 +525,3 @@ (function() { | ||
},{"../helpers/helpers":4,"../utils/build_url":14,"../utils/utils":16}],11:[function(require,module,exports){ | ||
},{"../helpers/helpers":4,"../utils/build_url":15,"../utils/utils":17}],11:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.9.3 | ||
@@ -561,3 +561,3 @@ (function() { | ||
},{"../utils/utils":16,"./wikidata_get_entities":10}],12:[function(require,module,exports){ | ||
},{"../utils/utils":17,"./wikidata_get_entities":10}],12:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.9.3 | ||
@@ -597,5 +597,78 @@ (function() { | ||
},{"../helpers/helpers":4,"../utils/build_url":14,"../utils/utils":16}],13:[function(require,module,exports){ | ||
},{"../helpers/helpers":4,"../utils/build_url":15,"../utils/utils":17}],13:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.9.3 | ||
(function() { | ||
var identifyVars, isLabelKey, parseUri, parseValue, | ||
indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; | ||
module.exports = function(input) { | ||
var ref, results, varName, vars, varsWithLabel, varsWithout; | ||
if (typeof input === 'string') { | ||
input = JSON.parse(input); | ||
} | ||
vars = input.head.vars; | ||
results = input.results.bindings; | ||
if (vars.length === 1) { | ||
varName = vars[0]; | ||
return results.map(function(result) { | ||
return parseValue(result[varName]); | ||
}); | ||
} else { | ||
ref = identifyVars(vars), varsWithLabel = ref[0], varsWithout = ref[1]; | ||
return results.map(function(result) { | ||
var i, j, len, len1, simpifiedResult; | ||
simpifiedResult = {}; | ||
for (i = 0, len = varsWithLabel.length; i < len; i++) { | ||
varName = varsWithLabel[i]; | ||
simpifiedResult[varName] = { | ||
value: parseValue(result[varName]), | ||
label: result[varName + "Label"].value | ||
}; | ||
} | ||
for (j = 0, len1 = varsWithout.length; j < len1; j++) { | ||
varName = varsWithout[j]; | ||
simpifiedResult[varName] = parseValue(result[varName]); | ||
} | ||
return simpifiedResult; | ||
}); | ||
} | ||
}; | ||
parseValue = function(valueOjb) { | ||
switch (valueOjb.type) { | ||
case 'uri': | ||
return parseUri(valueOjb.value); | ||
default: | ||
return valueOjb.value; | ||
} | ||
}; | ||
parseUri = function(uri) { | ||
return uri.replace('http://www.wikidata.org/entity/', ''); | ||
}; | ||
isLabelKey = function(key) { | ||
return /^\w+Label$/.test(key); | ||
}; | ||
identifyVars = function(vars) { | ||
var i, len, ref, varName, varsWithLabel, varsWithoutLabel; | ||
varsWithLabel = []; | ||
varsWithoutLabel = []; | ||
for (i = 0, len = vars.length; i < len; i++) { | ||
varName = vars[i]; | ||
if (ref = varName + "Label", indexOf.call(vars, ref) >= 0) { | ||
varsWithLabel.push(varName); | ||
} else if (!/^\w+Label$/.test(varName)) { | ||
varsWithoutLabel.push(varName); | ||
} | ||
} | ||
return [varsWithLabel, varsWithoutLabel]; | ||
}; | ||
}).call(this); | ||
},{}],14:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.9.3 | ||
(function() { | ||
module.exports = function(sparql) { | ||
@@ -609,3 +682,3 @@ var query; | ||
},{}],14:[function(require,module,exports){ | ||
},{}],15:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.9.3 | ||
@@ -634,3 +707,3 @@ (function() { | ||
},{"./querystring_lite":15,"querystring":3}],15:[function(require,module,exports){ | ||
},{"./querystring_lite":16,"querystring":3}],16:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.9.3 | ||
@@ -658,3 +731,3 @@ (function() { | ||
},{}],16:[function(require,module,exports){ | ||
},{}],17:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.9.3 | ||
@@ -688,3 +761,3 @@ (function() { | ||
},{}],17:[function(require,module,exports){ | ||
},{}],18:[function(require,module,exports){ | ||
// Generated by CoffeeScript 1.9.3 | ||
@@ -720,2 +793,4 @@ (function() { | ||
wdk.simplifySparqlResults = require('./queries/wikidata_simplify_sparql_results'); | ||
wdk.getWikidataIdsFromWikipediaTitles = wdk.getWikidataIdsFromSitelinks; | ||
@@ -732,3 +807,3 @@ | ||
},{"./helpers/helpers":4,"./helpers/parse_responses":5,"./helpers/simplify_claims":6,"./queries/get_wikidata_ids_from_sitelinks":8,"./queries/wdq_get_reverse_claims":9,"./queries/wikidata_get_entities":10,"./queries/wikidata_get_many_entities":11,"./queries/wikidata_search_entities":12,"./queries/wikidata_sparql_query":13}]},{},[17])(17) | ||
},{"./helpers/helpers":4,"./helpers/parse_responses":5,"./helpers/simplify_claims":6,"./queries/get_wikidata_ids_from_sitelinks":8,"./queries/wdq_get_reverse_claims":9,"./queries/wikidata_get_entities":10,"./queries/wikidata_get_many_entities":11,"./queries/wikidata_search_entities":12,"./queries/wikidata_simplify_sparql_results":13,"./queries/wikidata_sparql_query":14}]},{},[18])(18) | ||
}); |
@@ -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(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){"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;l>c;++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(a,p)?r(a[p])?a[p].push(m):a[p]=[a[p],m]:a[p]=m}return a};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],2:[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}},{}],3:[function(e,t,i){"use strict";i.decode=i.parse=e("./decode"),i.encode=i.stringify=e("./encode")},{"./decode":1,"./encode":2}],4:[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":7}],5:[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":4,"./simplify_claims":6}],6:[function(e,t,i){(function(){var i,n,r,s,a;a=e("./helpers"),r=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(n).filter(i)},i=function(e){return null!=e},n=function(e){var t,i,n;if(n=e.mainsnak,null==n)return null;if(t=n.datatype,i=n.datavalue,null==i)return null;switch(t){case"string":case"commonsMedia":case"url":case"external-id":return i.value;case"monolingualtext":return i.value.text;case"wikibase-item":return"Q"+i.value["numeric-id"];case"time":return a.normalizeWikidataTime(i.value.time);default:return null}},t.exports={simplifyClaims:r,simplifyPropertyClaims:s,simplifyClaim:n}}).call(this)},{"./helpers":4}],7:[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)},{}],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":14,"../utils/utils":16}],9:[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":4,"../utils/build_url":14}],10:[function(e,t,i){(function(){var i,n,r,s,a,o;o=e("../helpers/helpers"),i=e("../utils/build_url"),s=e("../utils/utils"),r=s.isPlainObject,n=s.forceArray,a=s.shortLang,t.exports=function(e,t,s,u){var l,c;if(r(e)&&(c=e,e=c.ids,t=c.languages,s=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)),s=n(s),l={action:"wbgetentities",ids:e.join("|"),format:u},null!=t&&(t=n(t).map(a),l.languages=t.join("|")),(null!=s?s.length:void 0)>0&&(l.props=s.join("|")),i("wikidata",l)}}).call(this)},{"../helpers/helpers":4,"../utils/build_url":14,"../utils/utils":16}],11:[function(e,t,i){(function(){var i,n,r;i=e("./wikidata_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":16,"./wikidata_get_entities":10}],12:[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,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)},{"../helpers/helpers":4,"../utils/build_url":14,"../utils/utils":16}],13:[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)},{}],14:[function(e,t,i){(function(){var i,n,r;try{n=e("querystring")}catch(s){i=s,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":15,querystring:3}],15:[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)},{}],16:[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?!1:"object"!=typeof e?!1:e instanceof Array?!1:!0}}}).call(this)},{}],17:[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/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"),s=r.simplifyClaim,o=r.simplifyPropertyClaims,a=r.simplifyClaims,l.simplifyClaim=s,l.simplifyPropertyClaims=o,l.simplifyClaims=a,l.getWikidataIdsFromWikipediaTitles=l.getWikidataIdsFromSitelinks,l.helpers=i;for(n in i)u=i[n],l[n]=u}).call(this)},{"./helpers/helpers":4,"./helpers/parse_responses":5,"./helpers/simplify_claims":6,"./queries/get_wikidata_ids_from_sitelinks":8,"./queries/wdq_get_reverse_claims":9,"./queries/wikidata_get_entities":10,"./queries/wikidata_get_many_entities":11,"./queries/wikidata_search_entities":12,"./queries/wikidata_sparql_query":13}]},{},[17])(17)}); | ||
!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){"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;l>c;++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(s,d)?r(s[d])?s[d].push(m):s[d]=[s[d],m]:s[d]=m}return s};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],2:[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}},{}],3:[function(e,t,i){"use strict";i.decode=i.parse=e("./decode"),i.encode=i.stringify=e("./encode")},{"./decode":1,"./encode":2}],4:[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":7}],5:[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":4,"./simplify_claims":6}],6:[function(e,t,i){(function(){var i,n,r,a,s;s=e("./helpers"),r=function(e){var t,i,n;n={};for(t in e)i=e[t],n[t]=a(i);return n},a=function(e){return e.map(n).filter(i)},i=function(e){return null!=e},n=function(e){var t,i,n;if(n=e.mainsnak,null==n)return null;if(t=n.datatype,i=n.datavalue,null==i)return null;switch(t){case"string":case"commonsMedia":case"url":case"external-id":return i.value;case"monolingualtext":return i.value.text;case"wikibase-item":return"Q"+i.value["numeric-id"];case"time":return s.normalizeWikidataTime(i.value.time);default:return null}},t.exports={simplifyClaims:r,simplifyPropertyClaims:a,simplifyClaim:n}}).call(this)},{"./helpers":4}],7:[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)},{}],8:[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":15,"../utils/utils":17}],9:[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":4,"../utils/build_url":15}],10:[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":4,"../utils/build_url":15,"../utils/utils":17}],11:[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":17,"./wikidata_get_entities":10}],12:[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":4,"../utils/build_url":15,"../utils/utils":17}],13:[function(e,t,i){(function(){var e,i,n,r,a=[].indexOf||function(e){for(var t=0,i=this.length;i>t;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])})):(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;n>t;t++)a=o[t],l[a]={value:r(e[a]),label:e[a+"Label"].value};for(i=0,s=u.length;s>i;i++)a=u[i],l[a]=r(e[a]);return l}))},r=function(e){switch(e.type){case"uri":return n(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;i>t;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)},{}],14:[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)},{}],15:[function(e,t,i){(function(){var i,n,r;try{n=e("querystring")}catch(a){i=a,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":16,querystring:3}],16:[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)},{}],17:[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?!1:"object"!=typeof e?!1:e instanceof Array?!1:!0}}}).call(this)},{}],18:[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":4,"./helpers/parse_responses":5,"./helpers/simplify_claims":6,"./queries/get_wikidata_ids_from_sitelinks":8,"./queries/wdq_get_reverse_claims":9,"./queries/wikidata_get_entities":10,"./queries/wikidata_get_many_entities":11,"./queries/wikidata_search_entities":12,"./queries/wikidata_simplify_sparql_results":13,"./queries/wikidata_sparql_query":14}]},{},[18])(18)}); |
{ | ||
"name": "wikidata-sdk", | ||
"version": "3.1.0", | ||
"version": "3.2.0", | ||
"description": "a javascript tool suite to query and work with wikidata data", | ||
@@ -5,0 +5,0 @@ "main": "build/wikidata-sdk.js", |
@@ -28,7 +28,9 @@  | ||
- [Wikidata API queries](#wikidata-api-queries) | ||
- [WDQ queries](#wdq-queries) | ||
- [simplify claims results](#simplify-claims-results) | ||
- [simplify claims results](#simplify-claims-results) | ||
- [simplifyClaims](#simplifyclaims) | ||
- [simplifyPropertyClaims](#simplifypropertyclaims) | ||
- [simplifyClaim](#simplifyclaim) | ||
- [Wikidata Query (SPARQL) results](#wikidata-query-sparql-results) | ||
- [simplify sparql results](#simplify-sparql-results) | ||
- [WDQ queries](#wdq-queries) | ||
- [Other utils](#other-utils) | ||
@@ -177,3 +179,3 @@ - [A little CoffeeScript / Promises workflow demo](#a-little-coffeescript--promises-workflow-demo) | ||
:warning: This limitation policy was probably there for a reason, right? This should be the exception, make sure to set an interval between your requests (500ms, 1s?), and if you really need a lot of entities, consider using [dumps](https://www.wikidata.org/wiki/Wikidata:Database_download#JSON_dumps_.28recommended.29): there are [great tools](https://github.com/maxlath/wikidata-filter) to work with those too! | ||
:warning: This limitation policy was probably there for a reason, right? This should be the exception, make sure to set an interval between your requests (500ms, 1s?), and if you really need a lot of entities, consider using [dumps](https://www.wikidata.org/wiki/Wikidata:Database_download#JSON_dumps_.28recommended.29): there are [great tools](https://github.com/maxlath/wikidata-filter) to work with those too! ;) | ||
@@ -296,6 +298,3 @@ ### get entities by Wikipedia titles | ||
### 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 | ||
### Simplify claims results | ||
#### Simplify claims results | ||
*associated Wikidata doc: [DataModel](https://www.mediawiki.org/wiki/Wikibase/DataModel)* | ||
@@ -370,3 +369,3 @@ | ||
#### simplifyClaims | ||
##### simplifyClaims | ||
you just need to pass your entity' claims object to simplifyClaims as such: | ||
@@ -390,3 +389,3 @@ ```javascript | ||
#### simplifyPropertyClaims | ||
##### simplifyPropertyClaims | ||
Same as simplifyClaims but expects an array of claims, typically the array of claims of a specific property: | ||
@@ -397,3 +396,3 @@ ```javascript | ||
#### simplifyClaim | ||
##### simplifyClaim | ||
Same as simplifyClaims but expects a unique claim | ||
@@ -404,2 +403,66 @@ ```javascript | ||
### Wikidata Query (SPARQL) results | ||
#### simplify sparql results | ||
With [SPARQL queries](#sparql-queries), you get results that look like this: | ||
```json | ||
{ | ||
"head" : { | ||
"vars" : [ "author", "authorLabel", "birth" ] | ||
}, | ||
"results" : { | ||
"bindings" : [ { | ||
"author" : { | ||
"type" : "uri", | ||
"value" : "http://www.wikidata.org/entity/Q3731207" | ||
}, | ||
"authorLabel" : { | ||
"xml:lang" : "en", | ||
"type" : "literal", | ||
"value" : "Ercole Patti" | ||
}, | ||
"birth" : { | ||
"datatype" : "http://www.w3.org/2001/XMLSchema#integer", | ||
"type" : "literal", | ||
"value" : "1903" | ||
} | ||
} | ||
] | ||
} | ||
} | ||
``` | ||
`simplifySparqlResults` converts it to a way simpler: | ||
```json | ||
[ | ||
{ | ||
"author": { | ||
"value": "Q3731207", | ||
"label": "Ercole Patti" | ||
}, | ||
"birth": "1903" | ||
} | ||
] | ||
``` | ||
That's style hairy, because we requested 3 variables, but this gets even simpler if there is only one variable! | ||
Say instead of `"vars" : [ "author", "authorLabel", "birth" ]`, we only ask for `"vars" : [ "author" ]`, the output of `simplifySparqlResults` will be: | ||
```json | ||
["Q3731207"] | ||
``` | ||
And then to make it even more simpler, we can... hum no, that's all we got. | ||
Use it like so: | ||
```javascript | ||
var simplifiedResults = wdk.simplifySparqlResults(results) | ||
``` | ||
or for a more complete example (using [promises](https://www.promisejs.org)) | ||
```javascript | ||
// see the "SPARQL Query" section above | ||
var url = wdk.sparqlQuery(SPARQL) | ||
promiseRequest(url) | ||
.then(wdk.simplifySparqlResults) | ||
.then((simplifiedResults) => { // do awesome stuffs here }) | ||
``` | ||
### 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 | ||
@@ -420,3 +483,3 @@ | ||
### A little [CoffeeScript](coffeescript.org) / [Promises](https://www.youtube.com/watch?v=qbKWsbJ76-s) workflow demo | ||
### A little [CoffeeScript](coffeescript.org) / [Promises](https://www.promisejs.org) workflow demo | ||
that's how I love to work :) | ||
@@ -423,0 +486,0 @@ |
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
63
496
276316
6586