<!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>Towards Semantically Structuring GitHub</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Dennis Oliver Kubitza</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matthias Bockmann</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Damien Graux</string-name>
          <email>damien.graux@iais.fraunhofer.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>ADAPT Centre, Trinity College of Dublin</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Enterprise Information Systems</institution>
          ,
          <addr-line>Fraunhofer IAIS</addr-line>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Bonn</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>With the recent increase of open-source projects, tools have emerged to enable developers collaborating. Among these, git has received lots of attention and various on-line platforms have been created around this tool, hosting millions of projects. Recently, some of these platforms opened APIs to allow users questioning their public databases of open-source projects. Despite of the common protocol core, there are for now no common structures someone could use to link those sources of information. To tackle this, we propose the SemanGit ontology, the rst ontology dedicated to the git protocol, which also describes GitHub's features to show how it is extensible to encompass more git-based data sources.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Introduction
Open-Source technology is, once accepted as bene cial, subject to improvement
attempts under the premises of commercial marketing, ideological beliefs or just
feasibility of implementation. One of the most popular examples is Linux, with
its variety of ecosystems, ranging from commercial server distribution to
opensource desktop implementations. While not considered as heterogeneous in its
implementations, for now, the git protocol [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] faces the same development.
      </p>
      <p>
        Developed in 2005 as a distributed version-control system, git [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] is tracking
changes in a le system while providing several properties such as data integrity
or support for distributed and non-linear work ows. Since the le system
represented by git can be distributed, developers embed their changes into a local
git repository and later \push" their contributions to an online repository so
that collaborators can then have access to their modi cations and contributions.
Quickly, the git protocol has evolved to provide more and more features
dedicated to large open-source communities and projects. In recent years, more and
more platforms emerged using the git protocol to provide their users with a
version-control system, with every one of them using additional features to
provide a better user experience, faster distribution or improved maintainability.
      </p>
      <p>
        Nowadays, GitHub seems to be the most popular platform [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] for the external
usage of git, but other providers like GitLab achieve more and more
popularity [
        <xref ref-type="bibr" rid="ref1 ref2">1,2</xref>
        ]. As all these systems share a common infrastructure, based on git and
principles adopted from social networks, it is possible to agglomerate the
different approaches in a uni ed model and to merge these providers' data into a
common source of information. In this study, we present the SemanGit ontology,
an OWL ontology serving three goals. First, it structures data provided by the
git protocol. Second, it models as much information as possible from GitHub.
Third, it contains enough abstraction such that similar information from other
sources like BitBucket, CloudForge, GitLab, Launchpad can have a consistent
representation, using the same parental classes.
      </p>
      <p>
        The SemanGit ontology can then be used to collect data about developers from
di erent domains, interlinking information about publicly available software, its
developers and interactions between them with social media and research
platforms. While we propose not the rst ontology related to data from git [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], our
approach is a novelty, focusing on the possibilities of automated data
extraction and analysis. Indeed De Nies et al. proposed the git2PROV system, tailored
to the task of extracting provenance information [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] as a feature for developers
publishing their work.
      </p>
      <p>
        More generally, we fall within the domain of structuring public data (see
e.g. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] focusing on describing projects). So far, numerous projects are already
providing such datasets with each one tackling a distinct domain. Among this
list, we can mention DBpedia [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] which proposes a linked version of Wikipedia,
or also LinkedGeoData [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] which deals with geographical data. Both are excellent
targets for a future interlinking of data extracted from git hosters, to enrich the
information about users origin.
2
      </p>
      <p>A git Ontology and its GitHub Extension
The git protocol relies on so-called repositories for storing les and tracking
data modi cations. A large share of online git repository providers add features
of their own that are not part of the git protocol, such as social features. To
create an extensible ontology, we need to implement a strict distinction between
what is part of the git protocol and what is provider speci c. As an example,
according to the git protocol, the author of a commit is a pair \Name &lt;email&gt;"
whereas on GitHub an author, i.e. a user, is much more complex. It has additional
attributes such as a creation date, an avatar, a location and even social-featured
ones such as e.g. an associated website. The part of the SemanGit ontology
covering the git protocol features only the data that strictly belongs to the protocol.
The classes in this section mostly form the basis from which platform-speci c
classes inherit, see Figure 1 for an example. This protocol-related part is rather
small and comprises of merely four classes: users, projects (i.e. repositories),
commits and pull requests, the user class storing only an email address. The
projects refer to a URL, a time stamp of its creation and the commits that were
submitted to it. The other two classes are slightly more complex as commits have
a hierarchical structure in themselves and pull requests are requests to accept
a cross-branch commit, possibly coming from another project. Seeing that all
extensions of the git protocol are still required to provide the base
functionality, we have chosen a hierarchical approach for the SemanGit ontology, letting
extensions inherit from protocol-conform classes all properties they are expected
string
string
integer
dateTime
Literal</p>
      <p>github user lng
githubggituihthsueubrb uduseseleerrtelgodcicrtheauatibtoendusaetrid githubgiuthsuebr ccooumnptgragyintihtyhgcuuiobthbdueubusseeurrsecsrittyalatet
github login github user</p>
      <p>github user is org
boolean github user fake</p>
      <p>boolean Subclass of
commentable
github fol ower</p>
    </sec>
    <sec id="sec-2">
      <title>Subclass of</title>
      <p>github issue assignee
github issue reporter
github issue
string
string</p>
      <p>Literal
github issue event actor
github project joining user
github has owner
github fol ow. .
github fol ows
fol owable</p>
    </sec>
    <sec id="sec-3">
      <title>Subclass of github issue pul request</title>
    </sec>
    <sec id="sec-4">
      <title>Subclass of</title>
      <p>Literal
string
commit sha
user email
commit ccoommmmititedaubthyor
commit has parent
commit created at
dateTime
comment author
Subclass of
boolean
string
comment
integer
comment pos comment for
comment line comment created at
comment body
commit
integer
dateTime
commit message
string</p>
    </sec>
    <sec id="sec-5">
      <title>Subclass ostfring</title>
      <p>repository has commit</p>
    </sec>
    <sec id="sec-6">
      <title>Subclass of github commit</title>
      <p>user</p>
      <p>Literal
github issue event for</p>
      <p>github issue. .
github issue created at
github issue id
github issue event created at</p>
      <p>github issue event action
github issue event action specific sha
dateTime
string
string
dateTime
integer
github issue label used by
github issue project github projec. .</p>
      <p>github project join event created at</p>
      <p>dateTime
github project joined
the ontol ogithgubryepo label project
thgeithub gprojeict t, tgihthubeproject name
github repo . .</p>
      <p>string
github project description
gitlhuabfoyrgkitehduebfroprmrogjesitchtubdeploergtoeijtedhfcutb idproject has mgiiltehssuttrboinngeproject language repo</p>
      <p>github repo label name
integer
github projec. . github project lang</p>
      <p>github project la
github projec. .</p>
      <p>github
giDthautbatyppreoject milestone name
(external)</p>
      <p>string
github pul r. .</p>
      <p>
        github pul request action type
github pul request action id
github pul request action created at
dateTime
compass additional features from public open-source platforms by considering
GitHub. The full SemanGit ontology is publicly available for further community
driven development on GitHub1 and on our website2. An interactive visualization
can be found on VisualDataWeb3. While focusing on the structure and features
of GitHub for the moment, we designed our ontology to be extensible by the
information generated by any other host of git based version-control systems.
We created this ontology as a starting point to build semantic datasets from
various collaborative-platforms. Moreover, we already built one from GitHub:
the SemanGit dataset [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Such datasets could then allow innovative
perspectives for data analysis if one considers an enrichment of data from other sources
like DBpedia [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], LinkedIn [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] or linking researchers code development with
ScienceGRAPH [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. While the SemanGit ontology is currently published at our
homepage, we strive for the integration on external hubs such as LOV [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] in
the near future.
1 https://github.com/SemanGit/SemanGit/blob/master/Documentation/ontology/
2 http://www.semangit.de/
3 http://visualdataweb.de/webvowl/#opts=doc=0;editorMode=true;#iri=https://raw.
githubusercontent.com/SemanGit/SemanGit/master/Documentation/ontology/semangitontology.ttl
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <article-title>Comparison of source code hosting facilities</article-title>
          . https://en.wikipedia.org/wiki/ Comparison_of_source_code_hosting_facilities,
          <source>accessed: August</source>
          <volume>28</volume>
          ,
          <year>2019</year>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <article-title>Gitlab gains developers after microsoft buys rival github</article-title>
          . https://www.reuters.com/article/us-github
          <article-title>-microsoft-gitlab/ gitlab-gains-developers-after-microsoft-buys-rival-github-</article-title>
          <string-name>
            <surname>idUSKCN1J12BR</surname>
          </string-name>
          ,
          <source>accessed: August</source>
          <volume>28</volume>
          ,
          <year>2019</year>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Auer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kobilarov</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lehmann</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cyganiak</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ives</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          :
          <article-title>Dbpedia: A nucleus for a web of open data</article-title>
          .
          <source>In: Semantic Web</source>
          , pp.
          <volume>722</volume>
          {
          <fpage>735</fpage>
          . Springer (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Auer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lehmann</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hellmann</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          : Linkedgeodata:
          <article-title>Adding a spatial dimension to the web of data</article-title>
          .
          <source>In: ISWC</source>
          . pp.
          <volume>731</volume>
          {
          <fpage>746</fpage>
          . Springer (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Auer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Towards an open research knowledge graph (</article-title>
          <year>Jan 2018</year>
          ), https://doi. org/10.5281/zenodo.1157185
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. De Nies,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Magliacane</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Verborgh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Coppens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Groth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.T.</given-names>
            ,
            <surname>Mannens</surname>
          </string-name>
          , E., Van De Walle, R.:
          <article-title>Git2prov: Exposing version control system content as w3c prov</article-title>
          .
          <source>In: ISWC (Posters &amp; Demos)</source>
          . pp.
          <volume>125</volume>
          {
          <issue>128</issue>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Dumbill</surname>
          </string-name>
          , E.:
          <article-title>Doap: Description of a project</article-title>
          . http://trac.usefulinc.com/doap (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Kubitza</surname>
            ,
            <given-names>D.O.</given-names>
          </string-name>
          , Bockmann,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Graux</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.:</surname>
          </string-name>
          <article-title>SemanGit: A linked dataset from git</article-title>
          .
          <source>In: Proceedings of 18th International Semantic Web Conference</source>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wade</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sah</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Developing knowledge models of social media: A case study on linkedin</article-title>
          .
          <source>Open Journal of Semantic Web (OJSW) 1</source>
          (
          <issue>2</issue>
          ),
          <volume>1</volume>
          {
          <fpage>24</fpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Torvalds</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hamano</surname>
          </string-name>
          , J.: Git:
          <article-title>Fast version control system</article-title>
          . http://git-scm.
          <source>com</source>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Vandenbussche</surname>
          </string-name>
          , P.Y.,
          <string-name>
            <surname>Atemezing</surname>
            ,
            <given-names>G.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Poveda-Villalon</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vatant</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Linked open vocabularies (lov): a gateway to reusable semantic vocabularies on the web</article-title>
          .
          <source>Semantic Web</source>
          <volume>8</volume>
          (
          <issue>3</issue>
          ),
          <volume>437</volume>
          {
          <fpage>452</fpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>