StichtingRIONED / GWSW_Apps

GWSW Apps - Algemeen (beschrijvingen en reviews)
https://stichtingrioned.github.io/GWSW_Apps
MIT License
3 stars 0 forks source link

Omzetter GWSW naar IMBOR SW #93

Closed MarinusVonhof closed 4 days ago

MarinusVonhof commented 10 months ago

Nieuwe module toevoegen aan GWSW Apps voor de export van IMBOR-Stedelijk Water datamodellen. Aanroep onder https://apps.gwsw.nl/item_publish_imbor

Modeldetails IMBOR

Afgeleid uit kern- en vocabulaire-datamodel

Voorbeelden vanuit kern-model IMBOR, versie 20221025

Classes, voorbeeld Rioolput

imbor:095ecf95-3717-43ec-bc36-8e23e692def9 # neutrale/taalonafhankelijke identificatie
        rdf:type         owl:Class , sh:NodeShape ;
        rdfs:seeAlso     imbor-term:100c3a15-3342-46fd-9f48-843c076571e9 ; # verwijst naar vocabulaire-model
        rdfs:subClassOf  imbor:b7168388-9eb9-4c95-b35e-1ba2660849e8 ;
        dash:abstract    false ; # Markeer de abstracte klasse (niet in datasets), moet dan "true" zijn?
        skos:definition  "Constructie toegang gevend tot het rioolstelsel."@nl  ;
        skos:prefLabel   "Rioolput"@nl  ;
        sh:property      imbor:0579a2c5-bff7-417f-860c-8299a806c419 ; # verwijst naar onderscheidend kenmerk "Functie"
        sh:property      imbor:8e3ccb03-a015-420d-a646-bfd05ae734bb ; # verwijst naar relatie "hasPart"
        sh:property      imbor:00910ff5-f2c7-4f22-ad64-787552e3dd38 ; # verwijst naar referentie "Maaiveldschematisering"
        sh:property      imbor:b6ac17af-8019-4d03-9a72-096b51b0cebe ; # verwijst naar waarde "LengteToegang"
        sh:property      imbor:7ad9fafd-6eb1-4853-9b23-2e8f0e7003d4 . # verwijst naar waarde "Aantal i.e. recreatie-eenheden."
        # enzovoort: totaal 62 objects bij sh:property

Opmerkingen:

Uitwerking GWSW Export naar IMBOR

Onderscheidend kenmerk Functie in IMBOR-vorm

imbor:0579a2c5-bff7-417f-860c-8299a806c419
        rdf:type                sh:PropertyShape ;
        skos:prefLabel          "Rioolput voert uit Leidingen aansluiten"@nl ;
        sh:path                 nen2660:executes ; # verwijst naar de rdf:Property (analoog aan gwsw:functie)
        sh:qualifiedMaxCount    1 ;
        sh:qualifiedMinCount    0 ;
        # verwijst naar de (functie) klasse "Leidingen aansluiten":
        sh:qualifiedValueShape  [ sh:class  imbor:8a328d2a-120f-4fd7-a3ab-eed6a61c2539 ] . 

Opmerkingen:

(20240308) IMBOR hanteert de functie voor lokale definities. Daarmee kan een IMBOR-object lokaal een andere betekenis krijgen. Dat is principieel heel anders dan het GWSW, daar is een eenduidige definitie/betekenis bij de objectnaam een voorwaarde. Afgesproken om in de omzetter de IMBOR-syntax op te nemen, mogelijk met sh:qualifiedMinCount 1?

Relatie hasPart in IMBOR-vorm

imbor:8e3ccb03-a015-420d-a646-bfd05ae734bb
        rdf:type                sh:PropertyShape ;
        skos:prefLabel          "Rioolput heeft deel Duikschot"@nl ;
        sh:path                 nen2660:hasPart ; # verwijst naar de rdf:Property
        sh:qualifiedMaxCount    1 ;
        sh:qualifiedMinCount    0 ;
         # verwijst naar de klasse "Duikschot":
        sh:qualifiedValueShape  [ sh:class  imbor:fea5d169-07bd-47eb-8af9-ec0aae99936e ] .

Uitwerking GWSW Export naar IMBOR

(20240308) IMBOR wordt uitgebreid met de inverse relatie (is ondertussen uitgewerkt)

Is die inverse trouwens niet noodzakelijk voor kardinaliteits definities??

Kenmerk - hasReference in IMBOR-vorm

imbor:00910ff5-f2c7-4f22-ad64-787552e3dd38
        rdf:type                sh:PropertyShape ;
        skos:prefLabel          "maaiveldschematisering vastgezet op Rioolput"@nl ;
        sh:path                 imbor:f4c31d93-4ed7-47f2-8b91-a24247de7e3d ; # is type rdf:Property
        sh:qualifiedMaxCount    1 ;
        sh:qualifiedMinCount    0 ;
        # verwijst naar de klasse "RioolputMaaiveldschematisering", een subtype van nen2660:EnumerationType
        sh:qualifiedValueShape  [ sh:class  imbor:90b87700-9800-4394-89d5-377291331901 ] .

Uitwerking GWSW Export naar IMBOR

En de property als object van sh:path:

imbor:f4c31d93-4ed7-47f2-8b91-a24247de7e3d
        rdf:type         rdf:Property ;
        rdfs:seeAlso     imbor-term:8e33d96c-1640-4edc-9123-87448cb9176f ;
        skos:definition  "Aanduiding schematisering maaiveld bij uitstroom van water via de putdeksel."@nl ;
        skos:note        "Enumeratie"@nl ;
        skos:prefLabel   "maaiveldschematisering"@nl .

Uitwerking GWSW Export naar IMBOR

En de enumeratie: "Gekneveld" is een individu van type "RioolputMaaiveldschematisering"

imbor:90b87700-9800-4394-89d5-377291331901 # De klasse "RioolputMaaiveldschematisering"
        rdf:type         owl:Class ;
        rdfs:seeAlso     imbor-term:2dfe6c5a-74cf-48a5-9f53-97f1cf50d655 ;
        rdfs:subClassOf  nen2660:EnumerationType ;
        skos:definition  "Het enumeratietype RioolputMaaiveldschematisering is de naam voor de domeinwaardenlijst van de klasse Rioolput en het attribuut maaiveldschematisering."@nl ;
        skos:prefLabel   "RioolputMaaiveldschematisering"@nl ;
        imbor:typeLijst  "Enumeratielijst"@nl .

imbor-domeinwaarde:184c2d2e-6990-4b84-a334-875dc4c0b09b # Het individu "Gekneveld"
        rdf:type         imbor:90b87700-9800-4394-89d5-377291331901 ;
        rdfs:seeAlso     imbor-term:90139b60-08e5-4dd8-8899-0af7882c6505 ;
        skos:definition  "Een maaiveldschematisering die op een bepaalde manier gesloten is met knevels, dat wil zeggen met voorzieningen bedoeld om een afdekking af te dichten."@nl ;
        skos:prefLabel   "Gekneveld"@nl .

imbor:90b87700-9800-4394-89d5-377291331901-list-0 # Maak een lijst met individuen
        rdf:type   rdf:List ;
        rdf:first  imbor-domeinwaarde:184c2d2e-6990-4b84-a334-875dc4c0b09b ;
        rdf:rest   imbor:90b87700-9800-4394-89d5-377291331901-list-1 .

imbor:00910ff5-f2c7-4f22-ad64-787552e3dd38 # de PropertyShape, zie "Kenmerk - hasReference in IMBOR-vorm"
        sh:in   imbor:90b87700-9800-4394-89d5-377291331901-list-0 .

Opmerkingen:

(20240308) In IMBOR staat sh:qualifiedValueShape als achtervang, voor het geval het individu niet voorkomt. In de omzetter is sh:in voldoende (GWSW-individuen zijn er altijd)

Kenmerk - hasAspect in IMBOR-vorm

imbor:7ad9fafd-6eb1-4853-9b23-2e8f0e7003d4
        rdf:type            sh:PropertyShape ;
        skos:prefLabel      "aantal i.e. recreatie vastgezet op Rioolput"@nl ;
        sh:datatype         xsd:positiveInteger ;
        sh:maxCount         1 ;
        sh:minCount         0 ;
        sh:path             imbor:ffb7311e-ade9-46e4-bd4a-4eec7ce10789 ; # verwijst naar de rdf:Property
        imbor:imborEenheid  imbor:9683b819-fe3b-4205-a4b2-52c1246fdf2c . # Verwijst naar klasse "Integer"

Opmerkingen:

(20240312) imbor:imborEenheid gaat vervallen, niet meenemen in de omzetter

En de property als object van sh:path:

imbor:ffb7311e-ade9-46e4-bd4a-4eec7ce10789
        rdf:type         rdf:Property ;
        rdfs:seeAlso     imbor-term:c3f45eea-738c-4a37-906b-d872192e0c08 ;
        skos:definition  "Aantal i.e. recreatie-eenheden."@nl ;
        skos:note        "Vrij invoerveld"@nl ;
        skos:prefLabel   "aantal i.e. recreatie"@nl .

Uitwerking GWSW Export naar IMBOR

Voorbeelden vocabulaire IMBOR

Bij Rioolput: rdfs:seeAlso imbor-term:100c3a15-3342-46fd-9f48-843c076571e9 Verwijst naar vocabulaire-concept:

imbor-term:100c3a15-3342-46fd-9f48-843c076571e9
        rdf:type         skos:Concept ;
        skos:broader     imbor-term:291e6f76-66af-4c3c-b37f-12c4f5675429 ; # Verwijst naar supertype "Put"
        skos:definition  "Constructie toegang gevend tot het rioolstelsel."@nl ;
        skos:inScheme    imbor-term:term-schema ;
        skos:prefLabel   "Rioolput"@nl .

Opmerkingen

(20240308) De vocabulaire wordt voor IMBOR automatisch afgeleid, maar dat gebeurt op basis van de Access-brondata. In omzetter de vocabulaire meeleveren.

Uitwerking GWSW Export naar IMBOR Conform voorbeeld, behalve skos:inScheme

MarinusVonhof commented 4 days ago

Dit issue is verhuisd naar de repos GWSW-IMBOR