diff --git a/web/.well-known/api-catalog/linkset.json b/web/.well-known/api-catalog/linkset.json index b7fbdfa..a54b66c 100644 --- a/web/.well-known/api-catalog/linkset.json +++ b/web/.well-known/api-catalog/linkset.json @@ -26,6 +26,16 @@ "title": "SPARQL 1.1 Query Language" } ] + }, + { + "anchor": "https://datasetregister.coret.org/dataset-newest-rss.php", + "service-doc": [ + { + "href": "https://www.rssboard.org/rss-specification", + "type": "text/html", + "title": "RSS 2.0 Specification" + } + ] } ] } diff --git a/web/assets/beeldmerk-social-small.jpg b/web/assets/beeldmerk-social-small.jpg new file mode 100644 index 0000000..6833856 Binary files /dev/null and b/web/assets/beeldmerk-social-small.jpg differ diff --git a/web/dataset-newest-rss.php b/web/dataset-newest-rss.php new file mode 100644 index 0000000..fe4da63 --- /dev/null +++ b/web/dataset-newest-rss.php @@ -0,0 +1,40 @@ +\n"; + +echo ''; +echo ''; +echo ''.t('Datasetregister').''; +echo 'https://'.$_SERVER['HTTP_HOST'].'/'; +echo ''; +if(isset($_GET["lang"]) && $_GET["lang"]=="en") { echo "en"; } else { echo "nl"; } +echo ''; +echo ''.t('De meest recent toegevoegde datasets aan het NDE Datasetregister').''; +echo ''.date("r").''."\n"; +echo ''."\n"; +echo 'https://'.$_SERVER['HTTP_HOST'].'/assets/beeldmerk-social-small.jpg'."\n"; +echo ''.t('Datasetregister').''."\n"; +echo 'https://'.$_SERVER['HTTP_HOST'].'/'."\n"; +echo ''."\n"; +echo ''."\n"; + +$newests=getNewest(); + +foreach($newests as $newest) { + print ''; + print ''.$newest["title"].' ('.$newest["publisherName"].')'; + $url='https://'.$_SERVER['HTTP_HOST'].'/show.php?'; + if(isset($_GET["lang"]) && $_GET["lang"]=="en") { $url.='lang=en&'; } + $url.='uri='.urlencode($newest["dataset"]); + print ''.$url.''; + print ''.$url.''; + print ''.date('r', strtotime($newest["postedDate"])).''; + print ''; +} + +echo ''; +echo ''; \ No newline at end of file diff --git a/web/dataset-newest.php b/web/dataset-newest.php new file mode 100644 index 0000000..3a0ffb4 --- /dev/null +++ b/web/dataset-newest.php @@ -0,0 +1,55 @@ + + +
+
+
+

+

Meld aan pagina of de Dataset Register API.') ?> RSS feed.') ?>

+


+
    +
    +
    + +
    +
    + +
    +
    +
    + + \ No newline at end of file diff --git a/web/includes/language.php b/web/includes/language.php index 60a5c1f..42080d6 100644 --- a/web/includes/language.php +++ b/web/includes/language.php @@ -395,7 +395,16 @@ 'Welke musea bieden linked data?'=>'Which museums offer linked data?', 'Het volgende overzicht laat de linked data datasets zien van musea:'=>'The following overview shows the linked data datasets of museums:', 'Welke data bevatten informatie uit bevolkingsregisters?'=>'Which data contain information from population registers?', - 'Het volgende overzicht laat datasets zien die als keyword "bevolkingsregister" hebben:'=>'The following overview shows datasets with the Dutch keyword "bevolkingsregister" (=population register):' + 'Het volgende overzicht laat datasets zien die als keyword "bevolkingsregister" hebben:'=>'The following overview shows datasets with the Dutch keyword "bevolkingsregister" (=population register):', + + # dataset-newest.php + 'Recent aangemelde databeschrijvingen'=>'Recently submitted data descriptions', + 'Onderstaande lijst toont de'=>'The list below shows the', + 'meest recent aangemelde datasetbeschrijvingen via de Meld aan pagina of de Dataset Register API.'=>'most recently registered dataset descriptions via the Submit page or the Dataset Register API.', + 'Aangemeld op'=>'Registered on', + 'De meest recent toegevoegde datasets aan het NDE Datasetregister'=>'The most recently added datasets to the NDE Dataset Register', + 'Deze lijst is ook beschikbaar als RSS feed.'=>'This list is also available as RSS feed.', + 'Er is ook een overzicht beschikbaar van recent aangemelde datasetbeschrijvingen.'=>'An overview of recently submitted dataset descriptions is also available.' ); diff --git a/web/includes/search.php b/web/includes/search.php index 53ac272..6bddd6a 100644 --- a/web/includes/search.php +++ b/web/includes/search.php @@ -3,6 +3,7 @@ define('SPARQL_ENDPOINT', 'https://triplestore.netwerkdigitaalerfgoed.nl/repositories/registry'); define('SPARQL_CACHE_DURATION_HOURS',1); define('CACHE_DIRECTORY','/tmp/'); +define('SHOW_NEWEST',25); function getFormats() { $sparqlGetPublishers='PREFIX dct: @@ -77,6 +78,43 @@ function getPublishers() { return $publishers; } +function getNewest() { + + if(isset($_GET["lang"]) && $_GET["lang"]=="en") { + $lang="en"; $bilang="nl"; + } else { + $lang="nl"; $bilang="en"; + } + + $sparqlGetPublishers='PREFIX dcat: + PREFIX dct: + PREFIX foaf: + SELECT DISTINCT ?dataset ?title ?publisherName ?postedDate WHERE { + ?postedURL ?dataset ; + ?postedDate . + ?dataset dct:publisher ?publisher . + OPTIONAL { ?dataset dct:title ?title FILTER(langMatches(lang(?title), "'.$lang.'")) } + OPTIONAL { ?dataset dct:title ?title FILTER(langMatches(lang(?title), "'.$bilang.'")) } + OPTIONAL { ?dataset dct:title ?title } + OPTIONAL { ?publisher foaf:name ?publisherName FILTER(langMatches(lang(?publisherName), "'.$lang.'")) } + OPTIONAL { ?publisher foaf:name ?publisherName FILTER(langMatches(lang(?publisherName), "'.$bilang.'")) } + OPTIONAL { ?publisher foaf:name ?publisherName } + } ORDER BY DESC(?postedDate) LIMIT '.SHOW_NEWEST; + + $sparqlResults=getSPARQLresults($sparqlGetPublishers,$lang); + + $newest=array(); + if (isset($sparqlResults)) { + foreach ($sparqlResults["results"]["bindings"] as $item) { + $newest[]=array("dataset"=>$item["dataset"]["value"], + "title"=>$item["title"]["value"], + "publisherName"=>$item["publisherName"]["value"], + "postedDate"=>$item["postedDate"]["value"]); + } + } + return $newest; +} + function getSPARQLresults($sparqlQueryString,$lang) { $cacheFile=CACHE_DIRECTORY.md5($sparqlQueryString).".".$lang.".json"; if (file_exists($cacheFile) && filesize($cacheFile)>0 && (time() - filectime($cacheFile))/3600

    -

    triplestore op basis van het DCAT datamodel. Via de datastory leer je hoe te zoeken middels SPARQL. Deze pagina toont een zoekinterface op het datasetregister. Ook is dit een hulpmiddel voor het maken van SPARQL queries om de datasetbeschrijvingen te doorzoeken.')?>

    +

    triplestore op basis van het DCAT datamodel. Via de datastory leer je hoe te zoeken middels SPARQL. Deze pagina toont een zoekinterface op het datasetregister. Ook is dit een hulpmiddel voor het maken van SPARQL queries om de datasetbeschrijvingen te doorzoeken.')?> recent aangemelde datasetbeschrijvingen.') ?>

    @@ -108,7 +108,7 @@ function updateSparql() { .join('" || ?format="') + "\")\n"; } - sparqlQuery += "} ORDER BY ?title"; + sparqlQuery += "} ORDER BY ?title LIMIT 200"; document.getElementById('sparql-query') .innerHTML = sparqlQuery;