Live data from Hacker News

Wolfram Alpha’s New Data about Pokémon

blog.wolframalpha.com

41–50 of 61 posts

Re: Wolfram Alpha’s New Data about Pokémon

#41
post #39
post #36

Earlier quoted context omitted.

I've thought about doing this before actually, don't know how they'd feel about someone scraping their content though.

It's not like bulbapedia own the fundamental content - do they place a public license on the wiki pages? Ideally bulbapedia would provide mediawiki dumps for this, but they don't, and they've gone on record saying they don't intend to. They did leave the mediawiki API open though if you want to crawl a clean rip of each page's wikitext - the default mediawiki API guidelines are also intact, which say that single-thre…

It looks like all of Bulbapedia's content is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike license. http://bulbapedia.bulbagarden.net/wiki/Bulbapedia:Copyrights

Re: Wolfram Alpha’s New Data about Pokémon

#42
post #6

That's... cool I guess? There are a bunch of other sites that already do this though. Serebii, bulbabedia, veekun, pokemondb .etc

Those other sites allow you to plot distribution and find sets of specific numerical characteristics that easily? I only remember seeing generic statistic listings.

http://veekun.com/dex/pokemon/search does all that Alfram is claiming to do, other than the grouping, which to be honest, I'm not sure how useful that'll be, other than statical notekeeping.

Re: Wolfram Alpha’s New Data about Pokémon

#43
post #34
post #28

It would be extremely cool if they'd expose information such as what moveset each Pokémon has available to them so I could make queries like 'what water type Pokémon that can learn Hydro Pump has the highest Special Attack stat'.

Maybe consider scraping bulbapedia into an SQL database? :) -- i'm dreaming SELECT pokemon.name FROM pokemon JOIN pokemon_learn_moves ON pokemon.id = pokemon_learn_moves.pokemon_id JOIN move ON pokemon_learn_moves.move_id = move.id WHERE move.name_en = "Hydro Pump" ORDER BY pokemon.sp_atk DESC LIMIT 1; Actually, from this perspective there's a lot of boilerplate, no wonder people like key-value stores... Then use pyt…

> no wonder people like key-value stores

You're doing a relational query: select, join, project. Translate it to a key-value store and you're going to end up with way more boilerplate. Using a key-value store for a relational query is like trying to use a screwdriver to drive a nail.

Re: Wolfram Alpha’s New Data about Pokémon

#44
post #38

Earlier quoted context omitted.

Bulbasaur may have an edge, type wise, but I'd put money on Pikachu actually winning. Pikachu with Light Screen, Thunder Wave/Knock Off, Protect/Wish, and Hidden Power (Ice) with Light Ball, would completely take on a Bulbasaur. http://bulbapedia.bulbagarden.net/wiki/Pikachu_(Pok%C3%A9mon... Bulbasaur would need Toxic/Sleep Powder, Growth, Energy Ball/Petal Dance/Giga Drain, and if you must, Hidden Power (Ground) wit…

Yep I've been totally outclassed. I've only recently started getting into the online aspect of Pokémon so I still have a ton to learn with regards to strategy. Though does the speed stat really matter all that much outside of first mover advantage?

Yes. Most pokemon battles, unless they're designed to stall, or there are a lot of misses, pokemon as a rule usually faint within two to three hits. Unless Pikachu's stats are totally a bad fit for a special attacker, and Bulbasaur's stats are totally for special walling, chances are even with attacking with Thunderbolt, Pikachu could take down Bulbasaur within 4 rounds. With Hidden Ice, holding the Light Ball, probably 2 rounds.

Now, let's say we gave Bulbasaur all the extra ev training into special attacking. It would still take about two hits to knock out Pikachu. Problem is, since Pikachu is faster, it'll get in two hits before Bulbasaur does. This is why both Pikachu and Bulbasaur are considered LC (Little Cup) or NU (Never Used), as they have a lot of problems dealing with a lot of different pokemons that occur in battling.

May I suggest you try a website called Pokemon Showdown? It's an online simulator which allows you to try out different strategies, and test them against other people. http://play.pokemonshowdown.com/

Re: Wolfram Alpha’s New Data about Pokémon

#45
post #34

Earlier quoted context omitted.

Maybe consider scraping bulbapedia into an SQL database? :) -- i'm dreaming SELECT pokemon.name FROM pokemon JOIN pokemon_learn_moves ON pokemon.id = pokemon_learn_moves.pokemon_id JOIN move ON pokemon_learn_moves.move_id = move.id WHERE move.name_en = "Hydro Pump" ORDER BY pokemon.sp_atk DESC LIMIT 1; Actually, from this perspective there's a lot of boilerplate, no wonder people like key-value stores... Then use pyt…

> no wonder people like key-value stores You're doing a relational query: select, join, project. Translate it to a key-value store and you're going to end up with way more boilerplate. Using a key-value store for a relational query is like trying to use a screwdriver to drive a nail.

It definitely suits a relational query.

But assuming you have indexes `pokemon_learn_moves_by_move_id` and `moves_by_name`, you could write

    pokemon_learn_moves_by_move_id[ moves_by_name["Hydro Pump"].id ]
        .map( |id| [pokemon[id].sp_atk, pokemon[id].name] )
        .greatest()[1];
(using a hypothetical system) which i think is a bit less boilerplate. Although, now i've explicitly written an execution plan rather than letting the SQL engine decide (i had `sort()[0]` there instead of `greatest()` for a while, which i think sums up why the SQL approach is generally better).

Re: Wolfram Alpha’s New Data about Pokémon

#46
post #34
post #28

It would be extremely cool if they'd expose information such as what moveset each Pokémon has available to them so I could make queries like 'what water type Pokémon that can learn Hydro Pump has the highest Special Attack stat'.

Maybe consider scraping bulbapedia into an SQL database? :) -- i'm dreaming SELECT pokemon.name FROM pokemon JOIN pokemon_learn_moves ON pokemon.id = pokemon_learn_moves.pokemon_id JOIN move ON pokemon_learn_moves.move_id = move.id WHERE move.name_en = "Hydro Pump" ORDER BY pokemon.sp_atk DESC LIMIT 1; Actually, from this perspective there's a lot of boilerplate, no wonder people like key-value stores... Then use pyt…

The veekun pokedex[1] is on github[2] and they have a crapload of csv[3] files available.

[1]: http://veekun.com/dex [2]: https://github.com/veekun [3]: https://github.com/veekun/pokedex/tree/master/pokedex/data/c...

Re: Wolfram Alpha’s New Data about Pokémon

#47

Always liked WolframAlpha, this is also awesome. But what i really like, is to match stuff like protein in bananas vs spinach to know what i'm going to (prefer to) eat soon ^^.. So, thanks!

Wow, I didn't realize it had food. Good call! :)

Yeah, no problem, just shared some awesomesauce

Re: Wolfram Alpha’s New Data about Pokémon

#48
post #34

Earlier quoted context omitted.

Maybe consider scraping bulbapedia into an SQL database? :) -- i'm dreaming SELECT pokemon.name FROM pokemon JOIN pokemon_learn_moves ON pokemon.id = pokemon_learn_moves.pokemon_id JOIN move ON pokemon_learn_moves.move_id = move.id WHERE move.name_en = "Hydro Pump" ORDER BY pokemon.sp_atk DESC LIMIT 1; Actually, from this perspective there's a lot of boilerplate, no wonder people like key-value stores... Then use pyt…

The veekun pokedex[1] is on github[2] and they have a crapload of csv[3] files available. [1]: http://veekun.com/dex [2]: https://github.com/veekun [3]: https://github.com/veekun/pokedex/tree/master/pokedex/data/c...

That's excellent, thank you for pointing those out! Renders the whole discussion somewhat moot.
Post reply on HN