diff --git a/docs/administration.md b/docs/administration.md
index 9d8c5b70c..c9d932df0 100644
--- a/docs/administration.md
+++ b/docs/administration.md
@@ -201,7 +201,6 @@ Each Pilosa cluster is configured by default to share anonymous usage details wi
- **NumCPU:** Number of Cores per Node
- **BSIEnabled:** Bit Slice Index Frames in use.
- **TimeQuantumEnabled:** Time Quantum Frames in use.
-- **InverseEnabled:** Inverse Frames in use.
- **NumIndexes:** Number of Indexes in the Cluster.
- **NumFrames:** Number of Frames in the Cluster.
- **NumSlices:** Number of Slices in the Cluster.
diff --git a/docs/api-reference.md b/docs/api-reference.md
index f7c3641b9..a2697f311 100644
--- a/docs/api-reference.md
+++ b/docs/api-reference.md
@@ -103,7 +103,6 @@ Creates a frame in the given index with the given name.
The request payload is in JSON, and may contain the `options` field. The `options` field is a JSON object which may contain the following fields:
* `timeQuantum` (string): [Time Quantum](../data-model/#time-quantum) for this frame.
-* `inverseEnabled` (boolean): Enables [the inverted view](../data-model/#inverse) for this frame if `true`.
* `cacheType` (string): [ranked](../data-model/#ranked) or [LRU](../data-model/#lru) caching on this frame. Default is `lru`.
* `cacheSize` (int): Number of rows to keep in the cache. Default 50,000.
* `rangeEnabled` (boolean): DEPRECATED - has no effect, will be removed. All frames support BSI fields.
@@ -119,9 +118,7 @@ Each individual `field` contains the following:
Integer fields are stored as n-bit range-encoded values. Pilosa supports 63-bit, signed integers with values between `min` and `max`.
``` request
-curl localhost:10101/index/user/frame/language \
- -X POST \
- -d '{"options": {"inverseEnabled": true}}'
+curl localhost:10101/index/user/frame/language -X POST
```
``` response
{}
diff --git a/docs/data-model.md b/docs/data-model.md
index 6a57a96a1..dc8646a85 100644
--- a/docs/data-model.md
+++ b/docs/data-model.md
@@ -77,26 +77,12 @@ Columns are sharded on a preset width, and each shard is referred to as a Slice.
### View
-Views represent the various data layouts within a Frame. The primary View is called Standard, and it contains the typical Row and Column data. The Inverse View contains the same data with the axes inverted.Time-based Views are automatically generated for each time quantum. Views are internally managed by Pilosa, and never exposed directly via the API. This simplifies the functional interface from the physical data representation.
+Views represent the various data layouts within a Frame. The primary View is called Standard, and it contains the typical Row and Column data. Time-based Views are automatically generated for each time quantum. Views are internally managed by Pilosa, and never exposed directly via the API. This simplifies the functional interface from the physical data representation.
#### Standard
The standard View contains the same Row/Column format as the input data.
-#### Inverse
-
-The Inverse View contains the same data with the Row and Column swapped.
-
-For example, the following `SetBit()` queries will result in the data described in the illustration below:
-```
-SetBit(frame="A", rowID=8, columnID=3)
-SetBit(frame="A", rowID=11, columnID=3)
-SetBit(frame="A", rowID=19, columnID=5)
-```
-
-
-*Inverse frame diagram*
-
#### Time Quantums
If a Frame has a time quantum, then Views are generated for each of the defined time segments. For example, for a frame with a time quantum of `YMD`, the following `SetBit()` queries will result in the data described in the illustration below:
diff --git a/docs/examples.md b/docs/examples.md
index 225e0f07c..f2d458b30 100644
--- a/docs/examples.md
+++ b/docs/examples.md
@@ -205,7 +205,7 @@ For more examples and details, see this [ipython notebook](https://github.com/pi
The notion of chemical similarity (or molecular similarity) plays an important role in predicting the properties of chemical compounds, designing chemicals with a predefined set of properties, and—especially—conducting drug design studies. All of these are accomplished by screening large indexes containing structures of available or potentially available chemicals.
-We'd like to use Pilosa to search through millions of molecules and find those most similar to a given molecule. There are examples where --- tried to solve this chemical similarity search problem using other indexes (MongoDB, PostgreSQL), so it will be interesting to compare those results to Pilosa using the same data set.
+We'd like to use Pilosa to search through millions of molecules and find those most similar to a given molecule. Others have tried to solve this chemical similarity search problem using databases (MongoDB, PostgreSQL), so it will be interesting to compare those results to Pilosa using the same data set.
Calculation of the similarity of any two molecules is achieved by comparing their molecular fingerprints. These fingerprints are comprised of structural information about the molecule which has been encoded as a series of bits. The most commonly used algorithm to calculate the similarity is the Tanimoto coefficient.
```
@@ -218,7 +218,7 @@ All source code to calculate tanimoto for molecule fingerprint using Pilosa is a
#### Data model
-We use the latest ChEMBL release chembl_22.sdf for test data. Each molecule in the SD file gives us the canonical isomeric SMILES (Simplified molecular-input line-entry system) and chembl_id.
+We use the [latest ChEMBL release](ftp://ftp.ebi.ac.uk/pub/databases/chembl/ChEMBLdb/releases/) chembl_22.sdf for test data. Each molecule in the SD file gives us the canonical isomeric SMILES (Simplified molecular-input line-entry system) and chembl_id.
Because Pilosa store information as a series of bits, we use RDKit in Python to convert molecules from their SMILES encoding to Morgan fingerprints, which are arrays of “on” bit positions.
diff --git a/docs/glossary.md b/docs/glossary.md
index 612c65dd4..d222cb511 100644
--- a/docs/glossary.md
+++ b/docs/glossary.md
@@ -64,4 +64,4 @@ nav = []
[TopN](../query-language/#topn): A [PQL](#pql) query that returns a list of `RowID`s, sorted by the count of [bits](#bit) set in the [row](#row), within a specified [frame](#frame).
-[View](../data-model/#view): Views separate the different data layouts within a [Frame](#frame). The two primary views are standard and inverse which represent the typical [row](#row)/[column](#column) data and its inverse respectively (an [inverted index](https://en.wikipedia.org/wiki/Inverted_index), or a matrix transpose). Time based frame views are automatically generated for each [time quantum](#time-quantum). Views are internally managed by Pilosa, and never exposed directly via the API. This simplifies the functional interface by separating it from the physical data representation.
+[View](../data-model/#view): Views separate the different data layouts within a [Frame](#frame). The primary view is standard, which represents the typical [row](#row)/[column](#column) data. Time based frame views are automatically generated for each [time quantum](#time-quantum). Views are internally managed by Pilosa, and never exposed directly via the API. This simplifies the functional interface by separating it from the physical data representation.
diff --git a/docs/query-language.md b/docs/query-language.md
index 6b0584320..f26cf021d 100644
--- a/docs/query-language.md
+++ b/docs/query-language.md
@@ -386,13 +386,12 @@ Return `2`
```
TopN([BITMAP_CALL], , [n=UINT],
- [inverse=true], [, ])
+ [, ])
```
**Description:**
Return the id and count of the top `n` bitmaps (by count of bits) in the frame.
-`inverse=true` specifies that the call should operate on the [inverse view ](../data-model/#inverse).
The `field` and `filters` arguments work together to only return Bitmaps which
have the attribute specified by `field` with one of the values specified in
`filters`.
@@ -419,16 +418,6 @@ Returns `[{"key": 1, "count": 2}, {"key": 2, "count": 2}, {"key": 3, "count": 1}
* count is amount of repositories
* Results are the number of repositories that each user starred in descending order for all users in the stargazer frame, for example user 1 starred two repositories, user 2 starred two repositories, user 3 starred one repository.
-```
-TopN(frame="stargazer", inverse=true)
-```
-
-Returns `[{"key": 1, "count": 2}, {"key": 2, "count": 2}, {"key": 3, "count": 1}]`
-
-* key is a repository ID
-* count is amount of users
-* Results are the number of users that starred each repository in descending order for all respositories in the stargazer frame.
-
```
TopN(frame="stargazer", n=2)
```
diff --git a/docs/webui.md b/docs/webui.md
index 738fb20fd..0f14934b4 100644
--- a/docs/webui.md
+++ b/docs/webui.md
@@ -32,9 +32,9 @@ In addition to standard PQL, the console supports a few special commands, prefix
- `:create frame `
- `:delete frame `
-Frame creation also supports options like `timeQuantum` or `inverseEnabled`. When creating a new frame, add options by using the keys documented in [API reference](../api-reference/#create-frame).
+Frame creation also supports options like `timeQuantum`. When creating a new frame, add options by using the keys documented in [API reference](../api-reference/#create-frame).
-- `:create frame inverseEnabled=true cacheSize=10000`
+- `:create frame cacheSize=10000`
### Cluster Admin