Github user greghogan commented on a diff in the pull request:
https://github.com/apache/flink/pull/5045#discussion_r152605878
--- Diff: docs/concepts/programming-model.md ---
@@ -33,53 +33,52 @@ Flink offers different levels of abstraction to develop
streaming/batch applicat
<img src="../fig/levels_of_abstraction.svg" alt="Programming levels of
abstraction" class="offset" width="80%" />
- - The lowest level abstraction simply offers **stateful streaming**. It
is embedded into the [DataStream API](../dev/datastream_api.html)
- via the [Process
Function](../dev/stream/operators/process_function.html). It allows users
freely process events from one or more streams,
- and use consistent fault tolerant *state*. In addition, users can
register event time and processing time callbacks,
+ - The lowest level abstraction offers **stateful streaming** and is
embedded into the [DataStream API](../dev/datastream_api.html)
+ via the [Process
Function](../dev/stream/operators/process_function.html). It allows users to
process events from one or more streams,
+ and use consistent fault tolerant *state*. Users can register event
time and processing time callbacks,
allowing programs to realize sophisticated computations.
- - In practice, most applications would not need the above described low
level abstraction, but would instead program against the
+ - In practice, most applications would not need the low level
abstraction describe above, but would instead program against the
--- End diff --
"describe" -> "described"
---