<!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  Approach  to  Development  of  Interactive  Adaptive  Software  Tool to Support Data Analysis Activity </article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Dmytro Orlovskyi</string-name>
          <email>orlovskyi.dm@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrii Kopp</string-name>
          <email>kopp93@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ivan Bilous</string-name>
          <email>ivanbilous2000@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>National Technical University “Kharkiv Polytechnic Institute”</institution>
          ,
          <addr-line>Kyrpychova str. 2, Kharkiv, 61001</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>   In the recent decades, databases have been used in any field of human activity to keep valuable data about ongoing processes. Large amounts of data stored in enterprise databases are useless without having a specialized software tool for data discovery or querying. Most business users that make data-driven decisions usually do not have special training and experience in database querying using special formal languages. Existing solutions are based on “query wizards” and database query forms that require knowledge of a database schema and inconvenient for users without special training. Proposed approach is based on the content-based filtering of already executed queries by usage frequency and similarity criteria in order to suggest relevant queries that may be re-used. It is a baseline of the interactive adaptive system for data analysis, which design and development is outlined in this study. Software prototype was demonstrated and its usage was discussed. Conclusions were made and future research was formulated.</p>
      </abstract>
      <kwd-group>
        <kwd> 1  Database Query</kwd>
        <kwd>Adaptive Query Interface</kwd>
        <kwd>Data Analysis</kwd>
        <kwd>Interactive Software Tool</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction </title>
      <p>Nowadays enterprise databases contain extremely large collections of transactional and aggregated
analytical data records. Such data volumes contain descriptions of hundreds or even thousands of data
entities, described by multiple various attributes of different data types. Without having interactive
and flexible querying tools, such data collections are basically useless, since no data could be
obtained for analytical processing, visualization, and decision making. Existing querying languages,
such as SQL (Structured Query Language), LINQ (Language Integrated Query), DAX (Data Analysis
eXpressions), or XQuery, need special training and experience in software engineering, database
design, and database administration. Besides querying languages, it is required to know the database
schema structure to apply these query languages. Such data preparation tasks may distract data
analysts from their primary activities, which include interpretation and communication of data
analysis results (e.g. using simple spreadsheets or data visualizations based on descriptive, or
predictive models [1]) to stakeholders. Also improper usage of database querying languages and lack
of database schema knowledge, may mislead data analysts and block problems solving.</p>
      <p>Modern database management systems are accompanied with so-called “query wizards” intended
to simplify data querying and do not require knowledge of SQL or other data querying languages.
These software components are considered as user-friendly tools that could be used by non-technical
users to build analytical reports and glean insights. On practice most data analysis problems require
integration of enterprise databases or other corporate data sources with a specialized software tool or
service. There are Business Intelligence (BI) tools focused on visual reports design (e.g. Power BI or
QlikView) [2], data science methods and models provided by a standalone software tool (e.g. RStudio
or Jupyter) [3] or libraries and frameworks (e.g. Pandas or Matplotlib) [4]. The first step for data
visualization, or even for simple data presentation using spreadsheets, is data querying. Since query
languages require skills and experience to be applied, and existing “query wizards” are limited in their
functionality and mostly are not understandable for end users, the problem of development of a
software tool for data querying becomes relevant. This software tool should provide interactive
adaptive user interface, which can be used by such users as: data analysts (if they for some reason do
not have special training in database management systems), business analysts, top managers, or board
members.</p>
      <p>Therefore, this study proposes an approach to development of interactive adaptive software tool to
support data analysis activity that is considered as the research objective. Research subject includes
the approach to development of interactive adaptive software tool. This study aims to decrease
complexity of data analysis process by supporting related activities with the interactive adaptive
software tool.</p>
      <p>This paper consists of six sections. First section introduces research problem and is already
outlined. Second section demonstrates literature review and problem relevance. In third section a
formal problem statement is given. Fourth section includes description of a recommending procedure,
elicited software requirements, a database structure, and a system design. Software prototype usage
and its discussion is outlined in fifth section. Sixth section includes conclusions and a future research
statement.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Literature Review </title>
      <p>Analysis of the state-of-the-art has demonstrated that considered research topic is already covered
by several studies. Tang et al. in [5] proposed a database query form (DQF) interface used to generate
query forms based on captured user’s preferences. In these DQF preferences are gathered to rank
query form components in order to assist users in making decisions. Query form generation process
outlined in [5] is iterative and is guided by users: among proposed lists of components users may
choose desired ones in order to include into the query form. At each iteration users can submit their
forms and adjust DQF until they are satisfied with the obtained response [5].</p>
      <p>The term DQF introduced in [5] then appeared in multiple research studies. Authors of [6] propose
a DQF system based on user interactions captured in order to adapt questions submitted through query
forms. Proposed procedure is also iterative, which means that form could be dynamically refilled till
the user satisfies with query results [6]. Paper [7] proposes a survey on DQF approach and reviews its
core concepts: query form interfaces, interface components ranking metrics, and estimation of ranking
score. The DQF survey also surveyed in [8], where four functional modules of DQF software systems
are considered: query form enrichment module, query execution module, customizable query form,
and query recommendation module. It is also concluded in all of the considered survey papers that
dynamic database querying approach results in higher success rate and easier usage in compare to
static database querying approach [6, 7, 8].</p>
      <p>Minor contributions to DQF proposed in [5] were made by authors of [9] and [10], while
substantial contribution was made by Dagade and Bhonsle, who proposed search optimization for
dynamic query form approach or SODQF, which is based on keywords in addition to user feedbacks,
as the idea for further development [11]. The keywords based DQF is proposed in [12], which authors
also consider queries as items for the collaborative filtering approach in order to provide
recommendations. There are also many papers devoted to DQF study, such as [13, 14, 15, 16, 17, 18,
19]. All of this papers are based on previously developed concept of DQF, while proposing some
adjustments and improvements to the core idea. For example, in [13] the focus is made on elaboration
of differences in DQF application to SQL and NoSQL databases. In [14] authors propose to develop
methods to capture user preferences to replace direct feedbacks. Authors of [15] propose an
alternative to DQF called auto query forms (AQF) that take queries written in human understandable
language and translate them into SQL queries using natural language processing (NLP) methods.
Performance measurement of DQF approach was made in paper [16], authors of [17] elaborated the
algorithm for DQF generation, and query form formalization was made in [18].</p>
      <p>While previously mentioned papers considered mostly SQL baseline and relational databases, in
study [19] authors also consider DQF with iterative search and query enhancements by users
feedbacks and responses, but with the use of document-oriented NoSQL database management
systems based on JSON (JavaScript Object Notation) structures like MongoDB [19]. Usage of DQF
approach for NoSQL databases also considered in research [20], where obtained results of
performance comparison between SQL based and NoSQL database management systems demonstrate
prevalence of relational databases in terms of querying performance.</p>
      <p>Fig. 1 demonstrates rapid increase of DQF research topic popularity after it was mentioned for the
first time in 2013 by authors of [5]. However, after 5 years of presumably insufficient results or lack
of practical implementations, it does not seem really popular (see Fig. 1). Publications statistics
outlined in Fig. 1 was received from Google Scholar as the most comprehensive index of research
papers.</p>
      <p>The problems of DQF technique mentioned in two other survey and review papers [21, 22] related
to ranking of suggested queries or form components, high complexity of formal querying languages
for end users, and inconvenience when working with large database schemas. Considering such
problems remaining after years of research and unfair lack of interest for such promising, by our
opinion, research topic, the DQF approach should be elaborated in this study in order to develop
interactive adaptive software tool to support data analysis activity.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Formal Problem Statement </title>
      <p>The interactive adaptive software system for data analysis is supposed to be utilized by two types
of users: administrator and analyst. Administrator should be responsible for data sources connections
and configuration, analysts profiles creation, and management of their permissions. Analyst can run
queries to data sources with possibility of further visualization of obtained results. Administrator
should be able to use the same functionalities that analyst can use.</p>
      <p>When using this system, administrator should configure a workspace for analysts. The
configuration process starts with analysis of business requirements received from managers or other
stakeholders who are responsible for data-driven decision making. Then, administrator should add
required data sources using their properties. Usually these properties are server name, database name,
login and password. At the next stage administrator should prepare queries (e.g. using stored
procedures on the server side) and provide additional information on their parameters. Then
administrator creates user profiles for analysts and grants permissions: which data sources certain
analysts could access and which queries they could execute. Querying tools are essential for the
proposed system. That is why prepared queries, presented as stored procedures, should be described
with the metadata sufficient for their displaying as graphical user interface (GUI) forms.</p>
      <p>Using provided GUI analyst could query connected data sources without knowledge of SQL or
other database languages. Using different interface components user could provide parameters for
attributes demonstration, records filtering, and other stored procedure features. When preparing
queries analysts may use instructions of stakeholders and use required data source, query, and
corresponding parameters. Formed using GUI query then executed and received data are displayed on
the screed ready for further processing and visualization. The system of adaptive interfaces includes
recommending techniques for analytical queries. System should observe user activity and capture
statistics of queries execution. Using this statistics analysts may receive recommendations of queries
the most similar to queries executed before. Recommendations should be formulated for each data
source (e.g. stored procedure). Structural model of such system is demonstrated on the IDEF0
diagram below (Fig. 2).</p>
      <sec id="sec-3-1">
        <title>Figure 2: Structural model of the analytical queries recommending system </title>
        <p>Recommending algorithm should analyze query execution statistics and define frequencies of
query execution in order to detect relevant queries. Three most frequently used queries should be
compared to remaining queries in order to detect two most similar queries for each of the most
frequently used ones. Therefore, there will be proposed nine most relevant queries for data analytics.
Such number of recommended queries (9 items) originates from the statement that human perception
allows to take into account 7±2 objects at once. Recommending mechanisms provide interactive
querying system that may adapt to user’s preferences. Formulated suggestions are optional and not
mandatory to follow.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Proposed Approach </title>
    </sec>
    <sec id="sec-5">
      <title>4.1. Recommending Procedure </title>
      <p>Proposed approach is based on the content-based filtering approach. Users get recommendations of
those queries, which are similar to the queries executed by them before. The underlying idea
considers capturing statistics of queries execution by users and therefore it becomes possible to
formulate the list of frequently executed queries for each user by each data source.</p>
      <p>Let us briefly describe proposed recommending procedure:
 At first, three most frequent queries should be chosen.
 Then for each of the most frequent queries, selected at first step, should be chosen two most
similar to them queries within corresponding data sources. Similarity between two queries could
be calculated using analysis of their SQL code.
 As the result, the list of nine recommended queries should be formulated.</p>
      <p>Most of recommending systems that support content-based filtering approach use keyword
matching or vector space model (VSM) with simple TF-IDF weighting [23].</p>
      <p>VSM is the algebraic representation of document collection using vectors that belong to the vector
space common for the whole document collection. TF-IDF is the statistical indicator used to evaluate
importance of terms (words) within the context of a document that belongs to the document collection
(corpus). Weight (importance) of the term is directly proportional to the frequency of such term use in
a document and inversely proportional to the frequency of such term use in remaining documents of
the collection [23].</p>
      <p>The usage of the considered recommending procedure is demonstrated in Fig. 3.</p>
      <p>According to the proposed recommending procedure, SQL statements that correspond to queries
are considered as documents. Document collection includes the set of all SQL statements accessible
to the user within a corresponding data source.</p>
      <p>Therefore, formal description of the proposed recommending procedure is based on the pair:</p>
      <p>
        D, T ,   (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) 
where:

      </p>
      <p>D  {d1, d 2 ,, d m } is the collection of SQL statements (documents), d j , j  1, m is the SQL
statement (document) represented as the vector of length n , and m is the number of SQL
statements (documents) within the collection [23];
 T  {t1, t2 ,, tn } is the general vocabulary of the document collection, which contains n
terms (pairs of parameter names and values of SQL statements that call stored procedures) [23].</p>
      <p>
        Each document (SQL statement) d j , j  1, m of the collection defined in (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) could be represented
as the vector of length n :
d j  {w1 j , w2 j ,, wnj },  
(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) 
where wkj is the weight of the term (represented by the pair of parameter name and value of the SQL
statement that calls a stored procedure) tk , k  1, n in the document d j , j  1, m .
      </p>
      <p>Documents representation using VSM allows weighting terms and detecting similarity of
document vectors.</p>
      <p>TF-IDF weighting approach is based on the following empirical assumptions [23, 24]:
 Rare terms are not less relevant than frequent terms (so called IDF assumption).
 Multiple occurrences of a term in the document make it less relevant than single occurrence
of a term in the document (so called TF assumption).
 Documents of large size do not have advantage over small documents (so called
normalization assumption).</p>
      <p>
        Hence, terms that occur in one document, but rarely occur in remaining documents, are more often
relevant to the document’s topic. Also normalization of result vectors of weights allow avoiding large
documents’ advantage. These assumptions are demonstrated by the TF-IDF function [24]:
n j  log m ,   (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) 
TF IDF(tk , d j )  n
 nl
l1
nk
where:




m is the number of documents (SQL statements) within the collection;
nk is the number of documents within the collection of SQL statements, in which the term
tk , k  1, n occurs at least once;
n j is the number of times the term tk , k  1, n occurs in the document d j , j  1, m (
        <xref ref-type="bibr" rid="ref2">2</xref>
        );
nl is the number of times each term tl , l  1, n occurs in the document d j , j  1, m (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ).
 |T| 
wkj  TF IDF(tk , d j )    TF IDF(tk , d j )2  , k  1, n, j  1, m.  
      </p>
      <p> s1 </p>
      <p>
        Cosine similarity measure could be used to calculate similarity between two vectors of normalized
TF-IDF measures (
        <xref ref-type="bibr" rid="ref4">4</xref>
        ) [23]:
(
        <xref ref-type="bibr" rid="ref4">4</xref>
        ) 
1
n  n n 
sim(di , d j )   (wki  wkj )    wk2i   wk2j  ,i  j,i  1, m, j  1, m.  
      </p>
      <p>k1  k1 k1 </p>
      <p>Besides cosine similarity, there may be used other measures, such as Jaccard similarity [26] or
even adjusted cosine-based similarity measures, such as soft cosine similarity [27].</p>
      <p>
        Using equation (
        <xref ref-type="bibr" rid="ref5">5</xref>
        ), the most frequently used queries should be compared to remaining queries that
belong to the collection of SQL statements D . For three of the most frequently used queries,
remaining queries with the highest similarity scores are then selected in order to provide
recommendations within respective data source. In this study we consider data sources as stored
procedures also known as executable routines hosted on a database server. Unlike related papers that
consider both SQL and NoSQL databases, in this study we focus on relational database management
systems (DBMS) only, since among the most widely used and popular DBMS at are still SQL-based
systems, such as Oracle, MySQL, Microsoft SQL Server, or PostgreSQL [28]. User-defined stored
procedures are created by DBA for encapsulation, security, and performance reasons. On practice
stored procedures implement parameterized queries on the server side to provide business logic for
various heterogeneous clients. According to the proposed approach, stored procedures should be used
as data sources for adaptive interactive querying tools. For each of these data sources (stored
procedures) the set of its calls exists. The SQL query to call a stored procedure includes its name and
the list or parameters. Sample SQL query that calls the stored procedure to obtain the list of students
by the year of admission and country of origin is shown below:
      </p>
      <p>
        EXEC GetStudents @Year = '2020', @Country = ' Turkey';   (
        <xref ref-type="bibr" rid="ref6">6</xref>
        ) 
For example, such stored procedure is called ten times with different parameters. Table 1 shows
data gathered using these calls: documents collection D  {d1, d 2 ,, d10} of ten SQL queries used to
call the stored procedure with different parameters (used as terms in pairs with their names).
(
        <xref ref-type="bibr" rid="ref5">5</xref>
        ) 
Therefore, e.g. documents d1 and d 4 could be represented using the following vectors:
d1  {0.71,0,0,0,0.71,0,0,0}, d 4  {0,0.5,0,0,0.87,0,0,0}.  
      </p>
      <p>
        These vectors were obtained using equations (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) and (
        <xref ref-type="bibr" rid="ref4">4</xref>
        ), while similarity between d1 and d 4
could be calculated using (
        <xref ref-type="bibr" rid="ref5">5</xref>
        ) applied to the vectors of document weights (
        <xref ref-type="bibr" rid="ref7">7</xref>
        ), sim(d1, d 4 )  0.61 .
      </p>
      <p>There is also another document exists, which similarity is greater than zero when compare it to the
d1 document, it is d 7 :</p>
      <p>
        d1  {0.71,0,0,0,0.71,0,0,0}, d7  {0.6,0,0,0,0,0,0,0.8}.   (
        <xref ref-type="bibr" rid="ref8">8</xref>
        ) 
      </p>
      <p>
        Similarity between d1 and d 7 calculated using (
        <xref ref-type="bibr" rid="ref5">5</xref>
        ) applied to the vectors of document weights (
        <xref ref-type="bibr" rid="ref8">8</xref>
        )
is sim(d1, d7 )  0.42 . Therefore, there are two queries that should be recommended as relevant to (
        <xref ref-type="bibr" rid="ref6">6</xref>
        ):
      </p>
      <p>
        EXEC GetStudents @Year = '2017', @Country = ' Morocco';
Obtained queries (
        <xref ref-type="bibr" rid="ref9">9</xref>
        ) are similar to (
        <xref ref-type="bibr" rid="ref6">6</xref>
        ) by one of the year or country parameter values.
The workflow of recommending procedure is demonstrated in Fig. 4.
 
(
        <xref ref-type="bibr" rid="ref7">7</xref>
        ) 
(
        <xref ref-type="bibr" rid="ref9">9</xref>
        ) 
      </p>
      <p>Demonstrated workflow is the baseline of the interactive adaptive data analytics system proposed
in this paper. Software requirements, database schema, and system design are outlined in following
sub-section. Prototype demonstration and discussion are given in section 5.
4.2.</p>
    </sec>
    <sec id="sec-6">
      <title>Software Requirements </title>
      <p>There are two kinds of users that may interact with the system of adaptive interactive interfaces:
 Database administrators (DBA).</p>
      <p> Data analysts (DA).</p>
      <p>Preliminary domain analysis has led to the functional requirements (FR) for the system under
design demonstrated in Table 2.</p>
      <sec id="sec-6-1">
        <title>Details </title>
      </sec>
      <sec id="sec-6-2">
        <title>Manages data source connections (connects, disconnects, and modifies  connection properties) </title>
      </sec>
      <sec id="sec-6-3">
        <title>Manages analytical queries and corresponding stored procedures  (creates new and modifies existing ones) </title>
      </sec>
      <sec id="sec-6-4">
        <title>Manages DA profiles (creates, modifies, and disables) and profile  privileges for data access </title>
      </sec>
      <sec id="sec-6-5">
        <title>Runs available analytical queries within granted data sources </title>
      </sec>
      <sec id="sec-6-6">
        <title>Searches over, visualizes, or exports received datasets to Microsoft </title>
      </sec>
      <sec id="sec-6-7">
        <title>Excel spreadsheets </title>
      </sec>
      <sec id="sec-6-8">
        <title>Receives recommendations and suggestions for analytical queries </title>
      </sec>
      <sec id="sec-6-9">
        <title>Searches over available data sources, analytical queries, and  visualization tools </title>
        <p>As it is outlined in Table 2 above, DBA should be able to access the same functionality accessible
to DA. Functional requirements are demonstrated on SysML requirements diagram [29] below (Fig.
5), which clarifies user roles, granted permissions, and responsibility areas.</p>
        <p>Also there were formulated non-functional requirements for the system of adaptive interactive tool
for data analysis activities. Elicited non-functional requirements (NFR) include performance,
usability, security, and reliability requirements (Table 3).</p>
        <p>Table 3 </p>
      </sec>
      <sec id="sec-6-10">
        <title>Elicited non‐functional requirements  Attribute  Performance  Requirement </title>
      </sec>
      <sec id="sec-6-11">
        <title>Details </title>
      </sec>
      <sec id="sec-6-12">
        <title>System should respond in a reasonable time even for complex  queries and large data sets </title>
      </sec>
      <sec id="sec-6-13">
        <title>Graphical user interface should be friendly and convenient for end </title>
        <p>users without knowledge of SQL and database schema </p>
      </sec>
      <sec id="sec-6-14">
        <title>User’s actions should be restricted according to their privileges  and responsibility areas (DBA or DA) </title>
      </sec>
      <sec id="sec-6-15">
        <title>Users’ accounts should be disabled if suspicious activity detected </title>
      </sec>
      <sec id="sec-6-16">
        <title>System should be resistant to errors and user’s actions should not  damage connected data sources </title>
      </sec>
      <sec id="sec-6-17">
        <title>States of user’s workspace should be periodically saved for  recovery purposes </title>
        <p>For each of NFR outlined in Table 3 should be given specific formal or even numerical measures
to verify future software system. Non-functional requirements are demonstrated on SysML
requirements diagram [29] below (Fig. 6), which clarifies measurable quality attributes.</p>
        <p>Recommending system should have its own database to store user profiles and privileges,
connected data sources, and configured analytical queries.
4.3.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Database Structure </title>
      <p>Besides storing user profiles, data sources, and queries, the database should contain captured usage
statistics to utilize it for recommending purposes.</p>
      <p>The data model, which describes database tables and relationships, is shown in Fig. 7.</p>
      <p>Demonstrated data model includes entities for generic user, as well as for administrators and
analysts with their own attributes. Administrators attach databases of different types assigned to
analysts, stored procedures, and given recommendations. Stored procedures are described by
parameter names and data types. Attributes of datasets produced by stored procedures are also
considered. Stored procedures are assigned to analysts according to permissions configured by
administrators. Each query run is stored in order to capture usage statistics for recommending
purposes.
4.4.</p>
    </sec>
    <sec id="sec-8">
      <title>System Design </title>
      <p>Let us start system design description with the dynamic models based on CMMN (Case
Management Model and Notation) graphical diagrams [30]. When user selects desired data source
from the dropdown list with the search feature, respective stored procedures appear in the left side of
application’s window, while recommended analytical queries appear in the right side of the window.
Administrators can access all attached databases and stored procedures used as data sources for
analytical queries, while analysts can access only databases and stored procedures according to their
privileges. Both lists could be filtered by name of a database or stored procedure respectively. After
certain query is executed, a modal window is displayed to provide parameters of a stored procedure
(to filter produced dataset by rows) and choose desired attributes (to filter produced dataset by
columns). After query is executed, result set of records is demonstrated. Recommended queries
already have relevant parameters and attributes and do not need to be additionally configured.</p>
      <p>Case management notation is the novel technique for description of ad-hoc processes [30],
including ad-hoc analytical data querying. The CMMN model that describes query execution using
the interactive adaptive software system for data analysis is shown in Fig. 8.</p>
      <sec id="sec-8-1">
        <title>Figure 8: Case management model of the interactive adaptive system for data analytics </title>
        <p>User interface structure of analytical querying could be described using the IFML (Interaction
Flow Modeling Language) [31] diagram, which describes user interaction, interface structure, and
behavior of the software system. The IFML model that describes analytical querying GUI structure
and behavior is displayed in Fig. 9.</p>
      </sec>
      <sec id="sec-8-2">
        <title>Figure 9: Interaction flow model of the interactive adaptive system for data analytics </title>
        <p>Obtained result dataset allows search over, export to Microsoft Excel, or visualization using graphs
and charts that fit considered data.</p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>5. Results and Discussion </title>
    </sec>
    <sec id="sec-10">
      <title>5.1. Software Architecture </title>
      <p>The software prototype was implemented according to design principles of ad-hoc analytical
queries support (Fig. 8) and user interaction behavior (Fig. 9) outlined in previous section. The
software design is demonstrated in Fig. 10 using components deployment diagram.</p>
      <sec id="sec-10-1">
        <title>Figure 10: Software architecture model of the interactive adaptive system for data analytics </title>
        <p>As it is shown in Fig. 10, the software prototype should be implemented using the three-tier
clientserver architecture consisting of the following nodes and components:
 Client tier containing only the web-browser as a “thin” client that provides user interface built
using the Vue.js JavaScript framework.
 Application server tier containing Node.js back-end application that implements business
logic and handles HTTP (HyperText Transfer Protocol) requests, and responses to interact with the
client side. Application server uses database drivers to interact with database servers.
 Database server containing Microsoft SQL Server database that stores user profiles and
granted permissions, data source connection properties, analytical queries, and usage statistics.</p>
        <p>At this moment developed software prototype supports connection to Microsoft SQL Server as the
source database server, while it is planned to extend its integration capabilities to support other widely
used relational DBMS, such as MySQL or PostgreSQL [28].
5.2.</p>
      </sec>
    </sec>
    <sec id="sec-11">
      <title>Software Prototype Demonstration </title>
      <p>The software prototype currently is under development, however, its generic functionality is
already implemented. Fig. 11 demonstrates querying interface that works with connected database
servers and stored procedures hosted on these database servers. The user interface is developed
according to ad-hoc data querying principles and information flows outlined in CMMN (Fig. 8) and
IFML (Fig. 9) models respectively. Generic GUI areas are:
 Database connection properties.
 Stored procedures displayed for each of attached databases.
 Recommended queries displayed for each of stored procedures.
 Querying form that could be filled by users manually for a certain stored procedure or could
be filled automatically based on suggested relevant queries.</p>
      <p>As it is shown in Fig. 11 above, users first of all should select a database to work with. If
necessary, new database connection could be created (this feature shall be used only by DBA and will
be invisible for users). It is planned to allow using multiple relational DBMS in the same environment
(e.g. MySQL, Microsoft SQL Server, Oracle, and PostgreSQL as the most popular and widely used
database systems). However, connected database systems should be of client-server architecture, since
using of file-server databases, such as Microsoft Access or SQLite, is not planned, since they usually
do not support stored procedures and used as embedded or small ledgers. Database connection
properties could be configured by DBA or even removed if necessary. Also DBA can manage stored
procedures and users assigned to each of database connection profiles.</p>
      <p>When a certain database connection selected, the list of stored procedures available for this
database is displayed. Besides the meaningful name that hides a system name of the stored procedure,
the list of parameters is outlined for each of stored procedures together with its brief textual
description. Each of demonstrated parameters is accompanied with the respective data type,
multiplicity, and optionality.</p>
      <p>For each of stored procedures users can get recommended queries suggested using recommending
procedure introduced in section 4.1 (Fig. 4). The querying form is available for manual input,
however, when user selects specific item from the list of recommended queries, the form is filled with
respective values of filtering parameters. Such feature simplifies significantly repetitive access to
certain data sets with minimum efforts required from the user (when no changes are necessary and
recommended query could be executed as-is, or when one or two filtering values should be changed
for “what-if” analysis or other ad-hoc purposes). The list of recommended queries includes three most
popular ones, ordered by their usage frequencies, and then six queries – two most similar for each of
three most popular ones, ordered by their similarity values. However, users may expand the list of
suggested queries in order to access all of the relevant queries (beyond the threshold of two most
similar queries for each of three most frequently used queries) ordered by their similarity values (to
three most popular queries). In order to distinguish obtained recommendations, queries should be
identified by their names given by users when these queries are executed for the first time.</p>
    </sec>
    <sec id="sec-12">
      <title>6. Conclusion and Future Work </title>
      <p>In this paper we have proposed an approach to development of interactive adaptive software tool
for data analysis based on the content-based filtering approach. Outlined recommending procedure
captures usage statistics of database queries and suggests the most relevant ones among previously
used queries based on usage frequency and similarity criteria. According to the proposed
recommending procedure, the system works with SQL queries used to access attached data sources
(we use stored procedures or routines as data sources, since they are representing a good practice of
database schema securing and encapsulation for usage by multiple applications and clients). These
SQL queries that call data sources are treated as documents, while pairs of parameter names and
values are used as terms for content-based filtering. Suggested queries as the most relevant to a
particular stored procedure then could be used as given with pre-defined parameter values or partially
changed parameter values in order to reuse queries executed before, or run some ad-hoc inquires
respectively. The software tool that should be developed according to the proposed approach currently
is implemented as a prototype with limited functionality. However, it allows to connect Microsoft
SQL Server databases to access provided data sources, execute SQL queries, and receive
recommendations. In future the software should be completed to fulfill all of the elicited
requirements, such as user roles and permissions, and connection to multiple DBMS servers. It is also
planned to elaborate recommending procedure by considering advanced filtering techniques,
similarity measures, and thresholds in order to provide suggestions adjustable by users.</p>
    </sec>
    <sec id="sec-13">
      <title>7. References </title>
      <p>
        [13] A. V. S. Kumar, O. Devakiran, Dynamic Query Forms for Ad-Hoc Queries on Databases,
International Journal of Scientific Engineering and Technology Research 3(36) (2014) 7176–
7179.
[14] G. H. K. Reddy, A. Bhattacharjya, S. S. Rawat, S. Reddy, Multiple Methods for Detection of
User Priority of Dynamic Query Forms on Databases, International Journal of Scientific
Engineering and Technology Research 4(31) (2015) 6005-6008.
[15] R. B. Sangore, P. P. Bhavsar, M. S. Patil, T. M. Chaudhari, An Alternative For Database
Queries:Auto Query Forms, International Journal of Advanced Research in Computer and
Communication Engineering 4(
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) (2015) 94–96. doi:10.17148/IJARCCE.2015.4322
[16] G. Radhakrishnan, S. S. Babu, Creation of Dynamic Query Forms and Ranking of its
Components based on User’s Preference, International Journal of Innovative Research in
Computer and Communication Engineering 3(
        <xref ref-type="bibr" rid="ref8">8</xref>
        ) (2015) 7326–7332.
doi:10.15680/IJIRCCE.2015.0308028
[17] G. S. G. Pavan Kumar, S. U. Maheswara Rao, Generating Efficiency and Robustness Dynamic
Query Forms for Advanced Database Queries, International Journal of Research in Information
Technology 4(
        <xref ref-type="bibr" rid="ref9">9</xref>
        ) (2016) 42–51.
[18] K. Srinivasarao, G. R. Bharathi, Automated Creation of a Database Queries by using Dynamic
Query Forms, International Journal of Scientific Engineering and Technology Research 5(
        <xref ref-type="bibr" rid="ref4">4</xref>
        )
(2016) 0609–0612.
[19] K. Ozarkar, R. Rajani, Optimization Technique for Efficient Dynamic Query Forms with
      </p>
      <p>
        NoSQL, International Journal of Science and Research 3(
        <xref ref-type="bibr" rid="ref11">11</xref>
        ) (2014) 2041–2044.
[20] D. Pagaro et al., Dynamic Query Forms for Non-Relational Database, International Journal of
      </p>
      <p>
        Advanced Engineering, Management and Science 2(
        <xref ref-type="bibr" rid="ref6">6</xref>
        ) (2016) 552–555.
[21] P. S. Revathy, A survey paper on dynamic query forms for database queries, International
      </p>
      <p>
        Journal of Advance Research in Computer Science and Management Studies 2(
        <xref ref-type="bibr" rid="ref9">9</xref>
        ) (2014) 65–69.
[22] J. M. Jambukar, M. B. Vaidya, A Review paper on Construction of Query Forms, International
      </p>
      <p>
        Journal of Computer Science and Information Technologies 6(
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) (2015) 2426–2428.
[23] F. Ricci, L. Rokach, B. Shapira, B. P. Kantor, Recommender Systems Handbook, Springer US,
2011. doi:10.1007/978-0-387-85820-3
[24] R. Manjula, A. Chilambuchelvan, Content Based Filtering Techniques in Recommendation
System using user preferences, International Journal of Innovations in Engineering and
Technology 7(
        <xref ref-type="bibr" rid="ref4">4</xref>
        ) (2016) 149–154.
[25] J. M. Pazzani, D. Billsus, Content-Based Recommendation Systems, in: Brusilovsky P., Kobsa
A., Nejdl W. (Eds.), The Adaptive Web. Lecture Notes in Computer Science, Springer, Berlin,
Heidelberg, 2007, pp. 325–341. doi:10.1007/978-3-540-72079-9_10
[26] S. Gupta, Overview of Text Similarity Metrics in Python, 2018. URL:
https://towardsdatascience.com/overview-of-text-similarity-metrics-3397c4601f50.
[27] P. Sitikhu, K. Pahi, P. Thapa, S. Shaya, A Comparison of Semantic Similarity Methods for
      </p>
      <p>Maximum Human Interpretability, 2019. URL: https://arxiv.org/pdf/1910.09129.pdf.
[28] DB-Engines Ranking. URL: https://db-engines.com/en/ranking.
[29] SysML FAQ: What is a Requirement Diagram and how is it used? URL:
https://sysml.org/sysmlfaq/what-is-requirement-diagram.html.
[30] Case Management Model and Notation. URL: https://www.omg.org/cmmn/.
[31] Scope – IFML: The Interaction Flow Modeling Language. URL: https://www.ifml.org/scope/.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>SHRM</given-names>
            <surname>Survey Findings</surname>
          </string-name>
          ,
          <source>Jobs of the Future: Data Analysis Skills</source>
          ,
          <year>2016</year>
          . URL: https://www.shrm.org/hr-today/trends-and-forecasting/research-and-surveys/Documents/DataAnalysis-Skills.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>[2] SelectHub, Competitive report: Tableau vs</article-title>
          .
          <source>QlikView vs</source>
          .
          <source>Power BI</source>
          ,
          <year>2019</year>
          . URL: https://www.smetricinsights.com/wp-content/uploads/2019/05/
          <string-name>
            <surname>Tableau-VS-QlikView-VSPower-BI-</surname>
          </string-name>
          2019
          <source>-Update.pdf.</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J. W.</given-names>
            <surname>Nicklas</surname>
          </string-name>
          et al.,
          <article-title>Supporting distributed, interactive Jupyter and RStudio in a scheduled HPC environment with Spark using Open OnDemand</article-title>
          ,
          <source>in: Proceedings of the Practice and Experience on Advanced Research Computing, PEARC'18</source>
          ,
          <year>2018</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          . doi:
          <volume>10</volume>
          .1145/3219104.3219149.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>F.</given-names>
            <surname>Nelli</surname>
          </string-name>
          ,
          <article-title>Python Data Analytics: With Pandas, NumPy, and</article-title>
          <string-name>
            <surname>Matplotlib</surname>
          </string-name>
          , Apress, Berkeley, CA,
          <year>2018</year>
          . doi:
          <volume>10</volume>
          .1007/978-1-
          <fpage>4842</fpage>
          -3913-1.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>L.</given-names>
            <surname>Tang</surname>
          </string-name>
          et al.,
          <article-title>Dynamic query forms for database queries</article-title>
          ,
          <source>IEEE transactions on knowledge and data engineering</source>
          <volume>9</volume>
          (
          <issue>26</issue>
          ) (
          <year>2013</year>
          )
          <fpage>2166</fpage>
          -
          <lpage>2178</lpage>
          . doi:
          <volume>10</volume>
          .1109/TKDE.
          <year>2013</year>
          .
          <volume>62</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>P. P.</given-names>
            <surname>Nikam</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          <article-title>Review on Dynamic Query Forms for Database Queries</article-title>
          ,
          <source>International Journal of Computer Science and Information Technologies</source>
          <volume>5</volume>
          (
          <issue>6</issue>
          ) (
          <year>2014</year>
          )
          <fpage>8079</fpage>
          -
          <lpage>8081</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>V.</given-names>
            <surname>Jadhav</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Priyadarshi</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          <article-title>Survey on Database Queries by using Dynamic Query Forms</article-title>
          ,
          <source>International Journal of Science and Research</source>
          <volume>3</volume>
          (
          <issue>11</issue>
          ) (
          <year>2014</year>
          )
          <fpage>1157</fpage>
          -
          <lpage>1159</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S. S.</given-names>
            <surname>Baravkar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gupta</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          <article-title>Survey on Dynamic Query Forms for Database Queries</article-title>
          ,
          <source>International Journal of Science and Research</source>
          <volume>3</volume>
          (
          <issue>6</issue>
          ) (
          <year>2017</year>
          )
          <fpage>1566</fpage>
          -
          <lpage>1568</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>M. M. Jisha</surname>
            ,
            <given-names>M. A.</given-names>
          </string-name>
          <string-name>
            <surname>Jacob</surname>
          </string-name>
          ,
          <article-title>Dynamic Query Forms for Database Queries</article-title>
          ,
          <source>International Journal of Engineering Research &amp; Technology</source>
          <volume>5</volume>
          (
          <issue>7</issue>
          ) (
          <year>2016</year>
          )
          <fpage>217</fpage>
          -
          <lpage>223</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>K. L. Jaiswal</surname>
            ,
            <given-names>S. S.</given-names>
          </string-name>
          <string-name>
            <surname>Joshi</surname>
          </string-name>
          , Dynamic Query Form Generation,
          <source>International Journal of Emerging Technologies in Engineering Research</source>
          <volume>5</volume>
          (
          <issue>4</issue>
          ) (
          <year>2017</year>
          )
          <fpage>95</fpage>
          -
          <lpage>97</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>P.</given-names>
            <surname>Dagade</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Bhonsle, Espionage on Search Optimization using Dynamic Query Form</article-title>
          ,
          <source>International Journal of Engineering Research and General Science</source>
          <volume>2</volume>
          (
          <issue>6</issue>
          ) (
          <year>2014</year>
          )
          <fpage>380</fpage>
          -
          <lpage>386</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>G.</given-names>
            <surname>Patle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Uikey</surname>
          </string-name>
          , E. Meshram,
          <article-title>Ranked Based Dynamic Query Forms for Database Queries</article-title>
          ,
          <source>International Journal of Scientific Research in Computer Science, Engineering and Information Technology</source>
          <volume>5</volume>
          (
          <issue>2</issue>
          ) (
          <year>2019</year>
          )
          <fpage>1209</fpage>
          -
          <lpage>1212</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>