Serialize a DoclingDocument to a Neo4j graph: Document + Page + Element nodes with dynamic specific labels (SectionHeader, Paragraph, Table, Figure, …), plus HAS_ROOT / PARENT_OF / NEXT / ON_PAGE edges. Replace-on- write for idempotent re-ingestion. The reader returns the verbatim document_json stored on the Document node — reconstruction from graph nodes is deferred to v0.6. Wired into AnalysisService._finalize_analysis: runs after conversion, degrades gracefully by default, fails fast when neo4j_required is set. Refs #186
26 lines
690 B
Python
26 lines
690 B
Python
"""Neo4j storage adapter — graph-native document structure.
|
|
|
|
Provides a thin driver wrapper, idempotent schema bootstrap, and
|
|
walkers between DoclingDocument and the graph model.
|
|
"""
|
|
|
|
from infra.neo4j.driver import Neo4jDriver, close_driver, get_driver
|
|
from infra.neo4j.schema import bootstrap_schema
|
|
from infra.neo4j.tree_reader import (
|
|
delete_document,
|
|
document_exists,
|
|
read_document_json,
|
|
)
|
|
from infra.neo4j.tree_writer import TreeWriteResult, write_document
|
|
|
|
__all__ = [
|
|
"Neo4jDriver",
|
|
"TreeWriteResult",
|
|
"bootstrap_schema",
|
|
"close_driver",
|
|
"delete_document",
|
|
"document_exists",
|
|
"get_driver",
|
|
"read_document_json",
|
|
"write_document",
|
|
]
|