Versione verificata
| Framework | GX-TXT 0.9.8.10-dev-031 |
|---|---|
| 3D Geometry | acq.geometry_3d 1.1.0 |
| Images | acq.image_binary 1.2.0 |
acq.pdf_document 1.0.1 | |
| Text / Source | acq.text_document 1.0.4 |
1. Un modello comune
La maggior parte usa variable_mapping=none: non vengono create variabili artificiali per byte, pagine, facce o righe solo per adattare il contenuto al modello tabellare.
2. 3D Geometry Import
acq.geometry_3d importa batch misti dei formati:
| Formato | Contract | Controllo principale |
|---|---|---|
| STL | geometry.mesh | ASCII/binary mesh envelope, triangle records, coordinate finite, bounds. |
| OBJ | geometry.mesh | vertex/face/line/point records e indici. |
| STEP/STP | model.cad | ISO 10303-21 envelope e sezioni obbligatorie; niente decoding completo CAD. |
| VTU | geometry.mesh | VTK XML UnstructuredGrid e array declarations. |
| VTP | geometry.mesh | VTK XML PolyData e topology/array declarations. |
| VTI | field.scalar_3d | ImageData 3D, extent, origin, spacing e scalar arrays. |
2.1 Nessuna conversione geometrica in acquisizione
Il modulo non esegue mesh repair, resampling, triangolazione implicita, coordinate conversion, CAD tessellation o field extraction. Il canonical payload resta byte-identical al file preservato.
2.2 Preview e Native 3D
La Preview presenta metadata, validation level e warnings; non genera necessariamente una thumbnail tessellata. Dopo import, Native 3D seleziona il Dataset direttamente dalla Session. VTI richiede array scalare e isovalue espliciti.
2.3 Dipendenze esterne OBJ
I riferimenti mtllib vengono elencati ma material/texture esterni non vengono copiati o scaricati automaticamente. La geometria resta preservata, mentre le dipendenze visuali esterne non diventano portabili per magia.
3. Image importer
acq.image_binary importa PNG, JPEG, BMP e TIFF come image.raster.
- Riconoscimento per firma contenuto, non sola estensione.
- Byte RAW autorevoli e canonical payload opaco.
- Metadata tecnici: dimensioni, mode/bands, frame count, alpha, DPI dove disponibili.
- Metadata estesi: EXIF/TIFF, PNG text, IPTC, XMP e alias comodi per camera/date/exposure/ISO.
- Nessun decoding intenzionale dell'array pixel nell'acquisition module.
L'estrazione metadata estesa usa Python/Pillow quando disponibile, ma il percorso base signature-based resta indipendente da Pillow.
4. PDF Document Import
acq.pdf_document importa ogni PDF come un Dataset indipendente document.pdf.
Il contract garantisce:
- payload PDF strutturalmente leggibile;
- byte preservati;
- Dataset ID stabile;
- SHA-256 provenance;
document.format=PDF;document.page_count >= 1.
4.1 Cosa non garantisce
Non implica automaticamente testo estraibile, OCR, pagine raster, title/author presenti o documento non cifrato.
L'importatore non esegue OCR, text extraction, rasterizzazione, repair, optimization o annotation.
4.2 Metadata PDF
Quando disponibili può registrare pdf.version, pdf.encrypted, title, author, subject, keywords, creator/producer e date.
I workflow OCR e di estrazione appartengono a consumer separati, non all'acquisizione.
5. Text and Source Code Import
acq.text_document importa testo, markup, configurazioni e source code come:
document.text;code.source, specializzazione didocument.text.
Original bytes, encoding, BOM, tabs e line endings vengono preservati. Il source code non viene mai eseguito, importato come modulo, compilato o seguito nelle sue dipendenze.
5.1 Language detection
Il modulo può riconoscere Python, Tcl, Octave/MATLAB, C/C++, shell, PowerShell, JavaScript/TypeScript, Fortran, Rust, Go, R, Julia, Ruby, Perl, Lua, PHP, SQL, Make/CMake, JSON/YAML/TOML/INI/XML/HTML/CSS/Markdown/TeX e altri casi dichiarati.
La detection usa estensione/nome, shebang, modeline e firme limitate del contenuto. È un metadata hint, non validazione sintattica.
5.2 Import as e Language sono indipendenti
Un file Python può essere preservato come document.text oppure code.source mantenendo comunque code.language=python.
5.3 Encoding
Auto controlla BOM, Python coding cookie e UTF-8; sono disponibili override espliciti per UTF-16/32, cp1252, ISO-8859-1 e altri valori dichiarati dal modulo.
Gli override Language/Encoding si applicano al run corrente; riportali ad auto prima di un batch misto se non vuoi forzare tutti i file allo stesso modo.
6. Copy into Session e RAW esterno
Per text/source il framework offre anche la possibilità di mantenere/riferire l'originale esterno come RAW quando esplicitamente scelto; la copia in Session resta il comportamento normale. Le risorse esterne vanno verificate attraverso le funzioni pubbliche di metadata/integrità, non date per permanenti.
7. Perché non creare finte Variables?
Una geometria STEP, un'immagine JPEG o un PDF non sono tabelle solo perché GX-TXT supporta tabelle. Questi importatori dichiarano variable_mapping=none e mantengono un contract file-shaped appropriato.
Un consumer successivo può creare un Dataset numerico derivato quando esiste una trasformazione scientifica esplicita: per esempio OCR, digitalizzazione, estrazione tabella o decoding.
8. Preservazione e provenance
Acquisition Handler API lascia a CORE:
- RAW snapshot;
- Dataset Registry;
- SHA-256;
- Dataset Metadata lifecycle;
- duplicate-ID protection;
- rollback delle importazioni fallite.
Il plugin riconosce il formato, valida ciò che è nel suo scope, produce/copia il canonical payload e restituisce un descriptor. Non deve scrivere direttamente metadata/datasets.ini.
9. Limiti di validazione non equivalgono a certificazione scientifica
Per STEP e VTK, per esempio, l'importatore può verificare envelope e metadata strutturali senza decodificare ogni entità CAD o ogni array scientifico. Un import riuscito significa che la sorgente è stata riconosciuta e preservata secondo il validation scope dichiarato; non che qualunque consumer futuro sia obbligato a poterla renderizzare.
10. Guida rapida alla scelta
| Sorgente | Importer | Contract |
|---|---|---|
| STL / OBJ / VTU / VTP | 3D Geometry Import | geometry.mesh |
| STEP / STP | 3D Geometry Import | model.cad |
| VTI scalar field | 3D Geometry Import | field.scalar_3d |
| PNG / JPEG / BMP / TIFF | Image importer | image.raster |
| PDF Document Import | document.pdf | |
| Testo / markup / config | Text and Source Code Import | document.text |
| Source code | Text and Source Code Import | code.source |