Skip to content

Instantly share code, notes, and snippets.

@jze
Last active October 19, 2021 08:14
Show Gist options
  • Save jze/a7ad2966b17441612fe6efe41b827b42 to your computer and use it in GitHub Desktop.
Save jze/a7ad2966b17441612fe6efe41b827b42 to your computer and use it in GitHub Desktop.
GovData SPARQL-Abfragen
# Datensätze und Collections, die korrekt miteinander verknüpft sind.
PREFIX dcatde: <http://dcat-ap.de/def/dcatde/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX dcat: <http://www.w3.org/ns/dcat#>
SELECT * WHERE {
?dataset a dcat:Dataset .
?dataset dct:isVersionOf ?collection .
?collection dct:type <http://dcat-ap.de/def/datasetTypes/collection> .
?collection dct:hasVersion ?dataset .
} LIMIT 100
# Collections mit ihrer Contributor ID
PREFIX dcatde: <http://dcat-ap.de/def/dcatde/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX dcat: <ttp://www.w3.org/ns/dcat#>
SELECT * WHERE {
?dataset a dcat:Dataset .
OPTIONAL { ?dataset dcatde:contributorID ?contributor . }
?dataset dct:type <http://dcat-ap.de/def/datasetTypes/collection> .
} LIMIT 100
# Welches Portal schickt falsche Angaben im dcat:format für Distributionen?
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX dcatde: <http://dcat-ap.de/def/dcatde/>
PREFIX dcat: <http://www.w3.org/ns/dcat#>
SELECT ?contributor (count(distinct ?distribution) AS ?count) WHERE {
?dataset a dcat:Dataset .
?dataset dcat:distribution ?distribution .
?distribution a dcat:Distribution .
?distribution dct:format ?format .
FILTER( !regex(str(?format), "^http://publications.europa.eu/resource/authority/file-type/" ) )
OPTIONAL { ?dataset dcatde:contributorID ?contributor }
} GROUP BY ?contributor ORDER BY DESC(?count)
# Welche Datensätze sind für ein Portal betroffen?
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX dcatde: <http://dcat-ap.de/def/dcatde/>
PREFIX dcat: <http://www.w3.org/ns/dcat#>
SELECT ?dataset ?format WHERE {
?dataset a dcat:Dataset .
?dataset dcat:distribution ?distribution .
?distribution a dcat:Distribution .
?distribution dct:format ?format .
FILTER( !regex(str(?format), "^http://publications.europa.eu/resource/authority/file-type/" ) )
?dataset dcatde:contributorID <http://dcat-ap.de/def/contributors/schleswigHolstein>.
}
PREFIX dcatde: <http://dcat-ap.de/def/dcatde/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX dcat: <http://www.w3.org/ns/dcat#>
SELECT ?license (count(distinct ?distribution) AS ?count) WHERE {
?distribution a dcat:Distribution .
?distribution dct:license ?license .
} GROUP BY ?license ORDER BY DESC(?count)
# Datensätze eines Portals, die keine Schlagworte haben
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX dcatde: <http://dcat-ap.de/def/dcatde/>
PREFIX dcat: <http://www.w3.org/ns/dcat#>
SELECT ?dataset ?type WHERE {
?dataset a dcat:Dataset .
?dataset dcatde:contributorID <http://dcat-ap.de/def/contributors/schleswigHolstein>.
FILTER(NOT EXISTS { ?dataset dct:type <http://dcat-ap.de/def/datasetTypes/collection> })
FILTER(NOT EXISTS { ?dataset dcat:keyword ?keyword. })
}
# Portale, die Datensätze schicken, deren Distributionen unterschiedliche Lizenzen haben
PREFIX dcatde: <http://dcat-ap.de/def/dcatde/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX dcat: <http://www.w3.org/ns/dcat#>
SELECT DISTINCT ?contributorID WHERE {
?dataset a dcat:Dataset .
?dataset dcatde:contributorID ?contributorID .
?dataset dcat:distribution ?dist1 .
?dataset dcat:distribution ?dist2 .
?dist1 dct:license ?l1 .
?dist2 dct:license ?l2 .
FILTER( ?dist1 != ?dist2 ) .
FILTER( ?l1 != ?l2 ) .
} limit 10
# Start-Zeitpunkt des Zeitbezugs ist kein Datum
PREFIX dcatde: <http://dcat-ap.de/def/dcatde/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX schema: <http://schema.org/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX dcat: <http://www.w3.org/ns/dcat#>
SELECT ?contributorID ?Title ?start (datatype(?start) as ?type) WHERE {
?dataset a dcat:Dataset .
?dataset dct:temporal ?temporal .
?dataset dct:title ?Title .
?dataset dcatde:contributorID ?contributorID.
?temporal schema:startDate ?start .
FILTER ( datatype(?start) != xsd:date ) .
FILTER ( datatype(?start) != xsd:dateTime ) .
} limit 100
# Datensätze, deren Zeitraum in der Zukunft liegt
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX dcat: <http://www.w3.org/ns/dcat#>
PREFIX schema: <http://schema.org/>
SELECT ?dataset ?issued WHERE {
?dataset a dcat:Dataset .
?dataset dct:temporal ?temporal .
?temporal schema:startDate ?issued .
BIND(DATATYPE(?issued) AS ?issuedType) .
FILTER(?issuedType IN (xsd:dateTime, xsd:date)) .
BIND(NOW() as ?nowDateTime) .
BIND(xsd:date(?nowDateTime) AS ?nowDate) .
BIND(IF(?issuedType = xsd:dateTime, ?issued > ?nowDateTime, ?issued > ?nowDate) AS ?isFromFuture) .
FILTER(?isFromFuture = true) .
}
LIMIT 10
# Datensätze, die in der Zukunft veröffentlicht wurden
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX dcat: <http://www.w3.org/ns/dcat#>
SELECT ?dataset ?issued WHERE {
?dataset a dcat:Dataset .
?dataset dct:issued ?issued .
BIND(DATATYPE(?issued) AS ?issuedType) .
FILTER(?issuedType IN (xsd:dateTime, xsd:date)) .
BIND(NOW() as ?nowDateTime) .
BIND(xsd:date(?nowDateTime) AS ?nowDate) .
BIND(IF(?issuedType = xsd:dateTime, ?issued > ?nowDateTime, ?issued > ?nowDate) AS ?isFromFuture) .
FILTER(?isFromFuture = true) .
}
LIMIT 10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment