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 KnowledgeCapturequery: 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 fromrules: 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 itemsconfidence(number): Confidence score (0-1)metadata(object): Extraction metadatarelatedItems(array): Related items found
Insights
Generated insights object.
Properties:
patterns(array): Identified patternstrends(array): Detected trendsanomalies(array): Anomalies foundsummary(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');Semantic Search
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
- See Extraction Tool Example
- Learn about Semantic Video Search
- Explore Knowledge Capture