There’s something I’ve had in mind for Maya Paradise for 20 years and I’m finally doing it. Maya Paradise has always had, since 1997, a directory of bird species that can be found in Rio Dulce. I’ve always wanted to create a searchable database and bird identification tool.
There are bird identification tools on the Internet, but still, in 2019, none of them are very good, in my opinion. I can understand why this is so. Creating what I have in mind isn’t easy. No matter where I live, I’m always watching birds, wanting to identify them, and usually failing because the tools on the net just don’t do the job. I hope to remedy that.
I have a basic structure and database system built and running, but there’s a huge amount of work to do to complete it. We’ll see how this goes.
Turns out this is a lot more challenging than I expected. The necessary database and getting all the information into it is straightforward, just a lot of work. But, it turns out that the kind of search and retrieval I want is not a solved problem in the art of computer programming. The standard database retrieval functions don’t come close to what’s needed. What’s more, I want the system to have both exact and fuzzy search across roughly 30 search parameters. That eliminates a lot of possible approaches.
So, we shall see. I’ve been writing software for over 50 years, so maybe I can come up with an elegant solution. If not, then an inelegant but optimized solution. I’ve got my software engineer buddies puzzling over this as well. Apparently, there’s a reason why the kind of system I want doesn’t exist. Too hard. I intend to do it anyway.
Yeah, this is not an easy problem. I’ve put the problem out to my buddies who have been doing this for as long as I have and some SQL database experts, and they all choked. At least I know it’s not just me that finds this problem difficult.
I have worked out a way to do it and my friend Karl Auerbach came up with a way to optimize the fuzzy search problem, so I’m confident it can be done. The head scratcher now is my choices of programming languages to implement this in. The compute task is analogous to a matrix math problem. Classical languages like C, Fortran, and PL/I are well suited for this and can do it quickly and efficiently. But this has to be implemented in a web scripting language. My options are PHP, Perl, Python, and Ruby, all of which are terrible at this kind of problem — clumsy, slow, and inefficient. Sigh.