LogoGAIK
Toolkit

Knowledge Extraction

Extract specific insights and information from knowledge bases

Overview

Knowledge Extraction component enables you to extract specific information and insights from processed knowledge bases. It provides powerful querying and extraction capabilities for targeted information retrieval.

What is Knowledge Extraction?

Knowledge Extraction is the process of retrieving specific information, patterns, and insights from structured knowledge bases using queries and extraction rules.

Key Features

  • Query-based Extraction: Extract information using natural language queries
  • Pattern Matching: Find patterns and relationships in knowledge
  • Insight Generation: Generate insights from extracted data
  • Multi-source Support: Extract from multiple knowledge sources
  • Customizable Rules: Define custom extraction rules

Basic Usage

import { KnowledgeExtraction } from 'gaik-toolkit';

// Create an extraction instance
const extractor = new KnowledgeExtraction();

// Extract information
const results = await extractor.extract(knowledge, query);

console.log(results);

API Reference

KnowledgeExtraction

Main class for extracting information from knowledge bases.

Constructor

const extractor = new KnowledgeExtraction(options);

Options:

  • queryMode (string): 'semantic' or 'keyword' (default: 'semantic')
  • maxResults (number): Maximum number of results (default: 10)
  • threshold (number): Relevance threshold 0-1 (default: 0.7)

Methods

extract(knowledge: Knowledge, query: string): Promise<ExtractionResult>

Extracts information based on a query.

Parameters:

  • knowledge: Knowledge object from KnowledgeCapture
  • query: Query string or extraction specification

Returns: Promise resolving to ExtractionResult object

Example:

const results = await extractor.extract(knowledge, 'Find all people mentioned');
extractWithRules(knowledge: Knowledge, rules: ExtractionRules): Promise<ExtractionResult>

Extracts information using custom rules.

Parameters:

  • knowledge: Knowledge object to extract from
  • rules: Custom extraction rules

Returns: Promise resolving to ExtractionResult object

generateInsights(knowledge: Knowledge): Promise<Insights>

Generates insights from knowledge base.

Parameters:

  • knowledge: Knowledge object to analyze

Returns: Promise resolving to Insights object

ExtractionResult

Result object containing extracted information.

Properties:

  • results (array): Extracted information items
  • confidence (number): Confidence score (0-1)
  • metadata (object): Extraction metadata
  • relatedItems (array): Related items found

Insights

Generated insights object.

Properties:

  • patterns (array): Identified patterns
  • trends (array): Detected trends
  • anomalies (array): Anomalies found
  • summary (string): Insight summary

Usage Examples

Basic Query Extraction

import { KnowledgeCapture, KnowledgeExtraction } from 'gaik-toolkit';

const capture = new KnowledgeCapture();
const extractor = new KnowledgeExtraction();

// Capture knowledge
const knowledge = await capture.captureFromText(text);

// Extract specific information
const people = await extractor.extract(knowledge, 'List all people mentioned');
const dates = await extractor.extract(knowledge, 'Find important dates');
const extractor = new KnowledgeExtraction({
  queryMode: 'semantic',
  maxResults: 5,
  threshold: 0.8
});

const results = await extractor.extract(
  knowledge,
  'What are the main topics discussed?'
);

results.results.forEach(item => {
  console.log(`${item.content} (confidence: ${item.confidence})`);
});

Custom Extraction Rules

const rules = {
  entities: ['person', 'organization'],
  relationships: ['works_for', 'located_in'],
  filters: {
    minConfidence: 0.8,
    dateRange: { start: '2023-01-01', end: '2024-12-31' }
  }
};

const results = await extractor.extractWithRules(knowledge, rules);

Insight Generation

const insights = await extractor.generateInsights(knowledge);

console.log('Key Patterns:', insights.patterns);
console.log('Trends:', insights.trends);
console.log('Summary:', insights.summary);

Advanced Features

Multi-source Extraction

// Extract from multiple knowledge bases
const knowledgeBases = [knowledge1, knowledge2, knowledge3];

const allResults = await Promise.all(
  knowledgeBases.map(kb => extractor.extract(kb, query))
);

// Merge results
const merged = extractor.mergeResults(allResults);

Batch Queries

const queries = [
  'Find all people',
  'List organizations',
  'Extract dates'
];

const batchResults = await extractor.batchExtract(knowledge, queries);

Result Filtering and Ranking

const results = await extractor.extract(knowledge, query);

// Filter by confidence
const highConfidence = results.results.filter(r => r.confidence > 0.9);

// Sort by relevance
const sorted = results.results.sort((a, b) => b.confidence - a.confidence);

Complete Workflow Example

import { Parser, KnowledgeCapture, KnowledgeExtraction } from 'gaik-toolkit';

async function processDocument(filePath, query) {
  // Parse document
  const parser = new Parser();
  const document = await parser.parse(filePath);

  // Capture knowledge
  const capture = new KnowledgeCapture();
  const knowledge = await capture.captureFromDocument(document);

  // Extract information
  const extractor = new KnowledgeExtraction();
  const results = await extractor.extract(knowledge, query);

  // Generate insights
  const insights = await extractor.generateInsights(knowledge);

  return {
    extractedInfo: results,
    insights: insights
  };
}

// Use it
const result = await processDocument('document.pdf', 'Summarize key findings');
console.log(result);

Error Handling

try {
  const results = await extractor.extract(knowledge, query);

  if (results.results.length === 0) {
    console.log('No results found for query');
  }
} catch (error) {
  if (error.code === 'INVALID_QUERY') {
    console.error('Query format is invalid');
  } else if (error.code === 'EXTRACTION_FAILED') {
    console.error('Extraction process failed:', error.message);
  } else {
    console.error('Unexpected error:', error);
  }
}

Next Steps