<!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>SemTK: A Semantics Toolkit for User-friendly SPARQL Generation and Semantic Data Management</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Paul Cuddihy</string-name>
          <email>cuddihy@ge.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Justin McHugh</string-name>
          <email>justin@kobai.io</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jenny Weisenberg Williams</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Varish Mulwad</string-name>
          <email>varish.mulwad@ge.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Kareem Aggour</string-name>
          <email>aggour@ge.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>GE Global Research</institution>
          ,
          <addr-line>Niskayuna NY 12309</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Kobai</institution>
          ,
          <addr-line>Pleasanton, CA 94588</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We introduce the Semantics Toolkit (SemTK), an integrated platform for user-friendly querying and semantic data management. Through its user interface, SemTK allows users to convert CSV data into RDF triples and ingest them into a triple store. It also allows users to visually explore the ontology and construct SPARQL queries via a drag-and-drop interface. SemTK also provides novel SQL stored procedure-like support for saving and executing semantic queries with run-time constraints. Additionally, SemTK provides REST APIs for its functionality--including allowing data ingestion and queries to be executed programmatically--dramatically simplifying the deployment of knowledge-driven applications. SemTK is open-sourced under the Apache License, Version 2.0 and is available at https://github.com/ge-semtk/semtk</p>
      </abstract>
      <kwd-group>
        <kwd>Visual SPARQL querying</kwd>
        <kwd>SPARQL generation</kwd>
        <kwd>data triplification</kwd>
        <kwd>data ingestion</kwd>
        <kwd>semantic data management</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The Semantic Web technology stack provides a powerful foundation to construct, query
and maintain knowledge graphs, but in practice can be challenging to adopt by both
non-semantic subject matter experts in scientific and industrial communities and by
application developers building knowledge-driven applications. Tools such as Protégé
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and SADL1 [
        <xref ref-type="bibr" rid="ref2 ref6">2</xref>
        ] have made rapid strides in reducing these barriers for ontology
design and creation. However, there exist few tools with the same level of maturity to
explore, query and manage semantic data in knowledge graphs.
      </p>
      <p>The Semantics Toolkit (SemTK) is designed to lower the barrier to using semantic
technologies by making semantics accessible in a user-friendly manner to both subject
matter experts and application developers. With an “ontology first” approach, SemTK
has been designed in the context of the needs of a large industrial business, and in the
context of the migration of large disparate data sources into Linked Data. Through its
SPARQLgraph interface, SemTK allows both domain experts and application
developers to upload ontologies, browse existing ontologies, map tabular data to a nodegroup
1 http://sadl.sourceforge.net/
graph pattern, and upload data. Finally, a graphical drag-and-drop tool is used for
SPARQL query generation. Further, SemTK allows application developers to save
both queries and data triplification mappings and access them programmatically via
REST APIs, dramatically reducing knowledge-driven application development time.
To the best of our knowledge, SemTK is the first open source system that provides a
seamlessly integrated experience to perform all of these tasks together.
2</p>
    </sec>
    <sec id="sec-2">
      <title>The Semantics Toolkit Demonstration</title>
      <p>The features of SemTK are best demonstrated using the SPARQLgraph web interface,
using the demo ontology and data shown at:
https://github.com/gesemtk/semtk/wiki/demo. This demo includes a SADL ontology and data in a CSV file
that can be loaded into a knowledge graph and queried against.
Connections and Ontology Information. Use of SPARQLgraph starts with defining
a new “connection” to a knowledge graph. The connection consists of the URLs and
graph names of multiple SPARQL endpoints each for the ontology and the data. The
“model domain” is a regex used to select the URI’s which make up the ontology. After
loading, the class hierarchy is displayed in the left-hand pane, and keyword searchable.
Nodegroup Construction. A nodegroup is a graphical representation crucial to almost
every SemTK function. It represents a subgraph of interest, and is used for generating
queries such as SELECT and DELETE, and for ingesting data. The main pane provides
a drag-and-drop-interface for constructing nodegroups and complex SPARQL queries.
Path-finding Algorithm. Automated path-finding uses a modified A* algorithm to
simplify the task of building nodegroups . When new classes are dropped on the
canvas, possible connection paths are automatically generated and suggested.
VALUES Clause Generation. SemTK’s automated VALUES generation capability
assists further by suggesting all valid values for a property based on the current
nodegroup and the contents of the data endpoints, and automatically build VALUES clauses.
Runtime Constraints. Properties in a nodegroup can be flagged as runtime
constrainable, in which case their values must be provided when the query is invoked, mimicking
stored procedure functionality common in the relational database world.
SPARQL Generation. Once a nodegroup has been constructed, SELECT, COUNT,
and DELETE queries can be executed. Runtime constraints can be added (for saved
queries) and executed with the VALUES generation capability used to suggest
constraint values.</p>
      <p>Data Ingestion. Using the Map Input screen, a CSV file can be aligned with the
nodegroup for data ingestion by dragging-and-dropping columns to corresponding ontology
elements. Ingestion values can be transformed and combined with text and with each
other. URI lookup can be used to connect new data to existing data using a powerful
dynamic lookup strategy. During ingestion, the data is type-checked, then one copy of
the nodegroup is generated for each line of input data, and a SPARQL-generation
engine builds and executes an INSERT query.</p>
      <p>
        REST API. All features demonstrated via SPARQLgraph are accessible via REST
APIs. Nodegroups can be saved by name in the service layer or as JSON, and invoked
to perform select, delete, count and ingestion tasks. This provides a simple yet powerful
integration of semantics in applications via a standard REST interface.
The default demo can be accessed at
http://semtk.research.ge.com/sparqlGraph/index.html. For ease of use, this demo scenario comes pre-loaded with an existing
ontology. Interested readers can find more technical details in [
        <xref ref-type="bibr" rid="ref3 ref7">3</xref>
        ].
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Related Work</title>
      <p>
        Previous research efforts into simplifying the use of Semantic Web technologies have
focused both in visual SPARQL querying and data triplification. Tools exist that enable
users to visually generate SPARQL queries to interact with triple store data including
OptiqueVQS [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and QueryVOWL [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] which come closest to SemTK in terms of
functionality. SemTK expands and improves upon these tools by providing advanced
features geared toward subject matter experts who are not well-versed in OWL or
SPARQL. Through its oInfo panel, SemTK allows non-expert users to explore domain
ontologies. With SemTK's pathfinding, users are not burdened with the task of finding
a path to connect two classes, which is a fairly common step in constructing SPARQL
queries. Finally, SemTK makes it very simple to add constraints on both object and
data properties to filter query results. A detailed comparison between SemTK and other
tools can be found in [
        <xref ref-type="bibr" rid="ref3 ref7">3</xref>
        ]. As with visual SPARQL querying, there has been a significant
amount of prior work focused on mapping CSV, spreadsheets and relational data to
RDF2. SemTK's data triplification and ingestion is similar to RDF Refine3, SemTK
simplifies this process by providing a simple, intuitive, graphical drag-and-drop
approach to define mappings. However, unlike RDF Refine, which allows users to define
arbitrary classes, properties and links between them, SemTK uses classes and properties
from an existing domain ontology, thus conforming the data to existing schemas. In
addition, SemTK’s data triplification is tightly coupled with its data ingestion process.
Once a mapping is defined based on the user-provided CSV, the data within the CSV
is triplified and ingested. This tight integration between triplification and ingestion
makes SemTK considerably more practical and useable. These features make it
dramatically simpler for non-semantic experts to construct knowledge-driven applications.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Future Work</title>
      <p>SemTK remains an ongoing development effort. Future enhancements include
generating more complex SPARQL features such as UNION clauses. While SemTK is
designed to work with any SPARQL1.1-compliant triple store, work remains to ensure
smooth operation with a wide range of semantic stores.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>A. Musen, "The Protégé Project: A Look Back and A Look forward,"</article-title>
          <source>AI Matters</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>A.</given-names>
            <surname>Crapo</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Moitra</surname>
          </string-name>
          ,
          <article-title>"Toward a Unified English-like Representation of Semantic Models, Data, and Graph Patterns for Subject Matter Experts.,"</article-title>
          <source>International Journal of Semantic Computing</source>
          , vol.
          <volume>7</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>215</fpage>
          -
          <lpage>236</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>P.</given-names>
            <surname>Cuddihy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>McHugh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. W.</given-names>
            <surname>Williams</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Mulwad</surname>
          </string-name>
          and
          <string-name>
            <given-names>K. S.</given-names>
            <surname>Aggour</surname>
          </string-name>
          ,
          <article-title>"SemTK: An Ontology-first, Open Source Semantic Toolkit for Managing and Querying Knowledge Graphs,"</article-title>
          <source>arXiv preprint arXiv:1710</source>
          .
          <fpage>11531</fpage>
          .,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>A.</given-names>
            <surname>Soylu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Giese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Jiménez-Ruiz</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Vega-Gorgojo and I. Horrocks, "Experiencing OptiqueVQS: a multi-paradigm and ontology-based visual query system for end users," Universal Access in the Information Society</article-title>
          , vol.
          <volume>15</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>129</fpage>
          -
          <lpage>152</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>F.</given-names>
            <surname>Haag</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lohmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Siek</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Ertl</surname>
          </string-name>
          ,
          <article-title>"QueryVOWL: Visual Composition of SPARQL Queries,"</article-title>
          <source>in ESWC Satellite Events</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>2 https://github.com/timrdf/csv2rdf4lod-automation/wiki/Alternative-Tabular-to-RDFconverters</mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>3 http://openrefine.org/</mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>