[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: xhelp system
Sent it to one of my friends for a bit of critique. The note on licensing is
interesting...
--Roger
------- Forwarded Message
From: "Dana M. Diederich" <dana@belegost.mit.edu>
Subject: Re: fwd: xhelp system
To: arma@MIT.EDU (Roger R Dingledine)
Date: Sat, 10 Jan 1998 23:05:21 -0500 (EST)
> 1. Introduction
> - ---------------
> In order for the xhelp system to provide efficient and accurate
> search results some form of database should be used, as opposed
> to performing real time searching of the files themselves.
>
> The most portable method would be to access an SQL database, since
> there are many databases which implement SQL which would allow
> a switch to a different database depending on the system which is
> being used.
This is only portable assuming a standardized interface, such as DBI under
perl. I don't know of any RDBMS standardizing interfaces for other
languages.
>
> The following section describes the components of the search
> system, and the third section discusses the structure of the
> database tables. The final section discusses implementation
> details in brief.
>
> 2. Search system components
> - ---------------------------
> There are several components which are needed for the search system.
> a. The database itself
> b. Table creation and updating program
> c. Modules to provide the search information for various document
> types
> d. UI for the user to search the database.
>
> 3. Database structure
> - ---------------------
> The following tables would be used, the format being:
> TABLE_NAME
> COLUMN1
> COLUMN2
> ...
>
> TOPIC_TABLE
> TOPIC_NAME PRIMARY KEY
>
> IMPLEMENTATION_TABLE
> TOPIC_NAME FOREIGN KEY
> FULL_FILE_NAME
>
> KEYWORD_TABLE
> KEYWORD
> TOPIC_NAME FOREIGN KEY
MySQL does not support foreign key directly. Of course it can be simulated.
>
> Further tables may be added if further text should be searched. For
> example
> if the body of the text should be searched then a table will need to
> be
> created to provide the data.
>
> 4. Implementation Discussion
> - ----------------------------
> Implementation details are sketchy at the moment. For the time being
> the database being used is mySql. It is free and easy to install and
> use.
MySQL is not under GPL. It's server can not be freely distributed.
It is only freely distributed for non profit.
>
> In order to acheive rapid prototyping the command line interface to
> mySql will be used. This also allows other databases with command line
>
> interfaces to be substituted with minimal code change (especially
> since
> sql is being used and is common between databases.)
>
> The table creation program is being written in a scripting language,
> since it is both simple and provides easy interfaces to other programs
>
> The modules may be written in any language. They receive data on which
>
> file to get the information from via command line arguments. Data is
> returned by writing to standard output.
I wrote a C program that will accept arbitrary SQL commands and filter the
results back to stdout. This may be helpful for you.
Cheers.
-Dana
------- End of Forwarded Message