CINXE.COM
SHACL Play! online RDF validator based on SHACL
<!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>SHACL Play! online RDF validator based on SHACL</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/ --> <meta name="description" content="SHACL Play! is a free online RDF data validator, based on SHACL."/> <link rel="canonical" href="https://blog.sparna.fr/2020/03/11/shacl-play-online-shacl-rdf-validator/" /> <meta property="og:locale" content="fr_FR" /> <meta property="og:type" content="article" /> <meta property="og:title" content="SHACL Play! online RDF validator based on SHACL" /> <meta property="og:description" content="SHACL Play! is a free online RDF data validator, based on SHACL." /> <meta property="og:url" content="https://blog.sparna.fr/2020/03/11/shacl-play-online-shacl-rdf-validator/" /> <meta property="og:site_name" content="Sparna Blog" /> <meta property="article:tag" content="RDF" /> <meta property="article:tag" content="SHACL" /> <meta property="article:tag" content="validation" /> <meta property="article:section" content="SHACL" /> <meta property="article:published_time" content="2020-03-11T15:00:37+00:00" /> <meta property="og:image" content="https://blog.sparna.fr/wp-content/uploads/2020/03/Bulletin-des-sciences-mathématiques-–-Calculateur.jpg" /> <meta name="twitter:card" content="summary"/> <meta name="twitter:description" content="SHACL Play! is a free online RDF data validator, based on SHACL."/> <meta name="twitter:title" content="SHACL Play! online RDF validator based on SHACL"/> <meta name="twitter:domain" content="Sparna Blog"/> <meta name="twitter:image:src" content="https://blog.sparna.fr/wp-content/uploads/2020/03/Bulletin-des-sciences-mathématiques-–-Calculateur.jpg"/> <!-- / Yoast WordPress SEO plugin. --> <link rel="alternate" type="application/rss+xml" title="Sparna Blog » Flux" href="https://blog.sparna.fr/feed/" /> <link rel="alternate" type="application/rss+xml" title="Sparna Blog » Flux des commentaires" href="https://blog.sparna.fr/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="Sparna Blog » SHACL Play! free online SHACL validator for RDF data Flux des commentaires" href="https://blog.sparna.fr/2020/03/11/shacl-play-online-shacl-rdf-validator/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&subset=latin%2Cvietnamese%2Clatin-ext&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-kZ' /> <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-1301 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'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’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…</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/2020/03/Bulletin-des-sciences-mathématiques-–-Calculateur-650x450.jpg" alt="SHACL Play! free online SHACL validator for RDF data" 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>11 mars 2020 </div> <div class="post-meta-author"> <span class="fa fa-user"></span><a href="https://blog.sparna.fr/author/thomas/" title="Articles par Thomas Francart" rel="author">Thomas Francart</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/shacl-play/">SHACL Play</a> </div> <div class="post-meta-comments"> <span class="fa fa-comments"></span><a href="https://blog.sparna.fr/2020/03/11/shacl-play-online-shacl-rdf-validator/#respond">Aucun commentaire<span class="screen-reader-text"> sur SHACL Play! free online SHACL validator for RDF data</span></a> </div> </div><!-- .post-meta --> <h1 class="post-header-title">SHACL Play! free online SHACL validator for RDF data</h1> </header><!-- .page-header --> <div class="entry clr"> <p><strong>SHACL Play!</strong> at <strong><a href="http://shacl-play.sparna.fr/">http://shacl-play.sparna.fr/</a></strong> is a free online RDF validator based on <a href="https://www.w3.org/TR/shacl/">SHACL</a>. It encapsulates <a href="https://github.com/TopQuadrant/shacl">TopQuadrant’s Java SHACL implementation</a> as the actual validation engine. The code of SHACL Play is <a href="https://github.com/sparna-git/shacl-play">available on Github</a>.</p> <ol> <li>Give the input RDF data to be validated, by uploading an RDF file, pointing to a URL, or copy/pasting inline data;</li> <li>Give the SHACL rules to use for validation, by uploading a file, pointing to a URL, copy/pasting inline data, or selecting the shapes from the catalog (see below);</li> <li>Validate, and get a human-readable report generated from the <a href="https://www.w3.org/TR/shacl/#validation-report">SHACL raw validation report</a>;</li> <li>Access to the report in its RDF or CSV variant;</li> </ol> <p>Here is a screenshot of how the validation report looks like :</p> <p><a href="http://blog.sparna.fr/wp-content/uploads/2020/03/shacl-play-validation-report.png"><img class="aligncenter size-large wp-image-1305" src="http://blog.sparna.fr/wp-content/uploads/2020/03/shacl-play-validation-report-1024x603.png" alt="shacl-play-validation-report" width="650" height="383" /></a></p> <p><strong>SHACL Play!</strong> features :</p> <ol> <li><strong>Free, no registration required, no limit</strong>;</li> <li>Easy-to-use <strong>input form</strong>;</li> <li><strong>Multiple RDF serialisations</strong> supported (Turtle, RDF/XML, n3, TriG);</li> <li><strong>Versatile input methods</strong> for both RDF data and SHACL rules (upload, URL, copy/paste, catalog);</li> <li><strong>Human-readable validation report</strong>, for quick analysis of the issues to be fixed in the data (or adjusted in the shapes);</li> <li><strong>Downloadable validation reports</strong> in CSV or raw RDF;</li> <li><strong>Asynchronous validation</strong> to avoid timeouts, for large datasets (greater than 100000 triples);</li> <li><strong>Permalinks</strong> to validation reports when both RDF dataset and SHACL rules are online;</li> <li><strong>Catalog of online public shapes</strong> for documentation and quick validation (see below);</li> </ol> <p>SHACL Play also features a command-line variant (see the <a href="https://github.com/sparna-git/shacl-play/wiki">documentation on the Github wiki</a>).</p> <p>Future features could include :</p> <ol> <li>Improved display of validation report, with possibly different styles of report (depending on the « styles » of the Shapes):</li> <li>Human-readable display of a SHACL graph;</li> <li>Online data transformation engine based on <a href="https://www.w3.org/TR/shacl-af/">SHACL Rules</a>, with a first focus on converting an OWL ontology to SHACL constraints (see this <a href="https://www.topquadrant.com/from-owl-to-shacl-in-an-automated-way/">excellent description of one possible set of rules to derive SHACL shapes from an OWL ontology</a>, by Irene Polikoff from TopQuadrant);</li> </ol> <p> </p> <h3>The Shapes Catalog</h3> <p>SHACL Play includes a <a href="http://shacl-play.sparna.fr/catalog">catalog of online Shapes</a>. The catalog is collaboratively editable by modifying the <a href="https://github.com/sparna-git/SHACL-Catalog/blob/master/shacl-catalog.ttl">Shapes Catalog source file on Github</a>, through pull requests.</p> <p>Adding an entry to the catalog allows to:</p> <ul> <li>See the shapes listed in the catalog page;</li> <li>Get a form to directly validate data against these Shapes, e.g. if you want to validate your Shapes against « SHACL for SHACL » you can go to <a href="http://shacl-play.sparna.fr/validate?shapes=shsh">http://shacl-play.sparna.fr/validate?shapes=shsh</a>;</li> <li>Get a direct permaling to the validation report if the validated RDF data is also online, so there even no need to submit anything through a form to get a validation report. e.g. <a href="http://shacl-play.sparna.fr/validate?shapes=shaclplay-catalog&url=https://raw.githubusercontent.com/sparna-git/SHACL-Catalog/master/shacl-catalog.ttl">http://shacl-play.sparna.fr/validate?shapes=shaclplay-catalog&url=https://raw.githubusercontent.com/sparna-git/SHACL-Catalog/master/shacl-catalog.ttl</a> is the direct link for the validation of the <a href="https://github.com/sparna-git/SHACL-Catalog/blob/master/shacl-catalog.ttl">Shapes Catalog source file</a> against the <a href="http://shacl-play.sparna.fr/resources/shapes/shacl-play-shapes-catalog.ttl">Shapes Catalog SHACL file</a>;</li> </ul> <h3>Another SHACL Validator</h3> <p>Another SHACL validator is the SHACL playground is at <a href="https://shacl.org/playground/">https://shacl.org/playground/</a>. However the UI is too technical for newcomers, and it relies on a Javascript validator in the browser, thus I am not sure it would be capable of validating large Datasets.</p> <h3>How to edit/create SHACL rules ?</h3> <p>You need to create your own set of SHACL rules ? You don’t have a tool to do that and you don’t want to write Turtle file by hand ? One technique I use is to edit them in an Excel spreadsheet that is converted in RDF using <a href="http://labs.sparna.fr/skos-play/convert">SKOS Play Excel 2 RDF converter</a>. Here are 1 example of such a file : <a href="http://openarchaeo.huma-num.fr/federation/resources/shapes/OpenArchaeo-Shapes.xlsx">OpenArchaeo shapes</a> in Excel.</p> <p>You could start from this template and modify it to create your own Shapes Graph.</p> <p><strong>Now let’s SHACL Play!</strong></p> <p> </p> <p><em>Post illustration : « Calculateur » Bulletin des sciences mathématiques 1922, found from https://www.bnf.fr/fr/mathematiques-informatique-et-sciences-du-numerique, from Gallica at <a href="https://gallica.bnf.fr/ark:/12148/bpt6k9620547z/f123.item">https://gallica.bnf.fr/ark:/12148/bpt6k9620547z/f123.item</a><br /> </em></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-1301" class="share-linkedin sd-button share-icon no-text" href="https://blog.sparna.fr/2020/03/11/shacl-play-online-shacl-rdf-validator/?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-1301" class="share-twitter sd-button share-icon no-text" href="https://blog.sparna.fr/2020/03/11/shacl-play-online-shacl-rdf-validator/?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-1301" class="share-facebook sd-button share-icon no-text" href="https://blog.sparna.fr/2020/03/11/shacl-play-online-shacl-rdf-validator/?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-1301" class="share-google-plus-1 sd-button share-icon no-text" href="https://blog.sparna.fr/2020/03/11/shacl-play-online-shacl-rdf-validator/?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/rdf/" rel="tag">RDF</a>, <a href="https://blog.sparna.fr/tag/shacl/" rel="tag">SHACL</a>, <a href="https://blog.sparna.fr/tag/validation/" rel="tag">validation</a></div> <div class="single-post-pagination clr"> <div class="post-next"><strong>Next Post:</strong> <a href="https://blog.sparna.fr/2020/02/20/semantic-markdown/" rel="prev">Semantic Markdown Specifications</a></div> <div class="post-prev"><strong>Previous Post:</strong> <a href="https://blog.sparna.fr/2020/04/20/rico-records-in-contexts-archives-modele-conceptuel/" rel="next">RiC-CM, RiC-O : les Archives se dotent de leur modèle conceptuel (Records in Contexts)</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/2022/07/20/clean-json-ld-from-rdf-using-framing/" title="Clean JSON(-LD) from RDF using Framing"> <img src="https://blog.sparna.fr/wp-content/uploads/2022/07/Encadrement_ornemental_1er_état___...Mignon_Jean_btv1b53230250h_1-650x450.jpg" alt="Clean JSON(-LD) from RDF using Framing" 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/2022/07/20/clean-json-ld-from-rdf-using-framing/" title="Clean JSON(-LD) from RDF using Framing">Clean JSON(-LD) from RDF using Framing</a></div> <div class="related-entry-excerpt entry clr"> Say you have a nice RDF knowledge graph based on… </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… </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… </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="/2020/03/11/shacl-play-online-shacl-rdf-validator/#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> : <code><a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> </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='1301' 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="95f5f83578" /></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="130"/></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/10/15/sparnatural-say-it-with-shacl/" title="Sparnatural : say it with SHACL !" class="wpex-widget-recent-posts-thumbnail clr"> <img src="https://blog.sparna.fr/wp-content/uploads/2024/10/navigate-55x55.png" alt="Sparnatural : say it with SHACL !" width="55" height="55" /> </a> <div class="clr"></div> <a href="https://blog.sparna.fr/2024/10/15/sparnatural-say-it-with-shacl/" title="Sparnatural : say it with SHACL !" class="wpex-widget-recent-posts-title">Sparnatural : say it with SHACL !</a> </li> <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> </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="SHACL Play! free online SHACL validator for RDF data" class="clr"> <img alt='' src='https://1.gravatar.com/avatar/d34d02d390b703a3345c70b3d4d97910?s=55&d=identicon&r=g' srcset='https://1.gravatar.com/avatar/d34d02d390b703a3345c70b3d4d97910?s=110&d=identicon&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…... </a> </li> <li class="clr"> <a href="https://blog.sparna.fr/2013/12/07/ontologie-thesaurus-taxonomie-web-de-donnees/#comment-44169" title="SHACL Play! free online SHACL validator for RDF data" class="clr"> <img alt='' src='https://1.gravatar.com/avatar/d34d02d390b703a3345c70b3d4d97910?s=55&d=identicon&r=g' srcset='https://1.gravatar.com/avatar/d34d02d390b703a3345c70b3d4d97910?s=110&d=identicon&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…... </a> </li> <li class="clr"> <a href="https://blog.sparna.fr/2024/01/15/cordis-a-sparql-endpoint-is-born/#comment-38753" title="SHACL Play! free online SHACL validator for RDF data" class="clr"> <img alt='' src='https://2.gravatar.com/avatar/8adc53424babfab9191c11759c20c30e?s=55&d=identicon&r=g' srcset='https://2.gravatar.com/avatar/8adc53424babfab9191c11759c20c30e?s=110&d=identicon&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…... </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/2020/03/11/shacl-play-online-shacl-rdf-validator/" /> <input type="hidden" name="sub-type" value="widget" /> <input type="hidden" name="redirect_fragment" value="blog_subscription-2" /> <input type="submit" value="S'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\/2020\/03\/11\/shacl-play-online-shacl-rdf-validator\/":1301}; 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:'1301',tz:'1',srv:'blog.sparna.fr'} ]); _stq.push([ 'clickTrackerInit', '75279471', '1301' ]); </script> </body> </html>