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.gitChange directories into this repo
cd morphodict-backendMake a new pip environment
pipenv shellInitialize Large File Storage (LFS):
git lfs install && git lfs fetch && git lfs checkoutInstall all dependencies
pipenv install --devIf dependencies are still missing, try:
pipenv installYou shouldn't need any npm dependencies, but in case you do:
npm installAnd then run all backends with:
foreman startYou'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.2with 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%20animalswith 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"
]
}