<!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>An Algorithm for Resolution of Common Logic (Edition 2) Importation Implemented in OntoMaven</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Tara ATHAN</string-name>
          <email>taraathan@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ralph SCHAEFERMEIER</string-name>
          <email>schaef@inf.fu-berlin.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Adrian PASCHKE</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Athan Services</institution>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Freie Universitaet Berlin</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper describes the OntoMaven implementation of a resolution algorithm for importation in the ISO Common Logic (Edition 2) language. OntoMaven is a plug-in based extension of the Apache Maven software build tool for the development and reuse of knowledge base (KB) artifacts, such as ontologies and rule bases, managed in distributed (Web) repositories, such as Github and Subversion. The OntoMaven CL2 import plug-in contributes a proof-of-concept implementation of CL2 importation semantics that handles circular imports.</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>Common Logic</kwd>
        <kwd>importation</kwd>
        <kwd>OntoMaven</kwd>
        <kwd>circular importation</kwd>
        <kwd>domain restriction</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>QN (G) := domain(N, G) is a domain restriction with domain name N applied to a
text G.</p>
      <p>MN := import(N) is an importation of the title N.</p>
      <p>We also make use of composition notation and some shortcuts:</p>
      <p>L(N, G) := X(ttl(N, G)) is a titling text.
? is a canonical unsatisfiable text, e.g. a text construction whose argument is the
empty disjunction; G is unsatisfiable iff G ?.</p>
      <p>A B(G) := A(B(G))
QhN1,:::, Nmi := QN1 : : : QNm</p>
      <p>QS := QhN1,:::, Nmi, where S = fN1,: : :, Nmg with N j &lt; N j+1.</p>
      <p>In the last item, WLOG we make use of some total ordering, e.g. lexicographic, on the
countable vocabulary V .</p>
      <p>As defined in the CL2 Standard, the entailment relation ( ) holds fundamentally
between corpora - sets of texts; however, it is left unspecified how a corpus is to be
delineated in practice. In this proof-of-concept implementation, we use the file system
as our mechanism for corpus delineation - a corpus is the set of XCL2 documents in a
directory.</p>
      <p>Instead of named texts, CL2 has titlings, ttl(N, G). The content G is not considered to
be asserted unless it is imported, and the semantics of the assertions is affected by any
domain restrictions that are applied to that importation, so that in general QS(MN ) QS0 (MN )
for S 6= S0. Expressions that occur within some titling are called inaccessible; otherwise,
they are accessible. Unlike OWL and RDF, Common Logic is not closely tied to the
physical structure of the Web or its standards and conventions. In particular, in titling
ttl(N, G) it is not assumed that N is an IRI. If N is an IRI, it is not assumed that G may be
dereferenced from that IRI. Here, we assume that titles are IRIs; however, our methods
could be easily extended to the general case.</p>
      <p>CL2 importations are allowed to be circular; e.g., the content of a titling may import
itself, as in L(N, MN ), and the content of a pair of titlings may import each other, as
in X(L(N, MM), L(M, MN )). Because of this, the CL2 semantics employs a fixed point
approach to define the semantics of importations (see the Appendix).</p>
      <p>A common strategy for handling circular importations in other languages, e.g. in
OWL, is to ignore repetitions. However, since CL2 importation within a domain restriction
may change the semantics of the imported text, more complex criteria must be satisfied
in order to avoid circularity.</p>
      <p>Our resolution of CL2 importation iteratively applies a semantics-preserving
transformation R to a corpus C to obtain a sequence Cn = Rn(C ), n =0, 1, : : :, terminating when
a fixed point (Cm = Cm+1) is reached or inconsistent titlings (different texts assigned to
the same title, e.g. X (L(N, G), L(N, G0))) are found (in which case, C ?).</p>
      <p>
        In the CL Standard, as well as its revision CL2, multiple dialects (serializations) are
presented. In our implementation, we handle only the XML-based syntax XCL2, although
this approach could be applied to CLIF2 or other CL2 dialects through translations
based on their shared abstract syntax. The XML-based syntax of XCL2 allows us to take
advantage of the many standards, and implementations thereof, available for manipulating
XML. In particular, canonical XML [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] is employed to compare XCL2 texts for syntactic
equivalence. Before determining the canonical XML form, syntactic elements that are
external to the CL2 abstract syntax, such as key attributes for element labels, and XML
comments, are removed. CURIEs are resolved according to their prefix declarations, and
the optional symbol element is made explicit in all Name and Data elements.
      </p>
    </sec>
    <sec id="sec-2">
      <title>1. Approach</title>
      <p>
        The contribution of this paper is the proof-of-concept implementation of the
OntoMaven [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] CL2 import plug-in with a resolution algorithm that handles circular
importations.
      </p>
      <p>
        OntoMaven [
        <xref ref-type="bibr" rid="ref10 ref8 ref9">8–10</xref>
        ] extends the Apache Maven software project management tool [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
and adapts it for knowledge base (KB) project management. OntoMaven dynamically
downloads KB artifacts (ontologies, rule bases, semantic data resources, etc.) and plug-ins
for ontology/rule engineering from distributed OntoMaven repositories and manages them
in a local development cache for further reuse and development. OntoMaven repositories
are extensions of Maven repositories (supporting e.g. Github, Subversion and folder-based
document management systems) with ontology versioning and maintenance metadata for
the build life cycle management of KB artifacts.
      </p>
      <p>Like Maven, OntoMaven is also based around the central concept of a build lifecycle
which is made up of build phases representing certain stages in the development life cycle.
It therefore extends an OntoMaven declarative XML-based POM (Project Object Model)
to describe a KB project being build, its dependencies on required external KB artifacts
and components which are published in distributed repositories, the build order, and the
required plug-ins which implement and execute the goals defined for each project build
phase. A goal represents a specific task which contributes to the build and management of
an OntoMaven KB project. OntoMaven is using Maven’s extensible plug-in architecture
for implementing predefined goals which are performing certain well-defined tasks in
different build phases, such as import and dependency management of KB artifacts from
distributed repositories, versioning with semantic difference computation, automated
documentation and testing, and deployment etc. The focus of this section is on the CL2
import plug-in which implements an importation resolution algorithm.</p>
      <sec id="sec-2-1">
        <title>1.1. Algorithm</title>
        <p>The importation resolution algorithm iteratively transforms a given corpus of CL2
texts into a logically-equivalent corpus by resolving each accessible N importation
provided there is a unique accessible N titling.</p>
        <p>The import resolution algorithm is initialized with a set of XCL2 documents Docs
which constitute the text corpus. The documents are contained in a data structure
CL2-Corpus, which reflects the state of the corpus during the transformation process (see
Listing 1).</p>
        <p>The documents of the corpus may contain XInclude directives, either created by an
earlier application of the importation resolution algorithm, inserted manually, or created
by some other application. To assist in following these include directives, the corpus data
structure also contains an XML Catalog Catalog and an Includes map. The Catalog is a
map from the IRIs referenced by the XInclude directives to the local paths of any cached
copies of the included texts. When the corpus is loaded, the locally-cached includes are
loaded into memory in the Includes map, using their local path as the key, and uncached
includes are downloaded from their remote locations, if possible, and added to the Catalog
and Includes maps as well. Failure to obtain an included text causes an Exception to be
thrown.</p>
        <p>CL2-CORPUS(Docs;Catalog; Includes)
1 INIT(Docs)
2 T Empty Map
3 for each document d in Docs
4 do IDENTIFY-AVAILABLE-TITLINGS(d:root; T )
5 IDENTIFY-AVAILABLE-TITLINGS(e; T )
6 if e is Titling
7 then if T contains key e.name
8 then if e.content = T .get(e.name)
9 then return
10 else Conflicting Titling Error
11 else T .add(e.name, e.content )
12 return
13 if e is Include
14 then
15 i Includes.get(Catalog.get(e.href))
16 IDENTIFY-AVAILABLE-TITLINGS(i; T )
17 return
18 for each node c in e.children
19 do if c is Restrict or Construct
20 then IDENTIFY-AVAILABLE-TITLINGS(c; T )</p>
        <sec id="sec-2-1-1">
          <title>Listing 1. The initialization of the CL text corpus structure</title>
          <p>1 PROCESS-IMPORTS(T )
2 while resolvable accessible importations exist
3 do for each document d in Docs
4 do R Empty Stack
5 PROCESS-IMPORT(d:root; R; T )
Listing 2. The Process-Imports function constitutes the entry point to the recursion.</p>
          <p>Titlings initially accessible are collected into a set T by traversing the node tree of
each document d, starting from the root element d:root, until the first Titling element
in the subtree is encountered. Nodes other than the text elements Restrict and Construct
also terminate their subtree recursion. Duplicate titlings are ignored, while inconsistent
titlings lead to an error message and the premature termination of the importation process.</p>
          <p>Listing 2 shows the entry into the recursion. Resolution of available imports is
accomplished by traversing the structural elements (root and text elements) of each
document in the corpus (XInclude directives encountered in this traversal are followed)
and substituting each accessible importation occurrence with the content of a titling for
the imported title, if such a titling is accessible anywhere in the corpus (see Listing
3). Substitution in this context means that the titling content is copied into an external
document, and a reference to the external files is established by inserting an XML include
(XInclude) directive in place of the CL2 importation.</p>
          <p>In order to avoid duplicate importations, which could produce non-terminating loops,
whenever an importation is resolved with an XInclude directive, its generated URI
(described below) is added to Catalog prior to entry into a recursion over the subtree of the
imported text. If the generated URI for the current Import element is found in Catalog,
e: an element, R: the restriction context stack, T : the titling context stack.
includeURI GENERATE-INCLUDE-URI(e.name, R)
if Catalog contains includeURI
then Duplicate import detected, replace e with empty Construct
else
i new xml include element
i.href includeURI
replace e with i
newtext clone of T .get(e.name)
localURI a local path for caching newtext
Catalog.add(includeURI, localURI)
Includes.add(localURI, newtext)
IDENTIFY-AVAILABLE-TITLINGS(newtext; T )</p>
          <p>PROCESS-IMPORT(newtext; R; T )
a duplicate importation has been detected, and an empty text construction is inserted in
place of the Import element.</p>
          <p>If a Titling element is encountered, there is no need to continue the recursion in
the current branch, since all importations encountered in the content would be titled.</p>
          <p>Each Import element, after checking for duplicates, is replaced with an include
element, while the content of the imported titling is added to an Includes structure, which
is in turn part of the CL2-Corpus structure and stores all imported titled texts.</p>
          <p>Include elements may refer to texts that contain importations or nested titlings
which have become accessible due to their importation. Therefore, the text referenced
by the include is retrieved from the Includes structure and the recursion continues in the
content of the included text, after newly available titlings are added to T .</p>
          <p>
            The XML Catalogs standard [
            <xref ref-type="bibr" rid="ref12">12</xref>
            ] is used to later allow to resolve the identifier of the
included resource to their physical location on disk.
          </p>
          <p>When an Include element is encountered directly in subtree recursion, the included
text is retrieved from the Includes structure and the recursion continues in the included
text.</p>
          <p>The history of domain restrictions is traced using a stack R. For each entry into a
restricted context (within a Restricts element) the domain of the restriction is pushed onto
1 uri ”http://ontomaven.org?uri=” + URLENCODE(n)
2 Rnormalized R sorted alphabetically, without duplicates
3 for i 1 to R.length
4 do uri uri + ”;dom” + i + ”=” + URLENCODE(Rnormalized[i])
5 return uri</p>
        </sec>
        <sec id="sec-2-1-2">
          <title>Listing 4. The generation of an include URI.</title>
          <p>the stack and deleted upon leaving the restricted context.</p>
          <p>The scheme for constructing the system identifiers for the included resources is
implemented in the procedure generate-include-uri, which is called from line 4 in the
Process-Import procedure (see Listing 4).</p>
          <p>As pointed out in the Appendix, the order of nestings of domain restrictions has
no effect on the semantics of the resulting text, and it is sufficient to ensure that every
arbitrary sequence of domain restrictions under which an importation is processed is
recognized as the same domain restriction, as long as the members of the sequence are
the same, regardless of their order or duplications. To achieve this, it is sufficient to sort
the domains of the nested domain restrictions in alphabetical order and purge duplicates
(line 2).</p>
          <p>The system identifier for a resource that contains a text resulting from resolution
of an importation of titled text with the title http://example.org/myText-A1#a
(without domain restrictions) would be http://ontomaven.org?uri=http\%3A\%2F\
%2Fexample.org\%2FmyText-A1\%23a.</p>
          <p>The system identifier for the same text imported both under the nested
domain restrictions http://example.org/myDomain-N1 and http://example.org/
myDomain-N2, as well as under the nested domain restrictions http://example.org/
myDomain-N2, http://example.org/myDomain-N1 would be http://ontomaven.
org?uri=http\%3A\%2F\%2Fexample.org\%2FmyText-N1\%23a;dom1=http\%3A\
%2F\%2Fexample.org\%2FmyDomain-N1;dom2=http\%3A\%2F\%2Fexample.org\
%2FmyDomain-N2.</p>
          <p>Determination of equivalent titlings is accomplished on the syntactical level by
following these steps:
resolution of all CURIES and removal of prefix declarations
stripping out of XML comments and processing instructions
removal of @key attributes
making the symbol edge explicit in non-IRI Names and Data elements.
transformation to canonical XML form</p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>1.2. Integration into OntoMaven</title>
        <p>
          The implementation of the CL2 importation algorithm described in this paper has
been incorporated in a plug-in to the Maven build management system and complements
the OntoMaven suite, which provides support for lifecycle management of OWL ontolgies
and related artifacts in the form of importation, semantic versioning [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], automated
entailment unit testing, consistency checking, aspect-oriented modularization [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], and
documentation generation, in conjunction with automated dependency resolution and
build support provided by Maven.
        </p>
        <p>Such tasks are referred to as goals in Maven terminology, and the CL2
importation task has been implemented in the form of such a Maven goal. The invocation and
parametrization of Maven goals, as well as the rest of the build cycle, is controlled in a
declarative way, using XML-based POM (Project Object Model) descriptors.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>2. Related Work</title>
      <p>
        In software engineering circular dependencies between imports of software artifacts
are widely considered as problematic. Several solutions on how to find and avoid
circular dependencies have been proposed, including [
        <xref ref-type="bibr" rid="ref15 ref16 ref17 ref18">15–18</xref>
        ]. Tools with built-in support
dependencies are e.g., Lattix [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and JDepend [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <p>
        The halting problem of cyclic imports is also closely related to infinite loops in
recursion, as it occurs e.g. in several backward-reasoning resolution algorithms such
as SLDNF. Much work has been done in this field to define restriction properties (on
the dependency graph whose vertices are the predicate symbols from a logic program)
for which SLDNF then is complete, such as e.g. stratification. Other approaches use
alternating fixpoint semantics to capture the negation of positive existential closure (e.g.
for transitive closure), such as the constructive characterization of the well-founded
semantics for normal logic programs in terms of alternating fixpoint partial models [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ],
as well as negation of positive universal closure with alternating fixpoint semantics for
general logic programs (negation in the conclusion) [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
      </p>
      <p>The general problem of cycle detection also occurs in graphs and several algorithms
have been proposed such as Floyd’s cycle-finding algorithm or Brents’s algorithm.</p>
      <p>
        From the perspective of modular ontologies or knowledge bases, it has been
recognised since at least the 90’s [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] that circular dependencies may be considred a desirable
feature rather than a problem to be avoided. Circular importations are acceptable in
OWL [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. CL2 titlings have similarities to named graphs in RDF 1.1 [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], in that RDF
names (IRIs or blank nodes) can perform a dual role of denoting entities in the universe of
reference and independently naming graphs. However, the CL2 approach to titling differs
from that of RDF 1.1 in that RDF Datasets, expressions which create the associations
between names and graphs, are not given a model-theoretic semantics, while the CL2
titlings are integrated into the model-theoretic semantics.
      </p>
      <p>The Common Logic community has chosen to embrace circular importations and
semantics-altering importations into domain restrictions, together with the difficulties
in implementation that arise from their interaction. The implementation presented here
differs from previous approaches to circular dependencies due to the special
requirements imposed on the resolution by importation within domain restriction, as well as the
properties provide by the CL2 semantics that permit termination of the importation cycles.</p>
    </sec>
    <sec id="sec-4">
      <title>3. Conclusion</title>
      <p>
        The presented research follows a software engineering-oriented research methodology
grounded in Design Science research. It contributes with a new practical design artifact,
the OntoMaven CL2 plug-in, being a proof-of-concept implementation for the rigorous
ISO Common Logic (Edition 2) importation resolution that handles circular importation.
Future work will include
integration of importation resolution with a mechanism to assemble a corpus from
the IRIs of texts published on the internet (e.g. an XML configuration file, or a
DOL [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] expression);
extension to handle non-IRI titles;
extension to other CL2 dialects;
complexity analysis and optimization of performance (e.g. by tracking of the paths
and restriction history of unresolved importations for use during the recursive
resolution);
profiling for applications that use CL2 importations;
implementation of the construction of the closure core and canonical corpus, as
defined in the Appendix.
      </p>
      <p>The first point is already partly addressed by Maven’s dependency resolution mechanism
but is only applicable under the precondition that the external texts are published as Maven
artefacts in Maven repositories. Future work will be focused on a generalization of this
approach in order to cover cases where the external texts are published as general web
resources, as well as generating transformed corpora in preparation for inference.</p>
    </sec>
    <sec id="sec-5">
      <title>A. Appendix</title>
      <p>The correctness of the importation resolution algorithm presented above depends
on the corpus Cn at the n-th step of the importation resolution process being logically
equivalent to the original corpus C0 for all n. This may be proved from two theorems: Th.
9 shows that substituting the content of an accessible N titling in place of an occurrence of
an accessible N importation is a semantics-preserving transformation. Th. 11 shows that
each step of the importation resolution algorithm is semantics-preserving. The termination
of the importation resolution algorithm, proved in Th. 10, depends on the achievement of
a fixed point after a finite number of steps.4</p>
      <p>
        From [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], we obtain the following definitions. An importation fixed-point under a
title mapping ttl (from names to texts) is a corpus C such that if G is a text in C then C
contains every text G0 derived from G by substituting ttl(N) in place of one occurrence
of an accessible N importation. The importation closure of a corpus C under a title
mapping ttl is the intersection of all importation fixed-points under ttl that contain C .
      </p>
      <p>
        Let T be the set of texts in some CL2 language L with vocabulary V . Following [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ],
we adopt a simpler semantics than [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], which we call the structural semantics of L . We
define a structural pre-interpretation I of L to be a mathematical structure that has a
title mapping ttlI from names in V to texts in T , and assigns a Boolean truth value TVI (G)
to every text G 2 T . A corpus C T is satisfied by a structural pre-interpretation I
(denoted I st C ) if and only if TVI (G) = true for every text G in CloI (C ), the importation
closure of C under the title mapping ttlI .
      </p>
      <p>Definition 1. Let a structural interpretation I be a structural pre-interpretation that
satisfies the following constraints: for any names N, Ni 2 V , S any finite set of names in
V , texts G, Gi 2 T , and sentences, statements or texts Ei 2 L ,
(a) TVI (MN ) = true.
(b) TVI (L(N, G)) = true iff ttlI (N) = G.
(c) If G is an importation or titling, then TVI (G) = TVI (QS(G)).
(d) TVI (X()) = TVI (QS(X())) = true.
(e) TVI (QS(X(G))) = TVI (QS(G)).
(f) TVI (X(E1, : : :, En)) = ^in=1TVI (X(Ei)), n 1.</p>
      <p>4Due to space limitations, we provide proofs for only some of the Theorems stated here. A journal paper with
complete proofs is in preparation.
(g) TVI (QS(X(E1, : : :, En))) = TVI (X(QS(X(E1)), : : :, QS(X(En)))), n
(h) TVI (QS QN1 QN2 (G)) = TVI (QS QN2 QN1 (G)).
The relevance of this structural semantics to the CL2 semantics is embodied in the
following results.</p>
      <p>Theorem 2. For every CL2 interpretation I there is a structural interpretation Struc(I)
that has an equivalent satisfaction relation. That is, for any C T , I C iff Struc(I) st
C .</p>
      <p>
        Proof. Given I, we may define a structural interpretation J = Struc(I) having the same
title mapping, where for any text G 2 T , TVJ(G) = true iff I(G) = true and ArgC(G) 2
U D [ U D , as defined in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. It follows from the CL2 semantics that J satisfies the
structural interpretation constraints.
      </p>
      <p>st</p>
    </sec>
    <sec id="sec-6">
      <title>Corollary 1. If C1</title>
      <p>C2, then C1
C2.</p>
    </sec>
    <sec id="sec-7">
      <title>Corollary 2. If C1</title>
      <p>st</p>
      <p>C2, then C1</p>
      <p>C2.</p>
      <p>In order to demonstrate that the transformations of the importation resolution algorithm
preserve (structural) semantics, we will make use of some auxiliary definitions. We define
the following subsets of T .</p>
      <p>Tttl := fG 2 T : G = L(N, D) for some N 2 V , D 2 T g.</p>
      <p>Tprop0 := fG 2 T : G = X(E)g for some sentence or discourse statement Eg.
Tprop := f G 2 T : G = QS(G0) for some G0 2 Tprop0 and some finite S V g.
Timp0 := fG 2 T : G = MN for some N 2 V g.</p>
      <p>Timp := f G 2 T : G = QS(G0) for some G0 2 Timp0 and some finite S V g.
We define the set of elementary texts Telem of L to be the union of Tttl, Tprop and Timp.
A formal corpus is a corpus of elementary texts.</p>
      <p>Theorem 3. For every text G 2 T , there is a unique finite formal corpus F (G) Telem
that may be derived from G by a finite sequence of the following transformations, which
preserve structural semantics:
replacement of a corpus member that is a text construction with multiple arguments
by the set of unary text constructions having one of these arguments;
replacement of a corpus member that is a text construction with only text arguments
by the set (possibly empty) of arguments;
replacement of a corpus member that is a composition of domain restrictions of a
text by a permuted composition of the same set of domain restrictions applied to
the same text.
replacement of a corpus member that is a composition of domain restrictions
applied to a text construction by the set (possibly empty) of texts consisting of this
composition of domain restrictions applied to a text construction of one of the
arguments;
replacement of a corpus member that is a composition of domain restrictions
applied to a unary text construction of a text by the same composition of domain
restrictions applied to the text.
replacement of a corpus member that is a composition of domain restriction of a
titling text by the titling text.</p>
      <p>Proof. Intuitively, G corresponds to a finite abstract structural syntax tree, where each
non-leaf subtree is a text, while leaves may be sentences, statements, importations or
empty text constructions. Each path from the root to a leaf that is not an empty text
construction corresponds to a unique elementary text, which together constitute F (G). Each
transformation above preserves structural semantics, due to the structural interpretation
constraints. A finite number of such transformations can be performed for a given finite
text, terminating in F (G). Thus F (G) st fGg.</p>
      <p>Theorem 4. For each C T we define F (C ) := [G2C F (G). Then F (C )
F (F (C )) = F (C ), F (C0 [ C1) = F (C0) [ F (C1), and C st F (C ).
Telem,
Let the closure core K (C ) of a structurally-satisfiable corpus C ? be the intersection
over all structurally-satisfying interpretations of the formal corpora of its importation
closures: K (C ) := \ st F (CloI (C )). If C st ?, we define K (C ) := Telem.</p>
      <p>I C
st
Theorem 5. For every corpus C , F (C )
K (C1) K (C0 [ C1): Further, K (C )</p>
      <p>K (C ), K (F (C )) = K (C ), and K (C0) [
st C , and hence K (C ) C .</p>
      <p>A canonical corpus is a corpus C Telem such that there is no name N such that C
contains both an accessible importation of N and an accessible titling of N. For every
corpus C T , define Can(C ) to be the canonical corpus obtained by deleting from its
closure core K (C ) any accessible N importation if there is an accessible N titling in
K (C ).
T , C
st
st
? is finite, then so is Can(C ).</p>
      <p>?, then Can(C ) = Tttl [ Tprop.</p>
      <p>Theorem 7. For every corpus C</p>
      <p>T , Can(C )</p>
      <p>C , and hence Can(C )</p>
      <p>C .
st
st
Theorem 8. For any pair of corpora C0, C1 T , C0 C1 iff Can(C0)
(Can(C0) \ Tttl)). Further, C0 st C1 iff Can(C0) = Can(C1).</p>
      <p>Can(C1 [
Theorem 9. Let C0 be a corpus containing an accessible N titling with content G. Let
C1 be the corpus resulting from C0 by substituting G in place of an occurrence of an
accessible N importation. Then C0 st C1, and hence C0 C1.</p>
      <p>Proof. By construction, we have Can(C0) = Can(C1) and so from Th. 8 we have C0
st C1. By Th. 2, it follows that C0 C1.</p>
      <p>Let C T be finite, C st ?, and let Cn = Rn(C ), n =0, 1, : : : be the result of the
importation resolution procedure (ignoring the termination criterion).</p>
      <p>Theorem 10. There exists a non-negative integer m such that Cm = Cm+1.
Proof. There are a finite number of titlings, importations and domain restrictions
(accessible or not) in the original corpus. Hence there will be a finite number of importations that
are resolved by substituting titling content. Once these substitutions have been exhausted,
the only further changes in the corpus will be substituting empty text constructions, which
reduce the number of importations in the corpus, and so a fixed point is reached after
some finite number of steps.</p>
      <p>Theorem 11. Cn is structurally, and hence logically, equivalent to C0.</p>
      <p>Proof. Consider the sequence Cˆn where Cˆn = Cn [ In, I0 is the empty set and In =
In 1 [ fGng where Gn is the elementary text that is an N importation within the same
set of domain restrictions as the importation occurrence that is substituted for at step n.
Then it may be shown by induction that there is a finite subsequence n j, j =0, . . . , k such
that F (Cˆn j ) is the same as some sequence obtained by the procedure defined in Th. 6.
Further, for any integer i such that n j i &lt; n j+1 F (Cˆi) = F (Cˆn j ) and for any integer
i nk, F (Cˆi) = F (Cˆnk ) = K (C ).</p>
      <p>Corollary 6. If Cm = Cm+1, then F (Cm) = Can(C ).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1] ISO/IEC 24707-2007:
          <article-title>Information technology - Common Logic (CL): a framework for a family of logic-based languages</article-title>
          .
          <source>ISO</source>
          , Geneva, Switzerland (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Neuhaus</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hayes</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Common Logic and the Horatio problem</article-title>
          .
          <source>Applied Ontology</source>
          <volume>7</volume>
          (
          <issue>2</issue>
          ) (
          <year>2012</year>
          )
          <fpage>211</fpage>
          -
          <lpage>231</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Ontolog</given-names>
            <surname>Wiki</surname>
          </string-name>
          <article-title>: CommonLogic V2</article-title>
          . http://ontolog.cim3.net/cgi-bin/wiki.pl?CommonLogic_ V2 Accessed:
          <fpage>2014</fpage>
          -07-20.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Athan</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Neuhaus</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Towards a Revised Semantics for Common Logic. (in preparation)</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>ISO</surname>
          </string-name>
          <article-title>CD 24707: Common Logic (CL): a framework for a family of logic-based languages. 2. edn</article-title>
          . ISO, Geneva,
          <source>Switzerland (under revision)</source>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <article-title>[6] W3C: Canonical XML Version 2</article-title>
          .0. http://www.w3.org/TR/xml-c14n2/ Accessed:
          <fpage>2014</fpage>
          -07-20.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <article-title>[7] OntoMaven: GitHub repository</article-title>
          . https://github.com/ag-csw/OntoMaven/tree/master/ OntoMaven-CL Accessed:
          <fpage>2014</fpage>
          -07-20.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>OntoMaven API4KB - A Maven-based API for Knowledge Bases. In: 6th International Semantic Web Applications and Tools for the Life Science</article-title>
          (SWAT4LS
          <year>2013</year>
          ), Edinburgh,
          <string-name>
            <surname>UK</surname>
          </string-name>
          , December
          <volume>10</volume>
          -
          <issue>12</issue>
          ,
          <year>2013</year>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>OntoMaven: Maven-based Ontology Development and Management of Distributed Ontology Repositories</article-title>
          .
          <source>CoRR abs/1309</source>
          .7341 (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <source>OntoMaven. In: 9th International Workshop on Semantic Web Enabled Software Engineering (SWESE</source>
          <year>2013</year>
          ), Berlin, Germany, December 2-
          <issue>5</issue>
          ,
          <year>2013</year>
          . (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Apache</surname>
            <given-names>Maven</given-names>
          </string-name>
          :
          <article-title>Project Web Site</article-title>
          . http://maven.apache.org/ Accessed:
          <fpage>2014</fpage>
          -07-20.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <source>[12] OASIS: Canonical XML Version 2</source>
          .0. https://www.oasis-open.org/committees/download. php/14809/xml-catalogs.
          <source>html Accessed: 2014-07-20.</source>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Luczak-Ro</surname>
            ¨sch,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Coskun</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rothe</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tolksdorf</surname>
          </string-name>
          , R.:
          <article-title>SVoNt - Version Control of OWL Ontologies on the Concept Level</article-title>
          . In Fa¨hnrich,
          <string-name>
            <given-names>K.P.</given-names>
            ,
            <surname>Franczyk</surname>
          </string-name>
          , B., eds.: Informatik 2010:
          <article-title>Service Science - Neue Perspektiven fu¨r die Informatik, Beitra¨ge der 40. Jahrestagung der Gesellschaft fu¨r Informatik (GI)</article-title>
          .
          <article-title>Volume 176 of LNI</article-title>
          .,
          <source>GI</source>
          (
          <year>2010</year>
          )
          <fpage>79</fpage>
          -
          <lpage>84</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14] Scha¨fermeier, R.,
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Aspect-Oriented</surname>
            <given-names>Ontologies</given-names>
          </string-name>
          :
          <article-title>Dynamic Modularization Using Ontological Metamodeling</article-title>
          .
          <source>In: Proceedings of the Seventh International Conference (FOIS</source>
          <year>2014</year>
          ), IOS Press (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Laval</surname>
          </string-name>
          ,
          <article-title>Jannik and Denier, Simon and Ducasse, Stephane and Bergel, Alexandre: Identifying Cycle Causes with Enriched Dependency Structural Matrix</article-title>
          .
          <source>In: Proceedings of the 2009 16th Working Conference on Reverse Engineering. WCRE '09</source>
          , Washington, DC, USA, IEEE Computer Society (
          <year>2009</year>
          )
          <fpage>113</fpage>
          -
          <lpage>122</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Sangal</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jordan</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sinha</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jackson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Using Dependency Models to Manage Complex Software Architecture</article-title>
          .
          <source>In: Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications</source>
          . OOPSLA '
          <volume>05</volume>
          , New York, NY, USA, ACM (
          <year>2005</year>
          )
          <fpage>167</fpage>
          -
          <lpage>176</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Melton</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tempero</surname>
          </string-name>
          , E.:
          <article-title>JooJ: Real-time Support for Avoiding Cyclic Dependencies</article-title>
          .
          <source>In: Proceedings of the Thirtieth Australasian Conference on Computer Science - Volume 62. ACSC '07</source>
          ,
          <string-name>
            <surname>Darlinghurst</surname>
          </string-name>
          , Australia, Australia, Australian Computer Society, Inc. (
          <year>2007</year>
          )
          <fpage>87</fpage>
          -
          <lpage>95</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Vainsencher</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>MudPie: Layers in the Ball of Mud</article-title>
          .
          <source>Comput. Lang. Syst. Struct</source>
          .
          <volume>30</volume>
          (
          <issue>1-2</issue>
          ) (
          <year>April 2004</year>
          )
          <fpage>5</fpage>
          -
          <lpage>19</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <article-title>Lattix: Product Home Page</article-title>
          . http://lattix.com/ Accessed:
          <fpage>2014</fpage>
          -07-20.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <article-title>JDepend: Project Home Page</article-title>
          . http://clarkware.com/software/JDepend.html Accessed:
          <fpage>2014</fpage>
          - 07-20.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Van Gelder</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The Alternating Fixpoint of Logic Programs with Negation</article-title>
          .
          <source>In: Proceedings of the Eighth ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems. PODS '89</source>
          , New York, NY, USA, ACM (
          <year>1989</year>
          )
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Van Gelder</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ross</surname>
            ,
            <given-names>K.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schlipf</surname>
            ,
            <given-names>J.S.:</given-names>
          </string-name>
          <article-title>The Well-founded Semantics for General Logic Programs</article-title>
          .
          <source>J. ACM</source>
          <volume>38</volume>
          (
          <issue>3</issue>
          )
          <issue>(</issue>
          <year>July 1991</year>
          )
          <fpage>619</fpage>
          -
          <lpage>649</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Farquhar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fikes</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rice</surname>
          </string-name>
          , J.:
          <article-title>Tools for Assembling Modular Ontologies in Ontolingua</article-title>
          , Citeseer
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <article-title>OWL 2 Web Ontology Language: Structural Specification and Functional-Style Syntax, 2nd edition</article-title>
          . http://www.w3.org/TR/owl2-syntax/#Imports Accessed:
          <fpage>2014</fpage>
          -07-20.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          <source>[25] RDF 1</source>
          .
          <article-title>1: Concepts and Abstract Syntax</article-title>
          . http://www.w3.org/TR/2014/ REC-rdf11
          <string-name>
            <surname>-</surname>
          </string-name>
          concepts-20140225/#section-dataset Accessed:
          <fpage>2014</fpage>
          -07-20.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Lange</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kutz</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mossakowski</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , Gru¨ninger,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>The Distributed Ontology Language (DOL): Ontology Integration</article-title>
          and Interoperability Applied to Mathematical Formalization. In Jeuring, J.,
          <string-name>
            <surname>Campbell</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Carette</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reis</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sojka</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , Wenzel, M.,
          <string-name>
            <surname>Sorge</surname>
          </string-name>
          , V., eds.: Intelligent Computer Mathematics. Volume
          <volume>7362</volume>
          of Lecture Notes in Computer Science. Springer Berlin Heidelberg (
          <year>2012</year>
          )
          <fpage>463</fpage>
          -
          <lpage>467</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>Athan</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Importation Closure that is Robust to Circular Dependencies</article-title>
          . In Fodor, P.,
          <string-name>
            <surname>Roman</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Anicic</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wyner</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palmirani</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sottara</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , Le´vy, F., eds.:
          <source>RuleML (2)</source>
          . Volume 1004 of CEUR Workshop Proceedings., CEUR-WS.org (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>