<!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>Specification and Validation of Quality Criteria for Git Repositories using RDF and SHACL</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Leon Martin</string-name>
          <email>leon.martin@uni-bamberg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andreas Henrich</string-name>
          <email>andreas.henrich@uni-bamberg.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>LWDA'22: Lernen</institution>
          ,
          <addr-line>Wissen, Daten, Analysen</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Bamberg</institution>
          ,
          <addr-line>An der Weberei 5, 96047 Bamberg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2022</year>
      </pub-date>
      <abstract>
        <p>As part of quality management, it is important to ensure that Git repositories meet certain quality criteria depending on the type of the respective project. In academia, for instance, repositories of finished research projects should always comprise a readme file providing usage instructions. The range of heterogeneous resources within modern Git repositories leads to a large number of conceivable quality criteria, thus increasing the efort for validating Git repositories against the project type specific quality criteria. At the same time, there is a lack of approaches and tools supporting this validation. Hence, this paper proposes and discusses an approach based on RDF and SHACL for validating a given Git repository against a set of quality criteria defined for its intended project tyQpuea.Re, a working prototype implementing the approach, is provided and discussed.</p>
      </abstract>
      <kwd-group>
        <kwd>Applications of knowledge management</kwd>
        <kwd>Representation of Git repositories</kwd>
        <kwd>Git repository quality</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Today, the version control software Git1 and related platforms like GitH2uabre standard tools
for developing and sharing software. Version control systems store data within so called
repositories in the form of a filesystem tree1[]. Developers can connect to the repository and
edit the files in the tree as needed. Every committed change is registered and stored such that
older revisions of the files can be viewed retrospectively. On top of this core functionality,
platforms like GitHub provide a continuously growing number of powerful features like issue
tracking, release management, wikis, CI/CD2][, and many more. As a result, modern Git
repositories comprise many heterogeneous resources beyond pure software. Further increasing
the complexity, diferent relationships exist between the resources and the users of a repository:
There are one-to-one relationships, e.g., one repository can have exactly one description,
one-tomany relationships, e.g., one repository can comprise one or more branches, and many-to-many
relationships, e.g., one or more issues can be assigned to one or more contributors.</p>
      <p>
        In software engineering, there are numerous tools and practices for producing high-quality
software [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Similarly, Git repositories should also comply with certain quality criteria
depending on the intended type of the respective project. Due to the complexity of modern
      </p>
      <p>CEUR
Workshop
Proceedings
Git repositories, there is a range of conceivable quality criteria. In fact, all resources of a Git
repository can theoretically be the subject of some quality criteria, thus making it dificult to
evaluate the quality of one or even multiple Git repositories that have to follow certain criteria
across an organization consistently. At the same time, there is a lack of tools supporting the
validation of Git repositories against such quality criteria, thus motivating the present paper.</p>
      <p>
        In this paper, an approach based on the Resource Description FrameworRkD(F) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and the
Shapes Constraint LanguageSH(ACL) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] is proposed for validating a Git repository against a
set of quality criteria defined for its intended project type. The approach follows a three-step
process to check whether a Git repository meets the quality criteria of its intended project type:
1. A representation of the project type and the corresponding quality criteria is created.
2. A representation of the repository and its heterogeneous resources is created with respect
to its intended project type.
3. An engine is leveraged to validate the repository representation against the representation
of the quality criteria of its intended project type.
      </p>
      <p>We provide a prototypical tool callQeudaRe3 implementing the approach. The tool allows
users to easily check wether Git repositories of interest comply with the quality criteria they
should fulfill according to their intended project type. Even though this paper focuses on
repositories of academic projects, the approach and thereby the tool can readily be applied to
other kinds of Git repositories.</p>
      <p>The remainder of this paper is organized as follows: Sectio2ninvestigates important
foundations and related work. In Sectio3n,the approach is explained thoroughly. Then, Sectio4n
focuses on the implementation of the approach by introducing our working prototype.
Subsequently, the approach and the implementation are discussed in Sec5t,iboenfore drawing a
conclusion in Section6.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Foundations &amp; Related Work</title>
      <p>In the beginning, this section introduces a set of useful quality criteria with respect to literature
and our academic background, which is the first contribution of this paper. Afterwards, the
candidate technologies for implementing the proposed approach are investigated.</p>
      <sec id="sec-2-1">
        <title>2.1. Quality Criteria for Git Repositories</title>
        <p>
          Although Git and related platforms like GitHub are standard tools in software development today,
there is few scientific literature explicitly discussing quality criteria for Git repositories. Instead,
the available literature mainly discusses topics around so called data repositories for storing
datasets. Examples of such data repositories provide interactivity and support collaboratively
working on the data6[
          <xref ref-type="bibr" rid="ref7">, 7</xref>
          ]. Regarding quality criteria, there is, for instance, a paper concerned
with the consistency of data within such repositori8e]s. [Typical areas of application for data
repositories are the general scientific domain6[] and its various disciplines like medicine7][.
        </p>
        <p>3https://github.com/uniba-mi/quar(evisited 2022/09/07); pronounced likequare, the Latin word forwhy, which
is a reference to the tool’s ability to provide explanations why a repository’s validation did not succeed.
Actually, one could understand a modern Git repository as a highly collaborative and
featurerich form of a data repository mainly for the software development domain. This is supported by
the fact that papers lik9e] [mention code as a part of the data stored in research data repositories.
Regarding quality indicators for code, the paper mainly elaborates on code reproducibility. To
achieve this, lists of required dependencies, documentation, user guides, and in the best case
virtual runtime environments provided via tools like Doc4koerrplatforms like Code Ocea5n
are recommended.</p>
        <p>Apart from the scientific literature, there are posts on blogs and Q&amp;A sites addressing quality
indicators of Git repositories. For instance, answers to questions on StackOver6floawnd Quora7
state that comprehensive documentation, ease of installation, up-to-dateness, the activity on
the repository, the friendliness of the community, the extensibility of the provided code, and
the usage of software testing are important indicators.</p>
        <p>
          In the end, the repository maintainers decide which quality criteria they want to enforce,
thus calling for a flexible approach. Based on our academic expertise and the literature, we
compiled a first set of generic quality criteria categories that can be useful for academic Git
repositories (and others). Tabl1e gives an overview of the considered quality criteria categories
on the -axis and the afected Git repository resources on th e-axis. As shown, we distinguish
ifve categories 8: Existence criteria check if a resource is available at qaulaln,tity criteria check
if the correct number of a resource is availabnlea,ming criteria check if a resource is named
appropriately,content criteria check if a resource comprises the correct contents, asntadtus
criteria check a resource’s status.
4https://docker.com(visited 2022/09/07)
5https://codeocean.com(visited 2022/09/07)
6See https://stackoverflow.com/questions/2252743(v8isited 2022/09/07)
7See https://www.quora.com/How-do-you-measure-a-good-github-reposito(rvyisited 2022/09/07)
8There are numerous other conceivable quality criteria and criteria categories which, however, cannot be
covered here comprehensively. For instance, one could impose an exotic criterion addressing the quality of writing
of some file’s content (cf. [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]) or require criteria with respect to the FAIR data principlhetst(ps://www.go-fair.org;
visited 2022/09/07). The representations of constraints and Git repositories used by our approach allow adding other
criteria categories and specific criteria in the future.
        </p>
        <p>We define that a repository is of high quality if ∀ ∈   ((, )) , where   is the set
of all quality criteria of the intended project tyapned  is a predicate that evaluates to
true if complies with .</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. RDF, SHACL &amp; OWL</title>
        <p>
          One strength ofRDF [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] is its ability to semantically link heterogeneous data. For this purpose,
RDF encodes knowledge as subject-predicate-object-triples, i.e., statements that specify binary
relations between entities that are either Internationalized Resource IdenIRtiIfies)r,sl(iteral
values, or blank nodes. The predicates defining the binary relations are also referred to as
properties. Collections of such triples span so calRleDdF graphs, which can be queried using the
SPARQL Protocol And RDF Query LanguageS(PARQL). On top of this, the SPARQL Inferencing
NotationS(PIN) [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] allows specifying business rules inSPARQL against which a givenRDF
graph can be directly validated. Said rules include various types of constraints on the nodes
and properties in the graph. It’s modern and more powerful successoSrH,ACL [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], uses so
called shapes graphs to model constraints. To validatReDaFngraph, SHACL validators like
pySHACL9 check whether the graph of interest complies with the constraints specified in the
shapes graph.
        </p>
        <p>
          An alternative for specifying constraints in the form of restrictionsRDonF graphs is to
leverage the OWL 2 Web Ontology LanguagOe W(L) [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] and class expressions. Building on
top ofRDF, OWL greatly increases the expressiveness oRfDF by introducing classes, properties,
individuals, and data values such that semantic reasoners can be applied to perform reasoning
on the data. One popular semantic reasonerPiesllet [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. In this context, one typical inference
problem is testing the satisfiability of class expressions, which are used to impose certain
restrictions on the properties of classe1s4[]. Informally speaking, a class expression is not
satisfiable if there exists an individual of the class defined usi n g that does not comply with
the restrictions specified by  , for instance.
        </p>
        <p>The following section describes how these RDF-related technologies can be employed to
tackle the problem motivating this paper.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Concept</title>
      <p>Modern platforms like GitHub typically provide comprehensive APIs and wrappers for accessing
and manipulating repositories in code. Given such an API, the straightforward option for
testing whether a Git repository complies with sets of quality criteria is to directly access the
API or employ one of the available wrappers to check the individual quality criteria directly
on the raw repository data. However, this approach has the drawback that an appropriate
representation of the quality criteria and an engine for validating the repository against them has
to be implemented single-handedly. For flexibility, it is thus more expedient to exploit already
available technologies that sufice for the use case. In our specific caseR,DF is well-suited
for creating a generic and abstract intermediary representation of a Git repository because
1) platforms like GitHub already provide explicit Uniform Resource LocatUoRrsL(s), a subset
9https://github.com/RDFLib/pySHACL(visited 2022/09/07)
of IRIs, for most of the repositories’ resources and 2) the graph structuresRDofF are able to
naturally model the complex relationships between the heterogeneous repository resources
and its users.</p>
      <p>Regarding the actual validation, boOtWh L in combination with a semantic reasoner and
SHACL in combination with aSHACL validator are capable of checking wether RaDnF
representation of a Git repository complies with certain quality criteria. In the former case the
quality criteria would be modelled as class expressions, in the latter as a separate shapes graph.
However, there is an decisive advantage oSfHACL: Semantic reasoners forOWL likePellet
terminate as soon as one violation of a class expression is encountered. As a result, only the
ifrst violation can be reported to the user. Applied to our use case, users would only receive a
report mentioning one violated quality criterion even if the Git repository of interest potentially
comprises many more. In contrastS,HACL validators likpeySHACL continue even if one or
more constraints are violated and ultimately provide a full report of all violations. Therefore,
SHACL was chosen for the approach that is mainly proposed and discussed in this paper. For
completeness, our tool also features OaWnL-based approach, which will be mentioned in
Sections4 and 5, too.</p>
      <p>The remainder of this section uses the project tyfinpieshed research project (  ) as a running
example to explain thSeHACL approach. With respect to the currently supported criteria
from Table1, we define that repositories of finished research projects, have to comply with the
quality criteria depicted in the upper section of Ta2b.lNeote that the selected criteria reflect
our understanding of a finished research project, i.e., a project whose development has finished
but whose results, code etc. should still be usable by others. For comparison, the table shows
another project type, nameliynternal documentation (  ). Since repositories with this intended
project type are for internal use, we impose less constraints for it.</p>
      <p>The following sections will explain how the three-step process from Sec1tiiosnimplemented
using theSHACL approach. Using this approach, the goal of the process is to evaluate the
formula∀ ∈   ((, )) from Section2.1 by checking the compliance of the repository’s
RDF representation with a shapes graph.</p>
      <sec id="sec-3-1">
        <title>3.1. Creating a Representation of Project Types and Quality Criteria</title>
        <p>As described previously,SHACL uses a separate shapes graph to specify the constraints for
anotherRDF graph. In the context of this paper, the created shapes graph provides specifications
for the supported project types. Every project type specification includes constraints on the
properties that entities of the project type have to comply with as define d b∈y   . To
give an example, Figure1 (a) shows the fragment of the shapes graph definin g 5 ∈    . The
depicted properties with the leadinsgh prefix originate from the SHACL vocabulary 5[]. More
specifically, the sh:property property links a project type entity to so called property shapes
which are structures for defining the constraints. Thseh:path property defines the path in the
RDF graph to which the constraint applies. In the example, the propersthi:emsinCount and
sh:maxCount are leveraged to define the constraint that an entity w itahs its intended project
type has to possess exactly one instance of a properhtays_branch that links the entity to a
branch entit1y0. Similarly, shapes for a l l ∈    are created. The exact design of each shape has
10Section4.2 provides more examples regarding the implementation of quality criteria.</p>
        <p>that repositories of projects with the type finished research
project (  )/internal documentation (  ) have to comply with.</p>
        <p>∈</p>
        <p>Quality Criterion
  ∈</p>
        <p>Quality Criterion
 1
 2
 3
 4
 5
 6
 7
 8
 9</p>
        <sec id="sec-3-1-1">
          <title>The branch from  5 shall further be called main.</title>
          <p>There shall be no open issues.
There shall be a license.</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>The license from  8 shall be a GNU GPL 3.0 license.</title>
          <p>There shall be a readme file.</p>
          <p>The readme file from  10 shall include the sections Installation and Usage.
The repository shall be private.</p>
          <p>There shall be a repository description.</p>
          <p>There shall be a readme file.</p>
        </sec>
        <sec id="sec-3-1-3">
          <title>The readme file from  3 shall include the sections Purpose.</title>
          <p>Category
State
Quantity</p>
          <p>Existence
Quantity</p>
          <p>Quantity
Naming
Existence
Existence
Content
Existence
Content
Category
State
Existence
Existence
Content
to suficiently capture the constraint but can otherwise be chosen according to taste because
the structure of thReDF representation is not determined yet. Nevertheless, we recommend
designing the shapes as concise as possible.</p>
          <p>types:FinishedResearchProject
y
t
r
e
p
o
r
p
:
h
s
sh:path props:has_branch
sh:maxCount
sh:minCount
(a)
1
https://github.com
/uniba-mi/quare
h
c
n
a
r
b
_
s
a
h
:
s
p
o
r
p
https://github.com
/uniba-mi/quare</p>
          <p>/tree/dev
https://github.com
/uniba-mi/quare
/tree/main
(b)
props:has_name
props:has_name
"dev"
"main"
tion of QuaRe’s GitHub repository.</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Creating an RDF Representation of the Git Repository</title>
        <p>In SHACL, the shapes graph is independent from thReDF graph that is validated against
the shapes graph. To ensure compatibility between the shapes graph and the repository
representation, the repository representation has to be created based on the same properties
that are used for the constraints in the shapes graph and their structure. The naive option
would be to just create the representation such th atoaflalll supporte d  in the shapes
graph could be validated based on them. This way, the time to create the representation
becomes unnecessarily long and the representation itself unnecessarily big due to the diversity
of possible quality criteria, though, without any benefit. To mitigate this problemR,DtFhe
representations of repositories could be cached by exploitiRnDgF’s serialization capabilities.
However, caching comes with the risk that older versions of repositories are validated. This is
problematic because the most recent versions might have new problems regarding the quality
criteria while some problems might already have been fixed. For this reason, it is more expedient
to choose another option which is to createmainimal representation just-in-time that only
comprises the information that is necessary to check the constraints of the intended project
type. Due to the diversity of possible quality criteria, one cannot rely on the API to directly
provide exactly the information that is required to represent ea∈c h  with respect to the
shape structures determined in the first step, though. Instead, the derivation of each triple from
the available repository data has to be implemented manually as the algorithm in Al1gorithm
shows: After initialization, the wrapper is used to fetch the repository data that is relevant
for each   . Based on the retrieved data, RDF triples are derived that suficiently reflect the
characteristics of the repository with respect to the SHACL constraints. The derived triples
constitute thmeinimal RDF representation of the repository.</p>
        <p>Algorithm 1 Generating a minimal RDF representation of a Git repository.</p>
        <p>Require: The</p>
        <p>of the repository, the set of quality criteria of the intended project ty,pe
and an empty set of tripl es, i.e., the RDF representation of the repository.</p>
        <p>To give an example, Figure1 (b) shows a fragment of theRDF representation ofQuaRe’s
GitHub repository3. As depicted, two instances of thperops:has_branch property are created
that link the repository entity to entities representing the branches available in the repository,
i.e., one branch entity with the namdev and one branch entity with the nammeain. The result
of the second step is therefore aRnDF representation of the Git repository that is adequate in
the sense that it reflects the repository appropriately with respect to the properties used in the
shapes graph such that it can be validated against the shapes graph in the upcoming third step.
 
for   ∈   do</p>
        <p>← ()
 ←  . ℎ (
 ←   ()
 ←  ∪ {}
end for
return 
)

▷</p>
        <p>The derivation depends on the respectiv e .</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. Validation</title>
        <p>Finally, aSHACL validator implementation, in our capsyeSHACL, is used to validate the Git
repository’sRDF representation from the second step against the shapes graph from the first
step. If theRDF representation complies with the project type specific constraints defined in
the shapes graph, the repository is of high quality as specified by the formula in Secti2o.1n. As
depicted in Figure1, QuaRe’s repository features two branches while only exactly one branch
is permitted by 5 ∈    , thus causingpySHACL to report that this constraint is violated when
the repository is validated again st .</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Implementation</title>
      <p>Based on theSHACL (and theOWL) approach, the single-page applicatioQnuaRe3 was
implemented, which allows testing one or multiple GitHub repositories against the quality criteria of
their intended project type via a web interface. The web interface is implemented using S11velte
and is connected to a backend written in Python which is executed on the same machine. For
working withRDF and ontologies, the backend employs thrdeflib 12 and Owlready213 libraries
as well aspySHACL and Pellet. For interaction with the GitHub API, tPhyeGithub14 wrapper
is leveraged. In its current stage, the application comprises two pages, which are described in
the following sections.</p>
      <sec id="sec-4-1">
        <title>4.1. The Validation Page</title>
        <p>The Validation page (cf. Figure 2) provides a form for entering an arbitrary number of GitHub
repositories and their respective intended project types. By pressing t+heand − buttons users
can add or remove input fields as needed. Users can also provide their personal GitHub access
token, which is required if they want to validate private repositories or make multiple validation
requests in short succession. Via a switch, users can choose if the backend should use the
SHACL or theOWL approach. When the form is submitted using the designated button, one
individual request for each repository name and project type combination is sent to the backend
triggering the execution of the chosen approach. If the validation in the backend succeeds,
a green check mark is displayed. Otherwise, a red error symbol is shown accompanied by a
button revealing thpeySHACL or Pellet explanation when pressed. Since the raw explanations
are not useful for users unfamiliar wiStHhACL and OWL, a basic template-based verbalization
feature was implemented that extracts the parts of the explanation addressing the reasons why
the validation failed and transforms them in natural language. The verbalized explanations are
presented alongside the raw explanations. Furthermore, there is a button for saving the form
inputs locally such that they do not have to be entered every time.</p>
        <p>11https://svelte.de(vvisited 2022/09/07)
12https://github.com/RDFLib/rdfli(bvisited 2022/09/07)
13https://github.com/pwin/owlready(2visited 2022/09/07)
14https://github.com/PyGithub/PyGithu(vbisited 2022/09/07)
 using the SHACL approach was issued. As shown, the validation has failed and the button revealing
the raw and verbalized explanations has been pressed. Note that the screenshot was taken when the
repository was still almost empty which is why basically all constraints of  were violated.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. The Specification Page</title>
        <p>
          The other page provided in the web interface is thSpeecification page (s. Figure 3) where the
available project type specifications can be viewed. Users are able to choose if they want to view
theSHACL specifications, as defined by the employed shapes graph, or the OWL specifications,
as defined by the used class expressions. The screenshot shows that there are currently four
supported projects types, namelfinyished research project , internal documentation, i.e.,   and
  from above, ongoing research project, and teaching tool. To give an example of a project
type specification, the tab of theteaching tool project type is expanded revealing its quality
criteria as defined by theSHACL shapes graph in the form of a list. Each list entry corresponds
to another quality criterion. Using thhaes_branch example from Section3, the forth entry
in the list defines that thReDF representation of a Git repository containingteaaching tool
has to comprise at least two instances of htahse_branch property. The final entry shows a
more sophisticated constraint stating that there has to be a node that is 1) reachable via the
has_readme and has_section properties and 2) has the literal valUuseage. The combination
of thesh:qualifiedValueShape, sh:pattern, and sh:qualifiedMinCount properties define
a so calledsh:QualifiedMinCountConstraintComponent [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. In other words, the criterion
states that there has to be a readme file witUhsaage section in the repository.
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Discussion</title>
      <p>In Section2, we already mentioned the comprehensive validation reportSsHofACL as one of
its main advantages compared to the alternaOtiWveL approach. Apart from thisS,HACL’s
underlying principle of separating constraints, i.e., the shapes graph, and actual data is another
strong point because it facilitates reviewing constraints for the supported project types. In
contrast, the ontology of tOheWL approach includes both class expressions and the
repository representation impeding the readability. Thus, StHheACL approach surpasses theOWL
approach in terms of developer friendliness and maintainability, too.</p>
      <p>
        Regarding our implementationQ,uaRe lacks certain features that are planned to be added in
the future. First, we want to implement that users can edit the specifications directly in the app
on theSpecification page, instead of editing them manually in the backend. Although this feature
is important forQuaRe, its implementation was postponed because it addresses non-trivial
topics beyond the focus of this paper, i.e., the mapping oSfHACL and OWL expressions to
and from user interfaces (cf.1[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]). Similarly, the verbalization of the explanations has to be
improved significantly. Verbalization capabilities are planned to be added toStpehceification
page, as well, such that inexperienced users can easily understand the shown quality criteria.
      </p>
      <p>An assessment of the tool’s performance was also conducted. For this, the time it takes for the
backend to perform theSHACL and theOWL approach was measured on a standard desktop
PC. As repositories, the top twenty trending GitHub reposito1r5iewsere used, which are well
maintained and rather large. As intended project types, we u seadnd   . Figure 4 shows that
theSHACL approach is faster in both scenarios even thougPhellet stops the validation as
soon as a violation is encountered. Hence, tShHe ACL approach provides a complete picture
of the violationasnd is also faster. Furthermore, the figure shows that the project type does
not significantly afect the runtime. This is due to the fact that fetching the repository data
from GitHub is the most time-consuming part of the process. In fact, the steps 1/2/3 from
Section1 account for 0.32%/91.75%/7.89% of the total duration using StHheACL approach and
for 0.10%/76.49%/23.36% using theOWL approach on average, based on our measurements.
Accordingly, comparatively large (in terms of branches, issues, etc.) repositories account for the
depicted outlier1s6. Finally,QuaRe only supports GitHub repositories at the moment. Support
for other platforms can be implemented as long as APIs and/or wrappers are available.
30
25
20
s
d
n
co15
e
S
10
5</p>
      <p>SHACL, TF</p>
      <p>OWL, TF</p>
      <p>SHACL, TI</p>
      <p>OWL, TI</p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <p>
        This paper proposed a SHACL based approach for validating a Git repository against a set of
quality criteria specified by the type of project within the repository and compared it to an
alternativOe WL based approach. For this, we also provided and discussed an implementation
of both approaches calleQduaRe. It should be emphasized that the general idea of specifying
and validating requirements for certain artifacts baseRdDoFn representations of them could be
applied in other contexts as well, even for software and software systems. In fact, conversions
and interfaces between the Unified Modeling LanguageUM(L) and SHACL [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] have already
been studied. Apart from the already mentioned leads, future work could thus also explore how
such technologies can be leveraged to wideQnuaRe’s repertoire of quality criteria.
15Retrieved fromhttps://github.com/trending?since=month(lvyisited 2022/03/31).
      </p>
      <p>16To mitigate the impact of their size, tRhDeF representations of repositories could be cached by exploiting
RDF’s serialization capabilities. As discussed in Secti3o.n2, caching is not a good option for our use case, though.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>C. M.</given-names>
            <surname>Pilato</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Collins-Sussman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. W.</given-names>
            <surname>Fitzpatrick</surname>
          </string-name>
          ,
          <article-title>Version control with subversion - the standard in open source version control</article-title>
          ,
          <source>O'Reilly</source>
          ,
          <year>2008</year>
          . URhLt:tp://www.oreilly.de/ catalog/9780596510336/index.ht m.l
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Shahin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Babar</surname>
          </string-name>
          , L. Zhu,
          <article-title>Continuous integration, delivery and deployment: A systematic review on approaches, tools, challenges and practices</article-title>
          ,
          <source>IEEE Access 5</source>
          (
          <year>2017</year>
          )
          <fpage>3909</fpage>
          -
          <lpage>3943</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Gillies</surname>
          </string-name>
          ,
          <article-title>Software quality: theory and management</article-title>
          , Lulu. com,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>R.</given-names>
            <surname>Cyganiak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Hyland-Wood</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Lanthaler, RDF 1.1 concepts and abstract syntax, W3C recommendation (</article-title>
          <year>2014</year>
          ). URL:https://www.w3.org/TR/rdf11-concept,svisited
          <year>2022</year>
          /09/07.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>H.</given-names>
            <surname>Knublauch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kontokostas</surname>
          </string-name>
          ,
          <article-title>Shapes Constraint Language (SHACL), W3C recommendation (</article-title>
          <year>2017</year>
          ). URL:https://www.w3.org/TR/shac,lvisited
          <year>2022</year>
          /09/07.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>R. A.</given-names>
            <surname>Rossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. K.</given-names>
            <surname>Ahmed</surname>
          </string-name>
          ,
          <article-title>The network data repository with interactive graph analytics and visualization</article-title>
          ,
          <source>in: Proceedings of the Twenty-Ninth AAAI Conference on Artificial Intelligence, January 25-30</source>
          ,
          <year>2015</year>
          , AAAI Press,
          <year>2015</year>
          , pp.
          <fpage>4292</fpage>
          -
          <lpage>4293</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M. G.</given-names>
            <surname>Antonio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Schick-Makarof</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Doiron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Sheilds</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>White</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Molzahn</surname>
          </string-name>
          ,
          <article-title>Qualitative data management and analysis within a data repository</article-title>
          ,
          <source>Western Journal of Nursing Research</source>
          <volume>42</volume>
          (
          <year>2020</year>
          )
          <fpage>640</fpage>
          -
          <lpage>648</lpage>
          . URL:https://doi.org/10.1177/019394591988170 6.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Henrich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Däberitz</surname>
          </string-name>
          ,
          <article-title>Using a query language to state consistency constraints for repositories</article-title>
          ,
          <source>in: Database and Expert Systems Applications</source>
          , 7th International Conference, DEXA '
          <volume>96</volume>
          , volume
          <volume>1134</volume>
          ofLecture Notes in Computer Science, Springer,
          <year>1996</year>
          , pp.
          <fpage>59</fpage>
          -
          <lpage>68</lpage>
          . URL: https://doi.org/10.1007/BFb003467 0.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Trisovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Mika</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Boyd</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. S.</given-names>
            <surname>Feger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Crosas</surname>
          </string-name>
          ,
          <article-title>Repository approaches to improving the quality of shared data and code</article-title>
          ,
          <source>Data</source>
          <volume>6</volume>
          (
          <year>2021</year>
          )
          <fpage>15</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>T. B. Hashimoto</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Zhang</surname>
          </string-name>
          , P. Liang,
          <article-title>Unifying human and statistical evaluation for natural language generation</article-title>
          ,
          <source>CoRR</source>
          (
          <year>2019</year>
          ). URLh:ttp://arxiv.org/abs/
          <year>1904</year>
          .0279.2
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>H.</given-names>
            <surname>Knublauch</surname>
          </string-name>
          ,
          <article-title>SPIN - overview and motivation, W3C Member Submission (</article-title>
          <year>2011</year>
          ). URL: https://www.w3.org/Submission/spin-overview, visited
          <year>2022</year>
          /09/07.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P.</given-names>
            <surname>Hitzler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Krötzsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Parsia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. F.</given-names>
            <surname>Patel-Schneider</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rudolph</surname>
          </string-name>
          , et al.,
          <article-title>OWL 2 web ontology language primer, W3C recommendation (</article-title>
          <year>2009</year>
          ). URhLt:tps://www.w3.org/TR/ owl2-primer, visited
          <year>2022</year>
          /09/07.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>E.</given-names>
            <surname>Sirin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Parsia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. C.</given-names>
            <surname>Grau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kalyanpur</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Katz</surname>
          </string-name>
          ,
          <article-title>Pellet: A practical OWL-DL reasoner</article-title>
          ,
          <source>J. Web Semant</source>
          .
          <volume>5</volume>
          (
          <year>2007</year>
          )
          <fpage>51</fpage>
          -
          <lpage>53</lpage>
          . URL:https://doi.org/10.1016/j.websem.
          <year>2007</year>
          .
          <volume>03</volume>
          .004.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>I.</given-names>
            <surname>Horrocks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Parsia</surname>
          </string-name>
          , U. Sattler,
          <article-title>OWL 2 web ontology language direct semantics, W3C recommendation (</article-title>
          <year>2012</year>
          ). URL:https://www.w3.org/TR/owl2-direct-semant,icvsisited
          <year>2022</year>
          /09/07.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>J.</given-names>
            <surname>Wright</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. J. R.</given-names>
            <surname>Méndez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Haller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Taylor</surname>
          </string-name>
          , P. G. Omran,
          <article-title>Schímatos: A SHACLbased web-form generator for knowledge graph editing</article-title>
          ,
          <source>in: The Semantic Web - ISWC</source>
          <year>2020</year>
          , volume
          <volume>12507</volume>
          ofLecture Notes in Computer Science, Springer,
          <year>2020</year>
          , pp.
          <fpage>65</fpage>
          -
          <lpage>80</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>030</fpage>
          -62466-
          <issue>8</issue>
          _
          <fpage>5</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>E.</given-names>
            <surname>Stani</surname>
          </string-name>
          ,
          <article-title>Metadata quality: Generating SHACL rules from UML class diagrams</article-title>
          ,
          <source>in: Proceedings of the 2018 International Conference on Dublin Core and Metadata Applications</source>
          , DCMI'
          <fpage>18</fpage>
          , Dublin Core Metadata Initiative,
          <year>2018</year>
          , p.
          <fpage>63</fpage>
          -
          <lpage>64</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>