The Freebase Type Provider Sample in the F# 3.0 Sample Pack supports a number of interesting static parameters to the type provider which control how Freebase is integrated into the F# programming language.
These parameters are as follows:
Key |
The API key for the Freebase service (default: none) |
ServiceUrl | The service URL for the Freebase service (default: https://www.googleapis.com/freebase/v1) |
NumIndividuals | The maximum number of sample individuals for each Freebase type, e.g. data.``Arts and Entertainment``.Music.Musicians.Individuals.``Bruce Springsteen`` (default: 1000) |
UseUnitsOfMeasure |
Use the unit-of-measure annotations from the data source metadata (default: true) |
Pluralize |
Use adhoc rules to pluralize the names of types when forming names of collections (default: true) |
SnapshotDate |
Use a snapshot of both the data and the metadata for the web data store at the given date and/or time in ISO8601 format, e.g., 2012-01-18, 2012-09-15T21:11:32. A value of 'now' indicates the compile time of the code. Dates before ~2009 are unlikely to work very well. (default: none) |
LocalCache |
Use a persistent local cache for schema requests at design-time. Also provides the default for whether a persistent local cache is used at runtime, which can be controlled by setting data.DataContext.UseLocalCache. A per-session cache is always used for schema data but it will not persist if this is set to 'false'. (default: true) |
AllowLocalQueryEvaluation |
Allow local evalution of some parts of a query. If false, then an exception will be raised if a query can't be evaluated fully on the server. If true, data sets may be implicitly brought to the client for processing. (default: true) |
By default, the data context returned by
let data = Samples.DataStore.Freebase.FreebaseData.GetDataContext()
uses the default instantiation for all these parameters (including NO api key!). You can switch to a data connection that uses particular values for the parameters as follows:
type ServiceAt2009 = Samples.DataStore.Freebase.FreebaseDataProvider
let data = ServiceAt2009.GetDataContext()