ftp.nice.ch/pub/next/connectivity/infosystems/WAIStation.1.9.6.N.b.tar.gz#/WAIS/ir/wprot.h

This is wprot.h in view mode; [Download] [Up]

/* WIDE AREA INFORMATION SERVER SOFTWARE:
   No guarantees or restrictions.  See the readme file for the full standard
   disclaimer.	
  
   3.26.90	Harry Morris, morris@think.com
   3.30.90  Harry Morris 
   			-	removed chunk code from WAISSearchAPDU,
   			-	added makeWAISQueryType1Query() and readWAISType1Query() which
   				replace makeWAISQueryTerms() and makeWAISQueryDocs().
   4.11.90  HWM - added definitions of wais element set names
   4.14.90  HWM - changed symbol for relevance feedback query from QT_3 to 
   				  QT_RelevanceFeedbackQuery added QT_TextRetrievalQuery as a
   				  synonym for QT_BooleanQuery
				- renamed makeWAISType1Query() to makeWAISTextQuery()
				  renamed readWAISType1Query() to readWAISTextQuery()
   5.29.90  TS - added CSTFreeWAISFoo functions
*/

#ifndef _H_WAIS_protocol_

#define _H_WAIS_protocol_

#include "cdialect.h"

#include "zprot.h"
#include "ztype1.h"

/*----------------------------------------------------------------------*/
/* Data types / constants */

/* date factor constants */
#ifndef DF_INDEPENDENT
#define	DF_INDEPENDENT		1
#define DF_LATER		2
#define DF_EARLIER		3
#define DF_SPECIFIED_RANGE	4
#endif

/* chunk types */
#define CT_document		0
#define CT_byte			1
#define CT_line			2
#define CT_paragraph	3

/* relevance feedback query */
#define QT_RelevanceFeedbackQuery	"3"
#define QT_TextRetrievalQuery		QT_BooleanQuery

/* new data tags */
#define DT_UserInformationLength	(data_tag)99
#define	DT_ChunkCode			(data_tag)100
#define	DT_ChunkIDLength		(data_tag)101
#define	DT_ChunkMarker			(data_tag)102
#define	DT_HighlightMarker		(data_tag)103
#define	DT_DeHighlightMarker		(data_tag)104
#define	DT_NewlineCharacters		(data_tag)105
#define	DT_SeedWords			(data_tag)106
#define	DT_DocumentIDChunk		(data_tag)107
#define	DT_ChunkStartID			(data_tag)108
#define	DT_ChunkEndID			(data_tag)109
#define	DT_TextList			(data_tag)110
#define	DT_DateFactor			(data_tag)111
#define	DT_BeginDateRange		(data_tag)112
#define	DT_EndDateRange			(data_tag)113
#define	DT_MaxDocumentsRetrieved	(data_tag)114
#define	DT_SeedWordsUsed		(data_tag)115
#define	DT_DocumentID			(data_tag)116
#define	DT_VersionNumber		(data_tag)117
#define	DT_Score			(data_tag)118
#define	DT_BestMatch			(data_tag)119
#define	DT_DocumentLength		(data_tag)120
#define	DT_Source			(data_tag)121
#define	DT_Date				(data_tag)122
#define	DT_Headline			(data_tag)123
#define	DT_OriginCity			(data_tag)124
#define	DT_PresentStartByte		(data_tag)125
#define	DT_TextLength			(data_tag)126
#define	DT_DocumentText			(data_tag)127
#define	DT_StockCodes			(data_tag)128
#define	DT_CompanyCodes			(data_tag)129
#define	DT_IndustryCodes		(data_tag)130

/* added by harry */
#define DT_DocumentHeaderGroup		(data_tag)150
#define DT_DocumentShortHeaderGroup	(data_tag)151
#define DT_DocumentLongHeaderGroup	(data_tag)152
#define DT_DocumentTextGroup		(data_tag)153
#define DT_DocumentHeadlineGroup 	(data_tag)154
#define DT_DocumentCodeGroup		(data_tag)155
#define DT_Lines					(data_tag)131 
#define	DT_TYPE_BLOCK				(data_tag)132
#define DT_TYPE						(data_tag)133

/* wais element sets */
#define ES_DocumentHeader		"Document Header"
#define ES_DocumentShortHeader	"Document Short Header"
#define ES_DocumentLongHeader	"Document Long Header"
#define ES_DocumentText			"Document Text"
#define ES_DocumentHeadline		"Document Headline"
#define ES_DocumentCodes		"Document Codes"

typedef struct DocObj { /* specifies a section of a document */
	any*	DocumentID;
	char*   Type;
	long	ChunkCode;
	union {
		long	Pos;
		any*	ID;
	} ChunkStart;
	union {
		long	Pos;
		any*	ID;
	} ChunkEnd;
	} DocObj;
	
/*----------------------------------------------------------------------*/
/* WAIS APDU extensions */

typedef struct WAISInitResponse {
	long				ChunkCode;
	long				ChunkIDLength;
	char*				ChunkMarker;
	char*				HighlightMarker;
	char* 				DeHighlightMarker;
	char*				NewlineCharacters;
	/* XXX  need to add UpdateFrequency and Update Time */
	} WAISInitResponse;

typedef struct WAISSearch {
	char*				SeedWords;
	DocObj**			Docs;
	char**				TextList;
	long				DateFactor;
	char*				BeginDateRange;
	char*				EndDateRange;
	long				MaxDocumentsRetrieved;
	} WAISSearch;

typedef struct WAISDocumentHeader {
	any*				DocumentID;
	long				VersionNumber;
	long				Score;     
	long				BestMatch; 
	long				DocumentLength;
	long 				Lines;
	char**				Types;
	char*				Source;
	char*				Date;
	char*				Headline;
	char*				OriginCity;
	} WAISDocumentHeader;

typedef struct WAISDocumentShortHeader {
	any*				DocumentID;
	long				VersionNumber;
	long				Score;     
	long				BestMatch; 
	long				DocumentLength;
	long 				Lines;
 	} WAISDocumentShortHeader;
 
typedef struct WAISDocumentLongHeader {
	any*				DocumentID;
	long				VersionNumber;
	long				Score;     
	long				BestMatch; 
	long				DocumentLength;
	long 				Lines;
	char**				Types;
	char*				Source;
	char*				Date;
	char*				Headline;
	char*				OriginCity;
	char*				StockCodes;
	char* 				CompanyCodes;
	char*				IndustryCodes;
 	} WAISDocumentLongHeader;

typedef struct WAISDocumentText {
	any*				DocumentID;
	long				VersionNumber;
	any*				DocumentText;
	} WAISDocumentText;
	
typedef struct WAISDocumentHeadlines {
	any*				DocumentID;
	long				VersionNumber;
	char*				Source;
	char*				Date;
	char*				Headline;
	char*				OriginCity;
	} WAISDocumentHeadlines;
	
typedef struct WAISDocumentCodes {
	any*				DocumentID;
	long				VersionNumber;
	char*				StockCodes;
	char*				CompanyCodes;
	char*				IndustryCodes;
	} WAISDocumentCodes;
	
typedef struct WAISSearchResponse {
	char*			       		SeedWordsUsed;
	WAISDocumentHeader** 		DocHeaders;
	WAISDocumentShortHeader** 	ShortHeaders;
	WAISDocumentLongHeader** 	LongHeaders;
	WAISDocumentText**			Text;
	WAISDocumentHeadlines**		Headlines;
	WAISDocumentCodes**			Codes;
	diagnosticRecord**			Diagnostics;
	} WAISSearchResponse;

/*----------------------------------------------------------------------*/
/* Functions */

#ifdef __cplusplus
/* declare these as C style functions */
extern "C"
	{
#endif /* def __cplusplus */

DocObj* makeDocObjUsingWholeDocument _AP((any* aDocID,char* type));
DocObj* makeDocObjUsingBytes _AP((any* aDocID,char* type,long start,long end));
DocObj* makeDocObjUsingLines _AP((any* aDocID,char* type,long start,long end));
DocObj* makeDocObjUsingParagraphs _AP((any* aDocID,char* type,any* start,any* end));
void freeDocObj _AP((DocObj* doc));

WAISInitResponse* makeWAISInitResponse _AP((long chunkCode,long chunkIDLen,
					    char* chunkMarker,char* highlightMarker,
					    char* deHighlightMarker,char* newLineChars));
void freeWAISInitResponse _AP((WAISInitResponse* init));

WAISSearch* makeWAISSearch _AP((
	char* seedWords,DocObj** docs,char** textList,
	long dateFactor,char* beginDateRange,char* endDateRange,
	long maxDocsRetrieved));
void freeWAISSearch _AP((WAISSearch* query));

WAISDocumentHeader* makeWAISDocumentHeader _AP((
	any* aDocID,long versionNumber,long score,long bestMatch,long docLen,
	long lines,char** types,char* source,char* date,char* headline,char* originCity));
void freeWAISDocumentHeader _AP((WAISDocumentHeader* header));
char* writeWAISDocumentHeader _AP((WAISDocumentHeader* header,char* buffer,long* len));
char* readWAISDocumentHeader _AP((WAISDocumentHeader** header,char* buffer));

WAISDocumentShortHeader* makeWAISDocumentShortHeader _AP((
	any* aDocID,long versionNumber,long score,long bestMatch,long docLen,long lines));
void freeWAISDocumentShortHeader _AP((WAISDocumentShortHeader* header));
char* writeWAISDocumentShortHeader _AP((WAISDocumentShortHeader* header,
                                   char* buffer,long* len));
char* readWAISDocumentShortHeader _AP((WAISDocumentShortHeader** header,char* buffer));

WAISDocumentLongHeader* makeWAISDocumentLongHeader _AP((
	any* aDocID,long versionNumber,long score,long bestMatch,long docLen,
	long lines,char** types,char* source,char* date, char* headline,char* originCity,
	char* stockCodes,char* companyCodes,char* industryCodes));
void freeWAISDocumentLongHeader _AP((WAISDocumentLongHeader* header));
char* writeWAISDocumentLongHeader _AP((WAISDocumentLongHeader* header,char* buffer,long* len));
char* readWAISDocumentLongHeader _AP((WAISDocumentLongHeader** header,char* buffer));

WAISSearchResponse* makeWAISSearchResponse _AP((
	char* seedWordsUsed,WAISDocumentHeader** docHeaders,
	WAISDocumentShortHeader** shortHeaders,
	WAISDocumentLongHeader** longHeaders,
	WAISDocumentText** text,WAISDocumentHeadlines** headlines,
	WAISDocumentCodes** codes,
	diagnosticRecord** diagnostics));
void freeWAISSearchResponse _AP((WAISSearchResponse* response));

WAISDocumentText* makeWAISDocumentText _AP((any* aDocID,long versionNumber,
				       any* documentText));
void freeWAISDocumentText _AP((WAISDocumentText* docText));
char* writeWAISDocumentText _AP((WAISDocumentText* docText,char* buffer,long* len));
char* readWAISDocumentText _AP((WAISDocumentText** docText,char* buffer));

WAISDocumentHeadlines* makeWAISDocumentHeadlines _AP((
	any* aDocID,long versionNumber,char* source,char* date,char* headline,
	char* originCity));
void freeWAISDocumentHeadlines _AP((WAISDocumentHeadlines* docHeadline));
char* writeWAISDocumentHeadlines _AP((WAISDocumentHeadlines* docHeadline,char* buffer,long* len));
char* readWAISDocumentHeadlines _AP((WAISDocumentHeadlines** docHeadline,char* buffer));

WAISDocumentCodes* makeWAISDocumentCodes _AP((
	any* aDocID,long versionNumber,char* stockCodes,char* companyCodes,
	char* industryCodes));
void freeWAISDocumentCodes _AP((WAISDocumentCodes* docCodes));
char* writeWAISDocumentCodes _AP((WAISDocumentCodes* docCodes,char* buffer,long* len));
char* readWAISDocumentCodes _AP((WAISDocumentCodes** docCodes,char* buffer));

any* makeWAISTextQuery _AP((DocObj** docs));
DocObj** readWAISTextQuery _AP((any* terms));

void CSTFreeWAISInitResponse _AP((WAISInitResponse* init));
void CSTFreeWAISSearch _AP((WAISSearch* query));
void CSTFreeDocObj _AP((DocObj* doc));
void CSTFreeWAISDocumentHeader _AP((WAISDocumentHeader* header));
void CSTFreeWAISDocumentShortHeader _AP((WAISDocumentShortHeader* header));
void CSTFreeWAISDocumentLongHeader _AP((WAISDocumentLongHeader* header));
void CSTFreeWAISSearchResponse _AP((WAISSearchResponse* response));
void CSTFreeWAISDocumentText _AP((WAISDocumentText* docText));
void CSTFreeWAISDocumentHeadlines _AP((WAISDocumentHeadlines* docHeadline));
void CSTFreeWAISDocumentCodes _AP((WAISDocumentCodes* docCodes));
void CSTFreeWAISTextQuery _AP(( any* query));

#ifdef __cplusplus
	}
#endif /* def __cplusplus */

/*----------------------------------------------------------------------*/

#endif /* ndef _H_WAIS_protocol_ */

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.