/affinder

affinder = affordance + finder. it helps users find a way to express affordances that a computer can actually carry out

Primary LanguageJavaScript

affinder

An visual-programming environment for defining concepts of situations that afford activities using context-features.

Try the web demo here

An Example Concept Expression that Affinder helps developers construct

Desired Concept to Express: "Open space for play", maybe such as place to toss a frisbee. Available Context Features? Place/Categories/Reviews, Weather, Time

(Asking Convo Assistants for "Whats a nice open space for play when I visit Evanston IL", why do we need this representation for retrieval, rather than what current search engines tell us?)

Obstacle - Top Down: No available context features that detect "open space"

Intermed. Concept: Start with parks (open grassy fields)

Running

Affinder depends on affinder-search to be running. Make sure updateYelpCategories is pointing to a running instance of affinder-search's search_yelp_categories_server.py

The URL of the Affinder-Search server can be set with the environment variable AFFINDER_SEARCH_URL

To connect to ce-platform, we run affinder by connecting to the ce-platform database, i.e.

MONGO_URL=mongodb://user:password@localhost:27017/meteor meteor

Backing up database

Follow this SO post for more information on how to dump and restore with Mongo and Meteor: https://stackoverflow.com/questions/22178244/back-up-meteor-database-with-mongodump

Folder Organization

client/template/workspace.html: This is the overall view, which links out to other client html/js templates (feature discovery, blockly workspace, simulating yelp business instances)

server/methods.js has some helpful Meteor methods (think of them sorta of like API routes) that get access to database level information through internal HTTP requests. Used for the unlimited vocabulary search.