<!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>A Linked Data Application Development Framework (LDADF) *</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Yusuf Mashood Abiodun</string-name>
          <email>yusufmashoodabiodun@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Faculty of Communication and Information Sciences, Department of Computer Science, University of Ilorin</institution>
          ,
          <addr-line>Ilorin</addr-line>
          ,
          <country country="NG">Nigeria</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The launch of Linked Open Data Project in 2007 has resulted into making the Web a giant global data space hosting millions of linked RDF data triples on various domains in Linked Open Data Cloud. These data are now freely available for reuse. However, while some Web developers have developed notable Linked Data applications consuming and integrating different types of linked open data from the Linked Open Data Cloud to provide valuable services to people, many Web developers are yet to understand Linked Data principles and standards due to difficulties they face in learning semantic and linked data technologies. This research therefore proposes a Linked Data Application Development framework to help Web developers in overcoming challenges associated with designing and implementing linked data applications.</p>
      </abstract>
      <kwd-group>
        <kwd>linked data applications</kwd>
        <kwd>Spring framework</kwd>
        <kwd>development</kwd>
        <kwd>web developers</kwd>
        <kwd>semantic web</kwd>
        <kwd>object-oriented frameworks</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>The launch of Linked Open Data Project [1] in 2007 has resulted into a giant global data space
consisting of reusable linked RDF data on various domains.</p>
      <p>However, while there are developers building Linked Data applications that are
consuming data from Open Linked Data Cloud to provide useful services to people, there are
still many web developers that are unable to apply the linked data principles in developing
linked data applications. This is evident in the slow pace adoption of linked data among many
web application developers. World Wide Web Consortium confirmed the slow pace of
adoption by setting up a new Working Group called Data Activity with a mission to support
data providers in publishing their data and also providing supports that will ease the
development of linked data applications for application developers. In its inaugural minutes
[2] of meeting held on 26th February, 2014, members of the group unanimously agreed that
there is lack of awareness of Linked Data standards among the web application developers
which make them to be put off when they are informed of Linked data.</p>
      <p>Some of the contributing factors discouraging developers from adopting linked data
technology include lack of necessary competencies, tools, methodological &amp; frameworks
supports, difficult in learning linked data standards, lack of guidelines, reusable libraries etc
[5,8, 9]. Though some of these problems have been addressed. For instance, W3C has
published a lot recommendations and best practices for publication of RDF/Linked Data.
_________________________________
* Research Supervisor: Dr. R. G. Jimoh
Also, there are now various tools and libraries that could be used in developing linked data
applications. With the progresses made so far, developers are still having challenges.
While developers new to the field of semantic/linked data are facing problem of complexity in
learning the technology, the earlier adopters are also having challenges in implementing of
linked data applications. The authors of [8] suggested these problems could be addressed
through the adoption of conventional software engineering practices with the linked data
design approaches such as (i) guidelines, best practices and design patterns; (ii) software
libraries; and (iii) software factories to provide a ready-made infrastructure for the developers.
However, the authors only briefly described each of the design approach with identification of
relevant tools, but failed to develop the desired infrastructure.</p>
      <p>It is in view of the aforementioned above that this research seeks to adopt
objectoriented software engineering practices in developing a framework for linked data application.
The proposed framework will identify and integrate the existing Linked Data/Semantic
libraries &amp; APIs such as Jena, Sesame, Silk, RDR, etc. The framework will also be integrated
with a popular object-oriented framework already familiar to developers. This will enable the
developers to easily adopt linked applications and also reusing the beneficial features of spring
framework which simplify development of enterprise applications.
2.</p>
    </sec>
    <sec id="sec-2">
      <title>Research Questions and Hypotheses</title>
      <p>The goal of this research is to develop a framework that will simplify the learning curve of
linked data technology for developers and thereby making it easy for them in reusing linked
data design models and codes for designing and implementing linked data applications. In
order to achieve the stated goal, the research will investigate the following research questions:
(i) What are the main features of Linked Data applications that distinguish them from
conventional web applications?
(ii) What are the main software components that usually constitute the architectures of
linked data applications?
(iii) How can the use of framework ease the learning curve for new developers coming
into the world of semantic web/linked data applications?
(iv) How can the use of frameworks help developers who are earlier adopters in
overcoming challenges associated with the design and implementation of linked data
applications?
(v) Of what benefits will the use of framework be for developing linked data
applications?
The research hypotheses are as follows:
(i) Defining the features of linked data applications will assist developers in deciding
when to apply linked data technology for developing web applications.
(ii) Using of software engineering practice and frameworks will enable more developers
to embrace linked data technology.
(iii) Integrating a linked data application framework with a popular object-oriented
framework will simplify the design and implementation of linked data application for
the developers.
(iv) Use of framework for implementing linked data applications will enable developers
to deliver application within a short period through extensive reuse of analysis
model, design model and codes.
(v) Integrating a linked data application with an existing object-oriented framework will
enrich the features of linked data applications.
3.</p>
    </sec>
    <sec id="sec-3">
      <title>Relevancy:</title>
      <p>Open Data Movements globally have been leading campaigns calling for the adoption of open
data by governments of the world in order to make them more transparent and accountable to
their people. Governments such as UK, US and some others have responded by launching
data portals hosting thousands of datasets on various public sectors with the aim of promoting
transparency and also improving their economies. Through the Open Linked Data project
launched in 2007, many datasets from government data portals have been transformed and
republished as RDF data in line with the principles of Linked Data. The efforts have resulted
into a huge cloud of linked datasets. Web developers are expected to reuse the published
datasets from the governments' portals and Linked Open Data Cloud in building Linked Data
applications that will provide valuable services to people as envisaged by open data
movements. However, while some developers have used the these opportunities to build
linked data applications, many developers are yet to adopt and apply linked data principles
and standards due to earlier stated reasons above. We hope this proposed framework will help
more web developers in adopting Linked Data principles and standards to build more valuable
applications for the betterment of people. In addition, the research will also contribute to the
on-going efforts of truly making the Web a Web of documents and data.
4.</p>
    </sec>
    <sec id="sec-4">
      <title>Related Work:</title>
      <p>A group of researchers [8] did a good work to design a conceptual architecture for linked data
application and also identified all the interacting components that make up the architecture.
They also advocated for the use of software engineering and design approaches
i.e (1) guidelines, best practices and design patterns; (2) software libraries; and (3) software
factories to provide ready-made solutions for developing linked data applications. They only
briefly described each of the design approach with identification of relevant tools, but did not
build a ready-made solution as envisaged.</p>
      <p>A related work to this research is the development of a flexible integration framework for
semantic 2.0 applications [9]. The research was successful in developing a framework and
also integrated its with with an object-orient framework i.e Rubby on Rail framework.
However, the framework is not suitable for linked data applications because it was developed
as at the time the linked data technology was just evolving.</p>
      <p>In the Linked Data book [6], the authors laid the foundation guide for the development of
linked data applications by providing architectural patterns and components for implementing
linked data applications. They went further to describe the main tasks and techniques needed
for developing linked data applications. However, descriptions provided are difficult to
comprehend and apply by web application developers that are just coming to the world of
semantic web and linked data communities.</p>
      <p>Also following the same step of Linked Data book was EUCLID project [7], a two
years project funded under the EU Seventh Framework Programme for the purpose of
providing comprehensive educational curriculum to the real needs of data practitioners. One
of its lecture deliverables was a guide on building linked data applications. Also, the
architecture of linked data application based on patterns, layers and components was
described. The guide only captured information on the Linked Data application development
frameworks</p>
      <p>Another research [3] performed an empirical survey of 98 Semantic Web
applications, in order to identify the most common shared components and the challenges in
implementing these components. In their findings, the authors observed that though not
explicitly stated, most of the applications surveyed applied principles of Component-based
software engineering (CBSE) in implementing their applications. The authors only
recommended the use of CBSE in building semantic applications.</p>
      <p>There are also various life cycles that have been developed for publishing linked data
on the web of data. These life cycles only focus on publishing linked data; neglecting
processes to be carried out by developers to develop linked data application that can consume
and manipulate data. Developers therefore found it difficult to comprehend and apply the life
cycles within the context of software engineering.
5.</p>
    </sec>
    <sec id="sec-5">
      <title>Proposed Approach &amp; Preliminary Results:</title>
      <p>The research will adopt process for developing Object-Oriented Frameworks. In addition,
refactoring method will also be used to capture aggregation and reusable components for
linked data application development framework. The proposed approach will include the
following steps:
1. Definition of characteristics usually possessed by semantic web/linked data
application: In order to define the characteristics, we are adopting the NeOn
methodological [5] process which set questionnaires for deriving semantic
application characteristics based on the following three dimensions.
i. Questionnaire about Ontologies: help the application developers to
determine the characteristics of the ontologies that the application will make
use of.
ii.
iii.</p>
      <p>Questionnaire about Data: help the application developers to determine
the characteristics of the data that the application will consume or
manipulate and its relation with the ontologies or data schemas which data
may conform to.</p>
      <p>Questionnaire about Reasoning: help the application developers to
determine the characteristics of the reasoning that the application will apply
to the ontologies and data.</p>
      <p>The questionnaire about the data dimension will be extended to capture more
requirements based on Linked data principles because they are not fully captured in
NeOn.</p>
      <p>Domain Analysis for Linked Data application domain: in oder to identify and
characterize the problem domain, the research will adopt the following steps as
stipulated in [10]:
i. Outline the situation and the problem: the problem domain area is semantic
web/linked data applications.
ii. Examine existing solutions: this involves selection of semantic web/linked
data applications using the defined characteristics in order to identify and
extract the general functionalities common to all of them..
iii. Identify key abstractions: applying component based software engineering
process to obtain software components in line with the identified
functionalities.
iv. Identify what parts of the process the framework will perform
v. Ask for input from clients and refine the approach
The above steps will result into obtaining domain analysis model as presented in
figure 1 below:</p>
      <sec id="sec-5-1">
        <title>LD Application</title>
      </sec>
      <sec id="sec-5-2">
        <title>Analysis Model</title>
      </sec>
      <sec id="sec-5-3">
        <title>Processes</title>
      </sec>
      <sec id="sec-5-4">
        <title>Tasks</title>
      </sec>
      <sec id="sec-5-5">
        <title>Accessing</title>
      </sec>
      <sec id="sec-5-6">
        <title>Data</title>
        <p>Publishing
Local Data
Sources
Accessing
Remote
Web Data</p>
      </sec>
      <sec id="sec-5-7">
        <title>Integration</title>
      </sec>
      <sec id="sec-5-8">
        <title>Caching</title>
      </sec>
      <sec id="sec-5-9">
        <title>Production</title>
        <p>Data
Mapping</p>
        <p>Data
Linking</p>
        <p>Data
Cleansing</p>
        <p>Data
Storing</p>
        <p>Data
Views</p>
        <p>Framework design: this will be carried out following the steps illustrated in [11].
A framework design is a software design that, when implemented, provides the
general and abstract functionality identified in analysis model [11].</p>
        <p>The two main sub-processes are:
i. Architectural Design: the objective is to identify the objects/components
that constitute the system and how they collaborate using the analysis model
as input. Activities involved are:
(a) Identify Abstractions: refining the analysis model tasks to
obtain high-abstracted classes from which the clients instantiate.</p>
        <p>The derived three main classes' Names from the analysis model
which client instantiate are:</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>DataAccessing</title>
    </sec>
    <sec id="sec-7">
      <title>DataLinking</title>
    </sec>
    <sec id="sec-8">
      <title>DataViews</title>
      <p>,</p>
      <p>Figure 2: The Derived Main High-Level Abstracted Classes.
(b)</p>
      <sec id="sec-8-1">
        <title>DataAccessing</title>
        <p>Access ()</p>
        <p>For effective design and implementation of the proposed
framework, the identified three above High-abstracted Classes will
be classified as sub-frameworks.</p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>Identify Generic Design Solutions: studying the sub-frameworks</title>
      <p>and reuse design patterns to provide solutions. For instance,
Strategy Design Pattern through use of Composition [12] will be
reused to provide solution for DataAccessing
Class/Subframework as shown in figure 3 below:</p>
      <sec id="sec-9-1">
        <title>DataAccessingCompositor</title>
        <p>Compose ()
SparqlWrapper
Compose ()</p>
        <p>R2RWrapper</p>
        <p>LinkedDataWrapper</p>
        <p>WebAPIs
Compose ()</p>
        <p>Compose ()</p>
        <p>Compose ()</p>
        <p>Composition of Linked Data Application Framework with Spring Object-oriented
Framework:
The proposed linked data application framework will be integrated with the Spring
Objectoriented framework in order to make the linked data application framework accessible to
many developers who are already familiar to Spring Framework. The integration will enable
the linked data application to draw on the strengths and benefits of Spring Framework which
include :
i. Spring framework is java based platform and also most of the existing RDF
libraries are implemented using java programming language.
ii. Spring Core Container Infrastructure for managing the life cycle of
application objects.
iii. Spring MVC Framework for achieving the separation of Concerns.</p>
        <p>iv. Spring Aspect Programming Infrastructure</p>
      </sec>
    </sec>
    <sec id="sec-10">
      <title>4. Framework Implementation Phase: the objective of the</title>
      <p>implementation phase is to implement the objects, the relationships and
the collaborations identified in the design phase [11].</p>
      <p>Core activities to be carried out according to [10], are:
i. Implement the core classes
ii. Test framework
iii. Ask client to test the framework
iv. Iterate to refine the design and add features
7.</p>
    </sec>
    <sec id="sec-11">
      <title>Evaluation Plan:</title>
      <p>In order to evaluate the research hypotheses, the developed linked data application framework
will be tested by the researcher using it to develop a linked data application for Nigerian
National Petroleum Corporation. The agency currently publishes on its website the Oil &amp; Gas
Statistical Data (Monthly, Quarterly &amp; Annually) on various activities ranging from upstream,
midstream and downstream in PDF format. This data will be converted to RDF data and also
integrated with other relevant data from the web to derive new valuable linked data for the
organization. The domain expert in the industry will be involved in the development process
.In addition, the framework together with its documentation will be made publicly available to
developers to access and use it in developing linked data applications. Thereafter,
questionnaires will be designed for developers to answer to measure research hypotheses such
as shortening of development period with the use of framework, ease of learning linked data
technology through the use of the framework etc.
8.</p>
    </sec>
    <sec id="sec-12">
      <title>Reflection:</title>
      <p>Developing the proposed linked data application framework following the conventional
software engineering and existing object-orient framework development process will enable
the successful development of the proposed framework. In addition, the integration of the
framework with a popular object-oriented framework, Spring framework will make linked
data application technology accessible to more developers.</p>
    </sec>
    <sec id="sec-13">
      <title>Acknowledgements</title>
      <p>I sincerely wish to express my deep gratitude to my Supervisor, Dr. R. G. Jimoh for his
constructive and supportive critique of my work. His mentoring role is enabling me to build
my research skills.
1.
10.
11.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>State of the Open Linked Data Cloud</article-title>
          .
          <source>Retrieved April 18</source>
          ,
          <year>2014</year>
          from http://lod-cloud.net/state/ World Wide Web Consortium:
          <article-title>Data Activity Working Group Inaugural minute of meeting</article-title>
          .
          <source>Retrieved April 18</source>
          ,
          <year>2014</year>
          from http://www.w3.org/
          <year>2014</year>
          /02/26- dacg-minutes.html.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Benjamin</surname>
            <given-names>H</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sheila</surname>
            <given-names>K</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Conor</surname>
            <given-names>H</given-names>
          </string-name>
          , &amp;
          <article-title>Stefan D.: Implementing Semantic Web applications</article-title>
          .
          <source>In: Proceedings of the 5th International Workshop on Semantic Web Enabled Software Engineering (SWESE</source>
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>Leigh D.</given-names>
            , &amp;
            <surname>Ian</surname>
          </string-name>
          <string-name>
            <surname>D.</surname>
          </string-name>
          (
          <year>2012</year>
          ).
          <source>Linked Data, Retrieved on May</source>
          <volume>23</volume>
          , 20014 from http://patterns.dataincubator.org/book/ NeOn Methodology for Building Semantic Applications (
          <year>2009</year>
          ).
          <source>Retrieved February 9</source>
          ,
          <year>2014</year>
          from : http://www.neon-project.org/nw/Deliverables Heath T., &amp;
          <string-name>
            <surname>Bizer</surname>
            <given-names>C.</given-names>
          </string-name>
          (
          <year>2011</year>
          ).
          <article-title>Linked Data Book: Evolving the Web into a Global Data Space</article-title>
          .
          <source>Retrieved February 12</source>
          ,
          <year>2014</year>
          from http://linkeddatabook.com/editions/1.0/
          <article-title>Educational Curriculum for the usage of Linked Data</article-title>
          .
          <source>Retrieved February 12</source>
          ,
          <year>2014</year>
          from http://euclid-project.eu/ Benjamin H,
          <string-name>
            <surname>Richard</surname>
            <given-names>C</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Conor</surname>
            <given-names>H</given-names>
          </string-name>
          , &amp;
          <article-title>Stefan D: An An empirically-grounded conceptual architecture for applications on the Web of Data</article-title>
          .
          <source>Published in Systems, Man, and Cybernetics</source>
          , Part C:
          <article-title>Applications</article-title>
          and Reviews, IEEE Transactions (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Eyal</surname>
            <given-names>O</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Armin</surname>
            <given-names>H</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manfred</surname>
            <given-names>H</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benjamin</surname>
            <given-names>H</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Stefan</surname>
            <given-names>D</given-names>
          </string-name>
          ,:
          <article-title>A Flexible Integration Framework for Semantic Web 2.0 Applications. ieeexplore</article-title>
          .ieee.org [Tal94a]
          <article-title>Building object-oriented frameworks</article-title>
          , Taligent, Inc., 1994 Niklas L. &amp;
          <string-name>
            <surname>Axel</surname>
            <given-names>N</given-names>
          </string-name>
          ,:
          <article-title>Development of Object-Oriented Frameworks Authors http</article-title>
          ://www.researchgate.net/publication/245912789_Development_of_ObjectOriented_Frameworks [Gam94] Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>Design Patterns - Elements of Reusable Object-Oriented</surname>
            <given-names>Software</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          , Reading, MA,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>