Architecture

Introduction

The creation of Digital Collaborative/Collective (Knowledge) Maps targets the
use of rich graphical frameworks that allows bridging the gap between computer-
based and pencil-created Maps, the lack of (distributed) technologies and
architectural models capable to support Digital Maps seems that have impeded their
development. Even if libraries like DirectX and OpenGL were for many years the
tools of choice for programmers, they were designed only for Desktop Applications.
Applets introduced a new powerful way to provide vector-based graphics running
inside of a Web browser, though they were having limited rendering and
communication capabilities. With the apparition of technologies like the ones behind
Flash or Silverlight that support the construction of Rich Ìnternet Applications (RÌA),
programmers have the tools to build functionality in Web Applications more like the
ones available in Desktop Applications. RÌA technologies combined with Service-
Oriented Architectures (SOA) makes it possible to run code in browsers and mix data
coming from different sources, XML playing the role of the perfect envelope for data
exchange. The increased importance of XML is reflected in its adoption by Relational
Database Management Systems (RDBMS) that allow storing, querying and
performing CRUD (Create/Read/Update/Delete) operations on XML-based
structures.


Framework Architecture

The architecture chosen for the development of Digital Collaborative/Collective
(Knowledge) Maps is based on Silverlight for the presentation layer, ASP.Net for the
business layers, and SQL Server 2008 for the data layer and Knowledge Base, the
transport of data between the layers using XML-based envelopes.

Using a UÌ based on ASP.Net and SÌlverlight, the Maps created by users are
enveloped in XML documents and saved in multiple tables on the SQL Server, tables
that are part of the Conceptual Knowledge Base. The Map can be later retrieved, this
implying the aggregation of data in the XML document, which is further serialized in
Silverlight elements. From availability and security reasons, versions of the Maps can
be stored also on Users' computers, Silverlight allowing storing by default up to 2MB
of information in the Ìsolated Storage, space quote that can be increased on demand.

Between client and backend, the Silverlight tree of elements is first
deserialized into the XML structure on the client, and further deserialized in tabular
structure on the business layer and saved to the backend using a set of stored
procedures. The process is reversed each time a Map stored on the backend is
requested, the data are made available to requests through views, and further stored
procedures that transform the data in a XML document.

Data Mining components stored inside of the SQL Server allow the processing
of Maps, while the Web is mined using the Crawler/Miner component, which parses
and processes documents. A second simplified Crawler is implemented is accessible
from Silverlight and allowing to extract text from documents the User wants to map.

Because the Silverlight framework doesn't support ADO.Net Maps and other
data can be consumed using Web Services built on top of SQL Server, Web Services
that can be used by other type of clients too.


SiIverIight Framework

Microsoft's Silverlight emerged as a powerful competitor for Flash, its strength
residing in the fact that is a cross-browser and cross-platform implementation of the
.Net framework that allows developing browser-hosted RÌAs, the support for Web
Services allows integrating data and services from many sources. Silverlight's
CoreCLR is a lighter version of .Net CLR, from which were stripped features like
interoperability with native or COM code, debugging APÌs, JÌT activation, garbage
collectors, exception handling, loader & binder (Sneath, 2009). Silverlight is based on
a subset of XAML and Windows Presentation Framework (WPF), 3-D Graphics,
various controls (e.g. menus), routed events, visual and logical trees being not
available in Silverlight, though next versions are targeted to diminish the gaps
between the two architectures (MSDN, 2009 B), facilitating the porting of Silverlight-
designed code to WPF and vice-versa.


Silverlight Architecture, adapted from (Sneath, 2009) and (Czernicki, 2008)

Excepting the vector-based graphic elements (points, lines, rectangles,
ellipses, polylines, Bezier segments, shapes, geometries, animations,
transformations, timelines), Silverlight framework provides a rich set of controls -
buttons, text boxes, text blocks, combo boxes, checkboxes, radio buttons, images,
media elements, calendars, date pickers, scroll viewers, tab controls, borders, data
grids, etc, the framework can be extended also with user controls. For the positioning
of elements in the screen are used canvas, grids or stack panels, objects and their
properties being predefined within XAML structures or created, modified or destroyed
dynamically.

Methods and events allow the communication between controls within the
Silverlight framework. Ìntroduced in WPF, routed events that "invoke handlers on
multiple listeners in an element tree¨ (MSDN, 2009 C). Ìn Silverlight routed events are
used only for a small subset of events and Silverlight doesn't allow the creation of
new rooted events (MSDN, 2009 A), this affecting events propagation in element
trees, especially in custom controls. An element tree is formed by controls denoting a
relationship to each other, usually resulted from the containment of controls.

The communication between Silverlight and JavaScript is bidirectional -
JavaScript can call public elements from Silverlight controls, while JavaScript code
can be called from Silverlight. This behavior is essential in the communication
between Web pages and Silverlight.




SQL Server

SQL Server is one of the most powerful RDBMS solutions existing on the
market as scalability, availability, performance, functionality and extensibility; within
the SQL Server platform Microsoft providing also advanced analytics, reporting
services and data mining, integral part of modern architectures. Besides the intrinsic
characteristics of .Net CLR, its integration within SQL Server architecture allows
extensibility of existing functionality, an important aspect in the architecture of current
project.

Note:
vailability of Express versions for Visual Studio 2008 and SQL Server 2008
makes the two environments more accessible to programmers, though the
unavailability of several features on Express versions (e.g. Silverlight 2 is not working
under Express Visual Studio 2008, SSÌS packages in SQL Server).


Data Exchange Format

XTM is a Knowledge Ìnterchanged standard between applications, it allows
the internal representation/storage of concepts, associations, resources and
contexts, and its DTD can be used to validate XTM documents. XTM lacks in storing
other attributes inherent in the composition of a Map ÷ conceptual views, layout
coordinates and formatting styles, another downside being their relatively
complicated structure. Ìn most of the architectures it is targeted the adhesion to
standards, in the context of this project in order to use XTM a Map could be, in
theory, split in two documents ÷ a XTM document and one with the formatting and
additional content, however this leads to additional processing overhead.

Considering the fact that Silverlight is using XAML, a declarative markup
language for UÌ elements, and that the elements of a Map are in the end translated to
XAML, XAML could be used to encapsulate Maps though, same as XTM, it lacks
representational functionality for all the elements of a Map, while its consumption by
other type of applications can become cumbersome.

Ìt is preferred a more simplistic XML-based document for data exchange
between layers that would encapsulate the concepts, associations, resources,
contexts and conceptual views together with the layout elements ÷ coordinates,
styles, formatting.

<Map>
<concepts>
<concept id="" label="" x="" y="" />
</concepts>
<associations>
<association id="" label="" x="" y="" />
</associations>
<resources>
<resource id="" label="" />
</resources>
<contexts>
<context id="" label="" />
</contexts>
<conceptual-views>
<conceptual-view id="" label=""/>
</conceptual-views>
<connections>
<connection id="" from-id="" to-id="" type="" />
</connections>
</Map>

CMapTools provides a similar approach, allowing exporting a Concept Map as
a .CXL file; in parallel allow exporting a Map as an XTM concept, though the layout
elements are not saved.

XML Processing

The XML document could be stored in database as a XML structure though
the approach it is recommended only when the information contained in the file is
barely processed in the backend layer, the processing of XML structures having
lower performance than the processing of standard data types. Thus the XML
documents needs to be translated to the database schema, the storage of a Map in a
tabular structure involving the serialization of a XML structure to tables and vice-
versa. Tables are ideal also for the representation of hypergraph relations formed by
contexts and conceptual views that connect any number of concepts and
associations, the involvement of multiple nodes in a relation resulting in n to m
relations.

The extraction of information of Maps doesn't resume only to the XML
document used by the current architecture in data exchange. Nowadays there are
available a considerable number of digital Maps created with various tool, different
formats and standards, it would be useful if the Conceptual Knowledge Base could
take advantage of the them without entering the Map manually. Software tools like
CMapTools allow exporting Maps to XML structures, while others like FreeMind as
XHTML, the respective files can be parsed and loaded into CKB.

Early data extraction techniques from XML structures are based on XPath
(XML Language Path) and XQuery (XML Query), both W3C recommendations. With
.Net 3.5 framework, Microsoft introduced LÌNQ (Language Ìntegrated Query) that
allow creating queries across multiple objects, including XML files. XLÌNQ (XML to
LÌNQ) allow creating queries based on XML structures more in the database-based
query fashion. As example is given below the query built in the attempt to load in the
database the Concept/Mind Maps built with CMapTools during the research phase of
the Project. The LÌNQ-based query returns the concepts, relations, visible and hidden
comments as a collection which can be further processed in a linear manner. The
extraction of concepts and associations from a CMapTools-based Map saved as
.CXL resumes in writing a simple query:


LÌNQ-based query

Even if powerful in creating simple queries that involve set operations, LÌNQ-
based queries have their own limitations derived from the design (e.g. lambda
calculus operator matching) or the XML structures (e.g. the use of nested XML
namespace). Ìn the attempt of loading the CMapTools-based Map saved as .CXL,
the process couldn't be entirely automated because the files are using nested XML
namespaces, which creates issues when querying XML based structures, and
therefore the metadata section had to be removed manually. Ìt is true that the
respective fragment referencing namespaces could be removed using standard (non-
XML) file processing, though it can handle only a particular limited range of file
formats.


Database Schema

As mentioned above the database schema should reflect the concepts,
associations, resources, contexts and conceptual views contained by a Map together
with the layout elements ÷ coordinates, styles, formatting, to which add up the User
details and other internal structures like the relation types, languages, countries, etc.
The complete diagram of the database can be found below, while the Data Dictionary
is provided in a separate Excel file.

The Term Shell is the representation of a class of meaning, while a Term
represents the label of a Concept, referencing a class of meaning. The Term Use
was introduced for the assignation of a concept to a Map.

The Relation represents the actual associations between two concepts,
therefore referencing a Source Term and Destination Term, the denomination is
relative because association's direction is given by the Relation Type attribute, which
can have the following five values: none, implies, results from, bidirectional and self
reference.

The Map represents general information about a Map, it contains a Description
and Scope, and a reference to the Concept assigned to it. Because the Name of a
Map doesn't necessarily represent a label for a concept, the assignation of a Concept
to a Map is not mandatory.

The Context Uses represents the Contexts assigned to a Map, and it should
always reference a Term. Similarly, the Conceptual View Uses encompasses the
elements of a Map.



Database's Relation Diagram

Note:
Primary and Foreign Keys are post-fixed with "ÌD¨, Dates with "Date¨ while
boolean values with "Flag¨. Each table contains a UserÌD, the user who "created¨ the
record, and two timestamps, the CreationDate, the date when the record was
created, and the LastModifiedDate, the date when the record was modified the last
time.


References:
Czernicki, B. (2008). Silverlight 2.0 - Concepts To Become A Silverlight Master
(Series Part 3 - Blend). [Online] Available from:
http://www.silverlighthack.com/post/2008/07/25/Silverlight-20-Concepts-To-Become-
A-Silverlight-Master-(Series-Part-3-Blend).aspx (Accessed: 10 April 2009)

MSDN (Microsoft Developer Network). (2009 A). WPF Compatibility. [Online]
Available from: http://msdn.microsoft.com/en-us/library/cc903925(VS.95).aspx
(Accessed: 10 April 2009)

MSDN (Microsoft Developer Network). (2009 B). Contrasting Silverlight and WPF
[Online] Available from: http://msdn.microsoft.com/en-us/library/dd458872.aspx
(Accessed: 10 April 2009)

MSDN (Microsoft Developer Network). (2009 B). Routed Events Overview. [Online]
Available from: http://msdn.microsoft.com/en-us/library/ms742806.aspx (Accessed:
10 April 2009)

Sneath, T. (2009). Exploring the CoreCLR Ìnside Silverlight.[Online] Available from:
http://blogs.msdn.com/tims/archive/2009/03/23/exploring-the-coreclr-inside-
silverlight.aspx (Accessed: 10 April 2009)

Acronyms:
AJAX ÷ Asynchronous JavaScript and XML
ATOM ÷ Atom Syndication Format
BCL ÷ Base Class Library
CKB ÷ Conceptual Knowledge Base
CLR ÷ Common Language Runtime
COM ÷ Component Object Model
DLR ÷ Dynamic Language Runtime
DOM ÷ Document Object Model
LÌNQ ÷ Language Ìntegrated Query Language
REST ÷ Representational State Transfer
RSS ÷ Really Simple Syndication
SOAP ÷ Service Orientated Access Protocol
WCF ÷ Windows Communication Framework
WPF ÷ Windows Presentation Framework
XAML ÷ Extensible Application Markup Language
XPath ÷ XML Language Path
XQuery ÷ XML Query

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.