text:
\section{Introduction}
    Code generation is an important artificial intelligence problem that has the potential to significantly boost the productivity of programmers. Given a specification written in natural language, a code generation system translates the specification into an executable program.
    For example, if a python programmer gives an instruction ``initialize a dictionary, Dict'', the code generator is expected to automatically generates ``\texttt{Dict=}\{\ \}''.

    With the development deep learning techniques, researchers have applied various neural architectures to this problem, such as sequence-to-sequence (Seq2Seq) models or sequence-to-tree (Seq2Tree) models~\cite{sutskever2014sequence,ling2016latent,yin2017syntactic,rabinovich2017abstract,hayati-etal-2018-retrieval,sun2019grammar}.
    Especially, state-of-the-art approaches generate code by predicting a sequence of grammar rules~\cite{yin2017syntactic,rabinovich2017abstract,sun2019grammar}.
    That is to say, the system keeps a partial abstract syntax tree (AST) of the already-generated code, and predicts the grammar rule to be used to expand a particular node.

    The classification of grammar rules faces two main challenges. The first challenge is the long-dependency problem~\cite{bengio1994learning}. A code element may depend on another far-away element. For example, a variable reference statement  ``$\mathrm{if}\ \mathrm{len(a)} < \mathrm{Max\_Length}\text{:}$'' at line 100 may depend on a variable definition statement ``$\mathrm{Max\_Length}=100$'' at line 10.
    The second challenge is the representation of code structures. It is pointed out that the tree-structural information is crucial for modeling code~\cite{mou2016convolutional,yin2017syntactic,rabinovich2017abstract,sun2019grammar}.
     However, a ``flat'' neural architecture, such as an RNN, cannot capture structure information well.

    In this paper, we propose a novel neural architecture, TreeGen, for the code generation. To address the first challenge, TreeGen adopts the recently proposed Transformer architecture~\cite{vaswani2017attention}, which is capable of capturing long dependencies. However, the original Transformer architecture is not designed for programs, and cannot utilize tree structures, i.e., the second above mentioned challenge. A standard way of utilizing structural information, as in graph- and tree-based convolutional neural networks, is to combine the vector representations of a node and its structural neighbors as the output of a structural convolution sub-layer. However, a standard Transformer architecture does not have such structural convolution sub-layers, and it is not clear where to add them.

    It is tempting to add structural convolution sub-layers in all the Transformer blocks.
    Our core conjecture is that when convolving a node and its structural neighbors, the vector representation should mainly contain the information from the original node. As the vector representation of the nodes is processed by more blocks in the decoder of the Transformer, they gradually mix in more information from other nodes and lose their original information. Therefore, we add the structural convolution sub-layer only to the first several Transformer decoder blocks but not all.

    Generally speaking, the TreeGen architecture
    consists of three parts: (1) a natural language (NL) reader (encoder) encodes the text description; (2) an AST reader (the first several Transformer decoder blocks) encodes the previously generated partial code with the structural convolution sub-layers; (3) a decoder (the rest Transformer decoder blocks) combines the query (the node to be expanded in AST) and the previous two encoders to predict the next grammar rule.

    We evaluated our model on an established benchmark dataset for Python code generation, HearthStone~\cite{ling2016latent}, which is a Python implementation of a card game HearthStone. The results show that our model significantly outperforms previous models by $4.5$ percentage points. We further evaluated our model on two semantic parsing datasets, ATIS and GEO, which translate natural language sentences into lambda calculus logical forms. The results show that our model has the best accuracy among previous neural models, with $89.1\%$ and $89.6\%$ accuracy, respectively.
    Our evaluation also shows that adding the structural convolution sub-layer to the first several Transformer blocks significantly outperforms a Transformer with structural convolution in all blocks.

\section{Our Model}
    \begin{figure}
        \centering
          \includegraphics[width=\linewidth]{AST_Example.pdf}
        \caption{A Python AST for code ``$\mathrm{length} = 10$''}
        \label{AST_Example}
    \end{figure}
    \begin{figure*}
        \centering
          \includegraphics[width=\textwidth]{OverviewTrans.pdf}
        \caption{Overview of the TreeGen.}
        \label{Overview}
    \end{figure*}

    We generate code by predicting the grammar rules of the programming language.
    Figure~\ref{Overview} shows the overall picture of our model, which comprises three parts: an NL reader, an AST reader, and decoder. We introduce them in detail in the following subsections.
    \subsection{Grammar Rule Prediction}

In this section, we introduce how to model code generation as a series of classification problems of grammar rules. The programs can be decomposed into several context-free grammar rules and parsed as an AST. For example, Figure~\ref{AST_Example} shows a Python AST for the code ``$\mathrm{length} = 10$'', where dotted boxes are terminal symbols and solid boxes are non-terminal symbols.

AST-based code generation could be thought of as expanding a non-terminal node by a grammar rule. This process is repeated until all leaf nodes are terminal.
In Figure~\ref{AST_Example}, ``\textit{1: root -$>$ Module}'' is an example of the grammar rules, where the preceding number is the ID of the rules. Following the pre-order traverse, we could obtain the sequence of rules that generate the AST shown in the top right corner.

Formally, the probability can be factorized as the probabilities of the rules generating the code following the order.
    \begin{equation}
        p(\mathrm{code})=\prod\nolimits_{i=1}^P p(r_i\mid \text{NL input}, r_i, \cdots, r_{i-1})
    \end{equation}
where $r_i$ is the $i$th rule in the rule sequence. In this way, our task is to train a model to calculate $p(r_i \mid  \text{NL input}, p_i)$, i.e., given the natural language description and the currently generated partial AST the model calculates the probabilities of the rules to expand this node.

    \subsection{NL Reader}
        The input description determines the functionality of the code. It can be a semi-structural description as in the HearthStone dataset, or a natural language as in ATIS and GEO semantic parsing datasets.

        For an input description, we first tokenize it into tokens $n_1, n_2, \cdots, n_L$, where $L$ denotes the length of the input. Each token $n_i$ is then split to characters $c^{(n_i)}_1, c^{(n_i)}_2, \cdots, c^{(n_i)}_S$, where $S$ is the number of characters in $n_i$. All the tokens and characters are represented as real-valued vectors $\bm{n}_1, \bm{n}_2, \cdots, \bm{n}_L$ and $\bm{c}^{(n_i)}_1, \bm{c}^{(n_i)}_2, \cdots, \bm{c}^{(n_i)}_S$ by \textit{embeddings}.
        \subsubsection{Input Text Representation}\

            \medskip
            \underline{\textit{Character Embedding.}} It often happens that similar words have similar characters (e.g., ``program'' and ``programs'').
            To utilize this property, we represent a token by character embeddings with a fully-connected layer
            \begin{equation}
                \bm{n}_i^\text{(c)} = W^\text{(c)}[\bm{c}^{(n_i)}_1;\cdots;\bm{c}^{(n_i)}_{M}]
                \label{equation:conv_preprocessing}
            \end{equation}
            where $W^\text{(c)}$ are the weights and the character sequence is padded to a pre-defined maximum length $M$.
            After the fully-connected layer, we also apply layer normalization~\cite{lei2016layer}. These vectors are then fed to the NL reader, and are integrated with the word embeddings by a gating sub-layer.

        \subsubsection{Neural Structure of NL Reader.}
        The NL reader is composed of a stack of blocks ($N_d$ blocks in total). Each block contains three different sub-layers (namely, self-attention, gating mechanism, and word convolution) to extract features, which we introduce in detail in the following subsections. Between two sub-layers, we employ a residual connection~\cite{he2016deep} followed by a layer normalization.

            \medskip
            \underline{\textit{Self-Attention.}} The self-attention sub-layer follows the Transformer's architecture~\cite{vaswani2017attention}, and uses multi-head attention to capture long dependency information.

            For a sequence of input tokens $n_1, n_2, \cdots, n_L$, we represent them as an embedding
            $\bm{n}_1, \bm{n}_2, \cdots, \bm{n}_L$ by a look-up table. We also use position embeddings to encode the information of word positions. In particular, we adopt the variant in~\citeauthor{dehghani2018universal}~(\citeyear{dehghani2018universal}), and compute the position embedding for the $i$th word in the $b$th Transformer block as
            \begin{align}
            p_{b,i}[2j] &= \sin ((i+b)/(10000^{2j/d} ))\\
            p_{b,i}[2j + 1] &= \sin ((i+b)/(10000^{2j/d} ))
              \label{equation:position_embedding}
            \end{align}
            where $p_{i,b}[\cdot]$ indexes a dimension of the vector $\bm p_{i,b}$, and $d$ is the number of dimensions (i.e., embedding size).

 A Transformer block learns non-linear features by multi-head attention, which yields a matrix $Y_b^\text{(self)} = [\bm{y}^\text{(self)}_{b, 1}, \bm{y}^\text{(self)}_{b, 2}, \cdots, \bm{y}^\text{(self)}_{b, L}]^\top$, where $Y_b^\text{(self)} \in \mathbb{R}^{L\times d}$. For notational simplicity, we omit the subscript $b$. The multi-head layer is computed by
            \begin{equation}
                 Y^\text{(self)} =  \mathrm{concat}(head_1,\cdots,head_H) W_h
                \label{equation:head}
            \end{equation}
            where $H$ denotes the number of heads and $W_h$ is the weight. An attention layer is applied in each head $head_t$, computed by
            \begin{equation}
                head_t = \operatorname{softmax}(\frac{QK^\top}{\sqrt{d_k}})V
                \label{equation:dot_attention}
            \end{equation}
            where $d_k = d / H$ denotes the length of each features vector. $Q$, $K$ and $V$ are computed by
            \begin{align}
            [Q, K, V]=[\bm x_1, \cdots, \bm x_L]^\top [ W_Q, W_K, W_V]
            \end{align}
            where $W_{Q}, W_K, W_V \in \mathbb{R}^{d \times d_k}$ are model parameters. $\bm x_i$ is the input  of this Transformer block. For the first block, it is the vector sum of the table-lookup embedding and the position embedding, i.e.,  $\bm n_{i}+\bm p_{1,i}$; for other blocks, it is the vector sum of the lower Transformer block's output and the position embedding that corresponds to this block.

            \medskip
            \underline{\textit{Gating Mechanism.}} After the features are computed by self-attention, we further incorporate with the information of character embeddings. This is given by a gating mechanism based on softmax. For the $i$th word, we compute a control vector $\bm q_i$ from $\bm y_i^{\text{(self)}}$ by a linear transformation. The softmax weight $\bm k_i^\text{(c)}$ for character embedding is given by a linear transformation from $\bm n_i^\text{(c)}$ in Equation~\ref{equation:conv_preprocessing}. The softmax weight $\bm k_i^\text{(y)}$ for Transformer's output is given by another linear transformation from $\bm y_i^{\text{(self)}}$. Then, the gate is computed by
            \begin{align}
                [\alpha_{i, t}^\text{(y)}, \alpha_{i, t}^\text{(c)}]= \operatorname{softmax}\{ \bm q_i^\top \bm k_i^\text{(y)}, \bm q_i^\top\bm k_i^\text{(c)}\}
                \label{gating_softmax}
            \end{align}
            They are used to weigh the feature of the Transformer's layer $\bm v_i^\text{(y)}$ and the feature of character embeddings $\bm v_i^\text{(c)}$, linear transformed from $\bm y_i^\text{(self)}$ and $\bm n_i^\text{(c)}$, respectively.

            \begin{equation}
                \bm h_{i,t}= [\alpha_{i, t}^\text{(y)}\bm v_i^\text{(y)} + \alpha_{i, t}^\text{(c)} \bm v_i^\text{(c)}]
                \label{gating_head}
            \end{equation}

                        Similar to Equation~\ref{equation:head}, the output of our gating mechanism is
            $Y^{\text{(gate)}} = (\bm h_{i, t})_{i,t}$, where $(\cdot)_{i,t}$ represents a block matrix with the elements being $h_{i,t}$.

            \medskip
            \underline{\textit{Word Convolution.}}
            Finally, two convolutional layers are applied to the output of the gating mechanism $\bm y^\text{(gate)}_1,\cdots,\bm y^\text{(gate)}_L$ and to extract the local features around each token $\bm y^{\text{(}\text{conv}, l\text{)}}_1,\cdots,\bm y^{\text{(}\text{conv}, l\text{)}}_L$, where $l$ denotes the layer of convolutional layers. The $\bm y^{\text{(conv}, l\text{)}}_i$ is computed by
            \begin{equation}
                \bm y^{\text{(}\text{conv}, l\text{)}}_i = W^{\text{(}\text{conv}, l\text{)}}[\bm y^{\text{(}\text{conv}, l - 1\text{)}}_{i - w};\cdots;\bm y^{\text{(}\text{conv}, l - 1\text{)}}_{i + w}]
            \end{equation}
            where $W^{\text{(}\text{conv}, l\text{)}}$ are the convolution weights, $w = (k - 1) / 2$, and $k$ denotes the window size. In particular, $\bm y^{\text{(}\text{conv}, 0\text{)}}_i$ denotes the output of gating mechanism $\bm y^{\text{(}\text{gate)}}_i$. In these layers, separable convolution~\cite{chollet2017xception} is used. The reason is separable convolution has fewer parameters that is easy for training. For the first and the last words, we add zero padding. Between these layers, we use the $\mathrm{GELU}$ activation function~\cite{hendrycks2016bridging}.

            \medskip
            In summary, the NL reader has a few Transformer blocks of self-attention, the gating mechanism, and word convolution. The natural language description is encoded as features $\bm y_1^\text{(NL)},\bm y_2^\text{(NL)},\cdots,\bm y_L^\text{(NL)}$.

    \subsection{AST Reader}
        We design an AST reader to model the structure of the partial AST that has generated. Although our programs are generated by predicting the sequence of grammar rules, these rules alone lack a concrete picture of the program and are insufficient for predicting the next rule. Therefore, our AST reader considers heterogeneous information, including the predicted rules and the tree structures.

         To incorporate such program-specific information, we first represent the code as a sequence of rules, then encode the rules with attention mechanism, and finally use a tree convolution layer to combine the encoded representation of each node with its ancestors.

        \subsubsection{AST Representation}\

        \medskip
            \underline{\textit{Rule Sequence Embedding.}} To encode the rule information, we use the ID of the rules. Suppose we have a sequence of rules $r_1,r_2,\cdots,r_P$ that are been used to generate the partial AST in a decoding step, where $P$ denotes the length of the sequence. We represent these rules as real-valued vectors $\bm r_1, \bm r_2, \cdots, \bm r_P$ by table-lookup embeddings.

            \medskip
            \underline{\textit{Rule Definition Encoding.}}
            The above table-lookup embedding treats a grammar rule as an atomic token, and loses the information of the rule's content.

            To alleviate this problem, we enhance the representation of a rule with the encoding of rule definition.

            For a grammar rule $i: \alpha\rightarrow\beta_1\cdots \beta_K$, where $\alpha$ is the parent node and $\beta_1\cdots \beta_K$ are child nodes. They can be either terminal or non-terminal symbols. The index $i$ is the ID of the rule.

            Similar to Equation~\ref{equation:conv_preprocessing}, we encode the rule content as a vector $\bm r^{\text{(c)}}$ by a fully-connected layer with input being the table-lookup embeddings $\bm\alpha, \bm\beta_1, \cdots, \bm\beta_K$ of respective symbols. It is noted that the sequence is also padded to a maximum length.

             Then the rule definition features $\bm{y}_{1}^\text{(rule)},\cdots,\bm{y}^\text{(rule)}_{P}$ are computed by another fully-connected layer as
            \begin{equation}
                \bm{y}_{i}^\text{(rule)} = W^{\text{(rule)}}[\bm{r}_{i};\bm{r}^\text{(c)};\bm\alpha]
            \end{equation}
            where $\bm r_i$ is the table-lookup embedding of the rule $r_i$, $\bm r_i^\text{(c)}$ is the content-encoding rule representation, and we emphasize the parent node $\alpha$ again. After that, a layer normalization is followed.

            \medskip
            \underline{\textit{Position and Depth Embeddings.}}
            Since our AST reader would use self-attention mechanisms, we need to represent the position where a grammar rule is used.

            We first adopt the position embedding as in Equation~\ref{equation:position_embedding}, representing when a rule is used in the sequence $r_1, \cdots, r_P$. The position embeddings are denoted by $\bm p^\text{(r)}_1\cdots,\bm p^\text{(r)}_P$

            However, such position embedding does not capture the position of a rule in the AST.
            We further encode such information by a \textit{depth embedding}.
            If we expand a symbol $\alpha$ by the rule $r: \alpha\rightarrow \beta_1\cdots \beta_K$, we represent the depth of the rule by its parent node, i.e., $\alpha$.
            In this way, we associate another sequence of table-lookup depth embeddings $\bm{d}_1,\cdots,\bm{d}_P$ to the sequence of used grammar rules $\bm r_1,\cdots,\bm r_P$.

        \subsubsection{Neural Structure of AST Reader.}
            The AST reader is also composed of a stack of blocks ($N_1$ blocks in total). Each block is decomposed into four sub-layers (namely, self-attention, a gating mechanism, NL attention, and tree convolution). We employ a residual connection around each sub-layer except the layer of tree convolution. After each sub-layer, we apply a layer normalization.

            \medskip
            \underline{\textit{Self-Attention.}} To capture the information of AST, we build a Transformer-like self-attention layer, where the input is sum of the rule embedding, position embedding, and depth embedding, i.e., $\bm r_i+\bm d_i+\bm p^\text{(r)}_i$. The self-attention sub-layer extract features $\bm y_1^\text{(ast-self)},\bm y_2^\text{(ast-self)},\cdots,\bm y_P^\text{(ast-self)}$ of AST input, using the same mechanism as Equations~\ref{equation:position_embedding},~\ref{equation:head},~\ref{equation:dot_attention} with different weights but add an additional depth embedding to $\bm p^\text{(r)}_i$.

            \medskip
            \underline{\textit{Gating Mechanism.}} We would like to incorporate the content-encoding rule representation $\bm y_i^\text{(rule)}$ into the Transformer-extracted features. We adopt a gating mechanism as in Equations~\ref{gating_softmax},~\ref{gating_head}, and the fused features becomes $\bm y_1^\text{(ast-g)},\bm y_2^\text{(ast-g)},\cdots,\bm y_P^\text{(ast-g)}$ after this sub-layer.

            \medskip
            \underline{\textit{NL Attention.}} During the decoding step, we should be informed of the input NL description. This is given by a multi-head NL attention, similar to the Transformer decoder's attention to its encoder~\cite{vaswani2017attention}. The extracted features are denoted by$\bm y_1^\text{(ast-nl)},\bm y_2^\text{(ast-nl)},\cdots,\bm y_P^\text{(ast-nl)}$.

            \medskip
            \underline{\textit{Tree Convolution.}}
            Should we consider only the above sub-layers, it would be hard for the reader to combine the information of a node with its ancestors. A node can be far away from its ancestors in the rule sequence but is close in structure. Therefore, it is difficult for a traditional Transformer to extract such structural features.

            We integrate the features of a node with those of its ancestors. We treat the AST as a graph and use an adjacency matrix $M$ to represent the directed graph. If a node $\alpha_i$ is the parent of $\alpha_j$, then $M_{ji} = 1$. Suppose all the nodes are presented by features $\bm f_1,\cdots, \bm f_n$, their parents' features can be given by the multiplication with the adjacency matrix:
            \begin{equation}
                [\bm{f}^\text{(par)}_{1},\cdots, \bm{f}^\text{(par)}_n] =  [\bm{f}_{1},\cdots,\bm{f}_{n}] M
                \label{equation:tree_conv}
            \end{equation}
            where $\bm{f}^\text{(par)}_{i}$ denotes the parent of the $i$th node.
            For the father of the root node, we pad it with the feature vector of the root node itself.

            The tree-based convolution window, applied to the current sub-tree, is given by
            \begin{equation}
                \begin{aligned}
                Y^{\text{(tconv, }l\text{)}} &= f(W^{\text{(tconv, }l\text{)}}[Y^{\text{(tconv, }l - 1\text{)}} ;\\& Y^{\text{(tconv, }l - 1\text{)}} M ;\cdots; Y^{\text{(tconv, }l - 1\text{)}} M^{kt-1} ])
                \end{aligned}
            \end{equation}
            where $W^{\text{(tconv, }l\text{)}}$ is the weights of the convolutional layer, $kt$ denotes the window size (we set to 3 in our experiments), $l$ is the layer of these convolutional layers. In particular, $ Y^{\text{(tconv, }0\text{)}} = [\bm y_1^\text{(att)},\bm y_2^\text{(att)},\cdots,\bm y_P^\text{(att)}]$, where $Y^{\text{(tconv, }0\text{)}} \in \mathbb{R}^{d\times P}$. For the last layer of the AST reader, we add additional two convoluation layers. In the equation, $f$ is the activation function and $\mathrm{GELU}$ is applied between these layers.

            In summary, the AST reader has $N_1$ blocks of these four sub-layers, and yields the features $\bm y_1^\text{(ast)}, \bm y_2^\text{(ast)},\cdots,\bm y_P^\text{(ast)}$.

    \subsection{Decoder}
        Our final component is a decoder that integrates the information of the generated code with the NL description, and predicts the next grammar rule. Similar to the AST reader, a stack of blocks ($N_2$ blocks in total) each with several sub-layers is used in the decoder as follows. A residual connection is also employed around each sub-layer followed by a layer normalization.

        The decoder takes the non-terminal node to be expanded as a query.
        Inspired by a previous approach~\cite{sun2019grammar}, the querying node is represented as a path from the root to the node to be expanded. For example, if we are going to expand node ``Assign" in Figure~\ref{AST_Example}, the path should be \textit{root, Module, body, Assign}. We represent the nodes in this path as real-valued vectors. Then we apply a fully-connected layer like Equation~\ref{equation:conv_preprocessing} to these vectors and the output of the path (querying node) is $\bm q^\text{(path)}_i$.

        We then apply two attention layers to integrate the outputs of the AST reader and the NL reader.

        We first apply an AST attention layer over the output of the AST reader with queries and extract features $\bm f^\text{(tree)}_1, \cdots, \bm f^\text{(tree)}_P$.
        In this layer, $Q$ is computed from queries $\bm q^\text{(path)}_1, \cdots, \bm q^\text{(path)}_P$; $K$ and $V$ are computed from the code features $\bm y_1^\text{(ast)},\cdots,\bm y_P^\text{(ast)}$.
         We further integrate the features from the input description. This integration is also implemented with an NL attention, where $Q$ is computed by feature $\bm f^\text{(tree)}_1, \cdots, \bm f^\text{(tree)}_P$; and $K$ and $V$ are computed by the input description $\bm y_1^\text{(NL)},\cdots,\bm y_L^\text{(NL)}$.

         Finally, a set of two fully-connected layers, where the first layer has a $GELU$ activation function, are followed to extract features for prediction.

    \subsection{Training and Inference}

        We predict the next grammar rule, among all possible candidates, by softmax based on the decoder's last layer features.

        We also introduce the pointer network~\cite{see2017get} (essentially, an attention) that can directly copy a token $a$ from the NL description. In this case, the resulting grammar rule is $\alpha\rightarrow a$, where $\alpha$ is a non-terminal symbol to be expanded and $a$ is a terminal symbol. Such pointer mechanism is helpful for user-defined identifiers (e.g., variable and function names).

        The choice between softmax rule prediction and the pointer network is given by another gating mechanism $p_g$, also computed from the decoder's last feature.
        The overall predicted probability of the next grammar rule is
        \begin{equation}
             p(r_i|\cdot) =
             \begin{cases}
             p_g\ p(r_i|\cdot) & \text{if } i \in \mathbf{D}\\
             (1 - p_\text{g})\operatorname{Pr}\{\text{copy word $t$ at step $i$}|\cdot\}& \text{if } i \in \mathbf{C}
             \end{cases}
        \end{equation}
        where $i$ denotes the ID of the rule, $\mathbf{D}$ is the set of predefined rules, and $\mathbf{C}$ denotes the set of rules in the form of $\alpha\rightarrow a$, where $a$ is a terminal token that occurs in the NL description.

        $p_g$ is the probability of using the type of predefined rules, and the $p(r_i|\cdot)$ (the probability of each predefined rules) are computed by two single-layer perceptrons with the sigmoid and softmax activation functions, respectively, and the input of these layers are the features $\bm h^\text{(dec)}$.

        The pointer network is computed by
        \begin{equation}
            \begin{aligned}
                \xi_t &= \bm v^T\ \mathrm{tanh}(W_{1} \bm h^\text{(dec)} + W_{2} \bm y_{t}^\text{(NL)})\\
                \operatorname{Pr}&\{\text{copy word $t$ at step $i$}|\cdot\} = \frac{\exp{\{\xi_t\}}}{\sum_{j=1}^{L} \exp{\{\xi_j\}}}
            \end{aligned}
            \label{eq:copy}
        \end{equation}
        where $\bm h^\text{(dec)}$ denotes the decoder's last feature.
        The model is optimized by maximizing negative log likelihood loss against the reference program.

        The inference starts with a \textit{start} rule, $start: \textit{snode} \longrightarrow \textit{root}$, expanding a special symbol \textit{snode} to the \textit{root} symbol. The recursive prediction terminates if every leaf node in the predicted AST is a terminal. During prediction, we use beam search with a size of 5. Invalid rules are excluded during beam search.
\section{Evaluation}
    We evaluated our approach on two types of benchmarks: (1) a Python code generation benchmark, HearthStone, and (2) two semantic parsing benchmarks, ATIS and GEO.

    \subsection{Experiment: HearthStone}
        \paragraph{Dataset.}
        \begin{figure}
            \centering
              \includegraphics[width=0.9\linewidth]{HS.pdf}
            \caption{A example of the implement of HearthStone.}
            \label{hs_example}
        \end{figure}
        We first evaluated our approach on the HearthStone benchmark~\cite{ling2016latent}. The benchmark contains Python code that implements 665 different cards of HearthStone. Each card is composed of a semi-structural description and a groundtruth Python program. The Python programs have a length of 84 tokens on average.
        The description comes with several attributes such as card name, card type, as well as a natural language description for the functionality of the card. A Python program is mainly decided by the natural language description where the attributes decide the constants or identifier names.
        A sample description and its corresponding Python program are shown in Figure~\ref{hs_example}.
        When preprocessing the card description into token sequences, existing approaches consider two methods. The first~\cite{yin2017syntactic,hayati-etal-2018-retrieval} (called \emph{plain} preprocessing) treats the whole description as plain text and delimit the tokens by standard separators such as space or periods. The second~\cite{rabinovich2017abstract} (called \emph{structural} preprocessing) treats the descriptions as semi-structural and always treat an attribute as one token. In this experiment, we consider both methods and denote the results corresponding to the plain preprocessing as {TreeGen-A} and that corresponding to the structural preprocessing as {TreeGen-B}.
        We followed the train-dev-test split in~\citeauthor{ling2016latent}~(\citeyear{ling2016latent}), and the statistic is listed in Table~\ref{table:stat}.

        \paragraph{Metrics.}
        We measured the performance following the metrics in~\citeauthor{sun2019grammar}~(\citeyear{sun2019grammar}). We computed the StrAcc, which is the percentage of programs that has exactly the same token sequence as the ground truth; the BLEU score, which is used to measure the similarity between the generated code and the reference code at the token level; and the Acc+, which is evaluated manually, allows variable renaming on top of StrAcc, for every test case.
        \paragraph{Settings.}

        For neural networks, we set the number of NL reader layers $N_d = 6$, and $N_1 = N_2 = 5$ for the AST reader as well as the decoder. The size of all embedding is 256. The hidden sizes were all set to the 256 except each fully-connected layers, except the first layer was 1024 dimensions. We applied dropout after each layer (including attention layers, gating mechanism layers, convolutional layers, and fully-connected layers, where the drop rate is 0.15). The model is optimized by Adafactor~\cite{shazeer2018adafactor} with default parameters.
        \begin{table*}[!t]
            \centering
            \resizebox{0.55\textwidth}{!}{
            \begin{tabular}{l|lrrr}
                \toprule
                &\textbf{Model}  &\!\!\!\!\!\!\!\! \textbf{StrAcc} & {\textbf{Acc+}} &\!\!\! {\textbf{BLEU}} \\
                \toprule

                \multirow{2}{*}{\rotatebox{90}{Plain}}
                &LPN~\cite{ling2016latent}  & 6.1 &--& 67.1 \\
                &SEQ2TREE~\cite{dong2016language} &1.5&-- &53.4\\
                &YN17~\cite{yin2017syntactic}& 16.2 &\!\!\!{\tiny$\sim$}18.2& 75.8 \\
                &ASN~\cite{rabinovich2017abstract}& 18.2& -- & 77.6 \\
                &ReCode~\cite{hayati-etal-2018-retrieval} & 19.6 & -- & 78.4 \\
                \cmidrule(lrrr){2-5}
                    &\textbf{TreeGen-A} &\textbf{25.8} &\textbf{25.8} &\textbf{79.3}\\
                \midrule
                \multirow{1}{*}{\rotatebox{90}{Structural}}
                &ASN+SUPATT~\cite{rabinovich2017abstract}& 22.7 & -- & 79.2\\

                &SZM19~\cite{sun2019grammar} & 27.3 & 30.3 & 79.6 \\
                \cmidrule(rrrr){2-5}
                &\textbf{TreeGen-B} &\textbf{31.8} & \textbf{33.3} & 80.8\\
                \cmidrule(rrrr){2-5}
                &\textbf{Location of Structural Convolutional Sub-layer} & & & \\

    &$N_1 = 10, N_2=0$ & 25.8&27.3&80.4\\
                &$N_1 = 10 (7), N_2=0$ & 27.3&28.8&78.5\\
                &$N_1 = 10 (8), N_2=0$ & 25.8&28.8&78.5\\
                &$N_1 = 0, N_2=10$ & 21.2&22.7&79.6\\
                \cmidrule(rrrr){2-5}
                &\textbf{Ablation test} & & &\\

                &Baseline: Transformer & 10.6 ($p=0.015$)&12.1&68.0\\
                &- Tree Convolution &27.3 ($p=0.015$)&27.3 & 80.9\\
                &- Rule Definition Encoding &27.3 ($p<0.001$) & 28.8&\textbf{81.8}\\
                &- Char Embedding & 15.2 ($p<0.001$)& 18.2 & 72.9\\
                &- Self-Attention & 28.8 ($p<0.001$) & 28.8 & 81.0 \\

                \bottomrule

            \end{tabular}}
            \caption{Performance of our model in comparison with previous state-of-the-art results.}
            \label{tab:HS}
        \end{table*}

        \paragraph{Overall Results.}
        We show the results in Table~\ref{tab:HS}. In this table, the structural preprocessing has a better performance compared with the plain preprocessing.

         As shown, our model achieves 6 percentage points accuracy improvement with plain preprocessing and 4.5 percentage points accuracy improvement with structural preprocessing. For the BLEU score, our model also achieves the best results. These boosts in performance indicate that TreeGen successfully alleviates the long dependency problem and effectively encodes the structural information in the code generation.
        \paragraph{Time Efficiency.}
            We further evaluated the complexity of our model on the HearthStone, and the result shows that our model is faster than the previous ones. It takes 18s for an epoch on a single Nvidia Titan XP, whereas 180s for the CNN~\cite{sun2019grammar} and 49s for the RNN~\cite{yin2017syntactic}.
        \paragraph{Location of Structural Convolution Sub-layer.}
            One of the keys of our approach is to add the structural convolution sub-layers only to part of the Transformer blocks in the decoder. To evaluate whether this design decision is effective, we evaluate four competing settings: 1) adding the structural convolution sub-layers to all Transformer blocks (i.e., $N_1=10$); 2) adding the structural convolution sub-layers to the first 7 blocks in AST reader (i.e., $N_1=10 (7)$); 3) adding the structural convolution sub-layers to the first 8 blocks in AST reader (i.e., $N_1=10 (8)$); 4) the other adds to none (i.e., $N_1=0$).
            As we can see, from Table~\ref{tab:HS} our approach adding the sub-layer to all transformer blocks ($N_1=10$) significantly outperforms the last setting ($N_1 = 0$), but slightly worse than the other two settings.
        \paragraph{Ablation Test.} We ablated our model (TreeGen-B was used) to analyze the contribution of each component, results also shown in Table~\ref{tab:HS}. First, we compared our model with the traditional Transformer, which is a Transformer without effective structure modeling. We achieved 21 percentage points higher accuracy (p-value is less than 0.001) and 12 higher BLEU score.
        This result provides strong evidence of the effectiveness of the AST reader in our model and the importance of the structural information.
        Next, we replaced the tree convolutional layers in the AST Reader with two layers of fully-connected layers, and we removed the char embedding, rule definition encoding, self-attention layers in turn. The experimental results show the identifiers-encoding, alleviating long-dependency  and structural information significantly influence the accuracy. Please note that in some cases BLEU increases while StrAcc and Acc+ decrease. Here we consider StrAcc and Acc+ more important as they guarantee the correctness of the generated programs and correctness is usually crucial in code generation.
    \subsection{Experiment \uppercase\expandafter{\romannumeral2}: Semantic Parsing}
        \begin{table}[!t]
            \centering
            \small
            \begin{tabular}{llll}
                \toprule

                &&\multicolumn{2}{c}{Exp \uppercase\expandafter{\romannumeral2}}\\
                \cmidrule{3-4}
                \textbf{Statistics} & \textbf{HS}  & {\textbf{ATIS}}  & {\textbf{GEO}}\\
                \midrule
                \# Train & 533  & 4,434  &  600\\
                \# Dev & 66 & 491 &   -\\
                \# Test & 66 & 448  & 280\\
                \midrule
                Avg. tokens in description & 35.0 & 10.6 & 7.4\\
                Max. tokens in description & 76.0 & 48 & 23 \\
                Avg. tokens in code & 83.2 & 33.9 & 28.3\\
                Max. tokens in code & 403 & 113  & 144\\
                \bottomrule
            \end{tabular}
            \caption{Statistics of the datasets we used.}
            \label{table:stat}
        \end{table}

        \paragraph{Dataset.} We further evaluated our approach on the semantic parsing tasks.

        Our experiment was conducted on two semantic parsing datasets, ATIS and GEO. The input of these datasets is a natural language description, while the output is a short piece of code in lambda calculus. We followed the standard train-dev-test split of these datasets, and the statistics are listed in Table~\ref{table:stat}.

        \paragraph{Metrics and Settings.} In this task, we follow the evaluation of the previous approaches~\cite{dong2016language} and use accuracy as the metric, where the tree exact match was considered to avoid spurious errors. In other words, the order of the children can be changed within conjunction nodes. We followed all the settings in the HS experiment except that we changed the embedding size and the hidden sizes to 128 compared with the setting of the HS experiment.

        \paragraph{Results.}
        \begin{table}[!t]
            \centering
            \resizebox{.9\linewidth}{!}{
            \begin{tabular}{l|lrr}
                \toprule
                & \textbf{Method} & \textbf{ATIS} & \textbf{GEO}\\
                                        \midrule
        \multirow{3}{*}{\rotatebox{90}{Traditional}}

                &ZC07~\cite{zettlemoyer2007online} & 84.6 & 86.1\\

                &FUBL~\cite{kwiatkowski2011lexical} & 82.8 & 88.6\\
                &KCAZ13~\cite{kwiatkowski2013scaling}& - & 89.0 \\
                &WKZ14~\cite{wang2014morpho} & \textbf{91.3} & \textbf{90.4}\\

                \midrule
        \multirow{3}{*}{\rotatebox{90}{Neural Networks}}
                &SEQ2SEQ~\cite{dong2016language} & 84.2 & 84.6\\
                &SEQ2TREE~\cite{dong2016language} & 84.6 & 87.1\\
                &ASN~\cite{rabinovich2017abstract} & 85.3 & 85.7\\
                &ASN+SUPATT~\cite{rabinovich2017abstract} & 85.9 & 87.1\\
                &COARSE2FINE~\cite{dong-lapata-2018-coarse} & 87.7 & 88.2\\
                &TRANX~\cite{yin-neubig-2018-tranx} & 86.2 & 88.2\\
                &Seq2Act~\cite{chen-etal-2018-sequence} & 85.5 & 88.9\\
                &Graph2Seq~\cite{xu-etal-2018-exploiting} & 85.9 & 88.1\\
                &SZM19~\cite{sun2019grammar} & 85.0 & - \\
                \cmidrule(rrr){2-4}
                &\textbf{TreeGen} & \textbf{89.1} & \textbf{89.6}\\

                \bottomrule
            \end{tabular}}
            \caption{Accuracy in semantic parsing (in percentage).}
            \label{table:sp}
        \end{table}
        Table~\ref{table:sp} shows the performance of our TreeGen. As seen, the accuracy of our approach is sightly worse than the traditional approach WKZ14~\cite{wang2014morpho}, which is based on the CCG parser and uses a large number of templates. This traditional approach is hard to generalize new datasets. However, our model was directly adopted from the HS dataset, and achieved the highest accuracy, among all neural models~\cite{dong2016language,rabinovich2017abstract,dong-lapata-2018-coarse,chen-etal-2018-sequence,xu-etal-2018-exploiting,sun2019grammar}. This experiment shows the effectiveness and generalizability of TreeGen.

\section{Related Work}
    Code generation achieves significant progress in recent years. The early
approaches are mainly based on templates \cite{zettlemoyer2007online,zettlemoyer2012learning,kushman2013using,wang2014morpho}. With the prosperity of deep learning, the sequence-to-sequence framework has shown to be effective in various tasks~\cite{sutskever2014sequence}. \citeauthor{ling2016latent}~(\citeyear{ling2016latent}) applied this framework to generate code based on tokens. Unlike natural languages, it is shown that the code contains much more structural information. Thus, the abstract syntax tree (AST) was used in more recent works~\cite{dong2016language,yin2017syntactic,rabinovich2017abstract,hayati-etal-2018-retrieval,yin-neubig-2018-tranx}. However, these studies mainly use recurrent neural networks (RNNs) from the long dependency problem~\cite{bengio1994learning}. \citeauthor{sun2019grammar}~(\citeyear{sun2019grammar}) proposed to use the convolutional neural network (CNN) to handle the long dependency problem. Our approach addresses this problem by Transformer's intensive attention mechanism~\cite{vaswani2017attention}.
    To incorporate the structural information and the idea of self-attention, we propose a tree-based Transformer architecture for code generation.

\section{Conclusion}
    In this work, we propose TreeGen for program generation. TreeGen uses the attention mechanism of Transformers to alleviate the long-dependency problem and introduces the AST reader to combine the grammar rules and the AST structure.

    The evaluation was conducted on a Python dataset, HearthStone, and two semantic parsing datasets, ATIS and GEO. The experimental results show that our model significantly outperforms existing approaches. We also conducted in-depth ablation tests, which suggests that each component in our model plays a significant role.
\section{Acknowledgments}
This work is sponsored by the National Key Research and Development Program of China under Grant No.~2017YFB1001803, and National Natural Science Foundation of China under Grant
Nos.~61672045, 61529201, and 61922003. Lili Mou is an Amii Fellow; he is supported by the CCAI Chair Program; and he also thanks AltaML for support.

redpajama_set_name: RedPajamaArXiv


If you are involved in any sort of legal dispute that could end up going to trial, it is important to have confidence in your attorney's ability to represent you throughout the process while keeping a focus on your goals and your interests.
At the law firm of Anthony E. Core, P.C., our experienced civil litigation and criminal defense attorneys provide effective, efficient trial counsel to clients throughout Long Island. Contact us for a free consultation with one of our skilled trial lawyers.
While many cases can be resolved without going to trial, this is not always possible. One thing that sets our firm apart is that all four of our attorneys — while focusing on their specific legal practice areas — have the litigation experience to handle cases from start to finish.
If your case goes to trial, your attorney will be well-versed in the relevant issues and fully prepared for every aspect of the process.
We have the experience to draft and argue motions; conduct paper discovery, interrogatories and depositions; and represent you before a jury if necessary. Because all of us have strong trial backgrounds, we will not need to transfer your case to another lawyer or firm at the point of trial.
Our attorneys also have substantial appellate experience, including experience arguing before the New York State Court of Appeals. If your case needs to be appealed, we are prepared.
Litigation can be costly, so if you have a case that may end up going to trial, it is important to hire a lawyer who will be honest and upfront about the costs associated with trial and who will focus on cost containment throughout the process. Our attorneys make the most of every proceeding to try to achieve an efficient resolution for our clients.
As a small firm, our attorneys are not under pressure to satisfy outrageous billing requirements. We are not interested in dragging out the litigation process. Our representation is about finding a solution to your problem, not racking up billable hours. To discuss how we can help, contact us today.


text:
BLUE MOON MARQUEE – LONESOME GHOSTS
2014 – Self Released
This is an album that really should appeal to fans of both blues and jazz alike, with its roots equally in the two genres that in the distant past were pretty much regional variations of the same music. The nine tracks clock in at just under half an hour but this recording is such a pleasurable listening experience that repeat playing is no hardship as you listen to, despite the raw vocals, the eneveloping warmth of the almost reassuring and beautifully realized arrangements.
Blue Moon Marquee are a duo consisting of A.W. Cardinal on lead vocals, guitar, and harmonica and Jasmine Colette on harmony vocals, bass, and drums. A.W is an incredible guitarist with a lovely warm fluid style whilst Colette plays stand up bass, at the same time playing kick drum with one foot, a snare and high hat with the other, as well as adding lovely harmony vocals, the end result being that they have as full a sound as many four piece bands. All of the expertly written and hugely evocative songs come from the pen of A.W. except for Moon Mulligan's Pipeliner Blues and his vocals are beautifully expressive on every song with a nice raw style that sits in a similar territory to a young Tom Waits although with more warmth but no less expressive.
On the tracks that are in more of a standard blues format, (although nothing on this album is really 'standard!') the music and tempos almost have the feel of a modern day Willie Dixon at his most laid back, something that can also be applied, up to a point, to the songs that lean nearer to jazz, with the raw gravelly vocals providing an essential contrast. Allied to this is a funky Dr. John feel but much more sparse and less complicated ensuring in many ways that this album should be more accessible and easier to listen to.
What I Wouldn't Do could almost be from the Willie Dixon songbook with it's lovely dominant rolling bass, piano and melodic guitar sound and the raw bluesy vocal that lies somewhere between Long John Baldry and a young Tom Waits! Trouble's Calling has a nice easy going jazzy feel with melodic guitar and piano and excellent thudding bass on song that is easilly pictured being played late night in a jazz/blues club. It really is a terrific song that with each successive play becomes even more appealing with it's feel of a modern day John The Revelator. Bishop Street is a lovely mellow bluesy ballad with Colette's harmonies providing a nice contrast on a song further enhanced by A.Ws beautiful warm guitar solo. As with most songs on this exceptional album there is an easy going feel but at the same time a powerful tension as befits the very best jazz or blues recordings.
'Lonesome Ghosts' is an album that I just can't seem to stop playing ensuring it has rapidly become challenging to fit in sessions of listening to other albums around it. I suspect that it may even eventually reach the giddy heights (at least in my world) of Donald Fagens 'The Nightfly' an album from a different corner of the same field and one that even after all these years I often return to. There is such a rolling easy going grandeur that it genuinely becomes addictive thanks to the beautifully blended yet sparse instrumentation and A.Ws raw but evocative vocal style. Add the foundation that is laid by Colette and you have a recording that will probably be played for a very, very long time in my house.
http://www.bluemoonmarquee.com/

redpajama_set_name: RedPajamaCommonCrawl


One of the best roller skating rinks in Mac Arthur, WV, Macarthur Roller Skating Rink is a 1 floor indoor roller skating rink is open year round. It was founded in 1984. Public Skating Roller skating sessions for All Ages are one of the main attractions at Macarthur . Skating provides great exercise and an opportunity to get out of the house – plus, it is not like exercising at the gym… skating is fun! Lace-em up and come join the others. Get on the floor and get ready for a great experience. If you do not see the rinks public roller skating schedule posted, be sure to contact them at (304) 255-7528 for their public session times. And please tell them that you saw them on RinkTime. And remind them to keep their schedule updated on the site. Birthday Party or Event Planning? Why not have your party or event at Macarthur Skating Rink? They can make their rink and other facilities available to you for birthday parties, holiday parties or corporate events. Their prices are great. They would love to have you out. Give them a call if you would like to schedule your event now at (304) 255-7528. Please call at least one week in advance to properly schedule your event. Snack Bar Got the munchies? Macarthur Skating Rink provides food and beverages in the snack bar.
One of the best roller skating rinks in South Charleston, WV, Spinnakers of the Southridge Grand Prix and Family Fun Center Roller Skating Rink is a 1 floor indoor roller skating rink is open year round. Public Skating Roller skating sessions for All Ages are one of the main attractions at Spinnakers of the Southridge Grand Prix and Family Fun Center. Skating provides great exercise and an opportunity to get out of the house – plus, it is not like exercising at the gym… skating is fun! Lace-em up and come join the others. Get on the floor and get ready for a great experience. If you do not see the rinks public roller skating schedule posted, be sure to contact them at (304) 720-4386 for their public session times. And please tell them that you saw them on RinkTime. And remind them to keep their schedule updated on the site. Birthday Party or Event Planning? Why not have your party or event at Spinnakers of the Southridge Grand Prix and Family Fun Center? They can make their rink and other facilities available to you for birthday parties, holiday parties or corporate events. Their prices are great. They would love to have you out. Give them a call if you would like to schedule your event now at (304) 720-4386. Please call at least one week in advance to properly schedule your event. Snack Bar Got the munchies? Spinnakers of the Southridge Grand Prix and Family Fun Center provides food and beverages in the snack bar.
One of the best roller skating rinks in Ripley, WV, Starlight Family Fun Center Roller Skating Rink is a 1 floor indoor roller skating rink is open year round. Public Skating Roller skating sessions for All Ages are one of the main attractions at Starlight Family Fun Center. Skating provides great exercise and an opportunity to get out of the house – plus, it is not like exercising at the gym… skating is fun! Lace-em up and come join the others. Get on the floor and get ready for a great experience. If you do not see the rinks public roller skating schedule posted, be sure to contact them at (304) 372-2273 for their public session times. And please tell them that you saw them on RinkTime. And remind them to keep their schedule updated on the site. Birthday Party or Event Planning? Why not have your party or event at Starlight Family Fun Center? They can make their rink and other facilities available to you for birthday parties, holiday parties or corporate events. Their prices are great. They would love to have you out. Give them a call if you would like to schedule your event now at (304) 372-2273. Please call at least one week in advance to properly schedule your event. Snack Bar Got the munchies? Starlight Family Fun Center provides food and beverages in the snack bar.
One of the best roller skating rinks in Martinsburg, WV, Galaxy Skateland Roller Skating Rink is a 1 floor indoor roller skating rink is open year round. Roller Hockey Stick and Puck Time Need some time to skate around with the puck and practice your moves? Galaxy Skateland Roller Skating Rink offers stick and puck time. Galaxy Skateland Roller Skating Rink offers stick and puck time for all ages.Call Galaxy Skateland at (304) 263-0369 to inquire about their stick time schedule. Birthday Party or Event Planning? Why not have your party or event at Galaxy Skateland? They can make their rink and other facilities available to you for birthday parties, holiday parties or corporate events. Their prices are great. They would love to have you out. Give them a call if you would like to schedule your event now at (304) 263-0369. Please call at least one week in advance to properly schedule your event. Snack Bar Got the munchies? Galaxy Skateland provides food and beverages in the snack bar.
One of the best roller skating rinks in Bridgeport, WV, Bridgeport Skate World Inc Roller Skating Rink is a 1 floor indoor roller skating rink is open year round. It was founded in 1984. Public Skating Roller skating sessions for All Ages are one of the main attractions at Bridgeport Skate World Inc. Skating provides great exercise and an opportunity to get out of the house – plus, it is not like exercising at the gym… skating is fun! Lace-em up and come join the others. Get on the floor and get ready for a great experience. If you do not see the rinks public roller skating schedule posted, be sure to contact them at (304) 842-4426 for their public session times. And please tell them that you saw them on RinkTime. And remind them to keep their schedule updated on the site. Roller Skating Lessons. If so, the folks here love to teach and their instructors are top notch. For beginners they usually focus on providing the basics. For more advanced skaters they focus on proper form, technique and getting you ready to meet your goals. Call Bridgeport Skate World Inc at (304) 842-4426 for more details. Speed Skating Some say going round in circles is boring – others feel the thrill of flying around on the floor at twenty to over miles per hour and find it exhilarating. Speed Skating is fast, requires strength, skill, talent and concentration. Bridgeport Skate World Inc provides speed skating for facilities with very fast ice. Birthday Party or Event Planning? Why not have your party or event at Bridgeport Skate World Inc? They can make their rink and other facilities available to you for birthday parties, holiday parties or corporate events. Their prices are great. They would love to have you out. Give them a call if you would like to schedule your event now at (304) 842-4426. Please call at least one week in advance to properly schedule your event. Snack Bar Got the munchies? Bridgeport Skate World Inc provides food and beverages in the snack bar.
One of the best roller skating rinks in Spencer, WV, Roane Recreational Center Roller Skating Rink is a 1 floor indoor roller skating rink is open year round. It was founded in 2001. Public Skating Roller skating sessions for All Ages are one of the main attractions at Roane Recreational Center . Skating provides great exercise and an opportunity to get out of the house – plus, it is not like exercising at the gym… skating is fun! Lace-em up and come join the others. Get on the floor and get ready for a great experience. If you do not see the rinks public roller skating schedule posted, be sure to contact them at (304) 927-3385 for their public session times. And please tell them that you saw them on RinkTime. And remind them to keep their schedule updated on the site. Birthday Party or Event Planning? Why not have your party or event at Roane Recreational Center ? They can make their rink and other facilities available to you for birthday parties, holiday parties or corporate events. Their prices are great. They would love to have you out. Give them a call if you would like to schedule your event now at (304) 927-3385. Please call at least one week in advance to properly schedule your event. Snack Bar Got the munchies? Roane Recreational Center provides food and beverages in the snack bar.
One of the best ice skating rinks in Morgantown, WV, Morgantown Ice Arena Ice Skating Rink is a 1 sheet indoor ice skating rink is open seasonally. Public Skating Ice skating sessions for All Ages are one of the main attractions at Morgantown Ice Arena. Ice Skating provides great exercise and an opportunity to get out of the house – plus, it is not like exercising at the gym… skating is fun! Lace-em up and come join the others. Get on the ice and get ready for a great experience. If you do not see the rinks public ice skating schedule posted, be sure to contact them at (304) 292-6865 for their public session times. And please tell them that you saw them on RinkTime. And remind them to keep their schedule updated on the site. Figure & Ice Skating Lessons. Are you an adult looking to learn to ice skate? Do you have children yearning to ice skate like the pros? If so, the folks here love to teach and their instructors are top notch. For beginners they usually focus on providing the basics. For more advanced skaters they focus on proper form, technique and getting you ready to meet your goals. Call Morgantown Ice Arena at (304) 292-6865 for more details. Ice Hockey Leagues Morgantown Ice Arena Ice Skating Rink offers ice hockey leagues for all ages. Whether you are a beginning skater looking to play on a team in an instructional league or an experienced ice hockey player looking to get out and play with others of a similar caliber, Morgantown Ice Arena Ice Skating Rink is the place to play. Give them a call at (304) 292-6865 to inquire about their leagues now. The experienced group will help get you ready for your next game Leagues and levels include: Adult,Youth. Ice Hockey Camps and Clinics With the exception of private lessons, the best way to increase your hockey skills is to do drills and exercises that build on the fundamentals. Even better is to do those drills while supervised by someone who understands how to do things properly and can correct you when you are doing them wrong. When playing, everyone feels like they are NHL ready, but very few really look or play that way. Morgantown Ice Arena Ice Skating Rink offers camps and clinics for youths.to help you improve your game. Call Morgantown Ice Arena at (304) 292-6865 to learn when their next ice hockey camp or clinic is being held. Pickup Hockey on Ice Looking for a casual game of hockey? Morgantown Ice Arena Ice Skating Rink offers pickup ice hockey for adults.Give Morgantown Ice Arena a call at (304) 292-6865 to inquire about their pickup hockey schedule if it is not listed in the description or schedule here. Birthday Party or Event Planning? Why not have your party or event at Morgantown Ice Arena? They can make their rink and other facilities available to you for birthday parties, holiday parties or corporate events. Their prices are great. They would love to have you out. Give them a call if you would like to schedule your event now at (304) 292-6865. Please call at least one week in advance to properly schedule your event. Snack Bar Got the munchies? Morgantown Ice Arena provides food and beverages in the snack bar.
One of the best ice skating rinks in Charleston, WV, South Charleston Memorial Ice Arena Ice Skating Rink is a 1 sheet indoor ice skating rink is open year round. It was founded in 2002. Public Skating Ice skating sessions for All Ages are one of the main attractions at South Charleston Memorial Ice Arena. Ice Skating provides great exercise and an opportunity to get out of the house – plus, it is not like exercising at the gym… skating is fun! Lace-em up and come join the others. Get on the ice and get ready for a great experience. If you do not see the rinks public ice skating schedule posted, be sure to contact them at (304) 744-4423 for their public session times. And please tell them that you saw them on RinkTime. And remind them to keep their schedule updated on the site. Figure & Ice Skating Lessons. Are you an adult looking to learn to ice skate? Do you have children yearning to ice skate like the pros? If so, the folks here love to teach and their instructors are top notch. For beginners they usually focus on providing the basics. For more advanced skaters they focus on proper form, technique and getting you ready to meet your goals. Call South Charleston Memorial Ice Arena at (304) 744-4423 for more details. Ice Hockey Leagues South Charleston Memorial Ice Arena Ice Skating Rink offers ice hockey leagues for all ages. Whether you are a beginning skater looking to play on a team in an instructional league or an experienced ice hockey player looking to get out and play with others of a similar caliber, South Charleston Memorial Ice Arena Ice Skating Rink is the place to play. Give them a call at (304) 744-4423 to inquire about their leagues now. The experienced group will help get you ready for your next game Leagues and levels include: All Ages. Ice Hockey Tournaments What better way to see how you and your team stacks up than to play against teams outside your normal leagues? South Charleston Memorial Ice Arena Ice Skating Rink hosts ice hockey tournaments forall ages.at their facilities. Call South Charleston Memorial Ice Arena at (304) 744-4423 for more details and to look into upcoming tournaments. Ice Hockey Camps and Clinics With the exception of private lessons, the best way to increase your hockey skills is to do drills and exercises that build on the fundamentals. Even better is to do those drills while supervised by someone who understands how to do things properly and can correct you when you are doing them wrong. When playing, everyone feels like they are NHL ready, but very few really look or play that way. South Charleston Memorial Ice Arena Ice Skating Rink offers camps and clinics for all ages.to help you improve your game. Call South Charleston Memorial Ice Arena at (304) 744-4423 to learn when their next ice hockey camp or clinic is being held. Pickup Hockey on Ice Looking for a casual game of hockey? South Charleston Memorial Ice Arena Ice Skating Rink offers pickup ice hockey for adults.Give South Charleston Memorial Ice Arena a call at (304) 744-4423 to inquire about their pickup hockey schedule if it is not listed in the description or schedule here. Broom Ball South Charleston Memorial Ice Arena offers Broomball. Many people do not know this, but Broomball is an actual competitive sport. It is similar to ice hockey – it is fast and fun. If you are looking to rent the ice for a group to play broomball or you are just interested in giving it a try, give them a call now at (304) 744-4423. Birthday Party or Event Planning? Why not have your party or event at South Charleston Memorial Ice Arena? They can make their rink and other facilities available to you for birthday parties, holiday parties or corporate events. Their prices are great. They would love to have you out. Give them a call if you would like to schedule your event now at (304) 744-4423. Please call at least one week in advance to properly schedule your event. Snack Bar Got the munchies? South Charleston Memorial Ice Arena provides food and beverages in the snack bar. Visit our Pro Shop If your are looking for new ice hockey, figure and other skating equipment or services, South Charleston Memorial Ice Arena can help. The South Charleston Memorial Ice Arena pro shop offers a wide array of products and services. Stop by for a visit next time you are at the rink or contact them now at (304) 744-4423 to see if they have what you are looking for.
One of the best roller skating rinks in Huntington, WV, Roll-A-Rama Roller Skating Rink is a 1 floor indoor roller skating rink is open seasonally. It was founded in 1995. Public Skating Roller skating sessions for All Ages are one of the main attractions at Roll-A-Rama. Skating provides great exercise and an opportunity to get out of the house – plus, it is not like exercising at the gym… skating is fun! Lace-em up and come join the others. Get on the floor and get ready for a great experience. If you do not see the rinks public roller skating schedule posted, be sure to contact them at (304) 529-0909 for their public session times. And please tell them that you saw them on RinkTime. And remind them to keep their schedule updated on the site. Birthday Party or Event Planning? Why not have your party or event at Roll-A-Rama? They can make their rink and other facilities available to you for birthday parties, holiday parties or corporate events. Their prices are great. They would love to have you out. Give them a call if you would like to schedule your event now at (304) 529-0909. Please call at least one week in advance to properly schedule your event. Snack Bar Got the munchies? Roll-A-Rama provides food and beverages in the snack bar.


My buddy's dog can dive 12 feet under water. Is this even normal?
Despite years of strong contenders, this remains my favorite video.
Everyone is talking about Conan visiting Taco Bell. Remember when Letterman worked the drive thru?
Just, horrible.. Why do people do this?
Toronto Maple Leafs pre game on ice projection.
Old school Jackie Chan in unreal, Dragon Ball Z-level fight scene. This is what kung fu movies are all about.


text:
Helping mission critical customers save lives and protect our communities by working alongside them to provide vital technology and solutions.
How do you embrace innovation in critical situations?
Police, Fire, Ambulance, Maritime and Coastguard, CNI and RNLI crews on the frontline require information and communications technology that makes a fundamental difference to their response times and investigations. But introducing digital innovation into situations where proven reliability is fundamental is a real challenge. Equally, digital transformation is needed in back office environments to enhance operational effectiveness – but how do you achieve this in the face of shrinking budgets and central government cuts?
Sopra Steria is here to help you serve and protect the public
We're a trusted partner to those on the frontlines, providing the technology and consulting-led support to assist in critical situations – ultimately helping to protect and serve communities, making them safer places to live. Because we work alongside you, as part of your team, we're able to provide reliable solutions that meet your exact needs, unique to your environment.
Our technology and business change solutions are proven to enhance operations for mission critical organisations, helping to transform the frontline – as well as the back office – with business support functions. We have a breadth and depth of expertise across the public sector, so we understand your challenges at both macro and local levels.
With systems that can cut response time significantly, we help emergency services save lives. Our technology can also cut serious crime investigations down from months to days, saving victims from further harm, or preventing them from being harmed in the first place.
Next Generation Back Office
Our joint venture SSCL enables business transformation via a single operating platform, delivering HR services such as recruitment, vetting and case management, payroll, finance and accounting services including contact centre services.
We use our market leading STORM command and control application, and contact management utilising our end-to-end control room solution SmartContact®, to provide effective incident management. We manage emergency and non-emergency call handling and citizen call-backs for enhanced service delivery.
Best of breed technologies
We only offer the best innovations, and specialist niche products, to create standalone or add on solutions – including innovative mobile solutions, digital evidence and biometric technologies.
Digital Interview Recording (DIR)
Our DIR solutions adhere to the Police and Criminal Evidence Act 1984 (PACE) and Achieving Best Evidence guidance, and provide operational improvements in the way that interviews are handled and evidence is processed.
Digital Enablers
We are a strategic partner for one of the leading anti-knife crime charities in the UK, The Ben Kinsella Trust. We are using our expertise to provide practical solutions, including virtual reality immersive technology, to help fight the ongoing battle with youth knife crime in Britain. Along with our joint ventures - Shared Services Connected Limited and NHS Shared Business Services – we have made a commitment to the Trust through donations, expertise, advice and guidance to support its valuable work.
The rising rate of knife crime on our streets is deeply concerning, and we believe technology can help support the fight against it. By utilising the digital expertise and knowledge within Sopra Steria we are enabling the Ben Kinsella Trust to focus on their key objective of driving better outcomes for at risk youths through education and community engagement.
Brendan Swarbrick, Sopra Steria's Executive Client Director
carousel-921177e3-f503-44eb-af47-f7791ee75ca7
Powering mission critical, joined-up emergency services in Kent
Kent Fire and Rescue Service (FRS) is responsible for delivering fire and rescue services to more than 1.8 million people in Kent.
Boosting the fight against crime with advanced biometrics
Norwegian Police sought to modernise and improve its old system for fingerprint identification. It's new automated fingerprint identification system (AFIS) needed to deliver faster and better searches through simplified and automated processes.
Sopra Steria is proud to announce our founding partnership of the inaugural World Class Policing Awards taking place this Autumn.
The World Class Policing Awards will celebrate and acknowledge the best in all aspects of 21st century policing.
Merseyside Police sign contract for STORM Command and Control system
Sopra Steria is proud to announce the recent signing of a two year contract with Merseyside Police for the provision of the STORM Command and Control system.
How the Public Make Contact with the Police
Today making the best use of technology is high on the agenda in UK policing. Senior officials are continually looking at ways in improving their use of technology, in order to keep more officers on the streets, aid in their investigations as well as making it easier for the public to report incidents and crime.
Paul Bergin
Chief Technology Officer and Head of Public Safety


An individual must always have a good plan that will accommodate all the activities that they are supposed to do and ensure that they have allocated some free time which they are going to use to relax. An individual can make some tours to different places in the world in order for them to be able to break monotony at any given period of time. An individual should allocate themselves time to relax and visit different countries at any given period of time. It will enable the people to refresh their mind and they will be ready to continue working and use their new energy to give the best results in their company. An individual can be able to meet new people while they are on their trip and they can be able to make new friends who will always be there for them. It is important for individuals to interact so that they can share their ideas and therefore the people will always be in a position to implement them and they might benefit from those ideas.
The individuals should tour different places from time to time so that they can always be in a position to see different new things that they have never seen again. It is important for one to tour the world in order for them to be in a position to see a lot of new things and also learn a lot of things that will benefit them in their lives. The people should choose the best destinations which they are going to visit in order for them to explore more. When one is used to travelling to different places they will always learn how they are supposed to solve the problems that they might have during the trip. It is therefore important for one to continue to learn how they are supposed to develop strong problem solving skills.
When the people are having a tour they should always be in a position to ensure that they have been able to know the means of transport they will use and where they are going to get accommodation. An individual should therefore have adequate money that is going to help them to travel to different places that they want to visit. It is important for the service providers to ensure that they have skilled people who are going to guide the clients and take them around that place.


Terms and Conditions – Bridgeton Police Dept.
Please read these Terms and Conditions ("Terms", "Terms and Conditions") carefully before using the www.BRIDGETONPD.org website (the "Service") operated by BRIDGETONPD ("us", "we", or "our").
By accessing or using the Service you agree to be bound by these Terms. If you disagree with any part of the terms then you may not access the Service. This Terms & Conditions agreement is licensed by TermsFeed to BRIDGETONPD.
Our Service may contain links to third-party web sites or services that are not owned or controlled by BRIDGETONPD.
BRIDGETONPD has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third party web sites or services. You further acknowledge and agree that BRIDGETONPD shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any such content, goods or services available on or through any such web sites or services.


text:
The Midnight Hollow: Peach Juice
The Midnight Hollow is an upcoming and auspicious psychedelic alternative rock trio from New York, led by multi-instrumentalist Spencer Draeger and featuring Andrew Segreti on drums and Matthew Leibowitz on bass.
With a couple of EPs already under their belt, for which they have received a lot of praise, similarly to their reputation as a live act, The Midnight Hollow base their amalgamated sound partly on synthpop and partly on a more traditional style of art rock, amended with extra measures of picturesque psychedelia and pop.
For their new material the band has recruited Ariel Pink guitarist and producer Jorge Elbrecht, with whom they recorded their brand new single, Peach Juice, as well as their upcoming record which is currently in its finishing stages and expected to be released later in 2017.
Notably on the rise and undoubtedly worthy of the most appreciation they can get, The Midnight Hollow's most prominent achievements seem like they're yet to come.
The Midnight Hollow's robust new single streams right below, followed by a great looking short documentary on the making of their new album...
#alternative
#synthpop
#the midnight hollow


Looks like I might be having to get a new motor... it's starting to chatter. This last weekend the Jeep was throwing "Low Oil Pressure" whenever I made a turn and I am well within my oil change limits, like maybe 2k miles out of 5k and I pull into gas station, check oil, nothing registering on stick. Take it immediately to dealer just down the road, they confirm it's 4 quarts low on oil. They gave me a free oil change, said to come back in 1k miles and see if it's still burning oil. Meantime, the two days it went without oil more than likely screwed it up. It was never leaking any.
Now the motor makes a distinct value and rod noise. I'm so done with this car... what a piece of s**t. Car has 7700 miles on it. Nothing but heartburn with it. Calling to file arbitration on it. BTW, it's a lease..
Some may call me a conspiracy theoriest, or just plain wacko, and my wife disagrees with me on this but: I refuse to take cars to dealers for routine maintenance.
I have had many bad experiences with dealerships from the mid 90s through the mid 2000s where I would bring cars in for the "first free oil change!" and shortly after something unrelated would break. It would be covered under warranty, then after those repairs something else would break. It seemed like every month or two months I was in bringing the vehicle in for repairs. It was everything to seals, to exhaust problems, to wiring harnesses, to gaskets, to control rods. You name it and brand new parts would mysteriously be faulty or malfunction and always "covered under warranty".
Of course there is no way for me to ever prove wrong-doing, or sabotage in any way. I had the feeling that it was very odd that brand new cars would just-so-happen to have these issues and they could be fixed at no cost to me. This would of course bring money and "customers" into the service department. Of course the dealer is never the ones out the money, they just send the claims up the chain and get corporate to pay for the labor/parts. It seemed like a pretty obvious conflict of interest, and the service managers that I questioned about the peculiarity of these problems seemed very furtive and nervous about me questioning why these problems would be happening with brand new vehicles. Dealers will take your nice new vehicle and destroy it.
I stopped taking my vehicles to dealers for routine maintenance about 2005 and I haven't had any of these mystery issues since. I don't bring my cars to the dealers anymore unless it's something that my mechanic says he absolutely cannot work on. Bringing it to the oil-change guy or firestone they have very little incentive to jam a screwdriver into a wire, or forget a seal or whatever else these guys are doing in the dealership.
I know some people absolutely 100% trust those who work at car dealerships, but I do not.
I wouldn't limit it to dealerships, my experience is that when I do the maintenance the vehicle will have no problem running past 200K miles. When I bring it in its a gamble.
Half the problem seems to be the diagnosing phase. I've had issues where the dealer has taken 3 attempts to fix a single problem and inevitably one of those attempts resulted in a leak or worse a few months later. As I get older and have less free time to do the work myself I find that I'm having more issues. I typically try to identify any issue prior to bringing it in, however most mechanics are (understandably) skeptical about the customers diagnosis. After trying several places I found a good one in my area, but they are definitely not the cheapest.
My philosophy is that if you're having multiple issues that aren't common to that model year car (check TSB's/forums), you need a new mechanic.
Sorry to hear you're having such rough luck, with such a new vehicle. Wouldn't any serious repairs still be covered under warranty at least? I guess with that kind of mileage one wouldn't expect such frequent visits to the shop. 4 quarts is no small amount of consumption, and you are right that's its very plausible that damage was done.
Has a case been created to formally documented this concern? Send us a direct message with your VIN as I'd be glad to get one started and escalate to a Case Specialist for further handling.
I've had more than a few new cars over decades. Many were diesels which have very tight engines for the first 1K miles. Never have i had to add more than 1/2 qt after 2k miles.
After reading a thread somewhere that said this TigerShark does eat oil...i checked it at 500mi and was down over 1/2 a qt which concerned me.
At about 800mi i drained & went with the synthetic Penzoil Ultra...now with 800mi on that.(1,600mi)..it hasn't lost a drop.
The other strange thing with this engine & calibration software.... (the dealer service mngr told me it isn't fully "broken in/ calibrated 'till 3k miles!) i blame that cal software for the slugish performance i was experiencing...at 1,300mi i did a full excelleration from a stop...something CHANGED!!!! Calibrated, seated, whatever...now it has an instant response & shifts like it's in a sport mode! Happy, happy bc i was really down on the TigerShark...now mine's great!
It's the TrailHawk with the 9sd auto.
It calibrated all by itself? I shift manually to give me that sporty feel. I currently have 700 miles on my 2018 Trailhawk.
Jeep Cares, I appreciate the follow up but at this point i'm done with trying to fix the car. My arbitration paper work has been submitted and I qualify to speak to an independent arbitrator as of yesterday so it will be a 3rd party arbitrator, FCA rep, Director of Service at Dealer and I to discuss next steps. I'm looking to have the car purchased back or get into another car that is not a compass.
I have a 16 page service history in seven months with so many things that have gone wrong that this warranty simply isn't enough to pacify the tainted ownership of this car. I got an oil change this last Saturday by dealer after issue discovered, checked oil level yesterday and it's already more than half quart low. No leaks, no smoke, nothing.
I understand, mikeexelby, and do genuinely apologize for the trouble you've encountered thus far. Should you change your mind, don't hesitate to connect with us via direct message.
Same thing started happening to me on Wednesday.. got low oil pressure light while turning.. checked oil. Not a drop on the dip stick. This compass has been nothing but issues.. worst car I have ever leased.
We regret to hear of these sentiments you have expressed, JCTH. If you are working with your dealer on this to have it addressed further, please feel free to send us a PM with additional details.
Update: Checked oil in car two days ago, one quart low already. Oil change was done a week ago. I hope it has enough oil to make it to the May 29th Arbitration date. I'm not taking it in anymore to dealer so I hope they can see what its doing.
Update: Family has literally drove just a hair under 500 miles on new oil change and it's now 2 quarts low. Likely to leave the Jeep with the dealer and let them try to figure out what happened. By the time anything gets done it will be time for me to go to arbitration.
No leaks, no smoke but boy is it thirsty for oil and gas. filled up 3 times in 500 miles.
Update: Car is now 600-700 miles into new oil change is now 3 quarts of oil low. Dealership won't take car to fix since I filed for arbitration but are willing to top engine oil off.
Still have two weeks before the day.
Update: Haven't drove the car much, afraid to, what driving we did after it got topped off we noticed engine oil all over the engine cover, the fire guard on the hood and all around the oil cap. this is an indication of blow by where the oil is seeping past the piston rings due to pressure/compression and the path of least resistance is the cap. The cap was snug when checked, cleaned it all off, put the cap back on and we have a upcoming 600-700 mile road trip so this should be interesting as I'm hoping it blows up or leaves me stranded.
Why keep going back to the same dealer? They are screwing with you.
The dealer is firmly on my side. How do I know this?
1. They were the only one to get me in contact with a regional FCA rep who refunded my firsts month payment due to the sheer amount of issues I had within a week. After spinning my wheels with FCA Customer Care for 2 months the Dealer stepped up quickly.
2. The dealer has been fully transparent with all repairs and documentation, even knowingly botching some things the first time they made it right the latter and got it back on the road.
3. Providing me with the necessary information to file for arbitration and having the service director providing me with all the legacy repair orders and making himself available for my Tuesday arbitration meeting.
If they wanted to make it hard on me they won't have done anything and told me to fly a kite. They cannot conduct work on a car that is flagged until my meeting or if I decided to drop my case.
I am sticking with them because why would I go to another place and introduce new variables, un-necessary paper work tracking?
Arbitrator sided with FCA. Brought car back in for another broken sway bar link, hatch issues (won't close properly) and oil consumption test.
Car continues to consume oil about 1/2 quart every 500-700 miles. It's already consumed 4 quarts during an oil change once. FCA refuses to replace motor or open motor up at this time. Advised Dealer to run test.
I penned a love letter email to some top execs after doing some intense internet searching. They didn't bounce back so I await to hear what they say.
If I were you I think I would do a compression test at this point. If you are not up for that, maybe there is a local independent mechanic who can do it for you for a small cost. This would be the way to prove that blow-by is happening, that something is totally wrong with your piston rings. Make sure the test is fully documented so it can be used as hard evidence with the arbitrator/FCA.
Hey, I know the last post was a month ago, but I'm having oil issue too and I'm wondering what your results were. First time they ran an oil consumption test, found nothing, and blamed it on not being at the correct levels when I purchased it. (mine was straight off the truck with the protective tape still on it.) I got an oil pressure alert this morning when I turned. Pulled over and could not see oil on the dipstick. My compass has less than 10k miles on it, so if it isn't fixed this time around I will probably invoke the lemon law and walk away.
Hello! First off, let me tell you that I'm sorry to hear that your Jeep is burning oil. You will have quite an up hill battle with the car. Mine continues to burn oil at a slower pace now than it did when it was first determined. What I have found is that the dealership will make you go thru these oil consumption tests and come in every 400-800 miles for a dipstick test. Make sure you personally check your oil before going to the dealer for documentation as i have found they add oil to the engine after checking which pretty much null and voids the testing they do. Make sure they DO NOT PUT OIL IN THE CAR.
it's done for that reason so they can skirt you out of the chance to leverage the warranty and continue to waste your time. I've caught my dealer doing this twice now. FCA will do everything in there power to stall your warranty claim and not open the engine up. They will also deny your arbitration and lemon claim unless you meet the conditions. I'm two service days out before I can claim lemon (30 days in a year) but it will be filed before long.
They (FCA) will also tell you that it's perfectly normal for it to turn all the oil as they have explained to me during my arbitration hearing. That is a load of crap.
I hate to see you guys having this issue with your Compass! All I can say as they (FCA) need to ditch this claim that this rate of oil loss is normal. Our Compass is somewhere between 6k and 7k miles now. Within a few days of bringing our Jeep home I checked the oil. It was just under the top fill line. I have been watching it closely ever since the first post about excessive oil use was made. As of yesterday my oil level is still above the halfway point. I would consider this to be normal oil use for an engine that is breaking in. So the amount of oil being used by your Jeeps is certainly not the norm. Heck you guys are so close the being diesels without the benefits of owning a diesel it is not funny.
I harken this TigerShark motor to be similar to a two stroke motor. I just checked my wife's oil today, its starting to get low again. I'm just wondering what excuse they will give me when it completely burns all the oil again.
The oil will be changed at 2,500 or when it hits the "low" mark, which ever comes first. my questions are you seeing any loss of mpg's?
Don't know the procedure, I've never owned a car that consumes oil like this one does.
My understanding is that as a part of the strive for higher and higher fuel economy the tightness of piston rings has been relaxed in many recent engines, reducing internal friction is a general benefit and part of how this modern motor can be more powerful and economical than larger engines of yesteryear but it comes at a cost and in this case the cost is a small amount of expected oil consumption and increased contamination of the engine oil during normal usage.
Yes I'm afraid it really is expected that these types of engines will "use" some oil between oil changes. For us old-timers this is a hard concept to grasp, that anyone would purposefully engineer a motor "loose enough" to burn a bit of oil but you can google this yourself, I'm not making it up. I know I sound like I'm guzzling the service department bs-koolaid again but seriously, check into it, this is a real thing.
Some modern mass-produced economy-minded engines are designed and expected to consume a tiny bit of oil between changes. This is part of why we have such a small engine with such a massive oil capacity. 5.5 quarts is a LOT of oil for a small four cylinder but the extra capacity is, in part, because its expected that the oil level is going to work its way slowly down the hash marks on the stick over the course of a 7500 mile interval.
Now, its not *supposed* to use enough between oil changes to go under the add mark of the dipstick or be a problem. The intention is to loose maybe a half a quart to not more than one quart over the time from one oil change to the next, and thats at the high end. Ideally we'd be talking more like 1/4 to 1/3 quart, which is the neighborhood my engine seems to be in. Actually, I think mine would be right at a half a quart probably if it ever went a full interval between changes, but I never give it the chance.
After reading articles describing how and why some modern engines use a small amount of oil on purpose, I resolved to double up on my recommended oil changes which basically just puts me near what was a "normal" oil change interval for cars back in the day. Right now the Compass computer seems to be on track to call for an oil change roughly every 8000 miles for my driving and usage (it's internal calculation varies depending on how you drive and in what conditions). I simply cut that in half, so when I first reached 4000 miles I changed the oil. Then at 8000 the computer threw up an oil change message and the dealer did it. Then at 12,000 miles I changed the oil again at home. At around 16,000 I expect the computer to put up a message again and into the dealer I will go. 4000 miles between each oil change, more than frequent enough to hopefully never have an issue with slight intended oil consumption and gasoline contamination that comes with less-tight piston rings, but long enough that I don't see it as a major burden (especially since I am only doing every other one). So far with the miles I drive this works out to the dealer changing the oil twice a year and me changing the oil myself twice a year. Whoopdido.
Obviously I'm one of the lucky ones. Mine only uses the tiniest bit, as was intended. I think where trouble really starts is for some of you, you get a motor that was already intended out of the gate to us a little oil, and you were unlucky enough to get an "extra loose" motor that was at the extreme end of the mass-production acceptable minimum tolerance range and all you need on top of that is for your rings to fail to seat a little bit the first few hundred miles and boom, you got yourself a very oil-thirsty engine.
The service and marketing and sales departments don't want to vocalize this intentional oil consumption thing too much, they know it sounds very bad at face value and that many of us will struggle a lot to come to the engineer's line of thinking that they have made a "good trade" in using a bit of oil to gain a bit of economy and power. They are between a rock and a hard place, the governments are legislating and demanding more and more efficient engines, this is one way to inch towards that goal, but they have to hope the average consumer never checks their dipstick and pays attention to what it was at 1000 miles ago. For 95%+ modern car buyers this is a safe bet to make, hardly anyone pays attention to their oil level nowadays. But they have opened themselves up to a percentage of their mass-produced motors being a little too loosey-goosey and still passing inspection and poor folks who get those unlucky motors are going to be really mad.
The thing is you can't hardly get away from this anywhere. Its not one lone car brand or company that is doing this. Any mass-produced car you buy from any branded lot could be a lurking lemon. Odds are in your favor but *somebody* is going to get the handful of bad ones.
1) Start out with a lease. It doesn't have to be a long one, but long enough to give you time to know whether or not you have one of the "good ones". If you get stuck with an oil-consuming, poor gas mileage, faulty-electronics, lemony-peppered-pig then happily give it back to them at the end of the lease and you won't come out ahead but you won't be too far 'behind' if you know what I mean.
2) Seat those rings! Know somebody with a 1000-2000 pound boat you can borrow for a couple days? Hitch it up around the 600-mile mark and do some gentle but firm accelerations on a safe country road somewhere. Or load up the cargo area with bricks. Google "new engine ring break-in procedure" for some ideas maybe. A moderate amount of heavy load can help piston rings seat and seal, as best as they can anyways. You aren't supposed to have to do this on a new motor but I don't know what else to tell you, its worth a try, seems to have worked out ok for me.
3) Don't put anything but good quality full synthetic oil in your engine, especially early on in life. No slick-50 or anything hoaky like that. If you start playing guessing games with friction modifiers early in an engine's life because of something you read on the internet, your rings may never seat and you will have a life-long oil burner for sure.
If you have a motor you think burns wayyy too much oil (ie, those of you that get oil pressure lights on the dash) go get a compression test done. This is about the only non-invasive thing you can do to find out if your rings are having major problems sealing, assuming the valves all work as they should. This is also something solid evidence-wise that should hold up arbitration or court, or it may point towards a problem in another area. I haven't looked but I have a feeling its pretty tough to do a compression test on these engines so if someone ever gets that far, I'd be curious to know how it goes and how much of a pain it is with the design of the intake.
Alright I've typed way more than enough for now, I'm sure you are all very sick of me by this point but hey, my 2 cents is free. If it leads you to google around and learn something, great. If you learn that I am wrong and full of sh t, thats also great. I don't care too much since mine works really good so far (knock on wood) but I hate to see other people having such a bad time after putting out their hard earned money.
I have a 2017 Trailhawk with approx 13k miles. I have noticed since brand new that it takes about 2 quarts of oil in between oil changes. I did first oil change myself at about 7500 miles and switched to synthetic thinking this would solve the problem. It didn't. I check the oil every month and always needs topping off. I googled the problem which brought me to this forum and as I suspected I would find others having the same problem with no real solution. I guess I will just have to continue checking oil level. For past 15 years I've had Toyota's and Honda's and never checked oil in between changes. This Compass is a real disappointment. I'll keep checking for a solution. But for now I'll keep several quarts of oil on hand.
I'm at 600 miles on mine. Since I read this post a few weeks ago I've been checking the oil more frequently than I would have. From 300 miles to 600 miles there has been a concerning consumption of oil. See picture.