From 4332e36b8bac33198d5b3c816a3aabbfe5dba208 Mon Sep 17 00:00:00 2001
From: eliott <eliott.sammier@tetras-libre.fr>
Date: Tue, 28 May 2024 15:39:07 +0200
Subject: [PATCH] Fix import issues for generated ontology

---
 .gitignore                                    |  3 +++
 .../macao_12/result/catalog-v001.xml          |  4 ----
 .../macao_12/result/macao_content.ttl         |  7 +++---
 tetras_extraction/macao_12/script/.gitignore  |  1 +
 tetras_extraction/macao_12/script/extract.py  | 24 ++++++++++++-------
 5 files changed, 24 insertions(+), 15 deletions(-)
 delete mode 100644 tetras_extraction/macao_12/result/catalog-v001.xml

diff --git a/.gitignore b/.gitignore
index b79602f8..d9925730 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,4 @@
+# JetBrains IDE config
 **/.idea
+# Protégé catalog file (unreliable changes)
+**/catalog-v001.xml
diff --git a/tetras_extraction/macao_12/result/catalog-v001.xml b/tetras_extraction/macao_12/result/catalog-v001.xml
deleted file mode 100644
index 5cbe3cf2..00000000
--- a/tetras_extraction/macao_12/result/catalog-v001.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<catalog prefer="public" xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
-    <group id="Folder Repository, directory=, recursive=true, Auto-Update=true, version=2" prefer="public" xml:base=""/>
-</catalog>
diff --git a/tetras_extraction/macao_12/result/macao_content.ttl b/tetras_extraction/macao_12/result/macao_content.ttl
index d2d67590..173cf3db 100644
--- a/tetras_extraction/macao_12/result/macao_content.ttl
+++ b/tetras_extraction/macao_12/result/macao_content.ttl
@@ -3,6 +3,10 @@
 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 
+<http://www.semanticweb.org/eliott/ontologies/2024/4/macao-content> a owl:Ontology ;
+    rdfs:label "macao-content" ;
+    owl:imports <http://www.semanticweb.org/eliott/ontologies/2024/4/macao> .
+
 :MosMod951 a :Module,
         owl:NamedIndividual ;
     rdfs:label "Présentation" ;
@@ -2995,6 +2999,3 @@
     :titre "> Utiliser les symboles phonétiques" ;
     rdfs:subClassOf :MosMod341 .
 
-[] a owl:Ontology ;
-    owl:imports : .
-
diff --git a/tetras_extraction/macao_12/script/.gitignore b/tetras_extraction/macao_12/script/.gitignore
index 92afa22f..7e7d3fc5 100644
--- a/tetras_extraction/macao_12/script/.gitignore
+++ b/tetras_extraction/macao_12/script/.gitignore
@@ -1,2 +1,3 @@
+# Python cache and runtime env
 __pycache__/
 venv/
diff --git a/tetras_extraction/macao_12/script/extract.py b/tetras_extraction/macao_12/script/extract.py
index 94edf473..45231b0a 100644
--- a/tetras_extraction/macao_12/script/extract.py
+++ b/tetras_extraction/macao_12/script/extract.py
@@ -1,15 +1,22 @@
 from pprint import pprint
 from typing import Optional
-from rdflib import RDFS, Graph, BNode, URIRef, Literal
-from rdflib.namespace import OWL, RDF
+
 from lxml import etree
+from rdflib import RDFS, Graph, Literal, URIRef
+from rdflib.namespace import OWL, RDF
+
+import extract_mosetp
+from common import *
 
 # All common constants are in a dedicated module
 from constants import *
-from common import *
 
-import extract_mosetp
-import extract_page
+schema_ontology_uri = URIRef(
+    "http://www.semanticweb.org/eliott/ontologies/2024/4/macao"
+)
+content_ontology_uri = URIRef(
+    "http://www.semanticweb.org/eliott/ontologies/2024/4/macao-content"
+)
 
 
 def dump_graph(g: Graph):
@@ -28,9 +35,10 @@ def export_graph(g: Graph):
     """Exports the graph to `OUT_FILE`, with OWL imports to include
     the schema file when loaded as an ontology
     """
-    imports = BNode()
-    g.add((imports, RDF.type, OWL.Ontology))
-    g.add((imports, OWL.imports, URIRef(NS)))
+    this_onto = content_ontology_uri
+    g.add((this_onto, RDF.type, OWL.Ontology))
+    g.add((this_onto, RDFS.label, Literal("macao-content")))
+    g.add((this_onto, OWL.imports, schema_ontology_uri))
     g.serialize(OUT_FILE, "turtle", base=NS)
     print(f"Exported {len(g)} triples to {OUT_FILE}.")
 
-- 
GitLab