import pandas as pd
from rdflib import Graph
g = Graph()
g.parse("stelselcatalogus.rdf");
prefix = """
PREFIX begrip_brk: <http://opendata.stelselcatalogus.nl/brk/id/begrip/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX sc: <http://opendata.stelselcatalogus.nl/def/stelselcatalogus#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
"""
q = """
SELECT ?basisregistratie ?begrip ?definitie
WHERE {
?p
a sc:Begrip ;
sc:basisregistratie ?basisregistratie ;
rdfs:label ?begrip ;
skos:definition ?definitie .
}
"""
columns = ["basisregistratie", "begrip", "definitie"]
r = [
(r.basisregistratie.toPython().split("/")[-1], r.begrip.value, r.definitie.value)
for r in g.query(prefix + q)
]
pd.DataFrame.from_records(r, columns=columns).sort_values(columns).reset_index(
drop=True
)
basisregistratieobject
BRV39.7%
BRO17.2%
8 others43.1%
begripobject
Ligplaats0.6%
Pand0.6%
336 others98.9%
0
BAG
Adres
1
BAG
Adresseerbaar object
2
BAG
Ligplaats
3
BAG
Nummeraanduiding
4
BAG
Openbare ruimte
5
BAG
Pand
6
BAG
Standplaats
7
BAG
Verblijfsobject
8
BAG
Woonplaats
9
BGT
Begroeid terreindeel
10
BGT
Functioneel gebied
11
BGT
Kunstwerkdeel
12
BGT
Onbegroeid terreindeel
13
BGT
Ondersteunend waterdeel
14
BGT
Ondersteunend wegdeel
15
BGT
Ongeclassificeerd object
16
BGT
Overbruggingsdeel
17
BGT
Overig bouwwerk
18
BGT
Pand
19
BGT
Scheiding
20
BGT
Spoor
21
BGT
Tunneldeel
22
BGT
Waterdeel
23
BGT
Wegdeel
24
BRI
Authentiek Inkomen
begrip = "nummeraanduiding"
q2 = f"SELECT ?attribuut WHERE {{begrip_brk:{begrip} sc:attribuut ?attribuut.}}"
[r.attribuut.toPython().split("/")[-1] for r in g.query(prefix + q2)]