Traffic flow forecasting is a challenging task due to its spatio-temporal nature and the stochastic features underlying complex traffic situations. Currently, Graph Convolutional Network (GCN) methods are among the most successful and promising approaches. However, most GCNs methods rely on a static graph structure, which is generally unable to extract the dynamic spatio-temporal relationships of traffic data and to interpret trip patterns or motivation behind traffic flows. In this paper, we propose a novel Semantics-aware Dynamic Graph Convolutional Network (SDGCN) for traffic flow forecasting. A sparse, state-sharing, hidden Markov model is applied to capture the patterns of traffic flows from sparse trajectory data; this way, latent states, as well as transition matrices that govern the observed trajectory, can be learned. Consequently, we can build dynamic Laplacian matrices adaptively by jointly considering the trip pattern and motivation of traffic flows. Moreover, high-order Laplacian matrices can be obtained by a newly designed forward algorithm of low time complexity. GCN is then employed to exploit spatial features, and Gated Recurrent Unit (GRU) is applied to exploit temporal features. We conduct extensive experiments on three real-world traffic datasets. Experimental results demonstrate that the prediction accuracy of SDGCN outperforms existing traffic flow forecasting methods. In addition, it provides better explanations of the generative Laplace matrices, making it suitable for traffic flow forecasting in large cities and providing insight into the causes of various phenomena such as traffic congestion. The code is publicly available at <uri xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">https://github.com/gorgen2020/SDGCN</uri> .