Skip to content

Commit 9272ae3

Browse files
committed
Add jupyter notebook demonstrating voc4cat use
1 parent 08fdb73 commit 9272ae3

4 files changed

Lines changed: 935 additions & 0 deletions

File tree

demo/README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Voc4Cat Demo Notebook
2+
3+
Interactive Jupyter notebook showing how to download, query, and visualize the
4+
[Voc4Cat](https://w3id.org/nfdi4cat/voc4cat) SKOS vocabulary with Python.
5+
6+
## Local Setup with uv
7+
8+
```bash
9+
# Create a virtual environment and install dependencies
10+
uv venv
11+
source .venv/bin/activate # Linux/macOS
12+
.venv\Scripts\activate # Windows
13+
14+
uv pip install -r requirements.txt
15+
16+
# Start Jupyter
17+
jupyter notebook explore-voc4cat.ipynb
18+
```
19+
20+
## Updating dependencies
21+
22+
`requirements.in` lists the direct dependencies.
23+
To regenerate the pinned `requirements.txt`:
24+
25+
```bash
26+
uv pip compile --upgrade requirements.in -o requirements.txt
27+
```

demo/explore-voc4cat.ipynb

Lines changed: 564 additions & 0 deletions
Large diffs are not rendered by default.

demo/requirements.in

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Compile to requirements.txt with `pip-compile --upgrade requirements.in`
2+
# With uv: `uv pip compile --upgrade requirements.in -o requirements.txt`
3+
jupyter
4+
rdflib>=7.0
5+
networkx>=3.0
6+
matplotlib>=3.7

demo/requirements.txt

Lines changed: 338 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,338 @@
1+
# This file was autogenerated by uv via the following command:
2+
# uv pip compile requirements.in -o requirements.txt
3+
anyio==4.12.1
4+
# via
5+
# httpx
6+
# jupyter-server
7+
argon2-cffi==25.1.0
8+
# via jupyter-server
9+
argon2-cffi-bindings==25.1.0
10+
# via argon2-cffi
11+
arrow==1.4.0
12+
# via isoduration
13+
asttokens==3.0.1
14+
# via stack-data
15+
async-lru==2.2.0
16+
# via jupyterlab
17+
attrs==25.4.0
18+
# via
19+
# jsonschema
20+
# referencing
21+
babel==2.18.0
22+
# via jupyterlab-server
23+
beautifulsoup4==4.14.3
24+
# via nbconvert
25+
bleach==6.3.0
26+
# via nbconvert
27+
certifi==2026.1.4
28+
# via
29+
# httpcore
30+
# httpx
31+
# requests
32+
cffi==2.0.0
33+
# via argon2-cffi-bindings
34+
charset-normalizer==3.4.4
35+
# via requests
36+
colorama==0.4.6
37+
# via ipython
38+
comm==0.2.3
39+
# via
40+
# ipykernel
41+
# ipywidgets
42+
contourpy==1.3.3
43+
# via matplotlib
44+
cycler==0.12.1
45+
# via matplotlib
46+
debugpy==1.8.20
47+
# via ipykernel
48+
decorator==5.2.1
49+
# via ipython
50+
defusedxml==0.7.1
51+
# via nbconvert
52+
executing==2.2.1
53+
# via stack-data
54+
fastjsonschema==2.21.2
55+
# via nbformat
56+
fonttools==4.61.1
57+
# via matplotlib
58+
fqdn==1.5.1
59+
# via jsonschema
60+
h11==0.16.0
61+
# via httpcore
62+
httpcore==1.0.9
63+
# via httpx
64+
httpx==0.28.1
65+
# via jupyterlab
66+
idna==3.11
67+
# via
68+
# anyio
69+
# httpx
70+
# jsonschema
71+
# requests
72+
ipykernel==7.2.0
73+
# via
74+
# jupyter
75+
# jupyter-console
76+
# jupyterlab
77+
ipython==9.10.0
78+
# via
79+
# ipykernel
80+
# ipywidgets
81+
# jupyter-console
82+
ipython-pygments-lexers==1.1.1
83+
# via ipython
84+
ipywidgets==8.1.8
85+
# via jupyter
86+
isoduration==20.11.0
87+
# via jsonschema
88+
jedi==0.19.2
89+
# via ipython
90+
jinja2==3.1.6
91+
# via
92+
# jupyter-server
93+
# jupyterlab
94+
# jupyterlab-server
95+
# nbconvert
96+
json5==0.13.0
97+
# via jupyterlab-server
98+
jsonpointer==3.0.0
99+
# via jsonschema
100+
jsonschema==4.26.0
101+
# via
102+
# jupyter-events
103+
# jupyterlab-server
104+
# nbformat
105+
jsonschema-specifications==2025.9.1
106+
# via jsonschema
107+
jupyter==1.1.1
108+
# via -r requirements.in
109+
jupyter-client==8.8.0
110+
# via
111+
# ipykernel
112+
# jupyter-console
113+
# jupyter-server
114+
# nbclient
115+
jupyter-console==6.6.3
116+
# via jupyter
117+
jupyter-core==5.9.1
118+
# via
119+
# ipykernel
120+
# jupyter-client
121+
# jupyter-console
122+
# jupyter-server
123+
# jupyterlab
124+
# nbclient
125+
# nbconvert
126+
# nbformat
127+
jupyter-events==0.12.0
128+
# via jupyter-server
129+
jupyter-lsp==2.3.0
130+
# via jupyterlab
131+
jupyter-server==2.17.0
132+
# via
133+
# jupyter-lsp
134+
# jupyterlab
135+
# jupyterlab-server
136+
# notebook
137+
# notebook-shim
138+
jupyter-server-terminals==0.5.4
139+
# via jupyter-server
140+
jupyterlab==4.5.5
141+
# via
142+
# jupyter
143+
# notebook
144+
jupyterlab-pygments==0.3.0
145+
# via nbconvert
146+
jupyterlab-server==2.28.0
147+
# via
148+
# jupyterlab
149+
# notebook
150+
jupyterlab-widgets==3.0.16
151+
# via ipywidgets
152+
kiwisolver==1.4.9
153+
# via matplotlib
154+
lark==1.3.1
155+
# via rfc3987-syntax
156+
markupsafe==3.0.3
157+
# via
158+
# jinja2
159+
# nbconvert
160+
matplotlib==3.10.8
161+
# via -r requirements.in
162+
matplotlib-inline==0.2.1
163+
# via
164+
# ipykernel
165+
# ipython
166+
mistune==3.2.0
167+
# via nbconvert
168+
nbclient==0.10.4
169+
# via nbconvert
170+
nbconvert==7.17.0
171+
# via
172+
# jupyter
173+
# jupyter-server
174+
nbformat==5.10.4
175+
# via
176+
# jupyter-server
177+
# nbclient
178+
# nbconvert
179+
nest-asyncio==1.6.0
180+
# via ipykernel
181+
networkx==3.6.1
182+
# via -r requirements.in
183+
notebook==7.5.3
184+
# via jupyter
185+
notebook-shim==0.2.4
186+
# via
187+
# jupyterlab
188+
# notebook
189+
numpy==2.4.2
190+
# via
191+
# contourpy
192+
# matplotlib
193+
packaging==26.0
194+
# via
195+
# ipykernel
196+
# jupyter-events
197+
# jupyter-server
198+
# jupyterlab
199+
# jupyterlab-server
200+
# matplotlib
201+
# nbconvert
202+
pandocfilters==1.5.1
203+
# via nbconvert
204+
parso==0.8.6
205+
# via jedi
206+
pillow==12.1.1
207+
# via matplotlib
208+
platformdirs==4.9.2
209+
# via jupyter-core
210+
prometheus-client==0.24.1
211+
# via jupyter-server
212+
prompt-toolkit==3.0.52
213+
# via
214+
# ipython
215+
# jupyter-console
216+
psutil==7.2.2
217+
# via ipykernel
218+
pure-eval==0.2.3
219+
# via stack-data
220+
pycparser==3.0
221+
# via cffi
222+
pygments==2.19.2
223+
# via
224+
# ipython
225+
# ipython-pygments-lexers
226+
# jupyter-console
227+
# nbconvert
228+
pyparsing==3.3.2
229+
# via
230+
# matplotlib
231+
# rdflib
232+
python-dateutil==2.9.0.post0
233+
# via
234+
# arrow
235+
# jupyter-client
236+
# matplotlib
237+
python-json-logger==4.0.0
238+
# via jupyter-events
239+
pywinpty==3.0.3
240+
# via
241+
# jupyter-server
242+
# jupyter-server-terminals
243+
# terminado
244+
pyyaml==6.0.3
245+
# via jupyter-events
246+
pyzmq==27.1.0
247+
# via
248+
# ipykernel
249+
# jupyter-client
250+
# jupyter-console
251+
# jupyter-server
252+
rdflib==7.6.0
253+
# via -r requirements.in
254+
referencing==0.37.0
255+
# via
256+
# jsonschema
257+
# jsonschema-specifications
258+
# jupyter-events
259+
requests==2.32.5
260+
# via jupyterlab-server
261+
rfc3339-validator==0.1.4
262+
# via
263+
# jsonschema
264+
# jupyter-events
265+
rfc3986-validator==0.1.1
266+
# via
267+
# jsonschema
268+
# jupyter-events
269+
rfc3987-syntax==1.1.0
270+
# via jsonschema
271+
rpds-py==0.30.0
272+
# via
273+
# jsonschema
274+
# referencing
275+
send2trash==2.1.0
276+
# via jupyter-server
277+
setuptools==82.0.0
278+
# via jupyterlab
279+
six==1.17.0
280+
# via
281+
# python-dateutil
282+
# rfc3339-validator
283+
soupsieve==2.8.3
284+
# via beautifulsoup4
285+
stack-data==0.6.3
286+
# via ipython
287+
terminado==0.18.1
288+
# via
289+
# jupyter-server
290+
# jupyter-server-terminals
291+
tinycss2==1.4.0
292+
# via bleach
293+
tornado==6.5.4
294+
# via
295+
# ipykernel
296+
# jupyter-client
297+
# jupyter-server
298+
# jupyterlab
299+
# notebook
300+
# terminado
301+
traitlets==5.14.3
302+
# via
303+
# ipykernel
304+
# ipython
305+
# ipywidgets
306+
# jupyter-client
307+
# jupyter-console
308+
# jupyter-core
309+
# jupyter-events
310+
# jupyter-server
311+
# jupyterlab
312+
# matplotlib-inline
313+
# nbclient
314+
# nbconvert
315+
# nbformat
316+
typing-extensions==4.15.0
317+
# via
318+
# anyio
319+
# beautifulsoup4
320+
# referencing
321+
tzdata==2025.3
322+
# via arrow
323+
uri-template==1.3.0
324+
# via jsonschema
325+
urllib3==2.6.3
326+
# via requests
327+
wcwidth==0.6.0
328+
# via prompt-toolkit
329+
webcolors==25.10.0
330+
# via jsonschema
331+
webencodings==0.5.1
332+
# via
333+
# bleach
334+
# tinycss2
335+
websocket-client==1.9.0
336+
# via jupyter-server
337+
widgetsnbextension==4.0.15
338+
# via ipywidgets

0 commit comments

Comments
 (0)