2026-05-28 RAMOSE il gran visir
La Novitade
Section titled “La Novitade”HERITRACE
Section titled “HERITRACE”fix(search): close entity search dropdown on outside click
Previously the dropdown only closed when clicking "Create new entity". Add focusout handler on the search input and a document-level mousedown fallback so clicking anywhere outside the dropdown dismisses it.
CHANGES
Section titled “CHANGES”fix: Fix metadata extraction to follow P1_is_identified_by two levels deep so P190_has_symbolic_content reaches appellations
Update FOLDER_TO_ID for renamed SharePoint folders (vetrina_8_basso split into _2, _3)
fix(zenodo): determine license directly from meta.ttl instead of KG entity ID matching
The previous approach queried the knowledge graph with entity IDs to build a licensed_stages set, which broke for grouped entities (98a/b/c) whose base ID didn't match any license URI. Replace with two-pass approach in create_stage_zip: first scan each folder's meta.ttl for license triples, then zip all files accordingly.
Also adds a rate-limit sleep between Zenodo uploads.
feat(zenodo): add publish-drafts subcommand for two-phase upload workflow
Uploads without --publish now save draft IDs to drafts.json, allowing
deferred batch publishing via publish-drafts
feat(zenodo): add crash-safe resume for upload and publish
RAMOSE
Section titled “RAMOSE”feat: expand SKG-IF converter to full product data model
Add proof-of-concept .hf configurations for ORKG and Wikidata, plus documentation page
fix(skg-if): single-entity endpoints now return 404 when the entity is not found
refactor(skg-if): move skgif_addon into the ramose package
The addon loader now supports dotted names (e.g. ramose.skgif_addon), resolved as standard Python package imports rather than filesystem paths.
A getting-started guide is added to the SKG-IF documentation.
oc-botwatch
Section titled “oc-botwatch”feat: classify traffic by service (web, api, sparql)
https://doi.org/10.5281/zenodo.20289872
Domande
Section titled “Domande”Aldrovandi
Section titled “Aldrovandi”- Ho ad aggiornare le shapes di CHAD-AP utilizzando lo shacl-extracto, ma la generazione crasha perché il namespace di edtf è utilizzato come prefisso senza essere dichiarato. Ari, come hai fatto ad aggiornare le shapes?
- Ho aggiornato le shapes manualmente per gestire edtf e la validazione ora passa. Mi ha detto Seba che il problema è complesso, perché Widoco toglie automaticamente i prefissi non utilizzati (noi li utilizziamo ma nella descrizione).
- Ho notato che la primary source su Zenodo contiene i CSV, ma non il KG generato da Morph-kgc. È voluto? https://doi.org/10.5281/zenodo.19898905
SKG-IF
Section titled “SKG-IF”-
In base a cosa vengono messe le maiuscole o le minuscole nelle colone delle label. Ho visto che Expression aveva la maiuscola, ma in https://opencitations.github.io/ontology/current/ontology.html ha la minuscola.
-
SKG-O usa fabio:Software, ma non è davvero definito in fabio, che invece definisce fabio:ComputerProgram
-
fabio:ComputerProgram non è definito in oco
-
Riutilizzare delle classi che in Fabio sono a livello Expression per utilizzarle a livello Work in SKG-O non è un errore logico?
-
Perché SKG-O utilizza pro:isRelatedToRoleInTime con lo stesso significato di pro:isDocumentContextFor, ma solo per i research products, mentre usa pro:isDocumentContextFor per venues?
-
Devo inserire tutte le classi e le proprietà che noi non mappiamo?
-
Noi per campi tipo abstract dovremmo restituire il campo vuoto o non dovremmo proprio restituire il campo?
Quel topic_1 dovrebbe essere un local_identifier, quindi un IRI, giusto? In ogni caso, la documentazione è incompleta, mancano tutte le altre proprietà dei topic, come ad esempio gli identificatori esterni e le label.In generale, a me sembra che la documentazione testuale non sia aggiornata, per esempio, declared affiliations, funding, relevant organizations, nella documentazione testuale sono liste di identificatori, mentre nella documentazione OpenAPI sono liste di oggetti.
C’è un’inconsistenza tra il comportamento di RAMOSE e la specifica SKG-IF per quanto riguarda le query che non trovano nessun risultato. RAMOSE attualmente ritorna a lista vuota, mentre SKG-IF dice che bisogna ritornare 404. Al momento sto gestendo la differenza via addon.
Secondo me c’è anche un’inconsistenza all’interno di SKG-IF, nel senso che SKG-IF dice di ritornare una lista vuota per operazioni che ritornano liste e 404 per operazioni su entità singole (https://skg-if.github.io/api/openapi/ver/current/skg-if-openapi.yaml).
Mi sono accorto che le shapes di skg-if validano schemi non ammessi, come zenodo o sha, e che validano valori che non rispettano lo schema. Il primo problema si risolve con
* datacite:usesIdentifierScheme -[1]-> {datacite:doi datacite:isbn datacite:orcid}sintassi già supportata dall’extractor. Il secondo?