wikidata 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +92 -0
- data/Rakefile +1 -0
- data/bin/wikidata +9 -0
- data/lib/wikidata/command_line.rb +46 -0
- data/lib/wikidata/datavalues/entity.rb +44 -0
- data/lib/wikidata/datavalues/globecoordinate.rb +11 -0
- data/lib/wikidata/datavalues/string.rb +11 -0
- data/lib/wikidata/datavalues/time.rb +15 -0
- data/lib/wikidata/datavalues/value.rb +11 -0
- data/lib/wikidata/entity.rb +54 -0
- data/lib/wikidata/hashed_object.rb +19 -0
- data/lib/wikidata/identity_map.rb +21 -0
- data/lib/wikidata/item.rb +23 -0
- data/lib/wikidata/property.rb +5 -0
- data/lib/wikidata/snak.rb +31 -0
- data/lib/wikidata/statement.rb +9 -0
- data/lib/wikidata/version.rb +3 -0
- data/lib/wikidata.rb +28 -0
- data/wikidata.gemspec +29 -0
- metadata +179 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f223b20d51a96728ef812814f1812f1628a86efc
|
4
|
+
data.tar.gz: 0b20f8f264dca6b052f01c34d28feb98a48a4705
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f29089ce4c8ab0262d00cb12cc865b9da8bba14b9259a323f75939725d8dffb581bfc473f079f88b5bb1379e728996d5fbf9d0502bdcfbcceb1c745d68f353c6
|
7
|
+
data.tar.gz: 370fdf6fef4555678d60e29c9ebab43b8863804f9de89be7c42a63f14aaea483033b16c03af524f584782159dfa327ea91194d8662df7610ee7cff3a9e9640e1
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Wil Gieseler
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
# Wikidata for Ruby
|
2
|
+
|
3
|
+
Access all of the wonderful structured data on [Wikidata](http://www.wikidata.org), with Ruby! Also includes a convenient CLI.
|
4
|
+
|
5
|
+
Very much a work in progress, so only a few basic things are working.
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
gem 'wikidata'
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install wikidata
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
### Command Line
|
24
|
+
|
25
|
+
See all the claims for a particular topic.
|
26
|
+
|
27
|
+
$ wikidata find "Kyle Chandler"
|
28
|
+
|
29
|
+
This will fetch all the data (called "claims") Wikidata has on superstar actor Kyle Chandler and print it out in the terminal, like so:
|
30
|
+
|
31
|
+
Kyle Chandler
|
32
|
+
Wikidata ID: Q359604
|
33
|
+
Claims: 14
|
34
|
+
+-------------+---------------------------------------------------------------------+
|
35
|
+
| property_id | value |
|
36
|
+
+-------------+---------------------------------------------------------------------+
|
37
|
+
| P21 | Q6581097 |
|
38
|
+
+-------------+---------------------------------------------------------------------+
|
39
|
+
| P27 | Q30 |
|
40
|
+
+-------------+---------------------------------------------------------------------+
|
41
|
+
| P106 | Q33999 |
|
42
|
+
+-------------+---------------------------------------------------------------------+
|
43
|
+
| P373 | Kyle Chandler |
|
44
|
+
+-------------+---------------------------------------------------------------------+
|
45
|
+
(...)
|
46
|
+
|
47
|
+
You'll notice that doesn't seem very useful for humans, because Wikidata property keys and many of its values are not human readable. To have the gem resolve all of these opaque identifiers (which adds extra network calls), pass `-r`.
|
48
|
+
|
49
|
+
$ wikidata find "Kyle Chandler" -r
|
50
|
+
|
51
|
+
That will provide more useful results:
|
52
|
+
|
53
|
+
(...)
|
54
|
+
+------------------------+------+---------------------------------------------------------------------+
|
55
|
+
| sex (or gender) | P21 | male (Q6581097) |
|
56
|
+
+------------------------+------+---------------------------------------------------------------------+
|
57
|
+
| country of citizenship | P27 | United States of America (Q30) |
|
58
|
+
+------------------------+------+---------------------------------------------------------------------+
|
59
|
+
| occupation | P106 | actor / actress (Q33999) |
|
60
|
+
+------------------------+------+---------------------------------------------------------------------+
|
61
|
+
| IMDb identifier | P345 | nm0151419 |
|
62
|
+
+------------------------+------+---------------------------------------------------------------------+
|
63
|
+
| place of birth | P19 | Buffalo (Q40435) |
|
64
|
+
+------------------------+------+---------------------------------------------------------------------+
|
65
|
+
| date of birth | P569 | 1965-09-17T00:00:00+00:00 |
|
66
|
+
+------------------------+------+---------------------------------------------------------------------+
|
67
|
+
(...)
|
68
|
+
|
69
|
+
Much better!
|
70
|
+
|
71
|
+
### In Ruby
|
72
|
+
|
73
|
+
You can use a convenient ActiveRecord-inspired syntax for finding information:
|
74
|
+
|
75
|
+
```ruby
|
76
|
+
los_angeles = Wikidata::Item.find_by_title "Los Angeles"
|
77
|
+
los_angeles.id # => "Q65"
|
78
|
+
|
79
|
+
# Let's find the mayor.
|
80
|
+
mayor = los_angeles.claims_for_property_id("P6").first.mainsnak.value.entity
|
81
|
+
mayor.label # => "Eric Garcetti"
|
82
|
+
```
|
83
|
+
|
84
|
+
That's the basics!
|
85
|
+
|
86
|
+
## Contributing
|
87
|
+
|
88
|
+
1. Fork it ( http://github.com/<my-github-username>/wikidata/fork )
|
89
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
90
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
91
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
92
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/bin/wikidata
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
module Wikidata
|
2
|
+
require 'thor'
|
3
|
+
require 'colorize'
|
4
|
+
require 'formatador'
|
5
|
+
|
6
|
+
class CommandLine < Thor
|
7
|
+
|
8
|
+
desc "find ARTICLE_NAME", "find a Wikidata entity by name"
|
9
|
+
method_option :resolve_properties, :default => false, type: :boolean, aliases: "-r"
|
10
|
+
def find(article_name)
|
11
|
+
display_item Wikidata::Item.find_by_title(article_name)
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "get ID", "find a Wikidata entity by ID"
|
15
|
+
method_option :resolve_properties, :default => false, type: :boolean, aliases: "-r"
|
16
|
+
def get(article_id)
|
17
|
+
display_item Wikidata::Item.find_by_id(article_id)
|
18
|
+
end
|
19
|
+
|
20
|
+
protected
|
21
|
+
|
22
|
+
def display_item(item)
|
23
|
+
if item
|
24
|
+
puts " #{item.label.green}" if item.label
|
25
|
+
puts " #{item.description.cyan}" if item.description
|
26
|
+
puts " Wikidata ID: #{item.id}"
|
27
|
+
puts " Claims: #{item.claims.length}" if item.claims
|
28
|
+
if item.claims.length > 0
|
29
|
+
if options[:resolve_properties]
|
30
|
+
table_data = item.claims.map do |claim|
|
31
|
+
{ :id => claim.mainsnak.property_id,
|
32
|
+
'Property Label' => claim.mainsnak.property.label,
|
33
|
+
value: claim.mainsnak.value.resolved}
|
34
|
+
end
|
35
|
+
else
|
36
|
+
table_data = item.claims.map do |claim|
|
37
|
+
{:property_id => claim.mainsnak.property_id, value: claim.mainsnak.value}
|
38
|
+
end
|
39
|
+
end
|
40
|
+
Formatador.display_table(table_data)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Wikidata
|
2
|
+
module DataValues
|
3
|
+
class Entity < Wikidata::DataValues::Value
|
4
|
+
|
5
|
+
def kind
|
6
|
+
data_hash['entity-type']
|
7
|
+
end
|
8
|
+
|
9
|
+
def numeric_id
|
10
|
+
data_hash['numeric-id']
|
11
|
+
end
|
12
|
+
|
13
|
+
def item_id
|
14
|
+
"Q#{numeric_id}"
|
15
|
+
end
|
16
|
+
|
17
|
+
def entity
|
18
|
+
if kind == 'item'
|
19
|
+
@item ||= Wikidata::Item.find_by_id(item_id)
|
20
|
+
else
|
21
|
+
raise "Unknown entity type"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def resolve!
|
26
|
+
entity
|
27
|
+
end
|
28
|
+
|
29
|
+
def resolved
|
30
|
+
resolve!
|
31
|
+
super
|
32
|
+
end
|
33
|
+
|
34
|
+
def to_s
|
35
|
+
if @item.nil?
|
36
|
+
item_id
|
37
|
+
else
|
38
|
+
"#{@item.label} (#{item_id})"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Wikidata
|
2
|
+
class Entity < Wikidata::HashedObject
|
3
|
+
|
4
|
+
def self.find_all query
|
5
|
+
Wikidata::IdentityMap.cache "#{query.hash}" do
|
6
|
+
query = {
|
7
|
+
action: 'wbgetentities',
|
8
|
+
sites: 'enwiki',
|
9
|
+
format: 'json'
|
10
|
+
}.merge(Wikidata.default_languages_hash).merge(query)
|
11
|
+
response = HTTParty.get('http://www.wikidata.org/w/api.php', {query: query})
|
12
|
+
# puts "Getting: #{query}"
|
13
|
+
response['entities'].map do |entity_id, entity_hash|
|
14
|
+
new(entity_hash)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.find_all_by_id id, query = {}
|
20
|
+
find_all({ids: id}.merge(query))
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.find_by_id *args
|
24
|
+
find_all_by_id(*args).first
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.find_all_by_title title, query = {}
|
28
|
+
find_all({titles: title}.merge(query))
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.find_by_title *args
|
32
|
+
find_all_by_title(*args).first
|
33
|
+
end
|
34
|
+
|
35
|
+
def inspect
|
36
|
+
"<#{self.class.to_s} id=#{id}>"
|
37
|
+
end
|
38
|
+
|
39
|
+
def delocalize(hash, locale = I18n.default_locale)
|
40
|
+
return nil unless hash
|
41
|
+
h = hash[locale.to_s]
|
42
|
+
h ? h.value : nil
|
43
|
+
end
|
44
|
+
|
45
|
+
def label(*args)
|
46
|
+
delocalize self.data_hash.labels, *args
|
47
|
+
end
|
48
|
+
|
49
|
+
def description(*args)
|
50
|
+
delocalize self.data_hash.descriptions, *args
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Wikidata
|
2
|
+
class HashedObject
|
3
|
+
|
4
|
+
attr_reader :data_hash
|
5
|
+
|
6
|
+
def initialize(data_hash)
|
7
|
+
@data_hash = Hashie::Mash.new(data_hash)
|
8
|
+
end
|
9
|
+
|
10
|
+
def method_missing(meth, *args, &block)
|
11
|
+
if data_hash.has_key?(meth.to_s)
|
12
|
+
data_hash[meth.to_s]
|
13
|
+
else
|
14
|
+
super
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Wikidata
|
2
|
+
class IdentityMap < Wikidata::HashedObject
|
3
|
+
|
4
|
+
def self.cache(key, &block)
|
5
|
+
@@identity_map ||= {}
|
6
|
+
if cached_value = @@identity_map[key]
|
7
|
+
return cached_value
|
8
|
+
else
|
9
|
+
content = block.call
|
10
|
+
cache! key, content
|
11
|
+
return content
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.cache!(key, value)
|
16
|
+
@@identity_map ||= {}
|
17
|
+
@@identity_map[key] = value
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Wikidata
|
2
|
+
class Item < Wikidata::Entity
|
3
|
+
|
4
|
+
def claims
|
5
|
+
@claims ||= begin
|
6
|
+
if self.data_hash.claims
|
7
|
+
self.data_hash.claims.map do |statement_type, statement_array|
|
8
|
+
statement_array.map do |statement_hash|
|
9
|
+
Wikidata::Statement.new(statement_hash)
|
10
|
+
end
|
11
|
+
end.flatten
|
12
|
+
else
|
13
|
+
[]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def claims_for_property_id(property_id)
|
19
|
+
claims.select{|c| c.mainsnak.property_id == property_id }
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Wikidata
|
2
|
+
class Snak < Wikidata::HashedObject
|
3
|
+
|
4
|
+
def property_id
|
5
|
+
data_hash.property
|
6
|
+
end
|
7
|
+
|
8
|
+
def property
|
9
|
+
@property ||= Wikidata::Property.find_by_id(property_id)
|
10
|
+
end
|
11
|
+
|
12
|
+
def value
|
13
|
+
if datavalue['type'] == "wikibase-entityid"
|
14
|
+
Wikidata::DataValues::Entity.new(datavalue.value)
|
15
|
+
elsif datavalue['type'] == "time"
|
16
|
+
Wikidata::DataValues::Time.new(datavalue.value)
|
17
|
+
elsif datavalue['type'] == "globecoordinate"
|
18
|
+
Wikidata::DataValues::Globecoordinate.new(datavalue.value)
|
19
|
+
elsif datavalue['type'] == 'string'
|
20
|
+
Wikidata::DataValues::String.new({string: datavalue.value})
|
21
|
+
else
|
22
|
+
datavalue
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def inspect
|
27
|
+
"<#{self.class.to_s} type=#{snaktype} property_id=#{property_id}>"
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
data/lib/wikidata.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
require 'hashie'
|
3
|
+
require 'i18n'
|
4
|
+
require "wikidata/version"
|
5
|
+
require "wikidata/hashed_object"
|
6
|
+
require "wikidata/identity_map"
|
7
|
+
require "wikidata/entity"
|
8
|
+
require "wikidata/item"
|
9
|
+
require "wikidata/property"
|
10
|
+
require "wikidata/statement"
|
11
|
+
require "wikidata/snak"
|
12
|
+
require "wikidata/datavalues/value"
|
13
|
+
require "wikidata/datavalues/string"
|
14
|
+
require "wikidata/datavalues/time"
|
15
|
+
require "wikidata/datavalues/globecoordinate"
|
16
|
+
require "wikidata/datavalues/entity"
|
17
|
+
|
18
|
+
module Wikidata
|
19
|
+
|
20
|
+
def self.use_only_default_language
|
21
|
+
true
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.default_languages_hash
|
25
|
+
use_only_default_language ? {languages: I18n.default_locale} : {}
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
data/wikidata.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'wikidata/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "wikidata"
|
8
|
+
spec.version = Wikidata::VERSION
|
9
|
+
spec.authors = ["Wil Gieseler"]
|
10
|
+
spec.email = ["wil@wilgieseler.com"]
|
11
|
+
spec.summary = "Ruby client for Wikidata"
|
12
|
+
spec.homepage = "http://github.com/wilg/wikidata"
|
13
|
+
spec.license = "MIT"
|
14
|
+
|
15
|
+
spec.files = `git ls-files`.split($/)
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
|
20
|
+
spec.add_dependency "httparty"
|
21
|
+
spec.add_dependency "colorize"
|
22
|
+
spec.add_dependency "formatador"
|
23
|
+
spec.add_dependency "thor"
|
24
|
+
spec.add_dependency "i18n"
|
25
|
+
spec.add_dependency "hashie", ">= 2.0"
|
26
|
+
|
27
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
28
|
+
spec.add_development_dependency "rake"
|
29
|
+
end
|
metadata
ADDED
@@ -0,0 +1,179 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: wikidata
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Wil Gieseler
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-01-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: httparty
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: colorize
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: formatador
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: thor
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: i18n
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: hashie
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: bundler
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ~>
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.5'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.5'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rake
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
description:
|
126
|
+
email:
|
127
|
+
- wil@wilgieseler.com
|
128
|
+
executables:
|
129
|
+
- wikidata
|
130
|
+
extensions: []
|
131
|
+
extra_rdoc_files: []
|
132
|
+
files:
|
133
|
+
- .gitignore
|
134
|
+
- Gemfile
|
135
|
+
- LICENSE.txt
|
136
|
+
- README.md
|
137
|
+
- Rakefile
|
138
|
+
- bin/wikidata
|
139
|
+
- lib/wikidata.rb
|
140
|
+
- lib/wikidata/command_line.rb
|
141
|
+
- lib/wikidata/datavalues/entity.rb
|
142
|
+
- lib/wikidata/datavalues/globecoordinate.rb
|
143
|
+
- lib/wikidata/datavalues/string.rb
|
144
|
+
- lib/wikidata/datavalues/time.rb
|
145
|
+
- lib/wikidata/datavalues/value.rb
|
146
|
+
- lib/wikidata/entity.rb
|
147
|
+
- lib/wikidata/hashed_object.rb
|
148
|
+
- lib/wikidata/identity_map.rb
|
149
|
+
- lib/wikidata/item.rb
|
150
|
+
- lib/wikidata/property.rb
|
151
|
+
- lib/wikidata/snak.rb
|
152
|
+
- lib/wikidata/statement.rb
|
153
|
+
- lib/wikidata/version.rb
|
154
|
+
- wikidata.gemspec
|
155
|
+
homepage: http://github.com/wilg/wikidata
|
156
|
+
licenses:
|
157
|
+
- MIT
|
158
|
+
metadata: {}
|
159
|
+
post_install_message:
|
160
|
+
rdoc_options: []
|
161
|
+
require_paths:
|
162
|
+
- lib
|
163
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - '>='
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - '>='
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
173
|
+
requirements: []
|
174
|
+
rubyforge_project:
|
175
|
+
rubygems_version: 2.0.3
|
176
|
+
signing_key:
|
177
|
+
specification_version: 4
|
178
|
+
summary: Ruby client for Wikidata
|
179
|
+
test_files: []
|