<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sparna Blog &#187; Visualisation de données</title>
	<atom:link href="https://blog.sparna.fr/category/theme/visualisation-de-donnees/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.sparna.fr</link>
	<description>Web de données &#124; Architecture de l&#039;information &#124; Accès aux connaissances</description>
	<lastBuildDate>Tue, 03 Jun 2025 10:30:27 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>Retour sur &#8230; Le déploiement de Sparnatural pour FranceArchives</title>
		<link>https://blog.sparna.fr/2025/02/14/retour-sur-le-deploiement-de-sparnatural-pour-francearchives/</link>
		<comments>https://blog.sparna.fr/2025/02/14/retour-sur-le-deploiement-de-sparnatural-pour-francearchives/#comments</comments>
		<pubDate>Fri, 14 Feb 2025 17:35:50 +0000</pubDate>
		<dc:creator><![CDATA[Marie Muller]]></dc:creator>
				<category><![CDATA[Linked Data]]></category>
		<category><![CDATA[Non classé]]></category>
		<category><![CDATA[Ontologies]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[Recherche d'informations]]></category>
		<category><![CDATA[Sparnatural]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[Visualisation de données]]></category>
		<category><![CDATA[archives]]></category>
		<category><![CDATA[EAC]]></category>
		<category><![CDATA[EAD]]></category>
		<category><![CDATA[EAG]]></category>
		<category><![CDATA[RiC-O]]></category>
		<category><![CDATA[schema.org]]></category>

		<guid isPermaLink="false">https://blog.sparna.fr/?p=1860</guid>
		<description><![CDATA[<p>Voilà maintenant près d’un an et demi que FranceArchives, le Portail national des Archives de France, a annoncé le déploiement de l’outil « Supernatural » (comprendre Sparnatural) via ses réseaux, dans l’optique de proposer à ses usagers « un accès nouveau aux métadonnées archivistiques, complémentaire de la recherche classique par le moteur du portail ».&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2025/02/14/retour-sur-le-deploiement-de-sparnatural-pour-francearchives/">Retour sur &#8230; Le déploiement de Sparnatural pour FranceArchives</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></description>
				<content:encoded><![CDATA[<h1></h1>
<p><span style="font-weight: 400;">Voilà maintenant près d’un an et demi que FranceArchives, le Portail national des Archives de France, <a href="https://francearchives.gouv.fr/fr/requeteurnaturel">a annoncé le déploiement de l’outil « Supernatural »</a> (comprendre <u><a href="https://sparnatural.eu/">Sparnatural</a></u>) via ses réseaux, dans l’optique de proposer à ses usagers « <em>un accès nouveau aux métadonnées archivistiques, complémentaire de la recherche classique par le moteur du portail</em> ».</span></p>
<p><span style="font-weight: 400;"><a href="https://x.com/FranceArchives/status/1706286558385463319"><img class="aligncenter wp-image-1897 size-full" src="https://blog.sparna.fr/wp-content/uploads/2025/02/Supernatural-e1739532443130.jpg" alt="Supernatural" width="400" height="392" /></a></span></p>
<p><span style="font-weight: 400;">Porté par le Service interministériel des Archives de France, le portail FranceArchives offre une recherche fédérée dans près de 26 millions de métadonnées archivistiques produites par près de 170 institutions et entièrement sémantisées en RDF par le biais de l&rsquo;ontologie RiC-O version 0.2 publiée en février 2021.</span></p>
<p>C’est une des premières utilisations de RiC-O à grande échelle (même s’il faudra à l’avenir qu’il se mette à jour sur la <u><a href="https://www.ica.org/resource/records-in-contexts-ontology/">version 1.0 de RiC-O publiée depuis</a></u> !), et c’est également l&rsquo;un des premiers entrepôts de données archivistiques de cette taille sur le Linked Open Data.</p>
<p><span style="font-weight: 400;">&#8230; Un graphe de données qui a tout pour être « Supernaturalisé » <img src="https://blog.sparna.fr/wp-includes/images/smilies/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span></p>
<h2><b><i>Des données de qualité à une recherche augmentée</i></b></h2>
<p><span style="font-weight: 400;">&#8230; Enfin, il va surtout s’agir de ses « données de qualité », autrement dit les :</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">inventaires avec leurs composants,</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">notices descriptives de producteurs d’archives,</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">fiches signalétiques des services d’archives,</span></li>
</ul>
<p><span style="font-weight: 400;"> </span><span style="font-weight: 400;">… tous objets liés à une autorité « </span><a href="https://francearchives.gouv.fr/fr/agents"><span style="font-weight: 400;">personnes et institutions</span></a><span style="font-weight: 400;"> »</span><span style="font-weight: 400;">, </span><span style="font-weight: 400;">« </span><a href="https://francearchives.gouv.fr/fr/locations"><span style="font-weight: 400;">lieux</span></a><span style="font-weight: 400;"> »</span><span style="font-weight: 400;"> et </span><span style="font-weight: 400;">« </span><a href="https://francearchives.gouv.fr/fr/subjects"><span style="font-weight: 400;">thèmes</span></a><span style="font-weight: 400;"> » de qualité (soit moins de 5% des métadonnées du portail avant conversion&#8230; et plus de 70% de l’ensemble du réservoir en RDF !</span><span style="font-weight: 400;">), autorités de qualité elles-mêmes</span><a href="https://francearchives.gouv.fr/fr/article/213604642"> <span style="font-weight: 400;">harmonisées et alignées vers des référentiels nationaux et internationaux</span></a><span style="font-weight: 400;">.</span></p>
<p><span style="font-weight: 400;">M</span><span style="font-weight: 400;">odèle particulièrement adapté à la description des archives en RDF</span><span style="font-weight: 400;">, c’est l’ontologie </span><span style="font-weight: 400;">RiC-O (v0.2</span><span style="font-weight: 400;">) qui a été utilisée pour la sémantisation des données </span><span style="font-weight: 400;">XML EAD</span><span style="font-weight: 400;"> &#8211; </span><span style="font-weight: 400;">XML EAC-CPF</span><span style="font-weight: 400;"> vers RDF, complétée de</span><a href="https://schema.org/"> <span style="font-weight: 400;">schema.org</span></a><span style="font-weight: 400;"> pour les fiches signalétiques des services de l’annuaire au format </span><span style="font-weight: 400;">XML EAG</span><span style="font-weight: 400;">.</span></p>
<p><span style="font-weight: 400;">Les informations relatives aux archives et à leurs producteurs étant décrites dans des fichiers différents, la recherche avancée via SPARQL rend désormais possible une interrogation fédérée plus fine d’un vaste corpus de notices en « traversant » le graphe structuré selon le modèle RiC-O. </span><span style="font-weight: 400;">En effet, l’intérêt de l’interrogation via SPARQL est de casser les silos entre types de métadonnées : il permet de faire une recherche transversale entre données provenant de fichiers EAD et de fichier EAC-CPF.</span></p>
<p>Les notices affichées en résultats de recherche montrent les alignements existants vers les notices de producteurs externes, Wikidata, data.bnf, GeoNames ou encore le Thesaurus pour l&rsquo;indexation matières des archives locales. C’est ainsi dans l’onglet Personnes/indexations liées que sont exploités les résultats de la conversion en RDF, par le biais de suggestions de recherches complémentaires sur le portail classique.</p>
<p>Une façon de faire bénéficier le grand public du RDF de manière complètement transparente pour lui !</p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2025/02/VictorHugo.jpg"><img class="aligncenter size-large wp-image-1904" src="https://blog.sparna.fr/wp-content/uploads/2025/02/VictorHugo-1024x547.jpg" alt="VictorHugo" width="650" height="347" /></a></p>
<h2><b><i>Quelques exemples de requêtes&#8230;</i></b></h2>
<p><span style="font-weight: 400;">On accède à l’outil via le menu « Recherche SPARQL » <a href="https://francearchives.gouv.fr/fr/requeteurnaturel">en haut à droite du site du portail</a> :</span></p>
<p><span style="font-weight: 400;"> <a href="https://blog.sparna.fr/wp-content/uploads/2025/02/QueriesFA.jpg"><img class="aligncenter size-large wp-image-1905" src="https://blog.sparna.fr/wp-content/uploads/2025/02/QueriesFA-1024x504.jpg" alt="QueriesFA" width="650" height="320" /></a></span></p>
<p><span style="font-weight: 400;">Plusieurs exemples de requêtes sont à disposition pour explorer les données :</span></p>
<p><span style="font-weight: 400;">De la requête la plus simple :</span></p>
<h5><em><b>Personne est membre de Institution</b></em></h5>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2025/02/SampleFA.jpg"><img class="aligncenter size-large wp-image-1906" src="https://blog.sparna.fr/wp-content/uploads/2025/02/SampleFA-1024x422.jpg" alt="SampleFA" width="650" height="268" /></a></p>
<p><span style="font-weight: 400;"> </span><span style="font-weight: 400;"> </span></p>
<p><img class="aligncenter size-large wp-image-1928" src="https://blog.sparna.fr/wp-content/uploads/2025/02/query11-1024x375.jpg" alt="query1" width="650" height="238" /></p>
<p><span style="font-weight: 400;">À des requêtes de plus en plus élaborées et complexes, comme ici :</span></p>
<h5><em><b>Lieux qui sont le sujet des archives reliées au fonds « Fabrique de berlingot Eysséric »</b></em></h5>
<p><span style="font-weight: 400;"> <a href="https://blog.sparna.fr/wp-content/uploads/2025/02/SampleFA2.jpg"><img class="aligncenter size-large wp-image-1907" src="https://blog.sparna.fr/wp-content/uploads/2025/02/SampleFA2-1024x717.jpg" alt="SampleFA2" width="650" height="455" /></a></span></p>
<p><span style="font-weight: 400;"> <a href="https://blog.sparna.fr/wp-content/uploads/2025/02/query2.jpg"><img class="aligncenter size-large wp-image-1929" src="https://blog.sparna.fr/wp-content/uploads/2025/02/query2-1024x461.jpg" alt="query2" width="650" height="293" /></a></span></p>
<p><span style="font-weight: 400;">Où l’on voit que l’on peut retracer le cheminement de la requête à travers le graphe de l’ontologie RiC-O en cliquant sur </span><i><span style="font-weight: 400;">« </span></i><i><span style="font-weight: 400;">Afficher/masquer l’éditeur SPARQL</span></i><span style="font-weight: 400;"> ».</span></p>
<h2><b><i>Des archives à la page…</i></b></h2>
<p><span style="font-weight: 400;">À noter que le projet, qui avait fait l’objet d’une présentation à l’occasion de</span><a href="https://swib.org/swib23/slides/07_Fabien%20Amarger_Slides.pdf"> <span style="font-weight: 400;">SWIB (</span><span style="font-weight: 400;">Semantic Web in Libraries</span><span style="font-weight: 400;">)</span></a><span style="font-weight: 400;"> et de</span><a href="https://web.archive.org/web/20240715083647/https://semweb.pro/conference/2023/presentation/francearchives-portail-de-reference-pour-les-archives-francaises/"> <span style="font-weight: 400;">SemWebPro 2023</span></a><span style="font-weight: 400;"> a été entièrement déployé (et configuré !) à partir de la documentation disponible sur le site web de Sparnatural.</span></p>
<p><span style="font-weight: 400;">N’hésitez pas à aller la consulter !</span></p>
<p><a href="https://docs.sparnatural.eu/hello-sparnatural/Hello-Sparnatural.html"><span style="font-weight: 400;">Hello Sparnatural</span></a></p>
<p><a href="https://docs.sparnatural.eu/how-to-configure-shacl/How-to-configure-Sparnatural-shacl.html"><span style="font-weight: 400;">How-to configure in SHACL</span></a></p>
<p><a href="https://docs.sparnatural.eu/widgets.html"><span style="font-weight: 400;">Reference documentation of Sparnatural widgets</span></a></p>
<h2><strong>Pour aller plus loin sur la sémantisation des archives…</strong></h2>
<p>Le déploiement de Sparnatural sur FranceArchives fait suite à une autre réalisation de l&rsquo;année précédente, le <a href="https://sparna-git.github.io/sparnatural-demonstrateur-an/">démonstrateur Sparnatural des Archives nationales</a>. Celui-ci avait permis de faire évoluer Sparnatural et de le déployer sur un graphe sémantique en RiC-O de 20 millions de triplets (hors inférence), alimenté avec le contenu de 1577 instruments de recherche décrivant les archives de 40 des 122 études notariales de Paris conservées aux Archives nationales, de 1120 notices décrivant ces études et les notaires qui y ont exercé, et d&rsquo;autres référentiels des Archives nationales notamment sur les lieux de Paris. La réalisation de ce démonstrateur a été <a href="https://sparna-git.github.io/sparnatural-demonstrateur-an/presentation-fr.html">entièrement documentée en français</a> et en <a href="https://sparna-git.github.io/sparnatural-demonstrateur-an/presentation-en.html">anglais</a>. Ce démonstrateur et ses interfaces évolueront d&rsquo;ailleurs bientôt.</p>
<p>Depuis, Sparna s&rsquo;est impliqué dans le domaine de la sémantisation des archives puisque nous développons également, pour les comptes des Archives Nationales, l’outil <u><a href="https://github.com/ArchivesNationalesFR/rico-converter">Ric-O converter</a></u>.</p>
<p>Celui-ci permet la conversion de notices EAD et EAC vers du RDF exprimé en RiC-O. Nous finalisons actuellement une nouvelle version du convertisseur pour le rendre compatible RiC-O 1.0 (et même 1.1 dont la sortie est imminente).</p>
<p><a href="https://blog.sparna.fr/2020/04/20/rico-records-in-contexts-archives-modele-conceptuel/">Un nouvel article à paraître ici sur RiC-O ?</a> &#8230; Stay tuned !</p>
<p>&nbsp;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2025/02/14/retour-sur-le-deploiement-de-sparnatural-pour-francearchives/">Retour sur &#8230; Le déploiement de Sparnatural pour FranceArchives</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sparna.fr/2025/02/14/retour-sur-le-deploiement-de-sparnatural-pour-francearchives/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nakala : from an RDF dataset to a query UI in minutes &#8211; SHACL automated generation and Sparnatural</title>
		<link>https://blog.sparna.fr/2025/02/06/nakala-from-an-rdf-dataset-to-a-query-ui-in-minutes-shacl-automated-generation-and-sparnatural/</link>
		<comments>https://blog.sparna.fr/2025/02/06/nakala-from-an-rdf-dataset-to-a-query-ui-in-minutes-shacl-automated-generation-and-sparnatural/#comments</comments>
		<pubDate>Thu, 06 Feb 2025 10:38:25 +0000</pubDate>
		<dc:creator><![CDATA[Marie Muller]]></dc:creator>
				<category><![CDATA[Linked Data]]></category>
		<category><![CDATA[Ontologies]]></category>
		<category><![CDATA[Recherche d'informations]]></category>
		<category><![CDATA[SHACL]]></category>
		<category><![CDATA[Sparnatural]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[Visualisation de données]]></category>
		<category><![CDATA[dcterms]]></category>
		<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[EDM]]></category>
		<category><![CDATA[endpoint]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">https://blog.sparna.fr/?p=1867</guid>
		<description><![CDATA[<p>Here is a usecase of an automated version of Sparnatural submitted as an example for Veronika Heimsbakk&#8217;s SHACL for the Practitioner upcoming book about the Shapes Constraint Language (SHACL). “ The Sparnatural knowledge graph explorer leverages SHACL specifications to drive a user interface (UI) that allows end users to easily discover the content of an RDF graph. What&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2025/02/06/nakala-from-an-rdf-dataset-to-a-query-ui-in-minutes-shacl-automated-generation-and-sparnatural/">Nakala : from an RDF dataset to a query UI in minutes &#8211; SHACL automated generation and Sparnatural</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Here is a usecase of an automated version of Sparnatural submitted as an example for Veronika Heimsbakk&rsquo;s <em><a href="https://veronahe.wordpress.com/shacl-for-the-practitioner/">SHACL for the Practitioner</a></em> upcoming book about the Shapes Constraint Language (SHACL).</p>
<h1></h1>
<h1>“</h1>
<p>The <a href="https://sparnatural.eu/">Sparnatural knowledge graph explorer</a> leverages SHACL specifications to drive a user interface (UI) that allows end users to easily discover the content of an RDF graph. What is the best way to make this UI-oriented SHACL specification ? if a SHACL specification for the knowledge graph structure already exists, can it be used directly ? does it require customization ? or is the Sparnatural SHACL spec completely decoupled from an existing knowledge graph spec ? and what if no SHACL spec exists at all ?</p>
<p>We faced all these different situations while deploying Sparnatural, and used various approaches to produce a satisfying end-user oriented specification. In particular, <a href="https://www.nakala.fr/">the Nakala repository</a> is one of the latest graph <a href="https://www.nakala.fr/sparnatural/">for which Sparnatural was deployed</a>. Nakala is a data repository that aims to preserve and disseminate data produced by French research projects in the Humanities and Social Sciences, in compliance with the FAIR principles. Nakala is a service offered by <a href="https://www.huma-num.fr/">Huma-Num</a>, a research infrastructure dedicated to the digital humanities. The Nakala knowledge graph contains `dcterms` metadata provided by researchers to describe the resources they upload. Additional non-dcterms metadata can also be provided. The metadata varies in quality and quantity depending on the researcher. When exposed <a href="https://www.nakala.fr/sparql">in a SPARQL endpoint</a>, resources, collections of resources and agents are described using <a href="https://pro.europeana.eu/page/edm-documentation">the Europeana Data Model (EDM)</a>.</p>
<p>As the EDM dissemination channel for Nakala was new, no SHACL specification existed for it. We could have designed one for Sparnatural from scratch, but the choice was make to generate it automatically, with no human intervention. This was for three reasons : ease of configuration, flexibility in maintenance over time, and pedagogical reason, as it was important to explain the structure of the graph to target users.</p>
<h2>Sparnatural UI</h2>
<p>Let&rsquo;s first have a look at what the Sparnatural UI looks like on an example from Nakala:</p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2025/02/SHACLNAKALA11.png"><img class="aligncenter size-large wp-image-1883" src="https://blog.sparna.fr/wp-content/uploads/2025/02/SHACLNAKALA11-1024x365.png" alt="SHACLNAKALA1" width="650" height="232" /></a></p>
<p>Once you know that &laquo;&nbsp;ProvidedCHO&nbsp;&raquo; stands for &laquo;&nbsp;Provided Cultural Heritage Object&nbsp;&raquo;, and that &laquo;&nbsp;asWKT&nbsp;&raquo; encodes the location of a Place, you will be able to understand that the query searches for all ProvidedCHO entries gathered into a certain collection (&laquo;&nbsp;Cartes Université Bordeaux Montaigne&nbsp;&raquo; &#8211; a collection of maps), and selects their location and an optional description (and yes, the results of this query are displayed on a map, but that&rsquo;s out of scope).</p>
<h2>SHACL is derived automatically</h2>
<p>In this project we wanted the shortest path from the graph to the query UI. Hence we used <a href="https://shacl-play.sparna.fr/play/generate#documentation">a SHACL generation algorithm, available in SHACL Play</a>. By issuing SPARQL queries on an RDF graph, the algorithm determines the NodeShapes (targeting the classes used as values of `rdf:type`), and PropertyShapes (from all predicates used on instances on each class) of the model, with their node kinds, datatypes, class range, and cardinalities. It generates `sh:or` constraints when multiple datatypes or ranges are found. Note that in the case of Nakala a large variety of ranges are used, since the data comes from very open user inputs : the same `dcterms` property can be either an IRI or a Literal, with varying datatypes.</p>
<p>In addition, the algorithm computes some statistics on the dataset : the number of targets of each NodeShapes, the number of occurrences and the number of distinct values for each property shapes. The statistics are expressed using the `void` vocabulary, and `dcterms:conformsTo` is used to link void partitions to the corresponding shapes.</p>
<p><a href="https://shacl-play.sparna.fr/play/doc">The SHACL Play documentation tool</a> was then used to generate a report of the generated SHACL combined with the statistics. A few errors were spotted in the exported data, and fixed. We also saw that around 70 properties were present only a few times out of 700.000+ ProvidedCHO records. These properties were applied by probably a single or very few researchers when describing their data. It was decided to filter them out to keep the final UI simple, with an extra filtering step : based on statistics, property shapes used less than 0.1% of the number of targets of their node shapes are removed.</p>
<p>Here is a screenshot of the report : the right column shows the number of distinct values, and the column before is the number of total occurrences; we can immediately see that `dct:isReplacedBy` occurs only once, and `dct:isRequiredBy` occurs 81 times. They will be filtered out.</p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2025/02/SHACLNAKALA21.png"><img class="aligncenter size-large wp-image-1882" src="https://blog.sparna.fr/wp-content/uploads/2025/02/SHACLNAKALA21-1024x481.png" alt="SHACLNAKALA2" width="650" height="305" /></a></p>
<h2>Sparnatural reads SHACL</h2>
<p>Sparnatural can then read <a href="https://docs.sparnatural.eu/SHACL-based-configuration.html">the SPARQL specification</a>, together with the dataset statistics. When designing a query, value selection widgets for literal properties are determined by looking at the `sh:datatype` constraint (for number, dates, boolean, or map widgets). For IRI properties, statistics are used to distinguish between list and autocomplete widgets. Predicates with less than 500 distinct values will use a dropdown list, and those with more will use an autocomplete search field. The range is determined by reading `sh:class` or `sh:node`. The label to show in dropdown lists or to search on autocomplete field is determined by looking at a `dash:propertyRole = dash:LabelRole` annotation.</p>
<p>How about labels ? Sparnatural can read them from classes and properties of the original OWL file, if provided with it. Otherwise local names of target classes or predicates are used.</p>
<h2>Other configuration techniques</h2>
<p>Other Sparnatural deployments, such as <a href="https://sparnatural.eu/demos/demo-dbpedia-en/">the DBPedia demo</a> are designed in SHACL from scratch, <a href="https://docs.sparnatural.eu/how-to-configure-shacl/How-to-configure-Sparnatural-shacl.html">using spreadsheets</a>. This requires more manual work, but has the advantage of tailoring the UI to exactly what needs to be shown, including user-oriented labels/tooltips/icons, hiding some properties, taking shortcuts or declaring inverses using property paths, etc. In the case of DBPedia, no SHACL spec exists, and deriving it automatically for the entire graph would probably not make a lot of sense, hence the necessity for a manual design.</p>
<p>For other projects we are working on a third configuration technique : a SHACL spec that describes the exact content of the graph is first built. It is used to publish the documentation of the model and to validate the data. A separate shapes file containing a Sparnatural-specific configuration layer is then added on top of it. That layer can hide shapes by applying an `sh:deactivated` annotation on them, can specify the UI widgets to use, add additional `dash:LabelRole` flags, add shortcut or inverse properties, etc.</p>
<p>The 3 configuration paths are shown in the following diagram:</p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2025/02/SHACLNAKALA31.png"><img class="aligncenter size-large wp-image-1881" src="https://blog.sparna.fr/wp-content/uploads/2025/02/SHACLNAKALA31-1024x569.png" alt="SHACLNAKALA3" width="650" height="361" /></a></p>
<h2>Your query UI in minutes</h2>
<p>We combined 4 tools (all open-source) : an algorithm to generate a &laquo;&nbsp;profile&nbsp;&raquo; in SHACL of an RDF dataset, a statistical report generator, a SHACL filter based on statistics, and the Sparnatural query UI. The ability to generate the SHACL profile and review it in the report provided a way to understand the structure of the data in a matter of minutes, while hours would have been necessary with SPARQL queries, without a guarantee of completeness. The provision of the query UI was made by dropping the SHACL file and the statistics to Sparnatural, without manual intervention. This shows the pivotal role of SHACL for data quality and model-driven approaches for knowledge graphs projects.</p>
<h1>”</h1>
<p>We look forward to reading Veronika&rsquo;s book, and you ?</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2025/02/06/nakala-from-an-rdf-dataset-to-a-query-ui-in-minutes-shacl-automated-generation-and-sparnatural/">Nakala : from an RDF dataset to a query UI in minutes &#8211; SHACL automated generation and Sparnatural</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sparna.fr/2025/02/06/nakala-from-an-rdf-dataset-to-a-query-ui-in-minutes-shacl-automated-generation-and-sparnatural/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CORDIS : a SPARQL endpoint is born !</title>
		<link>https://blog.sparna.fr/2024/01/15/cordis-a-sparql-endpoint-is-born/</link>
		<comments>https://blog.sparna.fr/2024/01/15/cordis-a-sparql-endpoint-is-born/#comments</comments>
		<pubDate>Mon, 15 Jan 2024 08:55:41 +0000</pubDate>
		<dc:creator><![CDATA[Marie Muller]]></dc:creator>
				<category><![CDATA[Linked Data]]></category>
		<category><![CDATA[Ontologies]]></category>
		<category><![CDATA[Open Data]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[Thesaurus]]></category>
		<category><![CDATA[Triplestores]]></category>
		<category><![CDATA[Visualisation de données]]></category>
		<category><![CDATA[endpoint]]></category>
		<category><![CDATA[Europe]]></category>
		<category><![CDATA[Linked Open Data]]></category>
		<category><![CDATA[ontologie]]></category>
		<category><![CDATA[ontologies]]></category>
		<category><![CDATA[thesaurus]]></category>

		<guid isPermaLink="false">http://blog.sparna.fr/?p=1615</guid>
		<description><![CDATA[<p>Another star to light on EU&#8217;s linked open data maturity flag ! 🌟 Not talking about 2024 exceptional Northern Lights to come, but this one&#8217;s also good news for science ! ➡️ Late 2023, the Publications Office of the European Union announced on social media the public release of the new CORDIS SPARQL endpoint. CORDIS, aka « the Community&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2024/01/15/cordis-a-sparql-endpoint-is-born/">CORDIS : a SPARQL endpoint is born !</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><span style="font-weight: 400;">Another star to light on EU&rsquo;s linked open data maturity flag ! <img src="https://s.w.org/images/core/emoji/72x72/1f31f.png" alt="🌟" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span></p>
<p><span style="font-weight: 400;">Not talking about 2024 exceptional <a href="https://www.nationalgeographic.com/science/article/auroras-solar-maximum-2024">Northern Lights to come,</a> </span><span style="font-weight: 400;">but this one&rsquo;s also good news for science !</span></p>
<p><span style="font-weight: 400;">➡️ Late 2023, </span><span style="font-weight: 400;">the Publications Office of the European Union</span><span style="font-weight: 400;"> <a href="https://twitter.com/CORDIS_EU/status/1726865540143276079">announced on social media</a> </span><span style="font-weight: 400;">the public release of </span><strong><a href="https://cordis.europa.eu/datalab/sparql-endpoint">the new CORDIS SPARQL endpoint</a></strong><span style="font-weight: 400;">.</span></p>
<p><span style="font-weight: 400;">CORDIS, aka « </span><span style="font-weight: 400;">t</span><span style="font-weight: 400;">he Community Research and Development Information Service </span><span style="font-weight: 400;">of</span><span style="font-weight: 400;"> the European Commission</span><span style="font-weight: 400;"> », is « </span><em><a href="https://cordis.europa.eu/about"><span style="font-weight: 400;">the [&#8230;] primary source of results from the projects funded by the EU&rsquo;s framework programmes for research and innovation, from FP1 to Horizon Europe</span></a></em><span style="font-weight: 400;"> ». Described as a « <em>rich and structured public repository with all project information held by the European Commission such as project factsheets, participants, reports, deliverables and links to open-access publications</em> », the CORDIS catalog has also been made available in 6 European languages by Publications Office&rsquo;s editorial team.</span></p>
<p><span style="font-weight: 400;">Cherry on top <img src="https://s.w.org/images/core/emoji/72x72/1f352.png" alt="🍒" class="wp-smiley" style="height: 1em; max-height: 1em;" /> of a whole process, the CORDIS SPARQL endpoint release comes to crown a long-term linked open data project. The aim identifying, acquiring, preserving and providing access to knowledge in a common will to share with the widest public possible a trust-worthy, qualified and structured information (see </span><a href="https://op.europa.eu/webpub/op/annual-management-report-2021/en/"><span style="font-weight: 400;">Publications Office 2021 Annual Management Report</span></a><span style="font-weight: 400;">).</span></p>
<p><span style="font-weight: 400;">In the context of the pandemic (and recent opening of <a href="https://data.europa.eu/en">data.europa.eu</a>, the official portal for European data, as defined in 2017–2025 European Open Data Space strategy), </span><a href="https://data.europa.eu/data/datasets/euroscivoc-the-european-science-vocabulary?locale=en"><span style="font-weight: 400;">the EuroSciVoc taxonomy of fields of science</span></a><span style="font-weight: 400;"> was released April 2020, followed December 2021 by the publishing of </span><a href="https://data.europa.eu/data/datasets/european-research-information-ontology?locale=en"><span style="font-weight: 400;">European research information ontology (EURIO)</span></a><span style="font-weight: 400;"> on the EU Vocabularies website <img src="https://s.w.org/images/core/emoji/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" />.</span></p>
<p><span style="font-weight: 400;">As presented at </span><a href="https://op.europa.eu/en/web/endorse-2021/conference"><span style="font-weight: 400;">ENDORSE conference March 2021</span></a><span style="font-weight: 400;">, the redesign of CORDIS data-model in accordance with Semantic Web standards contributed to bring the platform « <strong><em>from acting as a data repository to finally playing an active role as data provider</em></strong> », where EuroSciVoc taxonomy &amp; EURIO ontology both played key roles in the creation of future CORDIS knowledge graph and SPARQL endpoint :</span></p>
<p><span style="font-weight: 400;"><img src="https://s.w.org/images/core/emoji/72x72/1f538.png" alt="🔸" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span><em><span style="font-weight: 400;"> <a href="https://data.europa.eu/data/datasets/euroscivoc-the-european-science-vocabulary?locale=en">EuroSciVoc</a> [&#8230;] is a multilingual, SKOS-XL based taxonomy that represents all the main fields of science that were discovered from the CORDIS content, e.g., project abstracts. It was built starting from the hierarchy of the OECD&rsquo;s Fields of R&amp;D classification (FoRD) as root and extended through a semi-automatic process based on NLP techniques. It contains almost 1 000 categories in 6 languages (English, French, German, Italian, Polish and Spanish) and each category is enriched with relevant keywords extracted from the textual description of CORDIS projects. It is constantly evolving and is available on EU Vocabularies website [&#8230;].</span></em></p>
<p><span style="font-weight: 400;"><img src="https://s.w.org/images/core/emoji/72x72/1f538.png" alt="🔸" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span><em><span style="font-weight: 400;"> In order to transform CORDIS data into Linked Open Data, thus aligning with Semantic Web standards, best practices and tools in industry and public organizations, the need for an ontology emerged. CORDIS created the <a href="https://data.europa.eu/data/datasets/european-research-information-ontology?locale=en">EURIO</a> (European Research Information Ontology) based on data about research projects funded by the EU&rsquo;s framework programmes for research and innovation. EURIO is aligned with EU ontologies such as <a href="https://dcodings.github.io/DINGO/">DINGO</a> and <a href="https://github.com/SPAROntologies/frapo">FRAPO</a> and de facto standard ontologies such as schema.org and the Organization Ontology from W3C. It models projects, their results and actors such as people and organizations, and includes administrative information like funding schemes and grants.</span></em></p>
<p><span style="font-weight: 400;"><img src="https://s.w.org/images/core/emoji/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span><em> EURIO, which is available on EU Vocabularies website, was <strong>the starting point to develop a Knowledge Graph of CORDIS data that will be publicly available via a dedicated SPARQL endpoint</strong>.</em> <em>»</em></p>
<p>(Enrico Bignotti &amp; Baya Remaoun, &laquo;&nbsp;<a href="https://op.europa.eu/en/web/endorse-2021/programme">EuroSciVoc taxonomy and EURIO ontology: CORDIS as (semantic) data provider</a> &nbsp;&raquo; , ENDORSE March 16, 2021. <a href="https://op.europa.eu/documents/10120270/10133951/BIGNOTTI_REMAOUN_presentation_EuroSciVoc+taxonomy+and+EURIO+ontology+CORDIS+as+%28semantic%29+data+provider.pdf/3303e7b9-967d-65f2-23a3-96b3e2bd2856?t=1616568751644"><span style="font-weight: 400;">PDF</span></a><span style="font-weight: 400;"> </span><a href="https://www.youtube.com/watch?v=vIBC_PO5aoM&amp;t=3689s"><span style="font-weight: 400;">VIDEO</span></a>)</p>
<p><span style="font-weight: 400;">&#8230; A Knowledge graph <a href="https://upcommons.upc.edu/bitstream/handle/2117/378291/2022-ISWC.pdf?sequence=1&amp;isAllowed=y">that was soon released in 2022-2023</a></span><span style="font-weight: 400;"> (see INDUSTRY TRACK 1 on Tuesday, 25 October of <a href="http://iswc2022.semanticweb.org/index.php/conference/">ISWC 2022 Conference</a> for more detail), until final opening of a </span><a href="https://cordis.europa.eu/datalab"><span style="font-weight: 400;">CORDIS SPARQL endpoint</span></a><span style="font-weight: 400;"> late november 2023.</span></p>
<p><span style="font-weight: 400;">Now fancy a few SPARQL queries in there ?</span></p>
<p><strong>Follow the SPARQL <img src="https://s.w.org/images/core/emoji/72x72/1f4ab.png" alt="💫" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></p>
<p><span style="font-weight: 400;">CORDIS SPARQL endpoint is </span><a href="https://cordis.europa.eu/datalab"><span style="font-weight: 400;">actually made available on CORDIS Datalab</span></a><span style="font-weight: 400;"> (and already referenced in <a href="https://linkedopendata.eu/wiki/The_EU_Knowledge_Graph">EU Knowledge Graph</a> among other European SPARQL endpoints ! <a href="http://tinyurl.com/yn5fsylk">see the query</a> / <a href="http://tinyurl.com/2e8z6y5e">see the results</a>)</span></p>
<p><span style="font-weight: 400;">Here you can access a quick documentation guide to CORDIS Linked Open Data : </span><a href="https://cordis.europa.eu/about/sparql"><span style="font-weight: 400;">https://cordis.europa.eu/about/sparql</span></a><span style="font-weight: 400;">.</span></p>
<p><span style="font-weight: 400;">Let’s have a look at EURIO ontology first : we need to understand it to query CORDIS knowledge graph.</span></p>
<p><span style="font-weight: 400;">As we are told in the guide, the latest version can be downloaded </span><a href="https://op.europa.eu/en/web/eu-vocabularies/dataset/-/resource?uri=http://publications.europa.eu/resource/dataset/eurio"><span style="font-weight: 400;">on EU Vocabularies website</span></a><span style="font-weight: 400;">. When we unzip</span><span style="font-weight: 400;"> the archive we access the whole documentation about EURIO Classes &amp; properties that we need to write our SPARQL queries – and a diagram of </span><span style="font-weight: 400;">main classes and properties</span><span style="font-weight: 400;"> of CORDIS data model : </span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2024/01/EURIO_v2.4.png"><img class="aligncenter size-large wp-image-1669" src="http://blog.sparna.fr/wp-content/uploads/2024/01/EURIO_v2.4-1024x812.png" alt="EURIO_v2.4" width="650" height="515" /></a></p>
<p><span style="font-weight: 400;">At first sight we can observe on the schema 3 main groups of entities :</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">On the top right, the projects &amp; publications associated, key ressources of CORDIS ;</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">On the top left, the fundings &amp; grants materials, on « monetary » side of the project ;</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">On the bottom, the organisations &amp; persons implied, with references &amp; coordinates.</span></li>
</ul>
<p><span style="font-weight: 400;">Let’s open </span><a href="https://cordis.europa.eu/datalab/sparql-endpoint"><span style="font-weight: 400;">CORDIS SPARQL endpoint</span></a><span style="font-weight: 400;"> – some easy queries can be run to begin exploring CORDIS knowledge graph.</span></p>
<p><span style="font-weight: 400;">Nb : the data on SPARQL endpoint is a snapshot, but freshest dumps can be found </span><a href="https://data.europa.eu/data/datasets/named-graphs-from-eurio-knowledge-graph?locale=en"><span style="font-weight: 400;">on European data portal</span></a><span style="font-weight: 400;"> !</span></p>
<p><span style="font-weight: 400;">Here a simple one to </span><b>find a list of FundingSchemes with their titles and IDs corresponding to « Horizon 2020 » programme</b><span style="font-weight: 400;"> :</span></p>
<table>
<tbody>
<tr>
<td><strong>FundingSchemes with their titles and IDs corresponding to « Horizon 2020 » programme</strong></p>
<p>PREFIX xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt;<br />
PREFIX eurio: &lt;http://data.europa.eu/s66#&gt;<br />
PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;<br />
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;<br />
SELECT ?fs ?title ?id<br />
WHERE {<br />
# select all funding schemes …<br />
?fs a eurio:FundingScheme.<br />
# … with their title …<br />
?fs eurio:title ?title.<br />
# … and identifier …<br />
?fs eurio:identifier ?id.<br />
# where the identifier contains the regular expression “H2020”<br />
FILTER (REGEX (?id, &lsquo;H2020&prime;))<br />
} LIMIT 100</td>
</tr>
</tbody>
</table>
<p>▶️ <a href="https://cordis.europa.eu/datalab/sparql-endpoint#query=%23%20FundingSchemes%20with%20their%20titles%20and%20IDs%20corresponding%20to%20%C2%AB%20Horizon%202020%20%C2%BB%20programme%0A%0APREFIX%20xsd%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0APREFIX%20eurio%3A%20%3Chttp%3A%2F%2Fdata.europa.eu%2Fs66%23%3E%0APREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0ASELECT%20%3Ffs%20%3Ftitle%20%3Fid%0AWHERE%20%7B%0A%23%20select%20all%20funding%20schemes%20%E2%80%A6%0A%3Ffs%20a%20eurio%3AFundingScheme.%0A%23%20%E2%80%A6%20with%20their%20title%20%E2%80%A6%0A%3Ffs%20eurio%3Atitle%20%3Ftitle.%0A%23%20%E2%80%A6%20and%20identifier%20%E2%80%A6%0A%3Ffs%20eurio%3Aidentifier%20%3Fid.%0A%23%20where%20the%20identifier%20contains%20the%20regular%20expression%20%E2%80%9CH2020%E2%80%9D%0AFILTER%20(REGEX%20(%3Fid%2C%20'H2020'))%0A%7D%20LIMIT%20100&amp;endpoint=https%3A%2F%2Fcordis.europa.eu%2Fdatalab%2Fsparql&amp;requestMethod=POST&amp;tabTitle=Query&amp;headers=%7B%7D&amp;contentTypeConstruct=application%2Fn-triples%2C*%2F*%3Bq&amp;contentTypeSelect=application%2Fsparql-results%2Bjson%2C*%2F*%3Bq&amp;outputFormat=table">See the results</a></p>
<p><span style="font-weight: 400;">The FILTER REGEX enables us to display the IDs corresponding to H2020 Funding Schemes.</span></p>
<p><span style="font-weight: 400;">We can make another query to get the projects with the Funding Scheme Programme they are related to (note that, in EURIO a eurio:</span><span style="font-weight: 400;">hasFundingSchemeProgramme</span><span style="font-weight: 400;"> is a sub-property of eurio:fundingScheme) :</span></p>
<table>
<tbody>
<tr>
<td><strong>Projects with the Funding Scheme Programme they are related to</strong></p>
<p><span style="font-weight: 400;">PREFIX eurio: &lt;http://data.europa.eu/s66#&gt;</span><br />
<span style="font-weight: 400;">PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;</span><br />
<span style="font-weight: 400;">PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;</span><br />
<span style="font-weight: 400;">SELECT ?project ?acronym ?fundingscheme</span><br />
<span style="font-weight: 400;">WHERE {</span><br />
# select the projects &#8230;<br />
<span style="font-weight: 400;">?project a eurio:Project.</span><br />
# … with acronyms &#8230;<br />
<span style="font-weight: 400;">?project eurio:hasAcronym/eurio:shortForm ?acronym.</span><br />
# … and corresponding funding scheme programmes<br />
<span style="font-weight: 400;">?project eurio:isFundedBy/eurio:hasFundingSchemeProgramme/eurio:code ?fundingscheme.</span><br />
<span style="font-weight: 400;">} LIMIT 100</span></td>
</tr>
</tbody>
</table>
<p>▶️ <a href="https://cordis.europa.eu/datalab/sparql-endpoint#query=%23%20Projects%20with%20the%20Funding%20Scheme%20Programme%20they%20are%20related%20to%0A%0APREFIX%20eurio%3A%20%3Chttp%3A%2F%2Fdata.europa.eu%2Fs66%23%3E%0APREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0ASELECT%20%3Fproject%20%3Facronym%20%3Ffundingscheme%0AWHERE%20%7B%0A%23%20select%20the%20projects%20...%0A%3Fproject%20a%20eurio%3AProject.%0A%23%20%E2%80%A6%20with%20acronyms%20...%0A%3Fproject%20eurio%3AhasAcronym%2Feurio%3AshortForm%20%3Facronym.%0A%23%20%E2%80%A6%20and%20corresponding%20funding%20scheme%20programmes%0A%3Fproject%20eurio%3AisFundedBy%2Feurio%3AhasFundingSchemeProgramme%2Feurio%3Acode%20%3Ffundingscheme.%0A%7D%20LIMIT%20100&amp;endpoint=https%3A%2F%2Fcordis.europa.eu%2Fdatalab%2Fsparql&amp;requestMethod=POST&amp;tabTitle=Query%201&amp;headers=%7B%7D&amp;contentTypeConstruct=application%2Fn-triples%2C*%2F*%3Bq&amp;contentTypeSelect=application%2Fsparql-results%2Bjson%2C*%2F*%3Bq&amp;outputFormat=table">See the results</a></p>
<p><span style="font-weight: 400;">(Here we used a property path with a « / » to shorten the query to get the acronyms of projects &amp; Funding Scheme Programmes codes).</span></p>
<p><span style="font-weight: 400;">&#8230; and combining with the first query we can find the projects depending on H2020 Funding Scheme Programme in particular :</span></p>
<table>
<tbody>
<tr>
<td><strong>Projects depending on H2020 Funding Scheme Programme in particular</strong></p>
<p><span style="font-weight: 400;">PREFIX eurio: &lt;http://data.europa.eu/s66#&gt;</span><br />
<span style="font-weight: 400;">PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;</span><br />
<span style="font-weight: 400;">PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;</span><br />
<span style="font-weight: 400;">SELECT ?project ?acronym ?fundingscheme</span><br />
<span style="font-weight: 400;">WHERE {</span><br />
# select the projects &#8230;<br />
<span style="font-weight: 400;">?project a eurio:Project.</span><br />
# … with acronyms &#8230;<br />
<span style="font-weight: 400;">?project eurio:hasAcronym/eurio:shortForm ?acronym.</span><br />
# … and corresponding funding scheme programmes codes &#8230;<br />
<span style="font-weight: 400;">?project eurio:isFundedBy/eurio:hasFundingSchemeProgramme/eurio:code ?fundingscheme.</span><br />
# … with a filter on funding scheme codes &lsquo;H2020&prime;<br />
<span style="font-weight: 400;">FILTER REGEX (?fundingscheme, &lsquo;H2020&prime;)</span><br />
<span style="font-weight: 400;">} LIMIT 100</span></td>
</tr>
</tbody>
</table>
<p>▶️ <a href="https://cordis.europa.eu/datalab/sparql-endpoint#query=%23%20Projects%20depending%20on%20H2020%20Funding%20Scheme%20Programme%20in%20particular%0A%0APREFIX%20eurio%3A%20%3Chttp%3A%2F%2Fdata.europa.eu%2Fs66%23%3E%0APREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0ASELECT%20%3Fproject%20%3Facronym%20%3Ffundingscheme%0AWHERE%20%7B%0A%23%20select%20the%20projects%20...%0A%3Fproject%20a%20eurio%3AProject.%0A%23%20%E2%80%A6%20with%20acronyms%20...%0A%3Fproject%20eurio%3AhasAcronym%2Feurio%3AshortForm%20%3Facronym.%0A%23%20%E2%80%A6%20and%20corresponding%20funding%20scheme%20programmes%20codes%20...%0A%3Fproject%20eurio%3AisFundedBy%2Feurio%3AhasFundingSchemeProgramme%2Feurio%3Acode%20%3Ffundingscheme.%0A%23%20%E2%80%A6%20with%20a%20filter%20on%20funding%20scheme%20codes%20'H2020'%0AFILTER%20REGEX%20(%3Ffundingscheme%2C%20'H2020')%0A%7D%20LIMIT%20100&amp;endpoint=https%3A%2F%2Fcordis.europa.eu%2Fdatalab%2Fsparql&amp;requestMethod=POST&amp;tabTitle=Query&amp;headers=%7B%7D&amp;contentTypeConstruct=application%2Fn-triples%2C*%2F*%3Bq&amp;contentTypeSelect=application%2Fsparql-results%2Bjson%2C*%2F*%3Bq&amp;outputFormat=table">See the results</a></p>
<p><span style="font-weight: 400;">It is also possible to get the list of all existing Funding Scheme Programmes CORDIS projects have been funded by – we observe 27 of them here (from the SPARQL endpoint) – while adding a count function to know how many projects per FundingSchemeProgramme :</span></p>
<table>
<tbody>
<tr>
<td><strong>All existing Funding Scheme Programmes CORDIS projects have been funded by</strong></p>
<p><span style="font-weight: 400;">PREFIX eurio: &lt;http://data.europa.eu/s66#&gt;</span><br />
<span style="font-weight: 400;">PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;</span><br />
<span style="font-weight: 400;">PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;</span><br />
# count the number of projects by funding scheme programme &#8230;<br />
<span style="font-weight: 400;">SELECT (COUNT (?project) as ?count) ?fundingscheme</span><br />
<span style="font-weight: 400;">WHERE {</span><br />
# select the projects with corresponding funding scheme programmes codes &#8230;<br />
<span style="font-weight: 400;">?project eurio:isFundedBy/eurio:hasFundingSchemeProgramme/eurio:code ?fundingscheme.</span><br />
# &#8230; counting projects per funding scheme programme<br />
<span style="font-weight: 400;">} GROUP BY ?fundingscheme</span><br />
<span style="font-weight: 400;">LIMIT 100</span></td>
</tr>
</tbody>
</table>
<p>▶️ <a href="https://cordis.europa.eu/datalab/sparql-endpoint#query=%23%20All%20existing%20Funding%20Scheme%20Programmes%20CORDIS%20projects%20have%20been%20funded%20by%0A%0APREFIX%20eurio%3A%20%3Chttp%3A%2F%2Fdata.europa.eu%2Fs66%23%3E%0APREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0A%23%20count%20the%20number%20of%20projects%20by%20funding%20scheme%20programme%20...%0ASELECT%20(COUNT%20(%3Fproject)%20as%20%3Fcount)%20%3Ffundingscheme%0AWHERE%20%7B%0A%23%20select%20the%20projects%20with%20corresponding%20funding%20scheme%20programmes%20codes%20...%0A%3Fproject%20eurio%3AisFundedBy%2Feurio%3AhasFundingSchemeProgramme%2Feurio%3Acode%20%3Ffundingscheme.%0A%23%20...%20counting%20projects%20per%20funding%20scheme%20programme%0A%7D%20GROUP%20BY%20%3Ffundingscheme%0ALIMIT%20100&amp;endpoint=https%3A%2F%2Fcordis.europa.eu%2Fdatalab%2Fsparql&amp;requestMethod=POST&amp;tabTitle=Query%201&amp;headers=%7B%7D&amp;contentTypeConstruct=application%2Fn-triples%2C*%2F*%3Bq&amp;contentTypeSelect=application%2Fsparql-results%2Bjson%2C*%2F*%3Bq&amp;outputFormat=table">See the results</a></p>
<p>Querying the organisations properties will return other kind of useful informations about geographical location of the projects stakeholders. Let’s figure out we want to find the projects whose coordinating organisations have sites located in France :</p>
<table>
<tbody>
<tr>
<td><strong>Projects whose coordinating organisations have sites located in France <img src="https://s.w.org/images/core/emoji/72x72/1f413.png" alt="🐓" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></p>
<p>PREFIX skos: &lt;http://www.w3.org/2004/02/skos/core#&gt;<br />
PREFIX eurio: &lt;http://data.europa.eu/s66#&gt;<br />
PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;<br />
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;<br />
SELECT ?project ?acronym ?role ?organisation ?country<br />
WHERE {<br />
# select the projects with their acronyms &#8230;<br />
?project a eurio:Project.<br />
?project eurio:hasAcronym/eurio:shortForm ?acronym.<br />
# &#8230; and organisations with &lsquo;coordinator&rsquo; role and name &#8230;<br />
?project eurio:hasInvolvedParty ?organisationrole.<br />
?organisationrole eurio:roleLabel ?role.<br />
?organisationrole eurio:roleLabel &laquo;&nbsp;coordinator&nbsp;&raquo;.<br />
?organisationrole eurio:isRoleOf/eurio:legalName ?organisation.<br />
# &#8230; with address country for the sites defined at &lsquo;FR&rsquo;<br />
?organisationrole eurio:isRoleOf/eurio:hasSite/eurio:hasAddress/eurio:addressCountry ?country.<br />
VALUES ?country { &lsquo;FR&rsquo; }<br />
} LIMIT 100</td>
</tr>
</tbody>
</table>
<p>▶️ <a href="https://cordis.europa.eu/datalab/sparql-endpoint#query=%23%20Projects%20whose%20coordinating%20organisations%20have%20sites%20located%20in%20France%20%F0%9F%90%93%0A%0APREFIX%20skos%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2004%2F02%2Fskos%2Fcore%23%3E%0APREFIX%20eurio%3A%20%3Chttp%3A%2F%2Fdata.europa.eu%2Fs66%23%3E%0APREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0ASELECT%20%3Fproject%20%3Facronym%20%3Frole%20%3Forganisation%20%3Fcountry%0AWHERE%20%7B%0A%23%20select%20the%20projects%20with%20their%20acronyms%20...%0A%3Fproject%20a%20eurio%3AProject.%0A%3Fproject%20eurio%3AhasAcronym%2Feurio%3AshortForm%20%3Facronym.%0A%23%20...%20and%20organisations%20with%20'coordinator'%20role%20and%20name%20...%0A%3Fproject%20eurio%3AhasInvolvedParty%20%3Forganisationrole.%0A%3Forganisationrole%20eurio%3AroleLabel%20%3Frole.%0A%3Forganisationrole%20eurio%3AroleLabel%20%22coordinator%22.%0A%3Forganisationrole%20eurio%3AisRoleOf%2Feurio%3AlegalName%20%3Forganisation.%0A%23%20...%20with%20address%20country%20for%20the%20sites%20defined%20at%20'FR'%0A%3Forganisationrole%20eurio%3AisRoleOf%2Feurio%3AhasSite%2Feurio%3AhasAddress%2Feurio%3AaddressCountry%20%3Fcountry.%0AVALUES%20%3Fcountry%20%7B%20'FR'%20%7D%0A%7D%20LIMIT%20100&amp;endpoint=https%3A%2F%2Fcordis.europa.eu%2Fdatalab%2Fsparql&amp;requestMethod=POST&amp;tabTitle=Query&amp;headers=%7B%7D&amp;contentTypeConstruct=application%2Fn-triples%2C*%2F*%3Bq&amp;contentTypeSelect=application%2Fsparql-results%2Bjson%2C*%2F*%3Bq&amp;outputFormat=table">See the results</a></p>
<p>Depending on available data, you can either query via PostalAddress info (eurio:addressCountry &lsquo;FR&rsquo;) or AdministrativeArea (eurio:hasGeographicalLocation) &#8230; Here we&rsquo;re lucky as both fields are mandatory ones.</p>
<p>Last but not least, we can also play with CORDIS vocabularies : here you&rsquo;ll have the choice to investigate via plain keywords of Projects or Publications items, querying titles, abstracts or other types of literals&#8230;</p>
<p>An example of projects with abstracts containing string ❄ &lsquo;winter&rsquo; ❄ &#8211; the URL giving the exact link to the project online :</p>
<table>
<tbody>
<tr>
<td><strong>Looking for ❄ &lsquo;winter&rsquo; ❄ in CORDIS projects abstracts (with nice URL to go)</strong></p>
<p>PREFIX eurio: &lt;http://data.europa.eu/s66#&gt;<br />
PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;<br />
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;<br />
SELECT?project ?acronym ?abstract ?url<br />
WHERE {<br />
# select the projects with their acronyms and abstracts &#8230;<br />
?project rdf:type eurio:Project.<br />
?project eurio:hasAcronym/eurio:shortForm ?acronym.<br />
?project eurio:abstract ?abstract.<br />
# &#8230; with a filter on abstracts containing string &lsquo;winter&rsquo; case insensitive &#8230;<br />
FILTER (regex(str(?abstract), &lsquo;winter&rsquo;, &lsquo;i&rsquo;))<br />
# &#8230; generating proper CORDIS website URLs based on RCN project code<br />
?project eurio:rcn ?rcn.<br />
BIND(IRI(CONCAT(&lsquo;https://cordis.europa.eu/project/rcn/&rsquo;, ?rcn)) AS ?url)<br />
} LIMIT 100</td>
</tr>
</tbody>
</table>
<p>▶️ <a href="https://cordis.europa.eu/datalab/sparql-endpoint#query=%23%20Looking%20for%20%E2%9D%84%20'winter'%20%E2%9D%84%20in%20CORDIS%20projects%20abstracts%20(with%20nice%20URL%20to%20go)%0A%0APREFIX%20eurio%3A%20%3Chttp%3A%2F%2Fdata.europa.eu%2Fs66%23%3E%0APREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0ASELECT%3Fproject%20%3Facronym%20%3Fabstract%20%3Furl%0AWHERE%20%7B%0A%23%20select%20the%20projects%20with%20their%20acronyms%20and%20abstracts%20...%0A%3Fproject%20rdf%3Atype%20eurio%3AProject.%0A%3Fproject%20eurio%3AhasAcronym%2Feurio%3AshortForm%20%3Facronym.%0A%3Fproject%20eurio%3Aabstract%20%3Fabstract.%0A%23%20...%20with%20a%20filter%20on%20abstracts%20containing%20string%20'winter'%20case%20insensitive%20...%0AFILTER%20(regex(str(%3Fabstract)%2C%20'winter'%2C%20'i'))%0A%23%20...%20generating%20proper%20CORDIS%20website%20URLs%20based%20on%20RCN%20project%20code%0A%3Fproject%20eurio%3Arcn%20%3Frcn.%0ABIND(IRI(CONCAT('https%3A%2F%2Fcordis.europa.eu%2Fproject%2Frcn%2F'%2C%20%3Frcn))%20AS%20%3Furl)%0A%7D%20LIMIT%20100&amp;endpoint=https%3A%2F%2Fcordis.europa.eu%2Fdatalab%2Fsparql&amp;requestMethod=POST&amp;tabTitle=Query%201&amp;headers=%7B%7D&amp;contentTypeConstruct=application%2Fn-triples%2C*%2F*%3Bq&amp;contentTypeSelect=application%2Fsparql-results%2Bjson%2C*%2F*%3Bq&amp;outputFormat=table">See the results</a></p>
<p>But funniest way will be using EuroSciVoc taxonomy (and navigating through thesaurus hierarchy) : to do so we need to navigate through property &laquo;&nbsp;eurio:hasEuroSciVocClassification&nbsp;&raquo; to get the Concepts skosxl:prefLabel property &#8230; to finally obtain the thesaurus labels (don&rsquo;t forget to choose a prefered language with a FILTER (lang parameter) :</p>
<table>
<tbody>
<tr>
<td><strong>Projects with their associated EuroSciVoc keywords (English prefLabels <img src="https://s.w.org/images/core/emoji/72x72/1f482.png" alt="💂" class="wp-smiley" style="height: 1em; max-height: 1em;" />)</strong></p>
<p>PREFIX skosxl: &lt;http://www.w3.org/2008/05/skos-xl#&gt;<br />
PREFIX skos: &lt;http://www.w3.org/2004/02/skos/core#&gt;<br />
PREFIX eurio: &lt;http://data.europa.eu/s66#&gt;<br />
PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;<br />
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;<br />
SELECT ?project ?acronym ?ESV<br />
WHERE {<br />
# select the projects with their acronyms &#8230;<br />
?project eurio:hasAcronym/eurio:shortForm ?acronym.<br />
# &#8230; with EuroSciVoc Classification prefLabels &#8230;<br />
?project eurio:hasEuroSciVocClassification/skosxl:prefLabel/skosxl:literalForm ?ESV.<br />
# &#8230; only returning &lsquo;English&rsquo; prefLabels<br />
FILTER (lang(?ESV) = &lsquo;en&rsquo;)<br />
} LIMIT 100</td>
</tr>
</tbody>
</table>
<p>▶️ <a href="https://cordis.europa.eu/datalab/sparql-endpoint#query=%23%20Projects%20with%20their%20associated%20EuroSciVoc%20keywords%20(English%20prefLabels%20%F0%9F%92%82)%0A%0APREFIX%20skosxl%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2008%2F05%2Fskos-xl%23%3E%0APREFIX%20skos%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2004%2F02%2Fskos%2Fcore%23%3E%0APREFIX%20eurio%3A%20%3Chttp%3A%2F%2Fdata.europa.eu%2Fs66%23%3E%0APREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0ASELECT%20%3Fproject%20%3Facronym%20%3FESV%0AWHERE%20%7B%0A%23%20select%20the%20projects%20with%20their%20acronyms%20...%0A%3Fproject%20eurio%3AhasAcronym%2Feurio%3AshortForm%20%3Facronym.%0A%23%20...%20with%20EuroSciVoc%20Classification%20prefLabels%20...%0A%3Fproject%20eurio%3AhasEuroSciVocClassification%2Fskosxl%3AprefLabel%2Fskosxl%3AliteralForm%20%3FESV.%0A%23%20...%20only%20returning%20'English'%20prefLabels%0AFILTER%20(lang(%3FESV)%20%3D%20'en')%0A%7D%20LIMIT%20100%0A&amp;endpoint=https%3A%2F%2Fcordis.europa.eu%2Fdatalab%2Fsparql&amp;requestMethod=POST&amp;tabTitle=Query%203&amp;headers=%7B%7D&amp;contentTypeConstruct=application%2Fn-triples%2C*%2F*%3Bq&amp;contentTypeSelect=application%2Fsparql-results%2Bjson%2C*%2F*%3Bq&amp;outputFormat=table">See the results</a></p>
<p><span style="font-weight: 400;">A bit more complex one using first level of hierarchy of the taxonomy : here we are searching for all skos:broader concepts &laquo;&nbsp;with no other broader concept&nbsp;&raquo; (the FILTER NOT EXISTS formula), aka the top concepts or root concepts of the vocabulary used to describe the projects. Then counting the projects by each category :</span></p>
<table>
<tbody>
<tr>
<td><strong>All root categories of EuroSciVoc used to describe the projects</strong></p>
<p>PREFIX skosxl: &lt;http://www.w3.org/2008/05/skos-xl#&gt;<br />
PREFIX skos: &lt;http://www.w3.org/2004/02/skos/core#&gt;<br />
PREFIX eurio: &lt;http://data.europa.eu/s66#&gt;<br />
PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;<br />
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;<br />
# count the number of projects by EuroSciVoc top categories &#8230;<br />
SELECT (COUNT(?project) AS ?nbProject) ?ESV_root_label<br />
WHERE {<br />
# &#8230; the top categories are Concepts &#8230;<br />
?ESV_root a skos:Concept .<br />
# &#8230; with no broader Concept &#8230;<br />
FILTER NOT EXISTS { ?ESV_root skos:broader ?anything }<br />
# &#8230; list with corresponding projects &#8230;<br />
?ESV_root ^skos:broader*/^eurio:hasEuroSciVocClassification ?project .<br />
# &#8230; and EuroSciVoc corresponding skos-xl prefLabels &#8230;<br />
?ESV_root skosxl:prefLabel/skosxl:literalForm ?ESV_root_label.<br />
# &#8230; sorting by EuroSciVoc category, with English prefLabels<br />
FILTER (lang(?ESV_root_label) = &lsquo;en&rsquo;)<br />
} GROUP BY ?ESV_root_label<br />
LIMIT 100</td>
</tr>
</tbody>
</table>
<p>▶️ <a href="https://cordis.europa.eu/datalab/sparql-endpoint#query=%23%20All%20root%20categories%20of%20EuroSciVoc%20used%20to%20describe%20the%20projects%0A%0APREFIX%20skosxl%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2008%2F05%2Fskos-xl%23%3E%0APREFIX%20skos%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2004%2F02%2Fskos%2Fcore%23%3E%0APREFIX%20eurio%3A%20%3Chttp%3A%2F%2Fdata.europa.eu%2Fs66%23%3E%0APREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0A%23%20count%20the%20number%20of%20projects%20by%20EuroSciVoc%20top%20categories%20...%0ASELECT%20(COUNT(%3Fproject)%20AS%20%3FnbProject)%20%3FESV_root_label%0AWHERE%20%7B%0A%23%20...%20the%20top%20categories%20are%20Concepts%20...%0A%3FESV_root%20a%20skos%3AConcept%20.%0A%23%20...%20with%20no%20broader%20Concept%20...%0AFILTER%20NOT%20EXISTS%20%7B%20%3FESV_root%20skos%3Abroader%20%3Fanything%20%7D%0A%23%20...%20list%20with%20corresponding%20projects%20...%0A%3FESV_root%20%5Eskos%3Abroader*%2F%5Eeurio%3AhasEuroSciVocClassification%20%3Fproject%20.%0A%23%20...%20and%20EuroSciVoc%20corresponding%20skos-xl%20prefLabels%20...%0A%3FESV_root%20skosxl%3AprefLabel%2Fskosxl%3AliteralForm%20%3FESV_root_label.%0A%23%20...%20sorting%20by%20EuroSciVoc%20category%2C%20with%20English%20prefLabels%0AFILTER%20(lang(%3FESV_root_label)%20%3D%20'en')%0A%7D%20GROUP%20BY%20%3FESV_root_label%0ALIMIT%20100&amp;endpoint=https%3A%2F%2Fcordis.europa.eu%2Fdatalab%2Fsparql&amp;requestMethod=POST&amp;tabTitle=Query%201&amp;headers=%7B%7D&amp;contentTypeConstruct=application%2Fn-triples%2C*%2F*%3Bq&amp;contentTypeSelect=application%2Fsparql-results%2Bjson%2C*%2F*%3Bq&amp;outputFormat=table">See the results</a></p>
<p>&#8230; and maybe again more explicit results if refined to level 2 of hierarchy <img src="https://s.w.org/images/core/emoji/72x72/1f440.png" alt="👀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> :</p>
<table>
<tbody>
<tr>
<td><strong>All &lsquo;level 2&prime; root categories of EuroSciVoc used to describe the projects</strong></p>
<p>PREFIX skosxl: &lt;http://www.w3.org/2008/05/skos-xl#&gt;<br />
PREFIX skos: &lt;http://www.w3.org/2004/02/skos/core#&gt;<br />
PREFIX eurio: &lt;http://data.europa.eu/s66#&gt;<br />
PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;<br />
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;<br />
# count the number of projects by EuroSciVoc level 2 top categories &#8230;<br />
SELECT (COUNT(?project) AS ?nbProject) ?ESV_root_label ?ESV_level2_label<br />
WHERE {<br />
# &#8230; the top categories are Concepts &#8230;<br />
?ESV_root a skos:Concept .<br />
# &#8230; with no broader Concept &#8230;<br />
FILTER NOT EXISTS { ?ESV_root skos:broader ?anything }<br />
# &#8230; list level 2 category below level 1 with corresponding projects &#8230;<br />
?ESV_root ^skos:broader ?ESV_level2 .<br />
?ESV_level2 ^skos:broader*/^eurio:hasEuroSciVocClassification ?project .<br />
# &#8230; and EuroSciVoc corresponding skos-xl prefLabels &#8230;<br />
?ESV_root skosxl:prefLabel/skosxl:literalForm ?ESV_root_label.<br />
?ESV_level2 skosxl:prefLabel/skosxl:literalForm ?ESV_level2_label.<br />
# &#8230; sorting by EuroSciVoc category, with English prefLabels<br />
FILTER (lang(?ESV_root_label) = &lsquo;en&rsquo;)<br />
FILTER (lang(?ESV_level2_label) = &lsquo;en&rsquo;)<br />
} GROUP BY ?ESV_root_label ?ESV_level2_label<br />
ORDER BY ?ESV_root_label<br />
LIMIT 100</td>
</tr>
</tbody>
</table>
<p>▶️ <a href="https://cordis.europa.eu/datalab/sparql-endpoint#query=%23%20All%20'level%202'%20root%20categories%20of%20EuroSciVoc%20used%20to%20describe%20the%20projects%0A%0APREFIX%20skosxl%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2008%2F05%2Fskos-xl%23%3E%0APREFIX%20skos%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2004%2F02%2Fskos%2Fcore%23%3E%0APREFIX%20eurio%3A%20%3Chttp%3A%2F%2Fdata.europa.eu%2Fs66%23%3E%0APREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0A%23%20count%20the%20number%20of%20projects%20by%20EuroSciVoc%20level%202%20top%20categories%20...%0ASELECT%20(COUNT(%3Fproject)%20AS%20%3FnbProject)%20%3FESV_root_label%20%3FESV_level2_label%0AWHERE%20%7B%0A%23%20...%20the%20top%20categories%20are%20Concepts%20...%0A%3FESV_root%20a%20skos%3AConcept%20.%0A%23%20...%20with%20no%20broader%20Concept%20...%0AFILTER%20NOT%20EXISTS%20%7B%20%3FESV_root%20skos%3Abroader%20%3Fanything%20%7D%0A%23%20...%20list%20level%202%20category%20below%20level%201%20with%20corresponding%20projects%20...%0A%3FESV_root%20%5Eskos%3Abroader%20%3FESV_level2%20.%0A%3FESV_level2%20%5Eskos%3Abroader*%2F%5Eeurio%3AhasEuroSciVocClassification%20%3Fproject%20.%0A%23%20...%20and%20EuroSciVoc%20corresponding%20skos-xl%20prefLabels%20...%0A%3FESV_root%20skosxl%3AprefLabel%2Fskosxl%3AliteralForm%20%3FESV_root_label.%0A%3FESV_level2%20skosxl%3AprefLabel%2Fskosxl%3AliteralForm%20%3FESV_level2_label.%0A%23%20...%20sorting%20by%20EuroSciVoc%20category%2C%20with%20English%20prefLabels%0AFILTER%20(lang(%3FESV_root_label)%20%3D%20'en')%0AFILTER%20(lang(%3FESV_level2_label)%20%3D%20'en')%0A%7D%20GROUP%20BY%20%3FESV_root_label%20%3FESV_level2_label%0AORDER%20BY%20%3FESV_root_label%0ALIMIT%20100&amp;endpoint=https%3A%2F%2Fcordis.europa.eu%2Fdatalab%2Fsparql&amp;requestMethod=POST&amp;tabTitle=Query&amp;headers=%7B%7D&amp;contentTypeConstruct=application%2Fn-triples%2C*%2F*%3Bq&amp;contentTypeSelect=application%2Fsparql-results%2Bjson%2C*%2F*%3Bq&amp;outputFormat=table">See the results</a></p>
<p>And a little last one with a count, to enumerate most used EuroSciVoc Concepts for indexing projects :</p>
<table>
<tbody>
<tr>
<td><strong>Most used EuroSciVoc Concepts for indexing projects</strong></p>
<p>PREFIX skosxl: &lt;http://www.w3.org/2008/05/skos-xl#&gt;<br />
PREFIX skos: &lt;http://www.w3.org/2004/02/skos/core#&gt;<br />
PREFIX eurio: &lt;http://data.europa.eu/s66#&gt;<br />
PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;<br />
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;<br />
# count the number of projects by EuroSciVoc Concept &#8230;<br />
SELECT (COUNT (?project) as ?count) ?ESV<br />
WHERE {<br />
#  &#8230; select the projects with their acronyms &#8230;<br />
?project eurio:hasAcronym/eurio:shortForm ?acronym.<br />
# &#8230; with EuroSciVoc Classification prefLabels &#8230;<br />
?project eurio:hasEuroSciVocClassification/skosxl:prefLabel/skosxl:literalForm ?ESV.<br />
# &#8230; sorting by EuroSciVoc Concept, with English prefLabels<br />
FILTER (lang(?ESV) = &lsquo;en&rsquo;)<br />
} GROUP BY ?ESV<br />
ORDER BY DESC(?count)<br />
LIMIT 3000</td>
</tr>
</tbody>
</table>
<p>▶️ <a href="https://cordis.europa.eu/datalab/sparql-endpoint#query=%23%20Most%20used%20EuroSciVoc%20Concepts%20for%20indexing%20projects%0A%0APREFIX%20skosxl%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2008%2F05%2Fskos-xl%23%3E%0APREFIX%20skos%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2004%2F02%2Fskos%2Fcore%23%3E%0APREFIX%20eurio%3A%20%3Chttp%3A%2F%2Fdata.europa.eu%2Fs66%23%3E%0APREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0A%23%20count%20the%20number%20of%20projects%20by%20EuroSciVoc%20Concept%20...%0ASELECT%20(COUNT%20(%3Fproject)%20as%20%3Fcount)%20%3FESV%0AWHERE%20%7B%0A%23%20%20...%20select%20the%20projects%20with%20their%20acronyms%20...%0A%3Fproject%20eurio%3AhasAcronym%2Feurio%3AshortForm%20%3Facronym.%0A%23%20...%20with%20EuroSciVoc%20Classification%20prefLabels%20...%0A%3Fproject%20eurio%3AhasEuroSciVocClassification%2Fskosxl%3AprefLabel%2Fskosxl%3AliteralForm%20%3FESV.%0A%23%20...%20sorting%20by%20EuroSciVoc%20Concept%2C%20with%20English%20prefLabels%0AFILTER%20(lang(%3FESV)%20%3D%20'en')%0A%7D%20GROUP%20BY%20%3FESV%0AORDER%20BY%20DESC(%3Fcount)%0ALIMIT%203000&amp;endpoint=https%3A%2F%2Fcordis.europa.eu%2Fdatalab%2Fsparql&amp;requestMethod=POST&amp;tabTitle=Query%201&amp;headers=%7B%7D&amp;contentTypeConstruct=application%2Fn-triples%2C*%2F*%3Bq&amp;contentTypeSelect=application%2Fsparql-results%2Bjson%2C*%2F*%3Bq&amp;outputFormat=table">See the results</a></p>
<p><img src="https://s.w.org/images/core/emoji/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" />This one an ideal one to generate a word cloud maybe ?</p>
<p>What if we send the CSV data to <a href="https://wordart.com/create">some nice online word cloud generator</a> then ?</p>
<p><a href="https://wordart.com/r8zsokkk7ghu/untitled"><img class="aligncenter size-full wp-image-1710" src="http://blog.sparna.fr/wp-content/uploads/2024/01/Cordis-Taxo-Cloud.png" alt="Cordis Taxo Cloud" width="660" height="757" /></a></p>
<p>(OMG <a href="https://wordart.com/create">they also have a shooting star shape</a> <img src="https://s.w.org/images/core/emoji/72x72/1f320.png" alt="🌠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> in there 🤩)</p>
<p><strong>As a conclusion&#8230;</strong></p>
<p><span style="font-weight: 400;">According to Science (CORDIS saying !), <a href="https://europa.eu/!vYVHXD">New Year’s resolutions appear difficult to be held</a></span><span style="font-weight: 400;">&#8230; because most of time too ambitious, restrictive or unprecisely formulated : indeed, « </span><span style="font-weight: 400;">the </span><a href="https://cordis.europa.eu/article/id/428767-trending-science-do-this-one-thing-to-keep-your-new-year-s-resolutions-research-says"><span style="font-weight: 400;">effectiveness of resolutions depends on how they are </span><b>framed</b></a><span style="font-weight: 400;">.</span><span style="font-weight: 400;"> »</span></p>
<p><span style="font-weight: 400;">Horizon 2024, let’s suggest a(n RDF ?) well-framed one : may CORDIS SPARQL endpoint initiative be an example for other structures who want to share Linked Open Data !</span></p>
<p><span style="font-weight: 400;"><strong>Wishing you Best Interoperability and a Very Merry ✨ Sparqling New Year !</strong> ✨</span></p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2024/01/15/cordis-a-sparql-endpoint-is-born/">CORDIS : a SPARQL endpoint is born !</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sparna.fr/2024/01/15/cordis-a-sparql-endpoint-is-born/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2013-2023 : ‘Tis SKOSPlay!’s Birthday !</title>
		<link>https://blog.sparna.fr/2023/03/13/2013-2023-tis-skosplays-birthday/</link>
		<comments>https://blog.sparna.fr/2023/03/13/2013-2023-tis-skosplays-birthday/#comments</comments>
		<pubDate>Mon, 13 Mar 2023 14:28:53 +0000</pubDate>
		<dc:creator><![CDATA[Marie Muller]]></dc:creator>
				<category><![CDATA[Linked Data]]></category>
		<category><![CDATA[Ontologies]]></category>
		<category><![CDATA[OWL]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[SHACL]]></category>
		<category><![CDATA[SHACL Play]]></category>
		<category><![CDATA[SKOS]]></category>
		<category><![CDATA[SKOS Play]]></category>
		<category><![CDATA[Thesaurus]]></category>
		<category><![CDATA[Visualisation de données]]></category>
		<category><![CDATA[ontologie]]></category>
		<category><![CDATA[skos play]]></category>
		<category><![CDATA[thesaurus]]></category>
		<category><![CDATA[web sémantique]]></category>

		<guid isPermaLink="false">http://blog.sparna.fr/?p=1540</guid>
		<description><![CDATA[<p>Hi, it’s Marie (aka chutjetweet here). To be short I’m a documentalist, terminologist, old (linked &#8211; open) data maniac &#38; lil’ onto-Padawan and… just came to join Sparna’s team this early January ! To inaugurate my first article on Sparna’s blog, let’s share a little feedback of mine today about Sparna’s well-known SKOSPlay! whose 10 years’ birthday&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2023/03/13/2013-2023-tis-skosplays-birthday/">2013-2023 : ‘Tis SKOSPlay!’s Birthday !</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><span style="font-weight: 400;">Hi, it’s Marie (aka chutjetweet </span><a href="https://twitter.com/chutjetweet"><span style="font-weight: 400;">here</span></a><span style="font-weight: 400;">). To be short I’m a documentalist, terminologist, old (linked &#8211; open) data maniac &amp; lil’ onto-Padawan and… just came to join Sparna’s team this early January !</span></p>
<p><span style="font-weight: 400;">To inaugurate my first article on Sparna’s blog, let’s share a little feedback of mine today about Sparna’s well-known </span><a href="https://skos-play.sparna.fr/play/"><span style="font-weight: 400;">SKOSPlay!</span></a><span style="font-weight: 400;"> whose 10 years’ birthday is to celebrate this year !</span></p>
<p><span style="font-weight: 400;">10 yo, quite a historic tool ! but more than ever actual in a context where the semantic technologies get front of the scene anew due to growing interest shown by the digital humanities movement to data interoperability projects via the standardized knowledge structuration (Wikipedia-Wikidata projects e.g., as semantic wiki devices), and also due to the last progress of artificial intelligence, now able to processing large amount of data and </span><a href="https://www.epimorphics.com/writing-ontologies-with-chatgpt/"><span style="font-weight: 400;">soon fully leveraging the potential of ontologies and knowledge graphs</span></a><span style="font-weight: 400;">.</span></p>
<table>
<tbody>
<tr>
<td><i><span style="font-weight: 400;"><a href="https://twitter.com/taxobob/status/1615594349512851456"><img class="alignnone wp-image-1561 size-full" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image5.png" alt="image5" width="878" height="321" /></a></span></i><em><span style="font-weight: 400;">From asking for a taxonomy </span><a href="https://twitter.com/mommi84/status/1631027355987656706"><span style="font-weight: 400;">to querying RDF files with an API</span></a><span style="font-weight: 400;">…</span></em></td>
</tr>
</tbody>
</table>
<p><span style="font-weight: 400;">This said, in a more practical way, semantic web standards are not always easy to manipulate as a professional &#8211; if non-initiate to SPARQL and nor confirmed data scientist, and even when you have got to deal with a simple structured list of terms !</span></p>
<p><span style="font-weight: 400;">Either your data is already SKOS-standardized (great !), there sometimes come to have a gap between normalization step and visualization step that requires a bit more technical IT skills. Either &#8211; most of time &#8211; the common muggle-born is to start with a plain Excel spreadsheet, create a list, add some hierarchy, maybe other scope notes or definitions and&#8230; end far puzzled wondering how to </span><span style="font-weight: 400;">get </span><a href="https://www.w3.org/DesignIssues/diagrams/lod/597992118v2_350x350_Back.jpg"><span style="font-weight: 400;">a 5-star data vocabulary</span></a><span style="font-weight: 400;"> ⭐ !</span></p>
<p>&nbsp;</p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2023/03/image14.gif"><img class="alignnone size-full wp-image-1577" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image14.gif" alt="image14" width="500" height="208" /></a></p>
<p>&nbsp;</p>
<p><strong>A SKOSPlay!-within-a-SKOSPlay!</strong></p>
<table>
<tbody>
<tr>
<td><a href="https://twitter.com/belett/status/1583128873877008384"><img class="alignnone wp-image-1565 size-full" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image3.png" alt="image3" width="886" height="359" /></a><em><span style="font-weight: 400;">Wink to <a href="https://twitter.com/belett">@belett</a>, anything possible now with SKOSPlay!</span></em></td>
</tr>
</tbody>
</table>
<p><span style="font-weight: 400;">Aiming at visualizing (and printing !) SKOS thesauri, taxonomies and vocabularies at the very beginning, SKOSPlay! is a full online free and open source tool leveraging semantic technologies (RDF, SPARQL, inference, Linked Data) to generate downloadable HTML or PDF documents. More and more new features have been added since then : alignments display, OWL and SKOS-XL files processing, autocomplete fields and permuted indexes generating …</span></p>
<table>
<tbody>
<tr>
<td><a href="https://twitter.com/veronikaheim/status/1612375648948846592"><img class="alignnone size-full wp-image-1566" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image7.png" alt="image7" width="884" height="237" /></a><em><span style="font-weight: 400;">Hello <a href="https://twitter.com/veronikaheim">@veronikaheim</a>, maybe SKOSPlay! could match your need ?</span></em></td>
</tr>
</tbody>
</table>
<p><span style="font-weight: 400;">… among other nice and useful developments.</span></p>
<p><span style="font-weight: 400;">But as an Excel aficionada, the one that I prefer is </span><a href="https://skos-play.sparna.fr/play/convert?lang=en"><span style="font-weight: 400;">the Excel-to-RDF converter tool</span></a><span style="font-weight: 400;">.</span></p>
<p><span style="font-weight: 400;">One sheet. One import. One result. Easy-peasy, happy terminologist :))</span></p>
<p><span style="font-weight: 400;">(And you can even keep your custom colors templates and formats !!! </span><span style="font-weight: 400;">🦄</span><span style="font-weight: 400;"> )</span></p>
<p>&nbsp;</p>
<p><strong>Come on &amp; let’s SKOSPlay!</strong></p>
<p><span style="font-weight: 400;">Let&rsquo;s figure out you want to display or construct a small vocabulary you could quickly visualize in a standardized SKOS-structured way :</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2023/03/image10-2.png"><img class="alignnone size-full wp-image-1607" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image10-2.png" alt="image10-2" width="1657" height="1079" /></a></p>
<p><span style="font-weight: 400;">Now to fit in the SKOS model your data has to follow </span><a href="https://skos-play.sparna.fr/play/excel_test/excel2skos-exemple-1.xlsx"><span style="font-weight: 400;">a particular template</span></a><span style="font-weight: 400;"> you can fullfill by downloading on SKOSPlay! website.</span></p>
<p><span style="font-weight: 400;">First you have to define </span><a href="https://skos-play.sparna.fr/play/convert#excel-file-structure"><span style="font-weight: 400;">the header of the template</span></a><span style="font-weight: 400;"> : the global scheme of your vocabulary, its URI, title and description :</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2023/03/image12.png"><img class="alignnone size-full wp-image-1575" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image12.png" alt="image12" width="1347" height="189" /></a></p>
<p><span style="font-weight: 400;">Adding the terms of your list (with the URIs)… Here with the “@en” language indication on top of the column </span><a href="https://skos-play.sparna.fr/play/convert#languages"><span style="font-weight: 400;">as I am to create an English-French multilingual vocabulary</span></a><span style="font-weight: 400;"> :</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2023/03/image15.png"><img class="alignnone size-full wp-image-1578" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image15.png" alt="image15" width="1509" height="1021" /></a></p>
<p><span style="font-weight: 400;">Recreating the arborescent structure through the Excel template (don’t mind my color palette, I always like colouring my Excel sheets to better visualize the info at a glance !).</span></p>
<p><span style="font-weight: 400;">The hierarchical broader-narrower structure is to be recreated </span><a href="https://skos-play.sparna.fr/play/convert#sheet-body"><span style="font-weight: 400;">by adding a “skos:narrower” column</span></a><span style="font-weight: 400;"> (or skos:broader, as you want, with only 1 broader value per line) where you will list the different specific values front of the more generic one (separated by comas). Here I used a PREFIX too in order to shorten my http:// URIs, SKOSPlay! can process them anyway !</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2023/03/image9.png"><img class="alignnone size-full wp-image-1572" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image9.png" alt="image9" width="1943" height="1431" /></a></p>
<p><span style="font-weight: 400;">Then adding a few notes and other information (multilingual values, skos:notation, any other default properties known in the converter (</span><a href="https://skos-play.sparna.fr/play/convert#prefixes"><span style="font-weight: 400;">see the documentation</span></a><span style="font-weight: 400;">) or different custom elements of yours by adding other PREFIXes :</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2023/03/image4.png"><img class="alignnone size-full wp-image-1569" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image4.png" alt="image4" width="1999" height="1269" /></a></p>
<p><span style="font-weight: 400;">Your Excel template is ready to go ! quite an easy configuration in my demo here, but SKOSPlay! can also deal with skos:Collections, SKOS-XL and other </span><a href="https://skos-play.sparna.fr/play/convert#advanced-features"><span style="font-weight: 400;">advanced RDF structures</span></a><span style="font-weight: 400;"> : blank nodes, RDF lists, named graphs. And now possible to generate OWL and SHACL files with the converter too !</span></p>
<p><span style="font-weight: 400;">Now it’s time to turn your (finally-not-so-dirty-<img src="https://s.w.org/images/core/emoji/72x72/1f438.png" alt="🐸" class="wp-smiley" style="height: 1em; max-height: 1em;" />) data into a SKOS-charming file. Take your favorite </span><del><span style="font-weight: 400;">magic wand</span></del><span style="font-weight: 400;"> SKOSPlay! </span><a href="https://skos-play.sparna.fr/play/convert"><span style="font-weight: 400;">Excel-to-RDF converter tool</span></a><span style="font-weight: 400;"> and load your Excel file in it (adding some optional parameters if needed).</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2023/03/image8.png"><img class="alignnone size-full wp-image-1571" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image8.png" alt="image8" width="1601" height="885" /></a></p>
<p><span style="font-weight: 400;">Well done, it’s a wonderful RDF-ized vocabulary file (here in a Turtle format but you have also RDF/XML, N-Triples, N-Quads, N3 and TriG available) :</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2023/03/image1.png"><img class="alignnone size-full wp-image-1567" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image1.png" alt="image1" width="1617" height="1029" /></a></p>
<p>&nbsp;</p>
<p><strong>Wingardium Visualiza !</strong></p>
<p>We&rsquo;re almost done. <span style="font-weight: 400;">Go back to the website, </span><a href="https://skos-play.sparna.fr/play/upload"><span style="font-weight: 400;">tab “Play!”</span></a><span style="font-weight: 400;">, load your last RDF-serialized file and go to the next step to chose the kind of display you want to get, endly press (SKOS)Play! and … abracadataaaaaaa !</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2023/03/image2.png"><img class="alignnone size-full wp-image-1568" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image2.png" alt="image2" width="1657" height="1197" /></a></p>
<p><span style="font-weight: 400;">Many different options to visualize your arborescent data. Tree, static and dynamic, but also more « professional » and printable sorts of displays like alphabetical, hierarchical or permuted views :</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2023/03/image6.png"><img class="alignnone size-full wp-image-1570" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image6.png" alt="image6" width="1999" height="1361" /></a></p>
<p><span style="font-weight: 400;">And KWIC (as for « </span><span style="font-weight: 400;">KeyWord In Context ») :</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2023/03/image13.png"><img class="alignnone size-full wp-image-1576" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image13.png" alt="image13" width="1999" height="937" /></a></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Even possible to load an online Google spreadsheet (</span><a href="https://docs.google.com/spreadsheets/d/1MpN4tzd7S7m7Dnr7IFOz43YoWcSYqUG1/edit?usp=share_link&amp;ouid=118425122592371390359&amp;rtpof=true&amp;sd=true"><span style="font-weight: 400;">mine is shared here</span></a><span style="font-weight: 400;">), just by adapting a little its URL for the converter’s need. Interesting feature in a collaborative purpose when you are team-building a vocabulary !</span></p>
<p><span style="font-weight: 400;">The whole pack </span><a href="https://skos-play.sparna.fr/play/convert#documentation"><span style="font-weight: 400;">fully documented</span></a><span style="font-weight: 400;"> and findable on Sparna’s </span><a href="https://skos-play.sparna.fr/play/"><span style="font-weight: 400;">website</span></a><span style="font-weight: 400;"> &amp; </span><a href="https://github.com/sparna-git/skos-play"><span style="font-weight: 400;">Git</span></a><span style="font-weight: 400;">. Some recent users even produced a </span><a href="http://blog.sparna.fr/2021/06/30/fair-data-collective-is-doing-cool-things-with-skos-play-and-xls2rdf/"><span style="font-weight: 400;">short video tutorial</span></a><span style="font-weight: 400;"> to show what they managed to do with different SKOSPlay! visualization tools.</span></p>
<p><span style="font-weight: 400;">Already knew about SKOSPlay! ? go see his little brother, </span><a href="https://shacl-play.sparna.fr/play/home;jsessionid=40BBB04DA1F3DCC1EBFB084A08EE2924?lang=en"><span style="font-weight: 400;">SHACLPlay!</span></a><span style="font-weight: 400;"> and feel free to give us some feedback in the comments <img src="https://blog.sparna.fr/wp-includes/images/smilies/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span></p>
<p><span style="font-weight: 400;">Happy Birthday SKOSPlay! &amp; Long live Semantic Web !</span></p>
<p><span style="font-weight: 400;">A bit more Vouvray with your nougat de Tours ?</span></p>
<p><a href="https://www.my-loire-valley.com/2018/06/top-10-des-specialites-gourmandes-de-touraine/"><img class="alignnone size-full wp-image-1574" src="http://blog.sparna.fr/wp-content/uploads/2023/03/image11.png" alt="image11" width="1280" height="939" /></a></p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2023/03/13/2013-2023-tis-skosplays-birthday/">2013-2023 : ‘Tis SKOSPlay!’s Birthday !</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sparna.fr/2023/03/13/2013-2023-tis-skosplays-birthday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dessiner des ontologies, visualiser des graphes : quels outils ?</title>
		<link>https://blog.sparna.fr/2020/07/29/dessiner-ontologies-visualiser-graphes-outils/</link>
		<comments>https://blog.sparna.fr/2020/07/29/dessiner-ontologies-visualiser-graphes-outils/#comments</comments>
		<pubDate>Wed, 29 Jul 2020 13:25:09 +0000</pubDate>
		<dc:creator><![CDATA[Thomas Francart]]></dc:creator>
				<category><![CDATA[Visualisation de données]]></category>

		<guid isPermaLink="false">http://blog.sparna.fr/?p=1317</guid>
		<description><![CDATA[<p>Un récent fil de discussion sur la mailing-list public-lod demandait quels étaient les bons &#171;&#160;Graphic softwares for creating drawings and diagrams in cross-sectoral scientific papers&#160;&#187; (sic), ce qui m&#8217;a donné envie de compiler les différents outils cités en réponse, mais aussi d&#8217;autres qui n&#8217;ont pas été cités et que j&#8217;utilise ponctuellement. Dans le métier d&#8217;ingénieur&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2020/07/29/dessiner-ontologies-visualiser-graphes-outils/">Dessiner des ontologies, visualiser des graphes : quels outils ?</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Un <a href="https://lists.w3.org/Archives/Public/public-lod/2020Jul/0003.html">récent fil de discussion</a> sur la mailing-list public-lod demandait quels étaient les bons<em> &laquo;&nbsp;Graphic softwares for creating drawings and diagrams in cross-sectoral scientific papers&nbsp;&raquo;</em> (sic), ce qui m&rsquo;a donné envie de compiler les différents outils cités en réponse, mais aussi d&rsquo;autres qui n&rsquo;ont pas été cités et que j&rsquo;utilise ponctuellement. Dans le métier d&rsquo;ingénieur de la connaissance et du travail sur la data, il est indispensable de savoir non seulement concevoir mais aussi expliquer et transmettre la structure d&rsquo;un modèle de données ou d&rsquo;un graphe, et rien de mieux qu&rsquo;une représentation visuelle pour cela.</p>
<p>Il y a deux grandes catégories d&rsquo;outils : les outils d&rsquo;<em>authoring</em>, en phase de conception d&rsquo;ontologie et pour pouvoir communiquer sur un modèle de données, et des outils de visualisation qui permettent de voir des graphes RDF ou des modèles déjà constitués.</p>
<h1>Dessiner/concevoir des ontologies</h1>
<h2>Powerpoint / Google slides</h2>
<p>Je suis un utilisateur de Linux et Ubuntu est mon environnement de travail quotidien. Et pourtant&#8230; j&rsquo;ai quand même une machine virtuelle Windows juste pour utiliser la suite Office et en particulier Powerpoint; je n&rsquo;ai jamais réussi à être efficace et à créer des diagrammes jolis avec LibreOffice, et il faut dire que le côté quasi universel des documents Office permet de les échanger facilement avec les clients, de les montrer en présentation, et de les intégrer rapidement dans d&rsquo;autres documents (Word). C&rsquo;est avec Powerpoint que j&rsquo;ai par exemple dessiné les diagrammes du <a href="https://www.issn.org/wp-content/uploads/2020/07/ISSN-LinkedDataApplicationProfile-v1_1-1.pdf">profil d&rsquo;application de l&rsquo;ISSN</a>, de l&rsquo;<a href="https://joinup.ec.europa.eu/collection/eli-european-legislation-identifier/solution/eli-ontology-draft-legislation-eli-dl/release/final1">ontologie ELI-DL</a> (ELI for Draft Legislation), ou de l&rsquo;<a href="https://www.reseau-canope.fr/scolomfr/ontologie/comprehension-de-lontologie.html">ontologie ScolomFR</a>. J&rsquo;aime bien en particulier le formalisme de présentation de ELI-DL : 1 planche d&rsquo;explication, 1 diagramme, 1 planche d&rsquo;explication, 1 diagramme, etc. cela permet de &laquo;&nbsp;scenariser&nbsp;&raquo; la présentation du modèle de façon pédagogique. Le gros défaut en terme de saisie, et c&rsquo;est tout bête, c&rsquo;est qu&rsquo;on ne peut pas associer un libellé à un connecteur&#8230; on bouge le connecteur, il faut bouger le libellé avec&#8230;</p>
<p>Dans la même veine, Google Slides ajoute la dimension collaborative en temps réel.</p>
<p>Bien sûr, les diagrammes produits ne sont que des images, et n&rsquo;ont pas de vrais structures de graphe, avec possibilité de faire une mise en page automatique ou un export en SVG par exemple.</p>
<h2>Yed et Yed-live</h2>
<p><a href="https://www.linkedin.com/in/chabotbernard/">Bernard Chabot</a>, grand Ontologiste et Architecte de la Connaissance (on se croirait dans une loge maçonnique), m&rsquo;avait plusieurs fois fait la promotion de <a href="https://www.yworks.com/products/yed">Yed</a>, un outil de dessin de graphe. C&rsquo;est un open-source, java, qui existe depuis looooongtemps dans le paysage. Yed qui est une application de bureau a son pendant en ligne, <a href="https://www.yworks.com/yed-live/">yed-live.</a> C&rsquo;est avec ces outils que Bernard dessine par exemple les diagrammes de son <a href="https://www.linkedin.com/pulse/le-dicho-scope-et-les-dichotomies-g%C3%A9n%C3%A9riques-bernard-chabot/">article&nbsp;&raquo;dicho-scope&nbsp;&raquo; </a>sur les grands axes de construction d&rsquo;un modèle sémantique (auquel on ajouterait peut-être la distinction intention vs. extension, mais c&rsquo;est un autre sujet), ou encore les <a href="https://github.com/iPlumb3r/EcosystemMapping/blob/master/6_Ontologies/OWL-Ontology.md">diagrammes du modèle E2M</a> pour la modélisation de réseaux d&rsquo;acteurs (oui, un FOAF béton avec une approche ingéniérie de la connaissance).</p>
<p>J&rsquo;avais utilisé <a href="https://www.yworks.com/yed-live/">Yed-live</a> et ce que j&rsquo;avais trouvé vraiment bien ce sont les fonctions de regroupement des noeuds, de layout automatique (et temps réel !), et (mais je n&rsquo;était pas allé jusque là), la possibilité d&rsquo;avoir sa propre palette d&rsquo;objets. Après, attention, l&rsquo;éditeur est en ligne mais ce n&rsquo;est pas collaboratif. Ca permet toutefois d&rsquo;enregistrer son graphe dans un cloud ou par exemple dans un Gist github, et de pouvoir ensuite l&rsquo;échanger via un partage d&rsquo;URL.</p>
<div id="attachment_1333" style="width: 660px" class="wp-caption aligncenter"><a href="https://github.com/iPlumb3r/EcosystemMapping/blob/master/6_Ontologies/OWL-Ontology.md"><img class="wp-image-1333 size-large" src="http://blog.sparna.fr/wp-content/uploads/2020/07/YeD-E2M_Chabot-1024x841.png" alt="YeD-E2M_Chabot" width="650" height="534" /></a><p class="wp-caption-text">Extrait d&rsquo;une plache du modèle E2M par Bernard Chabot, modélisée avec YeD</p></div>
<h2>diagrams.net</h2>
<p>Le fil de discussion mentionne <a href="http://diagrams.net">diagrams.net</a>, qui a l&rsquo;air d&rsquo;être une solution d&rsquo;édition de graphes online et open-source. Comme Yed-live, s&rsquo;intègre avec Google Drive ou Github ou Dropbox pour le stockage. Pas besoin de login, et on est dans un look and feel très proche des applications Google. Ca a l&rsquo;air très sympa et puissant !</p>
<h2>Omnigraffle ou LucidCharts (solutions payantes)</h2>
<p>On mentionne également <a href="https://www.omnigroup.com/omnigraffle">Omnigraffle</a> (pour Mac seulement), qui n&rsquo;a pas l&rsquo;air tout jeune, et <a href="https://www.lucidchart.com/pages/fr/landing/omnigraffle-pour-pc-et-mac?utm_source=bing&amp;utm_medium=cpc&amp;utm_campaign=fr_allcountries_desktop_nb_x_exact&amp;km_CPC_CampaignId=369475295&amp;km_CPC_AdGroupID=1229254176472372&amp;km_CPC_Keyword=omnigraffle&amp;km_CPC_MatchType=e&amp;km_CPC_Bid_MatchType=be&amp;km_CPC_ExtensionID=&amp;km_CPC_Network=s&amp;km_CPC_Creative=76828476658727&amp;km_CPC_TargetID=kwd-76828527939066:loc-66&amp;km_CPC_Country=126803&amp;km_CPC_Device=c&amp;mkwid=MKkclJry_pcrid_76828476658727_pkw_omnigraffle_pmt_be_pdv_c_slid__pgrid_1229254176472372_ptaid_kwd-76828527939066:loc-66_&amp;msclkid=3e93136301251b79aa784c7dca5fab8b">LucidCharts</a>, 2 solutions de dessins de diagrammes et de graphes, mais cette fois-ci commerciales. La présentation corporate de LucidCharts nous apprend qu&rsquo;on peut (si je comprends bien) venir injecter des données de sources externes (tableur, etc.) dans un modèle de diagramme; intéressant.</p>
<h1>Visualiser des ontologies ou des graphes</h1>
<h2>Plantuml</h2>
<p>C&rsquo;est sur le fil de discussion mentionné plus haut que je découvre <strong><a href="https://plantuml.com/">PlantUML</a></strong>, un outil qui dessine tout plein de diagrammes UML (mais pas que, aussi des Mind Map ou des Wireframes), à partir d&rsquo;un bout de texte ! Par exemple, si on écrit</p>
<pre>Object &lt;|-- ArrayList

Object : equals()
ArrayList : Object[] elementData
ArrayList : size()</pre>
<p>On obtient</p>
<p><img class="alignnone" src="https://www.plantuml.com/plantuml/png/yq_AIaqkKR2fqTLLS2mgIgpqoImkuUBoXmXRAQGMbYRc56jeSi4bWO8GsUXOXTISrDpKl1ANn99450N5cLMf6fe0" alt="" width="162" height="219" /></p>
<p>Du coup, vous voyez le truc : ce bout de texte, on peut imaginer de le générer&#8230; à partir de RDF pour une visualisation de graphe, ou à partir de <a href="https://www.w3.org/TR/shacl/">SHACL</a> pour générer diagramme de classes UML. Et c&rsquo;est Vladimir Alexiev d&rsquo;Ontotext qui a cette idée dans son projet &laquo;&nbsp;<a href="https://github.com/VladimirAlexiev/rdf2rml">rdfpuml</a>&nbsp;&raquo; qui génère des graphes PlantUML à partir de fichiers Turtle (voir <a href="https://twitter.com/hashtag/rdfpuml?src=hashtag_click">ces tweets</a>). Effectivement, si on dessine des graphes à partir de RDF, on doit pouvoir dessiner des diagrammes de classes UML à partir de Shapes&#8230; (ce qu&rsquo;on ne peut pas bien faire à partir d&rsquo;ontologies OWL, qui, je le rappelle, ne définissent pas des modèles de données fermés mais des domaines de connaissances ouverts). Une idée de fonctionnalité pour <a href="http://shacl-play.sparna.fr/">SHACL Play</a> !</p>
<p>PlantUML me parait très prometteur pour automatiser cette génération de diagrammes (mais moins pour les éditer à la main).</p>
<h2>D3</h2>
<p>On ne présente plus <a href="https://d3js.org/">D3js</a>, bibliothèque Javascript de dataviz au sens large. Elle est intégrée dans les <a href="http://labs.sparna.fr/skos-play/">visualisations de SKOS Play </a>pour visualiser des hiérarchies de thesaurus en SKOS. On est donc là-aussi sur un outil de rendu de graphe ou de données.</p>
<h2>Gephi + sigmajs</h2>
<p>J&rsquo;avais présenté la solution <a href="http://blog.sparna.fr/2015/04/22/gephi-visualiser-des-graphes-rdf/">Gephi et son export en sigmajs dans un autre billet</a>. Là aussi, on est sur un outil de rendering de graphe, avec la possibilité de manipuler de gros graphes de données et d&rsquo;éditer le rendu avec des algorithmes très puissant. Mais ce n&rsquo;est pas un outil d&rsquo;authoring des données. A l&rsquo;époque (2015) le plugin d&rsquo;import RDF me semblait légèrement instable et pas trop mis à jour. Continue-t-il à être maintenu et Gephi est-il toujours une solution viable pour générer des vues de graphes RDF ?</p>
<h2>WebVOWL</h2>
<p>Dans le registre des solutions de visualisations automatiques, Il ne faut pas oublier <a href="http://vowl.visualdataweb.org/webvowl.html">WebVOWL</a> qui propose une visualisations de tous les axiomes OWL. Le résultat n&rsquo;est franchement pas simple à lire, mais a l&rsquo;avantage d&rsquo;être quelque chose de très différent des diagrammes de classes UML, et vraiment fait pour la représentation graphique d&rsquo;ontologies. WebVOLW est intégré à <a href="https://github.com/dgarijo/Widoco">Widoco</a>, un utilitaire de génération de documentation automatiques d&rsquo;ontologies OWL, que je vous recommende (le successeur de <a href="https://essepuntato.it/lode/">LODE</a>, qui l&rsquo;intégre d&rsquo;ailleurs).</p>
<h2>Plugins Protégé</h2>
<p>Pour être tout à fait complet sur la partie visualisation d&rsquo;ontologies on ne peut pas passer sous silence les <a href="https://protegewiki.stanford.edu/wiki/Visualization">plugins de visualisation intégrés dans Protégé</a>.</p>
<p>&nbsp;</p>
<p><em>Bel été, et n&rsquo;hésitez pas à poster vos plus beaux diagrammes d&rsquo;ontologies <img src="https://blog.sparna.fr/wp-includes/images/smilies/simple-smile.png" alt=":-)" class="wp-smiley" style="height: 1em; max-height: 1em;" /> !</em></p>
<p>&nbsp;</p>
<p><em>Illustration de l&rsquo;article : <a href="https://www.slideshare.net/Jean_Rohmer/de-lia-au-calcul-littraire-pourquoi-jai-zapp-le-web-smantique/17">https://www.slideshare.net/Jean_Rohmer/de-lia-au-calcul-littraire-pourquoi-jai-zapp-le-web-smantique/17</a> &laquo;&nbsp;Réseau Sémantique et Logique du XVIeme siècle dans la cathédrale de Grenade modélisant la Sainte Trinité&nbsp;&raquo;, Jean Rohmer, dans la présentation </em><span class="j-title-breadcrumb">&laquo;&nbsp;De l&rsquo;IA au Calcul Littéraire: Pourquoi j&rsquo;ai zappé le Web Sémantique</span>&laquo;&nbsp;<em>avec l&rsquo;aimable autorisation de Jean Rohmer. &laquo;&nbsp;Pater non est Filius&nbsp;&raquo;, &laquo;&nbsp;Pater non est Spiritus Sanctus&nbsp;&raquo;, &laquo;&nbsp;Filius non est Spiritus Sanctus&nbsp;&raquo;, &laquo;&nbsp;Deus est Pater&nbsp;&raquo;, &laquo;&nbsp;Deus est Filius&nbsp;&raquo;, &laquo;&nbsp;Deus est Spiritus Sanctus&nbsp;&raquo;<br />
</em></p>
<p>&nbsp;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2020/07/29/dessiner-ontologies-visualiser-graphes-outils/">Dessiner des ontologies, visualiser des graphes : quels outils ?</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sparna.fr/2020/07/29/dessiner-ontologies-visualiser-graphes-outils/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Référentiel ROME de Pôle Emploi en SKOS (à partir de data.gouv.fr)</title>
		<link>https://blog.sparna.fr/2017/04/18/rome-pole-emploi-skos-rdf-data-gouv-fr/</link>
		<comments>https://blog.sparna.fr/2017/04/18/rome-pole-emploi-skos-rdf-data-gouv-fr/#comments</comments>
		<pubDate>Tue, 18 Apr 2017 08:31:17 +0000</pubDate>
		<dc:creator><![CDATA[Thomas Francart]]></dc:creator>
				<category><![CDATA[Open Data]]></category>
		<category><![CDATA[SKOS]]></category>
		<category><![CDATA[SKOS Play]]></category>
		<category><![CDATA[Thesaurus]]></category>
		<category><![CDATA[Visualisation de données]]></category>
		<category><![CDATA[data.gouv.fr]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[rome]]></category>
		<category><![CDATA[skos play]]></category>
		<category><![CDATA[web de données]]></category>
		<category><![CDATA[web de données de l'emploi]]></category>

		<guid isPermaLink="false">http://blog.sparna.fr/?p=1132</guid>
		<description><![CDATA[<p>Etalab, la mission chargée de la politique Open Data de l’administration aujourd’hui intégrée à la DSI de l’Etat, vient d’ouvrir le portail du service public de la donnée (lire l&#8217;article sur silicon.fr) : des jeux de données de référence, &#171;&#160;à fort impact économique et social&#160;&#187;, d&#8217;un niveau de qualité et de fraîcheur garanti. Parmi ceux-ci&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2017/04/18/rome-pole-emploi-skos-rdf-data-gouv-fr/">Référentiel ROME de Pôle Emploi en SKOS (à partir de data.gouv.fr)</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Etalab, la mission chargée de la politique Open Data de l’administration aujourd’hui intégrée à la DSI de l’Etat, vient d’ouvrir le <a href="http://www.data.gouv.fr/fr/reference" target="_blank">portail du service public de la donnée</a> (lire l&rsquo;<a href="http://www.silicon.fr/open-data-service-public-donnee-ouvre-171799.html" target="_blank">article sur silicon.fr</a>) : des jeux de données de référence, &laquo;&nbsp;à fort impact économique et social&nbsp;&raquo;, d&rsquo;un niveau de qualité et de fraîcheur garanti. Parmi ceux-ci le <strong><a href="https://www.data.gouv.fr/fr/datasets/repertoire-operationnel-des-metiers-et-des-emplois-rome/" target="_blank">Répertoire Opérationnel des Métiers et de l&rsquo;Emploi (ROME)</a></strong>, la classification utilisée par Pôle Emploi.</p>
<p style="text-align: justify;">A partir des fichiers de données du Répertoire Opérationnel des Métiers et de l&rsquo;Emploi, j&rsquo;ai mis en ligne des <a href="http://labs.sparna.fr/code-rome.html" target="_blank"><strong>visualisations de données du ROME</strong></a>, après nettoyage, traitement, et conversion des données en <a href="http://www.sparna.fr/skos/SKOS-traduction-francais.html">SKOS</a>.</p>
<h3 style="text-align: justify;">Le Répertoire ROME</h3>
<p style="text-align: justify;">Ce répertoire ROME m&rsquo;avait intéressé il y a 4 ans lorsque j&rsquo;avais effectué une mission pour l&rsquo;optimisation sémantique du moteur de recherche SolR d&rsquo;un <em>job board</em>. Nous nous étions demandé à l&rsquo;époque si nous pouvions réutiliser une partie de ce référentiel pour effectuer un rapprochement (automatique ou manuelle) des titres d&rsquo;annonces d&rsquo;emplois vers le référentiel. Cela aurait permis, à partir de l&rsquo;identification du nom du poste, de <strong>catégoriser automatiquement les annonces dans la catégorie ROME appropriée</strong>. Le ROME contient en effet plus de <strong>11000 dénominations de postes/métiers</strong>, catégorisés dans une double classification : une arborescence principale, et une arborescence thématique. On y trouve donc des entrées comme :</p>
<ul style="text-align: justify;">
<li><span id="19f41e49-c1fc-4e81-9b60-c5805abd8aab1348877816"><span class="ext-uri" title="http://data.sparna.fr/vocabulaires/code-rome/G1201-3570">Accompagnateur / Accompagnatrice en écotourisme</span></span></li>
<li>Responsable de rayon produits alimentaires</li>
<li>Assistant / Assistante mise en scène</li>
<li>etc.</li>
</ul>
<p style="text-align: justify;">Ces noms de postes sont organisés dans une classification à 3 niveaux : &laquo;&nbsp;AGRICULTURE ET PÊCHE, ESPACES NATURELS ET ESPACES VERTS, SOINS AUX ANIMAUX &gt; Espaces naturels et espaces verts &gt; Bûcheronnage et élagage&nbsp;&raquo;. Le 3eme niveau (ici &laquo;&nbsp;Bûcheronnage et élagage&nbsp;&raquo;) correspond à une <strong>fiche métier</strong> (ici <a href="http://candidat.pole-emploi.fr/marche-du-travail/fichemetierrome?codeRome=A1201">http://candidat.pole-emploi.fr/marche-du-travail/fichemetierrome?codeRome=A1201</a>) et est associé à un code (ici A1201).</p>
<div style="width: 1189px" class="wp-caption aligncenter"><a href="http://labs.sparna.fr/code-rome.html"><img src="http://labs.sparna.fr/code-rome/code-rome-arborescence.png" alt="" width="1179" height="716" /></a><p class="wp-caption-text">Arborescence principale du code ROME dans SKOS-Play</p></div>
<h3 style="text-align: justify;">Conversion en SKOS</h3>
<p style="text-align: justify;">Je suis reparti ici des fichiers bruts fournis sur data.gouv.fr, et j&rsquo;ai passé un peu de temps à les convertir en SKOS avec le <a href="http://labs.sparna.fr/skos-play/convert" target="_blank">convertisseur Excel vers SKOS de SKOS Play</a> :</p>
<ul style="text-align: justify;">
<li>ajustement manuel de certaines valeurs mal séparées par des virgules dans le fichier CSV de départ;</li>
<li>suppression des guillemets simples et doubles;</li>
<li>fusion des 2 fichiers fournis (arborescence principale et arborescence thématique);</li>
<li>réorganisation des colonnes;</li>
</ul>
<p style="text-align: justify;">Il s&rsquo;agit ensuite de construire un tableau Excel au format adéquat pour une conversion vers SKOS, en adaptant la structure des fichiers, typiquement en calculant le contenu de nouvelles colonnes avec des formules Excel. En particulier, il s&rsquo;agit de <strong>donner des identifiants URI à toutes les entrées du code ROME, pour arriver ainsi à des <a href="http://5stardata.info/fr/">données open data &laquo;&nbsp;4 étoiles&nbsp;&raquo;</a>.  </strong>Cette conversion SKOS est relativement aisée à réaliser, <strong>sans écriture de code ni script</strong>. Elle est accessible à toute personne capable de manipuler Excel.</p>
<p style="text-align: justify;">Ces données SKOS du ROME sont publiées à <a href="http://data.sparna.fr/vocabulaires/code-rome"><strong>http://data.sparna.fr/vocabulaires/code-rome</strong></a>.</p>
<p style="text-align: justify;">Je ne rentrerai pas dans les détails de modélisation du ROME en SKOS, sauf sur 1 point : on peut <strong>se demander ce qu&rsquo;il convient d&rsquo;identifier comme &laquo;&nbsp;Concept&nbsp;&raquo;</strong> dans ce référentiel. J&rsquo;ai pris le parti de considérer chaque nom de <em>poste</em> comme un <a href="http://www.w3.org/2004/02/skos/core#Concept">skos:Concept</a>, et tous les éléments de classification thématiques comme des <a href="http://www.w3.org/2004/02/skos/core#Collection">skos:Collection</a> (donc des tiroirs, qui ne sont pas utilisables dans une indexation). Un point de vue différent mais tout aussi valable serait de considérer non pas les noms de <em>poste</em> comme des concepts, mais bien les noms de <em>métier</em>, chaque métier ayant une correspondance avec une fiche sur le site Pôle Emploi; les noms de poste seraient alors des synonymes (<a href="http://www.w3.org/2004/02/skos/core#altLabel">skos:altLabel</a>) du métier (dans l&rsquo;exemple au-dessus, le métier A1202 &laquo;&nbsp;Bûcheronnage et élagage&nbsp;&raquo; aurait alors pour synonymes &laquo;&nbsp;Agent / Agente d&rsquo;aménagement des haies et fossés&nbsp;&raquo;, &laquo;&nbsp;Agent / Agente d&rsquo;entretien des espaces naturels&nbsp;&raquo;, &laquo;&nbsp;Ouvrier / Ouvrière d&rsquo;entretien des espaces naturels&nbsp;&raquo;, etc.).</p>
<h3 style="text-align: justify;">Visualisations de données</h3>
<p style="text-align: justify;">A partir des données SKOS, on peut ensuite générer des visualisations avec <a href="http://labs.sparna.fr/skos-play">SKOS Play</a> : ces visualisations sont publiés à <strong><a href="http://labs.sparna.fr/code-rome.html" target="_blank">http://labs.sparna.fr/code-rome.html</a></strong>. 3 visualisations ont été produites :</p>
<ol style="text-align: justify;">
<li><a href="http://labs.sparna.fr/code-rome/code-rome-autocomplete-pole-emploi.html">Un champ de recherche assisté</a> (avec une autocompletion sur les noms des métiers), permettant de lancer une recherche d&rsquo;annonces sur le site Pôle Emploi à partir d&rsquo;un nom de métier; on pourrait imaginer quelque chose de similaire pour accéder aux fiches métiers plutôt qu&rsquo;aux annonces;</li>
<li><a href="http://labs.sparna.fr/code-rome/code-rome-visualisation-arbre.html">Une vue arborescente</a> avec d3js, permettant de naviguer visuellement dans l&rsquo;arbre;</li>
<li><a href="http://labs.sparna.fr/code-rome/code-rome-arborescence.html">Un listing indenté</a> en HTML, que l&rsquo;on peut plier et déplier;</li>
</ol>
<p>On notera que, sauf pour l&rsquo;articulation entre le champ de recherche assisté et le site de Pôle Emploi qui demande 10 lignes de javascript, ces visualisations sont produites directement par SKOS Play sans avoir à écrire de code.</p>
<h3 style="text-align: justify;">Un &laquo;&nbsp;Web des données de l&rsquo;emploi&nbsp;&raquo; ?</h3>
<p style="text-align: justify;">On a donc ici fait passer le référentiel ROME à un meilleur niveau de qualité des données, permettant une intégration facilitée dans d&rsquo;autres systèmes, d&rsquo;autres outils de recherche. Au delà de la démonstration sur la conversion et la visualisation de données, j&rsquo;aimerai dans une deuxième étape illustrer l&rsquo;<strong>alignement des données du ROME avec d&rsquo;autres référentiels</strong> (probablement <a href="https://ec.europa.eu/esco/portal/home">ESCO</a>), en utilisant <a href="https://github.com/lmazuel/onagui">OnaGUI,</a> qui permet de simplifier les alignements de vocabulaires. On aurait alors un beau référentiel 5 étoiles, <em>_dans_</em> le web (et pas simplement <em>_sur_</em> le web), avec des correspondances vers d&rsquo;autres données. Un <strong>&laquo;&nbsp;web des données de l&rsquo;emploi&nbsp;&raquo;</strong> ? il fallait bien ça à quelques jours des présidentielles !</p>
<p style="text-align: justify;">Dans une deuxième étape je publierai le SKOS généré pour que les URIs soient déréférençables, en utilisant <a href="http://skosmos.org/">SKOSMOS</a>, dans un déploiement similaire à celui utilisé pour <a href="http://blog.sparna.fr/2017/02/06/unesco-thesaurus-published-with-semantic-web-standards-and-open-source-software/">publier le thesaurus de l&rsquo;UNESCO</a>.</p>
<p style="text-align: justify;">J&rsquo;espère que cette conversion de données en SKOS permettra une diffusion et une intégration plus large de ce référentiel utile pour la recherche d&rsquo;emplois. Dites-moi si vous réutilisez ces données pour d&rsquo;autres visualisations ou d&rsquo;autres systèmes, ou si vous souhaitez de l&rsquo;aide pour son intégration.</p>
<p style="text-align: justify;"><em>Illustration de l&rsquo;article tirée de Wikimedia Commons : <a href="https://fr.wikipedia.org/wiki/Fichier:Metro_de_Paris_-_Ligne_2_-_Rome_07.jpg">https://fr.wikipedia.org/wiki/Fichier:Metro_de_Paris_-_Ligne_2_-_Rome_07.jpg</a></em></p>
<p style="text-align: justify;">
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2017/04/18/rome-pole-emploi-skos-rdf-data-gouv-fr/">Référentiel ROME de Pôle Emploi en SKOS (à partir de data.gouv.fr)</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sparna.fr/2017/04/18/rome-pole-emploi-skos-rdf-data-gouv-fr/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Gephi pour visualiser des graphes RDF</title>
		<link>https://blog.sparna.fr/2015/04/22/gephi-visualiser-des-graphes-rdf/</link>
		<comments>https://blog.sparna.fr/2015/04/22/gephi-visualiser-des-graphes-rdf/#comments</comments>
		<pubDate>Wed, 22 Apr 2015 15:24:22 +0000</pubDate>
		<dc:creator><![CDATA[Thomas Francart]]></dc:creator>
				<category><![CDATA[Open Data]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[Triplestores]]></category>
		<category><![CDATA[Visualisation de données]]></category>
		<category><![CDATA[dataviz]]></category>
		<category><![CDATA[gephi]]></category>
		<category><![CDATA[semantic media wiki]]></category>
		<category><![CDATA[tourstech]]></category>

		<guid isPermaLink="false">http://blog.sparna.fr/?p=940</guid>
		<description><![CDATA[<p>RDF est un modèle de données en triplets (sujet; prédicat; objet) qui, pris ensemble, forment un graphe. Et les triplestores RDF sont les bases de données qui permettent de stocker, manipuler et requêter ces graphes. RDF un modèle de données &#171;&#160;bas niveau&#160;&#187;, l&#8217;équivalent du modèle relationnel pour les bases de données relationnelles &#171;&#160;classiques&#160;&#187;; c&#8217;est pourquoi&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2015/04/22/gephi-visualiser-des-graphes-rdf/">Gephi pour visualiser des graphes RDF</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><a href="https://fr.wikipedia.org/wiki/Resource_Description_Framework" target="_blank">RDF</a> est un modèle de données en triplets (sujet; prédicat; objet) qui, pris ensemble, forment un graphe. Et les <a href="https://fr.wikipedia.org/wiki/Triplestore" target="_blank">triplestores RDF</a> sont les bases de données qui permettent de stocker, manipuler et requêter ces graphes. RDF un modèle de données &laquo;&nbsp;bas niveau&nbsp;&raquo;, l&rsquo;équivalent du <a href="https://fr.wikipedia.org/wiki/Mod%C3%A8le_relationnel" target="_blank">modèle relationnel</a> pour les bases de données relationnelles &laquo;&nbsp;classiques&nbsp;&raquo;; c&rsquo;est pourquoi j&rsquo;ai toujours pensé que <strong>pour un utilisateur final, visualiser le contenu d&rsquo;un graphe RDF &laquo;&nbsp;brut&nbsp;&raquo; a autant de sens que de visualiser le contenu des tables d&rsquo;une base relationnelle &#8211; à savoir pas beaucoup</strong>; il y a souvent plein de colonnes ou de tables dans les données qui n&rsquo;ont aucun sens pour l&rsquo;utilisateur final, qui attend une représentation de ses informations &laquo;&nbsp;actionnable&nbsp;&raquo; et compréhensible pour son besoin.</p>
<p style="text-align: justify;"><span id="more-940"></span></p>
<p style="text-align: justify;">On trouve pourtant tout un tas de projets ou de logiciels pour visualiser des graphes RDF natifs : <a href="http://semweb.salzburgresearch.at/apps/rdf-gravity/" target="_blank">RDF gravity</a>, <a href="http://graves.cl/visualRDF/?url=http://graves.cl/visualRDF/" target="_blank">Visual RDF</a>, <a href="http://simile.mit.edu/welkin/" target="_blank">Welkin</a>, ou d&rsquo;autres qui sont listés <a href="https://semanticscience.wordpress.com/2010/02/17/visualisation-of-ontologies-and-large-scale-graphs/" target="_blank">ici</a>, <a href="http://answers.semanticweb.com/questions/1071/visualisation-toolkits-for-rdf" target="_blank">là</a>, ou bien encore <a href="http://answers.semanticweb.com/questions/13760/web-based-rdf-graph-visualization-tool" target="_blank">là</a> (voir également <a href="http://vowl.visualdataweb.org/webvowl.html" target="_blank">WebVOWL</a> pour la visualisation d&rsquo;ontologies OWL, donc sur un sujet un peu différent).</p>
<h2 style="text-align: justify;">Une cartographie des acteurs du numérique pour #ToursTech</h2>
<p style="text-align: justify;">Et pourtant je suis tombé sur une problématique où la visualisation des données natives d&rsquo;un graphe RDF avait vraiment du sens : représenter la <strong>cartographie des acteurs d&rsquo;un territoire</strong> ou d&rsquo;une communauté. En l&rsquo;occurrence la <strong>cartographie des acteurs du numérique en Touraine</strong>, dans le cadre de la <strong><a href="http://tourstech.co/" target="_blank">candidature de Tours au label #FrenchTech (#ToursTech)</a></strong>. On peut donner plusieurs représentations possibles de cet ensemble d&rsquo;acteurs :</p>
<ul style="text-align: justify;">
<li><strong>en graphe </strong>type<strong> réseau social</strong> (l&rsquo;approche que j&rsquo;explore ici, donc);</li>
<li><strong>en zones </strong>type<strong> TreeMap</strong> pour montrer les grandes masses (par exemple la <a href="/wp-content/uploads/2015/04/screenshot-treemap.png" target="_blank">répartition des entreprises par code APE en utilisant d3.js</a>);</li>
<li><strong>en courbes temporelles </strong>pour montrer des évolutions d&rsquo;indicateurs;</li>
<li><strong>en cartes géographiques</strong> pour visualiser les zones et les lieux dans l&rsquo;agglomération</li>
<li><strong>en arbres</strong> pour mettre en évidences des catégories d&rsquo;acteurs;</li>
<li>etc.</li>
</ul>
<p style="text-align: justify;">Dans notre cas les triplets RDF correspondent exactement aux liens entre les acteurs, et sont des relations du type &laquo;&nbsp;est adhérent de (une association professionnelle)&nbsp;&raquo;, &laquo;&nbsp;est fournisseur de&nbsp;&raquo;, &laquo;&nbsp;a un partenariat avec&nbsp;&raquo;, etc. Le besoin d&rsquo;avoir une représentation du réseau social des acteurs devient donc le même que celui de représenter le graphe RDF natif.</p>
<h2 style="text-align: justify;">Le résultat et quelques explications</h2>
<p style="text-align: justify;">Voici le résultat de cette cartographie (cliquez pour agrandir) (et jouer à &laquo;&nbsp;où est Charlie ?&nbsp;&raquo; en cherchant <a href="http://sparna.fr" target="_blank">Sparna</a> dans l&rsquo;image !) :</p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2015/04/carto-sans-noms-personnes-small.jpg"><img class="aligncenter size-medium wp-image-942" src="http://blog.sparna.fr/wp-content/uploads/2015/04/carto-sans-noms-personnes-small-300x260.jpg" alt="carto-sans-noms-personnes-small" width="300" height="260" /></a></p>
<p style="text-align: justify;"><em>(je précise que cette représentation est partielle, exploratoire, et ne se veut pas représentative de la réalité du territoire)</em></p>
<p style="text-align: justify;">Qu&rsquo;est-ce qu&rsquo;on y voit ?</p>
<ul style="text-align: justify;">
<li>des <strong>noeuds</strong> : organisations, personnes, lieux ou projets;</li>
<li>des <strong>liens</strong> : relations de type réseau social entre ces noeuds (&laquo;&nbsp;travaille dans ce lieu&nbsp;&raquo;, &laquo;&nbsp;participe à ce projet&nbsp;&raquo;, etc.); ces liens ne sont pas distingués par un label ou une couleur dans la cartographie, mais ils sont bien typés dans les données;</li>
<li>La <strong>taille d&rsquo;un noeud</strong> est fonction de son nombre de lien<strong>s</strong>;</li>
<li>La <strong>couleur d&rsquo;un noeud </strong>est fonction de sa &laquo;&nbsp;<a href="http://en.wikipedia.org/wiki/Centrality" target="_blank">centralité</a>&nbsp;&raquo; dans le graphe, c&rsquo;est-à-dire de sa proximité avec un maximum d&rsquo;autres noeuds dans le graphe (enfin c&rsquo;est ce que j&rsquo;en ai compris !);</li>
<li>Les <strong>noms des personnes ne sont pas affichés</strong> pour des raisons de confidentialité;</li>
</ul>
<p style="text-align: justify;">On met ainsi rapidement en évidence :</p>
<ul>
<li style="text-align: justify;">les <strong>acteurs majeurs de la communauté</strong>, soit en terme de &laquo;&nbsp;taille&nbsp;&raquo; soit en terme de positionnement dans le réseau (<a href="http://paloaltours.org/" target="_blank">PaloAltours</a>, la cantine numérique bêta de Tours, <a href="http://blog.coopaxis.fr/" target="_blank">CoopAxis</a> le PTCE qui marie numérique et innovation sociale, <a href="http://www.centre-tic.fr/" target="_blank">Centre &amp; TIC</a> association professionnelle au service du numérique, etc.) ;</li>
<li style="text-align: justify;">les <strong>liens qui les unissen</strong>t (&laquo;&nbsp;comment puis-je rentrer en contact avec telle personne ou telle organisation ?&nbsp;&raquo;);</li>
<li style="text-align: justify;">les <strong>communautés</strong>, qui sont plus apparentes si on partitionne le graphe et qu&rsquo;on colorie les communautés :</li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2015/04/carto-sans-noms-personnes-partition-small.jpg"><img class="aligncenter size-medium wp-image-949" src="http://blog.sparna.fr/wp-content/uploads/2015/04/carto-sans-noms-personnes-partition-small-300x265.jpg" alt="carto-sans-noms-personnes-partition-small" width="300" height="265" /></a></p>
<p style="text-align: justify;">D&rsquo;autres projets ont utilisé une approche et des outils similaires pour cartographier les acteurs d&rsquo;une communauté : l&rsquo;<a href="http://www.capdigital.com/ecosysteme/" target="_blank">écosystème du cluster CapDigital en île-de-france</a>, ou bien cette <a href="http://www.intelligence-economique-paca.fr/Actualites/Actualites/Le-Miste-sort-sa-cartographie-des-acteurs-de-l-intelligence-economique" target="_blank">cartographie des acteurs de l&rsquo;Intelligence Economique en PACA</a>.</p>
<h2 style="text-align: justify;">Le dispositif : Wiki sémantique + triplestore + Gephi / sigma.js</h2>
<p style="text-align: justify;">Le dispositif que nous avons exploré pour réaliser cette cartographie est en 3 parties :</p>
<h3 style="text-align: justify;">Le beurre : un wiki sémantique</h3>
<p style="text-align: justify;"><a href="https://semantic-mediawiki.org" target="_blank">Semantic Media Wiki</a> (que j&rsquo;avais <a title="Le wiki sémantique : solution de capitalisation des connaissances (structurées)" href="http://blog.sparna.fr/wiki-semantique-capitalisation-des-connaissances-structurees/" target="_blank">exploré précédemment ici</a>) nous donne une solution de centralisation des connaissances :</p>
<ol>
<li style="text-align: justify;"><strong>collaborative</strong>, avec toute la machinerie wiki (versionning des pages, pages de discussion, etc.)<strong><br />
</strong></li>
<li style="text-align: justify;"><strong>structurée</strong>,  puisque la solution Semantic Media Wiki et ses divers plugins permet d&rsquo;avoir des fiches à plusieurs champs, avec choix multiples, autocompletion, dates, etc.</li>
<li style="text-align: justify;"><strong>flexible</strong>, puisque le modèle de données et les formulaires de saisie peuvent évoluer au fil des besoins, et l&rsquo;outil est facile à prendre en main pour des utilisateurs non-experts, jugez plutôt  les formulaires de saisie avec assistance à la saisie :<a href="http://blog.sparna.fr/wp-content/uploads/2015/04/screenshot-formulaire-semantic-media-wiki.jpg"><img class="aligncenter size-medium wp-image-957" src="http://blog.sparna.fr/wp-content/uploads/2015/04/screenshot-formulaire-semantic-media-wiki-300x227.jpg" alt="screenshot-formulaire-semantic-media-wiki" width="300" height="227" /></a></li>
<li style="text-align: justify;"><strong>ouverte</strong> pour partager les données avec d&rsquo;autres territoires (important sur l&rsquo;aspect &laquo;&nbsp;mise en réseau des archipels territoriaux&nbsp;&raquo;);</li>
</ol>
<p style="text-align: justify;">C&rsquo;est cet outil qui est utilisé pour renseigner les fiches des acteurs du territoire et leurs liens. Ces liens sont de types :</p>
<ul style="text-align: justify;">
<li>liens formels ou contractuels : fournisseur de, client de, travaille pour ;</li>
<li>liens de collaboration : a un partenariat avec, adhère à telle association, participe ou porte tel projet;</li>
<li>liens géographiques : se situe dans tel lieu;</li>
<li>liens capitalistiques : a du capital dans;</li>
</ul>
<h3 style="text-align: justify;">L&rsquo;argent du beurre : une diffusion des données en RDF</h3>
<p style="text-align: justify;">Semantic Media Wiki c&rsquo;est bien, mais nativement on ne peut pas réutiliser les données en dehors du wiki. On le synchronise donc (via sa fonction d&rsquo;<a href="https://semantic-mediawiki.org/wiki/Help:RDF_export" target="_blank">export RDF</a>) avec un <a href="http://rdf4j.org/" target="_blank">triplestore RDF Sesame</a>, qui rend les données accessibles sur le web (via <a href="http://www.w3.org/TR/sparql11-query/" target="_blank">SPARQL</a>), permettant ainsi à d&rsquo;autres applications de tirer parti des données.</p>
<p style="text-align: justify;">On a donc une <strong>solution de capitalisation des connaissances PAR le territoire</strong> (wiki sémantique collaboratif) et <strong>POUR le territoire</strong> (diffusion des données pour leur réutilisation).</p>
<h3 style="text-align: justify;">Le sourire du crémier : Gephi pour exploiter les données</h3>
<p style="text-align: justify;">Le sourire du crémier : <a href="http://gephi.github.io/" target="_blank">Gephi</a> (et d&rsquo;autres applications) qui peuvent réexploiter les données saisies dans le wiki. En particulier Gephi dispose d&rsquo;un <a href="https://marketplace.gephi.org/plugin/semanticwebimport/" target="_blank">plugin d&rsquo;intégration à partir de SPARQL</a> (&laquo;&nbsp;Gephi Semantic Web Import Plugin&nbsp;&raquo; &#8211; Attention à la date de rédaction de ce billet le lien vers la <a href="https://wiki.gephi.org/index.php/SemanticWebImport" target="_blank">page de documentation de ce plugin</a> est cassé). Il devient donc possible de générer un visuel de notre réseau social à partir des données ainsi exposées.</p>
<p style="text-align: justify;">On peut même automatiser la génération du visuel (ce qu&rsquo;on a fait ici) avec un bout de Java grâce à l&rsquo;<a href="http://gephi.github.io/toolkit/" target="_blank">API Gephi (Gephi Toolkit).</a></p>
<p style="text-align: justify;"><strong>Mon retour d&rsquo;expérience sur Gephi est très positif</strong> : facile à prendre en main, intégration SPARQL aisée et sans bug, on peut générer assez facilement des rendus intéressants. Inconvénient : cela reste des images statiques, ca ne bouge pas et ce n&rsquo;est pas cliquable. Pour avoir quelque chose de plus interactif il faut se tourner vers <a href="http://sigmajs.org/" target="_blank">SigmaJS</a>. C&rsquo;est ce que l&rsquo;<a href="http://mwebius.com/" target="_blank">agence de communication Mwebius</a> a expérimenté :</p>
<p style="text-align: justify;"><a href="http://blog.sparna.fr/wp-content/uploads/2015/04/screenshot-sigmajs.png"><img class="aligncenter size-medium wp-image-964" src="http://blog.sparna.fr/wp-content/uploads/2015/04/screenshot-sigmajs-300x173.png" alt="screenshot-sigmajs" width="300" height="173" /></a></p>
<p style="text-align: justify;">Notez les options de sélection de ce que l&rsquo;on veut afficher sur la gauche. Tout cela est branché en direct sur les données exportées du wiki.</p>
<h2 style="text-align: justify;">Vous voulez utiliser les données ? pas encore&#8230;</h2>
<p style="text-align: justify;">La question de la licence des données récoltées pour ce travail de cartographie n&rsquo;étant pas encore tranchée (ouvertes ou pas ? dans quel périmètre), je ne peux malheureusement pas mettre ici les liens ni vers le wiki sémantique, ni vers le service SPARQL de diffusion des données &#8211; je le fais dès que l&rsquo;initiative #ToursTech a statué là-dessus, mais ce serait en tout cas <strong>un bel exemple de système d&rsquo;intelligence économique territorial collaboratif diffusant ses données en open data</strong>. Rien que ça ! En attendant si vous voulez en savoir plus laissez un message ici et suivez la <a href="http://tourstech.co/" target="_blank">candidature #ToursTech</a> !</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2015/04/22/gephi-visualiser-des-graphes-rdf/">Gephi pour visualiser des graphes RDF</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sparna.fr/2015/04/22/gephi-visualiser-des-graphes-rdf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
