Skip to content

Instantly share code, notes, and snippets.

@dirtyvagabond
Created July 20, 2012 23:15
Show Gist options
  • Save dirtyvagabond/3153805 to your computer and use it in GitHub Desktop.
Save dirtyvagabond/3153805 to your computer and use it in GitHub Desktop.
;; Example 1: a step that uses Crosswalk to add Fatual IDs
crosswalked.tab <- uncrossed.tab [c4]
;; For all lines where there's no factual_id,
;; pull out values from the columns named "foursquare" and "yelp"
(:>! factual_id [foursquare yelp]
;; Put into the factual_id column (creating if necessary)...
(+= "factual_id"
;; The result from Crosswalking foursquare, if there's a hit...
(or (:factual_id (first (select crosswalk
(where
(= :namespace "foursquare")
(= :namespace_id foursquare)))))
;; or the results from Crosswalking yelp
(:factual_id (first (select crosswalk
(where
(= :namespace "yelp")
(= :namespace_id yelp))))))))
;; Example 2: Same as Example 1, but uses the "crosswalk->fid" convenience fn
crosswalked.tab <- uncrossed.tab [c4]
(:>! factual_id [foursquare yelp]
(+= "factual_id"
(or
(crosswalk->fid "foursquare" foursquare)
(crosswalk->fid "yelp" yelp))))
;; Example 3: a step that uses Resolve to resolve lines that
;; have no factual_id
resolved.tab <- crosswalked.tab [c4]
(:>! factual_id [name address zip]
(:factual_id (first (resolve-vals {:name name
:address address
:postcode zip}))))
(:>! factual_id [name address zip]
factual_id (first (resolve-vals {:name name
:address address
:postcode zip}))))
factual_id_ts (now)
new_col "HI!")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment