ULAPI: Linguistic Intelligence for Developers

Add linguistic smarts to your applications with the Ultralingua Application Programming Interface (ULAPI). Write to us at dev@ultralingua.com for pricing information and answers to your questions.


Features

+ Cross-platform

ULAPI is written in C++, and has been incorporated into applications on iOS, macOS, Windows, Android, and Linux, using Swift, Objective C, Java, C++, and Python. It is also available as an HTTP-based API.

+ Multi-lingual

ULAPI features are available in English, French, Spanish, German, Italian, Portuguese, Dutch, Russian, Norwegian, Swedish, and Latin.

+ Translation dictionary look-up

Specify a word in a source language, and obtain translations and definitions in a target language. Each translation comes with detailed part-of-speech information. This works for multi-word phrases as well (e.g. "take over" or "put down") if the phrase has a corresponding entry in the dictionary.

Example: Look up dog in English-to-French, and get chien [noun, masculine], chienne [noun, feminine], and pitou [noun, masculine, dialect=Quebec, tone=Colloquial].

+ Lemmatization / stemming / root-word discovery

Specify a word and obtain a complete list of its root forms.

Examples: Lemmatize rakes in English to get information about both rake [noun] and rake [verb]. ULAPI stemming works for compound forms as well as single-word forms, so for example, will have thrown will lemmatize to throw.

+ Verb conjugation

Specify a verb in a language, and obtain a complete list of its conjugated forms.

Example: Conjugate dormir ("to sleep") in Spanish and get a list of forms like (tense=present, person=first, number=singular: duermo), etc.

+ Pluralization and singularization

Specify a word and obtain its singular and/or plural form(s).

Example: Pluralize the English word forum to get both forums and fora. Singularize patches to get patch.

+ Number translation

Specify a number to get the word form of that number.

Example: 123 in German gives you hundertdreiundzwanzig.

+ Word structure analysis (also known as morphological analysis)

Specify a word and obtain an analysis of the word's structure based on each of its root forms.

Example: the word bakers is the plural form of baker [noun], which is in turn the "one who does something" form of the bake [verb].

+ Word inflection (also known as morphological synthesis)

Specify a word and obtain a list of all its derived forms, including detailed part of speech information.

Example: the complete inflection of the French adjective bleu includes bleu, bleus, bleue, and bleues, along with superlative and comparative forms like la plus bleue ("the most blue", feminine, singular).

+ Part-of-speech tagging

Provide a sentence or sentence fragment to obtain a list of the most likely parts of speech for each word, in context.

Example: the sentence William drinks two drinks at night gives you:

William [noun, singular, proper]
drinks [verb, third-person, singular, present tense]
two [adjective]
drinks [noun, plural]
at [preposition]
night [noun, singular]


ULAPI via HTTP

Try out a few of the most popular ULAPI features here. Contact us at dev@ultralingua.com to register for an account and to get access to the full documentation.

Word lookup / translation

to

Plurals

Lemmatization (finding root words)

Verb conjugation

Number translation


Case Studies

We have tons of ideas of ways to put ULAPI to work. Text mining support, natural language database queries or game input, numbers written out in word form for a fancy countdown, help predict the next word in the user's sentence, etc., etc.

If you have language feature ideas for your apps and you want to know whether ULAPI can help you realize them, let's talk!. In the meantime, here are a few ideas to get you thinking.

 

Case Study 1: An image library with user-generated keywords

Imagine your application involves a database of images uploaded by your customers, who tag their own images with keywords so other people can search for them by concept. You might, for example, end up with many photographs of cattle in the snow, with keywords assigned like so:

cows, snowing

cows, snowing

cow, snow

cow, snow

vache, neige

vache, neige

Problems: people use different forms of the same words as keywords (cow and cowssnow and snowing), and words for the same ideas in different languages (cow and vachesnow and neige).

Solution: use ULAPI's stemming and dictionary look-up features to support keyword search that can find the right images even though the form and language of the keywords vary.

 

Case Study 2: In-app dictionary

widget-pad.png

In a lot of apps, especially ones that are for reading or writing, it's handy for people to have quick access to a dictionary. Though there are built-in monolingual dictionary tools on some operating systems, there are seldom bilingual or multilingual dictionaries available.

Problem: Your customers need quick access to a (possibly multilingual) dictionary.

Solution: Use ULAPI's dictionary lookup and rendering tools, and any of its more than 30 dictionary datasets.

Here's an example of the iOS popup dictionary that we have available for licensing:

Need to add your own specialized vocabulary for lookup? We can work with you to build special datasets for just such a purpose.

 

Case Study 3: Word games

colour.png
color.png

When we were doing play tests of our word association game Psychobabble, we discovered that people would often type one form of a word when the puzzle contained another form of the same word. In this game, penalizing people for typing cats when the puzzle contained cat was just frustrating, and made the game less fun.

Problem: How can we treat different forms of a word as identical for the purposes of the game?

Solution: Use ULAPI's pluralizer, singularizer, and alternate spelling detector to detect matches between words that should be considered the same.

The result? See here how our player has typed colour in the first image, and the game has granted the player a match with color in the second image.