Skip to main content
Second Brain · Personal File Upload

Your Documents, Semantically Indexed

Upload any document directly into your private knowledge space — PDF, Word, CSV, or image. Files are semantically indexed, auto-tagged, and linked to graph nodes, stored encrypted on-premise.

§1 — Supported formats & what happens on upload

Every file goes through a semantic ingestion pipeline — not just storage.

📄

PDF & Word

Full text extraction, section detection, and concept recognition. Each meaningful paragraph maps to one or more graph nodes.

📊

CSV & Excel

Tabular data is parsed row-by-row into RDF triples. Column headers become property URIs — the dataset is immediately SPARQL-queryable.

🖼️

Images (OCR)

On-premise OCR extracts text from scanned documents, whiteboards, and diagrams. Extracted text is indexed exactly like native text files.

🔒

Encrypted on-premise storage

Files are AES-256 encrypted at rest in MinIO, inside your infrastructure perimeter. No file content ever leaves the private cluster.

🏷️

Auto-tagging

The on-premise LLM assigns semantic tags from your ontology to every uploaded file, linking it to existing nodes in your personal graph.

🔗

Graph node linking

Each uploaded file becomes an arcaq:PersonalFile resource with edges to its auto-detected concepts — navigable from the graph view.

§2 — RDF data model

Each file is a first-class RDF resource in your private named graph — fully queryable and portable.

# Named graph: http://arcaq.com/personal/{user_id} <file:abc123> a arcaq:PersonalFile ; arcaq:fileName "Q1-Report.pdf" ; arcaq:fileType "application/pdf" ; arcaq:fileSizeBytes 248704 ; arcaq:ownedBy <user:alice> ; arcaq:uploadedAt "2026-05-15T09:12:00Z"^^xsd:dateTime ; arcaq:encryptedStore "minio://personal/alice/abc123.enc" ; arcaq:autoTaggedFor <concept:Q1Strategy> ; arcaq:autoTaggedFor <concept:FinancialReport> ; rdfs:label "Q1-Report.pdf" .

§3 — API reference

All file operations are exposed via the Second Brain REST API under /second-brain/files.

MethodEndpointDescription
POST/second-brain/filesUpload a file (multipart/form-data) — triggers async ingestion pipeline
GET/second-brain/filesList all personal files with metadata and auto-tags
GET/second-brain/files/{id}Get a single file resource with its graph links
GET/second-brain/files/{id}/downloadStream the original (decrypted) file back to the client
DELETE/second-brain/files/{id}Delete file and all associated RDF triples from the personal graph

Make every document a knowledge node

Stop searching in folder trees. Upload once — your documents become queryable graph nodes, linkable to every concept in your Second Brain.