Title: CYBERMINER WEB SEARCH ENGINE
1CYBERMINER WEB SEARCH ENGINE
- Muaz Jamshed
- Russell Elliott
- Joseph Martinez
2Outline
- Introduction
- Requirement Specification
- CYBERMINER Architecture Specification
- Java Applet Specification
3Introduction
- What is CYBERMINER
- Requirements of CYBERMINER
- Functional Requirements
- Non-Functional Requirements
4What is CYBERMINER
- A Web Search Engine
- Search the websites for the users
- KWIC system will be integrated with CYBERMINER
web search engine to perform the search on the
keywords enter by the user
5KWIC System
- The KWIC Software System is an index system
- accepts an ordered set of lines
- Any line shall be circularly shifted by
repeatedly removing the first word and appending
it to the end of the line
6Outline
- Introduction
- Requirement Specification
- CYBERMINER Architecture Specification
- Java Applet Specification
7Requirements of CYBERMINER
- Functional Requirements
- Non-Functional Requirements
8 Functional Requirements
- CYBERMINER shall accept a list of keywords
- CYBERMINER shall return a list of URLs whose
descriptions contain any of the given keywords - CYBERMINER shall use another software system,
KWIC index system, to maintain a database of URLs
and descriptions
9Functional Requirements Cont.
- KWIC shall accept an order set of lines
- Each line consist of two parts
- URL part
- Descriptor part
10Functional Requirements Cont.
- The URL part syntax is
- URL http// identifier . identifier .
identifier . edu com org net - identifier letterdigit
- letter a b c .Y Z
- digit 1 2 3 4 .9 0
- The descriptor part, whose syntax is
- identifier identifier.
11Functional Requirements Cont.
- The descriptor part of any line will be
circularly shifted by repeatedly removing the
first word and appending it at the end of the
line. - The KWIC index system will output a list of all
circular shifts of the descriptor parts of all
the lines in alphabetically ascending order,
together with their corresponding URLs
12Non-Functional Requirements
- CYBERMINER system shall be
- Easily understandable
- Portable
- Reusable
- Enhanceable
- User-friendly
- Adaptable
13Outline
- Introduction
- Requirement Specification
- CYBERMINER Architecture Specification
- Java Applet Specification
14CYBERMINER System Architecture
- The CYBERMINER system is an extension of the KWIC
System - The KWIC System uses the abstract data type
architecture - Therefore the CYBERMINER system also uses the
abstract data type architecture
15CYBERMINER Design Diagram
16CYBERMINER System Architecture
- Style Abstract Data Type (ADT)
- Components Objects and Data
- Constraints Different components access data
with each other by invoking the interface
provided with each module.
17Miner Module
- Miner Module
- void setKeywords(String keywords)
- Divides the search string into a list of words
and stores this list in an array - String getSummary()
- Compares the words in the array created by the
setKeywords operation to the original lines - Returns any matching lines and their associated
URLs.
18Advantages of ADT Architecture
- Every module is independent
- Modifiability
- Algorithms and data representation can be
changed in one module without affecting other
modules - Enhanceability
- Enhancements can be added to a module without
affecting other modules
19Disadvantages of ADT Architecture
- Space Requirements since every module needs a
copy of the data it works with - Response Time each module reconstructs the whole
architecture for itself to operate
20Alternatives to the CYBERMINER Software System
- Data Share Architecture
- Advantages Space requirements are minimal
- Disadvantages Modifiability and Reusability are
poor
21Alternatives to the CYBERMINER Software System
- Implicit Invocation Architecture
- Advantages Algorithms are easily modified and
do not affect other modules - Disadvantages Response time due to triggering
and larger space requirements
22Alternatives to the CYBERMINER Software System
- Pipe and Filter Architecture
- Advantages Process and data representation
independence between modules - Disadvantages Inefficient use of space and
difficult to enhance features or support an
interactive system
23Outline
- Introduction
- Requirement Specification
- CYBERMINER Architecture Specification
- Java Applet Specification
24Cyberminer System
- LineStorage
- CircularShift
- AlphabeticShift
- Miner
25Cyberminer UML
- Declare GUI objects
- Declare KWIC system
- LineStorage
- CircularShift
- AlphabeticShift
- Declare Miner
- Search class
- init() method from the applet class is used to
initialize the variables and the system - actionPerformed() uses the actionListeners from
within init() to perform the individual tasks of
submitting URL/Descriptors, clearing the
inputArea, and searching for the given keywords
26LineStorage UML
- Declare Arraylist to hold lines and descriptions
- Declare StringTokenizers for lines and words
- getLines() returns the ArrayList of lines
- setWords() uses stWords to separate the l-th line
- getWords() returns the list of descriptions
- getWordCount() returns number of words in the
line
27CircularShift UML
- Declare ArrayList of lines, words, tempWords,
shiftedWords, csLines - Declare StringTokenizer for words
- getCircularShifts() returns the ArrayList of
circularly shifted lines - getCSWords() returns the ArrayList of words for
each circularly shifted lines - getWordCount() returns the number of words for
each circularly shifted lines
28AlphabeticShift UML
- Declare ArrayList of lines, csLines, asLines
- setAlphabeticShifts() uses the Collections.sort()
to sort the circularshifted lines - getAlphabeticShifts() returns the circularly
shifted lines in alphabetical order
29Miner
- Declare ArrayList of indices, wordsToFind,
originalLines, URL - Declare StringTokenizer for words and lines
- setKeywords() uses stWords to separate the passed
in keywords String - getSummary() returns the originalLines associated
with the keywords
30Screen Shot
- inputArea
- submitButton
- clearButton
- outputArea
- inputField
- searchButton
- summaryArea
31Conclusion