<!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>
      <journal-title-group>
        <journal-title>R. Rahman);</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>RDF Difer: Configurable Change Reporting for RDF Vocabularies</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Rashif Rahman</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jana Ahmad</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>C. Maria Keet</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Eugeniu Costetchi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Meaningfy SARL</institution>
          ,
          <addr-line>61 route de Fischbach, Lintgen</addr-line>
          ,
          <country country="LU">Luxembourg</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2025</year>
      </pub-date>
      <volume>000</volume>
      <fpage>0</fpage>
      <lpage>0001</lpage>
      <abstract>
        <p>Identifying and interpreting changes in RDF vocabularies is essential for provenance, auditing, and collaborative knowledge engineering. Traditional difing approaches, often operating at the line level, fail to capture semantically meaningful changes without awareness of schema constraints and application profiles (APs). This paper presents RDF Difer, a dif tool for schema-aware comparison of RDF vocabularies, explicitly designed to leverage configurable templates for APs to maximise portability and precision. The tool is built upon the SPARQL-based semantic change detection algorithms of skos-history, and integrates the template-based, data-driven report generation capabilities of eds4jinja2. Configuration of the AP templates along with their automated SPARQL query synthesis is facilitated by the dif-query-generator (dqgen). This architecture enables dynamic, profile-driven vocabulary difing, ensuring that comparisons are both scalable and semantically relevant. We introduce the rationale, design, and architecture of RDF Difer, and demonstrate its value by comparing it to other difing tools using releases of the eProcurement ontology (ePO). Availability: RDF Difer is open-source and available at https://github.com/meaningfy-ws/rdf-difer-ws Change detection or difing of evolving data is a foundational task in IT. Difing enables change tracking, auditing, and collaborative data management (a la Git). However, traditional difing methods lack a comprehensive change reporting mechanism and typically rely on syntactic or line-based comparisons, failing to account for the rich context encoded in RDF-based knowledge organisation systems. As RDF vocabularies evolve, both tracking and reporting on schema-level changes become essential for collaborative knowledge engineering. Yet, conventional approaches struggle to surface semantically meaningful change reports, especially in contexts guided by schema constraints and Application Profiles (APs). Specifically, while dif tools exist for OWL [ 1] and RDF instance data [2], they are typically either mostly syntactic or tailored to expressive OWL ontologies, and miss changes that matter in lightweight vocabularies like SKOS, such as label updates, hierarchy adjustments, or annotation changes. An OWL-specific dif tool may not surface label deprecations, while an RDF-specific one may lack certain semantic awareness needed to detect schema-level evolution (see below for a tool comparison). Lightweight ontologies and vocabularies can therefore benefit from a difing solution that provides a middle ground between line changes and axiomatic diferences, with a configurable reporting framework for diferent APs. To address this gap, we introduce RDF Difer, a schema-aware RDF dif tool that supports dynamic, profile-driven vocabulary comparisons through a web API and a GUI. It leverages configurable AP templates and SPARQL-based change detection to support dynamic, context-sensitive comparisons. Building on the foundations of skos-history [3] and facilitating report generation (in HTML or JSON) via</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;RDF</kwd>
        <kwd>Knowledge Graph Evolution</kwd>
        <kwd>Linked Data Schema Evolution</kwd>
        <kwd>Change Tracking</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>a SPARQL-enabled Jinja templating extension eds4jinja2,1 the toolchain enables a modular architecture
for vocabulary change detection and reporting.</p>
      <p>In this paper, we first assess related work (Section 2) and then describe the tool in Section 3, with
the design decisions and architecture (Section 3.1), a use case with the eProcurement ontology, and a
comparison with OWL Diference (Section 3.2). Section 4 presents our conclusions.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related Work</title>
      <p>A variety of tools and research approaches have been proposed to compute diferences between RDF
graphs and between OWL ontologies, using tailor-made algorithms, query-based approaches, and
syntactic line-by-line comparisons; see Table 1. These solutions address diverse needs such as ontology
versioning, synchronisation, and collaborative editing. We briefly summarise key points in this section.</p>
      <p>
        Computing diferences for RDF graphs are typically command-line-based (e.g., Quit Dif [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], rdfdif
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] or integrated in other tools (Quit Store [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and Jena). Alternatively, they may compute triple-level
diferences [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which lack semantic context. Geared towards the SKOS flavour of RDF but adaptable
in principle, skos-history [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] describes an approach for producing RDF deltas using SPARQL MINUS
operations and named graphs. Tools to compute the diference for OWL are more sophisticated, because
they seek to compute also the semantic (entailment) diferences to some extent. For instance, Ecco [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
combines structural and semantic analysis, categorising changes like strengthenings, weakenings,
and additions, while OWLDif [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] provides justification-based explanations for changes, emphasising
semantic precision. OWL Diference [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], a plugin to the Protégé ontology editor, focuses on detecting
structural and hierarchical changes, closer to the basic needs of the general RDF audience.
      </p>
      <p>Most of these tools were easily deployable, with the exception of Ecco and OWLDif, which required
advanced Java software setup know-how due to the lack of release binaries and inconsistent instructions.
1https://github.com/meaningfy-ws/eds4jinja2</p>
    </sec>
    <sec id="sec-3">
      <title>3. The Tool: RDF Difer</title>
      <p>
        RDF Difer ofers schema-aware change tracking, application profile-based difing for RDF vocabularies
and ontologies, including SKOS and some OWL features. Inspired by skos-history [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], RDF Difer
extends the concept of SPARQL-based change detection to provide template-driven, semantic difs that
reflect meaningful changes in resources, properties and values, enabling structured changelogs and
easing change reporting. It is a Python web application supported by additional tools and libraries,
collectively forming a pipeline.
      </p>
      <sec id="sec-3-1">
        <title>3.1. System Design and Implementation</title>
        <p>An overview of the RDF Difer pipeline architecture is shown in Fig. 1. The dif-query-generator
(dqgen) allows defining templates for APs through CSV files listing all of the resource types (classes and
properties) to detect. SPARQL queries, HTML and JSON templates are then automatically generated for
each resource and change type. Given an AP, RDF Difer executes the relevant queries, adopting the
skos-history technique with the load-versions script to populate delta graphs, and automating the
difing logic. RDF Difer allows the user to upload the files to be compared while associating difing
metadata, and generates one or more reports with a desired AP and format. The computed dif results
are then made available for download. HTML reports are structured by resource category and change
type, ofering human-readable summaries, while JSON is intended for machine consumption.</p>
        <p>The dif types supported are: addition, deletion, update, move and change. An update is the change of
a value of a literal or object, while a move is the shifting of a value from one resource (class or property)
to another, and a change refers to the shifting of a value from one property to another within the same
resource. Language tags are also accounted for.</p>
        <p>We model change as a state transition operator (⇒) between old (on the left) and new (on the right),
and either old or new is checked, or both are. Note that the changes are instances of patterns, but not
instances in the sense of an individual in the RDF graph. To indicate this distinction in the inventory
of types of changes (see Table 2), we use  (subject) and  (object/value) in the domain and range
position/filler of property  , which may be subscripted if more than one appears in the pattern, with 1
≤  ≤  (and  ∈ N). In addition,  ′ denotes the secondary predicate in a property chain (‘reified’ in
SKOS terms) that is indicated with a / between properties, @ the language tag of the value, if present,
and ∅ denotes the null (i.e., absent before or after the change).</p>
        <p>The system supports running in a microservice setting using Docker. The stack includes: a Flask API
and server-rendered UI, which are served by Gunicorn; Celery for asynchronous task management;
an RDF triplestore (Fuseki); Redis for asynchronous task queues; Docker Compose for microservices
orchestration; and Traefik for production deployments.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Use and Evaluation</title>
        <p>The aims of this brief evaluation are to 1) show that it works for a business case-based evaluation, 2)
compare it against the identified case’s current practices, and 3) compare RDF Difer against the relative
closest other dif tool while demonstrating diferences.
condition checking and r/new chk: Right condition checking, i.e., whether an existence or non-existence check
applies on that side of the transition operator.</p>
        <sec id="sec-3-2-1">
          <title>Change pattern</title>
          <p>Addition
Deletion
Update
Move (sub- –
ject)
Change
(property)
–
Elem.
∅ ⇒ 
 ⇒ ∅
–
no
tag
∅ ⇒ 

 1
 2
 1
 2
 1</p>
          <p>2

⇒ ∅
⇒
⇒
⇒
lang. lang. tag
reif p val
lang. tag</p>
          <p>reif
∅ ⇒ 
–
–
–
–
l/old
chk
r/new
chk
–
x
x
x
x
x
–
x
x
x</p>
          <p>
            The use case selected is the eProcurement Ontology (ePO)2, an ontology being developed as part
of the Digital Europe Project, and used in several projects concerning EU public procurement. It has
multiple versions, extensive documentation, and a lightweight ‘core’ profile among its artefacts. They
originate from a UML model converted by model2owl3 into OWL (RDF files in Turtle format) of varying
OWL expressivity, of which the ePO-core makes barely any use of OWL-specific constructs. To show
the working of RDF Difer, we compare the last two stable minor versions of ePO-core, being v4.1.0 and
v4.2.0, which have a suficient changeset to compare. We also compare the output against the oficial
changelog4 and note evident diferences. Based on our practical review (recall Table 1), we chose the
Protégé plugin OWL Diference [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ] as the best contender to compare with. We ran the aforementioned
selected ePO versions, and compared the two tools on their usage, time, and output.
          </p>
          <p>The results concerning the reporting of the changes at the level of the language features are shown in
2https://docs.ted.europa.eu/epo-home/index.html; last accessed 4-6-2025.
3https://github.com/OP-TED/model2owl; last accessed 4-6-2025
4https://docs.ted.europa.eu/EPO/4.2/release-notes.html#_epo_core; last accessed 4-6-2025.
• Clear grouping and categorisation
• Export, search, and sort functionality
• No grouping or categorisation
• No copy, export, search or sort
• No metadata changes
• Slow
• No summary of modifications
e.g., it reports only 9 object properties added versus 22 detected by RDF Difer. The changelog also
misclassified epo:isSMESuitable as newly added, even though it was present in previous versions.
Conversely, the manual ePO changelog lists the cardinality constraints and domain/range for every
change, whereas OWL Diference and RDF Difer do not report them at all.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusions</title>
      <p>We introduced RDF Difer, a semantic dif tool tailored to RDF vocabularies. By enabling profile-based
configuration and semantic-aware queries, it fills a longstanding gap in RDF and lightweight ontology
versioning. The demo will showcase RDF Difer’s API, UI, and usage on real-world vocabularies.</p>
      <p>Future work includes a more user-friendly interface for the dqgen component, additional predefined
reporting templates, support for the OWL 2 EL profile, and possible performance optimisation via
caching and parallelisation.</p>
      <sec id="sec-4-1">
        <title>Declaration on Generative AI</title>
        <p>During the preparation of this work, two of the four authors used Windows Copilot and Writefull in
order to: Grammar and spelling check, Paraphrase and reword. After using these services, those
authors reviewed and edited the content as needed and take full responsibility for the publication’s content.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P.</given-names>
            <surname>Kremen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Smíd</surname>
          </string-name>
          ,
          <string-name>
            <surname>Z. Kouba,</surname>
          </string-name>
          <article-title>OWLDif: A practical tool for comparison and merge of OWL ontologies</article-title>
          ,
          <source>in: Proc. of DEXA'11</source>
          , IEEE Computer Society,
          <year>2011</year>
          , pp.
          <fpage>229</fpage>
          -
          <lpage>233</lpage>
          . Toulouse, France,
          <source>Aug. 29 - Sept. 2</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>N.</given-names>
            <surname>Arndt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Naumann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Radtke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Martin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Marx</surname>
          </string-name>
          ,
          <article-title>Decentralized collaborative knowledge management using git</article-title>
          ,
          <source>Journal of Web Semantics</source>
          <volume>54</volume>
          (
          <year>2019</year>
          )
          <fpage>29</fpage>
          -
          <lpage>47</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Neubert</surname>
          </string-name>
          , skos-history:
          <article-title>Exploiting web standards for change tracking in knowledge organization systems</article-title>
          ,
          <source>in: Proc. of WWW'16, WWW '16 Companion</source>
          ,
          <year>2016</year>
          , p.
          <fpage>275</fpage>
          -
          <lpage>276</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>T.</given-names>
            <surname>Redmond</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Vendetti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Horridge</surname>
          </string-name>
          , OWL Diference Plugin,
          <year>2015</year>
          . URL: https://github.com/ protegeproject/owl-dif, last accessed:
          <fpage>11</fpage>
          -
          <lpage>6</lpage>
          -2025.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R. S.</given-names>
            <surname>Gonçalves</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Parsia</surname>
          </string-name>
          , U. Sattler,
          <article-title>Ecco: A hybrid dif tool for OWL 2 ontologies</article-title>
          , in
          <source>: Proc. of OWLED'12</source>
          , volume
          <volume>849</volume>
          <source>of CEUR-WS</source>
          ,
          <year>2012</year>
          . Heraklion, Crete, Greece, May
          <volume>27</volume>
          -28,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>N.</given-names>
            <surname>Arndt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Radtke</surname>
          </string-name>
          ,
          <article-title>Quit dif: Calculating the delta between rdf datasets under version control</article-title>
          ,
          <source>in: Proc. of SEMANTiCS'16</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          ,
          <year>2016</year>
          , p.
          <fpage>185</fpage>
          -
          <lpage>188</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Apache</given-names>
            <surname>Jena</surname>
          </string-name>
          , rdfdif,
          <year>2025</year>
          . URL: https://jena.apache.org/documentation/tools/ #
          <article-title>other-handy-command-line-tools, last accessed: 3-7-2025.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ahn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.-H.</given-names>
            <surname>Im</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-H.</given-names>
            <surname>Eom</surname>
          </string-name>
          , et al.,
          <article-title>G-Dif: A Grouping Algorithm for RDF Change Detection on MapReduce</article-title>
          , in: Semantic Technology, Springer,
          <year>2015</year>
          , pp.
          <fpage>230</fpage>
          -
          <lpage>235</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>