Skip to content

Instantly share code, notes, and snippets.

@coret
coret / iotm.yaml
Created January 17, 2026 18:46
OpenAPI beschrijving van de IOTM API (via https://editor.swagger.io/)
openapi: 3.0.0
info:
title: IOTM API
description: >
Geconsolideerde API voor het beheren en ontsluiten van jottems en annotaties.
Deze API ondersteunt IIIF Change Discovery, RSS feeds, Elasticsearch queries, W3C Web Annotations en NDE-conforme datasetbeschrijvingen.
version: "0.1"
servers:
- url: https://api.iotm.nl/v1
erDiagram
Vereniging {
int id PK
string naam
string slug
string NAAN
string kleurenpalet
}
@coret
coret / delete-graphs.sh
Created December 5, 2025 11:09
Bash script to remove graphs from the datasetregister as listed in delete-graphs.lst
#!/usr/bin/bash
# This bash script removes a list of graphs from the Dataset Register SPARQL endpoint.
# It requires an .env file with the following lines:
# ENDPOINT=https://datasetregister.netwerkdigitaalerfgoed.nl/sparql
# TOKEN=your_access_token
ENV_FILE=".env"
if [ ! -f "$ENV_FILE" ]; then
echo "Error: .env file not found. Please create one in the current directory." >&2
@coret
coret / map-proxy.php
Created October 16, 2025 11:15
Dit PHP-bestand fungeert als een proxy en cache voor kaart-(tile)afbeeldingen van een beperkt aantal toegestane bronnen. Het doel is om kaarten van externe WMS- of tile-servers lokaal op te slaan, zodat latere verzoeken sneller geladen worden en de externe servers minder worden belast.
<?php
define('SECONDS_TO_CACHE', 30 /* dagen */ * 24 /* uur */ * 3600 /* seconden */);
define('CACHE_DIRECTORY', '****' ); // deze directory moet bestaan op het bestandssysteem
# Beperk het aantal domeinen die via deze proxy opgevraagd en gecachet mogen worden:
$toegestaneDomeinen = [
"https://mapwarper.net/" => "mapwarper.net",
"https://gis.gouda.nl/" => "gis.gouda.nl",
"https://geo.rug.nl/" => "geo.rug.nl"
@coret
coret / item-sets-tree.phtml
Created August 26, 2025 07:28
view/item-sets-tree/item-sets-tree.phtml
<?php
$displayCount = $displayCount ?? false;
$displayDescription = $displayDescription ?? false;
$linkEmpty = $linkEmpty ?? true;
?>
<?php if (!empty($itemSetsTree)): ?>
<ul class="item-sets-tree">
<?php foreach ($itemSetsTree as $itemSetsTreeNode): ?>
<?php $itemSet = $itemSetsTreeNode['itemSet']; ?>
<?php if ($displayCount || !$linkEmpty): ?>
@coret
coret / swap-uri.py
Created August 20, 2025 18:00
owl:sameAs defined URI swap via text search-and-replace on multi-GB N-triple file
import re
import sys
import mmap
def build_swap_dict_fast(filename):
swap = {}
sameas_pattern = re.compile(rb'<(.*?)>\s*<http://www\.w3\.org/2002/07/owl#sameAs>\s*<(.*?)>')
with open(filename, "rb") as f:
mm = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
@coret
coret / dataset-delete.sh
Created June 26, 2025 19:53
Bashscript to remove a datasetdescription from the NDE Dataset Register triplestore.
#!/usr/bin/bash
# This Bash script requires an .env file with the following lines:
# SERVER=https://triplestore.netwerkdigitaalerfgoed.nl
# USERNAME=username_with_admin_privileges
# PASSWORD=password
# REPOSITORY=registry
# Exit immediately if a command exits with a non-zero status.
set -e
@coret
coret / dataset-knowledge-graphs__src__analyzer.ts
Created May 25, 2025 12:49
Added some code to get information on query and runtime
import {Store} from 'n3';
import {readFile} from 'node:fs/promises';
import {resolve} from 'node:path';
import {Dataset, Distribution} from './dataset.js';
import {Failure, NotSupported, Success} from './pipeline.js';
import {Stream} from '@rdfjs/types';
import {SparqlEndpointFetcher} from 'fetch-sparql-endpoint';
import type {Readable} from 'node:stream';
export interface Analyzer {
@coret
coret / distribution-check.sh
Last active March 31, 2025 10:45
Dataset distribution check (HTTP HEAD) based on a query to DCAT data in the NDE Dataset Register.
#!/bin/bash
url_tsv_file="urls.$(date +%Y%m%d).tsv"
report_file="report.$(date +%Y%m%d).tsv"
echo "1. Getting all accessURL and downloadURL values from https://triplestore.netwerkdigitaalerfgoed.nl/sparql to store in $url_tsv_file"
curl 'https://triplestore.netwerkdigitaalerfgoed.nl/repositories/registry' \
-H 'X-GraphDB-Repository: registry' \
-H 'X-Requested-With: XMLHttpRequest' \
@coret
coret / multipleissueminimal-1.ttl
Created April 5, 2023 11:13
Multiple children of property element, rdf or riot issue?
# conversion via https://converter.zazuko.com/
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dc11: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
<https://archief.nl/doc/fotorecord/f33a864a-1f8c-4697-2303-5c4e56c39011> a <https://archief.nl/def/ontologie/Recordaggregatie> ;
<http://www.openarchives.org/ore/terms/aggregates> <https://archief.nl/id/beschrijving/f33a864a-1f8c-4697-2303-5c4e56c39011> .