mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
docs(reference): fix class names and expand API coverage across 8 modules
- normalize: replace non-existent DataNormalizer with correct classes (TextNormalizer, EntityNormalizer, DateNormalizer, NumberNormalizer, DataCleaner) - deduplication: replace non-existent EntityResolver with correct API (DuplicateDetector, EntityMerger, SimilarityCalculator, ClusterBuilder) - reasoning: replace non-existent ReasoningEngine/DeductiveEngine/AbductiveEngine with correct classes (Reasoner, GraphReasoner, ReteEngine, SPARQLReasoner, DatalogReasoner, TemporalReasoningEngine, ExplanationGenerator) - export: fix ArangoExporter->ArangoAQLExporter, GraphMLExporter->GraphExporter; add ArrowExporter, DistanceExporter, ReportGenerator - conflicts: fix ResolutionStrategy enum values and add SourceTracker, ConflictAnalyzer, InvestigationGuideGenerator - change_management: add OntologyVersionManager, VersionStorage backends, compute_checksum/verify_checksum - embeddings: add TextEmbedder, GraphEmbeddingManager, VectorEmbeddingManager, all provider stores, all pooling strategies - visualization: fix broken See Also href from evals to explorer
This commit is contained in:
+207
-49
@@ -1,10 +1,37 @@
|
||||
---
|
||||
title: "Export Module"
|
||||
description: "Export knowledge graphs to RDF (Turtle, JSON-LD, N-Triples, XML), Parquet, ArangoDB AQL, OWL, and CSV."
|
||||
description: "Export knowledge graphs to RDF, Parquet, LPG, ArangoDB AQL, CSV, GraphML, OWL, JSON-LD, and vector formats."
|
||||
icon: "file-export"
|
||||
---
|
||||
|
||||
> Export knowledge graphs and data to multiple formats with W3C-compliant serialization.
|
||||
> Export knowledge graphs and embeddings to 12+ formats with W3C-compliant serialization.
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
The **Export Module** serializes knowledge graphs to every downstream format — semantic web standards, analytics pipelines, graph databases, and vector stores.
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="RDFExporter" icon="circle-nodes">
|
||||
Turtle, JSON-LD, N-Triples, RDF/XML with namespace management.
|
||||
</Card>
|
||||
<Card title="ParquetExporter" icon="table">
|
||||
Columnar storage for Spark, BigQuery, Databricks, Snowflake.
|
||||
</Card>
|
||||
<Card title="LPGExporter" icon="diagram-project">
|
||||
Labeled Property Graph — Cypher CREATE statements for Neo4j and Memgraph.
|
||||
</Card>
|
||||
<Card title="ArangoAQLExporter" icon="database">
|
||||
ArangoDB AQL INSERT statements for multi-model graph databases.
|
||||
</Card>
|
||||
<Card title="GraphExporter" icon="chart-network">
|
||||
GraphML, GEXF, DOT formats for visualization tools like Gephi.
|
||||
</Card>
|
||||
<Card title="OWLExporter" icon="sitemap">
|
||||
OWL 2.0 ontology export in Turtle, XML, and JSON-LD.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
---
|
||||
|
||||
@@ -20,18 +47,106 @@ rdf = exporter.export_to_rdf(graph, format="turtle")
|
||||
exporter.export_to_file(graph, "output.ttl", format="turtle")
|
||||
|
||||
# JSON-LD
|
||||
rdf = exporter.export_to_rdf(graph, format="json-ld")
|
||||
exporter.export_to_file(graph, "output.jsonld", format="json-ld")
|
||||
|
||||
# N-Triples
|
||||
rdf = exporter.export_to_rdf(graph, format="nt")
|
||||
exporter.export_to_file(graph, "output.nt", format="nt")
|
||||
|
||||
# RDF/XML
|
||||
rdf = exporter.export_to_rdf(graph, format="xml")
|
||||
exporter.export_to_file(graph, "output.xml", format="xml")
|
||||
```
|
||||
|
||||
Namespace management:
|
||||
|
||||
```python
|
||||
from semantica.export import NamespaceManager, RDFSerializer
|
||||
|
||||
ns_manager = NamespaceManager()
|
||||
ns_manager.register("ex", "http://example.org/")
|
||||
ns_manager.register("schema", "https://schema.org/")
|
||||
|
||||
exporter = RDFExporter(namespace_manager=ns_manager)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## OWL Exporter
|
||||
## ParquetExporter
|
||||
|
||||
For Spark, BigQuery, Databricks, and Snowflake analytics pipelines:
|
||||
|
||||
```python
|
||||
from semantica.export import ParquetExporter
|
||||
|
||||
exporter = ParquetExporter(compression="snappy") # snappy | gzip | brotli | zstd | lz4
|
||||
|
||||
# Export nodes and edges separately
|
||||
exporter.export_nodes(graph, "nodes.parquet")
|
||||
exporter.export_edges(graph, "edges.parquet")
|
||||
|
||||
# Export full graph (partitioned)
|
||||
exporter.export(graph, output_dir="graph_parquet/", partition_by="node_type")
|
||||
```
|
||||
|
||||
Parquet schema is explicitly typed with PyArrow for clean Spark/BigQuery ingestion.
|
||||
|
||||
---
|
||||
|
||||
## LPGExporter
|
||||
|
||||
Labeled Property Graph — Cypher CREATE statements for Neo4j and Memgraph:
|
||||
|
||||
```python
|
||||
from semantica.export import LPGExporter
|
||||
|
||||
exporter = LPGExporter()
|
||||
|
||||
# Generate Cypher
|
||||
cypher = exporter.to_cypher(graph)
|
||||
exporter.export(graph, "import.cypher", format="cypher")
|
||||
|
||||
# Generate MERGE statements (idempotent)
|
||||
cypher_merge = exporter.to_cypher(graph, use_merge=True)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ArangoAQLExporter
|
||||
|
||||
ArangoDB AQL INSERT statements for vertex and edge collections:
|
||||
|
||||
```python
|
||||
from semantica.export import ArangoAQLExporter
|
||||
|
||||
exporter = ArangoAQLExporter(
|
||||
vertex_collection="entities",
|
||||
edge_collection="relationships"
|
||||
)
|
||||
|
||||
aql = exporter.export(graph) # returns AQL string
|
||||
exporter.export_to_file(graph, "import.aql")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## GraphExporter
|
||||
|
||||
GraphML, GEXF, and DOT formats for visualization tools:
|
||||
|
||||
```python
|
||||
from semantica.export import GraphExporter
|
||||
|
||||
exporter = GraphExporter()
|
||||
|
||||
exporter.export(graph, "graph.graphml", format="graphml") # Gephi, yEd
|
||||
exporter.export(graph, "graph.gexf", format="gexf") # Gephi streaming
|
||||
exporter.export(graph, "graph.dot", format="dot") # Graphviz
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## OWLExporter
|
||||
|
||||
OWL 2.0 ontology export:
|
||||
|
||||
```python
|
||||
from semantica.export import OWLExporter
|
||||
@@ -39,62 +154,105 @@ from semantica.export import OWLExporter
|
||||
exporter = OWLExporter()
|
||||
exporter.export(ontology, path="ontology.ttl", format="turtle")
|
||||
exporter.export(ontology, path="ontology.owl", format="xml")
|
||||
exporter.export(ontology, path="ontology.json", format="json-ld")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Parquet Exporter
|
||||
|
||||
For Spark, BigQuery, and Databricks pipelines.
|
||||
|
||||
```python
|
||||
from semantica.export import ParquetExporter
|
||||
|
||||
exporter = ParquetExporter()
|
||||
|
||||
# Export nodes
|
||||
exporter.export_nodes(graph, "nodes.parquet")
|
||||
|
||||
# Export edges
|
||||
exporter.export_edges(graph, "edges.parquet")
|
||||
|
||||
# Export full graph (partitioned)
|
||||
exporter.export(graph, output_dir="graph_parquet/", partition_by="node_type")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ArangoDB AQL Exporter
|
||||
|
||||
```python
|
||||
from semantica.export import ArangoExporter
|
||||
|
||||
exporter = ArangoExporter()
|
||||
aql = exporter.export(graph) # returns ready-to-run INSERT statements
|
||||
exporter.export_to_file(graph, "arango_import.aql")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## CSV Exporter
|
||||
## CSVExporter
|
||||
|
||||
```python
|
||||
from semantica.export import CSVExporter
|
||||
|
||||
exporter = CSVExporter()
|
||||
exporter = CSVExporter(delimiter=",")
|
||||
exporter.export_nodes(graph, "nodes.csv")
|
||||
exporter.export_edges(graph, "edges.csv")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## GraphML Exporter
|
||||
## VectorExporter
|
||||
|
||||
Export embedding vectors for external vector stores:
|
||||
|
||||
```python
|
||||
from semantica.export import GraphMLExporter
|
||||
from semantica.export import VectorExporter
|
||||
|
||||
exporter = GraphMLExporter()
|
||||
exporter.export(graph, "graph.graphml")
|
||||
exporter = VectorExporter()
|
||||
exporter.export(embeddings, metadata, "vectors.json", format="json")
|
||||
exporter.export(embeddings, metadata, "vectors.npy", format="numpy")
|
||||
|
||||
# FAISS-compatible binary format
|
||||
exporter.export(embeddings, metadata, "vectors.faiss", format="faiss")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ArrowExporter
|
||||
|
||||
Apache Arrow IPC format for zero-copy inter-process transfer:
|
||||
|
||||
```python
|
||||
from semantica.export import ArrowExporter
|
||||
|
||||
exporter = ArrowExporter()
|
||||
exporter.export(graph, "graph.arrow")
|
||||
```
|
||||
|
||||
Requires `pyarrow`. Falls back gracefully if not installed.
|
||||
|
||||
---
|
||||
|
||||
## DistanceExporter
|
||||
|
||||
Export semantic distance matrices from Distance Intelligence:
|
||||
|
||||
```python
|
||||
from semantica.export import DistanceExporter
|
||||
|
||||
exporter = DistanceExporter()
|
||||
exporter.export_matrix(distance_matrix, node_labels, "distances.csv")
|
||||
exporter.export_ego(ego_neighborhood, center_node="Apple Inc.", path="ego.json")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ReportGenerator
|
||||
|
||||
Generate human-readable reports from graph analytics:
|
||||
|
||||
```python
|
||||
from semantica.export import ReportGenerator
|
||||
|
||||
generator = ReportGenerator()
|
||||
|
||||
# HTML report
|
||||
generator.generate(graph, analytics_result, "report.html", format="html")
|
||||
|
||||
# Markdown
|
||||
generator.generate(graph, analytics_result, "report.md", format="markdown")
|
||||
|
||||
# JSON
|
||||
generator.generate(graph, analytics_result, "report.json", format="json")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Convenience Functions
|
||||
|
||||
```python
|
||||
from semantica.export import (
|
||||
export_rdf, export_parquet, export_csv, export_lpg,
|
||||
export_arango, export_graph, export_owl, export_vector,
|
||||
export_arrow, generate_report
|
||||
)
|
||||
|
||||
export_rdf(graph, "output.ttl", format="turtle")
|
||||
export_parquet(graph, "output/", compression="snappy")
|
||||
export_csv(graph, "nodes.csv", target="nodes")
|
||||
export_lpg(graph, "import.cypher", method="cypher")
|
||||
export_arango(graph, "import.aql")
|
||||
export_graph(graph, "graph.graphml", format="graphml")
|
||||
```
|
||||
|
||||
---
|
||||
@@ -102,13 +260,13 @@ exporter.export(graph, "graph.graphml")
|
||||
## Selective Export
|
||||
|
||||
```python
|
||||
# Export subgraph by node IDs
|
||||
# Export a subgraph
|
||||
subgraph = graph.subgraph(node_ids=["apple_inc", "steve_jobs"])
|
||||
exporter.export_to_file(subgraph, "subgraph.ttl", format="turtle")
|
||||
export_rdf(subgraph, "subgraph.ttl", format="turtle")
|
||||
|
||||
# Export by node type
|
||||
# Export nodes by type
|
||||
org_nodes = graph.filter(node_type="Organization")
|
||||
exporter.export_nodes(org_nodes, "organizations.parquet")
|
||||
export_parquet(org_nodes, "organizations.parquet")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user