<!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>Expert System for Educational Content Selection Based on Standards</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Santiago Pérez de la Cámara</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Edgar Rubión Soler</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alicia Fernández del Viso Torre</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Eva Vázquez de Prada</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carlos Rebate Sánchez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>sperezd</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>erubion</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>afernandezde</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>evazquezdeprada</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>crebate}@indra.es</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>eInclusion Unit, Indra Software Labs C/ Acanto 11</institution>
          ,
          <addr-line>28045 Madrid</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <fpage>23</fpage>
      <lpage>32</lpage>
      <abstract>
        <p>The most common approach to content selection for educational purposes is often focused on how to display these contents in the variety of devices that the user could have (PC, PDA, mobiles, etc.); neither user needs nor preferences are taken into account, nor the desired features for accessible content. This paper depicts the standard based Expert System that is being developed on the framework of the European project EU4ALL [European Unified Approach for Assisted Life Long Learning - IST-FP6-034778]. The goal of this component is to select the content that provides best adaptation to the user. The first prototype of this component has been developed following a SOA (Service Oriented Architecture) approach so it can be easily integrated with existing Virtual Learning Environment.</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>Content selection</kwd>
        <kwd>standards</kwd>
        <kwd>accessibility</kwd>
        <kwd>Expert Systems</kwd>
        <kwd>SOA</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Nowadays many educational institutions open their virtual classes to students with
different disability levels. The main challenge that students with disabilities face is to
access education resources that are appropriate for them. Educational resources are
usually the same for every student since no specific adaptation is provided to adapt the
resource to the needs of the students. As a result, students cannot take full advantage of
the learning experience that virtual learning environments offer. They are several works
about the study of the content personalization as we can see in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>In this paper we depict the solution proposed to solve this situation, the first
prototype of the Content Personalization service (CP), a module that selects the most
suitable resource for a specific student taking into account preferences, device
properties and resource properties together with the adaptations available.</p>
    </sec>
    <sec id="sec-2">
      <title>1. Content Personalization</title>
      <p>The main goal of EU4ALL project is to design and implement an extensible
architecture of services to support accessible lifelong learning for adult learners with
special needs. These services are to be open, secure, standard-based, accessible and
interoperable.
The CP is a component in the EU4ALL project. It is a resource selection module. The
goal of the CP is find the most suitable resource resolving a request coming from a
Virtual Learning Environment (VLE) and returning an identifier for the chosen
resource. This way, the module provides users with the educational resource that best
adapts to the preferences and needs of the student. To choose the best resource, the CP
processes the user preferences (stored in the user profile), the device preferences
(stored in the device profile) and the characteristics of the requested resource and its
available adaptations (resource profile/adaptation).</p>
      <p>The standards used to implement the profiles are:</p>
      <p>
        W3C CC/PP [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] (Composite Capability/Preference Profiles): Specification
that defines the capabilities of the devices that the user is using. CC/PP is
based on RDF (Resource Description Framework). In the EU4ALL project,
we are using UAProf [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] (User Agent Profile) specification, based on the
CC/PP standard. UAProf is concerned with capturing capability and
preference information for devices, and this information can be used by
content providers to produce content in an appropriate format for the specific
device.
      </p>
      <p>
        IMS AccLIP [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] (Accessibility for Learner Information Package): AccLIP
documents only store accessibility preferences of the user. It could be
integrated with the standard IMS LIP [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] (Learning Information Package).
ISO DRD [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] (Digital Resource Description, ISO/IEC 24751-3:2008): New
standard use to describe the learning objects, both original resources and
adaptations. ISO DRD is the 3rd part of the Individualized adaptability and
accessibility in e-learning, education and training specification (“Access for
all”). It provides a common language for describing digital learning resources
to facilitate matching of those resources to learners' accessibility needs and
preferences.
      </p>
    </sec>
    <sec id="sec-3">
      <title>2. Content Personalization behavior</title>
      <p>The behavior of the CP module is summarized in the figure 1.</p>
      <p>When the CP modules receives a request with the user identifier, a short
description of the device and the resource identifier, the CP retrieves the profiles for the
user, the device the resource and its available adaptations. There are two alternatives to
retrieve the profiles, the first one to look for the profiles in the cache memory of the CP
module and the second is to access the external modeling services (User modeling,
Device modeling) via web services. In the first place, the CP module tries to retrieve
the profiles from the cache, if these profiles are invalid or there are no profiles available,
it tries to retrieve the profiles using external modeling services and it updates the cache
with them. An invalid profile is a profile that has exceeded the timeout specified. The
threshold for the timeout is configurable.</p>
      <p>When all the profiles retrieved by the CP are valid, it creates the facts for the user
and device profiles. The facts are implemented in an intermediate language understood
by the rule based engine. The profiles of the original resource and its adaptations are
translated into a group of facts, where each group has the facts that correspond to a
resource or to an adaptation. Then the CP loads the facts for the user, the device and the
resource/adaptation in the rule based engine, and it validates them getting a score for
each resources. This score is stored together with the identifier of the analyzed resource.
This operation is repeated until all the adaptations have been analyzed. Once the
adaptations have been analyzed, if the resource/adaptation with the highest store is
above a certain threshold, this will be marked as the most suitable resource for the user,
as result, the CP returns the identifier of this resource. On the contrary, if the value for
the highest score does not pass the threshold, the CP returns an identifier for the
original resource and sends an e-mail to the administrator to notify that there is no
adaptation available for a certain user and device.</p>
    </sec>
    <sec id="sec-4">
      <title>3. Architectural Components of the Content Personalization Module</title>
      <p>The CP module is made up of different components with the structure indicated in the
figure 2.</p>
      <sec id="sec-4-1">
        <title>3.1. Web Services Layer</title>
        <p>
          The layer contains the available web services of the CP, and also it is used to access the
external modeling services to obtain the profiles of the user, the device, the resources
and the adaptations. By using web services it is possible to distribute the tasks among
different modules that are completely independent without having to share features
such as the programming language or the operative system. The first prototype for the
CP uses Axis2 1.3 [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] for SOAP.
&lt;alternativesToText&gt;
        </p>
        <p>&lt;graphicAlternative usage = “preferred” value = “true”/&gt;
&lt;/alternativesToText&gt;</p>
        <sec id="sec-4-1-1">
          <title>Translation</title>
          <p>name = “deliverVisual” usage=“preferred”
name = “deliverText” usage=“optionallyUse”</p>
        </sec>
        <sec id="sec-4-1-2">
          <title>Facts</title>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>3.2. Common Translator</title>
        <p>
          This component is in charge of translating the profiles to facts. These facts are
implemented in an intermediate language managed by Decision-Maker. It will interpret
the facts in order to validate the different resources and the adaptations. This way, the
CP is standard independent by using Decision-Maker, since it works with an
intermediate language. This eases the integration of new standards with the CP. To
manage a new standard only implies to modify the Common Translator module,
providing it with the capability to translate the new Standard into the intermediate
language. The Common Translator component uses Jena 2.5.6 [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] libraries, which is a
framework for semantic web that is also used to manage CC/PP standard through RDF.
Figure 3 shows a translation example of a fragment of IMS AccLIP into facts. Of one
user prefers a graphical alternative over a textual resource, this is translated to two
facts; the first one is to deliver the visual resource as the preferred one and the second
is to deliver the textual resource as the optional one. The values of the usage fields in
the facts show that the user prefers a visual resource, but if it does not exist he accepts a
textual resource. These facts mean the same that the piece of IMSAccLIP where the
user prefers the visual resource, but he does not require it. Note that the “usage”
attribute is setting the level of preference in the IMS AccLIP and could be “preferred”,
“optionallyUse”, “required” or “notUse”.
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>3.3. Decision-Maker</title>
        <p>
          This component is in charge of validates the facts. The first prototype for the CP
module uses Drools [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] as rule based engine. The module provides a simple way to
take AI decisions. The following code features an example for a rule that decides is a
resource is valid. In the first prototype of the CP, a resource is valid if the visual,
textual, auditory, format and language bits are valid. The rule “Visual missing”
checks id the resource is not visual and the user required a visual resource. The rule
“Hardware visual ok” checks if the device is compliant with the hardware handed
to display a visual resource. “User visual ok” checks if the user wants a visual
resource, and “Visual ok” checks if the hardware can handle a visual resource and if
it is accepted by the user. Finally, the rule “Visual ko” is the oposite operation to
“Visual ok” and decides when the user does not want a particular resource or when
the hardware is not appropriate.
end
end
end
rule "User visual ok"
no-loop true
when
        </p>
        <p>ResourceCharacteristic(name==“accessMode”, value==“visual”)
UserPreference(name==“deliverVisual”, $usage:usage!=“notUse”)
$mUserVisualOk:Message(message==“userVisualOk”)
then
$mUserVisualOk.setValue(true);
$mUserVisualOk.setUsage($usage);
update($mUserVisualOk);
rule "Hardware visual ok"
no-loop true
when</p>
        <p>ResourceCharacteristic(name==“accessMode”, value==“visual”)
DeviceCharacteristic(name==“imageCapable”,</p>
        <p>value=="Yes"||value==null)
$mHardwareVisualOk:Message(message==“hardwareVisualOk”)
then
$mHardwareVisualOk.setValue(true);
update($mHardwareVisualOk);
end
rule "Visual ok"
no-loop true
when</p>
        <p>Message(message==“userVisualOk”, value==true, $usage:usage)
Message(message==“hardwareVisualOk”, value==true )
$mVisualOk:Message(message==“visualOk” )
then
$mVisualOk.setValue(true);
$mVisualOk.setUsage($usage);
update($mVisualOk);
rule "Visual ko"
no-loop true
when
(not</p>
        <p>Message(message==“userVisualOk”, value==true)
and</p>
        <p>Message(message==“hardwareVisualOk”, value == true)
)
$mVisualOk:Message(message==“visualOk”)
then
$mVisualOk.setValue(false);
update($mVisualOk);</p>
      </sec>
      <sec id="sec-4-4">
        <title>3.4. Profile Management</title>
        <p>It works with all the profiles as if they belonged to a single type with regards to the
standard. It retrieves the profiles from the cache using the DAO’s and decides if they
are valid. If they are not valid, it is interacts with the Web Services layer to retrieve the
profiles and launch the update process for the cache.</p>
      </sec>
      <sec id="sec-4-5">
        <title>3.5. Data Access Object Layer</title>
        <p>
          It abstracts and encapsulates all the access to the data. DAO [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] layer administers the
connection with the data source to retrieve and store data, hiding implementation
details inside the DAO’s. It paves the way to the possible migration to a different
source of data, since in this case only the DAO layer needs to be modified. In addition,
it centralizes all the accesses to data in a separate layer.
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>4. Integration of the CP Module with others EU4ALL and VLE Components</title>
      <p>
        The integration with the EU4ALL modules is based on SOA (Service Oriented
Architecture) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], see Figure 4. This way an open architecture is achieved, easing the
changes of processes and the integration of different technologies. This is very
important since the functionality of the CP can be invoked from different VLE’s and
these can be programmed in different programming languages such as Tcl (.LRN),
PHP (Moodle), etc … On the other hand, the CP needs to connect to other modules
such as User Modeling, Device Modeling and Metadata Repository in a transparent
way. The communication protocol used by the CP with the VLE’s and the other
modules is SOAP (Simple Object Access Protocol). The SOAP protocol wraps the
different standards used in the communication. For instance, User Modeling responses
to CP with IMS-AccLIP, on the other hand, Device Modeling uses CC/PP in the
response, finally, Metadata Repository uses ISO-DRD in the communication with CP.
All these standards are understood by the CP and they are translated to facts.
      </p>
    </sec>
    <sec id="sec-6">
      <title>5. Conclusions and Future Work</title>
      <p>The first prototype of the CP has been implemented with Java 1.5 and allocated in an
Apache 5.5.23 web server. An open modular architecture has been created to easily
change the profile retrieval, the cache storage and the decision make algorithm using
different design patters. The module has been developed using SOA architecture, and
as a result the different modules of the architecture are totally independent.</p>
      <p>Using a rules based engine in the Decision-Maker component eases the
comprehension of the decision making process of the CP and enables to modify the
business logic without having to rebuild the module. The structure of the CP allows
changing the rules based engine easily.</p>
      <p>A graphical user interface (GUI) has been developed for testing purposes of the
Expert System. The interface allows creating profiles (users, devices, resources) and to
request a personalization for a resource. The figure 5 shows the main page of the GUI.
Currently the prototype is under evaluation and the results will be available in late 2009.</p>
      <p>
        A possible root to investigate would be to integrate new standards to the ones
already managed by the CP like ISO PNP [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] (Personal needs and Preferences,
ISO/IEC 24751-2:2008) which is used to model user preferences and whose integration
with ISO DRD is better than the one provided by IMS AccLIP. For the second
prototype of the CP it could be possible to conduct a study of the different AI
techniques to be used to enhance the performance of the or to substitute the rules based
engine with another alternative.
      </p>
      <p>The CP module integrated within EU4ALL architecture will be evaluated on a
large scale in European universities at the beginning of 2010. That year the evaluation
outcomes will be disseminated and could be checked whether the use of the component
is really useful for the students taking into account their needs and preferences.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgements</title>
      <p>
        The authors would like to thank the European Commission for partly funding EU4ALL
project [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] (European Unified Approach for Assisted Life Long Learning -
IST-FP6034778).
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Pérez de la Cámara</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fernández del Viso</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rebate</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rubión</surname>
            <given-names>E.</given-names>
          </string-name>
          , Vázquez de Prada E.,
          <string-name>
            <surname>Gómez</surname>
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Content</surname>
            <given-names>Personalization</given-names>
          </string-name>
          <article-title>: assembling the puzzle of standards</article-title>
          .
          <source>IADIS Multi Conference on Computer Science and Information Systems</source>
          (
          <year>2008</year>
          ),
          <article-title>e-Learning Volume II</article-title>
          .
          <source>ISBN: 978-972-8924-58-4</source>
          , pp.
          <fpage>143</fpage>
          -
          <lpage>146</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Brusilovsky</surname>
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kobsa</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nejdl</surname>
            <given-names>W.</given-names>
          </string-name>
          ,
          <source>The Adaptive Web: Methods and Strategies of Web Personalization</source>
          , Volume
          <volume>4321</volume>
          /
          <year>2007</year>
          , Springer Berlin,
          <source>ISBN 978-3-540-72078-2</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Velasco</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mohamad</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Carmien</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <article-title>Universally Accessible Lifelong Learning by User and Device Profiling Adaptation</article-title>
          , TUMAS-A workshop at User Modelling Conference (
          <year>2007</year>
          ), pp.
          <fpage>23</fpage>
          -
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Karpouzis</surname>
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moschovitis</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ntalianis</surname>
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ioannou</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kollias</surname>
            <given-names>S.</given-names>
          </string-name>
          , Web Access to Large
          <source>Audiovisual Assets Based on User Preferences, Multimedia Tools and Applications</source>
          , Vol.
          <volume>22</volume>
          Issue 3, Kluwer Academic Publishers,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Rousseau</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Browne</surname>
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malone</surname>
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>ÓFoghlú</surname>
            <given-names>M.,</given-names>
          </string-name>
          <article-title>User Profiling for Content Personalisation in Information Retrieval, 19 Congress ACM SAC (</article-title>
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Newcomer</surname>
            <given-names>E.</given-names>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Lomow. Understanding SOA with Web</surname>
          </string-name>
          <string-name>
            <given-names>Services</given-names>
            ,
            <surname>Addison-Wesley</surname>
          </string-name>
          <string-name>
            <surname>Professional</surname>
          </string-name>
          , ISBN:
          <fpage>978</fpage>
          -
          <lpage>0321180865</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>W3C</surname>
            <given-names>CC</given-names>
          </string-name>
          /PP Information Page: http://www.w3.org/Mobile/CCPP/
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8] UAProf in Open Mobile Alliance: http://www.openmobilealliance.org/tech/affiliates/wap/wap-248
          <string-name>
            <surname>-</surname>
          </string-name>
          uaprof-20011020
          <article-title>-a</article-title>
          .pdf
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>IMS</surname>
          </string-name>
          <article-title>AccLIP specification</article-title>
          : http://www.imsglobal.org/accessibility/acclipv1p0/imsacclip_infov1p0.html
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>[10] IMS LIP Specification: http://www.imsglobal.org/profiles/</mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>ISO</surname>
          </string-name>
          <article-title>"Access for all"</article-title>
          DRD: http://www.iso.org/iso/catalogue_detail?csnumber=
          <fpage>43604</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <article-title>Official page of Axis2: http://ws</article-title>
          .apache.org/axis2/
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Data Access</surname>
          </string-name>
          <article-title>Object description provided by Sun Microsystems</article-title>
          : http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>[14] Official page of Jena: http://jena.sourceforge.net/</mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>[15] Official page of Drools: http://www.jboss.org/drools/</mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <article-title>"Access for all"</article-title>
          PNP: http://www.iso.org/iso/catalogue_detail?csnumber=
          <fpage>43603</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <article-title>Official page of the project EU4ALL: http://www.eu4all-project</article-title>
          .eu/
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>