Gewässer 2023#

Diese Seite: Ausführlichere Erklärung zum Gewässer-Beispiel aus dem Aufsatz http://jbusse.de/akwi2023.

import sys
sys.path.append('../py/')
from gd06 import GenDifS_Map

mindmap = "Gewässer_2023_DE"  # filename without .mm extension 

SKOS#

o = GenDifS_Map(f"../mm/{mindmap}.mm", 
                pattern = [ "skos" ],
                verbose = 1)
o.compile()
__init__: GenDifS 0.63 (2023-08-01, 2023-09-08)
lexer: Lexer: found #1 start nodes: ['TAXONOMY Gewaesser_DE']
codegen: codegen: generated 4 entries in `ttl_records`
get_code: Collected 21 code lines, pattern: ['skos', 'ALL']
rdflib_parse: rdflib: 29 triples.
#update_mindmap_filename = f"../mm/{mindmap}.mm"
#o.mindmap.write(update_mindmap_filename,pretty_print=True)
#print(f"updated mindmap {update_mindmap_filename}")
len(o.rdflib_graph.serialize(destination=f"../ttl/{mindmap}_skos.ttl"))
29

Download SKOS: ../ttl/Gewässer_2023_DE_skos.ttl

print(o.ttl_code)
# __init__
# ALL: 
@prefix ex: <http://example.net/namespace/ex#> .
@prefix cpt: <http://example.net/namespace/cpt#> .
@prefix sheet: <http://example.net/namespace/sheet#> .
@prefix : <http://example.net/namespace/default#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix gendifs: <http://jbusse.de/gendifs#> .


# __init__
# ALL: 
[ rdf:type owl:Ontology ] .



# __init__
# skos: 
[ owl:imports <http://www.w3.org/2004/02/skos/core> ] .



# SUBTAXON.TAXONOMY.c
# skos: 
cpt:Gewässer
   a skos:Concept ;
   skos:broader cpt:topConcept .


# SUBTAXON.ISA.c
# skos: 
cpt:Meer
   a skos:Concept ;
   skos:broader cpt:Gewässer .


# SUBTAXON.ISA.c
# skos: 
cpt:Binnengewässer
   a skos:Concept ;
   skos:broader cpt:Gewässer .


# BY.d
# skos: define a skos:Collection
cpt:Binnengewässer_BY_None_SOME_Strömungsverhalten 
   a skos:Collection .



# SUBTAXON.BY.d
# skos: 
cpt:Binnengewässer_BY_None_SOME_Strömungsverhalten
   skos:member cpt:stehendes_Binnengewässer .


# SUBTAXON.BY.c
# skos: 
cpt:stehendes_Binnengewässer
   a skos:Concept ;
   skos:broader cpt:Binnengewässer .


# SUBTAXON.BY.d
# skos: 
cpt:Binnengewässer_BY_None_SOME_Strömungsverhalten
   skos:member cpt:fließendes_Binnengewässer .


# SUBTAXON.BY.c
# skos: 
cpt:fließendes_Binnengewässer
   a skos:Concept ;
   skos:broader cpt:Binnengewässer .


# BY.d
# skos: define a skos:Collection
cpt:Binnengewässer_BY_None_SOME_Entstehungstyp 
   a skos:Collection .



# SUBTAXON.BY.d
# skos: 
cpt:Binnengewässer_BY_None_SOME_Entstehungstyp
   skos:member cpt:natürliches_Binnengewässer .


# SUBTAXON.BY.c
# skos: 
cpt:natürliches_Binnengewässer
   a skos:Concept ;
   skos:broader cpt:Binnengewässer .


# SUBTAXON.BY.d
# skos: 
cpt:Binnengewässer_BY_None_SOME_Entstehungstyp
   skos:member cpt:künstliches_Binnengewässer .


# SUBTAXON.BY.c
# skos: 
cpt:künstliches_Binnengewässer
   a skos:Concept ;
   skos:broader cpt:Binnengewässer .


# BY.d
# skos: define a skos:Collection
cpt:Binnengewässer_BY_None_SOME_Wasserführung_im_Zeitverlauf 
   a skos:Collection .



# SUBTAXON.BY.d
# skos: 
cpt:Binnengewässer_BY_None_SOME_Wasserführung_im_Zeitverlauf
   skos:member cpt:temporäres_Binnengewässer .


# SUBTAXON.BY.c
# skos: 
cpt:temporäres_Binnengewässer
   a skos:Concept ;
   skos:broader cpt:Binnengewässer .


# SUBTAXON.BY.d
# skos: 
cpt:Binnengewässer_BY_None_SOME_Wasserführung_im_Zeitverlauf
   skos:member cpt:konstantes_Binnengewässer .


# SUBTAXON.BY.c
# skos: 
cpt:konstantes_Binnengewässer
   a skos:Concept ;
   skos:broader cpt:Binnengewässer .

OWL#

o = GenDifS_Map(f"../mm/{mindmap}.mm", 
                pattern = [ 'owl'],
                verbose = 1)
o.compile()
len(o.rdflib_graph.serialize(destination=f"../ttl/{mindmap}_owl.ttl"))
__init__: GenDifS 0.63 (2023-08-01, 2023-09-08)
lexer: Lexer: found #1 start nodes: ['TAXONOMY Gewaesser_DE']
codegen: codegen: generated 4 entries in `ttl_records`
get_code: Collected 23 code lines, pattern: ['owl', 'ALL']
rdflib_parse: rdflib: 35 triples.
35

Download OWL: ../ttl/Gewässer_2023_DE_owl.ttl

print(o.ttl_code)
# __init__
# ALL: 
@prefix ex: <http://example.net/namespace/ex#> .
@prefix cpt: <http://example.net/namespace/cpt#> .
@prefix sheet: <http://example.net/namespace/sheet#> .
@prefix : <http://example.net/namespace/default#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix gendifs: <http://jbusse.de/gendifs#> .


# __init__
# ALL: 
[ rdf:type owl:Ontology ] .



# SUBTAXON.TAXONOMY.a
# owl: declare class *Gewässer* being a subclass of topConcept
:Gewässer
   a owl:Class ;
   rdfs:subClassOf :topConcept .


# SUBTAXON.ISA.a
# owl: declare class *Meer* being a subclass of Gewässer
:Meer
   a owl:Class ;
   rdfs:subClassOf :Gewässer .


# SUBTAXON.ISA.a
# owl: declare class *Binnengewässer* being a subclass of Gewässer
:Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Gewässer .


# BY.a
# owl: declare *None* as a object property.
:None
   rdf:type owl:ObjectProperty .


# BY.b
# owl: declare *Strömungsverhalten* as a owl:Class .
:Strömungsverhalten
   a owl:Class .


# SUBTAXON.BY.a
# owl: declare class *stehendes_Binnengewässer* being a subclass of Binnengewässer
:stehendes_Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Binnengewässer .


# SOME.b
# owl: declare *stehend* as a owl:Class
:stehend
   a owl:Class ;
   rdfs:subClassOf :Strömungsverhalten .


# SUBTAXON.BY.a
# owl: declare class *fließendes_Binnengewässer* being a subclass of Binnengewässer
:fließendes_Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Binnengewässer .


# SOME.b
# owl: declare *fließend* as a owl:Class
:fließend
   a owl:Class ;
   rdfs:subClassOf :Strömungsverhalten .


# BY.a
# owl: declare *None* as a object property.
:None
   rdf:type owl:ObjectProperty .


# BY.b
# owl: declare *Entstehungstyp* as a owl:Class .
:Entstehungstyp
   a owl:Class .


# SUBTAXON.BY.a
# owl: declare class *natürliches_Binnengewässer* being a subclass of Binnengewässer
:natürliches_Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Binnengewässer .


# SOME.b
# owl: declare *natürlich* as a owl:Class
:natürlich
   a owl:Class ;
   rdfs:subClassOf :Entstehungstyp .


# SUBTAXON.BY.a
# owl: declare class *künstliches_Binnengewässer* being a subclass of Binnengewässer
:künstliches_Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Binnengewässer .


# SOME.b
# owl: declare *künstlich* as a owl:Class
:künstlich
   a owl:Class ;
   rdfs:subClassOf :Entstehungstyp .


# BY.a
# owl: declare *None* as a object property.
:None
   rdf:type owl:ObjectProperty .


# BY.b
# owl: declare *Wasserführung_im_Zeitverlauf* as a owl:Class .
:Wasserführung_im_Zeitverlauf
   a owl:Class .


# SUBTAXON.BY.a
# owl: declare class *temporäres_Binnengewässer* being a subclass of Binnengewässer
:temporäres_Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Binnengewässer .


# SOME.b
# owl: declare *temporär* as a owl:Class
:temporär
   a owl:Class ;
   rdfs:subClassOf :Wasserführung_im_Zeitverlauf .


# SUBTAXON.BY.a
# owl: declare class *konstantes_Binnengewässer* being a subclass of Binnengewässer
:konstantes_Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Binnengewässer .


# SOME.b
# owl: declare *konstant* as a owl:Class
:konstant
   a owl:Class ;
   rdfs:subClassOf :Wasserführung_im_Zeitverlauf .

OWL Classify#

o = GenDifS_Map(f"../mm/{mindmap}.mm", 
                pattern = [ "owl", "owl-classify", "docu" ], 
                # use_rdflib = False, # default: true
                # remove_attributes= False, # default: true
                verbose = 1)
o.compile()
__init__: GenDifS 0.63 (2023-08-01, 2023-09-08)
lexer: Lexer: found #1 start nodes: ['TAXONOMY Gewaesser_DE']
codegen: codegen: generated 4 entries in `ttl_records`
get_code: Collected 53 code lines, pattern: ['owl', 'owl-classify', 'docu', 'ALL']
rdflib_parse: rdflib: 143 triples.
len(o.rdflib_graph.serialize(destination=f"../ttl/{mindmap}_owl-classify.ttl"))
143

Download OWL: ../ttl/Gewässer_2023_DE_owl-classify.ttl

print(o.ttl_code)
# __init__
# ALL: 
@prefix ex: <http://example.net/namespace/ex#> .
@prefix cpt: <http://example.net/namespace/cpt#> .
@prefix sheet: <http://example.net/namespace/sheet#> .
@prefix : <http://example.net/namespace/default#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix gendifs: <http://jbusse.de/gendifs#> .


# __init__
# ALL: 
[ rdf:type owl:Ontology ] .



# SUBTAXON.TAXONOMY.a.01 ----
# docu: 
# TAXONOMY
#   Gewässer


# SUBTAXON.TAXONOMY.a
# owl: declare class *Gewässer* being a subclass of topConcept
:Gewässer
   a owl:Class ;
   rdfs:subClassOf :topConcept .


# SUBTAXON.ISA.a.02 ----
# docu: 
# Gewässer
#   ISA
#      Meer


# SUBTAXON.ISA.a
# owl: declare class *Meer* being a subclass of Gewässer
:Meer
   a owl:Class ;
   rdfs:subClassOf :Gewässer .


# SUBTAXON.ISA.a.02 ----
# docu: 
# Gewässer
#   ISA
#      Binnengewässer


# SUBTAXON.ISA.a
# owl: declare class *Binnengewässer* being a subclass of Gewässer
:Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Gewässer .


# BY.0
# docu: --------------------
# Binnengewässer
#   BY None SOME Strömungsverhalten


# BY.a
# owl: declare *None* as a object property.
:None
   rdf:type owl:ObjectProperty .


# BY.b
# owl: declare *Strömungsverhalten* as a owl:Class .
:Strömungsverhalten
   a owl:Class .


# SUBTAXON.BY.a.03 ----
# docu: 
# Binnengewässer
#   BY ... SOME ...
#      stehendes_Binnengewässer


# SUBTAXON.BY.a
# owl: declare class *stehendes_Binnengewässer* being a subclass of Binnengewässer
:stehendes_Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Binnengewässer .


# SOME.0 ----
# docu: 
# Binnengewässer
#   BY topProperty SOME Strömungsverhalten
#       stehendes_Binnengewässer
#         SOME stehend


# SOME.b
# owl: declare *stehend* as a owl:Class
:stehend
   a owl:Class ;
   rdfs:subClassOf :Strömungsverhalten .


# SOME.g
# owl-classify: 
:SOME_583_269_515_restriction
   a owl:Class ;
   rdfs:label "BY topProperty SOME stehend" ;
   rdfs:subClassOf :gendifs_restrictions ;
   owl:equivalentClass [ a owl:Restriction ;
      owl:onProperty :topProperty ;
      owl:someValuesFrom :stehend ] .



# SOME.h
# owl-classify: intersection of the superiors 
:SOME_583_269_515_intersection
   a owl:Class ;
   rdfs:label "(BY topProperty SOME stehend) INTERSECT Binnengewässer" ;
   rdfs:subClassOf :stehendes_Binnengewässer , :gendifs_intersections ;
   owl:equivalentClass [ a owl:Class ;
      owl:intersectionOf (
          :SOME_583_269_515_restriction
          :Binnengewässer ) ] .



# SUBTAXON.BY.a.03 ----
# docu: 
# Binnengewässer
#   BY ... SOME ...
#      fließendes_Binnengewässer


# SUBTAXON.BY.a
# owl: declare class *fließendes_Binnengewässer* being a subclass of Binnengewässer
:fließendes_Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Binnengewässer .


# SOME.0 ----
# docu: 
# Binnengewässer
#   BY topProperty SOME Strömungsverhalten
#       fließendes_Binnengewässer
#         SOME fließend


# SOME.b
# owl: declare *fließend* as a owl:Class
:fließend
   a owl:Class ;
   rdfs:subClassOf :Strömungsverhalten .


# SOME.g
# owl-classify: 
:SOME_1_678_027_918_restriction
   a owl:Class ;
   rdfs:label "BY topProperty SOME fließend" ;
   rdfs:subClassOf :gendifs_restrictions ;
   owl:equivalentClass [ a owl:Restriction ;
      owl:onProperty :topProperty ;
      owl:someValuesFrom :fließend ] .



# SOME.h
# owl-classify: intersection of the superiors 
:SOME_1_678_027_918_intersection
   a owl:Class ;
   rdfs:label "(BY topProperty SOME fließend) INTERSECT Binnengewässer" ;
   rdfs:subClassOf :fließendes_Binnengewässer , :gendifs_intersections ;
   owl:equivalentClass [ a owl:Class ;
      owl:intersectionOf (
          :SOME_1_678_027_918_restriction
          :Binnengewässer ) ] .



# BY.0
# docu: --------------------
# Binnengewässer
#   BY None SOME Entstehungstyp


# BY.a
# owl: declare *None* as a object property.
:None
   rdf:type owl:ObjectProperty .


# BY.b
# owl: declare *Entstehungstyp* as a owl:Class .
:Entstehungstyp
   a owl:Class .


# SUBTAXON.BY.a.03 ----
# docu: 
# Binnengewässer
#   BY ... SOME ...
#      natürliches_Binnengewässer


# SUBTAXON.BY.a
# owl: declare class *natürliches_Binnengewässer* being a subclass of Binnengewässer
:natürliches_Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Binnengewässer .


# SOME.0 ----
# docu: 
# Binnengewässer
#   BY topProperty SOME Entstehungstyp
#       natürliches_Binnengewässer
#         SOME natürlich


# SOME.b
# owl: declare *natürlich* as a owl:Class
:natürlich
   a owl:Class ;
   rdfs:subClassOf :Entstehungstyp .


# SOME.g
# owl-classify: 
:SOME_313_025_074_restriction
   a owl:Class ;
   rdfs:label "BY topProperty SOME natürlich" ;
   rdfs:subClassOf :gendifs_restrictions ;
   owl:equivalentClass [ a owl:Restriction ;
      owl:onProperty :topProperty ;
      owl:someValuesFrom :natürlich ] .



# SOME.h
# owl-classify: intersection of the superiors 
:SOME_313_025_074_intersection
   a owl:Class ;
   rdfs:label "(BY topProperty SOME natürlich) INTERSECT Binnengewässer" ;
   rdfs:subClassOf :natürliches_Binnengewässer , :gendifs_intersections ;
   owl:equivalentClass [ a owl:Class ;
      owl:intersectionOf (
          :SOME_313_025_074_restriction
          :Binnengewässer ) ] .



# SUBTAXON.BY.a.03 ----
# docu: 
# Binnengewässer
#   BY ... SOME ...
#      künstliches_Binnengewässer


# SUBTAXON.BY.a
# owl: declare class *künstliches_Binnengewässer* being a subclass of Binnengewässer
:künstliches_Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Binnengewässer .


# SOME.0 ----
# docu: 
# Binnengewässer
#   BY topProperty SOME Entstehungstyp
#       künstliches_Binnengewässer
#         SOME künstlich


# SOME.b
# owl: declare *künstlich* as a owl:Class
:künstlich
   a owl:Class ;
   rdfs:subClassOf :Entstehungstyp .


# SOME.g
# owl-classify: 
:SOME_1_669_949_899_restriction
   a owl:Class ;
   rdfs:label "BY topProperty SOME künstlich" ;
   rdfs:subClassOf :gendifs_restrictions ;
   owl:equivalentClass [ a owl:Restriction ;
      owl:onProperty :topProperty ;
      owl:someValuesFrom :künstlich ] .



# SOME.h
# owl-classify: intersection of the superiors 
:SOME_1_669_949_899_intersection
   a owl:Class ;
   rdfs:label "(BY topProperty SOME künstlich) INTERSECT Binnengewässer" ;
   rdfs:subClassOf :künstliches_Binnengewässer , :gendifs_intersections ;
   owl:equivalentClass [ a owl:Class ;
      owl:intersectionOf (
          :SOME_1_669_949_899_restriction
          :Binnengewässer ) ] .



# BY.0
# docu: --------------------
# Binnengewässer
#   BY None SOME Wasserführung_im_Zeitverlauf


# BY.a
# owl: declare *None* as a object property.
:None
   rdf:type owl:ObjectProperty .


# BY.b
# owl: declare *Wasserführung_im_Zeitverlauf* as a owl:Class .
:Wasserführung_im_Zeitverlauf
   a owl:Class .


# SUBTAXON.BY.a.03 ----
# docu: 
# Binnengewässer
#   BY ... SOME ...
#      temporäres_Binnengewässer


# SUBTAXON.BY.a
# owl: declare class *temporäres_Binnengewässer* being a subclass of Binnengewässer
:temporäres_Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Binnengewässer .


# SOME.0 ----
# docu: 
# Binnengewässer
#   BY topProperty SOME Wasserführung_im_Zeitverlauf
#       temporäres_Binnengewässer
#         SOME temporär


# SOME.b
# owl: declare *temporär* as a owl:Class
:temporär
   a owl:Class ;
   rdfs:subClassOf :Wasserführung_im_Zeitverlauf .


# SOME.g
# owl-classify: 
:SOME_250_749_677_restriction
   a owl:Class ;
   rdfs:label "BY topProperty SOME temporär" ;
   rdfs:subClassOf :gendifs_restrictions ;
   owl:equivalentClass [ a owl:Restriction ;
      owl:onProperty :topProperty ;
      owl:someValuesFrom :temporär ] .



# SOME.h
# owl-classify: intersection of the superiors 
:SOME_250_749_677_intersection
   a owl:Class ;
   rdfs:label "(BY topProperty SOME temporär) INTERSECT Binnengewässer" ;
   rdfs:subClassOf :temporäres_Binnengewässer , :gendifs_intersections ;
   owl:equivalentClass [ a owl:Class ;
      owl:intersectionOf (
          :SOME_250_749_677_restriction
          :Binnengewässer ) ] .



# SUBTAXON.BY.a.03 ----
# docu: 
# Binnengewässer
#   BY ... SOME ...
#      konstantes_Binnengewässer


# SUBTAXON.BY.a
# owl: declare class *konstantes_Binnengewässer* being a subclass of Binnengewässer
:konstantes_Binnengewässer
   a owl:Class ;
   rdfs:subClassOf :Binnengewässer .


# SOME.0 ----
# docu: 
# Binnengewässer
#   BY topProperty SOME Wasserführung_im_Zeitverlauf
#       konstantes_Binnengewässer
#         SOME konstant


# SOME.b
# owl: declare *konstant* as a owl:Class
:konstant
   a owl:Class ;
   rdfs:subClassOf :Wasserführung_im_Zeitverlauf .


# SOME.g
# owl-classify: 
:SOME_983_652_448_restriction
   a owl:Class ;
   rdfs:label "BY topProperty SOME konstant" ;
   rdfs:subClassOf :gendifs_restrictions ;
   owl:equivalentClass [ a owl:Restriction ;
      owl:onProperty :topProperty ;
      owl:someValuesFrom :konstant ] .



# SOME.h
# owl-classify: intersection of the superiors 
:SOME_983_652_448_intersection
   a owl:Class ;
   rdfs:label "(BY topProperty SOME konstant) INTERSECT Binnengewässer" ;
   rdfs:subClassOf :konstantes_Binnengewässer , :gendifs_intersections ;
   owl:equivalentClass [ a owl:Class ;
      owl:intersectionOf (
          :SOME_983_652_448_restriction
          :Binnengewässer ) ] .