Cloud Classification using PCA

Shared by: yaofenjin
Categories
Tags
-
Stats
views:
5
posted:
8/27/2011
language:
English
pages:
133
Document Sample
scope of work template
							    FINAL YAER PROJECT REPORT




           Intelligent Book


                   By


    Farheena Jawed   7870           BSE
    Kiran Razzak     7872           BSE
    Mehwish M.Saleem 7875           BSE




Institute of Management & Computer Science

        Bahria University Karachi

                  2009
                    Final Year Project Report


                           Intelligent Book


                                 By




               Farheena Jawed   7870            BSE
               Kiran Razzak     7872            BSE
               Mehwish M.Saleem 7875            BSE




Project Advisor: Sir Faiz-ul-Haque Ziya


Deliverable
      Report 1 Volume
      Program 1 Diskette


         Institute of management & Computer Science


                 Bahria University Karachi 2009




                                                      2 of 133
                             Submission Proforma

Name (1) Farheena Jawed
       (2) Kiran Razzak
       (3) Mehwish M.Saleem



Intelligent Book
Mr.Faiz-ul-Haque Ziya



This report is submitted as required for the Project in accordance with the rules laid down
by the Bahira University as part of the requirements for the award of the degree of
Bachelor of Engineering. I declare that the work presented in this report is my own
except where due reference or acknowledgement is given to the work of others.


Signatures of students                       Date


(1)……………………………..                                     ……………………..
(2)…………………………….                                      …………………….
(3)……………………………..                                     …………………….




Signature of Supervisor                              Date


………………………….                                          ……………………….




                                                                                   3 of 133
                               Acknowledgments

We are deeply thankful to our supervisor Prof. Faiz-ul-Haque Zeya from the Bahria
University whose help, thought-provoking suggestions and encouragement helped us in
all the time of research for and completing of this research project.
Our colleagues supported us in our research project. We want to thank them for all their
help, support, interest and valuable intimations.
Especially, we would like to give our special thanks to ALLAH who enabled us to
complete this project.




                                                                                4 of 133
                                       Abstract


There are lots of books on specific subjects but if we want to find a book for a particular
topic within a subject then the current technology is of no help. The Intelligent Book
project aims to provide facility to generate dynamic chapters or mini book on subject‘s
sub-topic. This will help in saving time of people of multiple domains specifically
students and teachers. This will be beneficial for anyone who needs to understand a topic
given multiple options to read from.
Keywords- Dynamic book generation, intelligent book, artificial intelligence, definition,
explanation, example, WordNet.




                                                                                   5 of 133
                                                Table of contents

1. INTRODUCTION………………………………………………………………........1
1.1 Purpose………………………………………………………………………………...1
1.2 Problem………………………………………………………………………………..1
1.3 Structure of the Report………………………………………………………………...2
2. BACKGROUND AND LITERATURE REVIEW………………………………….3
2.1 Generic Text Summarization using WordNet………….……………………………...3
2.2 Using Lexical Chains for Text Summarization…………………………………….....4
2.3 Building Summaries Using Lexical Chains………………...…………………….…...5
2.4 MIT Project....................................................................................................................6
2.5 Reordering Sentences....................................................................................................7
3. AIM AND STATEMENT OF PROBLEM……………………………………...…12
4. SCOPE OF PROJECT……………………………………………………………....13
5. ANALYSIS………………………………..ERROR! BOOKMARK NOT
DEFINED..................................................................15
5.1 Requirement Capture………….…………….....................................………………...3
5.2 Project Overview Statement……………………….............................…………….....4
5.3 Feasibility Study………………...…………………….…...........................................5
5.4 Stakeholder Analysis....................................................................................................6
5.5 Risk Analysis and Management....................................................................................7
5.6 System Context Diagram...............................................................................................
5.7 System Use case Diagram................................................................................................
5.8 System Network Diagram................................................................................................
5.9 Work-Breakdown Structure.............................................................................................
6. DESIGN ....................................................................................................................... 22
6.1Comparison of different choices of algorithms and data structures....………………...3
6.2 RDF Model……………………….............................……………...............................4
6.3 Algorithm Designing………...…………………….….................................................5
6.4 Dataflow Diagram..........................................................................................................6
7.
IMPLEMENTATION…………………………………………………………ERROR!
BOOKMARK NOT DEFINED..........50
8. TESTING ..................................................................................................................... 55
8.1Interface Testing....……………….................................................................................3
8.2 GUI Testing……………………….............................……………..............................4
8.3 Performance Testing………...…………………….…..................................................5
8.4Test-Cases for Meaning Textbox....………………........................................................3
8.5 Test-Cases for Definition Textbox…………………............................…………….....4


                                                                                                                        6 of 133
8.6 Test-Cases for Dynamic Content Generation.............…...............................................5
8.7 Test-Cases for Dynamic Content Generation.............…...............................................5
8.8 Unit Testing…………………............................…………….......................................4
8.9 System Testing.................................................................................................................
9. DISCUSSION .............................................................................................................. 64
10. CONCLUSIONS ....................................................................................................... 66
11. FUTURE WORK ...................................................................................................... 67
12. APPENDICES ........................................................................................................... 68




                                                                                                                       7 of 133
1.           Introduction

In this chapter, we shall discuss the purpose of the project, in which brief know-how
about the project is mentioned. Apart from introduction of the project, the reason or the
problem, which made us choose this project, is also expressed.

1.1 Purpose:
The purpose of doing this project is to fulfill the academic requirement. The duration of
the project is one year. The project is very much useful for learning purpose. The project
scope is mentioned in later chapter. Now what is this project about? Let‘s see below:

Intelligent Book:
Our project, The Intelligent Book is a desktop application that generates a chapter or a
mini book from the reading material present in its repository. The project is research
base. Currently, the only reading material the application is using the books. Our goal is
to make use of e-books, research papers, white papers and search engines contents
intelligently. The application extracts and organizes contents in a manner which help
reader in understanding any topic. The content would be organized in local format i.e.
Definition, Explanation, and Example. Apart from generating a chapter, the application
also provides following additional functionalities:

        Explore Word Meaning: While reading the book, the reader may find some
         difficult word and look up for its meaning. So instead of consulting dictionary or
         search the web for its meaning, the application will provide the meaning.

        Definition of Technical Terminology: The reader may come across a technical
         terminology, about which the user doesn‘t have much knowledge, so the
         application also provides its definition

1.2 Problem:
There are lots of books, research papers, journals available on every subject but, to find a
book for a particular topic within a subject then the current technology is of no help. The
following points expressed in bullets shall give better understanding about the problem:

        When a user wants to read a particular topic from any of above sources, it may
         happen that the reading source that the reader is referring to is not sufficient.
        By considering above point, when a source is not useful, the reader has to switch
         to another source.
        Thus, in all, to have complete explanation about a particular topic, reader starts
         referring other sources, which is very much time consuming.
        In the mean time, the reader may lose its interest because its attention gets
         diverted to referring different reading sources.


                                                                                    8 of 133
Therefore, the need arises of such a system, which makes use of e-books, research papers,
white papers and search engines contents intelligently, and generate a chapter or mini
book to the user(as per need). This would be beneficial in terms of tame factor, and
reader would also enjoy reading.

1.3 Structure of the Report:
This thesis would give detail explanation about the project. This report also discusses
features that are included on the basis of surveys and analysis conducted to find out need
of reader, features and replicating human intelligence programmatically.

The important topics that report is supposed to cover are as follows:

      Background and Literature Review: This chapter describes the current state of
       knowledge concerning the subject involved in the project. It also mentions the
       literature on the subject and highlights the information relevant to the activity
       undertaken in the project.

      Aim and Statements of problem: This chapter mentions the aim of the project
       that should be clearly stated with sufficient explanation to make it easily
       understandable. It also defines the scope of the project.
      Analysis and Design: This chapter mentions how requirements were captured,
       comparison of algorithms and data structures. It also describes the surveys
       performed for identifying the problems involved. The chapter also covers UML
       (Unified Modeling Language) diagrams. The purpose of using these diagrams was
       that they are useful to identify the functional requirements of the system.
      Implementation: This chapter gives code details. It discusses the important
       aspects of code.
      Testing: This chapter presents the test plan, how the system/program was
       verified.

      Discussion: This chapter discusses the progression of the project including the
       methods used and the results of experimentation, or the design; in such a way that
       examiner can evaluate the worth of the project.
      Conclusion: This section presents the concise statement of the conclusions which
       may be drawn from the work attempted. This chapter also discusses the
       uncertainties that have been remained in the project.




                                                                                  9 of 133
2.          Background and Literature Review
After presenting the project proposal, we started searching for the information related to
our project. As the project is completely research base, we didn‘t come up with the
project similar to our project but we also came up with number of research papers that
proved quite knowledgeable to us, while analyzing and designing the system. Following
is the information discussed:

2.1 Generic Text Summarization using Word Net
Various algorithms for text summarization have been developed, but none of the
algorithms for text summarization selects sentences based on the semantic content of the
sentence. In this research paper, the algorithm for summarization is based on identifying
semantic relations. The Word Net is used to understand the link between the sentences.

Brief Introduction about Word Net
―Word Net (Fellbaum, 1998) is an online lexical reference system in which English
nouns, verbs, adjectives and adverbs are organized into synonym sets or synsets, each
representing one underlying lexical concept. Noun synsets are related to each other
through hypernymy (generalization), hyponymy (specialization), holonymy (whole of)
and meronymy (part of) relations. Of these, (hypernymy, hyponymy) and (meronymy,
holonymy) are complementary pairs.
The verb and adjective synsets are very sparsely connected with each other. No relation is
available between noun and verb synsets.‖[1]

Algorithm for Text Summarization using Word Net
The heart of the algorithm is the computation of global semantic information which
captures the overall meaning of the text using Word Net. [1]

The algorithm has the following five steps:

1. Preprocessing of the text:
Break the text into sentences. Apply part of speech tagging to the words in the text. This
is essential to pick the correct meaning of the word in WordNet. Hence if the word
―Pant‖ is used in the text as a verb, we will not associate it with a form of clothing. [1]
a. Identify collocations in the text. A collocation is a group of commonly co-occurring
words, for example, ―miles per hour‖. [1]
b. Identifying collocations helps in capturing the meaning of the text better than that of
the individual words (just like any idiom).[1]
c. Remove stop words like ―the‖, ―him‖ and ―had‖ which do not contribute to
understanding the main ideas present in the text. [1]

2. Constructing sub-graph from WordNet: We find the portion of the WordNet graph
which is relevant to our text, i.e. those synsets whose meaning occurs in the text. First we
mark all the words and collocations in the WordNet graph which are present in our text.
[1]



                                                                                  10 of 133
We then traverse the generalization edges of the Word-Net graph starting from these
marked words, and keep marking all the synsets which are reachable from the marked
words. We do a breadth-first search and traverse the graph only till a fixed depth, as the
meanings of synsets become too general to be considered thereafter. Finally, we construct
a graph G containing only the marked words and marked synsets as nodes and the
generalization links between them as the edges. [1]

3. Synset Ranking: The basic motivation of this step is to rank the synsets based on their
relevance to the text. So, if lots of words in the text correspond to the same synset, that
synset or ‘meaning‘ is more relevant to the text, and thus, it must get a higher rank. This
idea has been borrowed from (Ramakrishnan and Bhattacharya, 2003), which details the
use of Word-Net Synsets as a mode of text representation. [1]

4. Sentence Selection: The synset ranking algorithm gives us information about which
synsets or meanings are more relevant to the text, the relevance being reflected in the
rank of the synset. [1]

5. Final filtering: The last stage of our algorithm involves the application of simple
heuristics to filter out the sentences which have undefined references. The heuristics
applied are: removing sentences which contain words like ―He‖, ―It‖ etc. at the beginning
and removing sentence which begin with quotes. [1]

2.2 Using Lexical Chains for Text Summarization

This research paper investigate one technique to produce a summary of an original text
without requiring its full semantic interpretation, but instead relying on a model of the
topic progression in the text derived from lexical chains. It presents a new algorithm to
compute lexical chains in a text, merging several robust knowledge sources: the WordNet
thesaurus, a part-of-speech tagger, shallow parser for the identification of nominal
groups, and a segmentation algorithm. Summarization proceeds in four steps: the original
text is segmented, lexical chains are constructed, strong chains are identified and
significant sentences are extracted. [2].

Lexical chains provide a representation of the lexical cohesive structure of the text.
Lexical chains have also been used for information retrieval (Stairmand 1996) and for
correction of malapropisms (Hirst & St-Onge 1998 to appear). Lexical cohesion is
created by using semantically related words. This paper investigates how lexical chains
can be used as a source representation for summarization. [2]

Algorithm for Chain Computing
―One of the chief advantages of lexical cohesion is that it is an easily recognizable
relation, enabling lexical chain computation. The first computational model for lexical
chains was presented in the work of Morris and Hirst (Morris & Hirst 1991). They define
lexical cohesion relations in terms of categories, index entries and pointers in Roget‘s
Thesaurus. Morris and Hirst evaluated that their relatedness criterion covered over 90%
of the intuitive lexical relations. Chains are created by taking a new text word and finding


                                                                                  11 of 133
a related chain for it according to relatedness criteria. Morris and Hirst introduce the
notions of ―activated chain‖ and ―chain returns‖, to take into account the distance
between occurrences of related words. They also analyze factors contributing to the
strength of a chain — repetition, density and length. Morris and Hirst did not implement
their algorithm, because there was no machine-readable version of Roget‘s Thesaurus at
that time.

One of the drawbacks of their approach was that they did not require the same word to
appear with the same sense in its different occurrences for it to belong to a chain. For
semantically ambiguous words, this can lead to confusions (e.g., mixing two senses of
table as a piece of furniture or an array). Note that choosing the appropriate chain for a
word is equivalent to disambiguating this word in context, which is a well-known
difficult problem in text understanding.

More recently, two algorithms for the calculation of lexical chains have been presented in
(Hirst & St-Onge 1998 to appear) and (Stairmand 1996). Both of these algorithms use the
WordNet lexical database for determining relatedness of the words (Miller ET al.1990).
Senses in the WordNet database are represented relationally by synonym sets
(‗synsets‘)—which are the sets of all the words sharing a common sense.

For example two senses of ―computer‖ are represented as: {calculator, reckoner, figurer,
estimator, and computer} (i.e., a person who computes) and {computer, data processor,
electronic computer, information processing system}. WordNet contains more than
118,000 different word forms. Words of the same category are linked through semantic
relations like synonymy and hyponymy.

Polysemous words appear in more than one synsets (for example, computer occurs in two
synsets). Approximately 17% of the words in WordNet are polysemous. But, as noted by
Stairmand, this figure is very misleading: ―a significant proportion of WordNet nouns are
Latin labels for biological entities, which by their nature are monospermous and our
experience with the news-report texts we have processed is that approximately half of the
nouns encountered are polysemous.‖(Stairmand 1996)‖ [2]

―Generally, a procedure for constructing lexical chains follows three steps:
1. Select a set of candidate words;
2. For each candidate word, find an appropriate chain relying on a relatedness criterion
among members of the chains;
3. If it is found, insert the word in the chain and update it accordingly.
An example of such a procedure is represented by Hirst and St-Onge (henceforth, H&S).
In the preprocessing step, all words that appear as a noun entry in WordNet are chosen.
Relatedness of words is determined in terms of the distance between their occurrences
and the shape of the path connecting them in the WordNet thesaurus. Three kinds of
relations are defined: extra-strong (between a word and its repetition), strong (between
two words connected by a Word-Net relation) and medium-strong when the link between
the synsets of the words is longer than one (only paths satisfying certain restrictions are
accepted as valid connections).



                                                                                 12 of 133
The maximum distance between related words depends on the kind of relation: for extra-
strong relations, there is not limit in distance, for strong relations, it is limited to a
window of seven sentences; and for medium -strong relations, it is within three sentences
back. To find a chain in which to insert a given candidate word, extra-strong relations are
preferred to strong- relations and both of them are preferred to medium-strong relations.
If a chain is found, then the candidate word is inserted with the appropriate sense, and the
senses of the other words in the receiving chain are updated, so that every word
connected to the new word in the chain relates to its selected senses only. If no chain is
found, then a new chain is created and the candidate word is inserted with all its possible
senses in WordNet.‖ [2]

2.3 Building Summaries Using Lexical Chains
Now it has to be investigated that how lexical chains can serve as a source representation
of the original text to build summary. The next question is how to build a summary
representation from this source representation. The technique used is as follows:

Scoring Chain:

First of all, strongest chain produced by the algorithm is needed to be identified; therefore
we need to identify the strength of the chain by following parameters:

Length: The number of occurrences of members of the chain.

Homogeneity index: 1 - the number of distinct occurrences divided by the length.
A score function for chains as:

Score (Chain) = Length _ Homogeneity Index

When ranking chains according to their score, we evaluated that strong chains are those
which satisfy our ―Strength Criterion‖: Score (Chain) > Average (Scores) +2 _ Standard
Deviation (Scores) [2]

Extracting Significant Sentences

―Once strong chains have been selected, the next step of the summarization algorithm is
to extract full sentences from the original text based on chain distribution.

Following are three alternatives for this step:

Heuristic 1: For each chain in the summary representation, choose the sentence that
contains the first appearance of a chain member in the text.

Heuristic 2: For each chain in the summary representation, choose the sentence that
contains the first appearance of a representative chain member in the text.


                                                                                   13 of 133
Heuristic 3: For each chain, find the text unit where the chain is highly concentrated.
Extract the sentence with the first chain appearance in this central unit. Concentration is
computed as the number of chain members occurrences in a segment divided by the
number of nouns in the segment. A chain has high concentration if its concentration is the
maximum of all chains.

All these three techniques extract only one sentence for each chain (regardless of its
strength).‖ [2]

2.4 MIT project
Preface:
This document gives the brief description about the project, which is going to be done by
the students named as William Billingsley and Peter Robinson of Cambridge University.
The project is of 3 years duration named as ―intelligent book‖.

The project aims to improve online education in the manner of reactive learning
environment. The project purpose is to create an environment that consists of first year
undergraduate exercises in which students write proofs in number theory because the
automated proofs are considered to be difficult for novice users. The system asks the
students to write out the proofs. The proofs are generates through Math‘s-Tiles that
resembles written mathematics

Unlike traditional syntax-directed editors, MathsTiles allow students to keep many
answer fragments on the canvas at the same time, and do not constrain the order in which
an answer is written. Also, the tile syntax does not need to match the underlying syntax
exactly, and different tiles can be used for different questions. The exercises take place
within the context of an Intelligent Book. The book responds with respect to the reader.
The figure 2.4.1 (in appendix) shows the MathsTiles

The Intelligent Book project aims to improve online education by designing materials
that can model the subject matter they teach for example they design a question for the
students of electronics that asks students to choose the values for current, voltage for
transistor amplifier. At the backend there is an AI model. That checks that the values
entered by the student are according to the electronics rules. For this purpose the students
of Cambridge University aim to design a very special interface that helps students in
learning more quickly with less training. They claim that novice users would also feel
comfortable in using this system. For this purpose they would use human computer
interaction research techniques, which reduce the learning barriers for the new users.

This is a web-based textbook that contains AI supported exercises as well as extensible
contents means that students can add different contents to the book and book may give
different explanations to different users for the same topic.
The system asks the untrained students to write the proofs in number theory by their own
instead of asking to the system. Although there are many systems that ask the student to




                                                                                  14 of 133
write verifiable proofs in simplified domain such as predicate logic but it would be the
first time when system asks the student to write verifiable proofs in number theory.

Goals:
The concept of the intelligent book is a web-based textbook that contain AI supported
exercises and content. Students are allowed to add further contents in the book and can
make changes in it.

The system asks the student to write the proofs on paper instead of writing with its own.
When the students write the proofs on paper, it should resemble to the rules of
electronics.

The system would provide the interface like students doesn‘t need to write the algebraic
expressions in hierarchal manner and they don‘t need to follow the top-down approach.
They can start from anywhere and can link them all.

Architecture:
The question architecture for the time when student work on questions of an intelligent
book related to electronics must support the electronically notations and diagrams. Other
questions might be related to state diagrams, circuit diagrams or timing diagrams.
Following diagram is being taken from the research paper written by William Billingsley
and Peter Robinson. The 2.4.2 (in Appendix) shows the architecture of the system.

The system needs the server to check the student‘s work. The student rather than writing
on client writes on the remote document of the server. The student gets his copy and
student starts writing on paper, the modifications are performed to the original document
on server. The exercises take place within a web page. For this purpose the members
would use the full HTML components that would be able to display diagrams and
notations. The HTML page would dynamically be updated on server. JavaScript backed
controls would be used to make the alterations on the client and server document.
Content applets would be used to support diagrams. Content applets are built in internal
architecture. When student make any changes in the document or write something on
paper then it reports to the server. For communication between client and server the XML
RPC applets would be used. Teaching scripts would describe how to respond to the
student. Conversion scripts are responsible to process student‘s document and input it to
the external AI. The broker keeps a pool of processes to handle the requests. It‘s needed
when external AI is a process rather than a module.

2.5 Reordering sentences
This research paper focuses on reordering sentences of a coherent text. In this paper, a
reordering algorithm has been developed to automatically reorder the sentences. This
paper gave us an idea of designing such algorithm. The research question that this paper
attempts to answers is ―how good is a computer in reordering sentences compared to
humans?‖




                                                                                15 of 133
Approach:
The first part of this research was thus dedicated to finding an existing solution to the
problem of reordering sentences. If such a method was found, it would be applied and
evaluated. After some thorough searching on the web, however, it quickly appeared that
such an algorithm did not exist yet. The next step was to design an algorithm, which was
to be tested and compared with human reordering. Dutch was chosen as language of the
sentences to be ordered, since this is the native language of the persons performing this
research. [3]
2.5.1 Theory
As a first step in designing methods was to give hints on sentence order, a simple text
was shuffled and reordered by hand. While doing this, special attention was given to why
sentences should have certain orderings. After some manual reordering, it appeared that
(anaphoric) relations between pronouns and certain repetition vehicles were the key
―guides‖ to human reordering. Furthermore, repetition, cue words and world knowledge
appeared to guide humans in reordering shuffled texts. [3]

1 Anaphoric relation
Anaphora provides strong inter-sentential links. In (complete) discourse, each anaphora
has a word to which it refers. In general, it can be assumed that this word is introduced
before the anaphora is used. It is thus expected that anaphoric relations can help
reordering texts, since human use these ―anchors‖ when reordering sentences. [3]

2 Pronouns
Pronouns ―refer‖ to words possibly in other sentences (or in the same sentence). When a
simple text is shuffled, anaphoric relations between demonstrative pronouns and nouns
provide relatively strong anchors. A demonstrative pronoun will almost always be
preceded by a noun with the same features (cardinality, gender, etc.).[3]

3 Repetitions
Humans are able to recognize sentence order by recognizing repetition of certain
elements in sentences. Work by [BN00] suggests that repetition ―vehicles‖ support the
temporal structure of discourse, focusing on document summarization. This repetition,
however, seemed to be very difficult to aid in the automatic reordering of sentences, since
it provided some kind of confirmation on that the sentences should be clustered together.
Because this research deals on the reordering of simple texts, this was already obvious.
[3]

4 Cue phrases
Cue phrase have a high potential in providing hints on the order of parts of texts, when
used in a discourse sense. It is quite trivial to reproduce the order of cue phrases;
however, they seem not to appear very often in the (small and simple) texts to which this
research is targeted. [3]

5 World-knowledge
The last but certainly not the least vehicle for sentence reordering is world knowledge.
Humans often know certain sentences should be ordered, without linguistic proof. An


                                                                                 16 of 133
algorithm with only linguistic knowledge would not be able to (correctly) predict the
order of these sentences. This method of providing knowledge on orderings is one of the
most powerful vehicles a human would use, it is however the most difficult to model. [3]

2.5.2 Design overview
The general idea before the actual design started was to perform topological sort on a
collection of individual orderings on sentences (partial orderings), i.e.: if some method
provides knowledge that sentence x precedes sentence y, sentence x will be ordered
before y. The algorithm (algorithm-1 in Appendix) will combine all partial orderings and
perform a topological sort on the union of those orderings. [3]

Topological Sort

A topological sort is an ordering of the vertices of a directed acyclic graph given by the
following definition [PE97]:

Consider a directed acyclic graph G = (E: V). A topological sort of the vertices of G is a
sequence S = {v1: v2: . . . : v|V|} in which each element of V appears exactly once. For
every pair of distinct vertices vi and vj in the sequence S, if vi -> vj is an edge in G, i.e.,
(vi, vj) € E, then i < j.

Individual sentence orderings were modeled as a set of edges: si -> sj is an edge in the
partial sort if and only if sentence i precedes sentence j. The actual sort is performed by
the following steps:

1. Initialize the total sort as an empty set
2. Repeat until no nodes left
3. Pick a node having no incoming edges
4. Append this node to the total sort
5. Remove the node from V
6. Remove all edges from E originating in the node
7. Continue with step 2

A problem was, however, that the partial ordering modeled by graph G should be acyclic,
which is not guaranteed yet. If graph G contains cycles, step 3 is not possible.

Conflicts and problems
A topological sort is possible if and only if the partial sort is a graph containing no cycles.
Any cycle will cause the topological sort to error, so some kind of conflict resolution had
to be applied in order to provide a generic and robust sorting framework. In order to
resolve conflicts, cycles had to be detected, which was done by a technique called tree-
visiting, inspired by [Par03]. When a node is visited, it flags itself as being visited, visits
its children (if applicable) and flags itself as done visited. A node whose flag is being
visited which is visited again will prove the existence of a cycle in the graph. This
technique can be expanded to point out the path ―causing‖ the cycle instead of just
proving its existence. This technique was applied from each node of the graph, since the


                                                                                     17 of 133
graph consist of more than one component (i.e. a ―forest‖). The result of the step is a set
of paths causing conflicts, which were to be addressed next. This way of identifying
cycles is not the most efficient method, but since the amount of sentences (thus nodes) is
relatively low, this will not harm the overall resource consumption of the algorithm. [3]

Resolution
Now that the conflicting (cycling) paths had been identified, something had to be done in
order to eliminate this conflict. The edges representing a partial ordering where enhanced
with a value indicating a certain confidence level. When a path causing a cycle has been
identified, the weakest edge (the one with the lowest confidence) was located in this path,
and marked for removal. In a final phase all edges marked for removal were removed
from the partial ordering. This technique was repeated until the graph was reduced to an
acyclic one. [3]

Hinters
Partial orderings are to be provided by ―Hinters‖, modules (or plug-in) which provide a
set of orderings given a set of sentences. The program can have as much hinters as
desired, merging the results together before performing the final topological sort. Since
all hinters have a common structure, they will be made in a generic structure. [3]

Pronouns
To discover a possible relationship between a demonstrative pronoun and a noun, a naive
algorithm was designed. In the first phase, the algorithm collects possible (demonstrative)
pronouns and nouns, associating them with an identification key to the sentences in
which they were found. In a second phase, the ―candidates‖ are matched against each
other. [3]

Repetition
In order to use the knowledge of repetition guiding sentence order, repeating nouns are
detected and matched against each other. When a noun occurs in sentences si and sj, it is
assumed that when i != j either i -> j or j -> i is an edge in the partial sort. [3]

Pronoun/noun resolving

The design was implemented in JAVA and was tested on sentences of Dutch language.
Several classes were created. (See Algorithm2 in Appendix)




                                                                                 18 of 133
3.           Aim and Statement of Problem

3.1 Problem Statement:
There are lots of books on specific subjects but if we want to find a book for a particular
topic within a subject then the current technology is of no help. Sometimes it also
happens that when a user wants to read a particular topic from any reading source
(research papers, books, journals), it may happen that the reading source that the reader is
referring to, is not sufficient. Thus, for complete information reader may have to refer to
different reading which is very much time consuming.

Thus there arises a need of such a system, which dynamically, generates a chapter for any
topic within a book.

3.2 Aim of the Project:
The project, Intelligent Book, aims to provide facility to generate dynamic chapters or
mini book of subject‘s sub-topic. The project is research base. The project aims to deliver
the following objectives:

      The system will provide the reader the facility to; generate a chapter or mini
       book (as per need) about any topic within a subject.
      The system will make use of e-books, research papers, white papers and search
       engines contents intelligently.
      The e-books, research papers, white papers and search engines shall be present in
       system in system‘s repository.
      The system will extracts and organizes contents in a manner which helps the
       reader in understanding any topic, i.e. the text extracted shall be organized in local
       format i.e. Definition, Explanation, and Example.
      The system will help in saving time of people from multiple domains specifically
       students and teachers.

For the achievement of above objectives, we conducted survey in Bahria University,
Karachi Campus to identify and analyze human intelligence and ways to extract lines
suitable for Definition, Explanation and Example. Apart from this, questionnaires were
also distributed among colleagues and faculty members, to identify major problems that
reader usually faces while reading of an e-book or any electronic content. The survey and
research conducted and result extracted from it, shall be discussed in detail, in next
chapter of the thesis.




                                                                                   19 of 133
4.           Scope of Project
Here we shall, discuss those tasks/functionalities that shall be included in project. These
tasks/functionalities don‘t have any concerned with the time and cost. We shall express
the scope definition in terms of following heading:

      Deliverables
      Functionality
      Technical Structure

Deliverables:
In deliverables, we shall define both external and internal deliverable:

External Deliverable: External deliverables are things the project delivers to the users‘
e.g. screens and reports.
     In case of our project, the software (application) and project documentation report
        and a user manual shall be delivered to the user

Internal Deliverable: Internal deliverables are things the project generates internally:
    In case of our project, the project shall generate minutes of the meetings, test plan,
       project plan.

Functionality:
After defining the deliverables, now we shall define the functionalities or features that
system is ensure to accomplish. Apart from discussing features, certain limitations related
to functionalities have also been discussed. The main features that system needs to
implement are as follows:

      Dynamic Book Content Generation
      Explore Word Meaning
      Definition of Technical Terminology

The major feature of the application is ―Dynamic Book Content Generation‖. The rest of
the two features (Explore word meaning and definition of technical terminology) are
incorporated as the result of research analysis conducted in the campus. For the
accomplishment of above features, we shall use following tools and techniques:

      WordNet Dictionary
      We shall design our own algorithms for the implementing the above features.
      Visual Studio 2008 using C# will be used for both front and backend coding.
      To make use of the system, the reader should convert the document under
       consideration in Text format (the reading material available in repository will be
       in text format).
      We are also expected to release a research paper of the application



                                                                                 20 of 133
Limitations:
There are certain functionalities associated with the features, that we may not able to
implement due to lack of time. It was also an aim of our project to reorder the text
extracted in readable form. But reordering text in intelligible form is very hectic job, and
it is expected that we may don‘t find any suitable literature related to it. We shall try to
design algorithms for it. At the end, when enough time is not left, it is expected that, we
may not implement the algorithms and leave it for future work.

Technical Structure:
Here the technical structure of the application, in terms of context diagram is illustrated,
to give clear understanding that what application is all about and how it may be
functioning:




                                                                                  21 of 133
5.            System Analysis

5.1 Requirements Capture
Requirements are the conditions that system‘s analyst must follow to achieve certain
objectives. The objective of the project is to build an application that provides the facility
to generate dynamic chapters or mini book on subject‘s sub-topic and further to help
reader in saving their time from multiple domains specifically students and teachers. This
will be beneficial for anyone who needs to understand a topic given multiple options to
read from.

5.1.1 Fact Finding Techniques
Requirements for the project are usually gathered through five main facts finding
techniques that are used by analysts to investigate requirements, are following:

     1.   Interviews
     2.   Questionnaires
     3.   Surveys
     4.   Observations
     5.   Research

     Interviews
The team members conducted many formal interviews with the supervisor, in order to
extract the requirements, needed to incorporate in the application. The interviews helped
us in understanding the core requirements of the supervisor that how the supervisor wants
the application to be.

     Questionnaires
Apart from interviews members also conducted a research. The research was done under
the supervision of Supervisor, Mr. Faiz-Ul-Haque, on October 21‘2008, in Bahria
University, Karachi Campus, where students of Bahria University and Faculty Members
gave their best opinions and views on the subject of ―Problems faced while reading E-
books‖. The research helped members to do the analysis more effectively. The purpose of
the research was to identify the major problems during the reading of an e-book and then
in future to design a system which could minimize the reader‘s identified factors or issues
and could be termed as an intelligent book. After the research the results were examined
and final features of the system were identified that the system would make use of the
repository to generate a mini-book or chapter for any subtopic of the book or stored files.
Other features include help in finding the meaning of the word and definition of technical
words. (See questionnaires in Appendix)

     Research
To develop a new system members are required to do the observation/literature research
just to find that whether any such type of system already exist or not. If yes then what can
be different thing that must be needed to corporate into a current project to make it
different from others. For it members have to do literature research. After the literature


                                                                                    22 of 133
search the members concluded that a project with the same named as ‗Intelligent Book‘ is
going to be done by the students named as William Billingsley and Peter Robinson of
Cambridge University. The project duration is of 3 years and the project aims to improve
online education in the manner of reactive learning environment. The project purpose is
to create an environment that consists of first year undergraduate exercises in which
students write proofs in number theory because the automated proofs are considered to be
difficult for novice users. The system asks the students to write out the proofs. The proofs
are generated through Math‘s-Tiles that resemble written mathematics.

     Conclusion
Therefore, with the help of this fact finding techniques the members decide to build a
system named as intelligent book which would generate the dynamic book/chapter
according to the reader desired topic by gathering the information from the repository.
Unlike other search engines intelligent book will not provide thousands of references of
books and white papers, it just automatically gathers data from multiple sources and
arrange it in a format which will help the reader to understand the topic in a better way.
This will save the time of the reader, the intelligent book doesn‘t require readers to
arrange the document in and then understand it.
Further more, the intelligent book will generate a mini-book or a chapter on the topic
entered by the reader, via the help of repository. The content generated will be organized
in confined format i.e. Definition, Explanation and Example.

5.2 Project Overview Statement
The POS captures the key objectives of the project. It should be reviewed and updated
throughout the project and doesn‘t remain static. The POS is a concise statement of the
project, and a summary of its justification to continue.
Executive Summary:
Project Name: Intelligent Book
Department: Computer Science Department
Project‘s Supervisor: Mr.Faiz-ul-Haque Ziya
Problem/Opportunity:
We are required to build a system that will facilitate the readers to generate a dynamic
chapters/book on particular topic and unlike other search engines the intelligent book
must generate the book in a specified and arranged format.
Goal/Objectives
The basic purpose of our project is to build a system named as intelligent book which
would act as a search engine that generates the dynamic book/chapter according to the
reader desired topic by gathering the information via the use of repository. Unlike other
search engines intelligent book will not provide thousands of references of books and
white papers, it just automatically displays the specific data in an arranged form. By
saving the time of the readers, the intelligent book doesn‘t require readers to arrange the
document in readable form. Further more, the intelligent book will generate a mini-book


                                                                                  23 of 133
or a chapter on the topic entered by the reader, via the help of repository. The content
generated will be organized in confined format i.e. Definition, Explanation and Example.
Future Work
The current work thus far has focused on stand-alone, desktop application and the system
has no internet connectivity. So, for the vast use, the system could be formed as the web
application so it would be very helpful for an agent who is running on a computer and if
any topic is presented to it. It searches the web (websites, e-book sites, research paper
sites) using search engine, finds relevant pages and generates book, chapter, document,
report, summary using them.
Assumptions/Risks
Like any other project, The Intelligent book project is also expected, to face obstacles and
risks. These risks could be high level risks or low level risks. The members need to
overcome these risks. Further discussion of risks is in risk management document.

5.3 Feasibility Study
A Feasibility Study is a process which defines exactly what a project is and what strategic
issues need to be considered to assess its feasibility, or likelihood of succeeding.
Feasibility studies are useful both when starting a new project, and identifying a new
opportunity for an existing project. The feasibility study analysis helps in identifying the
problem and prospects, determining and describing objectives, current situations and
possible outcomes. The main objective of the feasibility analysis is to find out the right
direction that how much the required project is feasible in terms of technical, operational
and economical.
In order to ensure that the intelligent book system will be beneficial in the company, a
feasibility study is conducted.

   5.3.1   Economic Feasibility
The purpose of assessing economic feasibility is to identify the financial benefits and
costs associated with the development project. Economic feasibility is often referred to as
a cost-benefit analysis.
The intelligent book‘s result in a certain amount of benefits that will affect the company
as well as some unfavorable effects called costs. The intelligent book system will have
some benefits, which are as:
     The readers‘ problem of getting organized and arranged material will be solved.
     The readers will get their required material on particular topic within few minutes.
     In the long run the intelligent book system will be the most cost effective solution
        for the readers‘ problems.
     Intelligent book system allows reader to find their required material as well as the
        meanings of difficult words.




                                                                                  24 of 133
   5.3.1.1 Economical Analysis
           Does the company possess the capital and money to develop the new system?
           See Table 6 in Appendix


   5.3.2   Technical Feasibility
In technical feasibility team members analyze that the project on which the members are
working is technically feasible or not that is here the members are going to analyze that
what technologies are required to develop the project, the availability of the required
technology, and the training of that technology i.e. to identify whether or not the
members are familiar to use the tool..

Does the technology exist to be able to create the intelligent system?
In short, yes the technology which will enable the members to create the intelligent
system is readily available. The software needed is very common and the team members
have the expertise to create the application. The application will be developed using
Microsoft Visual Studio.Net 2008 (using C#) as a front-end and backend coding.

What machinery and equipment is needed in the development of application?
System will consist of the following machinery:
    CPU
    Monitor
    Keyboard
    Mouse
    Printer
    Scanner (If a reader is required to scan any hard copy material)

Is the required equipment available?
All the above mentioned equipments are easily available in any educational institute at a
reasonable cost.

What software is required to develop the intelligent book system?
The software that will aid the team in developing the new system is easily obtainable and
quite basic.
     Microsoft Visual Studio.Net 2008– to develop the front end and backend using
        C#
     Microsoft Word – to enable documentation
     Visio – to model the system diagrams
     Notepad – to save the material in a simple text format

Is there potential in the system for growth plans?
Later on, if any developer wishes to extend the capability of the system, any professional
would be able to make those extensions. Adequate technical documentation should also
be one of the aims, so that a professional will be able to understand what has been done,
and this would enable future developments and growth.


                                                                                 25 of 133
What operating system is required to build the intelligent system?
Next thing the members need to decide is that in what operating system the members will
build the application. The team members had Microsoft Windows installed at home PC‘s
and computer labs at university also have Windows operating system, so the members
decided to work in windows working environment. In fact the members also checked the
system requirements of home PCs and university PCs. After discussing the working
environment the members move towards the hardware requirements that are the storage
medium. In this order the members decided to use the hard disk and USB (Universal
Serial Bus) as the storage device and compact disk (CD) and USB as the back up device.
The USB device is very unreliable so the members decided to rely mostly on compact
disk.
   5.3.3   Operational Feasibility
The purpose of conducting an operational feasibility is to gain an understanding of the
degree to which the system will likely solve the reader‘s problems or take advantage of
its opportunities. The assessment of operational feasibility includes an analysis of how
the system could help readers in minimizing their problem of getting arranged and
organized document on a particular topic

Will the readers/ users willingly adopt the working of the intelligent system?
Most of the people are hesitant to work with computers especially if it is their first time.
But the intelligent system is very user friendly and responsive.

Is any training required for using the intelligent system?
Any user of the system may need to receive a critical outline on how to operate
computers to get them familiarized with the machine. Apart from this, a step by step
training plan may need to be devised to explain each aspect of any system. Any training
that will be needed will be very basic and any reader who is even moderately computer-
literate should not have the slightest difficulty managing the program.
But for using the intelligent book system the reader is not required to be specially trained.
Just working 3 or 4 times on the application will make the user/ reader to be familiarized
with the working of the system.

5.4 Stakeholders Analysis
People involved in the project are termed as stakeholders. Stakeholder means a person is
directly or indirectly involved in the success and failure of the project. A stakeholder in
an organization is any group or individual who can affect or is affected by the
achievement of the organizations objectives.
In general, any computer system consists of following stakeholders:
     Those responsible for design and development;
     Those with a financial interest, responsible for its sale or purchase;
     Those responsible for introduction and maintenance;
     Those that have an interest in its use.



                                                                                   26 of 133
 There are two types of stakeholders internal and external. Internal Stakeholders are those
people who are ‗members‘ of the business organization

Senior Manager: Senior manager is one who defines business issues that have
significant influence on the project.

Project Managers: It is the one who plan, motivate, organize and control the
practitioners who do software work .In our project our project manager is Mr. Faiz-ul-
Haque Ziya

Practitioners: These are those people who deliver technical skills that are necessary to
engineer the product or application. All of us team members are the practitioners of the
project

Customer: Customers is one who specifies the requirements for the software to be
engineered. As the members are developing the project as per degree requirement so Mr.
Faiz-Ul-Haque Ziya (Supervisor) and Mr. Asif Ali are the customers of the project.

End user: End users are those people who interact with the software once it is released
for the final use. As the application is developed on the requirement of the degree
purpose and is considered as our final year project, so HOD, the Supervisor, all the
internal instructors and students are the end users of intelligent book application.

External stakeholders
External stakeholders are those who are not part of the firm

Which team organization structure we are using?
In this project follows controlled decentralized structure. Each member is given equal
opportunity to share their views and suggest solutions. Major decisions are made by Mr.
Faiz-Ul-Haque Ziya (Project Supervisor).

The Team is expected to work with complete coordination and keep a friendly
environment. Each member of the team can express their views about the project openly
without hesitating. The team members have equal expertise and knowledge so there was
no concern of attitude problem. As the team members had equal expertise and
knowledge, they were the practitioners of the project i.e. they are responsible for both
building the application and preparing the documentation of the project.

Team Members Profile:
Below the team members profile, includes name the members, their qualification,
expertise and duration of completion of project. (See Table 7 in Appendix)




                                                                                  27 of 133
         5.5 Risk Analysis and Management
A risk can be defined as something with probability that some adverse circumstance will
occur. All the possible threats that our project may suffer are recognized in the analysis
phase. We need some proper analysis to deal with the risk. This analysis is known as risk
analysis.
Risk analysis allows a person to examine the risks that you or your organization faces.
The first step of risk analysis is that we need to identify the risks that may occur in our
project, then we need to find out the probability of their occurrence, the impact they will
impose of our project, and solution to remove these risks. We can apply the above steps if
we are using proactive strategy. There are two strategies for risk, proactive and reactive.
In reactive risk strategy team members find the solution for the risk at runtime, and in
proactive team members write the solutions of the risk in advance.

Which strategy members are using?
As team members are the students and are in learning stage so the members decided to go
for proactive risk strategy. The members are not that much experience for reactive risk
strategy.

How did the members proceed?
The first stage of a risk analysis is to identify threats facing you. Threats may be
    Project
    Business
    Organization
    Technology
    People
    Budget
    Time
    Change of requirement risk

Once the members identify the threats they are facing, the next step is to work out the
likelihood of the threat being realized and to assess its impact. The members have to
make best estimate of the probability of the event occurring. Once members are done
with this process, then the next step is to manage the identified risks. While managing the
risks the members need to find cost effective solutions. Now the members made a table
for possible occurring threats, categorized them and plan corresponding remedies for
them. The following is a Risk Table:




                                                                                       28 of 133
Risk Table
S. No.       Risk        Risk         Probabil   Impact       RMMM
           Category   Description      ity (%)
  1      Time         Unforeseen        55%        4      When planning
                      strikes occur                       the schedule
                                                          initially take off
                                                          two weeks for
                                                          strikes.


  2      Time         Time runs out     60%        5      When planning
                      and the                             the schedule in
                      project does                        the beginning
                      not seem to                         stages of the
                      be able to                          project take two
                      finish the                          months off to
                      deadline.                           plan for official
                                                          holidays and
                                                          weekends.


  3      Technical    The code is       75%        4      The team should
                      too difficult                       talk to seniors or
                      for the team                        instructors who
                      members and                         are proficient in
                      the project                         the
                      hits a dead                         programming
                      end.                                language being
                                                          used.


  4      Technical    There is a        35%        4      The team should
                      problem in                          make sure the
                      the                                 two platforms
                      connectivity                        are compatible
                      of the                              and are
                      database and                        connectible
                      front end.                          before
                                                          proceeding.




                                                                  29 of 133
5    Team        One of the       25%   3   The team should
                 team                       divide that team
                 members is                 member‘s work
                 not feeling                amongst the
                 well and is                remaining
                 unable to                  members until
                 work on the                the sick member
                 project.                   can make a
                                            recovery.


6    Team        One of the       25%   3   Make the
                 team member                member realize
                 is not doing               the work load
                 the work                   and make
                 within time                him/her aware
                 lack of                    of the deadline.
                 commitment

7    Team        Members          25%   3   Make the
                 don‘t share                members agree
                 common                     on some
                 personalities              common idea
                 and may lead
                 in conflicting
                 ideas
8    Team        Due to work      30%   3   Encourage all
                 pressure and               team members
                 lack of                    and make them
                 confidence                 feel important
                 team                       part of project
                 members
                 morale may
                 become low
9    Technical   Data storage     30%   4   Maintain
                 device may                 Backups
                 crash
10   Technical   Lack of          50%   5   Provide stand by
                 electricity                generators to
                 may lead to                keep the system
                 work delay                 working during
                                            power
                                            breakdown




                                                    30 of 133
11   Customer   Client           10%   3   Make a well
                changes                    defined
                requirements               agreement
                                           before starting
                                           the project

12   Team       Members          25%   3   Keep team
                coordination               meeting and
                and                        discuss what
                communicati                work they have
                on is poor                 completed so
                and may lead               far.
                deviation
                from actual
                requirements
13   Scope      The              40%   4   Conduct
                requirements               interviews with
                specified are              customers and
                not                        create
                measurable
14   Product    Data not         25%   5   Consult some
                normalized                 senior designer
                from old                   and verify your
                system. Risk               design
                of not
                capturing all
                dependencies
                .
15   Software   System           30%   4   Test error-
     failure    testing not                handling
                comprehensiv               capabilities and
                e enough                   inform user of
                leading to                 ways to report
                user                       errors in system.
                dissatisfactio
                n upon
                deployment.




                                                   31 of 133
16   Organizationa    Incomplete       30%   2   Address issue in
     l failure        documentatio               plan and review
                      n of                       for
                      application                completeness of
                      that causes                documents
                      inadequate
                      understandin
                      g of system
                      for users and
                      next (e.g.
                      User guide )
17   Product          Users do not     30%   2   Obtain user feed
                      like the                   back on screen
                      interface                  shots,
                      provided by                functionality to
                      the system,                ensure that
                      resulting in               expectations are
                      unused                     managed
                      system



18   Development      Experts are      40%   5   Arrange
     environment      not available              workshops.
     risks            to answer
                      questions
                      about the
                      tools
19   Technology       Requirements     25%   5   Try to convince
     risks            demand the                 the customer
                      use of                     and audit
                      unconvention               customer‘s
                      al software                requirements
                      development
                      methods,
                      such as
                      formal
                      methods, AI-
                      based
                      approaches.
20   Business risks   Reasonablene     25%   4   Increase
                      ss of delivery             working hours.
                      deadlines




                                                        32 of 133
5.5 System Context Diagram




Details:
The Context Diagram is the level zero of the decomposition. System Context Diagrams,
in software engineering are related to Data Flow Diagram, and show the interactions
between a system and other actors with which the system is designed to interface. System
context diagrams can be helpful in understanding the context which the system will be
part of. Context diagrams are typically included in a requirements document. These
diagrams must be read by all project stakeholders and thus should be written in plain
language, so the stakeholders can understand items within the document.
The objective of the system Context Diagram is to focus attention on external factors and
events that must be considered in developing complete requirements or limitations. The
Context Diagram at project level helps in defining the scope of the project and evaluates
potential risk factors.
The above Context Diagram used in system design phase represents all the external
entities that may interact with the system. This diagram pictures the intelligent system
with no details of its interior structure, surrounded by its interacting entity (Reader) and
all the activities.
The activities in the above Context Diagram are shown below:
      The Intelligent System shows the stored files and then a reader selects file to read.
      A reader enters word to find meanings through Word Net Dictionary and
         Intelligent System displays the meaning.
      A reader enters word to find definitions through Word Net Dictionary and
         Intelligent System displays the definition.




                                                                                  33 of 133
      A reader enters title to generate the Dynamic Book and an Intelligent System then
       generates the book.
      A reader enters title to generate the Dynamic Chapter and an Intelligent System
       then generates the chapter.

5.6 System Use case diagram

A use case defines a goal-oriented set of interactions between actors and the system under
consideration. Use cases capture who (actor) does what (interaction) with the system, for
what purpose (goal), without dealing with system internals. A complete set of use cases
specifies all the different ways to use the system, and therefore defines all behavior
required of the system, bounding the scope of the system.
A use case describes a sequence of actions that provide something of measurable value to
an actor and is drawn as a horizontal ellipse.
In Software Engineering, a Use Case diagram in UML is a type of behavioral diagram
defined by and created from a Use-case analysis. Its purpose is to present a graphical
overview of the functionality provided by a system. The main objective is to give an idea
that which actor performs what in the system. Roles of the system can be depicted.




                                                                                 34 of 133
Use case description -
The above diagrams describe the functionality of Intelligent System. Use cases are
represented by ovals and the actors are represented by stick figures. The Reader actor can
Start Application, Open a single file (and optionally open multiple files), Finds Meaning,
Finds Definition, and Enters title to generate a Dynamic Book/ Dynamic Chapter.
On the other hand the Intelligent System Actor stores the documents, takes input from the
user, and displays meaning, Displays Definition, and Generates Dynamic book/ Dynamic
Chapter.

5.7 Network diagram

A project network diagram is a graph that represents the sequence of project activities
that are needed to be completed and their dependencies.

In the following the total working days of the project are calculated by considering the
start and end date of the project. Then 70/30-rule is applied to divide the total working
days between Analysis/Design Phase and Implementation/Testing Phase. Further days are
divided between Analysis and Design Phase by applying 60/40 ratio and same is applied
for Implementation and Testing Phase.




                                                                                 35 of 133
The results are shown below:

Start Date -1/Oct/2008
End Date- 15/July/2009
       Oct      31
       Nov 30
       Dec 31
       Jan      31
       Feb      28
       Mar 31
       April 30
       May 31
       June 30
       July 31
       -------------
         294 days
       -------------

Applying 70/30 on complete Project

70% for Analysis and Design-------------205 Days
30% for Implementation and Testing-------89 Days

    Applying 60/40 Ratio on Analysis and Design
               60% for Analysis----------123 Days
               40% for Design------------82 Days

    Applying 60/40 ratio for Implementation and Testing
               60% for Implementation----53 Days
               40% for Testing------------- 36 Days

Detail:

The activity network diagram is a method of displaying the timelines of all the various
subtasks that are involved in any project. By doing this, the total task duration and the
earliest and latest start and finish times for each task are also calculated and displayed.
An activity network diagram helps in determining which activities or which series of
activities is critical to the timing of a more complex collection of interactive activities.
This can be very helpful in deciding where and when to apply extra energy to keep
projects on time. As a tool, the activity network diagram is like a time-map of any time-
sensitive project.

The most important thing any activity network diagram is to find the Critical Path. For it
first Calculate the shortest possible time within which the overall task can be completed
by adding the times of each subtask to find the path of the longest cumulative duration.


                                                                                  36 of 133
This is the critical path. Knowing the critical path is important because this will tell if the
time objectives of the project are attainable. The critical path identifies those jobs or tasks
that have no slack. Each must be done on time if the project is to stay on schedule. The
critical path also identifies targets for improvement to increase speed.

To calculate the earliest starting and finishing times and the latest starting and finishing
times for each job or subtask in the project.
        Begin at the start of the diagram. The earliest start time for each job is the
            cumulative duration of all the previous jobs on that path.
        The earliest finish time is the earliest start time plus the duration of that task.
        Repeat this process for each job on each path until finish point is reached
        Next calculate the latest start and finish times. Begin with the earliest finish
            time at the end of the diagram.
        To calculate the slack time for any job or task, subtract the earliest start time
            from the latest start time.
        All of the jobs on the critical path will have zero slack time.

The Activity network diagram for an Intelligent Book System is shown (See Table 1,
Table-2, Table-3, Table-4 and Table-5 in Appendix) containing all the processes and their
duration plus the earliest starting and finishing times and the latest starting and finishing
times.

5.8 Work Breakdown Structure

Process WBS
Detail:
A Work Breakdown Structure is a results-oriented family tree that captures all the work
of a project in an organized way. It is often portrayed graphically as a hierarchical tree.
The WBS helps in breaking thousands of tasks into chunks that we can understand and
incorporate. Preparing and understanding a WBS for a project is a big step towards
managing and mastering its inherent complexity. The WBS is commonly used at the
beginning of a project for defining project scope.

The WBS is usually numbered and the conventional numbering system is shown in
figure. The process WBS (figure 3 in Appendix) is categorized as Level 1, Level 2, Level
3, Level 4 and Level 5. The sub-processes can further be numbered as 1.1, 1.2, .1.3, 1.4,
and so on.

In this WBS, the processes are divided amongst 4 phases (Analysis Phase, Design Phase,
Implementation and Testing Phase.) then at each phase the processes, their estimated
duration and the name of the stake under which that process is being taken is shown.
Final Calculation briefly represents each stake holder‘s total estimated working duration.




                                                                                     37 of 133
On the basis of WBS tasks are being carried out and are tried to be accomplish within
estimated duration. It also helps in giving visibility to the important and risky work
efforts and the costs and schedules are also managed with the help of WBS.

Product WBS
Detail:
In software engineering, the WBS is a tool that is used to define a way that how the
procedures are taken place in the project and helps in defining the overall project scope
and structure.

In project management, a product work breakdown structure is an extensive, hierarchical
tree structure of components that make up an item, arranged in whole-part connection. It
helps clarify what is to be delivered by a project.

Product breakdown structure of an Intelligent Book System is shown above, in which all
the main features of Intelligent Book System are highlighted such as Finding Meaning
feature, Finding definition feature and the most important is generating dynamic book
feature. These features are further divided into their sub-features and they all collectively
required making an intelligent book system.

The product breakdown structure (figure 4 in Appendix) represents that a textbox, a
button and a label would be required for meaning finding feature and definition finding
feature. The diagram further shows that a textbox, a button, a web browser and a
checklist box are needed to display the dynamic chapter and a text-box; a button; a web
browser and a list box are needed to display the dynamic book.




                                                                                   38 of 133
6         System Design

Object-Oriented Design
Object oriented design methods emphasize the proper and effective structuring of a
complex system. Object oriented design is a method of design encompassing the process
of objects oriented decomposition and a notation for depicting logical and physical as
well as static and dynamic models of the system under design. [BOO03]

6.1 Comparison of different choices for algorithms and data structures.
To build the system and meet the system requirements various designs and algorithms
were considered.

    1. Format of book-

         o Option 1. RDF/XML-

Introduction-
It stands for Resource Description Framework. It became W3C Recommendation in
February 2004. RDF documents are written in XML. The XML language used by RDF is
called RDF/XML. This format was one of the options for natural language processing.

Uses-
It targets a number of important areas that include dynamic syndication and
personalization, mobile devices, resource discovery, intelligent agents, Describing
content for search engines, content rating, intellectual property rights, and privacy
preferences, Describing information about web pages, such as content, author, created
and modified date.

Architecture [1] –
Step 1- Gathering subject/topic metadata

         HTML keywords
         Subject lines in email messages
         Terms extracted automatically from text using natural-language-processing
          algorithms.

Step 2- Process on collected data

    1.    Normalizing input data (e.g., Web page files) by removing HTML tags and other
          programming codes
    2.    extracting common terms from the text
    3.    analyzing relationships among extracted terms
    4.    filtering terms and relationships contextually
    5.    Structuring filtered terms for representation in an RDF graph.


                                                                                 39 of 133
Working-

The subject/topic extraction software is embedded in a library of Open Source code that:

         Harvests Web pages from a list of URLs supplied by the user
         extracts simple metadata and encodes it in RDF
         normalizes the text for the NLP component
         creates a database of RDF relationships
         Makes the results available to the user through user interface.

6.2 RDF Model-

   See figure 5 in Appendix

Issues-

RDF model is very powerful and useful for maintaining semantic relations and extracting
contents. Team members decided to search for an alternative format to work on because
RDF is a new upcoming format. Documents in RDF format are still not available. The
team members decided to create an HTML/Text to RDF converter, and make use of its
semantic link for extraction. Converter was developed by the team members but it dint
show satisfactory results, because to make use of RDF document it needed to be
developed following some standard ways of writing statements. For this purpose one
should have a good idea about what is being said about what, and they would tend not to
arise. Maintaining subject and object relation between entities was itself a challenge.
Team members needed to have a clear understanding of the RDF document structures,
schemes and way they are built and interpreted. This idea was dropped because of
expected risk of meeting the project deadline, and it may divert from the actual project
scope.

          o Option 2. Jrju Script-

Introduction [ref]-

Jrju was designed for speed and simplicity. Most computer users understand how to use
plain text to express them (email for example). Jrju ups the ante only slightly, adding a
hierarchical structure to a collection of plain text notes. Consider the following:

         Plain text is universal. Notes can be taken anywhere, anytime, on any type of
          computing device.
         Jrju scales well. Notebooks grow in complexity as more content is added.
          Memory available to run the program is the only limitation on notebook size.
         Jrju takes over the burden of creating and maintaining hypertext links. Hypertext
          authoring becomes more natural and robust.
         Jrju was written in Perl. Perl interpreters are available for most computers at no
          charge.


                                                                                   40 of 133
Uses-

The major strength of Jrju is its ability to create hypertext links automatically. A link will
appear anywhere you refer to a page by name in the text. For example, "JTX File Format"
becomes a link since there is a page by that name elsewhere in this notebook. The phrase
"table of contents" is special and will always link to the top level index page for the
notebook.

A special "links file" allows you to define hot words with links outside the notebook. For
example, the Medical Informatics Home Page will be linked to its URL and my name,
Richard Rathe, will be linked to my email address.

Finally, Jrju keeps track of inverse links for each page. An inverse link is a link into the
current page from another page.

Working-

Jrju will recognize files whose names end with ".jtx" (for Jrju Text). (The JTX file for
this page is called "files.jtx.") Each JTX file must have the following minimal format:

The page name on a line by itself
---- A blank line ----
The page content

A notebook using this format will have a single table of contents index listing each page
alphabetically.

To create index hierarchy, add one or more lines above the page name and before the
first blank line. For example:

List of Members
Bill Clinton

All the pages with "List of Members" on the first line will be indexed on a page titled,
"List of Members." You can add an arbitrary number of "layers" to the hierarchy. The
only restriction is that each page and index must have a unique name. For example:: (See
figure 6 in Appendix)

Issues-
Team members decided not to opt for this as members dint has prior knowledge of Perl
language. There was risk of failing to implement the system using this as the members
hesitated to work on it. Keeping in mind the project scope and duration and a serious risk
of lack of confidence the members decided to look for another alternative.




                                                                                    41 of 133
   o Option 3. Text format-

       The members discussed and researched on the above mentioned alternatives.
       Members found Text format as the most common and easily implementable
       format to work on. Documents such as PDF or HTML can be easily converted to
       text documents. The users can easily make use of freely available converters and
       may use ―Intelligent Book‖, and fulfill their need.

Conclusion-
The team members decided upon Text Format. The users of the system need to convert
their documents to Text format in order to make use of the system. Next phases will be
designed with the constraint of documents being in text format.

   2. Layout of Dynamic Content Generated-

      o Option 1. User requirement based-

Overview-
This approach considered according to which the system would initially ask the user to
select the subject, then enter topic name. Then the system would identify the subtopics
and present the list to the user. Next the user will select the order in which he/she wants
to arrange the document topics or contents and read it.

Working-
  1. The user will select the document, from the Menu bar click on File->Open-
     >Computer Architecture.
  2. Next the user will enter the topic name
  3. The system would read all the files of computer architecture available, then
     extracts the list of topic available and displays it.
  4. Next the user will enter the desired sequence of topics in which he/she wishes to
     arrange and read.
  5. The contents will be generated from all the available books in the repository.

Issues:
This approach was dropped as it seemed to be very trivial. The fundamental natures of
dynamic content dint seem to meet. As this design (See figure 7 in Appendix) was just
mere ordering of contents and its topic. The design dint requires any intelligence to
generate the content.




                                                                                    42 of 133
Option 2. Definition- Explanation- Example- Reference

Overview-
On the basis of survey conducted in the analysis phase, most efficient and easily
understandable layout was considered. This layout was Definition, Explanation, Example
and Reference.
o       Definition head-
Sentences which would describe the topic, its overview and briefs what the topic is about.
o       Explanation head-
Sentences which are directly or indirectly related to the topic are extracted. This means
this part of DCG would give details about the topic by extracting only relevant sentences
from all the documents available in the repository.
o       Example head-
Sentences which would give examples related to the topic will be extracted and
displayed.
o       References head- This will just display the references of the documents from
where the Dynamic content is generated.

Option a. Working – Dynamic Book
The user will select the subject. The system will read all the documents available and
generate dynamic book. The contents will be generated by reading all the files and
extracting appropriate sentences for each head identified.

Option b. Working – Dynamic Chapter
The user will select the subject. The system will ask the user to select the books from
which he/she wants to generate the dynamic content. The system will then extract
sentences only from the files the user has specified (number of files selected should be
greater or equal to 2). The contents will be generated by reading all the files and
extracting appropriate sentences for each head identified.

Conclusion-
―Option2. Definition- Explanation- Example- Reference”, was finalized for Dynamic
content layout. As this layout seemed to be logical and comprehensible way to ease the
reader and facilitate in grabbing the concept of the topic quickly. It was decided among
the group members to design and implement both options i.e. Dynamic book and
Dynamic Chapter.

Abstraction and Separation
Main classes and objects of the system abstracted-
   1. Dynamic Chapter Generation
           a. Selecting subject
           b. Choice of selecting books to generate dynamic chapter from.
           c. Dynamic Content generated inform of-


                                                                                 43 of 133
                    i. Definition
                   ii. Explanation
                  iii. Example
                 iv. References
           d. Reordering Sentences –Using Majority order
           e. Meaning of difficult (English) words.
           f. Definition of technical words.
     2. Dynamic Mini-Book Generation
           a. Select subject
           b. Generate Dynamic Mini-Book from all books available in the repository
           c. Dynamic Content Generated inform of-
                    i. Definition
                   ii. Explanation
                  iii. Example
                 iv. References
           d. Reordering Sentences –Using Majority order.
           e. Meaning of difficult (English) words.
           f. Definition of technical words.

Overall System structure-
 See Figure 8 in Appendix

6.3 Cycle 1- Algorithm designing-

 Introduction-
 The goal was to form text structures for each head which consider relevant information
 appropriate for each head. Omit sentences which are irrelevant or of little relevance. To
 accomplish this task, algorithms needed to be developed which would select sentences
 containing words that appeared in the topic. Keep track of word position in a paragraph
 which is considered relevant. Identify text positions which carry rich semantic
 information suitable for each head.

 a. Definition-
 Sentences which would describe the topic, its overview and briefs what the topic is
 about.
 o      Option 1-

      Phase 1- Extract the meaning- Extract the meaning of the topic entered. Search
     for the nouns found in it, and save them.
      Phase 2- Use heuristic- Count Number of occurrences of similar nouns. Words
     occurred more than X times save them.



                                                                                44 of 133
 o     Option 2-

      Phase 1- Extract the meaning- Extract the meaning of the topic entered. Search
     for the nouns found in it, and save them.
      Phase 2- Use heuristic- Count Number of occurrences of similar nouns. Words
     occurred more than X times save them.
      Phase 3- Extract Definition- Extract sentences containing nouns saved from
     phase 1 and phase

 Option 2 was considered appropriate, on the basis of following tests carried out:-
Survey- Understanding human intelligence.

Introduction-
Survey was planned to identify and analyze human intelligence and ways to extract lines
suitable for Definition, Explanation and Example.
Survey was conducted, in Bahria University, Karachi Campus on May 15‘2009.
Documents related to different topics were distributed to students. They were asked to
mark sentences they think are suitable for Definition, Explanation and Example.

Survey result- Definition Extraction-
Sentences containing the name of the topic were mostly selected for this context. Other
sentences such as words directly related to the topic were selected.(See figure 9 and
figure 10 in Appendix)


b. Explanation-
 Sentences which are directly or indirectly related to the topic are extracted. This means
 this part of DCG would give details about the topic by extracting only relevant
 sentences.

     o Option 1-
      Phase 1-Extract all Nouns- Read all documents and extract all nouns found in the
        document and save them in a file.
      Phase 2- Extract Similar Nouns- From the nouns extracted count the occurrences
        of each noun.
             Applying heuristic nouns occurred more than 4 times consider them as
                 similar nouns.
      Phase 3- Duplicate removal- Remove duplicate from the similar nouns extracted.
      Phase 4- Extract sentences- Extract sentences containing the similar nouns from
        the files, and save them.




                                                                                 45 of 133
    o Option 2-
     Phase 1-Extract all Nouns- Read all documents and extract all nouns found in the
        document and save them in a file.
     Phase 2- Extract Similar Nouns- From the nouns extracted count the occurrences
        of each noun.
                Applying heuristic nouns occurred more than X times consider them as
                   similar nouns.
    Phase 3- Adding more relevant nouns- On the basis of similar nouns extracted in
      phase 2. Look up synonyms of the words and add them to the final list.
    Phase 4- Duplicate removal- Remove duplicate from the final list.
    Phase 5- Extract sentences- Extract sentences containing the similar nouns from
      the files, and save them.


Option 2 was selected to proceed further on the basis of following tests:-
A. Survey- Understanding human intelligence.
Introduction-
Survey was planned to identify and analyze human intelligence and ways to extract lines
suitable for Definition, Explanation and Example.
Survey was conducted, in Bahria University, Karachi Campus on May 15‘2009.
Documents related to different topics were distributed to students. They were asked to
mark sentences they think are suitable for Definition, Explanation and Example.

Survey result- Explanation extraction-
Sentences containing words/ nouns which are direct or indirect meaning of the related
topic were mostly selected for this context. Sentences which are longer in length were
also selected. (See Figure 15 and Figure 16 in Appendix)

c. Example-
  Sentences which would give examples related to the topic will be extracted and
  displayed.
        Procedure-
         Phase1 - Accept topic.
        Phase2- Search for sentences containing words such as (for example, for
         instance, like and others) related to the topic.
        Phase3- stores these sentences for Example.


3. Cycle 2- Algorithm designing-
Introduction-
After the implementation of above design, it was tested. The team members were not
satisfied with the results (tests results are further discussed in Testing chapter). The order



                                                                                    46 of 133
of sentences extracted was not in proper sequence. The text generated was unclear,
location of sentences was improper making it unreadable, and dint makes sense.
Due to improper results the design of system was reconsidered. Need of a new design
come into view, reordering of sentences was added as one of the component to design.
Changes were made in the previous design to incorporate the new feature. Hence Cycle 2
of algorithms was designed.
The goal is to extract relevant text structures from the documents. Sentences extracted
should be relevant, and information should be appropriate for each head. Omit sentences
which are irrelevant or of little relevance. To accomplish this task, algorithms needed to
be developed which would select sentences containing words that appeared in the topic.
Keep track of word position in a paragraph which is considered relevant. Identify text
positions which carry rich semantic information suitable for each head.

Reordering-
Sentences extracted as a result of Cycle 1 design, were unordered. The sentences were not
readable and the sequence was out of order. Therefore, need of designing a reordering
algorithm was considered.
The goal was to design an efficient algorithm which would result in ordering the
sentences in a clear and understandable form. It was also necessary to design the
algorithm which would not change or affect other previously designed algorithms.

Design Option 1- Ordering according to master document-
In this case the user was would be asked to select a master document first. Then the
system would determine the order of sentences from master document selected.
Extraction of sentences for definition, explanation and example will be carried out using
previous algorithms, and then these sentences will be arranged according to order in
master document.

Working-
Phase 1-Extract all nouns from all the documents and save in a file/array/array List.
Phase 2-Save nouns extracted from Master Document separately.
Phase 3-To find out the similar nouns compare nouns in Master document and other
documents
Phase 4-Extract sentences for definition, explanation and example using the above
mentioned algorithm.
Phase 5-Once the sentences are extracted arrange the text according to occurrences of
nouns in Master Document.

Design Option 2- Majority Ordering-
Ordering of sentences after extraction on the basis of common order found in most of the
documents. The process in which all the sentences are ranked according to the highest
ranking order, then next all sentences from next highest ranking order. This will help in
keeping the most relevant information in proper sequence. Similar nouns considered are
based on occurrences of nouns in all documents. This will help in including sufficient
content that is understandable to the reader.




                                                                                 47 of 133
Working-
Phase 1- Extract all nouns from the documents to be read, and save them in a
file/array/arraylist.
Phase 2- While extracting keeps track of line number, and word position.
Phase 3-Count the occurrences of each noun extracted, if the count is greater than X then
add it to the similar nouns arraylist.
Phase 4-Remove duplicate keeping the nouns having lower line number and position
number.
Phase 5-Extract text for definition, explanation and example.
Phase 6-Arrange the similar nouns list in ascending order of line number and position
number.
Phase 7-Order sentences extracted in phase 5 according to nouns arranged in phase 6.

Conclusion-
Majority order was considered for implementation.

Figure 11 in Appendix shows the final architecture of Dynamic Chapter generated. To
generate the chapter user first selects the subject, then selects the books from which
he/she wants to generate the chapter from. Next the user enters the topic. The system then
extracts definition, explanation, and example and then orders the sentences. Final chapter
generated is arranged and references are added.
Figure 12 in Appendix shows the final architecture of Dynamic Chapter generated. To
generate the chapter user first selects the subject. Next the user enters the topic. The
system then extracts definition, explanation, example from all the documents available in
the repository. Text extracted is then reordered. Final Mini-Book is generated is arranged
and references are added.
Sub-features of the system-
(a)Meaning of words- (See figure 13 in Appendix)
(b) Definition of technical words (See figure 14 in Appendix)




                                                                                 48 of 133
6.4 Dataflow Diagram




                       49 of 133
50 of 133
51 of 133
52 of 133
53 of 133
54 of 133
55 of 133
56 of 133
Detail:
A Data-flow diagram represents the flow of data through an information system. DFDs
can also be used for the visualization of data processing. On a DFD data items flow from
an external data source or an internal data store to an internal data store or an external
data sink, via an internal process. A DFD provides no information about the timings or
ordering of the processes or about whether the processes will flow in sequential or
parallel manner.

A DFD just shows the flow of control that what operations will be performed in what
order and under what conditions but not what kind of data will be input to and output
from the system.

This context-level DFD is further exploded to produce a Level 1 DFD that shows some of
the detail of the system being modeled. The Level 1 DFD shows how the system is
divided into sub-systems.

The above Level 1 diagrams (High Level Diagrams) show all processes at the first level
of numbering, data stores, external entities and the data flows between them. The
objective of this level is to represent the major high-level processes of the system and
their interactions. It‘s balanced with its parent context level diagram.

The first Level 1(a) diagram represents the processing that how the Intelligent System
finds the meaning of the word entered by the reader by using the Word Net Dictionary.

The Level 1(b) diagram represents the processing that how the Intelligent System finds
the definition of the word entered by the reader by using the Word Net Dictionary.

The next Level 1(c) diagram represents the processing that how the Intelligent System
generates the Dynamic Book/Chapter for the reader‘s entered topic.

The Level 2(c) diagram is a decomposition of a process shown in Level 1 (c) diagram. In
this diagram the processes 8.1, 8.2, 8.3, 8.4, 8.5 and 8.6 are all children of process 8 and
they completely describe the whole process of Level 8. The Level 2(c) DFD shows how
the Intelligent System processes the reader‘s title to develop book contents.

The Level 2(c-i) diagram represents the processing by the Intelligent System to generate
the ‗Definition‘ content for the dynamic book.

The Level 2(c-ii) diagram represents the processing by the Intelligent System to generate
the ‗Explanation‘ content for the dynamic book/ chapter.

The Level 2(c-iii) diagram represents the processing by the Intelligent System to generate
the ‗Example‘ content for the dynamic book/ chapter.

The Level 2(c-iv) diagram represents the processing by the Intelligent System to reorder
the unordered sentences.



                                                                                  57 of 133
7       Implementation
In this chapter, we shall discuss the important coding aspects of the application. As
discussed in scope of the project, the application is coded in Visual Studio C#. The
algorithms coded in the application are designed by us. The application is working on
windows forms. On windows form, different tabs are designed for each component of the
application. Each component could be accessed by clicking on different tab. Below is the
description of different code snippets.

Finding Meaning and Definition:
These are one of the important components of the application. As mentioned in the scope
of the project, reader would be provided the facility of searching meaning, while
dynamically generating chapters. Apart from meaning, definition would also be
generated. Thus to implement these two components, we have used two database files of
WordNet Dictionary. Following are two classes ―Indexer‖ and Definition‖ plays
important roles, in implementing the functionalities of finding meaning and definition.

Code for Indexer Class:
(See Algorithm 3 in Appendix)
The Indexer class use the file wn_lemmaIndexes.lst. This file contains the repository of
words. Beside each word, there are offsets. The Indexer class accesses these offsets. The
Indexer class has a method ― public string LoadLemmas(string search4)‖. This is the core
method of an Indexer class. This method performs following functionalities:

       This method takes string value as input parameter.

       The string value that it takes as input parameter is the value of which definition or
        meaning is to be requires.

       As mentioned before there are offsets beside each word,the method searches for
        two offsets of the string value in wn_lemmaIndexes.lst file and save it as integer
        in two variables.

       In the method two objects of definition class are created.

       Then a method ―Meaning‖ of Definition class is called, it takes input parameters,
        string(represents value on which definition and meaning is to be found) and a
        integer value. The integer value is an offset present in wn_lemmaIndexes file.

       The ―Meaning‖ of Definition class is called two times, and each time, it takes
        same string value as input parameter but different integer value. Because integer
        value are two offsets, that are extracted from wn_lemmaIndexes file.

       The ―Meaning‖ method finally returns a string value, which in turn is returned to
        ―LoadLemma‖ method.


                                                                                   58 of 133
Code of Definition class
(See Algorithm 4 in Appendix)

The above class uses the wn_database.lst file. This file contains the meanings of words.
In the above code, ―public Meaning(string lemma, long offset)‖is a method that derives
the meanings from the WordNet. This method takes string and long integer value as input
parameters. Within this method, another method ―private string getDefinition(long
offset)‖ is also called, takes integer value ―offset‖ as input parameter‖ .The ―private
string getDefinition(long offset)‖ method searches for the text of the offset value and
return it as string value to the public Meaning(string lemma, long offset)‖method.

In the code, terminologies such as synset, gloss and pos are mentioned. These
terminologies are declared as private variables. Separate methods are formed for these
variables, that either return list of objects or string. Below brief description about these
terminologies is mentioned.
According to WordNet, a synset or synonym set is defined as a set of one or more
synonyms that are interchangeable in some context without changing the truth value of
the proposition in which they are embedded. A gloss is a brief summary of a word's
meaning, equivalent to the dictionary entry of that word, but only a word or two in
length. It is typically used for the meaning of a word in another language, and hence a
simple translation. Pos are noun, verb, adj and adv.

Dynamic Content Generation:
Code Snippets for Generating Book:
Here we shall discuss different code snippets of the ―dynamic content generation‖
component. Below only those code snippets are discussed, that play important role in
generating book

The Algorithm 5 in Appendix plays vital role in generating definition for the book.The
code uses the ―Indexer‖ class. This class has a method ―Topic‖ that takes the topic
name(on which book is to be generated) as input and return array of strings. In ―Topic‖
method, following operations are performed:

      Create the object of ―Indexer‖ class.
      ―id.LoadLemmas‖ method takes topic name as input parameter, and returns the
       definition,which is spilt by space and saved in toSearch_part1 array.
      Create a new string array named toSearch. Run a for-loop on toSearch_part1 and
       toSearch array
      In every iteration of loop, conditional statement is executed, that checks if length
       of string in toSearch_part1 is greater than 4,then save it in toSearch array.

The Algorithm 6 in Appendix snippet is a method that takes value(topic on which book is
to be generated)and file name as input parameters.Within this method, another method is
called,‖Extract_All_Nouns‖. ―Extract_All_Nouns‖ method, returns an integer value.
Now what ,this value represents, will be discussed in the below method.




                                                                                  59 of 133
This (Algorithm 7 in Appendix) class extracts the nouns related to Topic( on whicj book
is to generated) from the files present in repository. This class performs following
operations:

      Opens the files present in repository.
      Stream Reader reads the files.
      The code runs nested for-loop and while loop. First a while loop is executed, that
       reads the file till end.Within this loop, the content of the file is spilt by full stop(.)
      Then the code checks whether the topic entered by user to generate is present in
       files or not.

      If it is present, then increment the counter.In the end it returns the value of
       counter.
      Again a for-loop and a while loop starts executing, the sentences that were
       previously spilt by full stop, are further spilt space and save it in array wordspilt.
      A conditional statement is executed on every iteration of the loop, that checks
       whether each word‘s length(word is in array ―wordspilt‖) is greater than 3, that
       further check, whether this word is noun or not.To check it is noun, it uses
       ―NounIndexer‖ class method ―LoadLemmas‖
      It a word is noun, then save it in allNounsFile.
See Algorithm 8 in Appendix
This is one of most important method of the application.Within this method, certain other
important methods are also called. This method takes nouns list as input parameter, and
returns the array list of nouns. The code performs the following operations:

      Before the creating a method ―Count_Sim_Meaning_Dup‖ a static string variable
       ―str_DupRemoved‖ is declared. An array list ―duplicateRemoved‖ is also
       created.
      As mentioned before, the method takes list of nouns as input parameter, and also
       returns list of nouns in arraylist. Then a empty string ―ckh‖ is initialized.
      A for-loop is executed, that stores noun at each index of nouns list, to the string
       ―ckh‖.
      Within this loop, a method Count_Occurances is called,that takes ―allNouns‖ list
       and string ―ckh‖ as input parameters.
      Count_Occurances method will compare each noun of the list with the string
       ―ckh‖, and check whether its occurrence is greater than 4, then save it in
       ―similar_Nouns‖ array list. This method also saves the index of the noun saved in
       ―similar_Nouns‖ into another array named similarNouns_Indices.These arrays
       will be used in further methods.

      After the for-loop has been executed, Similar_Nouns method is called. This
       method will extract "indexes" of words that are determined in previous step and
       retrieves its Lineno and word position using the "indexes". This method returns
       the list of nouns along with line number and position number and save it in
       ―simlarNouns_pos‖


                                                                                       60 of 133
      Then method ―Duplicate_Removal‖ is called. It takes simlarNouns_pos as input
       parameter and removes duplicate words by removing words with higher value
       of line number and word position. Within this method, core logic of majority
       ordering is implemented. The technique of majority ordering is implemented, for
       ordering sentences.
      Further a loop is executed, that saves the words of duplicateRemoved in
       str_DupRemoved.

See Algorithm 8 in Appendix
This method takes the filename,array of words, and the value(topic on which is to be
generated) as input parameters.This is the core method for extracting sentences and is
used for definition, expalnation and example extraction.This code performs following
operations:

      Stream Reader reads the files.
      Three strings ―readcomplete‖, ―Definition_Extracted‖, ―readdefi‖ are intialized as
       empty.
      This code runs nested for and while loop, for reading the files.
      First when ―while-loop‖ starts reading the file, it first spilts all contents of the file
       by full stop(.). Then it checks, for those sentences that contain the input
       parameter(value).If such sentences are found, further a while loop is executed,
       then sentences are again spilt by full-stop(.).
      Then two for-loops are executed, within the loop a conditional statement is also
       executed that whether a sentence contains a word(in arraylist).
      If such sentence is found, then it is saved in string and is returned.

Code For Reordering Sentences:

See Algorithm 10 in Appendix
This code reorders the sentences extracted, on the basis words of arraylist(on which
technique of majority ordering is performed).The code performs the following
operations:

      There is a method ―ReOrdering‖, that takes ―content‖ (definition, explanantion,
       example), of the book, as input parameters and returns a string of sentences.

      An     arraylist     named        sentences_ReOrdered       is   initialized. The
       ―MajorityOrderofWords‖ is a method that returns a list of words(on which
       majority order technique is performed), that are in turn stored in an arraylist
       wordsOrder.
       The content is spilt by space and save it in sentnces_Unordered.
      The ―MajorityOrderofWords‖ are the list of words, on which majority order
       technique was implememented. These words are stored in the arraylist
       ―wordsOrder‖
      Runs nested do while and for loop , that checks if the sentence contains required
       word of arraylist, then store it in an arraylist sentences_ReOrdered.


                                                                                      61 of 133
   Then another arraylist ―noDups‖ is initialized. A ―Foreach loop‖ is excuted that
    removes the duplicate sentences in an arraylist ―sentences_ReOrdered‖.
   An empty string ―text‖ is initialzed.
   In a ―for-loop‖ sentences of arraylist ―noDips‖ are concetenated in a string ―text‖
    and is returned.




                                                                              62 of 133
8       Testing
8.1 Interface Testing

Case    Action                            Expected Result                        Pass/Fail

    1   Start Application by       A splash      screen    would    be    Pass
        Double Clicking on its     displayed
        ICON

    2   Close the application by   Closes the application by              Fail
        clicking close button      displaying message box ―Are you
                                   sure, you want to exit‖?


    3   Clicking on the minimize   Window Should return to an icon        Pass
        button                     on the bottom of the screen


    4   Clicking on the icon in    Application returns to its original    Pass
        task bar to return the     size
        window to its original
        size
    5   Opening another multiple   Shouldn‘t allow to open multiple       Fail
        instances of application   instances


    6   Clicking on the button,    If the application is busy, then the   Pass
        during some execution      hour glass should be displayed


    7   Keeping the value of       System will not process further,       Pass
        checkbox     unchecked,    because the button is disable
        when selection of values
        is required.
    8   When the user doesn‘t      System will prompt a error             Pass
        select any value from      message box
        drop down list




                                                                                 63 of 133
9    Invalid data is entered System will ask the user to enter    Pass
     into Fields.            valid data and will not move
                             forward until correct values are
                             entered.
10                         System resets all the fields to null
     User press reset button.                                     Pass
                           and database fields are also
                           erased.
11   User invalid entered System checks for invalid data          Pass
     fields   contents are and will not process until
     reported              corrections are made.

12   Correct topic name System processes the valid data in        Pass
     entered is processed    database after the Generate
                             button is pressed.
13   User cannot enter more Yes. System will not take more        Pass
     text then specified in  text after its limit.
     the text field ( No. of
     Books).
14   User selects two radio  System will allow only one item      Pass
     options from a radio    to be selected from the available
     button list from the    radio list
     form.
15   Form is supporting      Yes. As Back office controller       Pass
     Scroll bars             can create any length template.

16   Are controls aligned?      Yes                               Pass
17   Do the controls working Yes                                  Pass
     correctly?




                                                                         64 of 133
8.2 GUI Testing

     Case          Testing Cases               Test Results    Remarks

     1.     Correct color for general          Yes             Test Failed
            screen background
     2.     Field prompts the correct          Yes             Test Failed
            color

     3.     Field backgrounds the              Yes             Test Failed
            correct color
     4.     Minimum usage colors               Yes             Test Failed
     5.     Consistency in using               Yes             Test Failed
            Colors
     6.     Consistency in using font          Yes             Test Failed
            styles
     7.     Use of unnecessary scroll          No              Test Failed
            bars
     8.     Wastage of Space on Page           No              Test Failed
     9.     Relevance of contents              Yes             Test Failed
            with title
     10.    Functionality is            No. As Not tested in   Test
            appropriate                 real environment       Successful
     11.    Are the actions easy to             Yes            Test Failed
            remember and to invoke
     12.    Usage of too many actions          No              Test Failed
     13.    Navigations options are            Yes             Test Failed
            obvious
     14.     Appropriate Error                 Yes             Test
            messages are displayed.                            Successful




                                                                  65 of 133
8.3 Performance Testing

                    Section          Details
             Hardware details Processor: Genuine Intel® CPU 1.86GHz
                              Memory: 1GB
                              System Type- 32-bit OS
             Software details Operating system: Microsoft® Windows Vista®
                              Platform: .NET Framework 1.1

8.4 Test Cases for Meaning Textbox

Test case     Expected       Expected      Actual     Expected       Actual         Test
              Result         Input         Input      Output         Output         Result
Case 1:       Error          User          User       Invalid        The            Test
User          message is     enters        enters     value          application    Successful
enters the    displayed      numeric       text       entered        response
numeric                      value         value      message        depending
value in                                              Box            on the value
Meaning                                               displayed      entered
Text Box

Case 2:       Error          User          User       Word not       The            Test
User          message is     doesn‘t       enters     entered        application    Successful
doesn‘t       displayed      enter any     some       message        response
enter                        value in      value in   Box is         depending
anything                     text Box      text box   displayed      on the value
in text                                                              entered
Box


Case 3:       Error          User          User       Invalid        The correct    Test
User          message is     enters an     enters     value          Meaning of     successful
enters an     displayed      incorrect     correct    entered        the word is
incorrect                    spelling in   spelling   message        displayed in
spelling                     textbox       in text    Box            the label
in the                                     box        displayed
textbox

Case 4:       The            User          User       The            The correct    Test
User          correct        enters        enters     correct        Meaning of     Successful
enters        Meaning        correct       correct    Meaning        the word is
correct       of the         spelling in   spelling   of the         displayed in
value in      word is        text box      in text    word is        the label
textbox       displayed                    box        displayed
              in the label                            in the label



                                                                                      66 of 133
8.5 Test Cases for Definition Textbox

Test case    Expected     Expected      Actual     Expected     Actual         Test
             Result       Input         Input      Output       Output         Result
Case 1:      Error        User          User       Invalid      The            Test
User         message is   enters        enters     value        application    Successful
enters the   displayed    numeric       text       entered      response
numeric                   value         value      message      depending
value in                                           Box          on the
Definition                                         displayed    value
Text Box                                                        entered

Case 2:     Error         User          User       Word not     The            Test
User        message is    doesn‘t       enters     entered      application    Successful
doesn‘t     displayed     enter any     some       message      response
enter                     value in      value in   Box is       depending
anything                  text Box      text box   displayed    on the
in text Box                                                     value
                                                                entered


Case 3:     Error         User          User       Invalid      The correct    Test
User        message is    enters an     enters     value        definition     successful
enters an   displayed     incorrect     correct    entered      of the word
incorrect                 spelling in   spelling   message      is displayed
spelling in               textbox       in text    Box          in the label
the textbox                             box        displayed


Case 4:      The          User          User       The          The correct    Test
User         correct      enters        enters     correct      definition     Successful
enters       definition   correct       correct    definition   of the word
correct      of the       spelling in   spelling   of the       is displayed
value in     word is      text box      in text    word is      in the label
textbox      displayed                  box        displayed
             in the                                in the
             label                                 label




                                                                                 67 of 133
8.6 Test Cases for Dynamic Content Generation (Chapter/Book)

             Expected      Expected     Actual    Expected      Actual        Test
Test case    Result        Input        Input     Output        Output        Result
Case 1:      Correct tab   User          User     Dynamic       Correct tab   Test
User         page is       clicks on    clicks    content       page is       Successful
clicks on    displayed     dynamic      on        generation    displayed
the                        content      correct   tab is
dynamic                    generation   tab       displayed
content                    tab
generation
tab
Case 2:      Error         User         User      ―Select a     The           Test
User         message is    doesn‘t      select    value ―       application   Successful
doesn‘t      displayed     select any   value     message       response
select any                 value from   in drop   Box is        depending
value in                   drop down    down      displayed     on the
drop down                  list         list                    value
list                                                            selected


Case 3:      The           User         User      The           The           Test
User         application   selects a    select    application   application   successful
selects a    response      value from   value     response      response
value from   depending     drop down    in drop   depending     depending
drop down    on the        list         down      on the        on the
list         value                      list      value         value
             selected                             selected      selected




                                                                                68 of 133
8.7 Test Cases for Dynamic Content Generation (Chapter/Book)

Test case      Expected        Expected      Actual        Expected        Actual         Test
               Result          Input         Input         Output          Output         Resul
                                                                                          t
Case 1:        Text box is     User          User          Text box is     Text box       Test
User selects   displayed to    selects the   selects the   displayed to    is             Succe
a radio        enter the no    dynamic       dynamic       enter the no    displayed      ssful
button (for    of books        chapter       chapter       of books        to enter
chapter)                       radio         radio                         the no of
                               button        button                        books

Case 2:        List box        User          User          List box        List box       Test
User selects   containing      selects a     selects a     containing      containing     Succe
a radio        the books       radio         radio         the books       the books      ssful
button(for     (present        button(for    button(for    (present        (present
dynamic        repositories)   dynamic       dynamic       repositories)   repositorie
book)          is displayed    book)         book)         is displayed    s) is
                                                                           displayed


Case 3:       Error            User          User          Invalid         User           Test
User enters message is         enters text   enters        value           enters         succes
text in no of displayed        in no of      numeric       entered         numeric        sful
books text                     books text    value in      message         value in
Box                            Box           text Box      Box             text Box
                                                           displayed


Case 4:        Check list      User          User          Check list      Check list     Test
User enters    box (names      enters        enters        box (names      box            Succe
numeric        of books) is    numeric       numeric       of books) is    (names of      ssful
value in no    displayed       value in      value in      displayed.      books) is
of books                       no of         no of                         displayed.
text Box                       books text    books text
                               Box           Box

Case 5:        Textbox to      User          User          Textbox to      Textbox to Test
User selects   enter the       selects the   selects the   enter the       enter the  Succe
the no of      name of topic   no of         no of         name of         name of    ssful
books from     and generate    books         books         topic and       topic and
check list     button is       from          from          generate        generate
box(names      displayed       check list    check list    button is       button is
of books)                      box(names     box(names     displayed       displayed
                               of books)     of books)




                                                                                      69 of 133
Case 6:        Error          User          User          Invalid       The          Test
User enters    message is     enters the    enters text   value         applicatio   Succe
the numeric    displayed      numeric       value         entered       n response   ssful
value in                      value in                    message       depending
topic (on                     topic (on                   Box           on the
which                         which                       displayed     value
book/chapt                    book/chap                                 entered
er is to                      ter is to
generated)T                   generated)
ext Box                       Text Box
Case 7:        Error          User          User          Word not      The          Test
User           message is     doesn‘t       enters        entered       applicatio   Succe
doesn‘t        displayed      enter any     some          message       n response   ssful
enter                         value in      value in      Box is        depending
anything in                   text Box      text box      displayed     on the
topic (on                                                               value
which                                                                   entered
book/chapt
er is to
generated)T
ext Box
Case 8:        Error          User          User          Invalid       The          Test
User enters    message is     enters an     enters        value         applicatio   succes
an incorrect   displayed      incorrect     correct       entered       n response   sful
spelling in                   spelling in   spelling in   message       depending
topic (on                     textbox.      the text      Box           on the
which                                       box           displayed     value
book/chapt                                                              entered
er is to
generated)T
ext Box
Case 9:        The            User          User          The           The          Test
User enters    book/chapter   enters        enters        book/chapte   book/chap    Succe
correct        is generated   correct       correct       r is          ter is       ssful
spelling in                   spelling in   spelling in   generated     generated
topic (on                     text box      text box
which
book/chapt
er is to
generated)T
ext Box




                                                                                70 of 133
Case 10:    Error              User          User          The           The          Test
User enters message is         enters        enters        application   book/chap    Succe
incorrect   displayed          correct       incorrect     exits         ter is       ssful
spelling in                    spelling in   spelling in                 generated
topic (on                      text box      topic (on
which                                        which
book/chapt                                   book/chap
er is to                                     ter is to
generated)T                                  generated)
ext Box                                      Text Box


8.8 Unit Testing
In unit testing the programmer tests the individual parts of the code and tests the
individual methods of the source code to check whether or not these methods are fit to
use. Ideally the each test case must be independent. The procedure for unit testing
includes writing the independent test cases for each method and function of the program
so that if any error occurs then it can easily be identified through these test cases.
Through this testing, all the errors can not be identified and it‘s impossible to check the
each part of the source code but only the important/insignificant part of the codes are
checked.

Test Results can be viewed in Appendix- Test Result 1

8.9 System Testing

System testing includes the complete testing of hardware or software. It‘s conducted on a
complete system to evaluate the system‘s compliance with its requirements. It‘s an
investigatory testing phase. In it input is given to the system and it‘s checked whether or
not the system is giving the required output. The test is conducted to not only check the
system design but also the behaviors and expectations of the customer.

Test Results can be viewed in Appendix-Test Result 2




                                                                                 71 of 133
9      Discussion
The project, ―The Intelligent Book‖, went through series of changes during its
progression. Below, we shall discuss the progression of the project in the form different
stages.

At initial Stage:
When we took up the project, we tried to search for the learning system, in which similar
concept of generating chapters/book is implemented. We exactly didn‘t find such a
system, because the project was itself research based and concept is totally new, so there
was no existing system to study on. But we do come up with research papers about the
summary generation system that used different techniques to generate summary. After
doing thorough research about the literature of the system, we came up with the
conclusion that concept of generating chapter and book on user‘s request is totally new,
and it has unlimited scope in future.

To clarify the capabilities that the system must conform on, different surveys were
conducted and questionnaires were also distributed in campus. This activity helped us in
examining the human intelligence for recognizing ―Definition, Explanation and example‖
from the text present. This sort of fact finding techniques was necessary to conduct,
because we were required to embed human intelligence in the application.

At mid –Stage:
After identifying the requirements, which were to be implanted in the application. The
next step was to design the system. This step itself went through series of stages. On the
basis of analysis conducted, we designed each component of the application. Each
component was designed, by using different UML diagrams. The designing of each
component gave an idea, that how the application would progress. To implement the
components of the application, certain algorithms were required. We studied numerous
research papers, to design the algorithms. We were aim to design such efficient
algorithms that clearly depicts the essence the chapter/book generation. Although the
algorithms have certain flaws, that would be mentioned in later chapter.

To generate the chapter/book, a book is supposed to be in certain. While we were
designing of each component of application, we were also in parallel researching on
format, in which book would be saved in repository. As discussed in analysis and design
chapter, we studied different formats (RDF/XML, Jrju-Perl). After complete analysis and
research, we opt for the book format, which proved to be feasible in all sense.

When the algorithms were finalized, we test the algorithms on the book format we have
chosen. The results proved to be satisfactory. Although there were some flaws, but there
is always a room for improvement.

Final-Stage:
The application was coded using an object oriented language. The application has both
front hand and back hand coding. The application is coded by using three-tier


                                                                                 72 of 133
architecture. The application was being tested since initial stages. But at the completion
of coding, white box and black testing was conducted, in order to check, whether the
application produce correct results and is functioning right. We were aim to build a
quality application. But quality is an on – going process. At last phase of progression, we
can‘t embed quality in a system. So, we started working on quality feature from analysis
phase. We performed several iterations across each phase, and at the same time perform
risk management also.




                                                                                 73 of 133
10       Conclusions

The Intelligent book is such an intelligent system that displays a mini book or a chapter,
on any topic, of the books, present in repository. Unlike any search engine, it doesn‘t
display any links to web pages, research papers, white papers when a topic is entered. In
fact it generates the content in book format (Definition, explanation, example). Thus the
reader wouldn‘t have to switch between different links, to read a particular topic.
Apart from the functions the system performs, there are certain limitations associated
with the applications. The limitations are as follows:
     Our aim was to build such an application that intelligently displays a book or
         chapter, within splits of seconds. We are aim to save the time of reader, from
         switching between various links of any search engine, and get the reading
         material in front of it in organized book format.

         But as the project we were working on is totally research base, so we preferred to
         design our own algorithms but, the algorithms designed for generating a book,
         have high time complexity. The time taken to generate a single book or a chapter
         is approximately 20 minutes. When an algorithm is created, it further goes
         through many changes, so certainly the algorithms designed by us, needs some
         modifications, to reduce the time complexity.

        The application must generate such a book, that have some diagrams and figures,
         for better understanding of the reader, but the books present in repository are in
         the form text files and the algorithms we have designed, does not support any
         diagrams. Thus when a book or a chapter is generated, it doesn‘t have any
         diagrams or figures. To improve this flaw, again the algorithms need better
         modifications, such that it can intelligently display diagrams related to any topic.




                                                                                   74 of 133
11     Future work

In previous chapter, we have discussed about the limitations that are associated with the
applications. Our application is an intelligent system, but to make it quality software, the
limitations of the system suggest a natural direction for the future work. As mentioned
before, the project is totally research base, so certainly it has boundless scope. As
mentioned in previous chapter, the algorithms we have designed, by keeping in mind that
a book will be saved in repository, in text format. The algorithms have high time
complexity too. Moreover the book or chapter being generated does not have any images.
So redesigning the algorithms such that it has less time complexity and it supports a book
format, which is more reader friendly, are important aspect of future work.
   Apart from eliminating the limitations, when extra functionality is embedded in
system, that system becomes more useful and capable. Intelligent book system can
further be enhanced and improved by implementing various features such as cross-
referencing and query processing, i.e. the system should be able to respond to the queries
of users, while a generating a book.
Currently the system is a desktop application; in future the system can be made a web
application. The Intelligent Book is not a search engine, but it can act in future a
substitute for any search engine. In future, the Intelligent Book can remove the
limitations of a search engine. When the system will be exported on web, its worth would
increase. It would also open new doors in the inventions of Intelligent Learning System.
In future, we shall see the intelligent book, such an agent who is running on a computer
and if any topic is entered, it uses the web (websites, e-book sites, research paper sites)
finds relevant pages and generates book, chapter, document, report, summary using them.




                                                                                  75 of 133
12     Appendices
Appendix-A
        12.1 Figures




Figure 1- Math Tiles




Figure 2- Architecture of Intelligent Book Exercise Solution




                                                               76 of 133
Figure 3 Process WBS




                       77 of 133
Figure 4-Product WBS




                       78 of 133
Figure 5- RDF Model




Figure 6




                      79 of 133
Figure 7- Initial Interface


                              Overall System structure (3-Teir Architecture)




                  Control to show Features                               Menu bar

  Application
    Layer         Textboxes to accept input                       Buttons to process task


                  Labels to display processed results             Viewer to display book




                                 Extract Meaning



                                                                 Extract Definition
 Business Layer


                      Dynamic Chapter Generation


                                                             Dynamic Book Generation




                                   Dictionary

   Data Layer
                                                                    Stored Files




Figure 8- Overall System Architecture


                                                                                            80 of 133
Figure 9- Dry Run for Definition Extraction




                                              81 of 133
                        Algorithm Definition extraction
      Input: String Topic name (input)
      Output: String extracted Explanation
1.    Select Subject
2.    Enter Topic
      If(topicName == null) then return error

3.    Else
4.    Find the meaning of topic
5.    input=Extract nouns from it
6.    While all directory files are read
      Open directory and Getfile names (filename)

7.    if(filename==‖MasterDoc‖)
8.      While end of file reached
         string[] check = readDoc.Split('.')

9.        for r< check.Length
10.        if (check[r].Contains(input))
11.           while ((readDoc = str.ReadLine()) != End of topic))
               string[] parts = readDoc.Split('.')

12.               for (i<parts.Length - 1)
                  string[] wordsplit = parts[i].Split(' ');

13.                   for (j < wordsplit.Length-1 )
14.                     if ((wordsplit[j].Length > 3) )
15.                       AnsNoun = NI.LoadLemmas(wordsplit[j])
16.                         if (AnsNoun == true)
17.                            NounList[next] = (wordsplit[j])
18.                            next++
19. end while 5
20. end while 4
21. else
    repeat from 6-14 and replace step 15 and 16 to
22. write wordsplit[i] to file allNounsFile
23. while ((readAllNouns = allNounsFile.ReadLine()) != null)
24.       allNouns[counter] = readAllNouns
25.       counter++
26. end of while
27. for(chk < next)
28.      for( chk2 < counter)
29.       test = allNouns[chk2]
30.          if ((NounList[chk]== (test))
31.           write to File NounList[chk]
32.           similarNounsCounter++
//Duplicate removal
33. a1= ArrayList(similarNouns)
34. Sort al
35. for (k = al.Count - 1; k > 0; k--)
36.       if ((string)al[k] == (string)al[k - 1])
37.           al.RemoveAt(k)


// Extract Definition
38. while End of file is reached
39. string[] check = readcomplete.Split('.');
40.      for (r < check.Length)
41.          if (check[r] contains input
42.             while end of topic is reached
43.                 string[] parts = readdefi.Split('.');
44.                    for (parts_Counter < parts.Length)
45.                       for ( alword_Counter < alword.Count)
46.                          if ((parts[parts_Counter].Contains((string)alword[alword_Counter]) && ((alword[alword_Counter])
      != null)))
47.                               Definition_Extracted = (parts[parts_Counter] + ".")
48.                               parts_Counter++
49. End of while 42
50. End of While 38
51.   Return Definition_Extracted



                                                                                                                 82 of 133
                     Architecture of Dynamic Chapter Generation




     Dynamic Content
       Generation

                                     Select Subject



                                   Select Documents


                                       Enter Topic




        Definition              Explanation           Example     References




                                       Reordering




                                        Chapter
                                       Generation



Figure 11- Dynamic Content Generation




                                                                        83 of 133
                     Architecture of Dynamic Book Generation




     Dynamic Content
       Generation

                                    Select Subject


                                     Enter Topic




        Definition             Explanation           Example   References




                                      Reordering




                                        Book
                                      Generation




Figure 12- Final architecture of Dynamic chapter generated




                                                                     84 of 133
                  Component Meaning


                                                                               Meaning
                                                                                indexer
                                                                               and Data
                          Received Text



 DataAccess                                Search for Word index using
                                                  Indexer Class



                                             Search for Index using Data
                                                        Class

  Display


                                                 Return Meaning




Figure 13- Structure for finding Meaning


                    Component Definition


                                                                               Meaning
                                                                                indexer
                                                                               and Data
                             Received Text



 DataAccess                                  Search for Word index using
                                                    Indexer Class



                                               Search for Index using Data
                     Order Sentences                      Class

        Display


                                                   Return Definition



Figure 14- Structure of finding Definition




                                                                             85 of 133
Figure 15– Dry run for Explanation Extraction




                                                86 of 133
                       Algorithm Explanation extraction
      Input: String Topic name (input)
      Output: String extracted Explanation
52. Select Subject
53. Enter Topic
    If(topicName == null) then return error

54. Else
55. While all directory files are read
    Open directory and Getfile names (filename)

56. if(filename==‖MasterDoc‖)
57.   While end of file reached
       string[] check = readDoc.Split('.')

58.       for r< check.Length
59.        if (check[r].Contains(input))
60.           while ((readDoc = str.ReadLine()) != End of topic))
               string[] parts = readDoc.Split('.')

61.              for (i<parts.Length - 1)
                 string[] wordsplit = parts[i].Split(' ');

62.                   for (j < wordsplit.Length-1 )
63.                     if ((wordsplit[j].Length > 3) )
64.                       AnsNoun = NI.LoadLemmas(wordsplit[j])
65.                         if (AnsNoun == true)
66.                            NounList[next] = (wordsplit[j])
67.                            next++
68. end while 5
69. end while 4
70. else
    repeat from 6-14 and replace step 15 and 16 to
71. write wordsplit[i] to file allNounsFile
72. while ((readAllNouns = allNounsFile.ReadLine()) != null)
73.       allNouns[counter] = readAllNouns
74.       counter++
75. end of while
76. for(chk < next)
77.      for( chk2 < counter)
78.       test = allNouns[chk2]
79.          if ((NounList[chk]== (test))
80.           write to File NounList[chk]
81.           similarNounsCounter++
//Duplicate removal
82. a1= ArrayList(similarNouns)
83. Sort al
84. for (k = al.Count - 1; k > 0; k--)
85.       if ((string)al[k] == (string)al[k - 1])
86.           al.RemoveAt(k)


          // Meaning of similar nouns extracted
87. for a < al.Count
88. meaning[a] = id.LoadLemmas(al[a])
// Extract Explanation
89. while End of file is reached
90. string[] check = readcomplete.Split('.');
91.      for (r < check.Length)
92.           if (check[r] contains input
93.              while end of topic is reached
94.                  string[] parts = readdefi.Split('.');
95.                     for (parts_Counter < parts.Length)
96.                        for ( alword_Counter < alword.Count)
97.                           if ((parts[parts_Counter].Contains((string)alword[alword_Counter]) && ((alword[alword_Counter])
      != null)))
98.                                explanation_Extracted = (parts[parts_Counter] + ".")
99.                                 parts_Counter++
100. End of while 42
101. End of While 38
102.             Return explanation_Extracted
                                                                                                                  87 of 133
12.2 Tables
Following Table-1 represents the list of tasks with their duration that needs to be
accomplished in an Analysis phase:

           Task Labels Task Name                                        Days

           A.A          Research Analysis for Possible Solutions        30
                        Part 1(Literature Review)
           A.B          Research Analysis for Possible Solutions        7
                        Part 2 (Questionnaire)
           A.C          Problem Statement                               3
           A.D          Evaluation of Possible Solution                 26
           A.E          Selection of Solution                           3
           A.F          Aims and objectives                             3
           A.G          Statement of scope                              2
           A.H          Feasibility Analysis                            7
           A.I          Process Model selection                         7
           A.J          Expected software response                      2
           A.K          Major constraints                               5
           A.L          Usage Constraints                               5
           A.M          Cost/Benefit Analysis                           5
           A.N          Resource Allocation/Work Distribution           7
           A.O          Test Plan                                       10
                        Total Days                                      123


Following Table-2 represents the list of tasks with their duration that needs to be
accomplished in Design phase:


             Task Label    Task Name                                   Days

             D.A           System Overview                             7
             D.B           Design Overview                             7
             D.C           System Architecture                         10
             D.D           Identification of critical components       5
             D.E           Detailed System Design                      35
             D.F           Interface Design                            20
             D.G           Restrictions and Limitations                5
                           Total Days                                  89




                                                                                      88 of 133
Following Table-3 represents the list of tasks with their duration that needs to be
accomplished in an Implementation phase:


           Task Label       Task Name                                 Days

           I.A            Hardware & Software setup                   3
           I.B            Database Connectivity                       5
           I.C            Backend Coding                              30
           I.D            Frontend Coding                             10
           I.E            Graphics and animation                      5
                          Total Days                                  53
Following Table-4 represents the list of tasks with their duration that needs to be
accomplished in testing phase:


             Task Label     Task Name                                  Days

             T.A            Test Procedures                            25
             T.B            Test Record keeping and Log                11
                            Total Days                                 36


The following Table-5 represents the dependencies among the task and helps in
determining that which task are needed to be accomplished first.




                                                                                      89 of 133
       Task Labels      Dependency                              Duration

       A.A              Research Analysis for Possible -        30
                        Solutions Part 1(Literature Review)
       A.B              Research Analysis for Possible -        7
                        Solutions Part 2 (Questionnaire)
       A.C              Problem Statement- A.A,A.B              3
       A.D              Evaluation of Possible Solution-A.C     26
       A.E              Selection of Solution A.D,A.J,D.C       3
       A.F              Aims and objectives- A.E                3
       A.G              Statement of scope -A.E,A.F,A.H         3
       A.H              Feasibility Analysis A.F                7
       A.I              Process Model selection A.H             7
       A.J              Expected software response A.D          2
       A.K              Major constraints-A.C                   5
       A.L              Usage Constraints A.E                   5
       A.M              Cost/Benefit Analysis -A.H              5
       A.N              Resource Allocation/Work                7
                        Distribution-A.H
       A.O              Test Plan A.N                           10
       D.A              System Overview -A.G                    7
       D.B              Design Overview A.H                     7
       D.C              System Architecture A.C                 10
       D.D              Identification of critical components   5
                        D.C
       D.E              Detailed System Design D.C              35
       D.F              Interface Design A.H                    20
       D.G              Restrictions and Limitations D.E        5
       I.A              Hardware & Software setup A.H           3
       I.B              Database Connectivity D.C               5
       I.C              Backend Coding D.E                      30
       I.D              Frontend Coding D.F,D.E                 10
       I.E              Graphics and animation D.F,D.E          5
       T.A              Test Procedures-A.O                     25
       T.B              Test Record keeping and Log- I.C,T.A    11


Table 6 – Economical Analysis
 Requirement                 Estimated Cost (Rs)          Type of Cost
 Purchasing hardware         50000                        One Time
 Maintaining hardware        No minimum                   Continuous
 Installation costs          10-150                       One Time
 Networking cost             No minimum                   Continuous
 Operating costs             No minimum                   Continuous


                                                                           90 of 133
Table 7 – Team Members‘ Profile
Name              Qualification    Expertise                      Duration
Farheena Jawed    BSE-8           Proficient in analysis and      1 year
                                  design of software
                                  Skillful in UML, OO concepts
                                  and SQL
                                  Intermediate in developing
                                  desktop and web based
                                  applications (C#)
                                  Intermediate in using .Net ,
                                  MS Access, ASP.NET,
                                  Proficient in interface
                                  designing.
Kiran Razzak       BSE-8          Coding & interface designing    1 year
                                  Proficient in database
                                  development
                                  Proficient in website
                                  designing
                                  Skillful in developing
                                  applications using C# and
                                  SQL
                                  Intermediate in using .Net,
                                  MS Access, ASP.NET, Oracle
Mehwish            BSE-8          Proficient in database          1 year
M.Saleem                          development
                                  Skillful in interface designing
                                  Proficient in website
                                  designing
                                  Skillful in developing
                                  applications using C# and
                                  SQL
                                  Intermediate in using .Net,
                                  MS Access, ASP.NET, Oracle




                                                                      91 of 133
       12.2 Algorithms and Code

Algorithm1-Topological sort algorithm

Begin
workSet = PartialOdering
totalSort = ; nodes =extract all nodes from workSet
while(nodes 6= ;)
begin
toPick = {n : nodes|n has no incoming edges} if(toP ick 6= ;)then
selected = pickOne(toP ick)
remove selected from nodes
remove all edges starting in
selected from workSet
append selected to totalSort
else
error, cycle detected
end
end.


Algorithm2-Pronoun/Noun resolving algorithm
Begin
CandidateDP = ; candidateN = ; ordering = ;
For each s : sentences
Begin
Id = idOf(s)
For each n : extract noun from
Begin
CandidateN = candidateN [ (n, id)
End
for each dp : extract dp from
Begin
CandidateDP = candidateDP [ (dp, id)
End
End
For each (id1, dp) : candidateDP
Begin
For each (id2, n) : candidateN
Begin
If match(dp, n) and id1 6= id2
Then
Ordering = ordering [ (id2, id1)
fi
End
End
End




                                                                92 of 133
Algorithm 3- Code for Indexer Class
class Indexer
{
private static string lemmaIndexesPath =
@"Database\wn_lemmaIndexes.lst";
private static Dictionary<string, List<long>> _lemmas = null;
long index = 0;
long index2 = 0;
public static Dictionary<string, List<long>> Lemmas
{
  get { return _lemmas; }
}
public string LoadLemmas(string search4)
{
string newsearch="";
int b = 0;
if (search4[0] == 'M')
{
for (int a = 1; a < search4.Length; a++)
{
newsearch += Convert.ToString(search4[a]);
b++;}}
else
newsearch = search4;
_lemmas = new Dictionary<string, List<long>>();
using (StreamReader sr = new StreamReader(lemmaIndexesPath))
{
string line;
while ((line = sr.ReadLine()) != null)
{if (line.StartsWith(newsearch) == true
{
string[] place=line.Split(' ');
index = Convert.ToInt32(place[1])
if((place.Length>2)==true)
index2=Convert.ToInt32(place[2]);
else
index2 = Convert.ToInt32(place[1]);
break;}}
sr.Close();
string test = ""
if (search4[0] == 'M')
{
Definition df = new Definition(test, index);
string Meaning = df.Meaning(test, index);
return Meaning;
}
else
{
Definition df2 = new Definition(test, index2);
string definition =df2.Meaning(test, index);
definition +="\n"+df2.Meaning(test, index2);
return definition;}




                                                                93 of 133
Algorithm 4- Code for Definition Class
class Definition
{private string dataPath = @"Database\wn_database.lst";
        private string _info =String.Empty;
        private string _name = String.Empty;
        private string _pos = String.Empty;
        private string _gloss = String.Empty;

         private List<string> _examples = new List<string>();
         private List<string> _syns = new List<string>();

         public string Meaning(string lemma, long offset)
         {
         _info = getDefinition(offset);
         string[] parts = _info.Split('|');
         string[] synset = parts[0].Split(',');
         foreach (string syn in synset)
         {
         string syn2 = removeNotation(syn);
         if (syn2.ToLower().Equals(lemma))
         _name = syn2;
         else
         _syns.Add(syn2);}
           _pos = extend(parts[1]);
           _gloss = parts[2];
         if (parts[3].Length == 0)
         { }
         string[] examples = parts[3].Split(';');
         foreach (string ex in examples)
         {
         _examples.Add(ex);
         }
         return _info;
         }
         private string getDefinition(long offset)
         {
         string retDef = String.Empty;
         using (FileStream fs = new FileStream(dataPath, FileMode.Open))
         {
         fs.Seek(offset, SeekOrigin.Begin);
         retDef = getLine(fs);
         fs.Close();
         }
         return retDef;}




                                                                 94 of 133
Algorithm 5- Code for Dynamic Content generation -i
public string[] Topic(string topicName)
{
  Indexer id = new Indexer();
  string[] toSearch_part1 = (id.LoadLemmas(topicName.ToLower())).Split('
');
  string[] toSearch = new string[toSearch_part1.Length];
  int toSearch_Counter = 0;
  for (int toSearchpart1_Counter = 0; toSearchpart1_Counter <
toSearch_part1.Length; toSearchpart1_Counter++)
  {
  if (toSearch_part1[toSearchpart1_Counter].Length > 4
{
      toSearch[toSearch_Counter] =
toSearch_part1[toSearchpart1_Counter];
      toSearch_Counter++;}}return toSearch;}


Algorithm 6- Code for Dynamic Content generation-ii


public int JustNouns(string value, string filenamet)
 {
 filename = filenamet;
 int inputNotFound= Extract_All_Nouns(value);
 return inputNotFound;
 }


Algorithm 7- Code for extracting nouns-i
public int Extract_All_Nouns(string input)
{
NounIndexer NI = new NounIndexer();
FileStream fs = new FileStream(filename, FileMode.Open);
StreamReader str = new StreamReader(fs);
string readDoc = "";
int line_NumCounter = 0;
while ((readDoc = str.ReadLine()) != "END")
  {
  string[] check = readDoc.Split('.');
  for (int r = 0; r < check.Length; r++)
  {
  if ((check[r].Contains("h1 " + input)) || check[r].Contains("h1" +
input))
  {
  inputNotFound++;
  while ((readDoc = str.ReadLine()) != "EOF")
  {
  string[] parts = readDoc.Split('.');
  for (int i = 0; i < (parts.Length - 1); i++)
  {
  line_NumCounter++;
  string[] wordsplit = parts[i].Split(' ');
  for (int j = 0; j < wordsplit.Length - 1; j++)
  {



                                                                 95 of 133
  if ((wordsplit[j].Length <= 3) == false)
  {
    AnsNoun = NI.LoadLemmas(wordsplit[j]);
if (AnsNoun == true)
{
fr.write_2_NewFile(wordsplit[j] + "," + (line_NumCounter + i) + "," +
j, allNounsFile);
allNounsCounter++;}}}}}}}}
str.Close();
return inputNotFound;}


Algorithm 8- Code for extracting nouns-ii
static string str_DupRemoved = "";
ArrayList duplicateRemoved= new ArrayList();
public ArrayList Count_Sim_Meaning_Dup(ArrayList allNouns)
{
string ckh = "";
for (int allNouns_Counter = 0; allNouns_Counter < allNouns.Count;
allNouns_Counter += 3)
{
ckh = allNouns[allNouns_Counter].ToString();
Count_Occurances(allNouns, ckh);
}
string simlarNouns_pos = Similar_Nouns(allNouns);
duplicateRemoved = Duplicate_Removal(simlarNouns_pos)
for (int dup_Counter = 0; dup_Counter < duplicateRemoved.Count;
dup_Counter++)
str_DupRemoved+=duplicateRemoved[dup_Counter]+" "; return
duplicateRemoved;
}




Algorithm 9- Code for extracting text
public string ExtractExplanation(string Filename, ArrayList alword,
string input)
{
StreamReader ReadFile = new StreamReader(Filename);
string readcomplete = "";
string Definition_Extracted = "
string readdefi = "";
while ((readcomplete = ReadFile.ReadLine()) != "END")
{
string[] check = readcomplete.Split('.');
for (int r = 0; r < check.Length; r++)
{
if ((check[r].Contains(input)))
{
while ((readdefi = ReadFile.ReadLine()) != "EOF")

{
string[] parts = readdefi.Split('.');
int parts_Counter = 0;
for (parts_Counter = 0; parts_Counter < parts.Length; parts_Counter++)



                                                                96 of 133
{
for (int alword_Counter = 0; alword_Counter < alword.Count;
alword_Counter++)
{
if ((string)alword[alword_Counter] != null)
{
if ((parts[parts_Counter].Contains((string)alword[alword_Counter]) &&
((alword[alword_Counter]) != null)))
{
Definition_Extracted += (parts[parts_Counter] + ".");
break;}}
  else
{
break;}}}}}} ReadFile.Close();
            return Definition_Extracted;}


Algorithm 10- Code for Reordering Sentences
      Explanationextract ex = new Explanationextract();
      ArrayList sentences_ReOrdered = new ArrayList();
      string[] sentences_Unordered = content.Split('.');
      ArrayList wordsOrder = MajorityOrderofWords();
      string text = "";
      for (int wordOrder_Counter = 0; wordOrder_Counter <
wordsOrder.Count; wordOrder_Counter++)
      {
      for (int sentence_Unordered_counter = 0;
sentence_Unordered_counter < sentences_Unordered.Length;
sentence_Unordered_counter++)
      {
if((sentences_Unordered[sentence_Unordered_counter].Contains((string)wo
rdsOrder[wordOrder_Counter])))
      {
sentences_ReOrdered.Add(sentences_Unordered[sentence_Unordered_counter]
);}}            ArrayList noDups = new ArrayList();
foreach (string strItem in sentences_ReOrdered)
      {
if (!noDups.Contains(strItem.Trim()))
      {
      noDups.Add(strItem.Trim());
      }}
for (int k = 0; k < noDups.Count; k++)
      {
      text += (noDups[k] + ".");}
return text;




                                                                97 of 133
        12.3 Test Results
Test Result-1

Following is the first test-case:
     Test-case1-Meaning finding:

   1. public string Meaning(string lemma, long offset)
   2.         {
   3.             _info = getDefinition(offset);
   4.
   5.             string[] parts = _info.Split('|');
   6.
   7.             string[] synset = parts[0].Split(',');
   8.             foreach (string syn in synset)
   9.             {
   10.                      string syn2 = removeNotation(syn);
   11.                      if (syn2.ToLower().Equals(lemma))
   12.                           _name = syn2;
   13.                      else
   14.                           _syns.Add(syn2);
   15.
   16.                  }


      Testcase1-Test Result:
       Following is the test results of the above code part.

       Input: ―Start‖
       Offset =10489376
       _info= start|n|the beginning of anything|"it was off to a good start"

Following snapshot shows the processing of the above code:




                                                                               98 of 133
         Meaning Extracted:
         Start |n| the beginning of anything|\”it was off to a good start\”

Following is the Second test-case:
     Test-case2-Definition finding:


   public Definition(string lemma, long offset)
    {
        _info = getDefinition(offset);

        string[] parts = _info.Split('|');

        string[] synset = parts[0].Split(',');
        foreach (string syn in synset)
        {
           string syn2 = removeNotation(syn);
           if (syn2.ToLower().Equals(lemma))
              _name = syn2;
           else
              _syns.Add(syn2);
                  //Console.WriteLine(_info);
                  Console.ReadLine(); }

                  _pos = extend(parts[1]);
                  _gloss = parts[2];

                  if (parts[3].Length == 0) return;

                  string[] examples = parts[3].Split(';');
                  foreach (string ex in examples)
                  {
                      _examples.Add(ex);
                  }
            }


        Testcase2-Test Result
         Following is the test results of the above code part.

         Input: ―Complete‖
         Offset = 3169385

         Following snapshot shows the iterative processing of the above code.




                                                                                99 of 133
Following is the Third test-case:
     Test-case3-Dynamic book generation:
     Explanation extraction class:
   1.    public int JustNouns(string value, string filenamet)
   2.    {
   3.    filename = filenamet;
   4.    int inputNotFound= Extract_All_Nouns(value);
   5.    return inputNotFound;
   6.    }
Test case 3 result:
Above code returns the message that ―the topic is not found‖.
Following is the forth test-case:
     Test-case4-Dynamic book generation:
     Explanation extraction class:

   1. public ArrayList ReadNounsFile()
   2. {
   3. string allNouns_File = @"Database\Nouns\AllNouns.txt";
   4. FileStream fs = new FileStream(allNouns_File, FileMode.Open);
   5. StreamReader str = new StreamReader(fs);
   6. string strLine;
   7. string getAll = "";
   8. int getAll_Counter = 0;
   9. string[] arr_allNouns;
   10.      // string ckh = "";

   11.        while ((strLine = str.ReadLine()) != null)
   12.        {



                                                                100 of 133
   13.         getAll += strLine + " ";
   14.         }

   15.         do
   16.         {
   17.         getAll_Counter++;
   18.         arr_allNouns = getAll.Split(',', ' ');
   19.         } while ((getAll_Counter * 3) == getAll.Length);

   20.         ArrayList allNouns = new ArrayList(arr_allNouns);
   21.         return allNouns;
   22.         }

Test case4 result:
This method returns the all nouns list with the line number and position of the word in a
line. This list of nouns is saved in a text file which is shown on the next page.




                                                                                101 of 133
         Test-case5-Dynamic book generation:
         Explanation extraction class:


 1.       public ArrayList Count_Sim_Meaning_Dup(ArrayList allNouns)
 2.       {
 3.       string ckh = "";
 4.       for (int allNouns_Counter = 0; allNouns_Counter < allNouns.Count;
          allNouns_Counter += 3)
 5.       {
 6.       ckh = allNouns[allNouns_Counter].ToString();
 7.       //Method to count the occurances of all nouns reading all files
 8.       Count_Occurances(allNouns, ckh);
 9.       }
10.       // Ckh for similar nouns by comparing allNouns
11.       string simlarNouns_pos = Similar_Nouns(allNouns);

12.       duplicateRemoved = Duplicate_Removal(simlarNouns_pos);

13.       for (int dup_Counter = 0; dup_Counter < duplicateRemoved.Count;
          dup_Counter++)
14.       str_DupRemoved+=duplicateRemoved[dup_Counter]+" ";
15.       return duplicateRemoved;
16.       }

Test case 5 result: list of nouns after duplicate removal




                                                                   102 of 133
         Test-case6-Dynamic book generation:
         Explanation extraction class:

 1.       public ArrayList reorderdList()
 2.
 3.               {   ArrayList wordsList= new
          ArrayList(str_DupRemoved.Split(' '));
 4.                   wordsList.RemoveRange(wordsList.Count - 2,
          2);//earlier it was 2
 5.                   return wordsList;
 6.               }
Test Result:




         Test-case7-Dynamic book generation:
         Explanation extraction class:

 1.       public string Reference(string filePath)
 2.               {
 3.                   string readFile_forREF="";
 4.                   string Reference="";
 5.                   StreamReader ReadFile = new StreamReader(filePath);
 6.                   while ((readFile_forREF = ReadFile.ReadLine()) !=
          "ENDREF")



                                                                   103 of 133
 7.                     {
 8.                          //if (readFile_forREF.StartsWith("Reference"))
 9.                          //{
10.                              Reference += readFile_forREF;
11.                          //}
12.
13.                     }
14.                     return Reference;
15.
16.                }
17.

Test Result:




Test Result 2- System Testing
         In following snapshot, it‘s shown that the reader enters the word in a textbox and
          finds the meaning. The meaning is extracted from the Word Net dictionary.




                                                                                 104 of 133
   In following snapshot, it‘s shown that the reader enters the word in a textbox and
    finds the definition. The definition is detailed denotation of the word and is
    extracted using Word Net.




                                                                           105 of 133
   If reader does not enter the word and clicks on the search button, then a error
    message box appears to show that the word is not entered.




   In the following snapshot, reader clicks on the ‗Dynamic Content Generation‘ tab
    and reader is required to select the subject.




                                                                              106 of 133
               Following snapshot shows how the reader selects the dynamic content
               type.




   When the reader selects the option ‗generate chapter‘ then following screen
    appears and reader is required to enter the number of files to generate.




                                                                           107 of 133
   The following snapshot shows how the reader is required to select the files for generating
    the chapter. Note: the reader cannot select the files more than the number of files he has
    entered before.









   The following snapshot shows how the reader enters the topic name in the text.




                                                                                  108 of 133
   The following snapshot shows how the dynamic chapter is displayed in the browser
    window.




   The following snapshot shows that how the reader selects ‘Generate Mini Book’.




                                                                               109 of 133
   The following snapshot shows that the list of available books is displayed when reader
    selects the ‘Generate Mini Book’ option.




   The following snapshot shows that how the reader enters the topic name in the text
    field.




                                                                                 110 of 133
   Following snapshot shows how the intelligent book system prompts the reader when
    the book is generated.




   Following snapshot shows how the intelligent book system, displays the dynamic book
    in the browser window.




                                                                              111 of 133
   Following snapshot shows how the reader selects the option to add a new book.




   Following snapshot shows how the reader selects a subject type to add a new
    book




                                                                              112 of 133
   The following snapshot shows how the reader selects the source file location.




   The following snapshot shows how the reader provides the name of the new added
    book and clicks on OK button then the systems confirms the reader with message box
    that the book is added to the system.




                                                                                    113 of 133
   The following snapshot shows how the reader selects the option to add a new subject.




   The following snapshot shows how the reader enters the name of the subject and how
    the new subject is added to the system.




                                                                               114 of 133
   The following snapshot shows how the reader selects the option for deleting a new
    book.




   The following snapshot shows that first the reader selects the name of the subject and
    then selects the documents to be deleted.




                                                                                 115 of 133
   The following snapshot shows how the reader selects the option to delete a subject.




   The following snapshot shows that how the reader selects the subject type and delete
    the subject.




                                                                                116 of 133
Testing Result 3- Comparing Ordered and Unordered Sentences-
Topic Name: Memory
Required: to generate Dynamic Book/Chapter
Definition Part:
All Nouns: (Format- Word, Line#, Word-Position)
main,1,3                                     data,8,9
memory,1,4                                   being,8,10
computer,1,12                                access,8,15
data,1,15                                    memory,8,16
using,1,21                                   memory,10,5
name,3,4                                     read,10,13
ability,3,7                                  volatile,12,4
system,3,11                                  storage,12,5
access,3,13                                  contents,12,10
data,3,15                                    memory,3,19
data,11,7                                    location,3,22
there,13,8                                   memory,5,2
kind,8,1                                     power,11,3
holding,8,6                                  memory,8,3
                                             contd..

Similar Nouns:

cache      memory        main                           cache
cache      memory        main                           cache
cache      memory        main                           cache
cache      memory        main                           memory
cache      memory        system                         memory
cache      memory        system                         memory
high       memory        system                         time
speed      come          have                           time
speed      small         have                           time
speed      small         have                           cache
speed      small         have                           cache
speed      small         main                           cache
speed      amount        main                           cache
speed      amount        mai                            cache
memory     amount        main                           cache
memory     amount        processor                      cache
memory     cache         cache                          cache


   Final explanation- unordered
   .Introduction: This is the main memory in your computer; this is where the computer
   stores the data it needs when you are using a program. RAM gets its name from the
   ability to allow the system to access any data stored in the memory in any location at



                                                                              117 of 133
any time. This memory is often referred to as Volatile (power dependent). i.e. when
the power is isolated the data is lost. RAM comes in many different packages and
there are many different types of RAM all designed to be compatible with a certain
system..The kind of memory used for holding programs and data being executed is
called random access memory or RAM. RAM differs from read-only memory (ROM)
in that it can be both read and written. It is considered volatile storage because unlike
ROM, the contents of RAM are lost when the power is turned off. RAM is also
sometimes called read-write memory or RWM. This is actually a much more precise
name, so of course it is hardly ever used. :^) It's a better name because calling RAM
"random access" implies to some people that ROM isn't random access, which is not
true. RAM is called "random access" because earlier read-write memories were
sequential and did not allow random access. Sometimes old acronyms persist even
when they don't make much sense any more (e.g., the "AT" in the old IBM AT stands
for "advanced technology" :^) )...Obviously, RAM needs to be writeable in order for
it to do its job of holding programs and data that you are working on. The volatility of
RAM also means that you risk losing what you are working on unless you save it
frequently...RAM is much faster than ROM is, due to the nature of how it stores
information. ..main memory or system memory, is a term commonly used to describe
the memory within a computer. Unlike ROM, RAM requires power; if power is lost,
all data is also lost. ..The main memory of the computer is also known as RAM,
standing for Random Access Memory. It is constructed from integrated circuits and
needs to have electrical power in order to maintain its information. When power is
lost, the information is lost too! It can be directly accessed by the CPU. The access
time to read or write any particular byte are independent of whereabouts in the
memory that byte is, and currently is approximately 50 nanoseconds (a thousand
millionth of a second). This is broadly comparable with the speed at which the CPU
will need to access data. Main memory is expensive compared to external memory so
it has limited capacity. The capacity available for a given price is increasing all the
time. For example many home Personal Computers now have a capacity of 16
megabytes (million bytes), while 64 megabytes is commonplace on commercial
workstations. The CPU will normally transfer data to and from the main memory in
groups of two, four or eight bytes, even if the operation it is undertaking only requires
a single byte..Kernel-mode drivers allocate memory for various purposes, such as
storing internal data or using as I/O buffers. To help driver writers use memory
correctly, this paper explains the following: .Fundamental information about physical
and virtual memory and address spaces..Types of memory that are available to drivers
and when to use each type..Techniques for allocating memory to satisfy a driver�s
diverse requirements..Techniques for accessing memory allocated by other
components for I/O operations..Techniques for sharing memory with other kernel-
mode and user-mode components..Techniques for testing and troubleshooting
memory allocation and usage problems...We are already familiar with the concept of
a one bit memory. A single D type flip flop is a one bit memory, with which we can
associate a unique address by using a decoder. Thus a 256 bit RAM could be built out
of an array of circuits of which one element is shown in Diagram 16.1. If a decoder
detects the unique binary address of its one bit memory cell on the address lines it
will enables the cell. Two gates that determine whether the Q value is placed on the


                                                                              118 of 133
output data line or the value on the input data line is placed on D, and clocked into the
flip flop. Notice the asymmetry in the circuit. For reading it is merely a combinational
circuit, but for writing the address and data must be present and correct when the
clock pulse sets the flip flop. RAM circuits conforming to this pattern are called static
RAMs, and are used in special applications. ..Buses.Within the circuit of 16.1 we
have introduced some data highways which are common to all the individual cells.
The same address lines go to each decoder, and are referred to as the address bus.
Similarly, the read, data in and data out lines go to every cell. The data in and data out
lines are never both used at the same time, and indeed could not be for safe operation
of the memory. Thus, it would be convenient to use just one line as this would reduce
the size and complexity of the memory circuit. To make the data line bi-directional
we need to feed it from more than one place and for this purpose we need a new type
of gate which is referred to as a tri-state buffer and illustrated in Diagram 16.2. If the
control line, Ci, is set to zero the output follows the input exactly, however, if Ci is
set to 1 the output is neither zero nor one, but is effectively disconnected from the
data line. It is the logic designers problem to ensure that no two circuits feed the data
line at the same time...Practical RAM circuits.For convenience of manufacture, bulk
RAMs are organised as square arrays of individual bits as shown in Diagram 16.3.
There are two decoders, a row and a column decoder, and each one bit memory cell is
only enabled when both its row and the column lines are one. In the case of a 256 bit
RAM each decoder transforms a four bit binary number into a sixteen bit unary
number. Thus, in the square array of one bit memory cells, there will only ever be one
cell for which both the row and the column lines are one. Each cell is connected to the
same read/write line and data line. The data line is connected to the outside through a
two way tri state buffer, such that unless the chip is enabled no data .can pass either in
or out. This is important since it enables us to build external decoders for larger
capacity RAMs made up of several banks of single chips...Types of Memory..Virtual
and Physical Memory..The amount of virtual and physical memory that is supported
on any computer that runs the Microsoft� Windows� operating system is
determined by the hardware configuration and the edition of Windows in use. On 32-
bit hardware, the virtual address space is 4 GB and the maximum amount of physical
memory ranges from 4 to128 GB. On 64-bit hardware, the virtual address space is 16
terabytes and the maximum amount of memory ranges from 64 GB to 1 terabyte.
..Dynamic RAMs .            .Much research has gone into reducing the size of the single
bit cells, since this in turn determines the number of bits that can be fitted onto a
single silicon chip. The current design utilises only one transistor and one capacitor. It
has the disadvantage that the store is not permanent. Since the storage capacitor is so
small, if left alone, all the cells storing ones would drift to zero in a fraction of a
second. Thus, some extra circuitry is provided which operates when the the computer
is not accessing the memory. This is refereed to as the refresh logic, and functionally
it senses the cells that are set to 1 and boosts the charge on their capacitors. For this
reason circuits of this kind are called dynamic RAM. It is important to note is that
dynamic RAM cannot be considered a combinational circuit like static RAM. It must
give priority to completing its refresh cycle over servicing a read or write request
from the processor, otherwise data will be lost. To ensure that the data is sent and
received correctly, a special signal is generated by the RAM to indicate that data has


                                                                               119 of 133
been received or that data is available. These complications will not be considered
further, and for our future design we will just use simple static RAM...Direct Memory
Access is a capability provided by some computer bus architectures that allows data
to be sent directly from an attached device (such as a disk drive) to the memory on
the computer's motherboard. The microprocessor is freed from involvement with the
data transfer, thus speeding up overall computer operation. ..Usually a specified
portion of memory is designated as an area to be used for direct memory access. In
the Industry Standard Architecture bus standard, up to 16 megabytes of memory can
be addressed for DMA. The Extended Industry Standard Architecture and Micro
Channel Architecture standards allow access to the full range of memory addresses
(assuming they're addressable with 32 bits). Peripheral Component Interconnect
accomplishes DMA by using bus master (with the microprocessor "delegating" I/O
control to the PCI controller). .. An alternative to DMA is the Programmed
Input/Output (Programmed Input/Output) interface in which all data transmitted
between devices goes through the processor. A newer protocol for the ATA/IDE
interface is Ultra DMA/33, which provides a burst. data transfer rate up to 33 MB
(megabyte) per second. Hard drives that come with Ultra DMA/33 also support PIO
modes 1, 3, and 4, and multiword DMA mode 2 (at 16.6 megabytes per second).
.DMAs are used most commonly today by floppy disk drives, tape drives and sound
cards. .Some expansion boards, such as CD-ROM cards, are capable of accessing the
computer's DMA channel. When you install the board, you must specify which DMA
channel is to be used, which sometimes involves setting a jumper or DIP switch.
..PCI: Acronym for Peripheral Component Interconnect, a local bus standard
developed by Intel Corporation. Most modern PCs include a PCI bus in addition to a
more general ISA expansion bus. Many analysts, however, believe that PCI will
eventually supplant ISA entirely. PCI is also used on newer versions of the Macintosh
computer. .PCI is a 64-bit bus, though it is usually implemented as a 32-bit bus. It can
run at clock speeds of 33 or 66 MHz. At 32 bits and 33 MHz, it yields a throughput
rate of 133 MBps. .Although it was developed by Intel, PCI is not tied to any
particular family of microprocessors...DMA Controllers.Standard DMA transfers are
managed by the DMA controller, built into the system chipset on modern PCs..The
disk is connected to a peripheral controller which communicates to the DMAC via the
transfer Request and Transmit Acknowledge handshake lines. The DMA in turn
interfaces to the CPU via the Bus Request, Bus Acknowledge and Transfer Complete
lines. ..The sequence of events involved in transferring data from disk to memory
using DMA: .The CPU first sets up the disk controller for a read, initialises and starts
the DMAC. ..The disk controller then requests a transfer from the DMAC. The
DMAC does not respond immediately, but waits until the peripheral device actually
has some data ready to transfer. Once it has, the DMAC requests the system bus from
.the processor. Unlike the situation with interrupts, the CPU can respond
immediately, .since its internal state is not changed during DMA cycles; there is no
need to push or pull information from stack .Once the DMA takes control of the bus,
it places the memory start address of the desired block in the address register,
acknowledges the peripheral controllers request, then requests the data from the
peripheral. The data is latched into memory, after which the DMAC acknowledges
the transfer to the disk..The DMAC then relinquishes the bus, increments the start



                                                                             120 of 133
address register and compares the start and finish addresses. If they are equal the
DMA transfer is terminated and the DMAC interrupts the CPU (DMA end). If they
are not equal, the DMAC waits for the next transfer request from the disk
controller....Introduction..RAM is an acronym for Random Access Memory that is
also known as volatile memory, because the data it holds is lost when the desktop PC
or laptop/notebook computer using it is switched off. Briefly, RAM memory is used
by the system to store data in the form of files for processing by a computer's central
processing unit (CPU), also known as the processor. ..That said, computers can make
use of technology called DMA (Direct Memory Access) to bypass the processor:
"Direct memory access (DMA) is a feature of modern computers and microprocessors
that allows certain hardware subsystems within the computer to access system
memory for reading and/or writing independently of the central processing unit.
Many hardware systems use DMA including disk drive controllers, graphics cards,
network cards and sound cards." ..The system memory is the place where the
computer holds current programs and data that are in use. There are various levels of
computer memory (memory), including ROM, RAM, cache, page and graphics, each
with specific objectives for system operation. This section focusses on the role of
computer memory, and the technology behind it...Although memory is used in many
different forms around modern PC systems, it can be divided into two essential types:
RAM and ROM. ROM, or Read Only Memory, is relatively small, but essential to
how a computer works. ROM is always found on motherboards, but is increasingly
found on graphics cards and some other expansion cards and peripherals. Generally
speaking, ROM does not change. It forms the basic instruction set for operating the
hardware in the system, and the data within remains intact even when the computer is
shut down. It is possible to update ROM, but it's only done rarely, and at need. If
ROM is damaged, the computer system simply cannot function...Types of
memory..There are several different technologies when it comes to memory. Here is
an overview of these technologies and what they mean to your computer...ROM.This
is read-only memory, memory that can only be read, but cannot be written to. ROM is
used in situations where the data must be held permanently. This is due to the fact
that it is non-volatile memory. This means the data is �hard-wired� into the ROM
chip. You can store the chip forever and the data will always be there. Besides, the
data is very secure. The BIOS is stored on ROM because the user cannot disrupt the
information...There are different types of ROM, too:.Programmable ROM(PROM).
This is basically a blank ROM chip that can be written to, but only once. It is much
like a CD-R drive that burns the data into the CD. Some companies use special
machinery to write PROMs for special purposes..Erasable Programmable ROM
(EPROM). This is just like PROM, except that you can erase the ROM by shining a
special ultra-violet light into a sensor atop the ROM chip for a certain amount of time.
Doing this wipes the data out, allowing it to be rewritten..Electrically Erasable
Programmable ROM (EEPROM). Also called flash BIOS. This ROM can be
rewritten through the use of a special software program. Flash BIOS operates this
way, allowing users to upgrade their BIOS...ROM is slower than RAM, which is why
some try to shadow it to increase speed...RAM.Random Access Memory (RAM) is
what most of us think of when we hear the word memory associated with computers.
It is volatile memory, meaning all data is lost when power is turned off. The RAM is


                                                                             121 of 133
used for temporary storage of program data, allowing performance to be
optimum...Like ROM, there are different types of RAM:..Static RAM (SRAM).This
RAM will maintain it�s data as long as power is provided to the memory chips. It
does not need to be re-written periodically. In fact, the only time the data on the
memory is refreshed or changed is when an actual write command is executed.
SRAM is very fast, but is much more expensive than DRAM. SRAM is often used as
cache memory due to its speed...There are a few types of SRAM:..Async SRAM.An
older type of SRAM used in many PC�s for L2 cache. It is asynchronous, meaning
that it works independently of the system clock. This means that the CPU found itself
waiting for info from the L2 cache..Sync SRAM. This type of SRAM is synchronous,
meaning it is synchronized with the system clock. While this speeds it up, it makes it
rather expensive at the same time..Pipeline Burst SRAM. Commonly used. SRAM
requests are pipelined, meaning larger packets of data re sent to the memory at once,
and acted on very quickly. This breed of SRAM can operate at bus speeds higher than
66MHz, so is often used...Dynamic RAM (DRAM).DRAM, unlike SRAM, must be
continually re-written in order for it to maintain its data. This is done by placing the
memory on a refresh circuit that re-writes the data several hundred time per second.
DRAM is used for most system memory because it is cheap and small...2 more types
of memory: ..(1) Short term memory (STM) gives you the ability to remember
information for short periods of time, usually less than 24 hours...(2) Long term
memory (LTM) allows you to remember information forever....RAM, or Random
Access Memory, is "volatile." This means that it only holds data while power is
present. RAM changes constantly as the system operates, providing the storage for all
data required by the operating system and software. Because of the demands made by
increasingly powerful operating systems and software, system RAM requirements
have accelerated dramatically over time. For instance, at the turn of the millennium a
typical computer may have only 128Mb of RAM in total, but in 2007 computers
commonly ship with 2Gb of RAM installed, and may include graphics cards with
their own additional 512Mb of RAM and more...Clearly, modern computers have
significantly more memory than the first PCs of the early 1980s, and this has had an
effect on development of the PC's architecture. The trouble is, storing and retrieving
data from a large block of memory is more time-consuming than from a small block.
With a large amount of memory, the difference in time between a register access and
a memory access is very great, and this has resulted in extra layers of cache in the
storage hierarchy...When accessing memory, a fast processor will demand a great
deal from RAM. At worst, the CPU may have to waste clock cycles while it waits for
data to be retrieved. Faster memory designs and motherboard buses can help, but
since the 1990s "cache memory" has been employed as standard between the main
memory and the processor. Not only this, CPU architecture has also evolved to
include ever larger internal caches. The organisation of data this way is immensely
complex, and the system uses ingenious electronic controls to ensure that the data the
processor needs next is already in cache, physically closer to the processor and ready
for fast retrieval and manipulation...Data processing systems such as personal
computers, digital video players, and wireless communications devices often include
multiple data processing clients which share access to random access memory



                                                                             122 of 133
(RAM). A typical RAM includes memory array and peripheral circuits. The memory
array is typically arranged in rows and columns of memory cells. Each row of the
memory cells can be accessed by activating a word line. Each column of the memory
cells can be accessed by addressing a bit line. The bit lines are typically provided in
pairs of complementary bit lines. Random access memories (RAMs) typically include
a plurality of memory cells arranged in an array of rows and columns. Data are
accessed from the memory cells by selecting a given cell or cells by activating bit
lines and word lines according to a row and column address. A typical random access
memory system for a computer includes an array with one or more columns of RAM
cells configured to store respective logic states. Data is written to and/or read from
each of the RAM cells in each column via differential complimentary bit and nbit
connections. An address word line, decoded from a computer address sent by a
central processing unit (CPU) or other processor, is communicated to the RAM cells.
Typical randomly accessible memory devices include an SRAM (static random
access memory) and a DRAM (dynamic random access memory), which are volatile
memories.

Final explanation-reordered:
<h1> Explanation </h1> This is the main memory in your computer, this is where the
computer stores the data it needs when you are using a program.RAM gets its name
from the ability to allow the system to access any data stored in the memory in any
location at any time.This memory is often referred to as Volatile (power
dependent).The kind of memory used for holding programs and data being executed
is called random access memory or RAM.RAM differs from read-only memory
(ROM) in that it can be both read and written.RAM is also sometimes called read-
write memory or RWM.main memory or system memory, is a term commonly used
to describe the memory within a computer.The main memory of the computer is also
known as RAM, standing for Random Access Memory.The access time to read or
write any particular byte are independent of whereabouts in the memory that byte is,
and currently is approximately 50 nanoseconds (a thousand millionth of a
second).Main memory is expensive compared to external memory so it has limited
capacity.The CPU will normally transfer data to and from the main memory in groups
of two, four or eight bytes, even if the operation it is undertaking only requires a
single byte.Kernel-mode drivers allocate memory for various purposes, such as
storing internal data or using as I/O buffers.To help driver writers use memory
correctly, this paper explains the following:.Fundamental information about physical
and virtual memory and address spaces.Types of memory that are available to drivers
and when to use each type.Techniques for allocating memory to satisfy a driver�s
diverse requirements.Techniques for accessing memory allocated by other
components for I/O operations.Techniques for sharing memory with other kernel-
mode and user-mode components.Techniques for testing and troubleshooting memory
allocation and usage problems.We are already familiar with the concept of a one bit
memory.A single D type flip flop is a one bit memory, with which we can associate a
unique address by using a decoder.If a decoder detects the unique binary address of
its one bit memory cell on the address lines it will enables the cell.The data in and
data out lines are never both used at the same time, and indeed could not be for safe


                                                                            123 of 133
operation of the memory.Thus, it would be convenient to use just one line as this
would reduce the size and complexity of the memory circuit.There are two decoders,
a row and a column decoder, and each one bit memory cell is only enabled when both
its row and the column lines are one.Thus, in the square array of one bit memory
cells, there will only ever be one cell for which both the row and the column lines are
one.The amount of virtual and physical memory that is supported on any computer
that runs the Microsoft� Windows� operating system is determined by the
hardware configuration and the edition of Windows in use.On 32-bit hardware, the
virtual address space is 4 GB and the maximum amount of physical memory ranges
from 4 to128 GB.On 64-bit hardware, the virtual address space is 16 terabytes and the
maximum amount of memory ranges from 64 GB to 1 terabyte.Thus, some extra
circuitry is provided which operates when the the computer is not accessing the
memory.Direct Memory Access is a capability provided by some computer bus
architectures that allows data to be sent directly from an attached device (such as a
disk drive) to the memory on the computer's motherboard.Usually a specified portion
of memory is designated as an area to be used for direct memory access.In the
Industry Standard Architecture bus standard, up to 16 megabytes of memory can be
addressed for DMA.The Extended Industry Standard Architecture and Micro Channel
Architecture standards allow access to the full range of memory addresses (assuming
they're addressable with 32 bits).The sequence of events involved in transferring data
from disk to memory using DMA:.Once the DMA takes control of the bus, it places
the memory start address of the desired block in the address register, acknowledges
the peripheral controllers request, then requests the data from the peripheral.The data
is latched into memory, after which the DMAC acknowledges the transfer to the
disk.RAM is an acronym for Random Access Memory that is also known as volatile
memory, because the data it holds is lost when the desktop PC or laptop/notebook
computer using it is switched off.Briefly, RAM memory is used by the system to
store data in the form of files for processing by a computer's central processing unit
(CPU), also known as the processor.That said, computers can make use of technology
called DMA (Direct Memory Access) to bypass the processor: "Direct memory
access (DMA) is a feature of modern computers and microprocessors that allows
certain hardware subsystems within the computer to access system memory for
reading and/or writing independently of the central processing unit.The system
memory is the place where the computer holds current programs and data that are in
use.There are various levels of computer memory (memory), including ROM, RAM,
cache, page and graphics, each with specific objectives for system operation.This
section focusses on the role of computer memory, and the technology behind
it.Although memory is used in many different forms around modern PC systems, it
can be divided into two essential types: RAM and ROM.Types of memory.There are
several different technologies when it comes to memory.This is read-only memory,
memory that can only be read, but cannot be written to.This is due to the fact that it is
non-volatile memory.Random Access Memory (RAM) is what most of us think of
when we hear the word memory associated with computers.It is volatile memory,
meaning all data is lost when power is turned off.This RAM will maintain it�s data
as long as power is provided to the memory chips.In fact, the only time the data on



                                                                              124 of 133
the memory is refreshed or changed is when an actual write command is
executed.SRAM is often used as cache memory due to its speed.SRAM requests are
pipelined, meaning larger packets of data re sent to the memory at once, and acted on
very quickly.This is done by placing the memory on a refresh circuit that re-writes the
data several hundred time per second.DRAM is used for most system memory
because it is cheap and small.2 more types of memory:.(1) Short term memory (STM)
gives you the ability to remember information for short periods of time, usually less
than 24 hours.(2) Long term memory (LTM) allows you to remember information
forever.Clearly, modern computers have significantly more memory than the first PCs
of the early 1980s, and this has had an effect on development of the PC's
architecture.The trouble is, storing and retrieving data from a large block of memory
is more time-consuming than from a small block.With a large amount of memory, the
difference in time between a register access and a memory access is very great, and
this has resulted in extra layers of cache in the storage hierarchy.When accessing
memory, a fast processor will demand a great deal from RAM.Faster memory designs
and motherboard buses can help, but since the 1990s "cache memory" has been
employed as standard between the main memory and the processor.Data processing
systems such as personal computers, digital video players, and wireless
communications devices often include multiple data processing clients which share
access to random access memory (RAM).A typical RAM includes memory array and
peripheral circuits.The memory array is typically arranged in rows and columns of
memory cells.Each row of the memory cells can be accessed by activating a word
line.Each column of the memory cells can be accessed by addressing a bit
line.Random access memories (RAMs) typically include a plurality of memory cells
arranged in an array of rows and columns.Data are accessed from the memory cells
by selecting a given cell or cells by activating bit lines and word lines according to a
row and column address.A typical random access memory system for a computer
includes an array with one or more columns of RAM cells configured to store
respective logic states.Typical randomly accessible memory devices include an
SRAM (static random access memory) and a DRAM (dynamic random access
memory), which are volatile memories.The microprocessor is freed from involvement
with the data transfer, thus speeding up overall computer operation.Some expansion
boards, such as CD-ROM cards, are capable of accessing the computer's DMA
channel.PCI is also used on newer versions of the Macintosh computer.ROM, or
Read Only Memory, is relatively small, but essential to how a computer works.It
forms the basic instruction set for operating the hardware in the system, and the data
within remains intact even when the computer is shut down.If ROM is damaged, the
computer system simply cannot function.Here is an overview of these technologies
and what they mean to your computer.For instance, at the turn of the millennium a
typical computer may have only 128Mb of RAM in total, but in 2007 computers
commonly ship with 2Gb of RAM installed, and may include graphics cards with
their own additional 512Mb of RAM and more.An address word line, decoded from a
computer address sent by a central processing unit (CPU) or other processor, is
communicated to the RAM cells.when the power is isolated the data is
lost.Obviously, RAM needs to be writeable in order for it to do its job of holding
programs and data that you are working on.Unlike ROM, RAM requires power; if



                                                                             125 of 133
power is lost, all data is also lost.This is broadly comparable with the speed at which
the CPU will need to access data.Two gates that determine whether the Q value is
placed on the output data line or the value on the input data line is placed on D, and
clocked into the flip flop.For reading it is merely a combinational circuit, but for
writing the address and data must be present and correct when the clock pulse sets the
flip flop.1 we have introduced some data highways which are common to all the
individual cells.Similarly, the read, data in and data out lines go to every cell.To make
the data line bi-directional we need to feed it from more than one place and for this
purpose we need a new type of gate which is referred to as a tri-state buffer and
illustrated in Diagram 16.If the control line, Ci, is set to zero the output follows the
input exactly, however, if Ci is set to 1 the output is neither zero nor one, but is
effectively disconnected from the data line.It is the logic designers problem to ensure
that no two circuits feed the data line at the same time.Each cell is connected to the
same read/write line and data line.The data line is connected to the outside through a
two way tri state buffer, such that unless the chip is enabled no data.It must give
priority to completing its refresh cycle over servicing a read or write request from the
processor, otherwise data will be lost.To ensure that the data is sent and received
correctly, a special signal is generated by the RAM to indicate that data has been
received or that data is available.An alternative to DMA is the Programmed
Input/Output (Programmed Input/Output) interface in which all data transmitted
between devices goes through the processor.data transfer rate up to 33 MB
(megabyte) per second.The DMAC does not respond immediately, but waits until the
peripheral device actually has some data ready to transfer.ROM is used in situations
where the data must be held permanently.This means the data is �hard-wired� into
the ROM chip.You can store the chip forever and the data will always be
there.Besides, the data is very secure.It is much like a CD-R drive that burns the data
into the CD.Doing this wipes the data out, allowing it to be rewritten.The RAM is
used for temporary storage of program data, allowing performance to be
optimum.DRAM, unlike SRAM, must be continually re-written in order for it to
maintain its data." This means that it only holds data while power is present.RAM
changes constantly as the system operates, providing the storage for all data required
by the operating system and software.At worst, the CPU may have to waste clock
cycles while it waits for data to be retrieved.The organisation of data this way is
immensely complex, and the system uses ingenious electronic controls to ensure that
the data the processor needs next is already in cache, physically closer to the
processor and ready for fast retrieval and manipulation.RAM comes in many different
packages and there are many different types of RAM all designed to be compatible
with a certain system.Standard DMA transfers are managed by the DMA controller,
built into the system chipset on modern PCs.Once it has, the DMAC requests the
system bus from.Many hardware systems use DMA including disk drive controllers,
graphics cards, network cards and sound cards.It is asynchronous, meaning that it
works independently of the system clock.This type of SRAM is synchronous,
meaning it is synchronized with the system clock.Because of the demands made by
increasingly powerful operating systems and software, system RAM requirements
have accelerated dramatically over time.:^) It's a better name because calling RAM
"random access" implies to some people that ROM isn't random access, which is not


                                                                              126 of 133
true.RAM is called "random access" because earlier read-write memories were
sequential and did not allow random access.When power is lost, the information is
lost too! It can be directly accessed by the CPU.It is considered volatile storage
because unlike ROM, the contents of RAM are lost when the power is turned off.It is
constructed from integrated circuits and needs to have electrical power in order to
maintain its information.Since the storage capacitor is so small, if left alone, all the
cells storing ones would drift to zero in a fraction of a second.This is actually a much
more precise name, so of course it is hardly ever used.Sometimes old acronyms
persist even when they don't make much sense any more (e.RAM is much faster than
ROM is, due to the nature of how it stores information.SRAM is very fast, but is
much more expensive than DRAM.Most modern PCs include a PCI bus in addition to
a more general ISA expansion bus.For example many home Personal Computers now
have a capacity of 16 megabytes (million bytes), while 64 megabytes is commonplace
on commercial workstations.These complications will not be considered further, and
for our future design we will just use simple static RAM.Many analysts, however,
believe that PCI will eventually supplant ISA entirely.Thus a 256 bit RAM could be
built out of an array of circuits of which one element is shown in Diagram 16.For
convenience of manufacture, bulk RAMs are organised as square arrays of individual
bits as shown in Diagram 16.Much research has gone into reducing the size of the
single bit cells, since this in turn determines the number of bits that can be fitted onto
a single silicon chip.This is refereed to as the refresh logic, and functionally it senses
the cells that are set to 1 and boosts the charge on their capacitors.Data is written to
and/or read from each of the RAM cells in each column via differential
complimentary bit and nbit connections.The same address lines go to each decoder,
and are referred to as the address bus.The disk is connected to a peripheral controller
which communicates to the DMAC via the transfer Request and Transmit
Acknowledge handshake lines.The DMA in turn interfaces to the CPU via the Bus
Request, Bus Acknowledge and Transfer Complete lines.Pipeline Burst SRAM.The
bit lines are typically provided in pairs of complementary bit lines.RAM circuits
conforming to this pattern are called static RAMs, and are used in special
applications.Some companies use special machinery to write PROMs for special
purposes.This is just like PROM, except that you can erase the ROM by shining a
special ultra-violet light into a sensor atop the ROM chip for a certain amount of
time.This ROM can be rewritten through the use of a special software program.The
DMAC then relinquishes the bus, increments the start address register and compares
the start and finish addresses.While this speeds it up, it makes it rather expensive at
the same time.
Final definition- unordered:
This is the main memory in your computer, this is where the computer stores the data
it needs when you are using a program. RAM gets its name from the ability to allow
the system to access any data stored in the memory in any location at any time. This
memory is often referred to as Volatile (power dependent).The kind of memory used
for holding programs and data being executed is called random access memory or
RAM. RAM differs from read-only memory (ROM) in that it can be both read and
written. RAM is also sometimes called read-write memory or RWM.main memory or
system memory, is a term commonly used to describe the memory within a



                                                                               127 of 133
computer.The main memory of the computer is also known as RAM, standing for
Random Access Memory. The access time to read or write any particular byte are
independent of whereabouts in the memory that byte is, and currently is
approximately 50 nanoseconds (a thousand millionth of a second). Main memory is
expensive compared to external memory so it has limited capacity. The CPU will
normally transfer data to and from the main memory in groups of two, four or eight
bytes, even if the operation it is undertaking only requires a single byte.Kernel-mode
drivers allocate memory for various purposes, such as storing internal data or using as
I/O buffers. To help driver writers use memory correctly, this paper explains the
following: .Fundamental information about physical and virtual memory and address
spaces. Types of memory that are available to drivers and when to use each
type.Techniques for allocating memory to satisfy a driver�s diverse
requirements.Techniques for accessing memory allocated by other components for
I/O operations.Techniques for sharing memory with other kernel-mode and user-
mode components.Techniques for testing and troubleshooting memory allocation and
usage problems.We are already familiar with the concept of a one bit memory. A
single D type flip flop is a one bit memory, with which we can associate a unique
address by using a decoder. If a decoder detects the unique binary address of its one
bit memory cell on the address lines it will enables the cell. The data in and data out
lines are never both used at the same time, and indeed could not be for safe operation
of the memory. Thus, it would be convenient to use just one line as this would reduce
the size and complexity of the memory circuit. There are two decoders, a row and a
column decoder, and each one bit memory cell is only enabled when both its row and
the column lines are one. Thus, in the square array of one bit memory cells, there will
only ever be one cell for which both the row and the column lines are one.The
amount of virtual and physical memory that is supported on any computer that runs
the Microsoft� Windows� operating system is determined by the hardware
configuration and the edition of Windows in use. On 32-bit hardware, the virtual
address space is 4 GB and the maximum amount of physical memory ranges from 4
to128 GB. On 64-bit hardware, the virtual address space is 16 terabytes and the
maximum amount of memory ranges from 64 GB to 1 terabyte. Thus, some extra
circuitry is provided which operates when the the computer is not accessing the
memory.Direct Memory Access is a capability provided by some computer bus
architectures that allows data to be sent directly from an attached device (such as a
disk drive) to the memory on the computer's motherboard.Usually a specified portion
of memory is designated as an area to be used for direct memory access. In the
Industry Standard Architecture bus standard, up to 16 megabytes of memory can be
addressed for DMA. The Extended Industry Standard Architecture and Micro
Channel Architecture standards allow access to the full range of memory addresses
(assuming they're addressable with 32 bits).The sequence of events involved in
transferring data from disk to memory using DMA: .Once the DMA takes control of
the bus, it places the memory start address of the desired block in the address register,
acknowledges the peripheral controllers request, then requests the data from the
peripheral. The data is latched into memory, after which the DMAC acknowledges
the transfer to the disk.RAM is an acronym for Random Access Memory that is also



                                                                              128 of 133
known as volatile memory, because the data it holds is lost when the desktop PC or
laptop/notebook computer using it is switched off. Briefly, RAM memory is used by
the system to store data in the form of files for processing by a computer's central
processing unit (CPU), also known as the processor.That said, computers can make
use of technology called DMA (Direct Memory Access) to bypass the processor:
"Direct memory access (DMA) is a feature of modern computers and microprocessors
that allows certain hardware subsystems within the computer to access system
memory for reading and/or writing independently of the central processing unit.The
system memory is the place where the computer holds current programs and data that
are in use. There are various levels of computer memory (memory), including ROM,
RAM, cache, page and graphics, each with specific objectives for system operation.
This section focusses on the role of computer memory, and the technology behind
it.Although memory is used in many different forms around modern PC systems, it
can be divided into two essential types: RAM and ROM.Types of memory.There are
several different technologies when it comes to memory.This is read-only memory,
memory that can only be read, but cannot be written to. This is due to the fact that it
is non-volatile memory.Random Access Memory (RAM) is what most of us think of
when we hear the word memory associated with computers. It is volatile memory,
meaning all data is lost when power is turned off.This RAM will maintain it�s data
as long as power is provided to the memory chips. In fact, the only time the data on
the memory is refreshed or changed is when an actual write command is executed.
SRAM is often used as cache memory due to its speed. SRAM requests are pipelined,
meaning larger packets of data re sent to the memory at once, and acted on very
quickly. This is done by placing the memory on a refresh circuit that re-writes the
data several hundred time per second. DRAM is used for most system memory
because it is cheap and small.2 more types of memory: .(1) Short term memory
(STM) gives you the ability to remember information for short periods of time,
usually less than 24 hours.(2) Long term memory (LTM) allows you to remember
information forever.Clearly, modern computers have significantly more memory than
the first PCs of the early 1980s, and this has had an effect on development of the PC's
architecture. The trouble is, storing and retrieving data from a large block of memory
is more time-consuming than from a small block. With a large amount of memory,
the difference in time between a register access and a memory access is very great,
and this has resulted in extra layers of cache in the storage hierarchy.When accessing
memory, a fast processor will demand a great deal from RAM. Faster memory
designs and motherboard buses can help, but since the 1990s "cache memory" has
been employed as standard between the main memory and the processor.Data
processing systems such as personal computers, digital video players, and wireless
communications devices often include multiple data processing clients which share
access to random access memory (RAM). A typical RAM includes memory array and
peripheral circuits. The memory array is typically arranged in rows and columns of
memory cells. Each row of the memory cells can be accessed by activating a word
line. Each column of the memory cells can be accessed by addressing a bit line.
Random access memories (RAMs) typically include a plurality of memory cells
arranged in an array of rows and columns. Data are accessed from the memory cells
by selecting a given cell or cells by activating bit lines and word lines according to a


                                                                             129 of 133
row and column address. A typical random access memory system for a computer
includes an array with one or more columns of RAM cells configured to store
respective logic states. Typical randomly accessible memory devices include an
SRAM (static random access memory) and a DRAM (dynamic random access
memory), which are volatile memories.
Final definition: re-ordered
<h1> Definition </h1> This is the main memory in your computer, this is where the
computer stores the data it needs when you are using a program.RAM gets its name
from the ability to allow the system to access any data stored in the memory in any
location at any time.This memory is often referred to as Volatile (power
dependent).The kind of memory used for holding programs and data being executed
is called random access memory or RAM.RAM differs from read-only memory
(ROM) in that it can be both read and written.RAM is also sometimes called read-
write memory or RWM.main memory or system memory, is a term commonly used
to describe the memory within a computer.The main memory of the computer is also
known as RAM, standing for Random Access Memory.The access time to read or
write any particular byte are independent of whereabouts in the memory that byte is,
and currently is approximately 50 nanoseconds (a thousand millionth of a
second).Main memory is expensive compared to external memory so it has limited
capacity.The CPU will normally transfer data to and from the main memory in groups
of two, four or eight bytes, even if the operation it is undertaking only requires a
single byte.Kernel-mode drivers allocate memory for various purposes, such as
storing internal data or using as I/O buffers.To help driver writers use memory
correctly, this paper explains the following:.Fundamental information about physical
and virtual memory and address spaces.Types of memory that are available to drivers
and when to use each type.Techniques for allocating memory to satisfy a driver�s
diverse requirements.Techniques for accessing memory allocated by other
components for I/O operations.Techniques for sharing memory with other kernel-
mode and user-mode components.Techniques for testing and troubleshooting memory
allocation and usage problems.We are already familiar with the concept of a one bit
memory.A single D type flip flop is a one bit memory, with which we can associate a
unique address by using a decoder.If a decoder detects the unique binary address of
its one bit memory cell on the address lines it will enables the cell.The data in and
data out lines are never both used at the same time, and indeed could not be for safe
operation of the memory.Thus, it would be convenient to use just one line as this
would reduce the size and complexity of the memory circuit.There are two decoders,
a row and a column decoder, and each one bit memory cell is only enabled when both
its row and the column lines are one.Thus, in the square array of one bit memory
cells, there will only ever be one cell for which both the row and the column lines are
one.The amount of virtual and physical memory that is supported on any computer
that runs the Microsoft� Windows� operating system is determined by the
hardware configuration and the edition of Windows in use.On 32-bit hardware, the
virtual address space is 4 GB and the maximum amount of physical memory ranges
from 4 to128 GB.On 64-bit hardware, the virtual address space is 16 terabytes and the
maximum amount of memory ranges from 64 GB to 1 terabyte.Thus, some extra



                                                                            130 of 133
circuitry is provided which operates when the the computer is not accessing the
memory.Direct Memory Access is a capability provided by some computer bus
architectures that allows data to be sent directly from an attached device (such as a
disk drive) to the memory on the computer's motherboard.Usually a specified portion
of memory is designated as an area to be used for direct memory access.In the
Industry Standard Architecture bus standard, up to 16 megabytes of memory can be
addressed for DMA.The Extended Industry Standard Architecture and Micro Channel
Architecture standards allow access to the full range of memory addresses (assuming
they're addressable with 32 bits).The sequence of events involved in transferring data
from disk to memory using DMA:.Once the DMA takes control of the bus, it places
the memory start address of the desired block in the address register, acknowledges
the peripheral controllers request, then requests the data from the peripheral.The data
is latched into memory, after which the DMAC acknowledges the transfer to the
disk.RAM is an acronym for Random Access Memory that is also known as volatile
memory, because the data it holds is lost when the desktop PC or laptop/notebook
computer using it is switched off.Briefly, RAM memory is used by the system to
store data in the form of files for processing by a computer's central processing unit
(CPU), also known as the processor.That said, computers can make use of technology
called DMA (Direct Memory Access) to bypass the processor: "Direct memory
access (DMA) is a feature of modern computers and microprocessors that allows
certain hardware subsystems within the computer to access system memory for
reading and/or writing independently of the central processing unit.The system
memory is the place where the computer holds current programs and data that are in
use.There are various levels of computer memory (memory), including ROM, RAM,
cache, page and graphics, each with specific objectives for system operation.This
section focusses on the role of computer memory, and the technology behind
it.Although memory is used in many different forms around modern PC systems, it
can be divided into two essential types: RAM and ROM.Types of memory.There are
several different technologies when it comes to memory.This is read-only memory,
memory that can only be read, but cannot be written to.This is due to the fact that it is
non-volatile memory.Random Access Memory (RAM) is what most of us think of
when we hear the word memory associated with computers.It is volatile memory,
meaning all data is lost when power is turned off.This RAM will maintain it�s data
as long as power is provided to the memory chips.In fact, the only time the data on
the memory is refreshed or changed is when an actual write command is
executed.SRAM is often used as cache memory due to its speed.SRAM requests are
pipelined, meaning larger packets of data re sent to the memory at once, and acted on
very quickly. This is done by placing the memory on a refresh circuit that re-writes
the data several hundred time per second. DRAM is used for most system memory
because it is cheap and small.2 more types of memory:.(1) Short term memory (STM)
gives you the ability to remember information for short periods of time, usually less
than 24 hours.(2) Long term memory (LTM) allows you to remember information
forever. Clearly, modern computers have significantly more memory than the first
PCs of the early 1980s, and this has had an effect on development of the PC's
architecture. The trouble is, storing and retrieving data from a large block of memory
is more time-consuming than from a small block. With a large amount of memory,


                                                                              131 of 133
the difference in time between a register access and a memory access is very great,
and this has resulted in extra layers of cache in the storage hierarchy. When accessing
memory, a fast processor will demand a great deal from RAM. Faster memory
designs and motherboard buses can help, but since the 1990s "cache memory" has
been employed as standard between the main memory and the processor. Data
processing systems such as personal computers, digital video players, and wireless
communications devices often include multiple data processing clients which share
access to random access memory (RAM).A typical RAM includes memory array and
peripheral circuits. The memory array is typically arranged in rows and columns of
memory cells. Each row of the memory cells can be accessed by activating a word
line. Each column of the memory cells can be accessed by addressing a bit line.
Random access memories (RAMs) typically include a plurality of memory cells
arranged in an array of rows and columns. Data are accessed from the memory cells
by selecting a given cell or cells by activating bit lines and word lines according to a
row and column address. A typical random access memory system for a computer
includes an array with one or more columns of RAM cells configured to store
respective logic states. Typical randomly accessible memory devices include an
SRAM (static random access memory) and a DRAM (dynamic random access
memory), which are volatile memories.
Final example-unordered:
RAM comes in many different packages and there are many different types of RAM
all designed to be compatible with a certain system. It is considered volatile storage
because unlike ROM, the contents of RAM are lost when the power is turned off.
Unlike ROM, RAM requires power; if power is lost, all data is also lost. For example
many home Personal Computers now have a capacity of 16 megabytes (million
bytes), while 64 megabytes is commonplace on commercial workstations. It is
important to note is that dynamic RAM cannot be considered a combinational circuit
like static RAM. Unlike the situation with interrupts, the CPU can respond
immediately, .Although memory is used in many different forms around modern PC
systems, it can be divided into two essential types: RAM and ROM. There are
different types of ROM, too:. It is much like a CD-R drive that burns the data into the
CD. This is just like PROM, except that you can erase the ROM by shining a special
ultra-violet light into a sensor atop the ROM chip for a certain amount of time. Like
ROM, there are different types of RAM: There are a few types of SRAM:.DRAM,
unlike SRAM, must be continually re-written in order for it to maintain its data.2
more types of memory: . For instance, at the turn of the millennium a typical
computer may have only 128Mb of RAM in total, but in 2007 computers commonly
ship with 2Gb of RAM installed, and may include graphics cards with their own
additional 512Mb of RAM and more.
Final example-reordered
<h1> Example </h1>Although memory is used in many different forms around
modern PC systems, it can be divided into two essential types: RAM and ROM.2
more types of memory: For instance, at the turn of the millennium a typical computer
may have only 128Mb of RAM in total, but in 2007 computers commonly ship with
2Gb of RAM installed, and may include graphics cards with their own additional
512Mb of RAM and more. Unlike ROM, RAM requires power; if power is lost, all



                                                                             132 of 133
   data is also lost. It is much like a CD-R drive that burns the data into the CD.DRAM,
   unlike SRAM, must be continually re-written in order for it to maintain its data.RAM
   comes in many different packages and there are many different types of RAM all
   designed to be compatible with a certain system. It is considered volatile storage
   because unlike ROM, the contents of RAM are lost when the power is turned off. For
   example many home Personal Computers now have a capacity of 16 megabytes
   (million bytes), while 64 megabytes is commonplace on commercial workstations.
   This is just like PROM, except that you can erase the ROM by shining a special ultra-
   violet light into a sensor atop the ROM chip for a certain amount o

  12.4        References


[1]- Generic Text Summarization using WordNet by Kedar Bellare, Anish Das Sarma,
Atish Das Sarma, Navneet Loiwal, Vaibhav Mehta, Ganesh Ramakrishnan, Pushpak
Bhattacharyya (Department of Computer Science and Engg, Indian Institute of
Technology, Bombay Powai, Mumbai, India (fkedarb, anish, atish, navneet, vaibhav,
hare, Pb g @cse.iitb.ac.in)
[2]- Using Lexical Chains for Text Summarization by Regina Barzilay and Michael
Elhadad (Mathematics and Computer Science Dept .Ben Gurion University in the Negev
Beer-Sheva, 84105 Israel {regina ,elhadad}@cs.bgu.ac.il
[3]- Reordering sentences by Jorik Jonker EWI Faculty University of Twente
jonkerj@ewi.utwente.nl




                                                                             133 of 133

						
Related docs
Other docs by yaofenjin