This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 26a70b1  correct errors in English documents (#1904)
26a70b1 is described below

commit 26a70b11daa50761f7caaeea9503f0d6208b61ff
Author: ZHOU JESSE <[email protected]>
AuthorDate: Sat Oct 31 15:49:19 2020 +0800

    correct errors in English documents (#1904)
---
 docs/UserGuide/Architecture/Files.md               |  8 +++---
 .../UserGuide/Architecture/Writing Data on HDFS.md |  4 +--
 docs/UserGuide/Client/Command Line Interface.md    |  4 +--
 docs/UserGuide/Client/Programming - JDBC.md        |  6 ++--
 docs/UserGuide/Client/Programming - MQTT.md        |  4 +--
 docs/UserGuide/Client/Programming - Native API.md  | 10 +++----
 .../Client/Programming - Other Languages.md        |  6 ++--
 docs/UserGuide/Client/Programming - TsFile API.md  | 22 +++++++--------
 docs/UserGuide/Client/Status Codes.md              |  2 +-
 docs/UserGuide/Comparison/TSDB-Comparison.md       | 33 +++++++++++-----------
 docs/UserGuide/Concept/Compression.md              |  4 +--
 .../Concept/Data Model and Terminology.md          |  6 ++--
 docs/UserGuide/Concept/Data Type.md                |  4 +--
 docs/UserGuide/Concept/Encoding.md                 |  6 ++--
 docs/UserGuide/Ecosystem Integration/Grafana.md    | 16 +++++------
 .../UserGuide/Ecosystem Integration/Hive TsFile.md | 26 ++++++++---------
 .../Ecosystem Integration/MapReduce TsFile.md      |  4 +--
 .../UserGuide/Ecosystem Integration/Spark IoTDB.md |  2 +-
 .../Ecosystem Integration/Spark TsFile.md          | 24 ++++++++--------
 .../Get Started/Frequently asked questions.md      |  6 ++--
 docs/UserGuide/Get Started/Publication.md          |  4 +--
 docs/UserGuide/Get Started/QuickStart.md           | 10 +++----
 docs/UserGuide/Operation Manual/Administration.md  |  8 +++---
 .../DDL Data Definition Language.md                | 10 +++----
 .../DML Data Manipulation Language.md              | 33 +++++++++++-----------
 25 files changed, 130 insertions(+), 132 deletions(-)

diff --git a/docs/UserGuide/Architecture/Files.md 
b/docs/UserGuide/Architecture/Files.md
index f390843..da7c6d4 100644
--- a/docs/UserGuide/Architecture/Files.md
+++ b/docs/UserGuide/Architecture/Files.md
@@ -21,9 +21,9 @@
 
 # Files
 
-In IoTDB, there are many kinds of data needed to be stored. In this section, 
we will introduce IoTDB's data storage strategy in order to give you an 
explicit understanding of IoTDB's data management.
+In IoTDB, there are many kinds of data needed to be stored. This section 
introduces IoTDB's data storage strategy to provide you an explicit 
understanding of IoTDB's data management.
 
-The data that IoTDB stores is divided into three categories, namely data 
files, system files, and pre-write log files.
+The data in IoTDB is divided into three categories, namely data files, system 
files, and pre-write log files.
 
 ## Data Files
 
@@ -43,7 +43,7 @@ Pre-write log files store WAL files. It can be configured 
through the `wal_dir`
 
 For a clearer understanding of configuring the data storage directory, we will 
give an example in this section.
 
-All data directory paths involved in storage directory setting are: base_dir, 
data_dirs, multi_dir_strategy, and wal_dir, which refer to system files, data 
folders, storage strategy, and pre-write log files.
+The data directory path included in storage directory setting are: base_dir, 
data_dirs, multi_dir_strategy, and wal_dir, which refer to system files, data 
folders, storage strategy, and pre-write log files.
 
 An example of the configuration items are as follows:
 
@@ -56,5 +56,5 @@ wal_dir= $IOTDB_HOME/data/wal
 After setting the configuration, the system will:
 
 * Save all system files in $IOTDB_HOME/data
-* Save TsFile in /data1/data, /data2/data, /data3/data. And the choosing 
strategy is `MaxDiskUsableSpaceFirstStrategy`, that is every time data writes 
to the disk, the system will automatically select a directory with the largest 
remaining disk space to write data.
+* Save TsFile in /data1/data, /data2/data, /data3/data. And the choosing 
strategy is `MaxDiskUsableSpaceFirstStrategy`, when data writes to the disk, 
the system will automatically select a directory with the largest remaining 
disk space to write data.
 * Save WAL data in $IOTDB_HOME/data/wal
diff --git a/docs/UserGuide/Architecture/Writing Data on HDFS.md 
b/docs/UserGuide/Architecture/Writing Data on HDFS.md
index dbf2e43..14cbf1b 100644
--- a/docs/UserGuide/Architecture/Writing Data on HDFS.md       
+++ b/docs/UserGuide/Architecture/Writing Data on HDFS.md       
@@ -33,7 +33,7 @@ When you config to store TSFile on HDFS, your data files will 
be in distributed
 
 ### Config and usage
 
-If you want to store TSFile and related data files in HDFS, here are the steps:
+To store TSFile and related data files in HDFS, here are the steps:
 
 First, download the source release from website or git clone the repository, 
the tag of a released version is release/x.x.x
 
@@ -153,7 +153,7 @@ Edit user config in `iotdb-engine.properties`. Related 
configurations are:
 
 Start server, and Tsfile will be stored on HDFS.
 
-If you'd like to reset storage file system to local, just edit configuration 
`tsfile_storage_fs` to `LOCAL`. In this situation, if you have already had some 
data files on HDFS, you should either download them to local and move them to 
your config data file folder (`../server/target/iotdb-server-0.10.0/data/data` 
by default), or restart your process and import data to IoTDB.
+To reset storage file system to local, just edit configuration 
`tsfile_storage_fs` to `LOCAL`. In this situation, if data files are already on 
HDFS, you should either download them to local and move them to your config 
data file folder (`../server/target/iotdb-server-0.10.0/data/data` by default), 
or restart your process and import data to IoTDB.
 
 ### Frequent questions
 
diff --git a/docs/UserGuide/Client/Command Line Interface.md 
b/docs/UserGuide/Client/Command Line Interface.md
index 69f82d0..baa127e 100644
--- a/docs/UserGuide/Client/Command Line Interface.md   
+++ b/docs/UserGuide/Client/Command Line Interface.md   
@@ -28,7 +28,7 @@
   - Cli/Shell Parameters
   - Cli/shell tool with -e parameter
 
-IoTDB provides Cli/shell tools for users to interact with IoTDB server in 
command lines. This document will show how Cli/shell tool works and what does 
it parameters mean.
+IoTDB provides Cli/shell tools for users to interact with IoTDB server in 
command lines. This document shows how Cli/shell tool works and the meaning of 
its parameters.
 
 > Note: In this document, \$IOTDB\_HOME represents the path of the IoTDB 
 > installation directory.
 
@@ -40,7 +40,7 @@ Under the root path of incubator-iotdb:
 > mvn clean package -pl cli -am -DskipTests
 ```
 
-After build, the IoTDB cli will be at the folder 
"cli/target/iotdb-cli-{project.version}".
+After build, the IoTDB cli will be in the folder 
"cli/target/iotdb-cli-{project.version}".
 
 ## Running Cli/Shell
 
diff --git a/docs/UserGuide/Client/Programming - JDBC.md 
b/docs/UserGuide/Client/Programming - JDBC.md
index 6a6e8d0..26f57ec 100644
--- a/docs/UserGuide/Client/Programming - JDBC.md       
+++ b/docs/UserGuide/Client/Programming - JDBC.md       
@@ -36,14 +36,14 @@ Execute the following command in the root directory:
 mvn clean package -pl jdbc -am -DskipTests
 ```
 
-## How to install in local maven repository
+## Install in local maven repository
 
 In root directory:
 ```
 mvn clean install -pl jdbc -am -Dmaven.test.skip=true
 ```
 
-## Using IoTDB JDBC with Maven
+## Use IoTDB JDBC with Maven
 
 ```
 <dependencies>
@@ -60,7 +60,7 @@ mvn clean install -pl jdbc -am -Dmaven.test.skip=true
 
 This chapter provides an example of how to open a database connection, execute 
a SQL query, and display the results.
 
-Requires that you include the packages containing the JDBC classes needed for 
database programming.
+It requires including the packages containing the JDBC classes needed for 
database programming.
 
 **NOTE: For faster insertion, the insertTablet() in Session is recommended.**
 
diff --git a/docs/UserGuide/Client/Programming - MQTT.md 
b/docs/UserGuide/Client/Programming - MQTT.md
index 5ae4a1e..43a5f9d 100644
--- a/docs/UserGuide/Client/Programming - MQTT.md       
+++ b/docs/UserGuide/Client/Programming - MQTT.md       
@@ -33,7 +33,7 @@ IoTDB server includes a built-in MQTT service that allows 
remote devices send me
 ## Built-in MQTT Service
 The Built-in MQTT Service provide the ability of direct connection to IoTDB 
through MQTT. It listen the publish messages from MQTT clients
  and then write the data into storage immediately. 
-The MQTT topic is corresponding to IoTDB timeseries. 
+The MQTT topic corresponds to IoTDB timeseries. 
 The messages payload can be format to events by `PayloadFormatter` which 
loaded by java SPI, and the default implementation is `JSONPayloadFormatter`.
 The default `json` formatter support two json format, and the following is an 
MQTT message payload example:
 
@@ -60,7 +60,7 @@ or
 ## MQTT Configurations
 The IoTDB MQTT service load configurations from 
`${IOTDB_HOME}/${IOTDB_CONF}/iotdb-engine.properties` by default.
 
-Configurations are as following:
+Configurations are as follows:
 
 | NAME        | DESCRIPTION           | DEFAULT  |
 | ------------- |:-------------:|:------:|
diff --git a/docs/UserGuide/Client/Programming - Native API.md 
b/docs/UserGuide/Client/Programming - Native API.md
index b95fc32..58fc6f6 100644
--- a/docs/UserGuide/Client/Programming - Native API.md 
+++ b/docs/UserGuide/Client/Programming - Native API.md 
@@ -192,10 +192,10 @@ The sample code of using these interfaces is in 
example/session/src/main/java/or
 
 ## Session Pool for Native API
 
-We provided a connection pool (`SessionPool) for Native API.
+We provide a connection pool (`SessionPool) for Native API.
 Using the interface, you need to define the pool size.
 
-If you can not get a session connection in 60 secondes, there is a warning log 
but the program will hang.
+If you can not get a session connection in 60 seconds, there is a warning log 
but the program will hang.
 
 If a session has finished an operation, it will be put back to the pool 
automatically.
 If a session connection is broken, the session will be removed automatically 
and the pool will try 
@@ -217,8 +217,8 @@ Or 
`example/session/src/main/java/org/apache/iotdb/SessionPoolExample.java`
 
 ## 0.9-0.10 Session Interface Updates
 
-Great changes have taken place in IoTDB session of version 0.10 compared to 
version 0.9.
-We added a large numbers of new interfaces, and some old interfaces had new 
names or parameters.
+Significant chages are made in IoTDB session of version 0.10 compared to 
version 0.9.
+A large numbers of new interfaces are added, and some old interfaces have new 
names or parameters.
 Besides, all exceptions thrown by session interfaces are changed from 
*IoTDBSessionExeception* to *IoTDBConnectionException* or 
*StatementExecutionExeception*.
 The detailed modifications are listed as follows.
 
@@ -389,4 +389,4 @@ Create multiple timeseries with a single method. Users can 
provide props, tags,
 ```
 boolean checkTimeseriesExists(String path)
 ```
-Added a method to check whether the specific timeseries exists.
+Add a method to check whether the specific timeseries exists.
diff --git a/docs/UserGuide/Client/Programming - Other Languages.md 
b/docs/UserGuide/Client/Programming - Other Languages.md
index 4a98dd8..cfd596d 100644
--- a/docs/UserGuide/Client/Programming - Other Languages.md    
+++ b/docs/UserGuide/Client/Programming - Other Languages.md    
@@ -54,15 +54,15 @@ pip install apache-iotdb
 #### Option 2: use the compile script we provided
 
 If you have added Thrift executable into your path, you may just run 
`client-py/compile.sh` or
- `client-py\compile.bat`, or you will have to modify it to set variable 
`THRIFT_EXE` to point to
+ `client-py\compile.bat`, otherwise, modify it to set variable `THRIFT_EXE` to 
point to
 your executable. This will generate thrift sources under folder `target`, you 
can add it to your
-`PYTHONPATH` so that you would be able to use the library in your code. Notice 
that the scripts
+`PYTHONPATH` so that you will be able to use the library in your code. Note 
that the scripts
 locate the thrift source file by relative path, so if you move the scripts 
else where, they are
 no longer valid.
 
 #### Option 3: basic usage of thrift
 
-Optionally, if you know the basic usage of thrift, you can only download the 
thrift source file in
+Optionally, if you know the basic usage of thrift, download the thrift source 
file in
 `thrift\src\main\thrift\rpc.thrift`, and simply use `thrift -gen py -out 
./target/iotdb rpc.thrift` 
 to generate the python library.
 
diff --git a/docs/UserGuide/Client/Programming - TsFile API.md 
b/docs/UserGuide/Client/Programming - TsFile API.md
index 17b7209..5313757 100644
--- a/docs/UserGuide/Client/Programming - TsFile API.md 
+++ b/docs/UserGuide/Client/Programming - TsFile API.md 
@@ -21,13 +21,13 @@
 
 # Programming - TsFile API
 
-TsFile is a file format of Time Series we used in IoTDB. In this section, we 
would like to introduce the usage of this file format. 
+TsFile is a file format of Time Series used in IoTDB. This session introduces 
the usage of this file format. 
 
 ## TsFile library Installation
 
 There are two ways to use TsFile in your own project.
 
-* Using as jars:
+* Use as jars:
        * Compile the source codes and build to jars
        
                ```
@@ -35,9 +35,9 @@ There are two ways to use TsFile in your own project.
                cd tsfile/
                mvn clean package -Dmaven.test.skip=true
                ```
-               Then, all the jars can be get in folder named `target/`. Import 
`target/tsfile-0.10.0-jar-with-dependencies.jar` to your project.
+               Then, all the jars are in folder named `target/`. Import 
`target/tsfile-0.10.0-jar-with-dependencies.jar` to your project.
        
-* Using as a maven dependency: 
+* Use as a maven dependency: 
 
   Compile source codes and deploy to your local repository in three steps:
 
@@ -100,14 +100,14 @@ There are two ways to use TsFile in your own project.
 This section demonstrates the detailed usages of TsFile.
 
 ### Time-series Data
-A time-series is considered as a sequence of quadruples. A quadruple is 
defined as (device, measurement, time, value).
+Time-series data is considered as a sequence of quadruples. A quadruple is 
defined as (device, measurement, time, value).
 
-* **measurement**: A physical or formal measurement that a time-series is 
taking, e.g., the temperature of a city, the 
+* **measurement**: A physical or formal measurement that a time-series data 
takes, e.g., the temperature of a city, the 
 sales number of some goods or the speed of a train at different times. As a 
traditional sensor (like a thermometer) also
  takes a single measurement and produce a time-series, we will use measurement 
and sensor interchangeably below.
 
-* **device**: A device refers to an entity that is taking several measurements 
(producing multiple time-series), e.g., 
-a running train monitors its speed, oil meter, miles it has run, current 
passengers each is conveyed to a time-series.
+* **device**: A device refers to an entity that takes several measurements 
(producing multiple time-series), e.g., 
+a running train monitors its speed, oil meter, miles it has run, current 
passengers each is conveyed to a time-series dataset.
 
 Table 1 illustrates a set of time-series data. The set showed in the following 
table contains one device named "device\_1" 
 with three measurements named "sensor\_1", "sensor\_2" and "sensor\_3". 
@@ -126,7 +126,7 @@ with three measurements named "sensor\_1", "sensor\_2" and 
"sensor\_3".
 </center>
 
 **One Line of Data**: In many industrial applications, a device normally 
contains more than one sensor and these sensors
- may have values at a same timestamp, which is called one line of data. 
+ may have values at the same timestamp, which is called one line of data. 
 
 Formally, one line of data consists of a `device_id`, a timestamp which 
indicates the milliseconds since January 1,
  1970, 00:00:00, and several data pairs composed of `measurement_id` and 
corresponding `value`. All data pairs in one 
@@ -144,10 +144,10 @@ device_1, 1490860659000, m1, 10, m2, 12.12
 ```
 
 
-### Writing TsFile
+### Write TsFile
 
 #### Generate a TsFile File.
-A TsFile can be generated by following three steps and the complete code will 
be given in the section "Example for writing TsFile".
+A TsFile is generated by the following three steps and the complete code is 
given in the section "Example for writing TsFile".
 
 * First, construct a `TsFileWriter` instance.
   
diff --git a/docs/UserGuide/Client/Status Codes.md 
b/docs/UserGuide/Client/Status Codes.md
index bb85281..446f83c 100644
--- a/docs/UserGuide/Client/Status Codes.md     
+++ b/docs/UserGuide/Client/Status Codes.md     
@@ -21,7 +21,7 @@
 
 # Status Codes
 
-**Status Code** is introduced in the latest version. For example, as IoTDB 
requires registering the time series first before writing data, a kind of 
solution is:
+**Status Code** is introduced in the latest version. A sample solution as 
IoTDB requires registering the time series first before writing data is:
 
 ```
 try {
diff --git a/docs/UserGuide/Comparison/TSDB-Comparison.md 
b/docs/UserGuide/Comparison/TSDB-Comparison.md
index 8e66f2a..d85b1fc 100644
--- a/docs/UserGuide/Comparison/TSDB-Comparison.md
+++ b/docs/UserGuide/Comparison/TSDB-Comparison.md
@@ -28,7 +28,7 @@ several open sourced time series databases are introduced to 
the world.
 However, few of them are developed for IoT or IIoT (Industrial IoT) scenario 
in particular. 
 
 
-We select 3 kinds of TSDBs here.
+3 kinds of TSDBs are compared here.
 
 * InfluxDB - Native Time series database
 
@@ -48,12 +48,12 @@ We select 3 kinds of TSDBs here.
   Interface: SQL
 
 Prometheus and Druid are also famous for time series data management. 
-However, Prometheus focuses on how to collect data, how to visualize data and 
how to alert warnings.
-Druid focuses on how to analyze data with OLAP workload. We omit them here.
+However, Prometheus focuses data collection, data visualization and alert 
warnings.
+Druid focuses on data analysis with OLAP workload. We omit them here.
  
 
 ## Comparison 
-We compare the above time series database from two aspects: the feature 
comparison and the performance
+The above time series databases are compared from two aspects: the feature 
comparison and the performance
 comparison.
 
 
@@ -100,9 +100,9 @@ Legend:
 
 * SQL like: 
 
-  * IoTDB and InfluxDB supports SQL like language. In addition, The 
integration of IoTDB and Calcite is alomost done (a PR has been submitted), 
which means IoTDB will support Standard SQL.
+  * IoTDB and InfluxDB support SQL like language. In addition, the integration 
of IoTDB and Calcite is almost done (a PR has been submitted), which means 
IoTDB will support Standard SQL soon.
   * OpenTSDB and KairosDB only support Rest API, while IoTDB also supports 
Rest API (a PR has been submitted).
-  * TimescaleDB uses the SQL the same with PG.
+  * TimescaleDB uses the SQL the same as PG.
   
 * Schema:
 
@@ -131,9 +131,9 @@ Legend:
   
   Actually, in each time series, all these TSDBs support order data by 
timestamps.
   
-  However, OpenTSDB and KairosDB do not support order the data from different 
timeseries in the time order.
+  However, OpenTSDB and KairosDB do not support order data from different 
timeseries in the time order.
   
-  Ok, considering a new case: I have two time series, one is for the wind 
speed in wind farm1, 
+  Ok, consider a new case: I have two time series, one is for the wind speed 
in wind farm1, 
   another is for the generated energy of wind turbine1 in farm1. If we want to 
analyze the relation between the 
   wind speed and the generated energy, we have to know the values of both at 
the same time.
   That is to say, we have to align the two time series in the time dimension.
@@ -156,7 +156,7 @@ Legend:
     |    2      | generated energy  |    13.3    |
     |    3      | generated energy  |    13.1    |      
   
- Though the second table format does not align data by the time dimension, but 
it is easy to be implemented in the client-side,
+ Though the second table format does not align data by the time dimension, it 
is easy to be implemented in the client-side,
  by just scanning data row by row.
  
  IoTDB supports the first table format (called align by time), InfluxDB 
supports the second table format.
@@ -165,7 +165,7 @@ Legend:
 
   Downsampling is for changing the granularity of timeseries, e.g., from 10Hz 
to 1Hz, or 1 point per day.
   
-  Different with other systems, IoTDB downsamples data in real time, while 
others serialized downsampled data on disk.      
+  Different from other systems, IoTDB downsamples data in real time, while 
others serialized downsampled data on disk.      
   That is to say,
   
   * IoTDB supports **adhoc** downsampling data in **arbitrary time**. 
@@ -244,7 +244,7 @@ I listed some interesting features that these systems may 
differ.
   
   Nowdays, edge computing is more and more popular, which means the edge 
device has more powerful computational resources. 
   Deploying a TSDB on the edge side is useful for managing data on the edge 
side and serve for edge computing. 
-  As OpenTSDB and KairosDB rely another DB, the architecture is a little 
heavy. Especially, it is hard to run Hadoop on the edge side.
+  As OpenTSDB and KairosDB rely another DB, the architecture is heavy. 
Especially, it is hard to run Hadoop on the edge side.
 
 * Multi-instance Sync:
   
@@ -262,7 +262,7 @@ I listed some interesting features that these systems may 
differ.
   
 * Spark and Hive integration:
 
-  It is very very important that letting big data analysis software to access 
the data in database for more complex data analysis.
+  It is very important that letting big data analysis software to access the 
data in database for more complex data analysis.
   IoTDB supports Hive-connector and Spark connector for better integration. 
 
 *  Writing data to NFS (HDFS):
@@ -279,7 +279,7 @@ I listed some interesting features that these systems may 
differ.
 
 ### Performance Comparison
 
-Ok... If you say, "well, I just want to use the basic features. If so, IoTDB 
has little difference with others.".
+Ok... If you say, "well, I just want the basic features. IoTDB has little 
difference from others.".
 It is somehow right. But, if you consider the performance, you may change your 
mind.
 
 #### quick review
@@ -325,10 +325,9 @@ We can see that IoTDB outperforms others.
 
 We provide a benchmarking tool, called IoTDB-benchamrk 
(https://github.com/thulab/iotdb-benchmark, you may have to use the dev branch 
to compile it),
 it supports IoTDB, InfluxDB, KairosDB, TimescaleDB, OpenTSDB. We have a 
[article](https://arxiv.org/abs/1901.08304) for comparing these systems using 
the benchmark tool.
-When we publishing the article, IoTDB just entered Apache incubator, so we 
deleted the performance of IoTDB in that article. But we really did the 
comparison, and I will 
-disclose some results here.
+When we publish the article, IoTDB just entered Apache incubator, so we 
deleted the performance of IoTDB in that article. But after comparison, some 
results are presented here.
 
-- **IoTDB: 0.8.0**. (notice: **IoTDB v0.9 outperforms than v0.8**, we will 
update the result once we finish the experiments on v0.9)
+- **IoTDB: 0.8.0**. (notice: **IoTDB v0.9 outperforms than v0.8**, the result 
will be updated once experiments on v0.9 are finished)
 - InfluxDB: 1.5.1.
 - OpenTSDB: 2.3.1 (HBase 1.2.8)
 - KairosDB: 1.2.1 (Cassandra 3.11.3)
@@ -380,7 +379,7 @@ But using IoTDB v0.9, the write throughput can reach to 40 
million data points p
 
 ## Conclusion
 
-If you are considering to find a TSDB for your IIoT application, then Apache 
IoTDB, a new time series, is your best choice.
+If you are considering a TSDB for your IIoT application, Apache IoTDB, a new 
time series, is your best choice.
 
 We will update this page once we release new version and finish the 
experiments.
 We also welcome more contributors correct this article and contribute IoTDB 
and reproduce experiments.
diff --git a/docs/UserGuide/Concept/Compression.md 
b/docs/UserGuide/Concept/Compression.md
index bab0442..30a8d7f 100644
--- a/docs/UserGuide/Concept/Compression.md
+++ b/docs/UserGuide/Concept/Compression.md
@@ -21,9 +21,9 @@
 
 # Compression
 
-When the time series is written and encoded as binary data according to the 
specified type, IoTDB compresses the data using compression technology to 
further improve space storage efficiency. Although both encoding and 
compression are designed to improve storage efficiency, encoding techniques are 
usually only available for specific data types (e.g., second-order differential 
encoding is only suitable for INT32 or INT64 data type, and storing 
floating-point numbers requires multiplying t [...]
+When the time series is written and encoded as binary data according to the 
specified type, IoTDB compresses the data using compression technology to 
further improve space storage efficiency. Although both encoding and 
compression are designed to improve storage efficiency, encoding techniques are 
usually available only for specific data types (e.g., second-order differential 
encoding is only suitable for INT32 or INT64 data type, and storing 
floating-point numbers requires multiplying t [...]
 
-IoTDB allows you to specify the compression method of the column when creating 
a time series, and now supports three compression methods: 
+IoTDB allows you to specify the compression method of the column when creating 
a time series, and supports three compression methods: 
 
 * UNCOMPRESSED
 
diff --git a/docs/UserGuide/Concept/Data Model and Terminology.md 
b/docs/UserGuide/Concept/Data Model and Terminology.md
index f07c35e..6be8674 100644
--- a/docs/UserGuide/Concept/Data Model and Terminology.md      
+++ b/docs/UserGuide/Concept/Data Model and Terminology.md      
@@ -25,13 +25,13 @@ In this section, a power scenario is taken as an example to 
illustrate how to cr
 
 Download the attachment: 
[IoTDB-SampleData.txt](https://github.com/thulab/iotdb/files/4438687/OtherMaterial-Sample.Data.txt).
 
-According to the data attribute layers described in [sample 
data](https://github.com/thulab/iotdb/files/4438687/OtherMaterial-Sample.Data.txt),
 we can express it as an attribute hierarchy structure based on the coverage of 
attributes and the subordinate relationship between them, as shown in Figure 
2.1 below. Its hierarchical relationship is: power group layer - power plant 
layer - device layer - sensor layer. ROOT is the root node, and each node of 
sensor layer is called a leaf node. In [...]
+According to the data attribute layers described in [sample 
data](https://github.com/thulab/iotdb/files/4438687/OtherMaterial-Sample.Data.txt),
 it is expressed as an attribute hierarchy structure based on the coverage of 
attributes and the subordinate relationship between them, as shown in Figure 
2.1 below. The hierarchical from top to bottom is: power group layer - power 
plant layer - device layer - sensor layer. ROOT is the root node, and each node 
of sensor layer is a leaf node. In th [...]
 
 <center><img style="width:100%; max-width:800px; max-height:600px; 
margin-left:auto; margin-right:auto; display:block;" 
src="https://user-images.githubusercontent.com/13203019/51577327-7aa50780-1ef4-11e9-9d75-cadabb62444e.jpg";></center>
 
 **Figure 2.1 Attribute hierarchy structure**
 
-After getting the name of the timeseries, we need to set up the storage group 
according to the actual scenario and scale of the data. Because in the scenario 
of this chapter data is usually arrived in the unit of groups (i.e., data may 
be across electric fields and devices), in order to avoid frequent switching of 
IO when writing data, and to meet the user's requirement of physical isolation 
of data in the unit of  groups, we set the storage group at the group layer.
+After getting the name of the timeseries, we need to set up the storage group 
according to the actual scenario and scale of the data. Because in the scenario 
of this chapter data is usually arrived in the unit of groups (i.e., data may 
be across electric fields and devices), in order to avoid frequent switch of IO 
when writing data, and meet the user's requirement of physical isolation of 
data in the unit of groups, storage group is set at the group layer.
 
 Here are the basic concepts of the model involved in IoTDB:
 
@@ -45,7 +45,7 @@ A sensor is a detection equipment in an actual scene, which 
can sense the inform
 
 * Storage Group
 
-Storage groups are used to let users define how to organize and isolate 
different time series data on disk. Time series belonging to the same storage 
group will be continuously written to the same file in the corresponding 
folder. The file may be closed due to user commands or system policies, and 
hence the data coming next from these sensors will be stored in a new file in 
the same folder. Time series belonging to different storage groups are stored 
in different folders.
+Storage groups are used to let users define how to organize and isolate 
different time series data on disk. Time series belonging to the same storage 
group is continuously written to the same file in the corresponding folder. The 
file may be closed due to user commands or system policies, and hence the data 
coming next from these sensors will be stored in a new file in the same folder. 
Time series belonging to different storage groups are stored in different 
folders.
 
 Users can set any prefix path as a storage group. Provided that there are four 
time series `root.vehicle.d1.s1`, `root.vehicle.d1.s2`, `root.vehicle.d2.s1`, 
`root.vehicle.d2.s2`, two devices `d1` and `d2` under the path `root.vehicle` 
may belong to the same owner or the same manufacturer, so d1 and d2 are closely 
related. At this point, the prefix path root.vehicle can be designated as a 
storage group, which will enable IoTDB to store all devices under it in the 
same folder. Newly added  [...]
 
diff --git a/docs/UserGuide/Concept/Data Type.md b/docs/UserGuide/Concept/Data 
Type.md
index f62c2a0..15433b0 100644
--- a/docs/UserGuide/Concept/Data Type.md       
+++ b/docs/UserGuide/Concept/Data Type.md       
@@ -32,8 +32,8 @@ IoTDB supports six data types in total:
 
 The time series of **FLOAT** and **DOUBLE** type can specify 
(MAX\_POINT\_NUMBER, see [this page](../Operation%20Manual/SQL%20Reference.md) 
for more information on how to specify), which is the number of digits after 
the decimal point of the floating point number, if the encoding method is 
[RLE](../Concept/Encoding.md) or [TS\_2DIFF](../Concept/Encoding.md) (Refer to 
[Create Timeseries Statement](../Operation%20Manual/SQL%20Reference.md) for 
more information on how to specify). If MAX\_P [...]
 
-* For Float data value, The data range is (-Integer.MAX_VALUE, 
Integer.MAX_VALUE), rather than Float.MAX_VALUE, and the max_point_number is 
19, it is because of the limition of function Math.round(float) in Java.
-* For Double data value, The data range is (-Long.MAX_VALUE, Long.MAX_VALUE), 
rather than Double.MAX_VALUE, and the max_point_number is 19, it is because of 
the limition of function Math.round(double) in Java (Long.MAX_VALUE=9.22E18).
+* For Float data value, The data range is (-Integer.MAX_VALUE, 
Integer.MAX_VALUE), rather than Float.MAX_VALUE, and the max_point_number is 
19, caused by the limition of function Math.round(float) in Java.
+* For Double data value, The data range is (-Long.MAX_VALUE, Long.MAX_VALUE), 
rather than Double.MAX_VALUE, and the max_point_number is 19, caused by the 
limition of function Math.round(double) in Java (Long.MAX_VALUE=9.22E18).
 
 When the data type of data input by the user in the system does not correspond 
to the data type of the time series, the system will report type errors. As 
shown below, the second-order difference encoding does not support the Boolean 
type:
 
diff --git a/docs/UserGuide/Concept/Encoding.md 
b/docs/UserGuide/Concept/Encoding.md
index b17a31d..263c04b 100644
--- a/docs/UserGuide/Concept/Encoding.md
+++ b/docs/UserGuide/Concept/Encoding.md
@@ -21,7 +21,7 @@
 
 # Encoding 
 
-In order to improve the efficiency of data storage, it is necessary to encode 
data during data writing, thereby reducing the amount of disk space used. In 
the process of writing and reading data, the amount of data involved in the I/O 
operations can be reduced to improve performance. IoTDB supports four encoding 
methods for different types of data:
+To improve the efficiency of data storage, it is necessary to encode data 
during data writing, thereby reducing the amount of disk space used. In the 
process of writing and reading data, the amount of data involved in the I/O 
operations can be reduced to improve performance. IoTDB supports four encoding 
methods for different data types:
 
 * PLAIN
 
@@ -33,9 +33,9 @@ Second-order differential encoding is more suitable for 
encoding monotonically i
 
 * RLE
 
-Run-length encoding is more suitable for storing sequence with continuous 
integer values, and is not recommended for sequence data with most of the time 
different values.
+Run-length encoding is suitable for storing sequence with continuous integer 
values, and is not recommended for sequence data with most of the time 
different values.
 
-Run-length encoding can also be used to encode floating-point numbers, but it 
is necessary to specify reserved decimal digits (MAX\_POINT\_NUMBER, see [this 
page](../Operation%20Manual/SQL%20Reference.md) for more information on how to 
specify) when creating time series. It is more suitable for storing sequence 
data where floating-point values appear continuously, monotonously increasing 
or decreasing, and it is not suitable for storing sequence data with high 
precision requirements afte [...]
+Run-length encoding can also be used to encode floating-point numbers, while 
it is necessary to specify reserved decimal digits (MAX\_POINT\_NUMBER, see 
[this page](../Operation%20Manual/SQL%20Reference.md) for more information on 
how to specify) when creating time series. It is more suitable to store 
sequence data where floating-point values appear continuously, monotonously 
increasing or decreasing, and it is not suitable for storing sequence data with 
high precision requirements after [...]
 
 > TS_2DIFF and RLE have precision limit for data type of float and double. By 
 > default, two decimal places are reserved. GORILLA is recommended. 
 
diff --git a/docs/UserGuide/Ecosystem Integration/Grafana.md 
b/docs/UserGuide/Ecosystem Integration/Grafana.md
index 4b402b7..eeb55c7 100644
--- a/docs/UserGuide/Ecosystem Integration/Grafana.md   
+++ b/docs/UserGuide/Ecosystem Integration/Grafana.md   
@@ -37,7 +37,7 @@
 <!-- /TOC -->
 # IoTDB-Grafana
 
-Grafana is an open source volume metrics monitoring and visualization tool, 
which can be used to display time series data and application runtime analysis. 
Grafana supports Graphite, InfluxDB and other major time series databases as 
data sources. We have developed IoTDB-Grafana, a connector to show time series 
data in IoTDB by reading data from IoTDB and sends to 
Grafana(https://grafana.com/). Before you use this tool, make sure Grafana and 
IoTDB are correctly installed and started.
+Grafana is an open source volume metrics monitoring and visualization tool, 
which can be used to display time series data and application runtime analysis. 
Grafana supports Graphite, InfluxDB and other major time series databases as 
data sources. IoTDB-Grafana is a connector which we developed to show time 
series data in IoTDB by reading data from IoTDB and sends to 
Grafana(https://grafana.com/). Before using this tool, make sure Grafana and 
IoTDB are correctly installed and started.
 
 ## Grafana installation
 
@@ -51,26 +51,26 @@ Grafana is an open source volume metrics monitoring and 
visualization tool, whic
 * plugin name: simple-json-datasource
 * Download url: https://github.com/grafana/simple-json-datasource
 
-After downloading this plugin, you can use the grafana-cli tool to install 
SimpleJson from the commandline:
+After downloading this plugin, use the grafana-cli tool to install SimpleJson 
from the commandline:
 
 ```
 grafana-cli plugins install grafana-simple-json-datasource
 ```
 
-Alternatively, you can manually download the .zip file and unpack it into your 
grafana plugins directory.
+Alternatively, manually download the .zip file and unpack it into grafana 
plugins directory.
 
 * `{grafana-install-directory}\data\plugins\` (Windows)
 * `/var/lib/grafana/plugins` (Linux)
 * `/usr/local/var/lib/grafana/plugins`(Mac)
 
 ### Start Grafana
-If you use Unix, Grafana will auto start after installing, or you can run 
`sudo service grafana-server start` command. See more information 
[here](http://docs.grafana.org/installation/debian/).
+If Unix is used, Grafana will start automatically after installing, or you can 
run `sudo service grafana-server start` command. See more information 
[here](http://docs.grafana.org/installation/debian/).
 
-If you use Mac and `homebrew` to install Grafana, you can use `homebrew` to 
start Grafana.
+If Mac and `homebrew` are used to install Grafana, you can use `homebrew` to 
start Grafana.
 First make sure homebrew/services is installed by running `brew tap 
homebrew/services`, then start Grafana using: `brew services start grafana`.
 See more information [here](http://docs.grafana.org/installation/mac/).
 
-If you use Windows, start Grafana by executing grafana-server.exe, located in 
the bin directory, preferably from the command line. See more information 
[here](http://docs.grafana.org/installation/windows/).
+If Windows is used, start Grafana by executing grafana-server.exe, located in 
the bin directory, preferably from the command line. See more information 
[here](http://docs.grafana.org/installation/windows/).
 
 ## IoTDB installation
 
@@ -99,7 +99,7 @@ cd grafana/target
 java -jar iotdb-grafana-{version}.war
 ```
 
-If you see the following output, iotdb-grafana connector is successfully 
activated.
+If following output is displayed, then iotdb-grafana connector is successfully 
activated.
 
 ```shell
 $ java -jar iotdb-grafana-{version}.war
@@ -114,7 +114,7 @@ $ java -jar iotdb-grafana-{version}.war
 ...
 ```
 
-If you need to configure properties, move the 
`grafana/src/main/resources/application.properties` to the same directory as 
the war package (`grafana/target`)
+To configure properties, move the 
`grafana/src/main/resources/application.properties` to the same directory as 
the war package (`grafana/target`)
 
 ## Explore in Grafana
 
diff --git a/docs/UserGuide/Ecosystem Integration/Hive TsFile.md 
b/docs/UserGuide/Ecosystem Integration/Hive TsFile.md
index 1fac80c..2e2e3a8 100644
--- a/docs/UserGuide/Ecosystem Integration/Hive TsFile.md       
+++ b/docs/UserGuide/Ecosystem Integration/Hive TsFile.md       
@@ -27,8 +27,8 @@
        - System Requirements
        - Data Type Correspondence
        - Add Dependency For Hive
-       - Creating Tsfile-backed Hive tables
-       - Querying from Tsfile-backed Hive tables
+       - Create Tsfile-backed Hive tables
+       - Query from Tsfile-backed Hive tables
            - Select Clause Example
            - Aggregate Clause Example
        - What's Next
@@ -82,7 +82,7 @@ Added resources: 
[/Users/hive/iotdb/hive-connector/target/hive-connector-0.10.0-
 ```
 
 
-## Creating Tsfile-backed Hive tables
+## Create Tsfile-backed Hive tables
 
 To create a Tsfile-backed table, specify the `serde` as 
`org.apache.iotdb.hive.TsFileSerDe`, 
 specify the `inputformat` as `org.apache.iotdb.hive.TSFHiveInputFormat`, 
@@ -90,15 +90,15 @@ and the `outputformat` as 
`org.apache.iotdb.hive.TSFHiveOutputFormat`.
 
 Also provide a schema which only contains two fields: `time_stamp` and 
`sensor_id` for the table. 
 `time_stamp` is the time value of the time series 
-and `sensor_id` is the name of the sensor you want to extract from the tsfile 
to hive such as `sensor_1`. 
-The name of the table can be any valid tables names in hive.
+and `sensor_id` is the sensor name to extract from the tsfile to hive such as 
`sensor_1`. 
+The name of the table can be any valid table names in hive.
 
-Also provide a location from which hive-connector will pull the most current 
data for the table.
+Also a location provided for hive-connector to pull the most current data for 
the table.
 
-The location must be a specific directory, it can be on your local file system 
or HDFS if you have set up Hadoop.
+The location should be a specific directory on your local file system or HDFS 
to set up Hadoop.
 If it is in your local file system, the location should look like 
`file:///data/data/sequence/root.baic2.WWS.leftfrontdoor/`
 
-At last, you should set the `device_id` in `TBLPROPERTIES` to the device name 
you want to analyze.
+Last, set the `device_id` in `TBLPROPERTIES` to the device name you want to 
analyze.
 
 For example:
 
@@ -113,8 +113,8 @@ STORED AS
 LOCATION '/data/data/sequence/root.baic2.WWS.leftfrontdoor/'
 TBLPROPERTIES ('device_id'='root.baic2.WWS.leftfrontdoor.plc1');
 ```
-In this example we're pulling the data of 
`root.baic2.WWS.leftfrontdoor.plc1.sensor_1` from the directory of 
`/data/data/sequence/root.baic2.WWS.leftfrontdoor/`. 
-This table might result in a description as below:
+In this example, the data of `root.baic2.WWS.leftfrontdoor.plc1.sensor_1` is 
pulled from the directory of 
`/data/data/sequence/root.baic2.WWS.leftfrontdoor/`. 
+This table results in a description as below:
 
 ```
 hive> describe only_sensor_1;
@@ -125,7 +125,7 @@ Time taken: 0.053 seconds, Fetched: 2 row(s)
 ```
 At this point, the Tsfile-backed table can be worked with in Hive like any 
other table.
 
-## Querying from Tsfile-backed Hive tables
+## Query from Tsfile-backed Hive tables
 
 Before we do any queries, we should set the `hive.input.format` in hive by 
executing the following command.
 
@@ -185,6 +185,6 @@ Time taken: 11.334 seconds, Fetched: 1 row(s)
 
 ## What's Next
 
-We're currently only supporting read operation.
-Writing tables to Tsfiles is under development.
+Only read operation is currently supported.
+Write operation is under development.
 
diff --git a/docs/UserGuide/Ecosystem Integration/MapReduce TsFile.md 
b/docs/UserGuide/Ecosystem Integration/MapReduce TsFile.md
index 87045d1..50d6949 100644
--- a/docs/UserGuide/Ecosystem Integration/MapReduce TsFile.md  
+++ b/docs/UserGuide/Ecosystem Integration/MapReduce TsFile.md  
@@ -66,7 +66,7 @@ With this connector, you can
 
 TSFInputFormat extract data from tsfile and format them into records of 
`MapWritable`.
 
-Supposing that we want to extract data of the device named `d1` which has 
three sensors named `s1`, `s2`, `s3`.
+Suppose that we want to extract data of the device named `d1` which has three 
sensors named `s1`, `s2`, `s3`.
 
 `s1`'s type is `BOOLEAN`, `s2`'s type is `DOUBLE`, `s3`'s type is `TEXT`.
 
@@ -84,7 +84,7 @@ The `MapWritable` struct will be like:
 In the Map job of Hadoop, you can get any value you want by key as following:
 
 `mapwritable.get(new Text("s1"))`
-> Note: All the keys in `MapWritable` have type of `Text`.
+> Note: All keys in `MapWritable` are `Text` type.
 
 ## Examples
 
diff --git a/docs/UserGuide/Ecosystem Integration/Spark IoTDB.md 
b/docs/UserGuide/Ecosystem Integration/Spark IoTDB.md
index e7047ae..c1d81ed 100644
--- a/docs/UserGuide/Ecosystem Integration/Spark IoTDB.md       
+++ b/docs/UserGuide/Ecosystem Integration/Spark IoTDB.md       
@@ -57,7 +57,7 @@ df.printSchema()
 df.show()
 ```
 
-### if you want to partition your rdd, you can do as following
+### To partition rdd:
 ```
 spark-shell --jars 
spark-iotdb-connector-0.10.0.jar,iotdb-jdbc-0.10.0-jar-with-dependencies.jar
 
diff --git a/docs/UserGuide/Ecosystem Integration/Spark TsFile.md 
b/docs/UserGuide/Ecosystem Integration/Spark TsFile.md
index 7c34579..a43f892 100644
--- a/docs/UserGuide/Ecosystem Integration/Spark TsFile.md      
+++ b/docs/UserGuide/Ecosystem Integration/Spark TsFile.md      
@@ -81,7 +81,7 @@ Note:
 
 ## 5. Schema Inference
 
-The way to display TsFile is dependent on the schema. Take the following 
TsFile structure as an example: There are three Measurements in the TsFile 
schema: status, temperature, and hardware. The basic information of these three 
measurements is as follows:
+The way to display TsFile is dependent on the schema. Take the following 
TsFile structure as an example: There are three measurements in the TsFile 
schema: status, temperature, and hardware. The basic information of these three 
measurements is listed:
 
 <center>
 <table style="text-align:center">
@@ -92,7 +92,7 @@ The way to display TsFile is dependent on the schema. Take 
the following TsFile
 </table>
 </center>
 
-The existing data in the TsFile is as follows:
+The existing data in the TsFile are:
 
 <center>
 <table style="text-align:center">
@@ -107,7 +107,7 @@ The existing data in the TsFile is as follows:
 
 
 
-The corresponding SparkSQL table is as follows:
+The corresponding SparkSQL table is:
 
 | time | root.ln.wf02.wt02.temperature | root.ln.wf02.wt02.status | 
root.ln.wf02.wt02.hardware | root.ln.wf01.wt01.temperature | 
root.ln.wf01.wt01.status | root.ln.wf01.wt01.hardware |
 
|------|-------------------------------|--------------------------|----------------------------|-------------------------------|--------------------------|----------------------------|
@@ -237,7 +237,7 @@ newDf.show
 
 ## Appendix A: Old Design of Schema Inference
 
-The way to display TsFile is related to TsFile Schema. Take the following 
TsFile structure as an example: There are three Measurements in the Schema of 
TsFile: status, temperature, and hardware. The basic info of these three 
Measurements is as follows:
+The way to display TsFile is related to TsFile Schema. Take the following 
TsFile structure as an example: There are three measurements in the Schema of 
TsFile: status, temperature, and hardware. The basic info of these three 
Measurements is:
 
 <center>
 <table style="text-align:center">
@@ -249,7 +249,7 @@ The way to display TsFile is related to TsFile Schema. Take 
the following TsFile
 <span>Basic info of Measurements</span>
 </center>
 
-The existing data in the file is as follows:
+The existing data in the file are:
 
 <center>
 <table style="text-align:center">
@@ -263,16 +263,16 @@ The existing data in the file is as follows:
 </table>
 <span>A set of time-series data</span>
 </center>
-There are two ways to show it out:
+There are two ways to show a set of time-series data:
 
 #### the default way
 
-Two columns will be created to store the full path of the device: 
time(LongType) and delta_object(StringType).
+Two columns are created to store the full path of the device: time(LongType) 
and delta_object(StringType).
 
 - `time` : Timestamp, LongType
 - `delta_object` : Delta_object ID, StringType
 
-Next, a column is created for each Measurement to store the specific data. The 
SparkSQL table structure is as follows:
+Next, a column is created for each Measurement to store the specific data. The 
SparkSQL table structure is:
 
 <center>
        <table style="text-align:center">
@@ -300,11 +300,11 @@ Next, a column is created for each Measurement to store 
the specific data. The S
 </center>
 
 
-#### unfolding delta_object column
+#### unfold delta_object column
 
-Expand the device column by "." into multiple columns, ignoring the root 
directory "root". Convenient for richer aggregation operations. If the user 
wants to use this display way, the parameter "delta\_object\_name" needs to be 
set in the table creation statement (refer to Example 5 in Section 5.1 of this 
manual), as in this example, parameter "delta\_object\_name" is set to 
"root.device.turbine". The number of path layers needs to be one-to-one. At 
this point, one column is created for  [...]
+Expand the device column by "." into multiple columns, ignoring the root 
directory "root". Convenient for richer aggregation operations. To use this 
display way, the parameter "delta\_object\_name" is set in the table creation 
statement (refer to Example 5 in Section 5.1 of this manual), as in this 
example, parameter "delta\_object\_name" is set to "root.device.turbine". The 
number of path layers needs to be one-to-one. At this point, one column is 
created for each layer of the device pa [...]
 
-Then The SparkSQL Table Structure is as follow:
+Then SparkSQL Table Structure is as follows:
 
 <center>
        <table style="text-align:center">
@@ -331,7 +331,7 @@ Then The SparkSQL Table Structure is as follow:
        </table>
 </center>
 
-TsFile-Spark-Connector can display one or more TsFiles as a table in SparkSQL 
By SparkSQL. It also allows users to specify a single directory or use 
wildcards to match multiple directories. If there are multiple TsFiles, the 
union of the measurements in all TsFiles will be retained in the table, and the 
measurement with the same name will have the same data type by default. Note 
that if there is a situation with the same name but different data types, 
TsFile-Spark-Connector will not guar [...]
+TsFile-Spark-Connector displays one or more TsFiles as a table in SparkSQL By 
SparkSQL. It also allows users to specify a single directory or use wildcards 
to match multiple directories. If there are multiple TsFiles, the union of the 
measurements in all TsFiles will be retained in the table, and the measurement 
with the same name have the same data type by default. Note that if a situation 
with the same name but different data types exists, TsFile-Spark-Connector does 
not guarantee the  [...]
 
 The writing process is to write a DataFrame as one or more TsFiles. By 
default, two columns need to be included: time and delta_object. The rest of 
the columns are used as Measurement. If user wants to write the second table 
structure back to TsFile, user can set the "delta\_object\_name" 
parameter(refer to Section 5.1 of Section 5.1 of this manual).
 
diff --git a/docs/UserGuide/Get Started/Frequently asked questions.md 
b/docs/UserGuide/Get Started/Frequently asked questions.md
index cded543..82c542e 100644
--- a/docs/UserGuide/Get Started/Frequently asked questions.md  
+++ b/docs/UserGuide/Get Started/Frequently asked questions.md  
@@ -112,7 +112,7 @@ Use IoTDB's Command Line Interface:
 IoTDB> show timeseries root
 ```
 
-In the result, there will be a statement shows `Total timeseries number`, this 
number is the timeseries number in IoTDB.
+In the result, there is a statement shows `Total timeseries number`, this 
number is the timeseries number in IoTDB.
 
 In the current version, IoTDB supports querying the number of time series. Use 
IoTDB's Command Line Interface:
 
@@ -133,7 +133,7 @@ Yes. IoTDB has intense integration with Open Source 
Ecosystem. IoTDB supports [H
 
 ## How does IoTDB handle duplicate points?
 
-A data point is uniquely identified by a full time series path (e.g. 
```root.vehicle.d0.s0```) and timestamp. If you submit a new point with the 
same path and timestamp as an existing point, IoTDB will update the value of 
this point instead of inserting a new point. 
+A data point is uniquely identified by a full time series path (e.g. 
```root.vehicle.d0.s0```) and timestamp. If you submit a new point with the 
same path and timestamp as an existing point, IoTDB updates the value of this 
point instead of inserting a new point. 
 
 ## How can I tell what type of the specific timeseries?
 
@@ -159,7 +159,7 @@ IoTDB> show timeseries root.fit.d1.*
 
 ## How can I change IoTDB's Cli time display format?
 
-The default IoTDB's Cli time display format is human readable (e.g. 
```1970-01-01T08:00:00.001```), if you want to display time in timestamp type 
or other readable format, add parameter ```-disableISO8601``` in start command:
+The default IoTDB's Cli time display format is readable (e.g. 
```1970-01-01T08:00:00.001```), if you want to display time in timestamp type 
or other readable format, add parameter ```-disableISO8601``` in start command:
 
 ```
 > $IOTDB_CLI_HOME/sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root 
 > -disableISO8601
diff --git a/docs/UserGuide/Get Started/Publication.md b/docs/UserGuide/Get 
Started/Publication.md
index 64f37fb..5040db4 100644
--- a/docs/UserGuide/Get Started/Publication.md 
+++ b/docs/UserGuide/Get Started/Publication.md 
@@ -21,9 +21,9 @@
 
 # Research Papers
 
-Apache IoTDB started at Tsinghua University, School of Software. IoTDB is a 
database for managing large amount of time series data with columnar storage, 
data encoding, pre-computation, and index techniques. It has SQL-like interface 
to write millions of data points per second per node and is optimized to get 
query results in few seconds over trillions of data points. It can also be 
easily integrated with Apache Hadoop MapReduce and Apache Spark for analytics.
+Apache IoTDB starts at Tsinghua University, School of Software. IoTDB is a 
database for managing large amount of time series data with columnar storage, 
data encoding, pre-computation, and index techniques. It has SQL-like interface 
to write millions of data points per second per node and is optimized to get 
query results in few seconds over trillions of data points. It can also be 
easily integrated with Apache Hadoop MapReduce and Apache Spark for analytics.
 
-The research papers related are in the following:
+The research papers related are as follows:
 
 * [PISA: An Index for Aggregating Big Time Series 
Data](https://dl.acm.org/citation.cfm?id=2983775&dl=ACM&coll=DL), Xiangdong 
Huang and Jianmin Wang and Raymond K. Wong and Jinrui Zhang and Chen Wang. CIKM 
2016.
 * [Matching Consecutive Subpatterns over Streaming Time 
Series](https://link.springer.com/chapter/10.1007/978-3-319-96893-3_8), Rong 
Kang and Chen Wang and Peng Wang and Yuting Ding and Jianmin Wang. APWeb/WAIM 
2018.
diff --git a/docs/UserGuide/Get Started/QuickStart.md b/docs/UserGuide/Get 
Started/QuickStart.md
index 2d418b7..058ea39 100644
--- a/docs/UserGuide/Get Started/QuickStart.md  
+++ b/docs/UserGuide/Get Started/QuickStart.md  
@@ -169,9 +169,9 @@ IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.status WITH 
DATATYPE=BOOLEAN, ENCODIN
 IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, 
ENCODING=RLE
 ```
 
-In order to query the specific timeseries, we can use SHOW TIMESERIES 
\<Path\>. \<Path\> represent the path of the timeseries. Its default value is 
null, which means querying all the timeseries in the system(the same as using 
"SHOW TIMESERIES root"). Here are the examples:
+To query the specific timeseries, use SHOW TIMESERIES \<Path\>. \<Path\> 
represents the path of the timeseries. Its default value is null, which means 
querying all the timeseries in the system(the same as using "SHOW TIMESERIES 
root"). Here are the examples:
 
-1. Querying all timeseries in the system:
+1. Query all timeseries in the system:
 
 ```
 IoTDB> SHOW TIMESERIES
@@ -184,7 +184,7 @@ IoTDB> SHOW TIMESERIES
 Total timeseries number = 2
 ```
 
-2. Querying a specific timeseries(root.ln.wf01.wt01.status):
+2. Query a specific timeseries(root.ln.wf01.wt01.status):
 
 ```
 IoTDB> SHOW TIMESERIES root.ln.wf01.wt01.status
@@ -196,7 +196,7 @@ IoTDB> SHOW TIMESERIES root.ln.wf01.wt01.status
 Total timeseries number = 1
 ```
 
-Insert timeseries data is the basic operation of IoTDB, you can use ‘INSERT’ 
command to finish this. Before inserting you should assign the timestamp and 
the suffix path name:
+Insert timeseries data is the basic operation of IoTDB, you can use ‘INSERT’ 
command to finish this. Before insert you should assign the timestamp and the 
suffix path name:
 
 ```
 IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp,status) values(100,true);
@@ -260,4 +260,4 @@ Under the root path of iotdb:
 > mvn clean package -pl cli -am -DskipTests
 ```
 
-After build, the IoTDB cli will be at the folder 
"cli/target/iotdb-cli-{project.version}".
\ No newline at end of file
+After build, the IoTDB cli will be in the folder 
"cli/target/iotdb-cli-{project.version}".
\ No newline at end of file
diff --git a/docs/UserGuide/Operation Manual/Administration.md 
b/docs/UserGuide/Operation Manual/Administration.md
index 979491e..e989ea6 100644
--- a/docs/UserGuide/Operation Manual/Administration.md 
+++ b/docs/UserGuide/Operation Manual/Administration.md 
@@ -33,7 +33,7 @@ The user is the legal user of the database. A user 
corresponds to a unique usern
 
 ### Privilege
 
-The database provides a variety of operations, and not all users can perform 
all operations. If a user can perform an operation, the user is said to have 
the privilege to perform the operation. privileges can be divided into data 
management privilege (such as adding, deleting and modifying data) and 
authority management privilege (such as creation and deletion of users and 
roles, granting and revoking of privileges, etc.). Data management privilege 
often needs a path to limit its effecti [...]
+The database provides a variety of operations, and not all users can perform 
all operations. If a user can perform an operation, the user is said to have 
the privilege to perform the operation. privileges are divided into data 
management privilege (such as adding, deleting and modifying data) and 
authority management privilege (such as creation and deletion of users and 
roles, granting and revoking of privileges, etc.). Data management privilege 
often needs a path to limit its effective  [...]
 
 ### Role
 
@@ -45,7 +45,7 @@ There is a default user in IoTDB after the initial 
installation: root, and the d
 
 ## Privilege Management Operation Examples
 
-According to the [sample 
data](https://github.com/thulab/iotdb/files/4438687/OtherMaterial-Sample.Data.txt),
 the sample data of IoTDB may belong to different power generation groups such 
as ln, sgcc, etc. Different power generation groups do not want others to 
obtain their own database data, so we need to have data privilege isolated at 
the group layer.
+According to the [sample 
data](https://github.com/thulab/iotdb/files/4438687/OtherMaterial-Sample.Data.txt),
 the sample data of IoTDB might belong to different power generation groups 
such as ln, sgcc, etc. Different power generation groups do not want others to 
obtain their own database data, so we need to have data privilege isolated at 
the group layer.
 
 ### Create User
 
@@ -127,7 +127,7 @@ At the same time, changes to roles are immediately 
reflected on all users who ow
 IoTDB specifies that the character length of a username should not be less 
than 4, and the username cannot contain spaces.
 ### Password Restrictions
 
-IoTDB specifies that the character length of a password should not be less 
than 4, and the password cannot contain spaces. The password is encrypted with 
MD5.
+IoTDB specifies that the character length of a password should have no less 
than 4 character length, and no spaces. The password is encrypted with MD5.
 ### Role Name Restrictions
 
-IoTDB specifies that the character length of a role name should not be less 
than 4, and the role name cannot contain spaces.
+IoTDB specifies that the character length of a role name should have no less 
than 4 character length, and no spaces.
diff --git a/docs/UserGuide/Operation Manual/DDL Data Definition Language.md 
b/docs/UserGuide/Operation Manual/DDL Data Definition Language.md
index f7204d3..e83842e 100644
--- a/docs/UserGuide/Operation Manual/DDL Data Definition Language.md   
+++ b/docs/UserGuide/Operation Manual/DDL Data Definition Language.md   
@@ -32,7 +32,7 @@ IoTDB > set storage group to root.sgcc
 
 We can thus create two storage groups using the above two SQL statements.
 
-It is worth noting that when the path itself or the parent/child layer of the 
path is already set as a storage group, the path is then not allowed to be set 
as a storage group. For example, it is not feasible to set `root.ln.wf01` as a 
storage group when there exist two storage groups `root.ln` and `root.sgcc`. 
The system will give the corresponding error prompt as shown below:
+It is worth noting that when the path itself or the parent/child layer of the 
path is already set as a storage group, the path is then not allowed to be set 
as a storage group. For example, it is not feasible to set `root.ln.wf01` as a 
storage group when two storage groups `root.ln` and `root.sgcc` exist. The 
system gives the corresponding error prompt as shown below:
 
 ```
 IoTDB> set storage group to root.ln.wf01
@@ -73,7 +73,7 @@ IoTDB > create timeseries root.sgcc.wf03.wt01.status with 
datatype=BOOLEAN,encod
 IoTDB > create timeseries root.sgcc.wf03.wt01.temperature with 
datatype=FLOAT,encoding=RLE
 ```
 
-It is worth noting that when in the CRATE TIMESERIES statement the encoding 
method conflicts with the data type, the system will give the corresponding 
error prompt as shown below:
+Notice that when in the CRATE TIMESERIES statement the encoding method 
conflicts with the data type, the system gives the corresponding error prompt 
as shown below:
 
 ```
 IoTDB> create timeseries root.ln.wf02.wt02.status WITH DATATYPE=BOOLEAN, 
ENCODING=TS_2DIFF
@@ -133,7 +133,7 @@ ALTER timeseries root.turbine.d1.s1 UPSERT ALIAS=newAlias 
TAGS(tag3=v3, tag4=v4)
 
 * SHOW LATEST? TIMESERIES prefixPath? showWhereClause? limitClause?
 
-  There are four optional clauses could be added in SHOW TIMESERIES, return 
information of time series 
+  There are four optional clauses added in SHOW TIMESERIES, return information 
of time series 
   
 Timeseries information includes: timeseries path, alias of measurement, 
storage group it belongs to, data type, encoding type, compression type, tags 
and attributes.
  
@@ -226,7 +226,7 @@ IoTDB > COUNT TIMESERIES root.ln.wf01.wt01.status
 
 Besides, `LEVEL` could be defined to show count the number of timeseries of 
each node at the given level in current Metadata Tree. This could be used to 
query the number of sensors under each device. The grammar is: `COUNT 
TIMESERIES <Path> GROUP BY LEVEL=<INTEGER>`.
 
-For example, if there are several timeseires (use `show timeseries` to show 
all timeseries):
+For example, if there are several timeseries (use `show timeseries` to show 
all timeseries):
 <center><img style="width:100%; max-width:800px; margin-left:auto; 
margin-right:auto; display:block;" 
src="https://user-images.githubusercontent.com/19167280/69792072-cdc8a480-1200-11ea-8cec-321fef618a12.png";></center>
 
 Then the Metadata Tree will be as below:
@@ -358,7 +358,7 @@ IoTDB> CLEAR CACHE
 
 ## CREATE SNAPSHOT FOR SCHEMA
 
-To speed up restarting of IoTDB, users could create snapshot of schema and 
avoid recovering schema from mlog file.
+To speed up restarting of IoTDB, users can create snapshot of schema and avoid 
recovering schema from mlog file.
 ```
 IoTDB> CREATE SNAPSHOT FOR SCHEMA
 ```
diff --git a/docs/UserGuide/Operation Manual/DML Data Manipulation Language.md 
b/docs/UserGuide/Operation Manual/DML Data Manipulation Language.md
index 7b61903..ffc2751 100644
--- a/docs/UserGuide/Operation Manual/DML Data Manipulation Language.md 
+++ b/docs/UserGuide/Operation Manual/DML Data Manipulation Language.md 
@@ -29,7 +29,7 @@ IoTDB provides users with a variety of ways to insert 
real-time data, such as di
 This section mainly introduces the use of [INSERT SQL 
statement](../Operation%20Manual/SQL%20Reference.md) for real-time data import 
in the scenario.
 
 #### Use of INSERT Statements
-The [INSERT SQL statement](../Operation%20Manual/SQL%20Reference.md) statement 
can be used to insert data into one or more specified timeseries that have been 
created. For each point of data inserted, it consists of a 
[timestamp](../Concept/Data%20Model%20and%20Terminology.md) and a sensor 
acquisition value (see [Data Type](../Concept/Data%20Type.md)).
+The [INSERT SQL statement](../Operation%20Manual/SQL%20Reference.md) statement 
is used to insert data into one or more specified timeseries created. For each 
point of data inserted, it consists of a 
[timestamp](../Concept/Data%20Model%20and%20Terminology.md) and a sensor 
acquisition value (see [Data Type](../Concept/Data%20Type.md)).
 
 In the scenario of this section, take two timeseries 
`root.ln.wf02.wt02.status` and `root.ln.wf02.wt02.hardware` as an example, and 
their data types are BOOLEAN and TEXT, respectively.
 
@@ -55,7 +55,7 @@ After inserting the data, we can simply query the inserted 
data using the SELECT
 IoTDB > select * from root.ln.wf02 where time < 3
 ```
 
-The result is shown below. From the query results, it can be seen that the 
insertion statements of single column and multi column data are performed 
correctly.
+The result is shown below. The query result shows that the insertion 
statements of single column and multi column data are performed correctly.
 
 <center><img style="width:100%; max-width:800px; max-height:600px; 
margin-left:auto; margin-right:auto; display:block;" 
src="https://user-images.githubusercontent.com/13203019/51605021-c2ee1500-1f48-11e9-8f6b-ba9b48875a41.png";></center>
 
@@ -211,7 +211,7 @@ The GROUP BY statement provides users with three types of 
specified parameters:
 
 The actual meanings of the three types of parameters are shown in Figure 5.2 
below. 
 Among them, the parameter 3 is optional. 
-Next we will give three typical examples of frequency reduction aggregation: 
+There are three typical examples of frequency reduction aggregation: 
 parameter 3 not specified, 
 parameter 3 specified, 
 and value filtering conditions specified.
@@ -230,7 +230,7 @@ select count(status), max_value(temperature) from 
root.ln.wf01.wt01 group by ([2
 ```
 which means:
 
-Since the user does not specify the sliding step length, the GROUP BY 
statement will by default set the sliding step same as the time interval which 
is `1d`.
+Since the sliding step length is not specified, the GROUP BY statement by 
default set the sliding step the same as the time interval which is `1d`.
 
 The fist parameter of the GROUP BY statement above is the display window 
parameter, which determines the final display range is [2017-11-01T00:00:00, 
2017-11-07T23:00:00).
 
@@ -558,7 +558,7 @@ This chapter mainly introduces related examples of row and 
column control of que
 
 #### Row Control over Query Results
 
-By using LIMIT and OFFSET clauses, users can control the query results in a 
row-related manner. We will demonstrate how to use LIMIT and OFFSET clauses 
through the following examples.
+By using LIMIT and OFFSET clauses, users control the query results in a 
row-related manner. We demonstrate how to use LIMIT and OFFSET clauses through 
the following examples.
 
 * Example 1: basic LIMIT clause
 
@@ -569,7 +569,7 @@ select status, temperature from root.ln.wf01.wt01 limit 10
 ```
 which means:
 
-The selected device is ln group wf01 plant wt01 device; the selected 
timeseries is "status" and "temperature". The SQL statement requires the first 
10 rows of the query result be returned.
+The selected device is ln group wf01 plant wt01 device; the selected 
timeseries is "status" and "temperature". The SQL statement requires the first 
10 rows of the query result.
 
 The result is shown below:
 
@@ -599,7 +599,7 @@ select status,temperature from root.ln.wf01.wt01 where time 
> 2017-11-01T00:05:0
 ```
 which means:
 
-The selected device is ln group wf01 plant wt01 device; the selected 
timeseries is "status" and "temperature". The SQL statement requires rows 3 to 
4 of  the status and temperature sensor values between the time point of 
"2017-11-01T00:05:00.000" and "2017-11-01T00:12:00.000" be returned (with the 
first row numbered as row 0).
+The selected device is ln group wf01 plant wt01 device; the selected 
timeseries is "status" and "temperature". The SQL statement requires rows 3 to 
4 of  the status and temperature sensor values between the time point of 
"2017-11-01T00:05:00.000" and "2017-11-01T00:12:00.000" (with the first row 
numbered as row 0).
 
 The result is shown below:
 
@@ -727,7 +727,7 @@ For example:
 select s1 as temperature, s2 as speed from root.ln.wf01.wt01;
 ```
 
-The result set will be like:
+The result set is:
 
 | Time | temperature | speed |
 | ---- | ----------- | ----- |
@@ -735,7 +735,7 @@ The result set will be like:
 
 #### Other ResultSet Format
 
-In addition, IoTDB supports two another resultset format: 'align by device' 
and 'disable align'.
+In addition, IoTDB supports two other result set format: 'align by device' and 
'disable align'.
 
 The 'align by device' indicates that the deviceId is considered as a column. 
Therefore, there are totally limited columns in the dataset. 
 
@@ -751,7 +751,7 @@ The 'disable align' indicaes that there are 3 columns for 
each time series in th
 
 ####  Error Handling
 
-When the parameter N/SN of LIMIT/SLIMIT exceeds the size of the result set, 
IoTDB will return all the results as expected. For example, the query result of 
the original SQL statement consists of six rows, and we select the first 100 
rows through the LIMIT clause:
+If the parameter N/SN of LIMIT/SLIMIT exceeds the size of the result set, 
IoTDB returns all the results as expected. For example, the query result of the 
original SQL statement consists of six rows, and we select the first 100 rows 
through the LIMIT clause:
 
 ```
 select status,temperature from root.ln.wf01.wt01 where time > 
2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000 limit 100
@@ -760,7 +760,7 @@ The result is shown below:
 
 <center><img style="width:100%; max-width:800px; max-height:600px; 
margin-left:auto; margin-right:auto; display:block;" 
src="https://user-images.githubusercontent.com/13203019/51578187-ad9cca80-1ef7-11e9-897a-83e66a0f3d94.jpg";></center>
 
-When the parameter N/SN of LIMIT/SLIMIT clause exceeds the allowable maximum 
value (N/SN is of type int32), the system will prompt errors. For example, 
executing the following SQL statement:
+If the parameter N/SN of LIMIT/SLIMIT clause exceeds the allowable maximum 
value (N/SN is of type int32), the system prompts errors. For example, 
executing the following SQL statement:
 
 ```
 select status,temperature from root.ln.wf01.wt01 where time > 
2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000 limit 
1234567890123456789
@@ -769,7 +769,7 @@ The SQL statement will not be executed and the 
corresponding error prompt is giv
 
 <center><img style="width:100%; max-width:800px; max-height:600px; 
margin-left:auto; margin-right:auto; display:block;" 
src="https://user-images.githubusercontent.com/19167280/61517469-e696a180-aa39-11e9-8ca5-42ea991d520e.png";></center>
 
-When the parameter N/SN of LIMIT/SLIMIT clause is not a positive intege, the 
system will prompt errors. For example, executing the following SQL statement:
+If the parameter N/SN of LIMIT/SLIMIT clause is not a positive intege, the 
system prompts errors. For example, executing the following SQL statement:
 
 ```
 select status,temperature from root.ln.wf01.wt01 where time > 
2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000 limit 13.1
@@ -779,7 +779,7 @@ The SQL statement will not be executed and the 
corresponding error prompt is giv
 
 <center><img style="width:100%; max-width:800px; max-height:600px; 
margin-left:auto; margin-right:auto; display:block;" 
src="https://user-images.githubusercontent.com/19167280/61518094-68d39580-aa3b-11e9-993c-fc73c27540f7.png";></center>
 
-When the parameter OFFSET of LIMIT clause exceeds the size of the result set, 
IoTDB will return an empty result set. For example, executing the following SQL 
statement:
+If the parameter OFFSET of LIMIT clause exceeds the size of the result set, 
IoTDB will return an empty result set. For example, executing the following SQL 
statement:
 
 ```
 select status,temperature from root.ln.wf01.wt01 where time > 
2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000 limit 2 offset 6
@@ -787,7 +787,7 @@ select status,temperature from root.ln.wf01.wt01 where time 
> 2017-11-01T00:05:0
 The result is shown below:
 <center><img style="width:100%; max-width:800px; max-height:600px; 
margin-left:auto; margin-right:auto; display:block;" 
src="https://user-images.githubusercontent.com/13203019/51578227-c60ce500-1ef7-11e9-98eb-175beb8d4086.jpg";></center>
 
-When the parameter SOFFSET of SLIMIT clause is not smaller than the number of 
available timeseries, the system will prompt errors. For example, executing the 
following SQL statement:
+If the parameter SOFFSET of SLIMIT clause is not smaller than the number of 
available timeseries, the system prompts errors. For example, executing the 
following SQL statement:
 
 ```
 select * from root.ln.wf01.wt01 where time > 2017-11-01T00:05:00.000 and time 
< 2017-11-01T00:12:00.000 slimit 1 soffset 2
@@ -839,7 +839,7 @@ expressions like : time > XXX, time <= XXX, or two atomic 
expressions connected
 
 
 ### Delete Multiple Timeseries
-When both the power supply status and hardware version of the ln group wf02 
plant wt02 device before 2017-11-01 16:26:00 need to be deleted, [the prefix 
path with broader meaning or the path with 
star](../Concept/Data%20Model%20and%20Terminology.md) can be used to delete the 
data. The SQL statement for this operation is:
+If both the power supply status and hardware version of the ln group wf02 
plant wt02 device before 2017-11-01 16:26:00 need to be deleted, [the prefix 
path with broader meaning or the path with 
star](../Concept/Data%20Model%20and%20Terminology.md) can be used to delete the 
data. The SQL statement for this operation is:
 
 ```
 delete from root.ln.wf02.wt02 where time <= 2017-11-01T16:26:00;
@@ -868,5 +868,4 @@ data folders or convert a timestamp manually to an id using 
`timestamp / partiti
 ` (flooring), and the `partitionInterval` should be in your config (if 
time-partitioning is
 supported in your version).
 
-Please notice that this function is experimental and mainly for development, 
please use it with
-extreme care.
+Please notice that this function is experimental and mainly for development, 
please use it with care.

Reply via email to