<?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; rdf/xml</title>
	<atom:link href="https://blog.sparna.fr/tag/rdfxml/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>Générer du RDF avec Talend (un tutorial)</title>
		<link>https://blog.sparna.fr/2021/03/17/rdf-talend-tutorial/</link>
		<comments>https://blog.sparna.fr/2021/03/17/rdf-talend-tutorial/#comments</comments>
		<pubDate>Wed, 17 Mar 2021 17:42:32 +0000</pubDate>
		<dc:creator><![CDATA[Thomas Francart]]></dc:creator>
				<category><![CDATA[Talend]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[rdf/xml]]></category>
		<category><![CDATA[talend]]></category>

		<guid isPermaLink="false">http://blog.sparna.fr/?p=1352</guid>
		<description><![CDATA[<p>Talend Open Studio est un outil d’ETL, open-source et avec une version gratuite, utilisé pour récupérer des données d’une ou plusieurs bases, ou flux, les transformer, et alimenter d’autres bases, ou générer des rapports. On le rencontre parfois en lien avec des projets de graphes de connaissances RDF, sans toutefois l’avoir jamais réellement mis en&#8230;</p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2021/03/17/rdf-talend-tutorial/">Générer du RDF avec Talend (un tutorial)</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://www.talend.com/fr/products/talend-open-studio/"><strong>Talend Open Studio</strong></a> est un outil d’ETL, open-source et avec une version gratuite, utilisé pour récupérer des données d’une ou plusieurs bases, ou flux, les transformer, et alimenter d’autres bases, ou générer des rapports.</p>
<p>On le rencontre parfois en lien avec des projets de graphes de connaissances RDF, sans toutefois l’avoir jamais réellement mis en œuvre. Nous vous proposons ici d’explorer <strong><u>comment Talend peut être utilisé pour convertir des données CSV en RDF</u></strong> (RDF/XML plus précisément), tout cela uniquement avec des <strong>composants graphiques et sans écrire de code</strong>. C’est là un des gros avantages de l’approche : l’agencement de composants graphiques, de façon (relativement) simple, permet le paramétrage de <em>jobs</em> de conversion par des profils qui ne sont pas des développeurs.</p>
<p>Le code source du Job Talend pour produire du RDF que nous vous proposons de suivre ici peut être <a href="https://github.com/sparna-git/talend-rdf-components/tree/main/RDFXML/BUILDERRDF">téléchargé depuis ce repository Github</a> pour être importé dans Talend.</p>
<p>Les projets de mise en place de <strong>graphes de connaissances</strong> nécessitent en effet invariablement de la <strong>conversion de données</strong> vers du RDF pour alimenter le graphe. Ces conversions peuvent être faites :</p>
<ul>
<li>de façon <strong>massive et une seule fois</strong> (reprise intégrale d’une source de données pour basculer dans le graphe)</li>
<li>de façon <strong>massive et répétées plusieurs fois</strong> (synchronisation périodique d’une source de données avec le graphe, pour maintenir les deux en synchro, mais sans temps réel)</li>
<li>de façon <strong>unitaire au fil de l’eau</strong> (synchronisation des enregistrements un par un, à chaque modification dans les données source, pour maintenir les données source et le graphe synchronisés en temps réel ou quasi temps-réel)</li>
</ul>
<p>Il y a de nombreuses techniques de conversion des données source pour alimenter le graphe, on citera :</p>
<ul>
<li>les <strong>feuilles de style XSLT</strong> pour traiter du XML (pour moi la “voie royale”), à l’expressivité quasi sans limite et aux performances excellentes (technique utilisée dans le développement du <a href="https://github.com/ArchivesNationalesFR/rico-converter">convertisseur Records in Context</a> par exemple);</li>
<li>L’ajout d’entêtes de <strong>@context </strong><a href="https://json-ld.org/"><strong>JSON-LD</strong></a> sur des flux JSON, pour que le flux JSON soit interprétable directement comme du RDF;</li>
<li>L’écriture de <strong>scripts</strong> custom, bien sûr, Python, Java, etc.</li>
<li>L’utilisation d’outils de <strong>mapping de base relationnelles</strong> basés sur <a href="https://www.w3.org/TR/r2rml/">R2RML</a> comme <a href="https://ontop-vkg.org/">OnTop</a>;</li>
<li>L’utilisation de la nouvelle <a href="https://graphdb.ontotext.com/documentation/free/loading-data-using-ontorefine.html">interface de mapping RDF de </a><a href="https://graphdb.ontotext.com/documentation/free/loading-data-using-ontorefine.html"><strong>GraphDB</strong></a>, comme une extension d’OpenRefine (il faudra qu&rsquo;on en reparle);</li>
<li>L’utilisation du <a href="https://skos-play.sparna.fr/play/convert">convertisseur Excel vers RDF</a> de <strong>SKOS Play</strong>, lorsque les données source sont saisies à la main dans des tableurs (on fait plein de choses avec ça, y compris créer des <a href="https://www.w3.org/TR/shacl/">règles SHACL</a>);</li>
</ul>
<p>Et donc, en plus de tout cela, nous pouvons maintenant ajouter <strong>Talend</strong> à la panoplie des techniques possibles de production de graphes RDF !</p>
<h2>Installez Talend et paramétrez un Job avec 3 composants</h2>
<p>Pour suivre l’exemple de job de conversion proposé ici, <a href="https://www.talend.com/fr/products/talend-open-studio/">téléchargez et installez Talend Open Studio For Data Integration</a>.</p>
<p>Le job d’exemple que nous allons paramétrer utilise les composants suivants :</p>
<ul>
<li>Un composant <a href="https://help.talend.com/r/q23BCE3W4MjloHD1RvMJ4A/1UUiC6QzuUN4eQE4niDz4w"><strong>tFixedFlowInput</strong></a> pour lire (ici, générer) les données d’entrée.</li>
<li>Un composant <a href="https://help.talend.com/r/ZndcSsDNtKg8FpNIRCdjag/lsGcvH5xX62VBCkwJGS~wA"><strong>tMap</strong></a> pour transformer les données et en particulier générer tout ce qui est nécessaire pour produire le RDF, en particulier les URIs des sujets et des objets.</li>
<li>Un composant <a href="https://help.talend.com/r/yfVJmc99tpfXkmHYCvG8pw/i_YvOl2oUaVpW1UTnJao_g"><strong>tAdvancedFileOutputXML</strong></a> pour créer le fichier RDF/XML de sortie.</li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/1.png"><img class="aligncenter size-large wp-image-1353" src="http://blog.sparna.fr/wp-content/uploads/2021/03/1-1024x146.png" alt="1" width="650" height="93" /></a></p>
<p>Créez un nouveau Job Talend, et à partir de la palette de composants sur la droite de l’écran, ajoutez les 3 composants dans votre job.</p>
<h2>Configurer les données d’entrée</h2>
<p>Nous allons configurer des données d’entrée d’exemple, type CSV, avec 3 colonnes qui décrivent des personnes : ID, Prénom et Nom.</p>
<ol>
<li>Dans l&rsquo;espace de travail, sélectionnez le <strong>tFixedFlowInput_1</strong> .</li>
<li>Cliquez sur la vue Component pour paramétrer ses propriétés de base dans l&rsquo;onglet Basic settings.</li>
<li>Cliquez sur le bouton <strong>[&#8230;]</strong> à côté du champ <strong>Edit Schema</strong> pour décrire la structure des données que vous souhaitez à partir des variables internes. Dans ce scénario, le schéma est constitué de trois colonnes : <em>ID</em>, <em>first</em> et <em>last</em>, toutes de type <strong>String</strong>.</li>
<li>Cliquez sur <b>OK</b> pour fermer la boîte de dialogue.</li>
<li><span style="font-weight: 400;"> Dans les propriétés Basic settings du composant </span><b>tFixedFlowInput 1 </b><span style="font-weight: 400;">sélectionnez</span><span style="font-weight: 400;"><span style="font-weight: 400;"> “Use Inline Content (delimited file)”. Dans le champ contenu, ajoutez les informations:  </span></span><br />
<code><br />
1;John;Doe<br />
2;Rutherford;McKinley<br />
3;Marc;Van Buren<br />
4;Theodore;Roosevelt<br />
5;John;Truman<br />
</code><img class=" size-large wp-image-1356 aligncenter" src="http://blog.sparna.fr/wp-content/uploads/2021/03/schema_source_donnees-1024x339.png" alt="schema_source_donnees" width="650" height="215" /></li>
<li></li>
<li>Connectez le composant <strong>tFixedFlowInput_1</strong>  au <strong>tMAP_1</strong> avec le bouton gauche de la souris. Choisir l’option Row &gt; Main et connectez au composant <strong>tMAP</strong>.</li>
</ol>
<p>&nbsp;</p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/Connection1.png"><img class="aligncenter size-large wp-image-1358" src="http://blog.sparna.fr/wp-content/uploads/2021/03/Connection1-1024x200.png" alt="Connection1" width="650" height="127" /></a></p>
<h2></h2>
<h2><b>Mapper les données pour générer des URIs (et le reste)</b></h2>
<p style="text-align: justify;">La seconde étape consiste à produire tout ce dont on a besoin pour générer le RDF, en particulier <strong>générer les URI des ressources</strong>. Nous allons donc générer une URI pour chaque personne à partir de son ID.</p>
<ol>
<li style="text-align: justify;">Configurez le composant <strong>tMAP_1</strong>.</li>
</ol>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Éditez le composant avec l’option éditeur de mapping. Cette option ouvrira une fenêtre séparée.   </span></li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/tMap_Editeur.png"><br />
</a><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/tMap_Editeur.png"><img class="aligncenter size-large wp-image-1359" src="http://blog.sparna.fr/wp-content/uploads/2021/03/tMap_Editeur-1024x433.png" alt="tMap_Editeur" width="650" height="275" /></a></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/tMap_Schema.png"><img class="aligncenter size-large wp-image-1362" src="http://blog.sparna.fr/wp-content/uploads/2021/03/tMap_Schema-1024x424.png" alt="tMap_Schema" width="650" height="269" /></a></p>
<ul>
<li style="font-weight: 400;">Ajoutez une table de sortie avec le bouton <strong>plus [+] </strong>et donner un nom : <strong>out1</strong>.</li>
<li style="font-weight: 400;">Ajoutez les colonnes dans la section correspondante comme affiché dans l’image ci-dessous : en sortie nous allons produire une colonne “URI” à la place de “ID”, et les colonnes “First” et “Last” restent les même.</li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/tMap_OutputColonne.png"><img class="aligncenter wp-image-1361 size-medium" src="http://blog.sparna.fr/wp-content/uploads/2021/03/tMap_OutputColonne-300x93.png" alt="tMap_OutputColonne" width="300" height="93" /></a></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Glissez chaque colonne d&rsquo;entrée à la table de sortie :</span>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">First va sur First</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Last va sur Last</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">et ID va vers URI</span></li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Nous allons <strong>transformer la colonne ID pour générer l’URI</strong>, en utilisant une expression de concaténation <strong>&laquo;&nbsp;http://sparna.fr/dataset/persons/person_&nbsp;&raquo;+row1.ID.toString()</strong>. Pour cela, dans le champs “Expression” de la colonne “URI, copiez/collez l’expression de concaténation &laquo;&nbsp;<a href="http://sparna.fr/dataset/persons/person_%22+row1.ID.toString()">http://sparna.fr/dataset/persons/person_&nbsp;&raquo;+row1.ID.toString()</a>. Vous pouvez également cliquer sur le bouton “constructeur d’expression” pour ouvrir une fenêtre dédiée où vous pourrez saisir l’expression.  </span></li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/tMap_StructureOutput.png"><img class="aligncenter size-large wp-image-1363" src="http://blog.sparna.fr/wp-content/uploads/2021/03/tMap_StructureOutput-1024x402.png" alt="tMap_StructureOutput" width="650" height="255" /></a></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/tMap_Expression.png"><img class="aligncenter size-large wp-image-1360" src="http://blog.sparna.fr/wp-content/uploads/2021/03/tMap_Expression-1024x408.png" alt="tMap_Expression" width="650" height="259" /></a></p>
<p>&nbsp;</p>
<ul>
<li>Cliquez sur <strong>OK</strong>pour valider et revenir à l&rsquo;espace de modélisation.</li>
<li>Reliez le composant <strong>tMap_1</strong> au composant <strong>tAdvancedFileOutputXML_1</strong></li>
</ul>
<p>&nbsp;</p>
<h2><b>Configurer la sortie RDF/XML</b></h2>
<p>&nbsp;</p>
<p>Une fois que toutes les informations nécessaires à la génération du RDF (en particulier les URIs) ont été produites, on peut mapper les différentes informations vers la structure d’un fichier RDF/XML de sortie.</p>
<ol>
<li>Nous allons définir l’arbre XML dans le composant <strong>tAdvancedFileOutputXML_1</strong>.</li>
<li>Double-cliquez sur le composant <strong>tAdvancedFileOutputXML_1</strong> pour ouvrir l&rsquo;interface dédiée ou cliquez sur le bouton <strong>[&#8230;]</strong> du champ <strong>Configure Xml Tree</strong> de l&rsquo;onglet <strong>Basic settings </strong>dans la vue <strong>Component</strong>.</li>
<li>Dans la section Linked Target (cible du lien),  définissez la structure XML comme sortie.
<ul>
<li>Cliquez sur la ligne  <strong>rootTag </strong>et renommer par <strong>rdf:RDF.<a href="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_Racine.png"><img class="aligncenter size-large wp-image-1371" src="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_Racine-1024x147.png" alt="RDFXML_Racine" width="650" height="93" /></a></strong></li>
<li>Cliquez sur le bouton <strong>plus [+]</strong> et ajoutez une ligne de type namespace avec son prefix <strong>rdf</strong> et son namespace “http://www.w3.org/1999/02/22-rdf-syntax-ns#”.
<ul>
<li><strong>Etape 1:<img class="aligncenter size-large wp-image-1368" src="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_NameSpace-1024x306.png" alt="RDFXML_NameSpace" width="650" height="194" /></strong></li>
<li><b>Étape 2</b>: Choisissez l’option<b> create as name space</b>.<img class="aligncenter wp-image-1369 size-medium" src="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_NameSpace_Option-300x199.png" alt="RDFXML_NameSpace_Option" width="300" height="199" /></li>
<li> <b>Étape 3:</b> Tapez le prefix et le Namespace.</li>
</ul>
</li>
</ul>
</li>
</ol>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_NameSpace_Prefix_Namespace.png"><img class="aligncenter wp-image-1370 size-medium" src="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_NameSpace_Prefix_Namespace-300x154.png" alt="RDFXML_NameSpace_Prefix_Namespace" width="300" height="154" /></a></p>
<ul>
<li>Ajoutez autre namespace comment les pas précédents. et avec le prefix <strong>foaf</strong> et le namespace “<a href="http://xmlns.com/foaf/0.1/">http://xmlns.com/foaf/0.1/</a>”.</li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Choisissez la ligne racine (rdf:RDF) et  Créer une sous élément qui doit s&rsquo;appelle <strong>foaf:Person</strong> et cliquez sur le bouton OK.  </span></li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_SousElement.png"><img class="aligncenter wp-image-1372 size-medium" src="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_SousElement-300x199.png" alt="RDFXML_SousElement" width="300" height="199" /></a></p>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_SousElement_libelle.png"><img class="aligncenter wp-image-1373 size-medium" src="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_SousElement_libelle-300x104.png" alt="RDFXML_SousElement_libelle" width="300" height="104" /></a></p>
<ul>
<li style="font-weight: 400;">Cliquez sur la ligne <strong>foaf:Person</strong> et créer un attribut <strong>rdf:about</strong> et cliquez sur le bouton OK.</li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_attribut.png"><img class="aligncenter wp-image-1364 size-medium" src="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_attribut-300x199.png" alt="RDFXML_attribut" width="300" height="199" /></a><br />
<a href="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_attribut_libelle.png"><img class="aligncenter wp-image-1365 size-medium" src="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_attribut_libelle-300x104.png" alt="RDFXML_attribut_libelle" width="300" height="104" /></a></p>
<p>&nbsp;</p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Cliquez sur la ligne <strong>foaf:Person</strong> et ajoutez les sous éléments <strong>foaf:firstName et foaf:lastName</strong>. </span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Pour connecter les sources avec la structure, glissez chaque champ source  avec le champ cible.  URI → @rdf:about et immédiatement s&rsquo;afficher une  fenêtre où nous devons choisir l’option <strong>Add linker to target node</strong>. </span></li>
</ul>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_Linker.png"><img class="aligncenter wp-image-1367 size-medium" src="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_Linker-300x194.png" alt="RDFXML_Linker" width="300" height="194" /></a><br />
<a href="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_Structure_final.png"><img class="aligncenter size-full wp-image-1374" src="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_Structure_final.png" alt="RDFXML_Structure_final" width="922" height="265" /></a></p>
<p>&nbsp;</p>
<ol>
<li style="font-weight: 400;"><span style="font-weight: 400;">Cliquez sur le bouton OK pour confirmer.</span></li>
</ol>
<p>&nbsp;</p>
<ol>
<li style="font-weight: 400;"><span style="font-weight: 400;">Dans le Basic Settings du composant <strong>tAdvancedFileOutputXML_1</strong>, entrez le chemin de sauvegarde du fichier XML de sortie.</span></li>
</ol>
<p style="text-align: center;"><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_Composant1.png"><img class="aligncenter size-large wp-image-1375" src="http://blog.sparna.fr/wp-content/uploads/2021/03/RDFXML_Composant1-1024x245.png" alt="RDFXML_Composant" width="650" height="156" /></a></p>
<h2><b>Lancer notre Job.</b></h2>
<ol>
<li style="font-weight: 400;"><span style="font-weight: 400;">Aller à la section <strong>Exécuter</strong>.</span></li>
<li style="font-weight: 400;">Cliquez sur le bouton<b> <strong>Exécuter</strong>.</b></li>
</ol>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/Job_Executer.png"><img class="aligncenter size-large wp-image-1376" src="http://blog.sparna.fr/wp-content/uploads/2021/03/Job_Executer-1024x719.png" alt="Job_Executer" width="650" height="456" /></a></p>
<ol>
<li style="font-weight: 400;"><span style="font-weight: 400;">Le résultat final est la création du fichier RDF/XML, qui est stocké à l’endroit configuré.</span></li>
</ol>
<p><a href="http://blog.sparna.fr/wp-content/uploads/2021/03/Job_FileOutput.png"><img class="aligncenter size-large wp-image-1377" src="http://blog.sparna.fr/wp-content/uploads/2021/03/Job_FileOutput-1024x291.png" alt="Job_FileOutput" width="650" height="185" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Et voilà un magnifique fichier RDF/XML, produit à partir de CSV, en quelques clics et avec des composants graphiques</strong> ! Pas belle la vie ?</p>
<pre>&lt;rdf:RDF 
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:foaf="http://xmlns.com/foaf/0.1/"&gt;
   
    &lt;foaf:Person rdf:about="http://sparna.fr/dataset/persons/person_1"&gt;
        &lt;foaf:firstName&gt;Theodore&lt;/foaf:firstName&gt;
        &lt;foaf:lastName&gt;Roosevelt&lt;/foaf:lastName&gt;
    &lt;/foaf:Person&gt;
    &lt;foaf:Person rdf:about="http://sparna.fr/dataset/persons/person_2"&gt;
        &lt;foaf:firstName&gt;Ulysses&lt;/foaf:firstName&gt;
        &lt;foaf:lastName&gt;Clinton&lt;/foaf:lastName&gt;
    &lt;/foaf:Person&gt;
    &lt;foaf:Person rdf:about="http://sparna.fr/dataset/persons/person_3"&gt;
        &lt;foaf:firstName&gt;John&lt;/foaf:firstName&gt;
        &lt;foaf:lastName&gt;Truman&lt;/foaf:lastName&gt;
    &lt;/foaf:Person&gt;
    &lt;foaf:Person rdf:about="http://sparna.fr/dataset/persons/person_4"&gt;
        &lt;foaf:firstName&gt;Chester&lt;/foaf:firstName&gt;
        &lt;foaf:lastName&gt;Van Buren&lt;/foaf:lastName&gt;
    &lt;/foaf:Person&gt;
    &lt;foaf:Person rdf:about="http://sparna.fr/dataset/persons/person_5"&gt;
        &lt;foaf:firstName&gt;Rutherford&lt;/foaf:firstName&gt;
        &lt;foaf:lastName&gt;McKinley&lt;/foaf:lastName&gt;
    &lt;/foaf:Person&gt;
&lt;/rdf:RDF&gt;
</pre>
<p>&nbsp;</p>
<p><em>Crédit illustration : <a href="https://www.talend.com/">Talend</a> et <a href="https://www.w3.org/TR/rdf11-primer/">RDF</a></em></p>
<p>Cet article <a rel="nofollow" href="https://blog.sparna.fr/2021/03/17/rdf-talend-tutorial/">Générer du RDF avec Talend (un tutorial)</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/17/rdf-talend-tutorial/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
