  Recent progress in (semi-)streaming algorithms for monotone submodular
function maximization has led to tight results for a simple cardinality
constraint. However, current techniques fail to give a similar understanding
for natural generalizations, including matroid constraints. This paper aims at
closing this gap. For a single matroid of rank $k$ (i.e., any solution has
cardinality at most $k$), our main results are: 1) a single-pass streaming
algorithm that uses $\widetilde{O}(k)$ memory and achieves an approximation
guarantee of $0.3178$, and 2) a multi-pass streaming algorithm that uses
$\widetilde{O}(k)$ memory and achieves an approximation guarantee of $(1-1/e -
\varepsilon)$ by taking a constant (depending on $\varepsilon$) number of
passes over the stream. This improves on the previously best approximation
guarantees of $1/4$ and $1/2$ for single-pass and multi-pass streaming
algorithms, respectively. In fact, our multi-pass streaming algorithm is tight
in that any algorithm with a better guarantee than $1/2$ must make several
passes through the stream and any algorithm that beats our guarantee of $1-1/e$
must make linearly many passes (as well as an exponential number of value
oracle queries).
  Moreover, we show how the approach we use for multi-pass streaming can be
further strengthened if the elements of the stream arrive in uniformly random
order, implying an improved result for $p$-matchoid constraints.
