You are on page 1of 63

Semantic Ideation Learning for Agent-Based E-Brainstorming

in partial fulfillment of the requirement for the award of the degree of

BACHELOR OF TECHNOLOGY IN INFORMATION TECHNOLOGY

ANNA UNIVERSITY: CHENNAI 600 025

ANNA UNIVERSITY: CHENNAI 600 025


BONAFIDE CERTIFICATE

ABSTRACT

Brainstorming can assist organizations in generating creative ideas using teamwork and collaboration. It is the best known tools for creative problem solving. Brainstorming can simply be defined as a group process for generating ideas by using the four divergent thinking guidelines, namely, deferring judgment (the process of stopping to judge ideas and options until after there are many ideas generated), striving for quantity (more ideas generated leads to higher quality ideas), freewheeling (giving participants the opportunity to be playful and to strive for imagination), and seeking combinations (creating ideas that are based upon previously stated ideas). That is, an idea from one participant can trigger a new idea in another participant, who would otherwise not have been produced the idea. This paper integrates the unique association thinking of humans with an intelligent agent technique to devise an automated decision agent called the Semantic Ideation Learning Agent (SILA) that can represent a session participant who is actively participating in brainstorming.

TABLE OF CONTENTS ACKNOWLEDGEMENT ABSTRACT LIST OF FIGURES CHAPTER 1. TITLE INTRODUCTION 1.1 EXISTING SYSTEM 1.2 PROPOSED SYSTEM 1.3 PURPOSE OF THE PROJECT 1.4 FEASIBILITY STUDY 1.5 SYSTEM REQUIREMENTS LITERATURE REVIEW DATA MINING 3.1 DATABASE 3.2 DATA MINING (DM) 3.3 ARCHITECTURE 3.4 KNOWLEDGE DISCOVERY IN DATABASE ONTOLOGIES 4.1 WEB SERVICE 4.2 WEB SERVICES DESCRIPTION LANGUAGE (WSDL) 4.3 SIMPLE OBJECT ACESSS PROTOCOL (SOAP) SERVICE ORIENTED ARCHITECTURE 5.1 DEFINITION 5.2 SERVICE ARCHITECTURE 5.3 SOA INFRASTRUCTURE IMPLEMENTATION 1 3 PAGE NO

2. 3.

4.

5.

6.

6.1 STEPS 6.2 DATA FLOW DIAGRAM 7. MODULES DESCRIPTION 7.1 UI MODULE 7.2 COLLECTIVE BRAINSTORMING BLACKBOARD 7.3 SEMANTIC IDEATION LEARNING AGENT 7.4 PROFILE MODULE 7.5 IDEA CHOSEN MODULE 8. TESTING 8.1 SOFTWARE TESTING 8.2 UNIT TESTING 8.3 INTEGRATION TESTING 8.4 WHITEBOX TESTING 8.5 BLACKBOX TESTING 9. 10. 11. SCREENSHOTS CONCLUSION 10.1 FUTURE ENHANCEMENTS REFERENCES APPENDIX 1.1 APPENDIX 1.2 APPENDIX 1.3 APPENDIX 1.4

CHAPTER-1 INTRODUCTION
BRAINSTORMING is an effective means of getting a large number of ideas from a small number of people in a short time. Brainstorming can help organizations and individuals in generating creative ideas through teamwork and collaboration. Creativity then refers to the ability of bringing something new into being for some purpose. In this paper, we shared a definition of creativity developed by the organizational psychologist Reginald Talbot, who defined creativity as making a change that sticks. The word making indicates that creativity is about bringing something into being. The word change means the introduction of something new, which can fall anywhere along the continuum from continuous change (that is, incremental improvement) to discontinuous change (that is, paradigm breaking). The phrase that sticks then indicates that the creative product or idea serves some need or purpose. E-brainstorming is a form of brainstorming that employs computer-mediated electronic communication to replace verbal communications. E-brainstorming often utilizes special software that gathers employees ideas and shares them with other group members to encourage faster collaboration. In general, e-brainstorming generates more ideas than verbal brainstorming groups. This improvement of e-brainstorming over the conventional brainstorming process comes from factors such as production blocking and evaluation apprehension. Furthermore, the number of ideas generated has been viewed as the dominant measure of ebrainstorming effectiveness. (The issue of opportunities to build relationships with other people or individual growth is beyond the scope of this study.) This work seeks to consider whether the effectiveness of e-brainstorming could further be enhanced. Furthermore, aside from improving group creativity, this study explores the application of idea generation to the era of the service economy. This study seeks to better understand humans capabilities in generating ideas and attempts to devise an architecture and inference mechanism adopted by intelligent agents in order to achieve effective e-brainstorming (which might be useful to some intelligent e-services). This study develops an inference mechanism of

Semantic Ideation Learning Agent (SILA, which performs idea associations and generation, and an architecture of Collective Brainstorming Decision System (CBDS), which provides an environment where SILAs could learn and share their knowledge. These intelligent agents could not only represent the session participants and attend brainstorming session when they could not be present but also report the session process and productions to their clients after completing the brainstorming discussion.

1.1 EXISTING SYSTEMS:

Most ideation research either implicitly or explicitly conjecture that if people generate more ideas, then they will produce more good ideas. Previous ideation literatures were inconsistent in the arguments.

1.2 PROPOSED SYSTEM:


E-brainstorming might be useful to some intelligent e-services. E-brainstorming often utilizes special software that gathers employees ideas and shares them with other group members to encourage faster collaboration. E-brainstorming eliminates the production blocking. SILA can learn to understand the task and utilize external stimulus without restrictions in the working memory or attention span. This project is proposed to find the hidden connections in any organization and helps people to work together, share social resources to achieve common goals. This system designs to unlock valuable business intelligence without explicit human involvement 1.3 USES OF BRAINSTORMING:

Use it when new ideas are required, to generate a large list of possibilities. Use it when a solution to a problem cannot be logically deduced. Use it when information about a problem is confused and spread across several

people, to gather the information in one place.

The creative synergy of a Brainstorming session is also useful in helping a team

bind together.

1.3 PURPOSE OF THE PROJECT:


This system aims at constructing a new e-brainstorming decision model, integrating semantic expression with the three ideation association capabilities into SILA agents that are supported and facilitated with the system architecture of CBDS. This Project develops an inference mechanism of Semantic Ideation Learning Agent (SILA), which performs idea associations and generation, and architecture of Collective Brainstorming Decision System (CBDS).

1.4 FEASIBILITY STUDY


For solving any defined problem successfully the constraints bounding the problem must be defined. There may be different ways of checking whether a system is feasible or not. The reliability of the system should also be encountered for the feasibility study. There are three dimensions of software analysis: Operational Technical Economical

The following feasibility studies were performed to gauge the Feasibility of the system.

OPERATIONAL FEASIBILITY In this test the operational scope of the system is checked. The system under consideration should have enough operational reach. This E-Brainstorming Project is very user friendly. Users generally have to find it easier to get accomplish tasks that require fewer actions on their part. Every thing to one page also reduces user interactions since there is no clicking or typing to get to another page.

TECHNICAL FEASIBILITY The technology is the first step of feasibility for a project. This test includes the study of Function, Performance and Constraints that may affect the ability to achieve an acceptable system. This test begins with an assessment of the technical viability of the proposed project. One of the main factors to be accessed is implementation of the proposed project. The technology should be within the state art, where the defect can be reduced to a level matching the application.

ECONOMICAL FEASIBILITY The development of the E-Brainstorming project can be completed at an affordable cost which any client can afford. The E-Brainstorming is very much financially feasible. Transfer of data from source to sinks can be carried out at a faster rate when compared to the existing one. The organizations must have all the resources to acquire this system.

PRODUCT PERSPECTIVE
This System use of semantic ideation agents (SILAs) in the e-brainstorming process in order to reach automatic collective decisions by e-brainstorming. In this process, SILAs collaborate with CBDS e-brainstorming system architecture. Although a big gap still exists between artificial brainstorming and creative human brainstorming, this study advances existing e-brainstorming research by crossing the three key boundaries of the human ideation capability (understanding, cognition, and endurance). The proposed agent-based e-brainstorming

system improves e-service recommendation and delivery by creating a novel reasoning process for recommender systems, focusing on producing creative recommendations.Fig.1 shows the overall System architecture.

CBDS

UI Module Open Problem & Participants Valued Ideas Notification

Collective Brainstorming Blackboard

Idea chosen Module

Semantic Ideation Learning Agent

Profile module User Profile Idea Knowledge Base Bookkeeping Agent

Fig. 1

1.5 SYSTEM REQUIREMENTS: 1.5.1 Software Requirements

Windows Operating System 2000 and above. Jdk1.5 and above. Apache Tomcat 6.0. Spring Java Server Pages Oracle 10G/Derby Ontology JES

1.5.2 Hardware Requirements


Hard Disk: 10GB and Above RAM: 256MB and Above Processor: Pentium III and Above

CHAPTER-2 LITERATURE REVIEW 2.1 Bounded Ideation Theory: A New Model of the Relationship

between Idea-Quantity and Idea-Quality during Ideation


Bounded Ideation Theory (BIT) to explain the relationship between the number-ofideas and the number-of-good-ideas contributed during ideation session and the total number of ideas contributed. BIT posits that certain cognitive and physical boundaries cause the ideation function to be an inflected curve that transitions from a positive-but-increasing slope to a positive-but decreasing slope. The ideation function, the relationship between idea-quantity and idea-quality, might inform the development of more productive ideation processes by linking idea-quality to the rich body of existing research on idea-quantity. Bounded Ideation Theory must now undergo rigorous empirical testing to see the propositions of cause-and-effect it posits are useful models of the ideation function; whether observed ideation functions are consistent with those posited by the model. The model implies that once an understanding of the task has been achieved, the relationship between number-of-good-ideas and total-ideas ideas will be a curvilinear function with a positive but decreasing slope.

2.2 Effective Meetings through Electronic Brainstorming

Electronic Brainstorming (EBS) is designed to change the behavior of groups. It is designed to help employees communicate effectively during meetings in a painless and efficient way.

Electronic brainstorming is used as part of a regular organizational meeting process. It gives organizations the opportunity to efficiently gather ideas, organize those ideas, and to later make decisions.

It speeds the meeting process at which it is used, increases productivity, and allows the focus to remain on the ideas rather than on the people who spawned them. When members run out of ideas, they access the ideas produced by the group.

Electronic brainstorming (EBS) has recently been introduced into organizations as a means of generating ideas; it makes use of computers to allow members to interact and to exchange ideas.

Electronic brainstorming is a form of brainstorming that makes use of computermediated electronic communication in order to replace verbal communications.

CHAPTER-3

DATAMINING 3.1 Database:


A database is a collection of information organized into interrelated tables of data and specifications of data objects. It is designed to offer an organized mechanism for storing, managing and retrieving information. They do so through the use of tables. Database tables consist of columns and rows. Each column contains a different type of attribute and each row corresponds to a single record.

3.2 Data mining (DM):


Also called Knowledge-Discovery in Databases (KDD) or Knowledge-Discovery and Data Mining, is the process of automatically searching large volumes of data for patterns using tools such as classification, association rule mining, clustering, etc.. Data mining is a complex topic and has links with multiple core fields such as computer science and adds value to rich seminal computational techniques from statistics, information retrieval, machine learning and pattern recognition. It involves sorting through large amounts of data and picking out relevant information. It is usually used by businesses and other organizations, but is increasingly used in the sciences to extract information from the enormous data sets generated by modern experimentation.

There are two types of data mining. They are

Structured data mining


It is the process of finding and extracting useful information from raw datasets. This page may one day describe mining for general data structures. Graph mining is a special case of Structured Data Mining.

Unstructured data mining


It refers to masses of (usually) computerized information which do not have a data structure easily readable by a machine. Examples of unstructured data may include audio, video and unstructured text such as the body of an email or word processor document.

The other name for data mining is clustering. Clustering is a data mining (machine learning) technique used to place data elements into related groups without advance knowledge of the group definitions.

Other definitions
The nontrivial extraction of implicit, previously unknown, and potentially useful information from data. The science of extracting useful information from large data sets or databases.

Data Mining in Business


Through the use of automated statistical analysis (or data mining) techniques, businesses are discovering new trends and patterns of behavior that previously went unnoticed. Once theyve uncovered this vital intelligence, it can be used in a predictive manner for a variety of applications. The steps involved in data mining are Gathering Data The first step toward building a productive data mining program is to gather data. Most businesses already perform these data gathering tasks to some extent the key here is to locate the data critical to your business, refine it and prepare it for the data mining process. Selecting an Algorithm The next step is to select an algorithm. Generally there are two algorithms.

Regression
Regression is the oldest and most well-known statistical technique that the data mining community utilizes. Basically, regression takes a numerical dataset and develops a mathematical formula that fits the data.

Classification
Working with categorical data or a mixture of continuous numeric.

The Foundations of Data Mining


Data mining techniques are the result of a long process of research and product development. This evolution began when business data was first stored on computers, continued with improvements in data access, and more recently, generated technologies that allow users to navigate through their data in real time. Data mining takes this evolutionary process beyond retrospective data access and navigation to prospective and proactive information delivery. Data mining is ready for application in the business community because it is supported by three technologies that are now sufficiently mature:

Massive data collection Powerful multiprocessor computers Data mining algorithms

The Scope of Data Mining


Data mining derives its name from the similarities between searching for valuable business information in a large database for example, finding linked products in gigabytes of store scanner data and mining a mountain for a vein of valuable ore. Both processes require either sifting through an immense amount of material, or intelligently probing it to find exactly where the value resides. Given databases of sufficient size and quality, data mining technology can generate new business opportunities by providing these capabilities:

Automated prediction of trends and behaviors. Data mining automates


the process of finding predictive information in large databases. Questions that traditionally required extensive hands-on analysis can now be answered directly from the data quickly. A typical example of a predictive problem is targeted marketing. Data mining uses data on past promotional mailings to identify the targets most likely to maximize return on investment in future mailings. Other predictive problems include forecasting bankruptcy and other forms of default, and identifying segments of a population likely to respond similarly to given events.

Automated discovery of previously unknown patterns. Data mining


tools sweep through databases and identify previously hidden patterns in one step. An example of pattern discovery is the analysis of retail sales data to identify seemingly unrelated products that are often purchased together. Other pattern discovery problems include detecting fraudulent credit card transactions and identifying anomalous data that could represent data entry keying errors. Data mining techniques can yield the benefits of automation on existing software and

hardware platforms, and can be implemented on new systems as existing platforms are upgraded and new products developed. When data mining tools are implemented on high performance parallel processing systems, they can analyze massive databases in minutes. Faster processing means that users can automatically experiment with more models to understand complex data. High speed makes it practical for users to analyze huge quantities of data. Larger databases, in turn, yield improved predictions.

Databases can be larger in both depth and breadth:

More columns. Analysts must often limit the number of variables they examine
when doing hands-on analysis due to time constraints. Yet variables that are discarded because they seem unimportant may carry information about unknown patterns. High performance data mining allows users to explore the full depth of a database, without preselecting a subset of variables.

More rows. Larger samples yield lower estimation errors and variance, and allow users to make inferences about small but important segments of a population. A recent Gartner Group Advanced Technology Research Note listed data mining and

artificial intelligence at the top of the five key technology areas that will clearly have a major impact across a wide range of industries within the next 3 to 5 years.2 Gartner also listed parallel architectures and data mining as two of the top 10 new technologies in which companies will invest during the next 5 years. According to a recent Gartner HPC Research

The most commonly used techniques in data mining are:

Artificial neural networks: Non-linear predictive models that learn through


training and resemble biological neural networks in structure.

Decision trees: Tree-shaped structures that represent sets of decisions. These


decisions generate rules for the classification of a dataset. Specific decision tree methods include Classification and Regression Trees (CART) and Chi Square Automatic Interaction Detection (CHAID)

Genetic algorithms: Optimization techniques that use processes such as


genetic combination, mutation, and natural selection in a design based on the concepts of evolution.

Nearest neighbor method: A technique that classifies each record in a


dataset based on a combination of the classes of the k record(s) most similar to it in a historical dataset (where k 1). Sometimes called the k-nearest neighbor technique.

Rule induction: The extraction of useful if-then rules from data based on
statistical significance. Many of these technologies have been in use for more than a decade in specialized

analysis tools that work with relatively small volumes of data. These capabilities are now evolving to integrate directly with industry-standard data warehouse and OLAP platforms. The appendix to this white paper provides a glossary of data mining terms.

How Data Mining Works


The technique that is used to perform these feats in data mining is called modeling. Modeling is simply the act of building a model in one situation where you know the answer and then applying it to another situation that you dont. Computers are loaded up with lots of information about a variety of situations where an answer is known and then the data

mining software on the computer must run through that data and distill the characteristics of the data that should go into the model. Once the model is built it can then be used in similar situations where you dont know the answer.

3.3 Architecture

Fig 1- Data Mining Architecture


An OLAP (On-Line Analytical Processing) server enables a more sophisticated end-user business model to be applied when navigating the data warehouse. The multidimensional structures allow the user to analyze the data as they want to view their business summarizing by product line, region, and other key perspectives of their business. The Data Mining Server must be integrated with the data warehouse and the OLAP server to embed ROI-focused business analysis directly into this infrastructure. An advanced, processcentric metadata template defines the data mining objectives for specific business issues like campaign management, prospecting, and promotion optimization. Integration with the data warehouse enables operational decisions to be directly implemented and tracked. As the warehouse grows with new decisions and results, the organization can continually mine the best practices and apply them to future decisions.

This design represents a fundamental shift from conventional decision support systems. Rather than simply delivering data to the end user through query and reporting software, the Advanced Analysis Server applies users business models directly to the warehouse and returns a proactive analysis of the most relevant information. These results enhance the metadata in the OLAP Server by providing a dynamic metadata layer that represents a distilled view of the data. Reporting, visualization, and other analysis tools can then be applied to plan future actions and confirm the impact of those plans.

3.4 Knowledge Discovery in Databases: KDD refers to the overall process of


discovering useful knowledge from data.

Basic Definitions:

KDD is the nontrivial process of identifying valid, novel,

potentially useful, and ultimately understandable patterns in data.

Fig 2-KDD Process KDD Process:


The KDD process is interactive and iterative, involving numerous steps with many decisions made by the user. First is developing an understanding of the application domain

and the relevant prior knowledge and identifying the goal of the KDD process from the customers viewpoint.

Selection: selecting a data set, or focusing on a subset of variables or data


samples, on which discovery to be performed.

Data cleaning and Preprocessing: Basic operations include removing noise


appropriate, collecting the necessary information to model or account for noise, deciding on strategies for handling missing data fields, and accounting for timesequence information and known changes.

Data reduction and Projection: Finding useful features to represent the


data depending on the goal of the task. With dimensionality reduction or transformation methods, the effective number of variables under consideration can be reduced, or invariant representations for the data can be found.

Data Mining: Matching the goals of the KDD process (step 1) to a particular
data-mining method. For example, summarization, classification, regression, clustering, and so on.

Exploratory Analysis and model and hypothesis selection: choosing


the data mining algorithm(s) and selecting method(s) to be used for searching for data patterns. This process includes deciding which models and parameters might be appropriate (for example, models of categorical data are different than models of vectors over the real) and matching a particular data-mining method with the overall criteria of the KDD process (for example, the end user might be more interested in understanding the model than its predictive capabilities).

Pattern Generation: searching for patterns of interest in a particular


representational form or a set of such representations, including classification rules or trees, regression, and clustering. The user can significantly aid the data-mining method by correctly performing the preceding steps.

Interpretation and Evaluation: It is interpreting mined patterns, possibly


returning to any of steps 1 through 7 for further iteration. This step can also involve visualization of the extracted patterns and models or visualization of the data given the extracted models.

Knowledge: It is acting on the discovered knowledge using the knowledge


directly, incorporating the knowledge into another system for further action, or simply documenting it and reporting it to interested parties. This process also includes checking for and resolving potential conflicts with previously believed (or extracted) knowledge.

CHAPTER-4 ONTOLOGIES
Ontologies are used to capture knowledge about some domain of interest. Ontology describes the concepts in the domain and also the relationships that hold between those concepts. Different ontology languages provide different facilities. The most recent development in standard ontology languages is OWL from the World Wide Web Consortium (W3C). Like Protege OWL makes it possible to describe concepts but it also provides new facilities. It has a richer set of operators - e.g. and, or and negation. It is based on a different logical model which makes it possible for concepts to be defined as well as described. Complex concepts can therefore be built up in definitions out of simpler concepts. Furthermore, the logical model allows the use of a reasoner which can check whether or not all of the statements and definitions in the ontology are mutually consistent and can also recognise which concepts fit under which definitions. The reasoner can therefore help to maintain the hierarchy correctly. This is particularly useful when dealing with cases where classes can have more than one parent. 3.1 The Three Species of OWL

OWL ontologies may be categorised into three species or sub-languages: OWL-Lite, OWL-DL and OWL- Full. A defining feature of each sub-language is its expressiveness. OWL-Lite is the least expressive sub-langauge. OWL-Full is the most expressive sublanguage. The expressiveness of OWL-DL falls between that of OWL-Lite and OWL-Full. OWL-DL may be considered as an extension of OWL-Lite and OWL-Full an extension of OWL-DL. 3.1.1 OWL-Lite OWL-Lite is the syntactically simplest sub-language. It is intended to be used in situations where only a simple class hierarchy and simple constraints are needed. For example, it is envisaged that OWL-Lite will provide a quick migration path for existing thesauri and other conceptually simple hierarchies. 3.1.2 OWL-DL OWL-DL is much more expressive than OWL-Lite and is based on Description Logics (hence the suffix DL). Description Logics are a decidable fragment of First Order Logic2 and are therefore amenable to automated reasoning. It is therefore possible to automatically compute the classification hierarchy3 and check for inconsistencies in an ontology that conforms to OWL-DL. This tutorial focuses on OWL- DL. 3.1.3 OWL-Full OWL-Full is the most expressive OWL sub-language. It is intended to be used in situations where very high expressiveness is more important than being able to guarantee the decidability or computational completeness of the language. It is therefore not possible to perform automated reasoning on OWL-Full ontologies. 3.1.4 Choosing the Sub-Language to Use For a more detailed synopsis of the three OWL sub-languages see the OWL Web Ontology Language Overview4. Although many factors come into deciding the appropriate sublanguage to use, there are some simple rules of thumb.

The choice between OWL-Lite and OWL-DL may be based upon whether the simple constructs of OWL-Lite are sufficient or not. The choice between OWL-DL and OWL-Full may be based upon whether it is important to be able to carry out automated reasoning on the ontology or whether it is important to be able to use highly expressive and powerful modelling facilities such as meta-classes (classes of classes). 3.2 Components of OWL Ontologies OWL ontologies have similar components to Protege frame based ontologies. However, the terminology used to describe these components is slightly different from that used in Protege. OWL ontology consists of Individuals, Properties, and Classes, which roughly correspond to Protege Instances, Slots and Classes.

Figure: Representation of Individuals 3.2.1 Individuals Individuals, represent objects in the domain that we are interested in5. An important difference between Protege and OWL is that OWL does not use the Unique Name Assumption (UNA). This means that two different names could actually refer to the same individual. For example, Queen Elizabeth, The Queen and Elizabeth Windsor might all refer to the same individual. In OWL, it must be explicitly stated that individuals are the same as each other, or different to each other otherwise they might be the same as each other, or they might be different to each other. Figure shows a representation of some individuals in some domain in this tutorial we represent individuals as diamonds in

diagrams. Individuals are also known as instances. Individuals can be referred to as being instances of classes. 3.2.2 Properties Properties are binary relations6 on individuals - i.e. properties link two individuals together7. For example, the property hasSibling might link the individual Matthew to the individual Gemma, or the property hasChild might link the individual Peter to the individual Matthew. Properties can have inverses. For example, the inverse of hasOwner is isOwnedBy. Properties can be limited to having a single value i.e. to being functional. They can also be either transitive or symmetric. These property characteristics are explained in detail section 4.8. Figure shows a representation of some properties linking some individuals together. Properties are roughly equivalent to slots in Protege . They are also known as roles in description logics and relations in UML and other object oriented notions. In GRAIL and some

Figure: Representation Of Properties

Figure: Representation Of Classes (Containing Individuals) 3.2.3 Classes OWL classes are interpreted as sets that contain individuals. They are described using formal (mathematical) descriptions that state precisely the requirements for membership of the class. For example, the class Cat would contain all the individuals that are cats in our domain of interest.8 Classes may be organised into a superclass-subclass hierarchy, which is also known as taxonomy. Subclasses specialize (are subsumed by) their superclasses. For example consider the classes Animal and Cat Cat might be a subclass of Animal (so Animal is the superclass of Cat). This says that, All cats are animals, All members of the class Cat are members of the class Animal, Being a Cat implies that youre an Animal, and Cat is subsumed by Animal. One of the key features of OWL-DL is that these superclass-subclass relationships (subsumption relationships) can be computed automatically by a reasoner more on this later. Figure shows a representation of some classes containing individuals classes are represented as circles or ovals, rather like sets in Venn diagrams. The word concept is sometimes used in place of class. Classes are a concrete representation of concepts. In OWL classes are built up of descriptions that

specify the conditions that must be satisfied by an individual for it to be a member of the class.

CHAPTER-5 SOFTWARE HISTORY OF JAVA

Java has been around since 1991, developed by a small team of Sun Microsystems developers in a project originally called the Green project. The intent of the project was to develop a platform-independent software technology that would be used in the consumer electronics industry. The language that the team created was originally called Oak.

The first implementation of Oak was in a PDA-type device called Star Seven (*7) that consisted of the Oak language, an operating system called GreenOS, a user interface, and hardware. The name *7 was derived from the telephone sequence that was used in the team's office and that was dialed in order to answer any ringing telephone from any other phone in the office. Around the time the First Person project was floundering in consumer electronics, a new craze was gaining momentum in America; the craze was called "Web surfing." The World Wide Web, a name applied to the Internet's millions of linked HTML documents was suddenly becoming popular for use by the masses. The reason for this was the introduction of a graphical Web browser called Mosaic, developed by ncSA. The browser simplified Web browsing by combining text and graphics into a single interface to eliminate the need for users to learn many confusing UNIX and DOS commands. Navigating around the Web was much easier using Mosaic. It has only been since 1994 that Oak technology has been applied to the Web. In 1994, two Sun developers created the first version of Hot Java, and then called Web Runner, which is a graphical browser for the Web that exists today. The browser was coded entirely in the Oak language, by this time called Java. Soon after, the Java compiler was rewritten in the Java language from its original C code, thus proving that Java could be used effectively as an application language. Sun introduced Java in May 1995 at the Sun World 95 convention. Web surfing has become an enormously popular practice among millions of computer users. Until Java, however, the content of information on the Internet has been a bland series of HTML documents. Web users are hungry for applications that are interactive, that users can execute no matter what hardware or software platform they are using, and that travel across heterogeneous networks and do not spread viruses to their computers. Java can create such applications.

CHAPTER-6 IMPLEMENTATION

6.3 Data Flow Diagram


Level 0: Request User/Input Collective Brainstor ming Blackboar d. Request Semantic Ideation Learning Agent

Participant

Level 1:

Semantic Ideation Learning Agent .

Request Send

Idea Ontology

User Profile Idea Knowledge Base Level 2:

Collective Brainstorming Blackboard

Idea Chosen Module

Output to client

Level 3: Request User/Input Collective Brainstor ming Blackboar d. Semantic Ideation Learning Agent

Participant Idea Knowledge Base OutputChosen Idea to client Module Idea Ontology User Profile

Response

Fig 7- Data Flow Diagram

Sequence Diagram

Usecase Diagram

Activity Diagram

CHAPTER-7

MODULES
Brainstorming is one of the best known tools for creative problem solving. The term brainstorming was first used by Osborn. Brainstorming can simply be defined as a group process for generating ideas by using the four divergent thinking guidelines, namely, deferring judgment (the process of stopping to judge ideas and options until after there are many ideas generated), striving for quantity (more ideas generated leads to higher quality ideas), freewheeling (giving participants the opportunity to be playful and to strive for imagination), and seeking combinations (creating ideas that are based upon previously stated ideas). Accordingly, brainstorming engenders synergy; that is, an idea from one participant can trigger a new idea in another participant, who would otherwise not have been produced the idea. E-brainstorming utilizes electronic communication to replace verbal communications and thus eliminates problems such as production blocking. For example, group support systems (GSSs) have been applied to assist in the idea generation process. A GSS is a suite of collaborative software tools that operates over a computer network and allows people to anonymously contribute ideas. Some works have revealed that the application of GSS in idea generation improves both the quantity and the quality of ideas generated. Further indicated that the types of ideas generated are affected by the stimulus contained within a GSS group memory.

The Modules are


UI Module Collective Brainstorming Blackboard Module Semantic Ideation Learning Agent Module Profile Module Idea Chosen Module

7.1 UI Module:
This module has two components. First one is Open Problem & Participants component. The Open Problem and Participants Component represent the given open problem and the participants and send two input parameters. Second one is Valued Ideas Notification Component. This receives the set of valued ideas and the ideation map from the Idea Chosen Module and delivers them to the session participants. Input: Enter the open problem Choose participant

7.2 Collective Brainstorming Blackboard:


The Collective Brainstorming Blackboard receives system parameters Initial Idea and Clients from the Open Problem and Participants Component, then spontaneously initializes each clients SILA, and builds a communication platform to provide an environment in which SILAs can learn and share their knowledge. Input: Input Ideation Output: Generate idea for each ideation round

7.3 Semantic Ideation Learning Agent:


A SILA is an intelligent agent that represents its client to attend the brainstorming session and manage the process of ideas association. The Function of a SILA are receiving the Input Idea from the Collective Brainstorming Blackboard, accessing a clients domain knowledge from Personal Data Manger Component, creating a creative idea based on its inference engine, and returning creative ideas to the Collective Brainstorming Blackboard.

Bookkeeping Agents, the knowledge of SILAs can also be learned and evolved with the feedback (that is, ranking of the value ideas) collected from the clients, and their Idea Knowledge Base can also be updated. Input: Input Ideation Output: Generated Idea from idea Ontology

7.4 Profile Module:


The User Profile stores fundamental information about a client. The Idea Knowledge Base records every clients domain knowledge, which comprises idea instances and the relationships between these instances. It assumes the existence of a given set of ideation participants and their relevant knowledge. Input: User Profile input User Knowledge Base.

7.5 Idea Chosen Module: The Idea-Chosen Module can perform a valued idea selection according to a userset criterion after a brainstorming process finishes. For instance, a creative idea is selected as a valued idea if its Idea Chosen Value (IEV) is over a particular bound. Input: Generated Idea from blackboard. Output: Sorted Valued Idea.

CHAPTER-8 TESTING 8.1 Software Testing


Software Testing is the process used to help identify the correctness, completeness, security, and quality of developed computer software. Testing is a process of technical investigation, performed on behalf of stakeholders, that is intended to reveal quality-related information about the product with respect to the context in which it is intended to operate.

Steps in testing:
Requirements Analysis: Testing should begin in the requirements phase of the software development life cycle. During the design phase, testers work with developers in determining what aspects of a design are testable and under what parameter those tests work. Test Planning: Test Strategy, Test Plan(s), Test Bed creation. Test Development: Test Procedures, Test Scenarios, Test Cases, and Test Scripts to use in testing software. Test Execution: Testers execute the software based on the plans and tests and report any errors found to the development team. Test Reporting: Once testing is completed, testers generate metrics and make final reports on their test effort and whether or not the software tested is ready for release. Retesting the Defects

8.2 Unit testing:


Unit testing is a procedure used to validate that individual units of source code are working properly. A unit is the smallest testable part of an application. In procedural

programming a unit may be an individual program, function, procedure, web page, menu etc, while in object-oriented programming, the smallest unit is always a Class; which may be a base/super class, abstract class or derived/child class. Units are distinguished from modules in that modules are typically made up of units.

8.3 Integration testing:


Integration testing (sometimes called Integration and Testing, abbreviated I&T) is the phase of software testing in which individual software modules are combined and tested as a group. It follows unit testing and precedes system testing. Integration testing takes as its input modules that have been unit tested, groups them in larger aggregates, applies tests defined in an integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing. The purpose of integration testing is to verify functional, performance and reliability requirements placed on major design items. The overall idea is a building block approach, in which verified assemblages are added to a verified base which is then used to support the integration testing of further assemblages.

8.4 White Box Testing:


A software testing technique whereby explicit knowledge of the internal workings of the item being tested are used to select the test data. White box testing uses specific knowledge of programming code to examine outputs.

8.5 Black box testing:


It takes an external perspective of the test object to derive test cases. These tests can be functional or non-functional, though usually functional. The test designer selects valid and invalid input and determines the correct output. There is no knowledge of the test objects internal structure.

CHAPTER-10 CONCLUSION
This paper presents the use of semantic ideation agents (SILAs) in the ebrainstorming process in order to reach automatic collective decisions by e-brainstorming. In this process, SILAs collaborate with CBDS e-brainstorming system architecture. Although a big gap still exists between artificial brainstorming and creative human brainstorming, this study advances existing e-brainstorming research by crossing the three key boundaries of the human ideation capability (understanding, cognition, and endurance). The proposed agent-based e-brainstorming system improves e-service recommendation and delivery by creating a novel reasoning process for recommender systems, focusing on producing creative recommendations.

10.1 FUTURE ENHANCEMENTS:


However, the proposed mechanism still has limitations, owing to the confined scopes of SILAs association capabilities and ideation ontologies, and the rigidity of the protocol for ideation map construction. Future work will incorporate new association techniques and flexible agent ideation protocols and explore different semantic ideation ontologies and idea evaluation systems. Additionally, the dynamic evolution of ideation ontologies and possible scopes of future applications will be addressed.

Dynamic Ideation
Important keywords are store in database When two staffs are in discussion, at that time system monitor them and check, in which domain their discussion is going and match their domain with database and store their discussion. Discussions are done by Mail or Instant Messaging.

CODINGS

Knowldegecenter.jsp <%@ include file="/client/include.jsp" %> <%@ include file="/client/Menu.jsp" %> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>New Page 1</title> <style> <!-p.MsoNormal {mso-style-parent:""; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman"; margin-left:0mm; margin-right:0mm; margin-top:0mm} -->

</style> <script> function showSettings(){ var divArea = document.getElementById("divsettings"); if (document.getElementById("ownsettings").checked){ divArea .style.visibility = 'visible'; } else{ divArea .style.visibility = 'hidden'; } } function SelectSubCat(){ removeAllOptions(document.knowledgeCenterFrm.subTopic); if(document.knowledgeCenterFrm.topic.value == 'java'){ addOption(document.knowledgeCenterFrm.subTopic,"jsp", "JSP"); addOption(document.knowledgeCenterFrm.subTopic,"servlet", "Servlet"); addOption(document.knowledgeCenterFrm.subTopic,"ejb", "EJB"); } if(document.knowledgeCenterFrm.topic.value == 'MS'){

addOption(document.knowledgeCenterFrm.subTopic,"asp", "ASP"); addOption(document.knowledgeCenterFrm.subTopic,"Cricket", "VB"); addOption(document.knowledgeCenterFrm.subTopic,"net", ".net"); } } ////////////////// function removeAllOptions(selectbox) { var i; for(i=selectbox.options.length-1;i>=0;i--) { //selectbox.options.remove(i); selectbox.remove(i); } } function addOption(selectbox, value, text ) { var optn = document.createElement("OPTION"); optn.text = text;

optn.value = value; selectbox.options.add(optn); } </script> </head> <body bgcolor="#808080"> <form method="POST" action="KnowledgeCenter.htm" name="knowledgeCenterFrm"> <font size="4">&nbsp;</font><u><b><font size="4">Knowledge center</font></b></u> <p class="MsoNormal" align="left"> <u><font size="3"><b>Add New Entry</b></font></u></p> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="50%" id="AutoNumber1"> <tr> <td width="50%">Topic</td> <td width="50%"><select size="1" name="topic" id="topic" onChange="SelectSubCat()"> <option selected value="java">Java</option> <option value="MS">Microsoft</option>

</select></td> </tr> <tr> <td width="50%">Sub Topic</td> <td width="50%"><select size="1" name="subTopic"> <option selected value="jsp">JSP</option> <option value="servlet">Servlet</option> <option value="ejb">EJB</option> </select></td> </tr> <tr> <td width="50%">Document Type</td> <td width="50%"><select size="1" name="docType"> <option selected>PDF</option> <option>DOC</option> <option>Flat File</option> </select></td> </tr> <tr>

<td width="50%">Location</td> <td width="50%"><input type="text" name="docLocation" size="20"></td> </tr> <tr> <td width="50%"> <p class="MsoNormal">Short Description</td> <td width="50%"><textarea rows="2" name="shortDesc" cols="20"></textarea></td> </tr> <tr> <td width="50%">&nbsp;</td> <td width="50%">&nbsp;</td> </tr> </table>

&nbsp;<p>Personal knowledge <input type="checkbox" name="ownsettings" id ="ownsettings"value="ON" onclick="showSettings()"></p> <div id = "divsettings" style="width: 900; height: 133"> <p> <b><u>Update Own Knowledge Center</u></b></p>

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="50%" id="AutoNumber2" height="65"> <tr> <td width="50%" height="22"> <p class="MsoNormal">Department</td> <td width="50%" height="22"><select size="1" name="department"> <option selected value="hrdep">HR</option> <option value="dev">Development</option> </select></td> </tr> <tr> <td width="50%" height="42"> <p class="MsoNormal">Interest</p> <p class="MsoNormal">&nbsp;</td> <td width="50%" height="42"><textarea rows="2" name="interest" cols="27"></textarea></td> </tr> </table> </div>

<c:forEach items="${model.knowledge}" var="knowledge"> </c:forEach> <p align="center"><input type="submit" value="Submit" name="B1"><input type="reset" value="Reset" name="B2"></p> <table boder="1"> <tr> <td> Select </td> <td>topic </td> <td>subTopic </td> <td>docType</td> <td>docLocation</td> <td>shortDesc</td> <td>department</td> <td>interest</td> </tr> <c:forEach items="${model.knowledge}" var="knowledge"> <tr> <td><input type ="checkbox" name="ad_mark" value=<c:out value='$ {knowledge.emp_id}'/>/> <td> <c:out value="${knowledge.topic}"/> </td>

<td> <c:out value="${knowledge.subTopic}"/> </td> <td> <c:out value="${knowledge.docType}"/> </td> <td> <c:out value="${knowledge.docLocation}"/> </td> <td> <c:out value="${knowledge.shortDesc}"/> </td> <td> <c:out value="${knowledge.department}"/> </td> <td> <c:out value="${knowledge.interest}"/> </td> </tr> </c:forEach> </table> </form> </body> </html>

SEARCHSUBMITCONTROLLER.JAVA package com.gts.brainstorm.controller; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter;

import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.util.ArrayList; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.output.XMLOutputter; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import com.gts.brainstorm.search.util.FindKnowledgeUtil; public class SearchSubmitController implements Controller{ public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception {

String xmlStr=BuildInputXML(req);

String stringToReverse = URLEncoder.encode("INBA", "UTF-8"); String proxy = findProxy(req.getParameter("searchKey"),req.getParameter("keyoptions")); HttpSession session = req.getSession(); if(proxy!=null && proxy.equals("")){ session.setAttribute("resultHtml", "Proxy Not Found"); return new ModelAndView("SearchResults","resultHtml","Proxy Not Found"); } URL url = new URL("http://"+proxy+":8080/bs/UnitController"); URLConnection connection = url.openConnection(); connection.setDoOutput(true); OutputStreamWriter out = new OutputStreamWriter( connection.getOutputStream()); out.write(xmlStr); out.close();

BufferedReader in = new BufferedReader( new InputStreamReader( connection.getInputStream()));

String decodedString=""; String tempstr=""; while ((decodedString = in.readLine()) != null) { tempstr=decodedString; } in.close(); session = req.getSession(); session.setAttribute("resultHtml", tempstr); return new ModelAndView("SearchResults","resultHtml",decodedString); }

private String BuildInputXML(HttpServletRequest req) throws JDOMException, IOException{ String searchText=req.getParameter("txtmsg"); String recipients=req.getParameter("txtrecipients"); String globalSsearch=req.getParameter("globalsch"); String advSearch=req.getParameter("advsch"); String searchKey=req.getParameter("searchKey"); String optionKey=req.getParameter("keyoptions");

Element root = new Element("Search"); Document doc = new Document(root); Element input =new Element("input"); Element e_searchText =new Element("key"); e_searchText.addContent(searchText); Element e_recipients = new Element("recipients"); e_recipients.addContent(recipients); Element e_global = new Element("global"); e_global.addContent(globalSsearch); Element e_adv_search = new Element("advSearch"); e_adv_search.addContent(advSearch); Element e_searchKey = new Element("key"); e_searchKey.addContent(searchKey); Element e_optionKey = new Element("option"); e_optionKey.addContent(optionKey);

input.addContent(e_searchText);

input.addContent(e_recipients); input.addContent(e_global); input.addContent(e_adv_search); input.addContent(e_searchKey); input.addContent(e_optionKey); root.addContent(input); XMLOutputter outputter = new XMLOutputter(); String hello = outputter.outputString(doc); return hello; } private String findProxy(String dep,String subTopic){ int depId = FindKnowledgeUtil.findDepId(dep); int knowledgeId=-1; ArrayList<String> depIdList = new ArrayList<String>(); ArrayList<String> proxyList = null; if(depId != -1){ knowledgeId = FindKnowledgeUtil.getKnowledgeId(dep, subTopic); }

if(knowledgeId != -1){ depIdList = FindKnowledgeUtil.knowledgeMappingWithDep(knowledgeId); }

if(depIdList.size() > 0) { proxyList = FindKnowledgeUtil.findKnowledgeController(depIdList); }

if(proxyList !=null && proxyList.size()>= 0) return proxyList.get(0); else{ return ""; } }

CHAPTER-11

REFERENCES
[1] J. Geoffrey Rawlinson, Creative Thinking and Brainstorming. Halsted Press, 1981. [2] R.J. Talbot, Taking Style on Board, Creativity and Innovation Management, vol. 6, no. 3, pp. 177-184, 1997. [3] G. Kay, Effective Meetings through Electronic Brainstorming, Management Quarterly, vol. 35, no. 4, pp. 15-26, 1995. [4] R.B. Gallupe, L.M. Bastianutti, and W.H. Copper, Unblocking Brainstorming, J. Applied Psychology, vol. 76, no. 21, pp. 137-142, 1991. [5] A.R. Dennis and B. Reinicke, Beta vs. VHS and the Acceptance of Electronic Brainstorming Technology, MIS Quarterly, vol. 28, no. 1, pp. 1-20, 2004. [6] M.J. Garfield, N.J. Taylor, A.R. Dennis, and J.W. Satzinger, Modifying Paradigms: Individual Differences, Creativity Techniques and Exposure to Ideas in Group Idea Generation, Information Systems Research, vol. 12, no. 3, pp. 322-333, 2001. [7] A.R. Dennis and M.L. Williams, Electronic Brainstorming: Theory, Research, and Future Directions, Group Creativity, Oxford Univ. Press, 2003. [8] A.R. Dennis, A. Pinsonneault, K.M. Hilmer, H. Barki, R.B. Gallupe, M. Huber, and F. Bellavance, Patterns in Electronic Brainstorming: The effects of Synergy and Social Loafing on Group Idea Generation, Intl J. e-Collaboration, vol. 1, no. 4, pp. 38-57, 2005. [9] W.-L. Chang and S.-T. Yuan, iCare Home Portal: A Quest for Quality Aging eService Delivery, Proc. First Workshop Ubiquitous and Pervasive Health Care (UbiCare 06), 2006. [10] A.F. Osborn, Applied Imagination: Principles and Procedures of Creative ProblemSolving, Creative Education Foundation, third revised ed., 1993.

APPENDIX-1.1

Appendix A: Glossary
IEEE HTML HTTP SRS OWL SB RFC J2EE JSP FP6 OS The Institute of Electrical and Electronics Engineers, Inc. Hyper Text Markup Language Hyper Text Transport Protocol Software Requirements Specification Web Ontology Language Semantic Broker Request For Comments Java 2 Platform Enterprise Edition Java Server Page Sixth Framework Program Operating System

Table Design 1) Table Name: bs_addressbook Column Name bs_first_name bs_last_name bs_phone_number bs_email_id bs_department bs_interest 2) Table Name: bs_user_knowledge Column Name bs_topic bs_sub_topic bs_doc_type bs_doc_location bs_short_desc bs_department bs_interest Data Type varchar(30) varchar(30) varchar(20) varchar(100) varchar(250) varchar(20) varchar(250) Data Type varchar(15) varchar(15) varchar(15) varchar(15) varchar(15) varchar(15)

3) Table Name: org_details Column Name Org_name org_address1 org_address2 org_street1 org_street2 org_city org_nation org_zip_code org_phone1 org_phone2 org_email1 org_email2 Data Type varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30)

4) Table Name: org_dep_details Column Name dep_id dep_short dep_long dep_display 5) Table Name: dep_knowledge_info Column Name dep_id knowledge_id 6) Table Name: knowledge_info Column Name Knowledge_id bs_topic bs_sub_topic1 bs_sub_topic2 bs_topic_desc bs_topic_display_name Data Type Integer NOT NULL(PK) varchar(100) varchar(100) varchar(100) varchar(500) varchar(300) Data Type Integer Not Null Integer Data Type Integer Not Null(PK) varchar(10) varchar(30) varchar(100)

7) Table Name: opposite_knowledge_info Column Name opposite_knowledge_id knowledge_id topic_display_name 8) Table Name: dep_knowledge_controller_map Column Name dep_id controller_id controller_name controller_ip controller_system_name controller port_number 9) Table Name: org_emp_details Column Name emp_id emp_dep_id emp_name emp_mid_name emp_last_name emp_phone_no emp_email_id 10) Table Name: emp_interest Column Name bs_emp_id knowledge_id 11) Table Name: user_knoledge_info Column Name user_knowledge_doc_id user_id knowledge_id doc_type_id doc_location user_doc_desc Data Type Integer Not Null(PK) Integer Integer Integer varchar(300) varchar(500) Data Type Integer Integer Data Type Integer Not Null(PK) Integer varchar(15) varchar(10) varchar(15) varchar(30) varchar(30) Data Type Integer Integer varchar(50) varchar(30) varchar(50) Integer Data Type Integer Not Null(PK) Integer varchar(300)

12) Table Name: bs_doc_map Column Name doc_type_id doc_type_short_name doc_type_long_name doc_display_name 13) Table Name: search_trace Column Name knowledge_id user_knowledge_doc_id hit_count user_rating Data Type Integer Integer Integer Integer Data Type Integer Not Null(PK) varchar(10) varchar(30) varchar(100)

SCREENSHOTS

63

You might also like