/* WIDE AREA INFORMATION SERVER SOFTWARE: Developed by Thinking Machines Corporation and put into the public domain with no guarantees or restrictions. */ /*----------------------------------------------------------------------*/ #ifndef _H_WAIS_protocol_ #define _H_WAIS_protocol_ #include "cdialect.h" #include "zprot.h" #include "ztype1.h" /*----------------------------------------------------------------------*/ #ifndef DF_INDEPENDENT #define DF_INDEPENDENT 1 #define DF_LATER 2 #define DF_EARLIER 3 #define DF_SPECIFIED_RANGE 4 #endif #define CT_document 0 #define CT_byte 1 #define CT_line 2 #define CT_paragraph 3 #define QT_RelevanceFeedbackQuery "3" #define QT_TextRetrievalQuery QT_BooleanQuery #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 #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 #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 { any* DocumentID; char* Type; long ChunkCode; union { long Pos; any* ID; } ChunkStart; union { long Pos; any* ID; } ChunkEnd; } DocObj; /*----------------------------------------------------------------------*/ typedef struct WAISInitResponse { long ChunkCode; long ChunkIDLength; char* ChunkMarker; char* HighlightMarker; char* DeHighlightMarker; char* NewlineCharacters; } 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; /*----------------------------------------------------------------------*/ #ifdef __cplusplus extern "C" { #endif 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* theDate,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* theDate, 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* theDate, 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 /*----------------------------------------------------------------------*/ #endif