<?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; SPARQL</title>
	<atom:link href="https://blog.sparna.fr/tag/sparql/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>European Parliament Open Data Portal : a SHACL-powered knowledge graph</title>
		<link>https://blog.sparna.fr/2025/04/09/european-parliament-open-data-portal-a-shacl-powered-knowledge-graph/</link>
		<comments>https://blog.sparna.fr/2025/04/09/european-parliament-open-data-portal-a-shacl-powered-knowledge-graph/#comments</comments>
		<pubDate>Wed, 09 Apr 2025 14:10:12 +0000</pubDate>
		<dc:creator><![CDATA[Marie Muller]]></dc:creator>
				<category><![CDATA[Editeurs]]></category>
		<category><![CDATA[FAIR]]></category>
		<category><![CDATA[Linked Data]]></category>
		<category><![CDATA[Non classé]]></category>
		<category><![CDATA[Ontologies]]></category>
		<category><![CDATA[Open Data]]></category>
		<category><![CDATA[SHACL]]></category>
		<category><![CDATA[SHACL Play]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[DCAT]]></category>
		<category><![CDATA[ELI]]></category>
		<category><![CDATA[google spreadsheets]]></category>
		<category><![CDATA[json-ld]]></category>
		<category><![CDATA[knowledge graph]]></category>
		<category><![CDATA[SKOS]]></category>
		<category><![CDATA[SPARQL]]></category>

		<guid isPermaLink="false">https://blog.sparna.fr/?p=1959</guid>
		<description><![CDATA[<p>A second usecase Thomas wrote for Veronika Heimsbakk’s SHACL for the Practitioner upcoming book is about Sparna&#8217;s work for the European Parliament. From validation of the data in the knowledge graph to further projects of data integration and dissemination, many different usages of SHACL specifications were explored&#8230; &#8230; and more exploratory usages of SHACL are foreseen ! “&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2025/04/09/european-parliament-open-data-portal-a-shacl-powered-knowledge-graph/">European Parliament Open Data Portal : a SHACL-powered knowledge graph</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>A second usecase Thomas wrote for Veronika Heimsbakk’s <em><a href="https://veronahe.wordpress.com/shacl-for-the-practitioner/">SHACL for the Practitioner</a></em> upcoming book is about Sparna&rsquo;s work for the European Parliament.</p>
<p>From validation of the data in the knowledge graph to further projects of data integration and dissemination, many different usages of SHACL specifications were explored&#8230;</p>
<p>&#8230; and more exploratory usages of SHACL are foreseen !</p>
<h1>“</h1>
<h2><strong>A knowledge-graph powered open data portal</strong></h2>
<p><a href="https://data.europarl.europa.eu/">The European Parliament Open Data Portal (EPODP)</a> went live in January 2023. Its particularity is that it is not a mere aggregation of documents or dump files from business applications in custom formats; but rather a <strong>collection of datasets each extracted from a central semantic knowledge graph</strong>, itself aggregating data migrated from approximately <strong>twenty business applications</strong>. The result is a semantically interoperable open data portal : the semantic of its data model is clearly defined and documented, and reuses widely deployed existing ontologies. It already provides its data to different consumers (most notably <a href="https://www.europarl.europa.eu/">the europarl website</a> and <a href="https://law-tracker.europa.eu/">the EU law tracker</a>) in a context of cross-institutions interoperability. The data captures the activity of the parliament : as co-legislator together with the Council of the EU, the European Parliament (EP) holds plenary sittings, in which reports originating from committees, as well as motion for resolutions, are amended and voted; after the vote, the final adopted texts are published.</p>
<p>The focus on semantic interoperability of EPODP maximizes the potential of reuse and linkage of its datasets, and <strong>maximizes the quality</strong> of the offered data. It comes however at a cost when building the portal : deep analysis and understanding of the existing data and documents structure is required to capture the business semantic. SHACL is the way to formally encode this business semantic &#8211; but how is it deployed in practice ? how is it maintained ? what are the different types of SHACL specifications used ?</p>
<h2><strong>SHACL at the center of a model-driven approach</strong></h2>
<p>SHACL in the EPODP is at the basis of multiple model-driven usages depicted in the following diagram:</p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2025/04/spec-SHACL.png"><img class="aligncenter size-large wp-image-1961" src="https://blog.sparna.fr/wp-content/uploads/2025/04/spec-SHACL-1024x508.png" alt="spec-SHACL" width="650" height="322" /></a></p>
<p>There was two key drivers for introducing the use of SHACL in the EPODP project : <strong>validation of the data</strong> in the knowledge graph, and <strong>generation of public documentations</strong> of the models. The same SHACL specification that captures the business semantic is directly actionable to be published as a documentation and to validate the data. The produced documentation is a set of public files, such as <a href="https://data.europarl.europa.eu/def/eli-ep">the ELI-EP application profile documentation</a> and others accessible from <a href="https://data.europarl.europa.eu/en/developer-corner">the EPODP developer&rsquo;s corner</a>. <a href="https://shacl-play.sparna.fr/play/doc">The SHACL Play documentation generator</a> is used to produce the documentation pages. Data validation happens at earlier stages, after data transformation steps.</p>
<p>Two additional usages of SHACL specifications were explored : one was to generate SPARQL queries to extract the content of datasets from the larger knowledge graph. The SHACL specification of a dataset content is interpreted to generate SPARQL CONSTRUCT queries, executed against the entire knowledge graph, to return a subset of data corresponding to the specification. The query generation was implemented <a href="https://shacl-play.sparna.fr/play/sparql">in SHACL Play</a>, however the EPODP chose to continue using manually crafted SPARQL queries to generate the datasets. The other usage was to complement the SHACL specifications with the mapping rules used to feed the corresponding properties or classes in the graph. This has the advantage that the mapping rules are documented and maintained alongside the specification and not in a separate document. This work is ongoing.</p>
<p>More exploratory usages of SHACL are foreseen : generating a query user interface based on the SHACL specification, <a href="https://docs.sparnatural.eu/how-to-configure-shacl/How-to-configure-Sparnatural-shacl.html">using the <strong>Sparnatural</strong> query builder</a>, and also input forms to facilitate the creation of DCAT datasets descriptions. Additionally, automated generation of the JSON-LD context and the JSON schema of the API are foreseen.</p>
<h2><strong>Not &laquo;&nbsp;1 SHACL to rule them all&nbsp;&raquo;, but application profiles, dataset definitions, and migration specifications</strong></h2>
<p>The definition of the EPODP knowledge graph is not captured in a single SHACL specification, but rather in three different application profiles, each being a selection of classes and properties of one sub-domain : <strong><a href="https://data.europarl.europa.eu/def/eli-ep">ELI-EP</a></strong> covers the description of documents and activities, <strong><a href="https://data.europarl.europa.eu/def/org-ep">ORG-EP</a></strong> covers the definitions of EP organisations (such as committees, political groups, etc.) and members of the parliament, and <strong><a href="https://europarl.github.io/skos-ep">SKOS-EP</a></strong> covers how controlled vocabularies are structured. In addition, <a href="https://data.europarl.europa.eu/def/dcat-ep">DCAT-EP</a> is the specification for how dataset records are described in the EPODP catalog &#8211; but this is not part of the knowledge graph <em>per se</em>.</p>
<p>Together, ELI-EP, ORG-EP and SKOS-EP specify the structure of the entire knowledge graph from which the datasets are extracted. In addition, the structure of each dataset family available in the EPODP (such as adopted texts, plenary documents, parliamentary questions, etc.) is also described in SHACL, referred to as <strong>&laquo;&nbsp;DSD&nbsp;&raquo; for &laquo;&nbsp;Dataset Definition&nbsp;&raquo;</strong>. While the application profiles describe every possible properties on generic shapes, the DSDs will specify only the subset of properties used in a dataset, with possibly different cardinalities or range. For example, ELI-EP specifies that <em>&laquo;&nbsp;a Work may have the property</em><em> </em><em>eli:adopts</em><em>&laquo;&nbsp;</em> (with no minimum cardinality (eli:adopts is defined as <em>&laquo;&nbsp;Indicates that the work represents the adopted work of one or several related works&nbsp;&raquo;</em>). The DSD for adopted texts datasets specifies the shape of &laquo;&nbsp;Adopted texts&nbsp;&raquo; as a subset of the Works, and indicates that the minimum cardinality of eli:adopts is 1 for this particular subset. Besides, some properties, such as eli:amends are not available for adopted texts, thus not declared in the DSD.</p>
<p>In addition, specifications of the conversion of some data sources are also specified in independent SHACL files. The articulations of these 3 kinds of SHACL files and the reused ontologies is depicted in the following diagram:</p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2025/04/3-SHACL-shapes.png"><img class="aligncenter size-large wp-image-1962" src="https://blog.sparna.fr/wp-content/uploads/2025/04/3-SHACL-shapes-1024x603.png" alt="3-SHACL-shapes" width="650" height="383" /></a></p>
<p>There is currently no reuse or reference of shapes across the different specifications. Each is independent. A nice improvement would be to study how SHACL DSDs could be derived from the application profile SHACL, without redeclaring the identical constraints.</p>
<h2><strong>Editing SHACL in spreadsheets</strong></h2>
<p>In total 16 SHACL specifications are currently published in the EPODP, and around 80 are used to validate data migrated from each individual sources. The first step in the specification of each model is the design in a diagram such as the ones visible in the public documentations of the models. The EPODP team is then using spreadsheets to encode the specifications, adapted from the one provided <a href="https://shacl-play.sparna.fr/play/shaclexcel">in the SHACL Play suite</a>. The spreadsheet is converted to SHACL using <a href="https://xls2rdf.sparna.fr/rest/">the xls2rdf converter</a>. <strong>Spreadsheets provide a simple editing solution</strong>, with an easy learning curve, made even easier with a few formulas to compute cell values automatically. It even provides ways for editing advanced patterns (such as the ability to directly turtle lists for sh:or, or blank nodes for property paths), but of course still limits the expressivity. The following screenshot shows how property shapes look like in the spreadsheet:</p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2025/04/properties-ELI.png"><img class="aligncenter size-large wp-image-1963" src="https://blog.sparna.fr/wp-content/uploads/2025/04/properties-ELI-1024x442.png" alt="properties-ELI" width="650" height="281" /></a></p>
<h2></h2>
<h2><strong>Results and future perspectives</strong></h2>
<p>The EPODP use-case shows how SHACL can be applied in a systematic way in a data integration and dissemination project : at the data transformation step, at the knowledge graph level, and at the data dissemination. <strong>Public documentation, data validation, data extraction are tasks that can be be automated based on a SHACL specification</strong>. While the context is one of a large public institution, the same approach can be applied in industrial contexts. The SHACL specifications are a cornerstone of such projects, enabling semantic interoperability at large and a mutual understanding between business experts, data analysts, developers, and data consumers.</p>
<p>&nbsp;</p>
<h1>”</h1>
<p>Veronika&rsquo;s book will be divided into three parts :<br class="html-br" /><br class="html-br" />1. Back to Basics<br class="html-br" />Introduction to logic and RDF, brief skimming of the topics. Also covering various world assumptions.</p>
<p>2. Getting to know the stuff<br class="html-br" />Introduction to SHACL, including core, sh-sparql, advanced features.</p>
<p>3. Working with the stuff<br class="html-br" />SHACL Stories. Use cases, user stories and implementations.</p>
<p><em>Image : © European Union, [2024] &#8211; EP</em></p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2025/04/09/european-parliament-open-data-portal-a-shacl-powered-knowledge-graph/">European Parliament Open Data Portal : a SHACL-powered knowledge graph</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/04/09/european-parliament-open-data-portal-a-shacl-powered-knowledge-graph/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Genesis of Sparnatural in the context of the OpenArchaeo platform</title>
		<link>https://blog.sparna.fr/2025/03/28/the-genesis-of-sparnatural-in-the-context-of-the-openarchaeo-platform/</link>
		<comments>https://blog.sparna.fr/2025/03/28/the-genesis-of-sparnatural-in-the-context-of-the-openarchaeo-platform/#comments</comments>
		<pubDate>Fri, 28 Mar 2025 14:54:53 +0000</pubDate>
		<dc:creator><![CDATA[Marie Muller]]></dc:creator>
				<category><![CDATA[FAIR]]></category>
		<category><![CDATA[Linked Data]]></category>
		<category><![CDATA[Ontologies]]></category>
		<category><![CDATA[Open Data]]></category>
		<category><![CDATA[Recherche d'informations]]></category>
		<category><![CDATA[Sparnatural]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[Triplestores]]></category>
		<category><![CDATA[CIDOC-CRM]]></category>
		<category><![CDATA[Huma-Num]]></category>
		<category><![CDATA[ResearchSpace]]></category>
		<category><![CDATA[thesaurus]]></category>
		<category><![CDATA[Triplestore]]></category>

		<guid isPermaLink="false">https://blog.sparna.fr/?p=1949</guid>
		<description><![CDATA[<p>The OpenArchaeo platform, developed by French consortium Huma-Num MASAplus (Mémoire des Archéologues et des Sites Archéologiques) together with SPARNA, is a platform dedicated to archaeological data interoperability. This semantic interoperability objective relies on the strong conceptual foundations offered by the CIDOC-CRM data model. Paired with the CIDOC-CRM in a federated way, OpenArchaeo aims at :&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2025/03/28/the-genesis-of-sparnatural-in-the-context-of-the-openarchaeo-platform/">The Genesis of Sparnatural in the context of the OpenArchaeo platform</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://openarchaeo.huma-num.fr">OpenArchaeo</a> platform, developed by French <a href="https://www.huma-num.fr/les-consortiums-hn/#MASAplus">consortium Huma-Num MASAplus</a> (Mémoire des Archéologues et des Sites Archéologiques) together with SPARNA, is a platform dedicated to archaeological data interoperability. This semantic interoperability objective relies on the strong conceptual foundations offered by the <a href="https://blog.sparna.fr/2019/03/26/le-cidoc-crm-ne-nous-arrachons-plus-les-cheveux/">CIDOC-CRM</a> data model.</p>
<p>Paired with the CIDOC-CRM in a federated way, OpenArchaeo aims at :</p>
<ul>
<li>making available the archaeological datasets produced by the MASAplus consortium’s partners on the semantic web, in the form of a triplestore with data aligned with the ontology and its extensions dedicated to archaeology ;</li>
<li>providing an intuitive query interface for archaeological data.</li>
</ul>
<p>The latter query interface integrates the Sparnatural knowledge graph exploration component. The UI of this component was heavily inspired by the British Museum&rsquo;s ResearchSpace semantic search feature, as the system proposes the user to build his own queries based on the CIDOC-CRM model underlying the data.</p>
<h2>About ResearchSpace platform</h2>
<p>Initiated in 2009 by a cross-disciplinary team at the British Museum, ResearchSpace is « A full CIDOC-CRM authoring and search system, based on an exhaustive collection of forms that reflects all applicable relationships from the CIDOC CRM ontology. »</p>
<p>Among a wide range of semantic tools to create, manipulate, analyse and visualise data, the platform provides a s<a href="https://documentation.researchspace.org/resource/Help:SemanticSearch">emantic structured search component</a> based on categories and relations.</p>
<p>While open source, ResearchSpace’s code didn’t fit our architecture : we just chose to follow the simple visual elements of ResearchSpace’s query interface to develop our own Sparnatural query builder for OpenArchaeo, and set up a system of icons to identify the main components of the archaeological data.</p>
<p>ResearchSpace has recently (december 2024) released a brand new <a href="https://github.com/researchspace/researchspace/blob/master/release-notes.md">4.0.0 version</a>. This latest can be installed easily and now comes with a default setup of forms based on the CIDOC-CRM. It enables image annotations, knowledge maps creations, semantic narratives writing, timeline productions, and more <a href="https://researchspace.org/semantic-tools/">semantic tools</a>.</p>
<h2>Sparnatural’s first use-case was OpenArchaeo’s CIDOC-CRM model !</h2>
<p><a href="http://openarchaeo.huma-num.fr/explorateur/home">The structure of the knowledge graph of OpenArchaeo</a> relies on the CIDOC-CRM and some of its extension (CRMarchaeo, CRMsci and CRMba). It is a generic model that covers the basic concepts found in most archaeological corpuses (site, operation, structure, feature, wall, burial, stratigraphic unit and artifact).</p>
<p>Here a focus on Class S19 :</p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2025/03/modeleOpenArchaeoEn_base.png"><img class="aligncenter size-full wp-image-1950" src="https://blog.sparna.fr/wp-content/uploads/2025/03/modeleOpenArchaeoEn_base.png" alt="modeleOpenArchaeoEn_base" width="898" height="416" /></a><br />
Several external thesauri were added too for querying the datasets : <a href="https://pactols.frantiq.fr/">PACTOLS thesaurus for archaelogy</a>, but also <a href="https://www.geonames.org/ontology/documentation.html">Geonames</a> and <a href="https://perio.do/technical-overview/">Periodo</a> for spatial and temporal searches.</p>
<p>This way, when users wish to connect two elements (artifact and site for example), the interface automatically suggests the available relationships between these entities, enabling users to formulate their request in a simple way without having to know either the entities and properties of CIDOC CRM, or the structure of the system : the SPARQL queries that correspond to the sentences visually built by users will be automatically computed. In addition, the usage of thesauri allows the users to cross-reference easily multiple datasets through the different widgets proposed in Sparnatural.</p>
<h2><a href="https://github.com/sparna-git/Sparnatural/releases">Get the latest release of Sparnatural !</a></h2>
<p>Since it was created for OpenArchaeo in 2019, Sparnatural UI has been fully redesigned. It now offers a large panel of features, from different <a href="https://docs.sparnatural.eu/widgets.html">widgets for value selection</a> (dropdown lists, ordered by occurrence count or alphabetically, autocomplete search fields, date pickers, tree widgets&#8230;) to brand new <a href="https://docs.sparnatural.eu/result-display.html">result display plugins</a> : the default visualisation is a table of results, but if the results are geolocalized they can be shown in a map. Also grid, stats, pie or bar charts, and a timeline plugin have been made available and documented.</p>
<h2>To go further on OpenArchaeo’s platform &#8230;</h2>
<p><a href="https://www.youtube.com/watch?v=8GW5sirwHJs">See a presentation of the project on the CIDOC Museum Documentation Channel</a><br />
(« Semantic modelling of archaeological data online workshop series »)</p>
<p>The platform : <a href="http://openarchaeo.huma-num.fr/">http://openarchaeo.huma-num.fr/</a></p>
<p>The project : <a href="https://masa.hypotheses.org/openarchaeo">https://masa.hypotheses.org/openarchaeo</a></p>
<p>Read full research paper about the project : <a href="https://ceur-ws.org/Vol-2375/paper1.pdf">https://ceur-ws.org/Vol-2375/paper1.pdf</a></p>
<p><em>Image : Vestiges of a large villa in Courbehaye &laquo;&nbsp;les Deux Muids / le Moulin de Mongé&nbsp;&raquo;, photo Alain Lelong (2003), <a href="https://aerba.huma-num.fr/fiche.html?id=2811401">Atlas des Établissements Ruraux de Beauce Antique</a>, licence </em><a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA</a></p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2025/03/28/the-genesis-of-sparnatural-in-the-context-of-the-openarchaeo-platform/">The Genesis of Sparnatural in the context of the OpenArchaeo platform</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/03/28/the-genesis-of-sparnatural-in-the-context-of-the-openarchaeo-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>Sparnatural : say it with SHACL !</title>
		<link>https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/</link>
		<comments>https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/#comments</comments>
		<pubDate>Tue, 15 Oct 2024 16:02:59 +0000</pubDate>
		<dc:creator><![CDATA[Marie Muller]]></dc:creator>
				<category><![CDATA[SHACL]]></category>
		<category><![CDATA[Sparnatural]]></category>
		<category><![CDATA[DBpedia]]></category>
		<category><![CDATA[endpoint]]></category>
		<category><![CDATA[SPARQL]]></category>

		<guid isPermaLink="false">https://blog.sparna.fr/?p=1800</guid>
		<description><![CDATA[<p>Do you Sparnatural ? If you follow us here, you may be familiar with our most well-known Sparnatural visual query builder. If not, have a look at the website and give us your impressions on it ! To make it short, Sparnatural is a client-side component that allows non-expert users to explore an RDF Knowledge Graph&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/">Sparnatural : say it with SHACL !</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;">Do you Sparnatural ? If you follow us here, you may be familiar with our most well-known Sparnatural visual query builder. If not, have a look <a href="https://sparnatural.eu/">at the website</a></span><span style="font-weight: 400;"> and give us your impressions on it !</span></p>
<p><span style="font-weight: 400;">To make it short, Sparnatural is a client-side component that allows non-expert users to explore an RDF Knowledge Graph by building SPARQL queries with little effort.</span><span style="font-weight: 400;"> </span></p>
<p><span style="font-weight: 400;">Fully configurable &#8211; and </span><span style="font-weight: 400;">customizable</span><span style="font-weight: 400;"> &#8211; it </span><span style="font-weight: 400;">can be plugged to any existing SPARQL endpoint, without additional server required</span><span style="font-weight: 400;"> to adapt to your knowledge graph ontology.</span><span style="font-weight: 400;"> </span></p>
<p><span style="font-weight: 400;">Innovative and intuitive, it aims at bringing your knowledge graph to your end-users in a visual way that &laquo;&nbsp;gamifies&nbsp;&raquo; the knowledge graph experience.</span><span style="font-weight: 400;"> </span></p>
<p><span style="font-weight: 400;">Nb : Sparnatural is open source, under a LGPL-3.0 license.</span></p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2024/10/sparnaturaleu.png"><img class="aligncenter size-large wp-image-1808" src="https://blog.sparna.fr/wp-content/uploads/2024/10/sparnaturaleu-1024x521.png" alt="sparnaturaleu" width="650" height="331" /></a></p>
<p><span style="font-weight: 400;">So far, the configuration was made through an OWL ontology&#8230;</span></p>
<p>&nbsp;</p>
<p><strong><em>Sparnatural in SHACL !</em></strong><span style="font-weight: 400;"> </span></p>
<p><span style="font-weight: 400;">&#8230; until now,</span></p>
<p><em><span style="font-weight: 400;">But </span><span style="font-weight: 400;">the times they are a-changin&rsquo;</span><span style="font-weight: 400;"> &#8230;</span></em></p>
<p><span style="font-weight: 400;">You can now configure Sparnatural starting <a href="https://docs.sparnatural.eu/#31-shacl-configuration">from a SHACL configuration spreadsheet</a> !</span></p>
<p><span style="font-weight: 400;"> </span><span style="font-weight: 400;"> </span></p>
<p><em><strong>SHACL in a nutshell</strong></em><span style="font-weight: 400;"> </span></p>
<p><span style="font-weight: 400;">Defined by a </span><a href="http://www.w3.org/2014/data-shapes/wiki/Main_Page"><span style="font-weight: 400;">W3C Working Group</span></a><span style="font-weight: 400;">, <a href="https://www.w3.org/TR/shacl/">SHACL, as for « Shapes Constraint Language »</a>,</span><span style="font-weight: 400;"> is </span><span style="font-weight: 400;">« </span><em><span style="font-weight: 400;">a language for validating RDF graphs against a set of conditions. These conditions are provided as shapes and other constructs expressed in the form of an RDF graph.</span></em><span style="font-weight: 400;"> »</span><span style="font-weight: 400;"> </span></p>
<p><span style="font-weight: 400;">First published in 2017, it has become a widely used standard to :</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">describe structural constraints on data graphs ;</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">validate that data graphs satisfy a set of conditions ;</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">but also build </span><span style="font-weight: 400;">user interface, generate code and integrate data</span><span style="font-weight: 400;"> !</span></li>
</ul>
<p><span style="font-weight: 400;">The latter we will leverage for our brand new Sparnatural SHACL configuration.</span></p>
<p>&nbsp;</p>
<p><em><strong>Yes, in a spreadsheet !</strong></em></p>
<p><span style="font-weight: 400;">SHACL may be quite unfamiliar for our users.</span></p>
<p><span style="font-weight: 400;">A good thing is you don’t need to be a SHACL expert to build your SHACL-shaped Sparnatural configuration.</span></p>
<p><span style="font-weight: 400;">Indeed ! the entire configuration is done <a href="https://github.com/sparna-git/sparnatural.eu/raw/refs/heads/main/demos/demo-dbpedia-en/sparnatural-config.xlsx">via a spreadsheet</a> whose columns correspond to the SHACL model.</span></p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2024/10/configxlsx.png"><img class="aligncenter size-large wp-image-1807" src="https://blog.sparna.fr/wp-content/uploads/2024/10/configxlsx-1024x415.png" alt="configxlsx" width="650" height="263" /></a></p>
<p><span style="font-weight: 400;">Still, you can observe that all the Sparnatural features are here :</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">the nodes &amp; the edges of the knowledge graph, of course ;</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">its labels and literal attributes (different kind of notes) ;</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">but also the Sparnatural search widgets, icons, etc.</span></li>
</ul>
<p>&nbsp;</p>
<p><em><strong>Give it a try !</strong></em><span style="font-weight: 400;"> </span></p>
<p><span style="font-weight: 400;">Go to</span> <span style="font-weight: 400;">the <a href="https://sparnatural.eu/demos/demo-dbpedia-en/index.html?lang=en">DBpedia Museums demo</a></span><span style="font-weight: 400;"> :</span></p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2024/10/start.png"><img class="aligncenter size-large wp-image-1806" src="https://blog.sparna.fr/wp-content/uploads/2024/10/start-1024x556.png" alt="start" width="650" height="353" /></a></p>
<p>&nbsp;</p>
<p><em><strong>Navigate the graph</strong></em><span style="font-weight: 400;"> </span></p>
<p><span style="font-weight: 400;">Start with picking up a class from the list and navigate through the properties to another class of the graph, search for a value&#8230;</span></p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2024/10/navigate.png"><img class="aligncenter size-large wp-image-1805" src="https://blog.sparna.fr/wp-content/uploads/2024/10/navigate-1024x768.png" alt="navigate" width="650" height="488" /></a></p>
<p><span style="font-weight: 400;">&#8230; then click on the arrow to launch the query </span>▶️</p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2024/10/launch-query.png"><img class="aligncenter size-large wp-image-1804" src="https://blog.sparna.fr/wp-content/uploads/2024/10/launch-query-1024x733.png" alt="launch query" width="650" height="465" /></a></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Click on « </span><i><span style="font-weight: 400;">Toggle SPARQL editor</span></i><span style="font-weight: 400;"> »</span><span style="font-weight: 400;"> below the query builder to display the </span><span style="font-weight: 400;">corresponding SPARQL query :</span></p>
<p><img class="aligncenter size-large wp-image-1803" src="https://blog.sparna.fr/wp-content/uploads/2024/10/SPARQL-1024x1000.png" alt="SPARQL" width="650" height="635" /></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">&#8230; no need to say that you can create even more elaborate queries, just by adding new parameters when navigating through the knowledge graph !</span></p>
<p>&nbsp;</p>
<p><em><strong>Sample queries </strong></em></p>
<p><span style="font-weight: 400;">To give you a quick overview of it, you can also try to launch one of the sample queries we added to the demo.</span></p>
<p><span style="font-weight: 400;">On the screenshot below we can observe this one is a quite more complex query, using an optional parameter as we noticed that some values happen to be missing on DBpedia, either for Movements or Artworks&#8230;</span></p>
<p>Can we deduce that 19th-Century French women artists records are rather incomplete in English DBpedia ? <img src="https://s.w.org/images/core/emoji/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><a href="https://sparnatural.eu/demos/demo-dbpedia-en/index.html?query=XQAAAAJ9BgAAAAAAAABtAYrNc5EUmvX8DWAhQM_bO-RQtw8eLv5AfYUbHEHKg8akAeq81XRpWDKqgPFC6wFYkF9uefA_M1YPtUEFzqfNkOzRoORdqJdSqPunlpPDRtYOdThL-Rrlj29P6MGeLGpCE6d9GUG95msHusjvbvBBcy3M5V6BQh29xB3VKbXXDqKH_thv6xoP64-p5Xtke6piQ_O25w_Puab4_OglI3gIdGC_6WUL91vh_5fgu9FXp38b7j2alfs8tQia6zFJOy8m9sdWC_wpMlXxpZL8PhuceKyNSwN7RmNsX1ogUfiUVlV1GG3CjySXEKxJU_xzrDmAX4Y4nRw2M2kw0SlMQ-cud_iCp-OPwaMy2r95of-gKzQJOXI6sKIa56rWrweIiOIsL6elNaQhGDgVKEFd3fgQxTqz-WRRMaqzLmWbeq0YW7gFLczxOy1lkXLO-8KEpGVCG_5ZINJ2warZKFmrGfBbG6Du2jpBvD9pBnUfs36GmmMKlDxSplRdInD6fL1coq5Gvs2U6qQwMKfGv5YXCIH-nHBHut2GvZsi9-X9__LER9o">We&rsquo;ll let you investigate on this point</a>.</p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2024/10/sample.png"><img class="aligncenter size-large wp-image-1836" src="https://blog.sparna.fr/wp-content/uploads/2024/10/sample-1024x942.png" alt="sample" width="650" height="598" /></a></p>
<p>&nbsp;</p>
<p><em><strong>Multilingual</strong></em><span style="font-weight: 400;"> </span></p>
<p><span style="font-weight: 400;">It is also possible to translate (and display) your configuration in any language of your choice, so that you can showcase your knowledge graph in different languages &#8211; even if the graph itself does not contain labels or values with this language&#8230;</span><span style="font-weight: 400;"> </span></p>
<p><span style="font-weight: 400;">Here translated in French :</span></p>
<p><a href="https://blog.sparna.fr/wp-content/uploads/2024/10/multilingual1.png"><img class="aligncenter size-large wp-image-1824" src="https://blog.sparna.fr/wp-content/uploads/2024/10/multilingual1-1024x630.png" alt="multilingual" width="650" height="400" /></a></p>
<p>&nbsp;</p>
<p><em><strong>Fully documented</strong></em><span style="font-weight: 400;"> </span></p>
<p><span style="font-weight: 400;">This new version of Sparnatural comes with </span><a href="https://docs.sparnatural.eu/"><span style="font-weight: 400;">an extensive documentation of all the features that can be used to date</span></a><span style="font-weight: 400;">, from basic installation to more advanced configuration of the tool.</span></p>
<p><a href="https://docs.sparnatural.eu/hello-sparnatural/Hello-Sparnatural.html"><b><i>Get started with Hello Sparnatural !</i></b></a></p>
<p>&nbsp;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/">Sparnatural : say it with SHACL !</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/10/15/sparnatural-say-it-with-shacl/feed/</wfw:commentRss>
		<slash:comments>1</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>Dashboards from SPARQL knowledge graphs using Looker Studio (Google Data Studio)</title>
		<link>https://blog.sparna.fr/2022/10/18/dashboards-from-sparql-knowledge-graphs-using-looker-studio-google-data-studio/</link>
		<comments>https://blog.sparna.fr/2022/10/18/dashboards-from-sparql-knowledge-graphs-using-looker-studio-google-data-studio/#comments</comments>
		<pubDate>Tue, 18 Oct 2022 13:02:38 +0000</pubDate>
		<dc:creator><![CDATA[Thomas Francart]]></dc:creator>
				<category><![CDATA[02-Outils]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[dashboards]]></category>
		<category><![CDATA[RDF]]></category>

		<guid isPermaLink="false">http://blog.sparna.fr/?p=1481</guid>
		<description><![CDATA[<p>You want to demonstrate the content of your knowledge graph accessible in SPARQL ? You can easily use dashboard tools, such as Looker studio  (formerly Google Data Studio) which require no development and is free to use. Of course, Sparnatural is another possible solution ! This guide will describe every step you need to know&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2022/10/18/dashboards-from-sparql-knowledge-graphs-using-looker-studio-google-data-studio/">Dashboards from SPARQL knowledge graphs using Looker Studio (Google Data Studio)</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;">You want to demonstrate the content of your <strong>knowledge graph accessible in SPARQL</strong> ? You can easily use <strong>dashboard</strong> tools, such as <a href="https://datastudio.google.com" target="_blank">Looker studio</a>  (formerly </span><span style="font-weight: 400;">Google Data Studio</span><span style="font-weight: 400;">) which require no development and is free to use. Of course, </span><a href="https://sparnatural.eu" target="_blank"><span style="font-weight: 400;">Sparnatural</span></a><span style="font-weight: 400;"> is another possible solution !</span></p>
<p><span style="font-weight: 400;">This guide will describe every step you need to know in order to create a Looker Studio Dashboard from SPARQL queries. All along, an example will be shown to illustrate all the steps with screenshots, code text and quotes</span><span style="font-weight: 400;">.</span></p>
<h1><span style="font-weight: 400;">Step 1 : Getting the SPARQL Connector </span></h1>
<p><span style="font-weight: 400;">Looker Studio does not provide any native connector for SPARQL. But a community connector exists, called SPARQL Connector, made by Datafabrics LLC, that can be used to create the data source. You can find it by searching for community connectors, or use </span><a href="https://datastudio.google.com/datasources/create?connectorId=AKfycbzDHEBN9qHXPni4xO4P2cIZtyQ3rnYmzkCnVsnh9oEJrnhGe4MntBF-t1zAu2Lm-Vjc" target="_blank"><span style="font-weight: 400;">this link</span></a><span style="font-weight: 400;">. The code is available in </span><a href="https://github.com/DataFabricRus/datastudio-sparql-connector" target="_blank"><span style="font-weight: 400;">this Github repository</span></a><span style="font-weight: 400;">.</span></p>
<p><span style="font-weight: 400;">You have to grant access to your Google account for SPARQL Connector before using it. You will be able to find it in the connectors panel, in the Partner Connectors section, for your next queries.</span></p>
<h1><span style="font-weight: 400;">Step 2 : Connect your knowledge graph</span></h1>
<p><span style="font-weight: 400;">From your report, click on “Add Data” on the bottom right of the screen to open the connector panel. Select the SPARQL Connector in the connector panel (you can also search for it by entering “sparql” in the research field).</span><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/1-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1491" src="http://blog.sparna.fr/wp-content/uploads/2022/10/1-article-Dashboard-300x150.jpg" alt="1 - article Dashboard" width="300" height="150" /></a></p>
<p><span style="font-weight: 400;">Then, follow the steps to create your own data source:</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Enter the URL of the SPARQL endpoint (the endpoint must be publicly accessible, without authentication)</span>, for example, with DBPedia:</li>
</ul>
<pre><span style="font-size: 10pt;"><code><span style="font-weight: 400;">https://dbpedia.org/sparql</span></code></span></pre>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Then enter the SPARQL query, for example the following selects countries, their capital city label and their total population:<br />
</span></li>
</ul>
<pre><span style="font-size: 10pt;"><code><span style="font-weight: 400;">PREFIX rdfs: &lt;</span><span style="font-weight: 400;">http://www.w3.org/2000/01/rdf-schema#</span><span style="font-weight: 400;">&gt;</span>
<span style="font-weight: 400;">PREFIX dbr: &lt;</span><span style="font-weight: 400;">http://dbpedia.org/resource/</span><span style="font-weight: 400;">&gt;</span>
<span style="font-weight: 400;">PREFIX dbo: &lt;http://dbpedia.org/ontology/&gt;</span>
<span style="font-weight: 400;">SELECT ?capital_city_label ?country_label  ?population</span>
<span style="font-weight: 400;">WHERE {</span>
<span style="font-weight: 400;">?capital_city  dbo:type dbr:Capital_city.</span>
<span style="font-weight: 400;">?capital_city rdfs:label ?capital_city_label.</span>
<span style="font-weight: 400;">?capital_city dbo:country ?country.</span>
<span style="font-weight: 400;">?country rdfs:label ?country_label.</span>
<span style="font-weight: 400;">OPTIONAL {?capital_city dbo:populationMetro ?population.}</span>
<span style="font-weight: 400;">FILTER (lang(?capital_city_label) = 'en')</span>
<span style="font-weight: 400;">FILTER (lang(?country_label) = 'en')</span>
<span style="font-weight: 400;">}</span></code></span></pre>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">For each field on your query, you have to create one field on your data source and select its type. To do so, you have to build a schema like this one:<br />
</span></li>
</ul>
<pre><span style="font-size: 10pt;"><code><span style="font-weight: 400;">[{"name": "capital_city_label", "dataType": "STRING"},</span>
<span style="font-weight: 400;">    {"name": "country_label", "dataType": "STRING"},</span>
<span style="font-weight: 400;">    {"name": "population", "dataType": "NUMBER"}]</span></code></span></pre>
<p><span style="font-weight: 400;">Be sure your “name” fields match the fields you have on your query in the same order. You have to select the “dataType” you want for each of your fields, but you can change it later within Google Data Studio. Click </span><a href="https://support.google.com/looker-studio/answer/9514333?hl=en" target="_blank"><span style="font-weight: 400;">here</span></a><span style="font-weight: 400;"> to learn more about data types.</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/2-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1492" src="http://blog.sparna.fr/wp-content/uploads/2022/10/2-article-Dashboard-300x173.jpg" alt="2 - article Dashboard" width="300" height="173" /></a></p>
<p><span style="font-weight: 400;">Once every field is completed, you have to click twice on “Add”. If everything goes well, the connector panel will disappear and your new data source will appear on the right of the window and is ready to use. It is defaultly named as “SPARQL Connector”.</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/3-article-Dashboard.jpg"><img class="aligncenter size-full wp-image-1493" src="http://blog.sparna.fr/wp-content/uploads/2022/10/3-article-Dashboard.jpg" alt="3 - article Dashboard" width="229" height="183" /></a></p>
<p><span style="font-weight: 400;">If you made a mistake while creating your data source, the SPARQL Connector panel can :</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Show an error message, that will indicate you the error type (endpoint, for example)</span></li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/4-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1494" src="http://blog.sparna.fr/wp-content/uploads/2022/10/4-article-Dashboard-300x212.jpg" alt="4 - article Dashboard" width="300" height="212" /></a></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Do nothing and you will have to check on your schema to be sure everything is correct.</span></li>
</ul>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Create a data source as it should do, but Google Data Studio can’t use your data source, and show you this message on your chart :</span></li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/5-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1495" src="http://blog.sparna.fr/wp-content/uploads/2022/10/5-article-Dashboard-300x177.jpg" alt="5 - article Dashboard" width="300" height="177" /></a></p>
<p><span style="font-weight: 400;">If you click on “See details” Google Data Studio will show you the error type from the connector :</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/6-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1496" src="http://blog.sparna.fr/wp-content/uploads/2022/10/6-article-Dashboard-300x210.jpg" alt="6 - article Dashboard" width="300" height="210" /></a></p>
<h1><span style="font-weight: 400;">Step 3 : Transform your data</span><span style="font-weight: 400;"> </span></h1>
<p><span style="font-weight: 400;">First, you can change the name of your data source by clicking on the icon on the left of the data source on Google Data Studio (the icon will change into a pencil) to open the data source edition panel.</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/7-article-Dashboard.jpg"><img class="aligncenter size-full wp-image-1497" src="http://blog.sparna.fr/wp-content/uploads/2022/10/7-article-Dashboard.jpg" alt="7 - article Dashboard" width="235" height="184" /></a></p>
<p><span style="font-weight: 400;">Then, click on the top left of the new panel where the name of your data source is to modify it.</span></p>
<blockquote><p><span style="font-weight: 400; font-size: 12pt;">Change name of the example data source to “Capital city Data (DBpedia)”</span></p></blockquote>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/8-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1498" src="http://blog.sparna.fr/wp-content/uploads/2022/10/8-article-Dashboard-300x171.jpg" alt="8 - article Dashboard" width="300" height="171" /></a></p>
<p><span style="font-weight: 400;">You can also change your data source by modifying your parameters in SPARQL Connector. To do so, click on “EDIT CONNECTION”. The SPARQL Connector panel will open with your current parameters and you can modify them.</span></p>
<p><span style="font-weight: 400;">In the data source edition panel, you can also change the type of your fields so it fits your needs (numbers can be changed as currency, text can be changed as geographic data, etc.).</span></p>
<p><span style="font-weight: 400;">Be careful of your fields format, you may not be able to use your data anymore. For example, if you have a “,” as a decimal separator, you can change your data type but you won’t be able to use this field as Google Data Studio uses “.” as a decimal separator.</span></p>
<p><span style="font-weight: 400;">The connector will also apply default values in query results which don&rsquo;t have a value for a requested field. The default values are 0 for numbers, “” for strings and false for booleans.</span></p>
<blockquote><p><span style="font-weight: 400; font-size: 12pt;">The population field on DBpedia has some null values, but the connector transformed all these values into default values (0 for numbers).</span></p></blockquote>
<p><span style="font-weight: 400;">You may need to use calculated fields in order to obtain new fields or to transform data. To create one,  click on “ADD A FIELD” on the right side of the same panel. Check the </span><a href="https://support.google.com/datastudio/answer/6299685?hl=en#zippy=%2Cin-this-article" target="_blank"><span style="font-weight: 400;">following page from the documentation</span></a><span style="font-weight: 400;"> to learn more about calculated fields.</span></p>
<p><span style="font-weight: 400;">By using a calculated field, the population data can be switched back to the original values.</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/9-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1499" src="http://blog.sparna.fr/wp-content/uploads/2022/10/9-article-Dashboard-300x47.jpg" alt="9 - article Dashboard" width="300" height="47" /></a></p>
<p><span style="font-weight: 400;">In the new panel, choose the name of your new field, enter the formula. To ensure your formula is correct, a green check appears at the bottom of the panel. If not, it will turn into a red cross.</span></p>
<blockquote><p><span style="font-weight: 400; font-size: 12pt;">Enter the new field name: &laquo;&nbsp;population_recalculated&nbsp;&raquo;. Then enter the formula of the field : &laquo;&nbsp;NULLIF(population,0)&nbsp;&raquo;. In this case, if any population value is equal to 0 in the population field, it will turn into a null value in the calculated field. </span></p></blockquote>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/10-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1500" src="http://blog.sparna.fr/wp-content/uploads/2022/10/10-article-Dashboard-300x222.jpg" alt="10 - article Dashboard" width="300" height="222" /></a></p>
<h1><span style="font-weight: 400;">Step 4 : Improve performance with data extraction</span></h1>
<p><span style="font-weight: 400;">Once you manage to create all your calculated fields, you may have some useless fields in your data source. Those fields may decrease the speed of your dashboard. You can use the “Extract Data” to keep the fields you need in another data source that you will use to make your report.</span></p>
<p><span style="font-weight: 400;">To use it, click on “Add Data” on the bottom right of the screen and select “Extract Data”.</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/20-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1510" src="http://blog.sparna.fr/wp-content/uploads/2022/10/20-article-Dashboard-300x125.jpg" alt="20 - article Dashboard" width="300" height="125" /></a></p>
<p><span style="font-weight: 400;">Then, select your data source and the fields you want to keep in your report. You can make many extractions from one data source if you need. </span></p>
<blockquote><p><span style="font-weight: 400; font-size: 12pt;">Choose the data source and keep only 3 fields : “capital_city_label”, “country_label” and “population_recalculated”.</span></p></blockquote>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/11-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1501" src="http://blog.sparna.fr/wp-content/uploads/2022/10/11-article-Dashboard-273x300.jpg" alt="11 - article Dashboard" width="273" height="300" /></a></p>
<p><span style="font-weight: 400;">You can also configure the auto-update tool to make sure your extracted data are up to date with the latest version of your data source from SPARQL Connector. In the bottom right of the panel, switch the auto-update button then choose the occurrence of the update (between daily, weekly and monthly).</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/12-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1502" src="http://blog.sparna.fr/wp-content/uploads/2022/10/12-article-Dashboard-300x266.jpg" alt="12 - article Dashboard" width="300" height="266" /></a></p>
<p><span style="font-weight: 400;">A data source defaultly named “Extract Data” appears with the fields you selected from the previous data source.</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/13-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1503" src="http://blog.sparna.fr/wp-content/uploads/2022/10/13-article-Dashboard-205x300.jpg" alt="13 - article Dashboard" width="205" height="300" /></a></p>
<p><span style="font-weight: 400;">This method only works for data sources, you won’t be able to use it on blended data. Make sure to do the extraction before blending to improve your performance. To learn more about blending, see </span><a href="https://support.google.com/datastudio/answer/9061420?hl=en" target="_blank"><span style="font-weight: 400;">this page</span></a><span style="font-weight: 400;"> from the Looker Studio documentation</span><span style="font-weight: 400;">.</span></p>
<h1><span style="font-weight: 400;">Step 5 : Create your dashboard </span></h1>
<p><span style="font-weight: 400;">Here is a quick guide on how to create a chart in Google Data Studio. Check the </span><a href="https://support.google.com/datastudio/topic/7059081" target="_blank"><span style="font-weight: 400;">chart reference documentation</span></a><span style="font-weight: 400;"> for more information about charts available by default.</span></p>
<p><span style="font-weight: 400;">To build a dashboard, you will need to select a widget first (pie chart, table, histograms, etc.). Click on “Add a chart” on the top of the screen and select the one you need.</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/14-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1504" src="http://blog.sparna.fr/wp-content/uploads/2022/10/14-article-Dashboard-300x42.jpg" alt="14 - article Dashboard" width="300" height="42" /></a></p>
<blockquote><p><span style="font-weight: 400; font-size: 12pt;">Click on “Add a chart” and select a pie chart.</span></p></blockquote>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/15-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1505" src="http://blog.sparna.fr/wp-content/uploads/2022/10/15-article-Dashboard-281x300.jpg" alt="15 - article Dashboard" width="281" height="300" /></a></p>
<p><span style="font-weight: 400;">Select your chart on the report, it will open a panel on the right side of the screen where you can see the chart type and modify it. You can select the data to display in the “SETUP” panel. You can also customize the chart with the “STYLE” panel.</span></p>
<p><span style="font-weight: 400;">Place the chart on your dashboard anywhere you want to see it. Google Data Studio will automatically choose the data source and some fields which fit the charts, but you can choose to modify them in the “SETUP” panel on the right.</span></p>
<blockquote><p><span style="font-weight: 400; font-size: 12pt;">Choose “capital_city_label” as dimension and “population recalculated” as metric.</span></p></blockquote>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/16-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1506" src="http://blog.sparna.fr/wp-content/uploads/2022/10/16-article-Dashboard-153x300.jpg" alt="16 - article Dashboard" width="153" height="300" /></a></p>
<blockquote><p><span style="font-weight: 400; font-size: 12pt;">Here is the result of this configuration :</span></p></blockquote>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/17-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1507" src="http://blog.sparna.fr/wp-content/uploads/2022/10/17-article-Dashboard-300x224.jpg" alt="17 - article Dashboard" width="300" height="224" /></a></p>
<p><span style="font-weight: 400;">In the “STYLE” panel, you can choose to modify some options in the chart to customize it.</span></p>
<blockquote><p><span style="font-weight: 400; font-size: 12pt;">Change the number of slices from 10 to 6 to see the 5 top values + others value.</span></p></blockquote>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/18-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1508" src="http://blog.sparna.fr/wp-content/uploads/2022/10/18-article-Dashboard-172x300.jpg" alt="18 - article Dashboard" width="172" height="300" /></a></p>
<p><span style="font-weight: 400;">The chart will change automatically with your new parameters as you change them.</span></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2022/10/19-article-Dashboard.jpg"><img class="aligncenter size-medium wp-image-1509" src="http://blog.sparna.fr/wp-content/uploads/2022/10/19-article-Dashboard-300x238.jpg" alt="19 - article Dashboard" width="300" height="238" /></a></p>
<p><span style="font-weight: 400;">Congratulations, you have successfully made your first chart!Try to get your own data sources with SPARQL Connector, make your own dashboards with Looker Studio, and send us the links !</span></p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2022/10/18/dashboards-from-sparql-knowledge-graphs-using-looker-studio-google-data-studio/">Dashboards from SPARQL knowledge graphs using Looker Studio (Google Data Studio)</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/2022/10/18/dashboards-from-sparql-knowledge-graphs-using-looker-studio-google-data-studio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evènement : Sparnatural et les démonstrateurs Archives Nationales + BNF</title>
		<link>https://blog.sparna.fr/2022/05/24/evenement-sparnatural-demonstrateurs-archives-nationales-bnf/</link>
		<comments>https://blog.sparna.fr/2022/05/24/evenement-sparnatural-demonstrateurs-archives-nationales-bnf/#comments</comments>
		<pubDate>Tue, 24 May 2022 07:48:02 +0000</pubDate>
		<dc:creator><![CDATA[Thomas Francart]]></dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[LinkedData]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[RecordsInContexts]]></category>
		<category><![CDATA[Sparnatural]]></category>
		<category><![CDATA[SPARQL]]></category>

		<guid isPermaLink="false">http://blog.sparna.fr/?p=1456</guid>
		<description><![CDATA[<p>Les Archives nationales, la BnF et le Département du Numérique pour la transformation des politiques culturelles et l’administration des données (DEPNUM) du ministère de la Culture se sont associés en 2021 pour mener à bien un projet visant deux objectifs : développer une nouvelle version de Sparnatural (http://sparnatural.eu/), un éditeur open source de requêtes SPARQL (qui&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2022/05/24/evenement-sparnatural-demonstrateurs-archives-nationales-bnf/">Evènement : Sparnatural et les démonstrateurs Archives Nationales + BNF</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Les Archives nationales, la BnF et le Département du Numérique pour la transformation des politiques culturelles et l’administration des données (DEPNUM) du ministère de la Culture se sont associés en 2021 pour mener à bien un projet visant deux objectifs :</p>
<ol>
<li>développer une nouvelle version de Sparnatural (<a href="http://sparnatural.eu/" target="_blank"><span style="color: #1155cc;"><u>http://sparnatural.eu/</u></span></a>), un éditeur open source de requêtes SPARQL (qui est le langage utilisé pour faire des recherches dans des graphes RDF) ;</li>
<li>mettre en place deux démonstrateurs web pleinement opérationnels, pour permettre l’exploration et la recherche intuitives dans des graphes de métadonnées culturelles grâce à des interfaces construites à l’aide de cet outil.</li>
</ol>
<p align="JUSTIFY">La BnF a donc construit avec Sparna un démonstrateur web pour interroger l’ensemble de ses données RDF, soit tout le contenu de <a id="m_-4922382747067794386LPlnk352719" href="https://data.bnf.fr/" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://data.bnf.fr/&amp;source=gmail&amp;ust=1653462619942000&amp;usg=AOvVaw0tEZBMs7Rohlz68fX70W9T"><span style="color: #1155cc;"><u>data.bnf.fr</u></span></a>. Les Archives nationales (le Lab, en concertation avec le Département du Minutier central des notaires des Paris) ont construit avec Sparna un démonstrateur web qui permet d’interroger les métadonnées décrivant un tiers des archives notariales conservées aux Archives nationales, qu’elles ont préalablement converties en RDF conformément à l’ontologie <a href="https://www.ica.org/standards/RiC/ontology" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://www.ica.org/standards/RiC/ontology&amp;source=gmail&amp;ust=1653462619942000&amp;usg=AOvVaw0Kh77VEm-J9IntAJrkp43g">RiC-O</a>.</p>
<p align="JUSTIFY">Une demi-journée le <span style="text-decoration: underline;">17 juin après-midi</span> permettra de présenter en détail les travaux réalisés et les résultats obtenus, puis d’évoquer les perspectives qu’ils ouvrent pour les institutions partenaires et pour d’autres projets.</p>
<p align="JUSTIFY">Elle aura lieu à l’auditorium des Archives nationales sur le site de Pierrefitte-sur-Seine (voir <a id="m_-4922382747067794386LPlnk164387" href="https://www.archives-nationales.culture.gouv.fr/fr/web/guest/site-de-pierrefitte-sur-seine" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://www.archives-nationales.culture.gouv.fr/fr/web/guest/site-de-pierrefitte-sur-seine&amp;source=gmail&amp;ust=1653462619942000&amp;usg=AOvVaw3oWAToZcDBgVPC0GLhwfBA"> <span style="color: #1155cc;"><u>https://www.archives-<wbr />nationales.culture.gouv.fr/fr/<wbr />web/guest/site-de-pierrefitte-<wbr />sur-seine</u></span></a>), et sera également accessible à distance via une plateforme de visioconférence.</p>
<p>Le programme de la demi-journée de présentation du projet Sparnatural est désormais téléchargeable depuis l’agenda des Archives nationales (<a id="m_-4922382747067794386LPlnk892914" href="https://www.archives-nationales.culture.gouv.fr/fr/web/guest/235?sia-agenda-parameter=0010111111111" target="_blank" rel="noopener noreferrer" data-saferedirecturl="https://www.google.com/url?q=https://www.archives-nationales.culture.gouv.fr/fr/web/guest/235?sia-agenda-parameter%3D0010111111111&amp;source=gmail&amp;ust=1653462619942000&amp;usg=AOvVaw1wiXiSZo2Hr7asI-KTbD4K">https://www.archives-<wbr />nationales.culture.gouv.fr/fr/<wbr />web/guest/235?sia-agenda-<wbr />parameter=0010111111111</a>) ou directement à <a id="m_-4922382747067794386LPlnk899055" href="https://www.archives-nationales.culture.gouv.fr/documents/10157/277814/Programme+Sparnatural+2022/" target="_blank" rel="noopener noreferrer" data-saferedirecturl="https://www.google.com/url?q=https://www.archives-nationales.culture.gouv.fr/documents/10157/277814/Programme%2BSparnatural%2B2022/&amp;source=gmail&amp;ust=1653462619942000&amp;usg=AOvVaw2xJZDynJ23v4DlPCMJpJzj"> https://www.archives-<wbr />nationales.culture.gouv.fr/<wbr />documents/10157/277814/<wbr />Programme+Sparnatural+2022/</a>.</p>
<p>La demi-journée est accessible à tous gratuitement, sur inscription. Pour vous inscrire vous pouvez, soit utiliser le formulaire disponible à <a id="m_-4922382747067794386LPlnk484327" href="https://framaforms.org/inscription-a-la-demi-journee-de-restitution-du-projet-sparnatural-17-juin-2022-1652342598" target="_blank" rel="noopener noreferrer" data-saferedirecturl="https://www.google.com/url?q=https://framaforms.org/inscription-a-la-demi-journee-de-restitution-du-projet-sparnatural-17-juin-2022-1652342598&amp;source=gmail&amp;ust=1653462619942000&amp;usg=AOvVaw23iqTXRo0GZVdRnMsERHwA">https://framaforms.org/<wbr />inscription-a-la-demi-journee-<wbr />de-restitution-du-projet-<wbr />sparnatural-17-juin-2022-<wbr />1652342598</a>), soit écrire à l’adresse  <a href="mailto:le-lab.archives-nationales@culture.gouv.fr" target="_blank">le-lab.archives-nationales@<wbr />culture.gouv.fr</a> en précisant si vous viendrez sur place ou si vous participerez à distance.</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2022/05/24/evenement-sparnatural-demonstrateurs-archives-nationales-bnf/">Evènement : Sparnatural et les démonstrateurs Archives Nationales + BNF</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/2022/05/24/evenement-sparnatural-demonstrateurs-archives-nationales-bnf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Alimenter Talend avec SPARQL (sur Wikidata)</title>
		<link>https://blog.sparna.fr/2021/03/24/alimenter-talend-avec-sparql-sur-wikidata/</link>
		<comments>https://blog.sparna.fr/2021/03/24/alimenter-talend-avec-sparql-sur-wikidata/#comments</comments>
		<pubDate>Wed, 24 Mar 2021 09:40:55 +0000</pubDate>
		<dc:creator><![CDATA[Thomas Francart]]></dc:creator>
				<category><![CDATA[RDF]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[talend]]></category>
		<category><![CDATA[wikidata]]></category>

		<guid isPermaLink="false">http://blog.sparna.fr/?p=1409</guid>
		<description><![CDATA[<p>Dans le billet précédent nous avons vu comment Talend pouvait être utilisé pour convertir des données existantes vers du RDF/XML pour alimenter un graphe de connaissances. Ici nous allons voir… exactement l’inverse ! Comment alimenter Talend avec une requête SPARQL ? En d&#8217;autres termes comment votre graphe de connaissances RDF pourra servir d’entrée à un&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2021/03/24/alimenter-talend-avec-sparql-sur-wikidata/">Alimenter Talend avec SPARQL (sur Wikidata)</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Dans le billet précédent nous avons vu <a href="http://blog.sparna.fr/2021/03/17/rdf-talend-tutorial/">comment Talend pouvait être utilisé pour convertir des données existantes vers du RDF/XML</a> pour alimenter un graphe de connaissances. Ici nous allons voir… exactement l’inverse ! <strong>Comment alimenter Talend avec une requête SPARQL</strong> ? En d&rsquo;autres termes <em>comment votre graphe de connaissances RDF pourra servir d’entrée à un traitement de conversion de données pour exporter des données tabulaires, alimenter d’autres bases, ou se combiner avec d’autres flux.</em></p>
<p>Le principe est simple : arriver à <strong>exécuter une requête SPARQL puis traiter les résultats correspondants pour en faire un tableau de données</strong>. Ce tableau de données pourra ensuite être exporté, combiné, enregistré, comme vous le souhaitez.</p>
<p>Pour illustrer cela nous allons interroger <a href="http://wikidata.org"><strong>Wikidata</strong></a> au travers de son <a href="https://query.wikidata.org">service d’interrogation SPARQL</a> en utilisant sa première requête d’exemple qui récupère… les chats !</p>
<p>La requête est la suivante, et voici le <a href="https://query.wikidata.org/#%23Chats%0ASELECT%20%3Fitem%20%3FitemLabel%20%0AWHERE%20%0A%7B%0A%20%20%3Fitem%20wdt%3AP31%20wd%3AQ146.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%7D">lien direct pour l’exécuter dans Wikidata</a> :</p>
<pre><span style="font-size: 10pt;">SELECT ?item ?itemLabel</span>
<span style="font-size: 10pt;">WHERE {</span>
<span style="font-size: 10pt;">  ?item wdt:P31 wd:Q146.</span>
<span style="font-size: 10pt;">  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }</span>
<span style="font-size: 10pt;">}</span>
<span style="font-size: 10pt;">LIMIT 10</span></pre>
<p>Vous pouvez télécharger le job présenté ici dans <a href="https://github.com/sparna-git/talend-rdf-components/tree/main/SPARQL_CSV_test/BUILDERRDF">ce repository Github d’exemple</a>, et l’importer directement dans Talend.</p>
<p>Nous allons utiliser les composants Talend suivant :</p>
<ul>
<li><a href="https://help.talend.com/r/4~rC6oITH8avsLVct2LPSA/9XSS~cm5dHaZcH2mrWSR1w"><strong>tRESTClient</strong></a> envoie des requêtes HTTP à un service REST et retourne les réponses; en effet, un service SPARQL n’est ni plus ni moins qu’une URL où on passe un paramètre “query”, comme spécifié par le <a href="https://www.w3.org/TR/2013/REC-sparql11-protocol-20130321/">protocole SPARQL</a>.</li>
<li><a href="https://help.talend.com/r/AsV4_TX51DXfRElBkPQ4Qw/Pc9RZi6IiWw1Kb~Jf0bE0Q"><strong>tExtractXMLField</strong></a> pour traiter le format XML de réponse SPARQL; en effet, le <a href="https://www.w3.org/TR/2013/REC-rdf-sparql-XMLres-20130321/">format de réponse d’un service SPARQL</a> est lui-aussi standardisé, en XML ou en JSON;</li>
<li><a href="https://help.talend.com/r/atTvdntoupqchAynyb03~Q/cGhZ8PINK8GErF~qZbpprA"><strong>tFileOutputDelimited</strong></a> pour simplement écrire le résultat dans un fichier de sortie.</li>
</ul>
<p style="text-align: left;"><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/1_Flow.png"><img class="size-full wp-image-1410 aligncenter" src="http://blog.sparna.fr/wp-content/uploads/2021/03/1_Flow.png" alt="1_Flow" width="605" height="76" /></a></p>
<h2>Création d’un Job</h2>
<p>Pour commencer, vous devez créer un nouveau job.</p>
<ul>
<li>Faite un clic droit sur <strong>Jobs</strong> dans le panneau de gauche<strong>. </strong>choisissez l’option <strong>Créer un Job</strong>.</li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/2_CréerJob.png"><img class="aligncenter size-medium wp-image-1411" src="http://blog.sparna.fr/wp-content/uploads/2021/03/2_CréerJob-300x195.png" alt="2_CréerJob" width="300" height="195" /></a></p>
<ul>
<li> Remplissez les champs nécessaires de la fenêtre <strong>Nouveau Job</strong> et cliquez sur le bouton finish.</li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/3_ParametrerJob.png"><img class="aligncenter size-medium wp-image-1412" src="http://blog.sparna.fr/wp-content/uploads/2021/03/3_ParametrerJob-300x184.png" alt="3_ParametrerJob" width="300" height="184" /></a></p>
<h2> Appel SPARQL avec tRESTClient</h2>
<ul>
<li>Ajoutez au job le composant <strong>tRESTClient</strong>.</li>
<li>Cliquez deux fois sur le composant <strong>tRESTClient</strong>, allez à la propriété <strong>Paramètres simple</strong> et remplissez les paramètres suivants:</li>
</ul>
<ol>
<ol>
<li><strong>URL</strong>: L’URL du service SPARQL de Wikidata est <strong><a href="https://query.wikidata.org/sparql">https://query.wikidata.org/sparql</a></strong> .</li>
<li><strong>Méthode HTTP</strong>: Choisissez la méthode HTTP <strong>GET</strong></li>
<li><strong>Paramètre de la Requête</strong>: Nous devons ajouter le paramètre “query”, cliquez sur le bouton plus [+], et dans la colonne Nom entrez “query”. Dans la <strong>colonne Valeur</strong> vous allez saisir la requête SPARQL.</li>
</ol>
</ol>
<p><span style="color: #ff0000;"><strong>Attention!</strong></span>  La requête SPARQL est une chaîne de caractères Java, vous devez donc : 1/ L&rsquo;entourer avec des guillemets doubles 2/ ajouter le caractère d’échappement <strong>\</strong> avant les guillemets dans la requête et 3/ écrire la requête sur une seule ligne. Voici la chaîne de caractères correspondante :</p>
<pre><span style="font-size: 10pt;"><span style="font-weight: 400;">“SELECT ?item ?itemLabel WHERE { ?item wdt:P31 wd:Q146. SERVICE wikibase:label { bd:serviceParam wikibase:language </span><b>\</b><span style="font-weight: 400;">"[AUTO_LANGUAGE],en</span><b>\</b><span style="font-weight: 400;">". } } LIMIT 10”</span></span></pre>
<p>&nbsp;</p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/4_ParametrerComponentSource.png"><img class="aligncenter size-large wp-image-1413" src="http://blog.sparna.fr/wp-content/uploads/2021/03/4_ParametrerComponentSource-1024x430.png" alt="4_ParametrerComponentSource" width="650" height="273" /></a><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/4_ParametrerComponentSource.png"><br />
</a></p>
<h2>Transformation des résultats SPARQL avec tExtractXMLField</h2>
<ul>
<li>Ajoutez dans le projet un composant <strong>tExtractXMLField</strong>.</li>
<li>Connectez le composant tRESTClient au tExtractXMLField.</li>
</ul>
<p>Nous allons paramétrer le tExtractXMLField :</p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/5_tExtractXMLField_Colonne.png"><img class="aligncenter size-large wp-image-1414" src="http://blog.sparna.fr/wp-content/uploads/2021/03/5_tExtractXMLField_Colonne-1024x408.png" alt="5_tExtractXMLField_Colonne" width="650" height="259" /></a></p>
<ol>
<li style="font-weight: 400;"><span style="font-weight: 400;">Cliquez sur le bouton <strong>Modifier le schéma</strong> pour ouvrir la fenêtre des colonnes d&rsquo;entrée et sortie du composant <strong>tExtractXMLField</strong>. </span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Ajoutez deux nouvelles colonnes <strong>Uri </strong>et <strong>Label </strong>de <strong>type String</strong> avec le bouton <strong>plus [+] </strong>et cliquez sur le bouton Ok. <a href="http://blog.sparna.fr/wp-content/uploads/2021/03/6_tExtractXMLField_Colonne_sortie.png"><img class="aligncenter size-large wp-image-1415" src="http://blog.sparna.fr/wp-content/uploads/2021/03/6_tExtractXMLField_Colonne_sortie-1024x408.png" alt="6_tExtractXMLField_Colonne_sortie" width="650" height="259" /></a></span></li>
<li style="font-weight: 400;">Allez à <strong>Paramètres simple</strong> et modifiez les options suivantes:</li>
</ol>
<ul>
<li><strong>Champ XML</strong>: Choisissez le champs “<strong>body”</strong>, qui est le champ qui contient la réponse à l’appel SPARQL du composant précédent;</li>
<li><strong>Requête XPath boucle</strong>: Saisissez &laquo;&nbsp;/sparql/results/result&nbsp;&raquo; qui est d’après la spec du format de résultat SPARQL le chemin vers chaque <strong>ligne de résultats</strong> dans la réponse.</li>
<li>La table <strong>Mapping</strong> : <em>c’est ici que tout se joue !!! ce mapping va vous permettre d’associer les colonnes de votre résultat SPARQL au champs de sortie du composant, par le biais de chemins XPath</em>:
<ol>
<li>Pour la colonne <strong>Uri</strong> la valeur de la colonne Requête Xpath sera <strong>&laquo;&nbsp;binding[@name=&rsquo;item&rsquo;]/uri&nbsp;&raquo;</strong></li>
<li>pour la colonne <strong>Label</strong> la valeur de la colonne Requête Xpath sera <strong>&laquo;&nbsp;binding[@name=&rsquo;itemLabel&rsquo;]/literal&nbsp;&raquo;</strong>.</li>
<li>Si la requête SPARQL retournait plus de colonnes, il faudrait ajouter ici les mappings correspondants pour alimenter les autres colonnes du résultat.</li>
</ol>
</li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/7_tExtractXMLField_Component.png"><img class="aligncenter size-large wp-image-1416" src="http://blog.sparna.fr/wp-content/uploads/2021/03/7_tExtractXMLField_Component-1024x297.png" alt="7_tExtractXMLField_Component" width="650" height="189" /></a></p>
<h2> Génération du fichier de sortie</h2>
<ul>
<li>Ajoutez le composant de sortie <strong>tFileOutputDelimited</strong>.</li>
<li>Connectez le composant <strong>tExtractXMLField </strong>au composant <strong>tFileOutputDelimited</strong>.</li>
<li>Paramétrez le composant dans la section de <strong>Paramètres simple</strong> → <strong>Nom de fichier</strong>: le chemin dans lequel vous souhaitez sauvegarder le fichier de sortie.</li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/8_tFileOutputDelimited.png"><img class="aligncenter size-large wp-image-1417" src="http://blog.sparna.fr/wp-content/uploads/2021/03/8_tFileOutputDelimited-1024x175.png" alt="8_tFileOutputDelimited" width="650" height="111" /></a></p>
<h2> Lancer le Job</h2>
<ul>
<li>Allez à la section <strong>Exécuter</strong>.</li>
<li>Cliquez sur le bouton <strong>Exécuter.</strong></li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/9_LancerJob.png"><img class="aligncenter size-large wp-image-1418" src="http://blog.sparna.fr/wp-content/uploads/2021/03/9_LancerJob-1024x222.png" alt="9_LancerJob" width="650" height="141" /></a></p>
<h2> Profitez !</h2>
<p>Naviguez vers l’emplacement du fichier pour le récupérer.</p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/10_RouteFile.png"><img class="aligncenter size-large wp-image-1419" src="http://blog.sparna.fr/wp-content/uploads/2021/03/10_RouteFile-1024x439.png" alt="10_RouteFile" width="650" height="279" /></a></p>
<p><strong>Et voilà le résultat :</strong></p>
<p>&nbsp;</p>
<pre><span style="font-size: 10pt;">Uri;Label</span>
<span style="font-size: 10pt;"> http://www.wikidata.org/entity/Q378619;CC</span>
<span style="font-size: 10pt;"> http://www.wikidata.org/entity/Q498787;Muezza</span>
<span style="font-size: 10pt;"> http://www.wikidata.org/entity/Q677525;Orangey</span>
<span style="font-size: 10pt;"> http://www.wikidata.org/entity/Q851190;Mrs. Chippy</span>
<span style="font-size: 10pt;"> http://www.wikidata.org/entity/Q1050083;Catmando</span>
<span style="font-size: 10pt;"> http://www.wikidata.org/entity/Q1201902;Tama</span>
<span style="font-size: 10pt;"> http://www.wikidata.org/entity/Q1207136;Dewey Readmore Books</span>
<span style="font-size: 10pt;"> http://www.wikidata.org/entity/Q1371145;Socks</span>
<span style="font-size: 10pt;"> http://www.wikidata.org/entity/Q1386318;F. D. C. Willard</span>
<span style="font-size: 10pt;"> http://www.wikidata.org/entity/Q1413628;Nora</span></pre>
<p>Vous savez donc maintenant <strong>comment alimenter Talend à partir d’une base accessible en SPARQL, en quelques clics et sans code</strong> ! Cela permet de valoriser votre graphe de connaissances pour l’intégrer dans le reste du système d’information.</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2021/03/24/alimenter-talend-avec-sparql-sur-wikidata/">Alimenter Talend avec SPARQL (sur Wikidata)</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/2021/03/24/alimenter-talend-avec-sparql-sur-wikidata/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SPARNAtural : écrire des requêtes SPARQL, tout naturellement</title>
		<link>https://blog.sparna.fr/2019/06/13/sparnatural-ecrire-des-requetes-sparql-tout-naturellement/</link>
		<comments>https://blog.sparna.fr/2019/06/13/sparnatural-ecrire-des-requetes-sparql-tout-naturellement/#comments</comments>
		<pubDate>Thu, 13 Jun 2019 15:19:57 +0000</pubDate>
		<dc:creator><![CDATA[Thomas Francart]]></dc:creator>
				<category><![CDATA[Recherche d'informations]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[graphe de connaissances]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[knowledge graph]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[Sparnatural]]></category>

		<guid isPermaLink="false">http://blog.sparna.fr/?p=1258</guid>
		<description><![CDATA[<p>Sparnatural est un composant Javascript permettant  de naviguer dans un graphe de connaissances RDF en construisant visuellement des requêtes SPARQL. UPDATE avril 2021 : Sparnatural a un nouveau site web a http://sparnatural.eu ! Dans la copie d&#8217;écran ci-dessus, on demande &#171;&#160;Toutes les oeuvres exposées dans un musée Français qui expose une oeuvre du Caravage, et&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2019/06/13/sparnatural-ecrire-des-requetes-sparql-tout-naturellement/">SPARNAtural : écrire des requêtes SPARQL, tout naturellement</a> est apparu en premier sur <a rel="nofollow" href="https://blog.sparna.fr">Sparna Blog</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><a href="https://github.com/sparna-git/Sparnatural" target="_blank"><strong>Sparnatural</strong></a> est un composant Javascript permettant  de naviguer dans un graphe de connaissances RDF en construisant visuellement des requêtes SPARQL.</p>
<p><span style="text-decoration: underline;"><strong>UPDATE avril 2021</strong> : Sparnatural a un nouveau site web a <strong><a href="http://sparnatural.eu">http://sparnatural.eu</a></strong> !</span></p>
<p>Dans la copie d&rsquo;écran ci-dessus, on demande <em>&laquo;&nbsp;Toutes les oeuvres exposées dans un musée Français qui expose une oeuvre du Caravage, et dont l&rsquo;auteur est Italien&nbsp;&raquo;</em>.</p>
<div style="width: 1569px" class="wp-caption aligncenter"><a href="https://github.com/sparna-git/Sparnatural/raw/master/documentation/screencast-sparnatural-dbpedia.gif" target="_blank"><img src="https://github.com/sparna-git/Sparnatural/raw/master/documentation/screencast-sparnatural-dbpedia.gif" alt="" width="1559" height="867" /></a><p class="wp-caption-text">Démo de Sparnatural sur DBPedia</p></div>
<p>Le screencast ci-dessus est extrait de <a href="http://labs.sparna.fr/sparnatural-demo-dbpedia/">la démo de Sparnatural paramétrée sur DBPedia</a> avec laquelle vous pouvez jouer en ligne.</p>
<p>Le développement de ce composant a été réalisé dans le cadre du projet <a href="http://openarchaeo.huma-num.fr/explorateur/" target="_blank">OpenArchaeo</a> où il est utilisé pour naviguer dans des données archéologiques. Il est autonome du projet et peut être réutilisé dans le cadre de sa license LGPL. Le code source est ouvert et il est interdit de &laquo;&nbsp;refermer&nbsp;&raquo; le code source, toute modification doit être publiée sous la même licence, et idéalement reversée dans <a href="https://github.com/sparna-git/Sparnatural" target="_blank">le dépôt Github du projet</a>.</p>
<p>Sparnatural s&rsquo;inspire en grande partie de la navigation proposée par l&rsquo;interface <a href="https://public.researchspace.org" target="_blank">ResearchSpace</a> du British Museum.</p>
<h2>Et pourquoi c&rsquo;est cool ?</h2>
<ul>
<li>Parce que ça n&rsquo;existait pas !  (en dehors de ResearchSpace, mais dont le source est en React), en tout cas pas comme un composant autonome et paramétrable</li>
<li>Parce que le composant est <strong>paramétrable</strong> à souhait pour construire des requêtes sur différentes structures de graphe, en changeant le paramétrage des classes et des propriétés; vous pouvez jeter un oeil au <a href="https://github.com/sparna-git/Sparnatural/blob/master/sparnatural-demo-dbpedia/config/spec-search-dbpedia.json" target="_blank">fichier de paramétrage de la démo</a>.</li>
<li>Parce qu&rsquo;il est orienté end-user et que, en particulier, <strong>la structure du graphe que l&rsquo;on présente à l&rsquo;utilisateur n&rsquo;est pas obligatoirement &#8211; en fait n&rsquo;est jamais &#8211; celle du graphe de données sous-jacent:</strong>
<ul>
<li>Chaque classe dans le composant peut être mappé sur un critère plus complexe (On présente à l&rsquo;utilisateur &laquo;&nbsp;Type d&rsquo;activité&nbsp;&raquo;, qui est mappé sur &laquo;&nbsp;tous les skos:Concept ayant un skos:inScheme ex:ActivityType&nbsp;&raquo;)</li>
<li>Chaque lien dans le composant peut être mappé sur une séquence de liens RDF dans le graphe (un <em>property path</em>) (Le lien &laquo;&nbsp;Musée expose oeuvre&nbsp;&raquo; dans le composant de construction de query est l&rsquo;inverse du lien RDF &laquo;&nbsp;Oeuvre dbpedia:museum Musée&nbsp;&raquo;). Typiquement le paramétrage de tous les liens inverses permet à un utilisateur d&rsquo;explorer le graphe en le prenant par n&rsquo;importe quel bout;</li>
<li>On peut limiter les types d&rsquo;objets et les types de liens que l&rsquo;on présente dans le composant pour ne permettre d&rsquo;interroger qu&rsquo;une sous-partie des données;</li>
</ul>
</li>
<li>Parce qu&rsquo;il offre <strong>plusieurs mode de sélection des valeurs</strong> :
<ul>
<li>un champ d&rsquo;autocompletion, à associer à une requête SPARQL (ou pas SPARQL) qui ira proposer des valeurs sur la base des caractères tapés dans le champs;</li>
<li>un champ de dropdown, pour les petites listes;</li>
<li>un champ de recherche texte;</li>
<li>un champ d&rsquo;input de date (début / fin);</li>
</ul>
</li>
<li>Parce que <strong>la requête peut s&rsquo;exécuter au fur et à mesure de la construction de l&rsquo;équation de recherche</strong>; pas besoin d&rsquo;appuyer sur un bouton; cela fait beaucoup pour obtenir une expérience utilisateur de découverte des données;</li>
<li>Parce que c&rsquo;est <strong>multilingue</strong> : on peut associer des libellés en plusieurs langue à chaque classe et chaque propriétés;</li>
<li>Parce que c&rsquo;est facile d&rsquo;injecter des <strong>icônes</strong> <a href="https://fontawesome.com/" target="_blank">fontawesome</a> pour illustrer chaque classe dans les menus;</li>
<li>Parce qu&rsquo;on peut post-traiter la requête après que le composant l&rsquo;a construite : ajouter la sélection de plusieurs colonnes, ajouter des préfixes, etc.</li>
<li>Parce que ça peut joliment égayer la platitude morne des formulaires de requêtes SPARQL que l&rsquo;on expose à des utilisateurs, en s&rsquo;intégrant avec <a href="http://about.yasgui.org/" target="_blank">YASGUI</a>, pour permettre une découverte intuitive des données;</li>
</ul>
<p>Le résultat, au-delà d&rsquo;un simple éditeur SPARQL, offre une vraie <strong>expérience d&rsquo;exploration des données</strong>, avec des mécanismes d&rsquo;essai-erreur, retour arrière, prise du graphe par un autre bout, etc.</p>
<h2>Limites de l&rsquo;exercice</h2>
<p>L&rsquo;objectif est d&rsquo;offrir un moyen simple et compréhensible de naviguer dans des données. En conséquence, Sparnatural n&rsquo;est capable que de construire des motifs de graphe SPARQL simple, et ne sais pas gérer les UNION, OPTIONAL, sous-select, BIND, etc.</p>
<p>Par ailleurs le composant s&rsquo;arrête à sélectionner les URIs des objets cherchés, il n&rsquo;est pas possible pour un utilisateur de choisir les colonnes présentées dans le tableau de résultats. Il faut post-traiter la requête pour injecter la sélection des valeurs de colonnes.</p>
<p>Si, comme pour la démo DBPedia, vous intégrez Sparnatural avec YASGui et YASR et que la page HTML envoie la requête SPARQL, faites attention que le service SPARQL doit supporter les requêtes CORS (Cross-Origin Resource Sharing), ce qui n&rsquo;est pas le cas de tous les services SPARQL&#8230; mais ça devrait !</p>
<h2>Envie d&rsquo;essayer ?</h2>
<p>Rendez-vous sur le <a href="https://github.com/sparna-git/Sparnatural" target="_blank">dépôt Github de Sparnatural</a> si vous voulez un peu plus de doc ou que vous voulez remonter un ticket, un bug, ou contribuer au code. D&rsquo;autres démos devraient suivre, <em>stay tuned</em> !</p>
<p>&nbsp;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2019/06/13/sparnatural-ecrire-des-requetes-sparql-tout-naturellement/">SPARNAtural : écrire des requêtes SPARQL, tout naturellement</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/2019/06/13/sparnatural-ecrire-des-requetes-sparql-tout-naturellement/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
