<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Usability, Performance and Scalability for Expressive Data Languages via Cardinality-Based Aggregates</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Carlo Zaniolo</string-name>
          <email>zaniolo@cs.ucla.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>UCLA Computer Science Department Los Angeles</institution>
          ,
          <addr-line>CA</addr-line>
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In theory, the combined use of recursion and negation allows the declarative expression of very powerful algorithms in languages such as Datalog or SQL. However, the di culty of writing such programs and proving that they satisfy formal non-monotonic semantics makes such an approach totally impractical for software developers. Thus, we propose a new general solution to the problem of developing advanced applications in logic-based languages. Our approach is based on the combined use of recursion and aggregates endowed with a uni ed de nition of their semantics based on cardinality. In fact, we show that this entails the expression on a wide range of algorithms used in ML, data-mining and graph applications, which can be very appealing for practitioners because of (i) the compactness of their code, (ii) a simpli ed proof or veri cation for their stable-model semantics, (iii) their e cient implementations via a max-optimized semi-naive xpoint algorithm, and (iv) their superior scalability via Stale-Synchronous Parallelism. To demonstrate and further enhance the usability of our proposed framework, including the several e cient and scalable applications we developed, we provide a Logical Algorithm Library (Llib) and a Logical Data-Frame System (LFrame). By integrating access to Llib libray with other Apache Spark libraries, and supporting the interoperability of our BigDatalog, RaSQL, and Datalog-ML systems with Scala, Java and Python, LFrame turns Datalog into a powerful and attractive tool for advanced application development in the Spark ecosystem.</p>
      </abstract>
    </article-meta>
  </front>
  <body />
  <back>
    <ref-list />
  </back>
</article>