Skip to content

add book language ID fields#305

Open
baieric wants to merge 36 commits intowikitongues:masterfrom
uwblueprint:ontology-be
Open

add book language ID fields#305
baieric wants to merge 36 commits intowikitongues:masterfrom
uwblueprint:ontology-be

Conversation

@baieric
Copy link
Copy Markdown

@baieric baieric commented May 21, 2018

These are backend changes for eventually supporting the use the Language Ontology API in Poly. Hopefully these changes can be merged immediately.

There are some TODO comments where the code could be cleaner. I'll add Github comments to these for visibility.

There are two user-facing changes in this PR:

  1. The search URL can now be /search?q=<query_string>&glottocode=<glottocode_string>. The glottocode parameter is optional and not used currently (unless the user manually puts it in the URL). This will match all results containing query_string OR with language ID equal to glottocode_string. Let me know how you feel about this.
  2. I got rid of the use of the are_close? function, meaning that search results will work differently. I noticed some annoying results where "English" was close to "Spanish", which seems very undesirable. I didn't play around with the desired_distance constant, but maybe lowering it could fix this, rather than completely getting rid of it.

# only returns an ID if the verbatim search returns exactly one result
def id_check(input_lang)
# TODO do not hard-code this URL, move to a config constant
url_string = 'http://localhost:6543/search?q=' + input_lang + '&whole=true';
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't sure how to properly set up a config constant. Ideally this constant can be used by both the Ruby code and the React code.

Copy link
Copy Markdown
Contributor

@FredericoAndrade FredericoAndrade May 29, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've made the production url an environment variable on Heroku and on my local .ENV, happy to show you

# TODO this function copied from books_controller. put in a helper class
# given an identifier string, get the language ID
# only returns an ID if the verbatim search returns exactly one result
def id_check(input_lang)
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This function should be in a helper class, but I wasn't familiar with where this class would go or how to add a dependency to it.

@baieric baieric changed the title add book language ID fields to DB and controllers (WIP) add book language ID fields to DB and controllers May 21, 2018
@baieric baieric changed the title add book language ID fields to DB and controllers add book language ID fields May 21, 2018
@FredericoAndrade
Copy link
Copy Markdown
Contributor

Looks great! All i need in order to test this is to get a local instance of glottolog3 running. Any chance you could update the readme there with instructions on how to get it running? Got requirements installed but couldn't quite get setup.py or serve.py running.

@FredericoAndrade
Copy link
Copy Markdown
Contributor

FredericoAndrade commented May 29, 2018

@baieric I've gone ahead and updated the url to reference an environment variable which points to the Heroku deploy of the ontology, but have started to get this error: Failed to open TCP connection to :80 (Connection refused - connect(2) for nil port 80). Any thoughts? Might I need some form of API key or config beyond just the url?

@baieric
Copy link
Copy Markdown
Author

baieric commented May 30, 2018

@FredericoAndrade Do you have a typo somewhere? Sounds similar to this issue: jnunemaker/httparty#393

This PDF has setup instructions for glottolog3. You'll need to get a local DB running as well. The instructions are intended for Heroku, but if you do steps 1-4 and step 6, it should run locally.

Setting-Up-Wikitongues-Ontology-API-Service.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants