Cloud Classification using PCA
Shared by: yaofenjin
-
Stats
- views:
- 5
- posted:
- 8/27/2011
- language:
- English
- pages:
- 133
Document Sample


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
Get documents about "