This runs the back-end API for the newly refactor Morphodict applications. It's a Django-REST application.
Clone this repo:
git clone https://github.com/UAlbertaALTLab/morphodict-backend.git
Change directories into this repo
cd morphodict-backend
Make a new pip environment
pipenv shell
Initialize Large File Storage (LFS):
git lfs install && git lfs fetch && git lfs checkout
Install all dependencies
pipenv install --dev
If dependencies are still missing, try:
pipenv install
You shouldn't need any npm dependencies, but in case you do:
npm install
And then run all backends with:
foreman start
You'll need a number of files that should be stored in LFS, including HFST lookup files. You'll also need a dictionary, ask whoever is setting you up to get you started with one. Please inform Jolene jcpoulin@ualberta.ca if there are any other dependencies that you need but aren't available through LFS or by asking the person helping you.
There are three public API endpoints you can use with a total of five options for searching.
This option features the word search
in the URL and has 3 optional arguments you can pass to it.
Accessed by typing the following:
api.itwewina.altlab.dev/api/search/?name=<search_term>
where <search_term>
is a word in Plains Cree or in English.
Returns a JSON object.
Accessed by typing the following: api.itwewina.altlab.dev/api/search/?rw_index=<index>
where is a string of numbers, such as 1.2.2
or 1.6
. Returns
all objects with a RapidWords index that equals or contains the index provided
as a JSON object.
Accessed by typing the following:
api.itwewina.altlab.dev/api/search/?rw_domain=<domain>
where domain is a string.
Returns all objects where the RapidWords class is or contains the domain provided.
Return type is JSON.
Accessed by typing the following:
api.itwewina.altlab.dev/api/search/?wn_synset=<synset>
where is a string.
Returns all objects where the WordNet synsets contains or matches the string provided.
Return type is JSON.
Note: There must be a space between the last word of the synset and
the number of the synset. For example: (n) dog 1
(with spaces, just like that)
is correct. Incorrect variants include: (n) dog1
and (n) dog#1
.
In this option, you route to the rapidwords
endpoint. It has one required argument.
q
, short for "query" is added to the end of the URL. It can be used in two ways:
http://api.itwewina.dev/api/rapidwords/?q=1.2.2
with a series of numbers separated by a period. This will query for a RapidWords entry with the matching index.http://api.itwewina.dev/api/rapidwords/?q=Names%20of%20animals
with a string exactly matching (case sensitive) the domain of a RapidWords domain.
This endpoint returns a JSON object with the fields:
- query
- class
- domain
- index
- hypernyms
- hyponyms
The React-accessible endpoint for the nltk WordNet corpus. Accessed at:
api.itwewina.dev/api/wordnet/<wn_class>
where wn_class
is a string following
this exact format: (pos) word number. For example: (n) dog 1. It returns for (n) dog 1:
{
"search_term": "dog.n.01",
"hypernyms": [
"canine.n.02",
"domestic_animal.n.01"
],
"hyponyms": [
"basenji.n.01",
"corgi.n.01",
"cur.n.01",
"dalmatian.n.02",
"great_pyrenees.n.01",
"griffon.n.02",
"hunting_dog.n.01",
"lapdog.n.01",
"leonberg.n.01",
"mexican_hairless.n.01",
"newfoundland.n.01",
"pooch.n.01",
"poodle.n.01",
"pug.n.01",
"puppy.n.01",
"spitz.n.01",
"toy_dog.n.01",
"working_dog.n.01"
],
"holonyms": [
"canis.n.01",
"pack.n.06"
]
}