CINXE.COM

Sparnatural : say it with SHACL ! - Sparna Blog

<!DOCTYPE html> <html lang="fr-FR" prefix="og: http://ogp.me/ns#"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Sparnatural : say it with SHACL ! - Sparna Blog</title> <link rel="pingback" href="https://blog.sparna.fr/xmlrpc.php"> <!--[if lt IE 9]> <script src="https://blog.sparna.fr/wp-content/themes/wpex-luxmag/js/plugins/html5.js"></script> <![endif]--> <!-- This site is optimized with the Yoast WordPress SEO plugin v2.2.1 - https://yoast.com/wordpress/plugins/seo/ --> <link rel="canonical" href="https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/" /> <meta property="og:locale" content="fr_FR" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Sparnatural : say it with SHACL ! - Sparna Blog" /> <meta property="og:description" content="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&hellip;" /> <meta property="og:url" content="https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/" /> <meta property="og:site_name" content="Sparna Blog" /> <meta property="article:tag" content="DBpedia" /> <meta property="article:tag" content="endpoint" /> <meta property="article:tag" content="SHACL" /> <meta property="article:tag" content="Sparnatural" /> <meta property="article:tag" content="SPARQL" /> <meta property="article:section" content="SHACL" /> <meta property="article:published_time" content="2024-10-15T17:02:59+00:00" /> <meta property="article:modified_time" content="2024-10-15T17:22:00+00:00" /> <meta property="og:updated_time" content="2024-10-15T17:22:00+00:00" /> <meta property="og:image" content="https://blog.sparna.fr/wp-content/uploads/2024/10/navigate.png" /> <meta name="twitter:card" content="summary"/> <meta name="twitter:description" content="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&hellip;"/> <meta name="twitter:title" content="Sparnatural : say it with SHACL ! - Sparna Blog"/> <meta name="twitter:domain" content="Sparna Blog"/> <meta name="twitter:image:src" content="https://blog.sparna.fr/wp-content/uploads/2024/10/navigate.png"/> <!-- / Yoast WordPress SEO plugin. --> <link rel="alternate" type="application/rss+xml" title="Sparna Blog &raquo; Flux" href="https://blog.sparna.fr/feed/" /> <link rel="alternate" type="application/rss+xml" title="Sparna Blog &raquo; Flux des commentaires" href="https://blog.sparna.fr/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="Sparna Blog &raquo; Sparnatural : say it with SHACL ! Flux des commentaires" href="https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/feed/" /> <script type="text/javascript"> window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"https:\/\/blog.sparna.fr\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.2.38"}}; !function(e,n,t){var a;function o(e){var t=n.createElement("canvas"),a=t.getContext&&t.getContext("2d");return!(!a||!a.fillText)&&(a.textBaseline="top",a.font="600 32px Arial","flag"===e?(a.fillText(String.fromCharCode(55356,56812,55356,56807),0,0),3e3<t.toDataURL().length):(a.fillText(String.fromCharCode(55357,56835),0,0),0!==a.getImageData(16,16,1,1).data[0]))}function i(e){var t=n.createElement("script");t.src=e,t.type="text/javascript",n.getElementsByTagName("head")[0].appendChild(t)}t.supports={simple:o("simple"),flag:o("flag")},t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.simple&&t.supports.flag||(a=function(){t.readyCallback()},n.addEventListener?(n.addEventListener("DOMContentLoaded",a,!1),e.addEventListener("load",a,!1)):(e.attachEvent("onload",a),n.attachEvent("onreadystatechange",function(){"complete"===n.readyState&&t.readyCallback()})),(a=t.source||{}).concatemoji?i(a.concatemoji):a.wpemoji&&a.twemoji&&(i(a.twemoji),i(a.wpemoji)))}(window,document,window._wpemojiSettings); </script> <style type="text/css"> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 .07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='symple_shortcode_styles-css' href='https://blog.sparna.fr/wp-content/plugins/symple-shortcodes/shortcodes/css/symple_shortcodes_styles.css?ver=4.2.38' type='text/css' media='all' /> <link rel='stylesheet' id='wpex-style-css' href='https://blog.sparna.fr/wp-content/themes/wpex-luxmag/style.css?ver=4.2.38' type='text/css' media='all' /> <link rel='stylesheet' id='wpex-google-font-source-sans-pro-css' href='http://fonts.googleapis.com/css?family=Source+Sans+Pro%3A300%2C400%2C600%2C700&#038;subset=latin%2Cvietnamese%2Clatin-ext&#038;ver=4.2.38' type='text/css' media='all' /> <link rel='stylesheet' id='jetpack_social_media_icons_widget-css' href='https://blog.sparna.fr/wp-content/plugins/jetpack/modules/widgets/social-media-icons/style.css?ver=20150602' type='text/css' media='all' /> <link rel='stylesheet' id='genericons-css' href='https://blog.sparna.fr/wp-content/plugins/jetpack/_inc/genericons/genericons/genericons.css?ver=3.1' type='text/css' media='all' /> <link rel='stylesheet' id='jetpack_css-css' href='https://blog.sparna.fr/wp-content/plugins/jetpack/css/jetpack.css?ver=3.6.4' type='text/css' media='all' /> <script type='text/javascript' src='https://blog.sparna.fr/wp-includes/js/jquery/jquery.js?ver=1.11.2'></script> <script type='text/javascript' src='https://blog.sparna.fr/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.2.1'></script> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://blog.sparna.fr/xmlrpc.php?rsd" /> <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://blog.sparna.fr/wp-includes/wlwmanifest.xml" /> <link rel='shortlink' href='https://wp.me/p55RD1-t2' /> <style type='text/css'>img#wpstats{display:none}</style><!-- Theme Customizer Styling Options --> <style type="text/css"> #header-wrap{ padding-top:0 !important; }#header-wrap{ padding-bottom:0 !important; }.author-badge{ color:#ffffff !important; } </style><style type="text/css" id="custom-background-css"> body.custom-background { background-color: #f9f9f9; } </style> <style id="custom-css-css">body{font-size:16px}</style> </head> <body class="single single-post postid-1800 single-format-standard custom-background symple-shortcodes symple-shortcodes-responsive wpex-theme responsive default-skin right-sidebar entry-columns-3 with-sidebar"> <div id="wrap" class="clr"> <div id="header-wrap" class="clr"> <header id="header" class="site-header clr container" role="banner"> <div class="site-branding clr"> <div id="logo" class="clr"> <a href="https://blog.sparna.fr" title="Sparna Blog" rel="home"><img src="http://blog.sparna.fr/wp-content/uploads/2015/04/header2.jpg" alt="Sparna Blog" /></a> </div><!-- #logo --> <div id="blog-description" class="clr"> Web de données | Architecture de l&#039;information | Accès aux connaissances </div><!-- #blog-description --> </div><!-- .site-branding --> <div class="site-social clr"><a href="https://fr.linkedin.com/in/thomasfrancart" title="LinkedIn" target="_blank"><i class="fa fa-linkedin"></i></a><a href="http://blog.sparna.fr/feed" title="RSS" target="_blank"><i class="fa fa-rss"></i></a></div> </header><!-- #header --> </div><!-- #header-wrap --> <div id="site-navigation-wrap" class="clr "> <div id="site-navigation-inner" class="clr"> <nav id="site-navigation" class="navigation main-navigation clr container" role="navigation"> <a href="#mobile-nav" class="navigation-toggle"><span class="fa fa-bars navigation-toggle-icon"></span><span class="navigation-toggle-text">Click here to navigate</span></a> <div class="menu-menu-container"><ul id="menu-menu" class="main-nav dropdown-menu sf-menu"><li id="menu-item-1009" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1009"><a href="http://blog.sparna.fr">Accueil</a></li> <li id="menu-item-1008" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children dropdown menu-item-1008"><a href="#">Thèmes</a> <ul class="sub-menu"> <li id="menu-item-1002" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1002"><a href="https://blog.sparna.fr/category/theme/linked-data/">Linked Data</a></li> <li id="menu-item-1004" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1004"><a href="https://blog.sparna.fr/category/theme/opendata/">Open Data</a></li> <li id="menu-item-1003" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1003"><a href="https://blog.sparna.fr/category/theme/ontologies-theme/">Ontologies</a></li> <li id="menu-item-1005" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1005"><a href="https://blog.sparna.fr/category/theme/recherche-informations/">Recherche d&rsquo;informations</a></li> <li id="menu-item-1006" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1006"><a href="https://blog.sparna.fr/category/theme/thesaurus-theme/">Thesaurus</a></li> <li id="menu-item-1007" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1007"><a href="https://blog.sparna.fr/category/theme/visualisation-de-donnees/">Visualisation de données</a></li> </ul> </li> <li id="menu-item-1019" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children dropdown menu-item-1019"><a href="#">Outils</a> <ul class="sub-menu"> <li id="menu-item-1013" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1013"><a href="https://blog.sparna.fr/category/outils/triplestores/">Triplestores</a></li> <li id="menu-item-1010" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1010"><a href="https://blog.sparna.fr/category/outils/editeurs/">Editeurs</a></li> <li id="menu-item-1011" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1011"><a href="https://blog.sparna.fr/category/outils/moteurs-de-recherche/">Moteurs de recherche</a></li> <li id="menu-item-1012" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1012"><a href="https://blog.sparna.fr/category/outils/skos-play-outils/">SKOS Play</a></li> </ul> </li> <li id="menu-item-1020" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children dropdown menu-item-1020"><a href="#">Technologies</a> <ul class="sub-menu"> <li id="menu-item-1015" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1015"><a href="https://blog.sparna.fr/category/technologie/rdf/">RDF</a></li> <li id="menu-item-1018" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1018"><a href="https://blog.sparna.fr/category/technologie/sparql-technologies/">SPARQL</a></li> <li id="menu-item-1014" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1014"><a href="https://blog.sparna.fr/category/technologie/owl/">OWL</a></li> <li id="menu-item-1017" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1017"><a href="https://blog.sparna.fr/category/technologie/skos-technologies/">SKOS</a></li> <li id="menu-item-1016" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1016"><a href="https://blog.sparna.fr/category/technologie/schema-org-technologies/">Schema.org</a></li> </ul> </li> <li id="menu-item-1024" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children dropdown menu-item-1024"><a href="#">Autres</a> <ul class="sub-menu"> <li id="menu-item-1023" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1023"><a href="https://blog.sparna.fr/category/projets/">Projets</a></li> <li id="menu-item-1022" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1022"><a href="https://blog.sparna.fr/category/evenements/">Evénements</a></li> <li id="menu-item-1021" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1021"><a href="https://blog.sparna.fr/category/et/">Et&#8230;</a></li> </ul> </li> <li id="menu-item-1025" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1025"><a href="http://sparna.fr">sparna.fr</a></li> </ul></div> <a href="#" class="header-search-icon" title="Search"> <span class="fa fa-search"></span> </a><!-- .header-search-icon --> </nav><!-- #site-navigation --> </div><!-- #site-navigation-inner --> </div><!-- #site-navigation-wrap --> <div class="site-main-wrap clr"> <div id="main" class="site-main clr container"> <div class="search-overlay clr"> <form method="get" id="searchform" class="overlay-searchform" action="https://blog.sparna.fr/" role="search"> <input type="search" class="field" name="s" id="s" value="To search type and hit enter" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" autocomplete="off" /> </form> </div><!-- .search-overlay --> <div id="primary" class="content-area clr"> <div id="content" class="site-content left-content boxed-content clr" role="main"> <article class="single-post-article clr"> <div class="single-post-media clr"> <div class="post-thumbnail"> <img src="https://blog.sparna.fr/wp-content/uploads/2024/10/navigate-650x450.png" alt="Sparnatural : say it with SHACL !" width="650" height="450" /> </div><!-- .post-thumbnail --> </div><!-- .single-post-media --> <header class="post-header clr"> <div class="post-meta clr"> <div class="post-meta-date"> <span class="fa fa-clock-o"></span>15 octobre 2024 </div> <div class="post-meta-author"> <span class="fa fa-user"></span><a href="https://blog.sparna.fr/author/marie/" title="Articles par Marie Muller" rel="author">Marie Muller</a> </div> <div class="post-meta-category"> <span class="fa fa-folder"></span><a href="https://blog.sparna.fr/category/technologie/shacl/">SHACL</a>, <a href="https://blog.sparna.fr/category/outils/sparnatural/">Sparnatural</a> </div> <div class="post-meta-comments"> <span class="fa fa-comments"></span><a href="https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/#respond">Aucun commentaire<span class="screen-reader-text"> sur Sparnatural : say it with SHACL !</span></a> </div> </div><!-- .post-meta --> <h1 class="post-header-title">Sparnatural : say it with SHACL !</h1> </header><!-- .page-header --> <div class="entry clr"> <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 ? 😉</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> <div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"><h3 class="sd-title">Partager :</h3><div class="sd-content"><ul><li class="share-linkedin"><a rel="nofollow" data-shared="sharing-linkedin-1800" class="share-linkedin sd-button share-icon no-text" href="https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/?share=linkedin" target="_blank" title="Cliquez pour partager sur LinkedIn"><span></span><span class="sharing-screen-reader-text">Cliquez pour partager sur LinkedIn(ouvre dans une nouvelle fenêtre)</span></a></li><li class="share-twitter"><a rel="nofollow" data-shared="sharing-twitter-1800" class="share-twitter sd-button share-icon no-text" href="https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/?share=twitter" target="_blank" title="Partager sur Twitter"><span></span><span class="sharing-screen-reader-text">Partager sur Twitter(ouvre dans une nouvelle fenêtre)</span></a></li><li class="share-facebook"><a rel="nofollow" data-shared="sharing-facebook-1800" class="share-facebook sd-button share-icon no-text" href="https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/?share=facebook" target="_blank" title="Partager sur Facebook"><span></span><span class="sharing-screen-reader-text">Partager sur Facebook(ouvre dans une nouvelle fenêtre)</span></a></li><li class="share-google-plus-1"><a rel="nofollow" data-shared="sharing-google-1800" class="share-google-plus-1 sd-button share-icon no-text" href="https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/?share=google-plus-1" target="_blank" title="Cliquez pour partager sur Google+"><span></span><span class="sharing-screen-reader-text">Cliquez pour partager sur Google+(ouvre dans une nouvelle fenêtre)</span></a></li><li class="share-end"></li></ul></div></div></div> <div class="post-tags"><span class="strong">Post Tagged:</span> <a href="https://blog.sparna.fr/tag/dbpedia/" rel="tag">DBpedia</a>, <a href="https://blog.sparna.fr/tag/endpoint/" rel="tag">endpoint</a>, <a href="https://blog.sparna.fr/tag/shacl/" rel="tag">SHACL</a>, <a href="https://blog.sparna.fr/tag/sparnatural/" rel="tag">Sparnatural</a>, <a href="https://blog.sparna.fr/tag/sparql/" rel="tag">SPARQL</a></div> <div class="single-post-pagination clr"> <div class="post-next"><strong>Next Post:</strong> <a href="https://blog.sparna.fr/2024/01/15/cordis-a-sparql-endpoint-is-born/" rel="prev">CORDIS : a SPARQL endpoint is born !</a></div> </div><!-- .post-post-pagination --> </div><!-- .entry --> </article> <section class="related-posts clr"> <div class="related-posts-title"><span class="fa fa-pencil"></span>Related Posts</div> <article class="related-entry"> <div class="related-entry-media clr"> <div class="related-entry-thumbnail"> <a href="https://blog.sparna.fr/2020/03/11/shacl-play-online-shacl-rdf-validator/" title="SHACL Play! free online SHACL validator for RDF data"> <img src="https://blog.sparna.fr/wp-content/uploads/2020/03/Bulletin-des-sciences-mathématiques-–-Calculateur-650x450.jpg" alt="SHACL Play! free online SHACL validator for RDF data" width="650" height="450" /> <span class="overlay"></span> </a> </div><!-- .related-entry-thumbnail --> </div><!-- .related-entry-media --> <div class="related-entry-content clr"> <div class="related-entry-title"><a href="https://blog.sparna.fr/2020/03/11/shacl-play-online-shacl-rdf-validator/" title="SHACL Play! free online SHACL validator for RDF data">SHACL Play! free online SHACL validator for RDF data</a></div> <div class="related-entry-excerpt entry clr"> SHACL Play! at http://shacl-play.sparna.fr/ is a free online RDF validator based&hellip; </div><!-- .related-entry-excerpt --> </div><!-- .related-entry-content --> </article><!-- .related-entry --> <article class="related-entry"> <div class="related-entry-media clr"> <div class="related-entry-thumbnail"> <a href="https://blog.sparna.fr/2017/01/02/shacl-rdf-shapes-constraint-language-enfin-la-possibilite-de-valider-des-donnees-rdf/" title="SHACL (RDF Shapes Constraint Language) : enfin la possibilité de valider des données RDF"> <img src="https://blog.sparna.fr/wp-content/uploads/2017/01/Fotothek_df_tg_0003352_Geometrie_^_Dreieck_^_Viereck_^_Vieleck_^_Winkel-564x450.jpg" alt="SHACL (RDF Shapes Constraint Language) : enfin la possibilité de valider des données RDF" width="564" height="450" /> <span class="overlay"></span> </a> </div><!-- .related-entry-thumbnail --> </div><!-- .related-entry-media --> <div class="related-entry-content clr"> <div class="related-entry-title"><a href="https://blog.sparna.fr/2017/01/02/shacl-rdf-shapes-constraint-language-enfin-la-possibilite-de-valider-des-donnees-rdf/" title="SHACL (RDF Shapes Constraint Language) : enfin la possibilité de valider des données RDF">SHACL (RDF Shapes Constraint Language) : enfin la possibilité de valider des données RDF</a></div> <div class="related-entry-excerpt entry clr"> Edit (16/04/2020) : intéressé pour essayer SHACL ? testez SHACL&hellip; </div><!-- .related-entry-excerpt --> </div><!-- .related-entry-content --> </article><!-- .related-entry --> <article class="related-entry"> <div class="related-entry-media clr"> <div class="related-entry-thumbnail"> <a href="https://blog.sparna.fr/2023/03/13/2013-2023-tis-skosplays-birthday/" title="2013-2023 : ‘Tis SKOSPlay!’s Birthday !"> <img src="https://blog.sparna.fr/wp-content/uploads/2023/03/SKOSPlayBDay-650x450.jpg" alt="2013-2023 : ‘Tis SKOSPlay!’s Birthday !" width="650" height="450" /> <span class="overlay"></span> </a> </div><!-- .related-entry-thumbnail --> </div><!-- .related-entry-media --> <div class="related-entry-content clr"> <div class="related-entry-title"><a href="https://blog.sparna.fr/2023/03/13/2013-2023-tis-skosplays-birthday/" title="2013-2023 : ‘Tis SKOSPlay!’s Birthday !">2013-2023 : ‘Tis SKOSPlay!’s Birthday !</a></div> <div class="related-entry-excerpt entry clr"> Hi, it’s Marie (aka chutjetweet here). To be short I’m a&hellip; </div><!-- .related-entry-excerpt --> </div><!-- .related-entry-content --> </article><!-- .related-entry --> </section> <div id="comments" class="comments-area clr"> <div class="comments-inner clr"> <div id="respond" class="comment-respond"> <h3 id="reply-title" class="comment-reply-title">Laisser un commentaire <small><a rel="nofollow" id="cancel-comment-reply-link" href="/2024/10/15/sparnatural-say-it-with-shacl/#respond" style="display:none;"><i class="fa fa-times"></i>Cancel comment reply</a></small></h3> <form action="https://blog.sparna.fr/wp-comments-post.php" method="post" id="commentform" class="comment-form"> <p class="comment-notes"><span id="email-notes">Votre adresse de messagerie ne sera pas publiée.</span> Les champs obligatoires sont indiqués avec <span class="required">*</span></p> <div class="col span_1_of_3 col-1"><input id="author" name="author" type="text" placeholder="Name*" value="" size="30" aria-required='true' /></div> <div class="col span_1_of_3"><input id="email" name="email" type="text" placeholder="Email*" value="" size="30" aria-required='true' /></div> <div class="col span_1_of_3"><input id="url" name="url" type="text" placeholder="Website" value="" size="30" /></div> <p class="comment-form-comment"><label for="comment">Commentaire</label> <textarea id="comment" name="comment" cols="45" rows="8" aria-describedby="form-allowed-tags" aria-required="true" required="required"></textarea></p> <p class="form-allowed-tags" id="form-allowed-tags">Vous pouvez utiliser ces balises et attributs <abbr title="HyperText Markup Language">HTML</abbr>&nbsp;: <code>&lt;a href=&quot;&quot; title=&quot;&quot;&gt; &lt;abbr title=&quot;&quot;&gt; &lt;acronym title=&quot;&quot;&gt; &lt;b&gt; &lt;blockquote cite=&quot;&quot;&gt; &lt;cite&gt; &lt;code&gt; &lt;del datetime=&quot;&quot;&gt; &lt;em&gt; &lt;i&gt; &lt;q cite=&quot;&quot;&gt; &lt;s&gt; &lt;strike&gt; &lt;strong&gt; </code></p> <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Laisser un commentaire" /> <input type='hidden' name='comment_post_ID' value='1800' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </p><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="f48032f52f" /></p><p class="comment-subscription-form"><input type="checkbox" name="subscribe_comments" id="subscribe_comments" value="subscribe" style="width: auto; -moz-appearance: checkbox; -webkit-appearance: checkbox;" /> <label class="subscribe-label" id="subscribe-label" for="subscribe_comments">Prévenez-moi de tous les nouveaux commentaires par e-mail.</label></p><p class="comment-subscription-form"><input type="checkbox" name="subscribe_blog" id="subscribe_blog" value="subscribe" style="width: auto; -moz-appearance: checkbox; -webkit-appearance: checkbox;" /> <label class="subscribe-label" id="subscribe-blog-label" for="subscribe_blog">Prévenez-moi de tous les nouveaux articles par email.</label></p><p style="display: none;"><input type="hidden" id="ak_js" name="ak_js" value="29"/></p> </form> </div><!-- #respond --> </div><!-- .comments-inner --> </div><!-- #comments --> </div><!-- #content --> <aside id="secondary" class="sidebar-container" role="complementary"> <div class="sidebar-inner"> <div class="widget-area"> <div class="sidebar-widget widget_wpex_recent_posts_thumb clr"><span class="widget-title">Derniers articles</span> <ul class="wpex-widget-recent-posts clr"> <li class="clr wpex-widget-recent-posts-li left-thumbnail format- count-3" > <a href="https://blog.sparna.fr/2024/01/15/cordis-a-sparql-endpoint-is-born/" title="CORDIS : a SPARQL endpoint is born !" class="wpex-widget-recent-posts-thumbnail clr"> <img src="https://blog.sparna.fr/wp-content/uploads/2024/01/person-holding-bengal-light-hand_23-2147955677-55x55.jpg" alt="CORDIS : a SPARQL endpoint is born !" width="55" height="55" /> </a> <div class="clr"></div> <a href="https://blog.sparna.fr/2024/01/15/cordis-a-sparql-endpoint-is-born/" title="CORDIS : a SPARQL endpoint is born !" class="wpex-widget-recent-posts-title">CORDIS : a SPARQL endpoint is born !</a> </li> <li class="clr wpex-widget-recent-posts-li left-thumbnail format- count-3" > <a href="https://blog.sparna.fr/2023/03/13/2013-2023-tis-skosplays-birthday/" title="2013-2023 : ‘Tis SKOSPlay!’s Birthday !" class="wpex-widget-recent-posts-thumbnail clr"> <img src="https://blog.sparna.fr/wp-content/uploads/2023/03/SKOSPlayBDay-55x55.jpg" alt="2013-2023 : ‘Tis SKOSPlay!’s Birthday !" width="55" height="55" /> </a> <div class="clr"></div> <a href="https://blog.sparna.fr/2023/03/13/2013-2023-tis-skosplays-birthday/" title="2013-2023 : ‘Tis SKOSPlay!’s Birthday !" class="wpex-widget-recent-posts-title">2013-2023 : ‘Tis SKOSPlay!’s Birthday !</a> </li> <li class="clr wpex-widget-recent-posts-li left-thumbnail format- count-3" > <a href="https://blog.sparna.fr/2022/10/31/sparnatural-a-semweb-pro-2022-le-8-novembre/" title="Sparnatural à SemWeb.pro 2022 le 8 novembre" class="wpex-widget-recent-posts-thumbnail clr"> <img src="https://blog.sparna.fr/wp-content/uploads/2022/10/anf-demo-B-55x55.png" alt="Sparnatural à SemWeb.pro 2022 le 8 novembre" width="55" height="55" /> </a> <div class="clr"></div> <a href="https://blog.sparna.fr/2022/10/31/sparnatural-a-semweb-pro-2022-le-8-novembre/" title="Sparnatural à SemWeb.pro 2022 le 8 novembre" class="wpex-widget-recent-posts-title">Sparnatural à SemWeb.pro 2022 le 8 novembre</a> </li> </ul> </div><div class="sidebar-widget widget_wpex_recent_comments_avatars_widget clr"><span class="widget-title">Derniers commentaires</span> <ul class="wpex-recent-comments-widget clr"> <li class="clr"> <a href="https://blog.sparna.fr/2013/12/07/ontologie-thesaurus-taxonomie-web-de-donnees/#comment-44170" title="Sparnatural : say it with SHACL !" class="clr"> <img alt='' src='https://1.gravatar.com/avatar/d34d02d390b703a3345c70b3d4d97910?s=55&#038;d=identicon&#038;r=g' srcset='https://1.gravatar.com/avatar/d34d02d390b703a3345c70b3d4d97910?s=110&amp;d=identicon&amp;r=g 2x' class='avatar avatar-55 photo' height='55' width='55' /> <span class="title strong">Nicolas:</span> bonjour Rachid, je vous invite à lire "La survie des&hellip;... </a> </li> <li class="clr"> <a href="https://blog.sparna.fr/2013/12/07/ontologie-thesaurus-taxonomie-web-de-donnees/#comment-44169" title="Sparnatural : say it with SHACL !" class="clr"> <img alt='' src='https://1.gravatar.com/avatar/d34d02d390b703a3345c70b3d4d97910?s=55&#038;d=identicon&#038;r=g' srcset='https://1.gravatar.com/avatar/d34d02d390b703a3345c70b3d4d97910?s=110&amp;d=identicon&amp;r=g 2x' class='avatar avatar-55 photo' height='55' width='55' /> <span class="title strong">Nicolas:</span> Votre article est éclairant. merci!! Mais encore... "La Taxonomie n'est&hellip;... </a> </li> <li class="clr"> <a href="https://blog.sparna.fr/2024/01/15/cordis-a-sparql-endpoint-is-born/#comment-38753" title="Sparnatural : say it with SHACL !" class="clr"> <img alt='' src='https://2.gravatar.com/avatar/8adc53424babfab9191c11759c20c30e?s=55&#038;d=identicon&#038;r=g' srcset='https://2.gravatar.com/avatar/8adc53424babfab9191c11759c20c30e?s=110&amp;d=identicon&amp;r=g 2x' class='avatar avatar-55 photo' height='55' width='55' /> <span class="title strong">Marie Muller:</span> Thank you Vladimir for your comment ! I've seen there&hellip;... </a> </li> </ul> </div><div class="sidebar-widget jetpack_subscription_widget clr"><span class="widget-title">Abonnez-vous à ce blog par e-mail.</span> <form action="#" method="post" accept-charset="utf-8" id="subscribe-blog-blog_subscription-2"> <div id="subscribe-text"><p>Saisissez votre adresse e-mail pour vous abonner à ce blog et recevoir une notification de chaque nouvel article par email.</p> </div> <p id="subscribe-email"> <label id="jetpack-subscribe-label" for="subscribe-field"> Adresse e-mail </label> <input type="email" name="email" required="required" class="required" value="" id="subscribe-field-blog_subscription-2" placeholder="Adresse e-mail" /> </p> <p id="subscribe-submit"> <input type="hidden" name="action" value="subscribe" /> <input type="hidden" name="source" value="https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/" /> <input type="hidden" name="sub-type" value="widget" /> <input type="hidden" name="redirect_fragment" value="blog_subscription-2" /> <input type="submit" value="S&#039;abonner" name="jetpack_subscriptions_widget" /> </p> </form> <script> /* Custom functionality for safari and IE */ (function( d ) { // Creates placeholders for IE if ( ( 'placeholder' in d.createElement( 'input' ) ) ) { var label = d.getElementById( 'jetpack-subscribe-label' ); label.style.clip = 'rect(1px, 1px, 1px, 1px)'; label.style.position = 'absolute'; label.style.height = '1px'; label.style.width = '1px'; label.style.overflow = 'hidden'; } // Make sure the email value is filled in before allowing submit var form = d.getElementById('subscribe-blog-blog_subscription-2'), input = d.getElementById('subscribe-field-blog_subscription-2'), handler = function( event ) { if ( '' === input.value ) { input.focus(); if ( event.preventDefault ){ event.preventDefault(); } return false; } }; if ( window.addEventListener ) { form.addEventListener( 'submit', handler, false ); } else { form.attachEvent( 'onsubmit', handler ); } })( document ); </script> </div><div class="sidebar-widget widget_wpcom_social_media_icons_widget clr"><ul><li><a title="Voir le profil de thomasfrancart sur LinkedIn" href="https://www.linkedin.com/in/thomasfrancart/" class="genericon genericon-linkedin-alt" target="_blank"><span class="screen-reader-text">Voir le profil de thomasfrancart sur LinkedIn</span></a></li><li><a title="Voir le profil de tfrancart sur GitHub" href="https://github.com/tfrancart/" class="genericon genericon-github" target="_blank"><span class="screen-reader-text">Voir le profil de tfrancart sur GitHub</span></a></li></ul></div> </div> </div> </aside><!-- #secondary --> </div><!-- #primary --> </div><!--.site-main --> </div><!-- .site-main-wrap --> </div><!-- #wrap --> <footer id="footer-wrap" class="site-footer clr"> <div id="footer-bottom" class="clr"> <div class="container clr"> <div id="copyright" class="clr" role="contentinfo"> Copyright 2014 Your Company LLC </div><!-- #copyright --> </div><!-- .container --> </div><!-- #footer-bottom --> </footer><!-- #footer-wrap --> <div style="display:none"> <div class="grofile-hash-map-d34d02d390b703a3345c70b3d4d97910"> </div> <div class="grofile-hash-map-8adc53424babfab9191c11759c20c30e"> </div> </div> <div id="mobile-search"> <form method="get" action="https://blog.sparna.fr/" role="search" id="mobile-search-form"> <input type="search" class="field" name="s" value="" placeholder="To search type and hit enter" /> </form> </div> <a href="#" class="site-scroll-top"><span class="fa fa-arrow-up"></span></a> <script type="text/javascript"> window.WPCOM_sharing_counts = {"https:\/\/blog.sparna.fr\/2024\/10\/15\/sparnatural-say-it-with-shacl\/":1800}; window.WPCOM_jetpack = true; window.WPCOM_site_ID = 75279471; </script> <script type="text/javascript"> var windowOpen; jQuery(document).on( 'ready post-load', function(){ jQuery( 'a.share-linkedin' ).on( 'click', function() { if ( 'undefined' !== typeof windowOpen ){ // If there's another sharing window open, close it. windowOpen.close(); } windowOpen = window.open( jQuery(this).attr( 'href' ), 'wpcomlinkedin', 'menubar=1,resizable=1,width=580,height=450' ); return false; }); }); </script> <script type="text/javascript"> var windowOpen; jQuery(document).on( 'ready post-load', function(){ jQuery( 'a.share-twitter' ).on( 'click', function() { if ( 'undefined' !== typeof windowOpen ){ // If there's another sharing window open, close it. windowOpen.close(); } windowOpen = window.open( jQuery(this).attr( 'href' ), 'wpcomtwitter', 'menubar=1,resizable=1,width=600,height=350' ); return false; }); }); </script> <script type="text/javascript"> var windowOpen; jQuery(document).on( 'ready post-load', function(){ jQuery( 'a.share-facebook' ).on( 'click', function() { if ( 'undefined' !== typeof windowOpen ){ // If there's another sharing window open, close it. windowOpen.close(); } windowOpen = window.open( jQuery(this).attr( 'href' ), 'wpcomfacebook', 'menubar=1,resizable=1,width=600,height=400' ); return false; }); }); </script> <script type="text/javascript"> var windowOpen; jQuery(document).on( 'ready post-load', function(){ jQuery( 'a.share-google-plus-1' ).on( 'click', function() { if ( 'undefined' !== typeof windowOpen ){ // If there's another sharing window open, close it. windowOpen.close(); } windowOpen = window.open( jQuery(this).attr( 'href' ), 'wpcomgoogle-plus-1', 'menubar=1,resizable=1,width=480,height=550' ); return false; }); }); </script> <script type='text/javascript' src='https://blog.sparna.fr/wp-content/plugins/akismet/_inc/form.js?ver=3.1.5'></script> <script type='text/javascript' src='https://blog.sparna.fr/wp-content/plugins/contact-form-7/includes/js/jquery.form.min.js?ver=3.51.0-2014.06.20'></script> <script type='text/javascript'> /* <![CDATA[ */ var _wpcf7 = {"loaderUrl":"https:\/\/blog.sparna.fr\/wp-content\/plugins\/contact-form-7\/images\/ajax-loader.gif","sending":"Envoi en cours ..."}; /* ]]> */ </script> <script type='text/javascript' src='https://blog.sparna.fr/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver=4.2.1'></script> <script type='text/javascript' src='https://s0.wp.com/wp-content/js/devicepx-jetpack.js?ver=202448'></script> <script type='text/javascript' src='https://secure.gravatar.com/js/gprofiles.js?ver=2024Novaa'></script> <script type='text/javascript'> /* <![CDATA[ */ var WPGroHo = {"my_hash":""}; /* ]]> */ </script> <script type='text/javascript' src='https://blog.sparna.fr/wp-content/plugins/jetpack/modules/wpgroho.js?ver=4.2.38'></script> <script type='text/javascript' src='https://blog.sparna.fr/wp-includes/js/comment-reply.min.js?ver=4.2.38'></script> <script type='text/javascript'> /* <![CDATA[ */ var wpexLocalize = {"mobileMenuOpen":"Click here to navigate","mobileMenuClosed":"Close navigation","flexSlideshow":"true","flexSlideshowSpeed":"7000"}; /* ]]> */ </script> <script type='text/javascript' src='https://blog.sparna.fr/wp-content/themes/wpex-luxmag/js/global-min.js?ver=1.0'></script> <script type='text/javascript'> /* <![CDATA[ */ var sharing_js_options = {"lang":"en","counts":"1"}; /* ]]> */ </script> <script type='text/javascript' src='https://blog.sparna.fr/wp-content/plugins/jetpack/modules/sharedaddy/sharing.js?ver=3.6.4'></script> <script type='text/javascript' src='https://stats.wp.com/e-202448.js' async defer></script> <script type='text/javascript'> _stq = window._stq || []; _stq.push([ 'view', {v:'ext',j:'1:3.6.4',blog:'75279471',post:'1800',tz:'1',srv:'blog.sparna.fr'} ]); _stq.push([ 'clickTrackerInit', '75279471', '1800' ]); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10