🧠 SemantiCore

Python 3.8+ License: MIT PyPI version Downloads Docker Kubernetes

🚀 Open Source Semantic Layer Toolkit

Transform any unstructured data format into intelligent, structured semantic knowledge graphs, embeddings, and ontologies for LLMs, Agents, RAG systems, and Knowledge Graphs.

📖 Documentation🚀 Quick Start💡 Examples🤝 Community🔧 API Reference


🌟 What is SemantiCore?

SemantiCore is the most comprehensive semantic data transformation platform that bridges the gap between raw unstructured data in any format and intelligent AI systems. From complex documents to live data feeds, SemantiCore extracts meaning, builds knowledge, and creates intelligent semantic layers that power next-generation AI applications.

"The missing link between your data and AI — turning unstructured chaos into structured, intelligent semantic knowledge."

🎯 Why Choose SemantiCore?

📄 Universal Data Processing

  • 50+ file formats supported
  • Live data feeds & streaming
  • Complex document structures
  • Multi-modal content extraction

🧠 Advanced Semantic AI

  • Multi-layer semantic understanding
  • Automatic ontology generation
  • Triple extraction & knowledge graphs
  • Context-aware embeddings

🤖 AI-Ready Outputs

  • RAG-optimized chunking
  • LLM-compatible schemas
  • Vector embeddings
  • Agent orchestration

🚀 Enterprise Scale

  • Real-time processing
  • Distributed architecture
  • 99.9% uptime SLA
  • SOC2/GDPR compliant

Core Capabilities

📊 Universal Data Ingestion & Processing

  • Document Formats: PDF, DOCX, XLSX, PPTX, TXT, RTF, ODT, EPUB, LaTeX
  • Web Formats: HTML, XML, XHTML, RSS, Atom, JSON-LD, Sitemap XML
  • Structured Data: JSON, YAML, CSV, TSV, Parquet, Avro, ORC
  • Markup Languages: Markdown, ReStructuredText, AsciiDoc, Confluence
  • Feed Processing: RSS/Atom feeds, news feeds, social media streams
  • Email Formats: EML, MSG, MBOX, PST archives
  • Archive Formats: ZIP, TAR, RAR, 7Z with recursive processing
  • Database Exports: SQL dumps, MongoDB exports, CouchDB
  • Scientific Formats: BibTeX, EndNote, RIS, JATS XML
  • Code Repositories: Git repositories, documentation, README files

🧠 Advanced Semantic Processing

  • Multi-layer Understanding: Lexical, syntactic, semantic, and pragmatic analysis
  • Entity & Relationship Extraction: Named entities, relationships, and complex event detection
  • Automatic Triple Generation: Subject-Predicate-Object triples from any content
  • Context Preservation: Maintain semantic context across document boundaries
  • Temporal Analysis: Time-aware semantic understanding and event sequencing
  • Cross-Document Linking: Entity resolution and relationship mapping across sources
  • Ontology Alignment: Automatic mapping to existing ontologies (Schema.org, FOAF, Dublin Core)

🕸️ Knowledge Graph Construction

  • Automated Construction: Build knowledge graphs from any data format
  • Triple Stores: Blazegraph, Virtuoso, Apache Jena, GraphDB integration
  • Graph Databases: Neo4j, KuzuDB, ArangoDB, Amazon Neptune, TigerGraph
  • Semantic Reasoning: Inductive, deductive, and abductive reasoning capabilities
  • Ontology Generation: Automatic OWL/RDF ontology creation from data patterns
  • Graph Analytics: Centrality analysis, community detection, path finding
  • SPARQL Query Generation: Automatic query generation for semantic search

📈 Intelligent Content Transformation

  • Semantic Chunking: Context-aware document segmentation for RAG systems
  • Multi-Modal Embeddings: Text, image, table, and chart embeddings
  • Schema Evolution: Dynamic schema adaptation and versioning
  • Content Enrichment: Automatic metadata extraction and enhancement
  • Cross-Reference Resolution: Link resolution across documents and formats
  • Summarization: Extractive and abstractive summarization with semantic preservation

🔍 Advanced Text & Content Analysis

  • Topic Modeling: LDA, BERTopic, hierarchical topic discovery
  • Sentiment Analysis: Document, sentence, and aspect-level sentiment
  • Language Detection: 100+ languages with confidence scoring
  • Content Classification: Automatic categorization and tagging
  • Duplicate Detection: Semantic similarity and near-duplicate identification
  • Information Extraction: Tables, figures, citations, references

🌐 Live Data Processing

  • RSS/Atom Feed Monitoring: Real-time feed processing and semantic extraction
  • Web Scraping: Intelligent web content extraction with semantic understanding
  • API Integration: REST, GraphQL, WebSocket real-time data processing
  • Stream Processing: Kafka, RabbitMQ, Pulsar integration
  • Social Media Feeds: Twitter, LinkedIn, Reddit semantic monitoring
  • News Aggregation: Multi-source news processing and semantic analysis

🚀 Quick Start

📦 Installation Options

# Complete installation with all format support
pip install "semanticore[all]"

# Lightweight installation
pip install semanticore

# Specific format support
pip install "semanticore[pdf,web,feeds,office]"

# Development installation
git clone https://github.com/semanticore/semanticore.git
cd semanticore
pip install -e ".[dev]"

30-Second Demo: From Any Format to Knowledge

from semanticore import SemantiCore

# Initialize with preferred providers
core = SemantiCore(
    llm_provider="openai",
    embedding_model="text-embedding-3-large",
    vector_store="pinecone",
    graph_db="neo4j"
)

# Process ANY data format
sources = [
    "financial_report.pdf",
    "https://example.com/news/rss",
    "research_papers/",
    "data.json",
    "https://example.com/article"
]

# One-line semantic transformation
knowledge_base = core.build_knowledge_base(sources)

print(f"Processed {len(knowledge_base.documents)} documents")
print(f"Extracted {len(knowledge_base.entities)} entities")
print(f"Generated {len(knowledge_base.triples)} semantic triples")
print(f"Created {len(knowledge_base.embeddings)} vector embeddings")

# Query the knowledge base
results = knowledge_base.query("What are the key financial trends?")

🔧 Data Processing Modules

📄 Document Processing Module

Process complex document formats with semantic understanding:

from semanticore.processors import DocumentProcessor

# Initialize document processor
doc_processor = DocumentProcessor(
    extract_tables=True,
    extract_images=True,
    extract_metadata=True,
    preserve_structure=True
)

# Process various document types
pdf_content = doc_processor.process_pdf("report.pdf")
docx_content = doc_processor.process_docx("document.docx")
pptx_content = doc_processor.process_pptx("presentation.pptx")
excel_content = doc_processor.process_excel("data.xlsx")

# Extract semantic information
for content in [pdf_content, docx_content, pptx_content]:
    semantics = core.extract_semantics(content)
    triples = core.generate_triples(semantics)
    embeddings = core.create_embeddings(content.chunks)

🌐 Web & Feed Processing Module

Real-time web content and feed processing:

from semanticore.processors import WebProcessor, FeedProcessor

# Web content processor
web_processor = WebProcessor(
    respect_robots=True,
    extract_metadata=True,
    follow_redirects=True,
    max_depth=3
)

# RSS/Atom feed processor
feed_processor = FeedProcessor(
    update_interval="5m",
    deduplicate=True,
    extract_full_content=True
)

# Process web content
webpage = web_processor.process_url("https://example.com/article")
semantics = core.extract_semantics(webpage.content)

# Monitor RSS feeds
feeds = [
    "https://feeds.feedburner.com/TechCrunch",
    "https://rss.cnn.com/rss/edition.rss",
    "https://feeds.reuters.com/reuters/topNews"
]

for feed_url in feeds:
    feed_processor.subscribe(feed_url)
    
# Process new feed items
async for item in feed_processor.stream_items():
    semantics = core.extract_semantics(item.content)
    knowledge_graph.add_triples(core.generate_triples(semantics))

📊 Structured Data Processing Module

Handle structured and semi-structured data formats:

from semanticore.processors import StructuredDataProcessor

# Initialize structured data processor
structured_processor = StructuredDataProcessor(
    infer_schema=True,
    extract_relationships=True,
    generate_ontology=True
)

# Process various structured formats
json_data = structured_processor.process_json("data.json")
csv_data = structured_processor.process_csv("dataset.csv")
yaml_data = structured_processor.process_yaml("config.yaml")
xml_data = structured_processor.process_xml("data.xml")

# Extract semantic relationships
for data in [json_data, csv_data, yaml_data, xml_data]:
    schema = structured_processor.generate_schema(data)
    triples = structured_processor.extract_triples(data, schema)
    ontology = structured_processor.create_ontology(schema)

📧 Email & Archive Processing Module

Process email archives and compressed files:

from semanticore.processors import EmailProcessor, ArchiveProcessor

# Email processing
email_processor = EmailProcessor(
    extract_attachments=True,
    parse_headers=True,
    thread_detection=True
)

# Archive processing
archive_processor = ArchiveProcessor(
    recursive=True,
    supported_formats=['zip', 'tar', 'rar', '7z'],
    max_depth=5
)

# Process email archives
mbox_data = email_processor.process_mbox("emails.mbox")
pst_data = email_processor.process_pst("outlook.pst")

# Process compressed archives
archive_contents = archive_processor.process_archive("documents.zip")

# Extract semantic information from all contents
for content in archive_contents:
    semantics = core.extract_semantics(content)
    triples = core.generate_triples(semantics)

🔬 Scientific & Academic Processing Module

Specialized processing for academic and scientific content:

from semanticore.processors import AcademicProcessor

# Academic content processor
academic_processor = AcademicProcessor(
    extract_citations=True,
    parse_references=True,
    identify_sections=True,
    extract_figures=True
)

# Process academic formats
latex_content = academic_processor.process_latex("paper.tex")
bibtex_content = academic_processor.process_bibtex("references.bib")
jats_content = academic_processor.process_jats("article.xml")

# Extract academic semantic triples
for content in [latex_content, bibtex_content, jats_content]:
    academic_semantics = academic_processor.extract_academic_entities(content)
    citation_graph = academic_processor.build_citation_network(content)
    research_triples = academic_processor.generate_research_triples(content)

🧩 Semantic Extraction & Transformation

🎯 Automatic Triple Generation

Generate RDF triples from any content automatically:

from semanticore.extraction import TripleExtractor

# Initialize triple extractor
triple_extractor = TripleExtractor(
    confidence_threshold=0.8,
    include_implicit_relations=True,
    temporal_modeling=True
)

# Extract triples from any content
text = "Apple Inc. was founded by Steve Jobs in 1976 in Cupertino, California."
triples = triple_extractor.extract_triples(text)

print(triples)
# [
#   Triple(subject="Apple Inc.", predicate="founded_by", object="Steve Jobs"),
#   Triple(subject="Apple Inc.", predicate="founded_in", object="1976"),
#   Triple(subject="Apple Inc.", predicate="located_in", object="Cupertino"),
#   Triple(subject="Cupertino", predicate="located_in", object="California")
# ]

# Export to various formats
turtle_format = triple_extractor.to_turtle(triples)
ntriples_format = triple_extractor.to_ntriples(triples)
jsonld_format = triple_extractor.to_jsonld(triples)

🧠 Ontology Generation Module

Automatically generate ontologies from extracted semantic patterns:

from semanticore.ontology import OntologyGenerator

# Initialize ontology generator
ontology_gen = OntologyGenerator(
    base_ontologies=["schema.org", "foaf", "dublin_core"],
    generate_classes=True,
    generate_properties=True,
    infer_hierarchies=True
)

# Generate ontology from documents
documents = ["doc1.pdf", "doc2.html", "doc3.json"]
ontology = ontology_gen.generate_from_documents(documents)

# Export ontology in various formats
owl_ontology = ontology.to_owl()
rdf_ontology = ontology.to_rdf()
turtle_ontology = ontology.to_turtle()

# Save to triple store
ontology.save_to_triple_store("http://localhost:9999/blazegraph/sparql")

📊 Semantic Vector Generation

Create context-aware embeddings optimized for semantic search:

from semanticore.embeddings import SemanticEmbedder

# Initialize semantic embedder
embedder = SemanticEmbedder(
    model="text-embedding-3-large",
    dimension=1536,
    preserve_context=True,
    semantic_chunking=True
)

# Generate semantic embeddings
documents = load_documents()
semantic_chunks = embedder.semantic_chunk(documents)
embeddings = embedder.generate_embeddings(semantic_chunks)

# Store in vector database
vector_store = core.get_vector_store("pinecone")
vector_store.store_embeddings(semantic_chunks, embeddings)

# Semantic search
query = "artificial intelligence applications in healthcare"
results = vector_store.semantic_search(query, top_k=10)

🔄 Real-Time Processing & Streaming

📡 Live Feed Processing

Monitor and process live data feeds with semantic understanding:

from semanticore.streaming import LiveFeedProcessor

# Initialize live feed processor
feed_processor = LiveFeedProcessor(
    processing_interval="30s",
    batch_size=100,
    enable_deduplication=True
)

# Subscribe to multiple feeds
feeds = {
    "tech_news": "https://feeds.feedburner.com/TechCrunch",
    "finance": "https://feeds.reuters.com/reuters/businessNews",
    "science": "https://rss.cnn.com/rss/edition_technology.rss"
}

for name, url in feeds.items():
    feed_processor.subscribe(url, category=name)

# Process items in real-time
async for feed_item in feed_processor.stream():
    # Extract semantics from new content
    semantics = core.extract_semantics(feed_item.content)
    
    # Generate triples
    triples = core.generate_triples(semantics)
    
    # Update knowledge graph
    knowledge_graph.add_triples(triples)
    
    # Create embeddings for search
    embeddings = core.create_embeddings([feed_item.content])
    vector_store.add_embeddings(embeddings)
    
    print(f"Processed: {feed_item.title} from {feed_item.source}")

🌊 Stream Processing Integration

Integrate with popular streaming platforms:

from semanticore.streaming import StreamProcessor

# Kafka integration
kafka_processor = StreamProcessor(
    platform="kafka",
    bootstrap_servers=["localhost:9092"],
    topics=["documents", "web_content", "feeds"]
)

# RabbitMQ integration
rabbitmq_processor = StreamProcessor(
    platform="rabbitmq",
    host="localhost",
    port=5672,
    queues=["semantic_processing"]
)

# Process streaming data
async for message in kafka_processor.consume():
    content = message.value
    
    # Determine content type and process accordingly
    if message.headers.get("content_type") == "application/pdf":
        processed = doc_processor.process_pdf_bytes(content)
    elif message.headers.get("content_type") == "text/html":
        processed = web_processor.process_html(content)
    else:
        processed = content
    
    # Extract semantics and build knowledge
    semantics = core.extract_semantics(processed)
    triples = core.generate_triples(semantics)
    knowledge_graph.add_triples(triples)

🎯 Advanced Use Cases

🔐 Multi-Format Cybersecurity Intelligence

from semanticore.domains.cyber import CyberIntelProcessor

# Initialize cybersecurity processor
cyber_processor = CyberIntelProcessor(
    threat_feeds=[
        "https://feeds.feedburner.com/CyberSecurityNewsDaily",
        "https://www.us-cert.gov/ncas/current-activity.xml"
    ],
    formats=["pdf", "html", "xml", "json"],
    extract_iocs=True,
    map_to_mitre=True
)

# Process various cybersecurity sources
sources = [
    "threat_report.pdf",
    "https://security-blog.com/rss",
    "vulnerability_data.json",
    "incident_reports/"
]

cyber_knowledge = cyber_processor.build_threat_intelligence(sources)

# Generate STIX bundles
stix_bundle = cyber_knowledge.to_stix()
print(f"Generated STIX bundle with {len(stix_bundle.objects)} objects")

# Export to threat intelligence platforms
cyber_knowledge.export_to_misp()
cyber_knowledge.export_to_opencti()

🧬 Biomedical Literature Processing

from semanticore.domains.biomedical import BiomedicalProcessor

# Initialize biomedical processor
bio_processor = BiomedicalProcessor(
    pubmed_integration=True,
    extract_drug_interactions=True,
    map_to_mesh=True,
    clinical_trial_detection=True
)

# Process biomedical literature
sources = [
    "research_papers/",
    "https://pubmed.ncbi.nlm.nih.gov/rss/",
    "clinical_reports.pdf",
    "drug_databases.json"
]

biomedical_knowledge = bio_processor.build_medical_knowledge_base(sources)

# Generate medical ontology
medical_ontology = biomedical_knowledge.generate_ontology()

# Export to medical databases
biomedical_knowledge.export_to_umls()
biomedical_knowledge.export_to_bioportal()

📊 Financial Data Aggregation & Analysis

from semanticore.domains.finance import FinancialProcessor

# Initialize financial processor
finance_processor = FinancialProcessor(
    sec_filings=True,
    news_sentiment=True,
    market_data_integration=True,
    regulatory_compliance=True
)

# Process financial data sources
sources = [
    "earnings_reports/",
    "https://feeds.finance.yahoo.com/rss/",
    "sec_filings.xml",
    "market_data.csv",
    "financial_news/"
]

financial_knowledge = finance_processor.build_financial_knowledge_graph(sources)

# Generate financial semantic triples
triples = financial_knowledge.extract_financial_triples()

# Export to financial analysis platforms
financial_knowledge.export_to_bloomberg_api()
financial_knowledge.export_to_refinitiv()

🏗️ Enterprise Architecture

🚀 Scalable Deployment Options

from semanticore.deployment import ScaleManager

# Kubernetes deployment configuration
k8s_config = {
    "replicas": 5,
    "resources": {
        "cpu": "2000m",
        "memory": "8Gi",
        "gpu": "1"
    },
    "auto_scaling": {
        "min_replicas": 2,
        "max_replicas": 20,
        "cpu_threshold": 70
    }
}

# Deploy to Kubernetes
scale_manager = ScaleManager()
deployment = scale_manager.deploy_kubernetes(config=k8s_config)

# Monitor performance
metrics = deployment.get_metrics()
print(f"Processing rate: {metrics.documents_per_second} docs/sec")
print(f"Memory usage: {metrics.memory_usage_percent}%")

🔧 Custom Pipeline Configuration

from semanticore.pipeline import PipelineBuilder

# Build custom processing pipeline
pipeline = PipelineBuilder() \
    .add_input_sources(["pdf", "html", "rss", "json"]) \
    .add_preprocessing([
        "text_cleaning",
        "language_detection", 
        "content_extraction"
    ]) \
    .add_semantic_processing([
        "entity_extraction",
        "relation_extraction",
        "triple_generation",
        "ontology_mapping"
    ]) \
    .add_enrichment([
        "context_expansion",
        "cross_reference_resolution",
        "metadata_enhancement"
    ]) \
    .add_output_formats([
        "knowledge_graph",
        "vector_embeddings",
        "rdf_triples",
        "json_ld"
    ]) \
    .build()

# Process data through custom pipeline
results = pipeline.process(input_sources)

📈 Performance & Monitoring

📊 Real-Time Analytics Dashboard

from semanticore.monitoring import AnalyticsDashboard

# Initialize analytics dashboard
dashboard = AnalyticsDashboard(
    port=8080,
    enable_real_time=True,
    metrics=[
        "processing_rate",
        "extraction_accuracy",
        "memory_usage",
        "knowledge_graph_growth"
    ]
)

# Start monitoring
dashboard.start()

# Custom metrics
dashboard.add_custom_metric("semantic_quality_score", 
                          lambda: core.get_semantic_quality_score())

# Alert configuration
dashboard.add_alert(
    condition="processing_rate < 100",
    action="scale_up_workers",
    notification="slack://alerts-channel"
)

🔍 Quality Assurance & Validation

from semanticore.quality import QualityAssurance

# Initialize quality assurance
qa = QualityAssurance(
    validation_rules=[
        "entity_consistency",
        "triple_validity",
        "schema_compliance",
        "ontology_alignment"
    ],
    confidence_thresholds={
        "entity_extraction": 0.8,
        "relation_extraction": 0.7,
        "triple_generation": 0.9
    }
)

# Validate processing results
validation_report = qa.validate(processing_results)
print(f"Overall quality score: {validation_report.quality_score:.2%}")
print(f"Issues found: {len(validation_report.issues)}")

# Continuous quality monitoring
qa.enable_continuous_monitoring()

🤝 Community & Support

🎓 Learning Resources

💬 Community Support

🏢 Enterprise Support

  • 🎯 Professional Services - Custom implementation and consulting
  • 📞 24/7 Support - Enterprise-grade support with SLA
  • 🏫 Training Programs - On-site and remote training for teams
  • 🔒 Security Audits - Comprehensive security assessments

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


🙏 Acknowledgments

  • 🧠 Research Community - Built upon cutting-edge research in NLP and semantic web
  • 🤝 Open Source Contributors - Hundreds of contributors making SemantiCore better
  • 🏢 Enterprise Partners - Real-world feedback and requirements shaping development
  • 🎓 Academic Institutions - Research collaborations and validation

🚀 Ready to transform your data into intelligent knowledge?

Get Started NowView ExamplesJoin Community

Languages
Python 91.4%
TypeScript 8.4%