mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
Four findings from the automated review, all reproduced first. 1. The name fallback minted invalid IRIs. `_term_iri` pasted a raw name onto the ontology base, so a class named "Customer Account" produced <https://example.org/onto/Customer Account>. rdflib only warns about the space, Oxigraph rejects it with "Invalid IRI code point". That is the same class of defect this PR set out to fix, introduced by the fix itself. Local names are now percent-encoded. 2. `improve_coherence` raised AttributeError. It lives on OntologyOptimizer, which holds no namespace manager, so the URI fallback I added there crashed on any ontology carrying a class without a URI. It now mints from the ontology's own base through a shared module-level helper. 3. `owl:Thing` was treated as an absolute IRI. It matches the generic scheme grammar, so `_is_absolute_iri` accepted it and domains and ranges came out as the term <owl:Thing> rather than <http://www.w3.org/2002/07/owl#Thing>. This is the live path: stage 4 of the generator assigns ["owl:Thing"] to object properties with no inferred endpoints. Absoluteness is now decided on a real scheme, and the well-known prefixes expand. 4. Unusable property entries were dropped in silence. Non-dictionary entries and definitions carrying no type are now named in a warning. 6 further tests, including a strict-parser check through Oxigraph, which is what catches the space that rdflib waves through.