Live data from Hacker News

Why I built a dictionary app

wordnote.app

71–80 of 187 posts

Re: Why I built a dictionary app

#71
post #68

Congratulations! Cool app and nice writeup. Related: what do people use for bilingual (translation) dictionaries (i.e. X-English or English-X)? Most of the apps I have found for the languages I use are full of ads and not very usable. (Translation apps like Google Translate are much better and more usable, but there are some use-cases where a dictionary really is better).

QuickDic (from F-Droid, with offline dictionaries) works for me.

Re: Why I built a dictionary app

#72
This is really cool. Glad to see people are wanting and working for better dictionaries. I also had a similar thoughts while trying to create a Pashto dictionary a few years ago. It needs to be offline, fuzzy-search as you type, etc. But sooo many dictionaries out there work in more clumsy ways. I decided to build a PWA one from scratch using React and a LokiJS in-memory database. Later on I added a verb conjugation and phrase generation engine (big thanks to phrase structure analysis and TypeScript!)

You can see a little demo of it here - I'm planning on open sourcing the core soon.

Demo https://www.youtube.com/watch?v=MMpSpaMMdp4

Dictionary https://dictionary.lingdocs.com

Re: Why I built a dictionary app

#74
post #68

Congratulations! Cool app and nice writeup. Related: what do people use for bilingual (translation) dictionaries (i.e. X-English or English-X)? Most of the apps I have found for the languages I use are full of ads and not very usable. (Translation apps like Google Translate are much better and more usable, but there are some use-cases where a dictionary really is better).

I use dict.cc. (Both the website and the app.) Works offline.

Re: Why I built a dictionary app

#75
I saw a few posts discuss using the Wiktionary dump directly vs. the freeDictionary API, which is difficult to do because the raw wiki text isn't immediately usable. I actually created and open sourced a project several years ago that I never publicized that lexes and parses the Wiktionary dump:

https://github.com/vthommeret/glossterm

Specifically it can understand and execute 21 different wiki text templates (e.g. "cog", "borrow", "gloss", "prefix", "qualifier”), e.g. {{inh|es|la|gelātus}}:

https://github.com/vthommeret/glossterm/tree/master/lib/tpl

And eventually parse it into this structure, which has a list of all definitions (distinguished into nouns, adjectives, verbs, adverbs, etc...), etymology, links, and descendants for a given word:

https://github.com/vthommeret/glossterm/blob/master/lib/gt/p...

Further parts of the pipeline turned different relationships into edges that I could stick into a graph database and do certain graph queries. This allowed me to do certain queries like find French, Spanish, and English words that share a Latin root.

I ended up parallelizing this specific query using Apache Beam and then dumping the results into Firestore so they could be queried via a web app. Here's an example for the Spanish word: helado

https://cognate.app/words/es/helado

Under the "Cognates" section, it knows that it comes from the Latin root "gelatus" from which English has borrowed the word "gelato".

I originally started this project when I was learning Spanish. If you just look up the definition of helado (ice cream) it doesn't necessarily help you learn it. But I found that if I could relate it to languages I already knew (e.g. English and French), it was easier to remember. In this case helado is related to gelato, but you won't find that in e.g. Google Translate or SpanishDict.

Ultimately, I found that while the Wiktionary data is amazing, it’s also a bit of a quagmire for finding cognates. I would miss certain etymologies where you had to follow a descendant tree 2 or 3 levels deep. Or a definition would just mention a word it was related to. But if I expanded the query to include these instances, then it significantly increased the amount of non-cognates that showed up in the results.

So I created a useful set of tools (which I never wrote about until now), but I realized the end result of a web UI that showed the relationships between words would require a significant investment in data quality that likely wasn’t possible without changing Wiktionary itself / community investment.

Re: Why I built a dictionary app

#76
Congratulations! Super cool. One of the first applications I was blown away by, for many different reasons, was OmniDictionary https://web.archive.org/web/20050310043334/http://www.omnigr...>. It was something that I couldn't imagine existing, but did, and it was one of the first apps the company I worked for at the time had created. (It relied on a server!? This was an ENTIRE app?)

It used a DICT server for lookups: https://en.wikipedia.org/wiki/DICT

And 14 years ago, some servers still existed. They're hard to find now.

It always struck me as something fantastic to a) learn how to interface with a server b) learn cocoa/objective-c/etc c) redesign a simple app (https://www.omnigroup.com/assets/img/app/graffle-7/mac/full-...). Something you've just described in detail. Well, most of it.

Re: Why I built a dictionary app

#77

This brings back so many memories. I was in a same situation (reading a book) and needed on digital offline dictionary. I couldn't find anything for my phone back then. It was a Sony Ericson phone with 64 MB memory and J2ME as development environment. So I wrote a offline dictionary with a friend of mine based on wordnet and J2ME polish. It was my first real world project - http://cornucopia.sourceforge.net/

Awesome. What did the Kill Search menu option do? Did searches actually last long to let the user actively wanting to stop searching?

Re: Why I built a dictionary app

#78
post #43

Well this is... eerie. I just released Stictionary[1] on Friday. It is an offline, ad free, dictionary that remembers words you look up. It gives a word of the day and provides (admittedly underfeatured atm) flashcards to review your word lists. It includes optional syncing to keep your word lists across devices. I've been holding off posting about it while i complete the website[2]. Love to see someone else had such…

It's very stupid, but I check dictionary definitions in an incognito window because I'm horrified of someday people coming across my browser history and thinking "Wow, he didn't know the definition of that ?! What an idiot!" The idea of a dictionary that tracks my searches horrifies me in a silly way. Ha!

Looking up words is not stupid. Misusing words because you assume you know what they mean, that is stupid.

Re: Why I built a dictionary app

#79
Looking up unknown words during reading is not very effective for gaining understanding of a foreign language. My personal habit is to look up words only if I can remember having wondered about its meaning for at least five times.
Post reply on HN