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 ) ] .