A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 49KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang=fr>
  4. <!-- Has to be within the first 1024 bytes, hence before the <title>
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset=utf-8>
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name=viewport content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Les technologies du Web sémantique, entre théorie et pratique (archive) — David Larlet</title>
  13. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  14. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons/apple-touch-icon.png">
  15. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons/favicon-32x32.png">
  16. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons/favicon-16x16.png">
  17. <link rel="manifest" href="/manifest.json">
  18. <link rel="mask-icon" href="/static/david/icons/safari-pinned-tab.svg" color="#5bbad5">
  19. <link rel="shortcut icon" href="/static/david/icons/favicon.ico">
  20. <meta name="apple-mobile-web-app-title" content="David Larlet">
  21. <meta name="application-name" content="David Larlet">
  22. <meta name="msapplication-TileColor" content="#da532c">
  23. <meta name="msapplication-config" content="/static/david/icons/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- That good ol' feed, subscribe :p. -->
  26. <link rel=alternate type="application/atom+xml" title=Feed href="/david/log/">
  27. <meta name="robots" content="noindex, nofollow">
  28. <meta content="origin-when-cross-origin" name="referrer">
  29. <!-- Canonical URL for SEO purposes -->
  30. <link rel="canonical" href="http://www.lespetitescases.net/les-technologies-du-web-semantique-entre-theorie-et-pratique">
  31. <style>
  32. /* http://meyerweb.com/eric/tools/css/reset/ */
  33. html, body, div, span,
  34. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  35. a, abbr, address, big, cite, code,
  36. del, dfn, em, img, ins,
  37. small, strike, strong, tt, var,
  38. dl, dt, dd, ol, ul, li,
  39. fieldset, form, label, legend,
  40. table, caption, tbody, tfoot, thead, tr, th, td,
  41. article, aside, canvas, details, embed,
  42. figure, figcaption, footer, header, hgroup,
  43. menu, nav, output, ruby, section, summary,
  44. time, mark, audio, video {
  45. margin: 0;
  46. padding: 0;
  47. border: 0;
  48. font-size: 100%;
  49. font: inherit;
  50. vertical-align: baseline;
  51. }
  52. /* HTML5 display-role reset for older browsers */
  53. article, aside, details, figcaption, figure,
  54. footer, header, hgroup, menu, nav, section { display: block; }
  55. body { line-height: 1; }
  56. blockquote, q { quotes: none; }
  57. blockquote:before, blockquote:after,
  58. q:before, q:after {
  59. content: '';
  60. content: none;
  61. }
  62. table {
  63. border-collapse: collapse;
  64. border-spacing: 0;
  65. }
  66. /* http://practicaltypography.com/equity.html */
  67. /* https://calendar.perfplanet.com/2016/no-font-face-bulletproof-syntax/ */
  68. /* https://www.filamentgroup.com/lab/js-web-fonts.html */
  69. @font-face {
  70. font-family: 'EquityTextB';
  71. src: url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff2') format('woff2'),
  72. url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff') format('woff');
  73. font-weight: 300;
  74. font-style: normal;
  75. font-display: swap;
  76. }
  77. @font-face {
  78. font-family: 'EquityTextB';
  79. src: url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff2') format('woff2'),
  80. url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff') format('woff');
  81. font-weight: 300;
  82. font-style: italic;
  83. font-display: swap;
  84. }
  85. @font-face {
  86. font-family: 'EquityTextB';
  87. src: url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff2') format('woff2'),
  88. url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff') format('woff');
  89. font-weight: 700;
  90. font-style: normal;
  91. font-display: swap;
  92. }
  93. @font-face {
  94. font-family: 'ConcourseT3';
  95. src: url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff2') format('woff2'),
  96. url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff') format('woff');
  97. font-weight: 300;
  98. font-style: normal;
  99. font-display: swap;
  100. }
  101. /* http://practice.typekit.com/lesson/caring-about-opentype-features/ */
  102. body {
  103. /* http://www.cssfontstack.com/ Palatino 99% Win 86% Mac */
  104. font-family: "EquityTextB", Palatino, serif;
  105. background-color: #f0f0ea;
  106. color: #07486c;
  107. font-kerning: normal;
  108. -moz-osx-font-smoothing: grayscale;
  109. -webkit-font-smoothing: subpixel-antialiased;
  110. text-rendering: optimizeLegibility;
  111. font-variant-ligatures: common-ligatures contextual;
  112. font-feature-settings: "kern", "liga", "clig", "calt";
  113. }
  114. pre, code, kbd, samp, var, tt {
  115. font-family: 'TriplicateT4c', monospace;
  116. }
  117. em {
  118. font-style: italic;
  119. color: #323a45;
  120. }
  121. strong {
  122. font-weight: bold;
  123. color: black;
  124. }
  125. nav {
  126. background-color: #323a45;
  127. color: #f0f0ea;
  128. display: flex;
  129. justify-content: space-around;
  130. padding: 1rem .5rem;
  131. }
  132. nav:last-child {
  133. border-bottom: 1vh solid #2d7474;
  134. }
  135. nav a {
  136. color: #f0f0ea;
  137. }
  138. nav abbr {
  139. border-bottom: 1px dotted white;
  140. }
  141. h1 {
  142. border-top: 1vh solid #2d7474;
  143. border-bottom: .2vh dotted #2d7474;
  144. background-color: #e3e1e1;
  145. color: #323a45;
  146. text-align: center;
  147. padding: 5rem 0 4rem 0;
  148. width: 100%;
  149. font-family: 'ConcourseT3';
  150. display: flex;
  151. flex-direction: column;
  152. }
  153. h1.single {
  154. padding-bottom: 10rem;
  155. }
  156. h1 span {
  157. position: absolute;
  158. top: 1vh;
  159. left: 20%;
  160. line-height: 0;
  161. }
  162. h1 span a {
  163. line-height: 1.7;
  164. padding: 1rem 1.2rem .6rem 1.2rem;
  165. border-radius: 0 0 6% 6%;
  166. background: #2d7474;
  167. font-size: 1.3rem;
  168. color: white;
  169. text-decoration: none;
  170. }
  171. h2 {
  172. margin: 4rem 0 1rem;
  173. border-top: .2vh solid #2d7474;
  174. padding-top: 1vh;
  175. }
  176. h3 {
  177. text-align: center;
  178. margin: 3rem 0 .75em;
  179. }
  180. hr {
  181. height: .4rem;
  182. width: .4rem;
  183. border-radius: .4rem;
  184. background: #07486c;
  185. margin: 2.5rem auto;
  186. }
  187. time {
  188. display: bloc;
  189. margin-left: 0 !important;
  190. }
  191. ul, ol {
  192. margin: 2rem;
  193. }
  194. ul {
  195. list-style-type: square;
  196. }
  197. a {
  198. text-decoration-skip-ink: auto;
  199. text-decoration-thickness: 0.05em;
  200. text-underline-offset: 0.09em;
  201. }
  202. article {
  203. max-width: 50rem;
  204. display: flex;
  205. flex-direction: column;
  206. margin: 2rem auto;
  207. }
  208. article.single {
  209. border-top: .2vh dotted #2d7474;
  210. margin: -6rem auto 1rem auto;
  211. background: #f0f0ea;
  212. padding: 2rem;
  213. }
  214. article p:last-child {
  215. margin-bottom: 1rem;
  216. }
  217. p {
  218. padding: 0 .5rem;
  219. margin-left: 3rem;
  220. }
  221. p + p,
  222. figure + p {
  223. margin-top: 2rem;
  224. }
  225. blockquote {
  226. background-color: #e3e1e1;
  227. border-left: .5vw solid #2d7474;
  228. display: flex;
  229. flex-direction: column;
  230. align-items: center;
  231. padding: 1rem;
  232. margin: 1.5rem;
  233. }
  234. blockquote cite {
  235. font-style: italic;
  236. }
  237. blockquote p {
  238. margin-left: 0;
  239. }
  240. figure {
  241. border-top: .2vh solid #2d7474;
  242. background-color: #e3e1e1;
  243. text-align: center;
  244. padding: 1.5rem 0;
  245. margin: 1rem 0 0;
  246. font-size: 1.5rem;
  247. width: 100%;
  248. }
  249. figure img {
  250. max-width: 250px;
  251. max-height: 250px;
  252. border: .5vw solid #323a45;
  253. padding: 1px;
  254. }
  255. figcaption {
  256. padding: 1rem;
  257. line-height: 1.4;
  258. }
  259. aside {
  260. display: flex;
  261. flex-direction: column;
  262. background-color: #e3e1e1;
  263. padding: 1rem 0;
  264. border-bottom: .2vh solid #07486c;
  265. }
  266. aside p {
  267. max-width: 50rem;
  268. margin: 0 auto;
  269. }
  270. /* https://fvsch.com/code/css-locks/ */
  271. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  272. font-size: 1rem;
  273. line-height: calc( 1.5em + 0.2 * 1rem );
  274. }
  275. h1 {
  276. font-size: 1.9rem;
  277. line-height: calc( 1.2em + 0.2 * 1rem );
  278. }
  279. h2 {
  280. font-size: 1.6rem;
  281. line-height: calc( 1.3em + 0.2 * 1rem );
  282. }
  283. h3 {
  284. font-size: 1.35rem;
  285. line-height: calc( 1.4em + 0.2 * 1rem );
  286. }
  287. @media (min-width: 20em) {
  288. /* The (100vw - 20rem) / (50 - 20) part
  289. resolves to 0-1rem, depending on the
  290. viewport width (between 20em and 50em). */
  291. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  292. font-size: calc( 1rem + .6 * (100vw - 20rem) / (50 - 20) );
  293. line-height: calc( 1.5em + 0.2 * (100vw - 50rem) / (20 - 50) );
  294. margin-left: 0;
  295. }
  296. h1 {
  297. font-size: calc( 1.9rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  298. line-height: calc( 1.2em + 0.2 * (100vw - 50rem) / (20 - 50) );
  299. }
  300. h2 {
  301. font-size: calc( 1.5rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  302. line-height: calc( 1.3em + 0.2 * (100vw - 50rem) / (20 - 50) );
  303. }
  304. h3 {
  305. font-size: calc( 1.35rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  306. line-height: calc( 1.4em + 0.2 * (100vw - 50rem) / (20 - 50) );
  307. }
  308. }
  309. @media (min-width: 50em) {
  310. /* The right part of the addition *must* be a
  311. rem value. In this example we *could* change
  312. the whole declaration to font-size:2.5rem,
  313. but if our baseline value was not expressed
  314. in rem we would have to use calc. */
  315. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  316. font-size: calc( 1rem + .6 * 1rem );
  317. line-height: 1.5em;
  318. }
  319. p, li, pre, details {
  320. margin-left: 3rem;
  321. }
  322. h1 {
  323. font-size: calc( 1.9rem + 1.5 * 1rem );
  324. line-height: 1.2em;
  325. }
  326. h2 {
  327. font-size: calc( 1.5rem + 1.5 * 1rem );
  328. line-height: 1.3em;
  329. }
  330. h3 {
  331. font-size: calc( 1.35rem + 1.5 * 1rem );
  332. line-height: 1.4em;
  333. }
  334. figure img {
  335. max-width: 500px;
  336. max-height: 500px;
  337. }
  338. }
  339. figure.unsquared {
  340. margin-bottom: 1.5rem;
  341. }
  342. figure.unsquared img {
  343. height: inherit;
  344. }
  345. @media print {
  346. body { font-size: 100%; }
  347. a:after { content: " (" attr(href) ")"; }
  348. a, a:link, a:visited, a:after {
  349. text-decoration: underline;
  350. text-shadow: none !important;
  351. background-image: none !important;
  352. background: white;
  353. color: black;
  354. }
  355. abbr[title] { border-bottom: 0; }
  356. abbr[title]:after { content: " (" attr(title) ")"; }
  357. img { page-break-inside: avoid; }
  358. @page { margin: 2cm .5cm; }
  359. h1, h2, h3 { page-break-after: avoid; }
  360. p3 { orphans: 3; widows: 3; }
  361. img {
  362. max-width: 250px !important;
  363. max-height: 250px !important;
  364. }
  365. nav, aside { display: none; }
  366. }
  367. ul.with_columns {
  368. column-count: 1;
  369. }
  370. @media (min-width: 20em) {
  371. ul.with_columns {
  372. column-count: 2;
  373. }
  374. }
  375. @media (min-width: 50em) {
  376. ul.with_columns {
  377. column-count: 3;
  378. }
  379. }
  380. ul.with_two_columns {
  381. column-count: 1;
  382. }
  383. @media (min-width: 20em) {
  384. ul.with_two_columns {
  385. column-count: 1;
  386. }
  387. }
  388. @media (min-width: 50em) {
  389. ul.with_two_columns {
  390. column-count: 2;
  391. }
  392. }
  393. .gallery {
  394. display: flex;
  395. flex-wrap: wrap;
  396. justify-content: space-around;
  397. }
  398. .gallery figure img {
  399. margin-left: 1rem;
  400. margin-right: 1rem;
  401. }
  402. .gallery figure figcaption {
  403. font-family: 'ConcourseT3'
  404. }
  405. footer {
  406. font-family: 'ConcourseT3';
  407. display: flex;
  408. flex-direction: column;
  409. border-top: 3px solid white;
  410. padding: 4rem 0;
  411. background-color: #07486c;
  412. color: white;
  413. }
  414. footer > * {
  415. max-width: 50rem;
  416. margin: 0 auto;
  417. }
  418. footer a {
  419. color: #f1c40f;
  420. }
  421. footer .avatar {
  422. width: 200px;
  423. height: 200px;
  424. border-radius: 50%;
  425. float: left;
  426. -webkit-shape-outside: circle();
  427. shape-outside: circle();
  428. margin-right: 2rem;
  429. padding: 2px 5px 5px 2px;
  430. background: white;
  431. border-left: 1px solid #f1c40f;
  432. border-top: 1px solid #f1c40f;
  433. border-right: 5px solid #f1c40f;
  434. border-bottom: 5px solid #f1c40f;
  435. }
  436. </style>
  437. <h1>
  438. <span><a id="jumper" href="#jumpto" title="Un peu perdu ?">?</a></span>
  439. Les technologies du Web sémantique, entre théorie et pratique (archive)
  440. <time>Pour la pérennité des contenus liés. Non-indexé, retrait sur simple email.</time>
  441. </h1>
  442. <section>
  443. <article>
  444. <h3><a href="http://www.lespetitescases.net/les-technologies-du-web-semantique-entre-theorie-et-pratique">Source originale du contenu</a></h3>
  445. <p>Ce billet fait partie d'une série de quatre billets qui visent à proposer un bilan de plus de 12 ans de travail avec les technologies du Web sémantique, « <a href="http://www.lespetitescases.net/les-technos-du-web-semantique-ont-elles-tenu-leurs-promesses">Les technos du Web sémantique ont-elles tenu leurs promesses ?</a> » :</p>
  446. <h1 id="h.awh77aafo7nm">Les technologies du Web sémantique : Pourquoi ? Comment ?</h1>
  447. <p>Lorsque Tim Berners-Lee crée le Web, son objectif est de proposer aux chercheurs du <a href="http://info.cern.ch/Proposal.html">CERN </a>un <strong>espace d’interopérabilité pour échanger non seulement des documents mais aussi des données structurées</strong>. Ainsi, le document qui décrit sa <a href="https://www.w3.org/History/1989/proposal.html">proposition </a>intègre dès le départ l’idée d’aller au-delà d’un espace documentaire pour relier des entités du monde réel.</p>
  448. <p><span><img alt="" src="http://www.lespetitescases.net/files/image16.gif" title=""/></span><br/><span class="c4 c7"><a href="https://www.w3.org/History/1989/proposal.html">Schéma représentant la proposition de Tim Berners-Lee pour gérer l’information du CERN</a></span><span class="c10 c7">, Tim Berners-Lee</span></p>
  449. <p>Tim Berners-Lee et les pionniers du Web se concentrent d’abord sur la mise au point et l’amélioration des éléments du web de documents : protocole de communication (HTTP), langage d’encodage des documents (HTML et XML) et éléments pour la mise en forme (XSLT, CSS). En 1994, année de la création du W3C, Tim Berners-Lee trace<a href="https://www.w3.org/Talks/WWW94Tim/"> le futur du Web</a> lors de la 1ère conférence WWW. Il revient alors sur <strong>l’idée d’intégrer dans le Web des entités du monde réel (lieu, personne, concept, oeuvre de l’esprit…) reliées entre elles par des liens typés</strong>.</p>
  450. <p><span><img alt="" src="http://www.lespetitescases.net/files/image11.jpg" title=""/></span><br/><span class="c7">Image issue de la présentation “</span><span class="c4 c7"><a href="https://www.w3.org/Talks/WWW94Tim/">The Need for Semantics in the Web</a></span><span class="c10 c7">”, Tim Berners-Lee, CC-BY</span></p>
  451. <p>En 1998, il propose une <a href="https://www.w3.org/DesignIssues/Semantic.html">feuille de route pour le Web sémantique</a>. Ce document est essentiel car il contient la description des technologies nécessaires au déploiement d’un Web de données : </p>
  452. <blockquote><p>« <strong>The Semantic Web is a web of data, in some ways like a global database</strong>. The rationale for creating such an infrastructure is given elsewhere [Web future talks &amp;c] here I only outline the architecture as I see it. ».  </p>
  453. </blockquote>
  454. <p>Le W3C va s’atteler dans les<a href="https://www.lespetitescases.net/petite-histoire-du-web-semantique"> dix années suivantes</a> à la mise en pratique de ces éléments. </p>
  455. <p>        <span><img alt="" src="http://www.lespetitescases.net/files/image23.png" title=""/></span><br/><span class="c4 c7"><a href="https://commons.wikimedia.org/wiki/File:Semantic_Web_Stack.png">Semantic Web Stack</a></span><span class="c10 c7">, W3C, domaine public</span></p>
  456. <p>Ces technologies s’appuient d’abord et avant tout sur <strong>l’architecture du Web</strong> : le protocole HTTP et le système d’identifiants des URIs. Chaque <strong>entité est donc assimilée à une ressource HTTP identifiée par une URI</strong>. La description de l’entité s’appuie sur le modèle RDF : rencontre du modèle de graphe et de la logique des prédicats du 1er ordre. Ainsi, chaque élément de description forme <strong>un triplet (Sujet-Prédicat-Objet) dont le prédicat, lui-même une ressource HTTP, décrit la nature de la relation entre deux entités, sujet et objet.</strong> </p>
  457. <p><span><img alt="" src="http://www.lespetitescases.net/files/image5.png" title=""/></span><span><img alt="" src="http://www.lespetitescases.net/files/image8.png" title=""/></span></p>
  458. <p>La mise en relation des différents triplets forme un <strong>graphe orienté</strong>. </p>
  459. <p><span><img alt="" src="http://www.lespetitescases.net/files/image6.png" title=""/></span><br/><span class="c7">Images issues de « </span><span class="c4 c7"><a href="https://www.slideshare.net/lespetitescases/les-technologies-du-web-appliques-aux-donnes-structures-1re-partie-encoder-et-structurer-les-donnes">les technologies du Web appliquées aux données structurées</a></span><span class="c10 c7"> », <br/>Emmanuelle Bermès, Gautier Poupeau, CC-BY</span></p>
  460. <p>Au modèle RDF, s’ajoutent deux technologies principales : un ensemble de mécanismes pour <strong>décrire les modèles de données</strong> (globalement sur le principe Entités/Relations) dont les triplets sont des instanciations (RDFS/OWL) et un <strong>langage de requêtes</strong> (SPARQL). </p>
  461. <h1 class="c9" id="h.qyadc8gopib1">Promesses et limites dans la pratique</h1>
  462. <p>Afin d’illustrer mon propos, je vous propose de revenir sur quelques expériences en insistant à chaque fois sur les raisons qui nous ont amenés à choisir les technologies du Web sémantique et les limites et/ou leçons que nous avons pu en tirer.</p>
  463. <h2 id="h.92t0qdf83ib3">Le projet SPAR</h2>
  464. <p>Le projet <a href="http://www.bnf.fr/fr/professionnels/spar_systeme_preservation_numerique.html">Système de préservation et d’archivage réparti</a> (SPAR) vise à donner les moyens à la Bibliothèque nationale de France d’assurer sur le très long terme la continuité de l’accès à ses collections numériques. Le système suit les principes du modèle OAIS (<a href="https://fr.wikipedia.org/wiki/Open_Archival_Information_System">Open Archival Information System</a>) qui constitue un vade mecum pour une bonne gestion et une maîtrise de l’information numérique dans le temps.</p>
  465. <p><span><img alt="" src="http://www.lespetitescases.net/files/image14.jpg" title=""/></span></p>
  466. <p>SPAR est basé sur quelques principes forts :</p>
  467. <ul class="c17 lst-kix_nuzvr6dyn9vh-0 start"><li><strong>séparation stricte entre les informations numériques conservées et le système qui les exploite</strong>, le système peut ainsi évoluer de manière indépendante des collections ;</li><li><strong>auto-documentation et auto-configuration du système</strong>, c’est-à-dire que l’ensemble des éléments du système : référentiels, code source de l’applicatif, éléments de configuration, métadonnées des informations numériques sont aussi conservés et stockés par le système sous la forme de paquets, ils sont d’ailleurs pris en compte par le système au moment de leur versement et non de manière native ;</li><li>Tous les éléments de configuration « métiers » et les référentiels sont administrés par les experts de préservation via des paquets dit de référence nécessaires au bon fonctionnement du système, le <strong>système garantit ainsi les rôles de chacun : expert de préservation d’un côté et administrateurs du système de l’autre</strong> ;</li><li>les <strong>interfaces, sous la forme de Web service RestFull, entre les différents éléments du système sont indépendants des technologies</strong> qui les font fonctionner ;</li><li>les <strong>modules de l’application (dont l’architecture suit strictement le modèle OAIS) sont indépendants</strong> les uns des autres et communiquent uniquement via des Web services.</li></ul>
  468. <p>Le module “Gestion des données”, en charge du stockage et de l’interrogation des métadonnées se devait de répondre à <a href="http://www.ifs.tuwien.ac.at/dp/ipres2010/papers/fauduet-13.pdf">différentes problématiques</a> :</p>
  469. <ul class="c17 lst-kix_6g6hmu8x4uax-0 start"><li><strong>toutes les métadonnées doivent être interrogeables</strong> sans idée préconçue de la manière de les interroger ;</li><li>il faut pouvoir <strong>stocker et interroger des données hétérogènes et semi structurées</strong> ;</li><li>il faut disposer d’un <strong>système souple et standard indépendant d’une implémentation logicielle</strong> pour simplifier l’évolution du système et la réversibilité des technologies applicatives ;</li><li>Il faut pouvoir interroger de manière uniforme les métadonnées issues des paquets et les données de référence ;</li><li>il faut un <strong>langage de requêtes puissant, si possible standard, accessible à des experts de préservation non informaticiens</strong>.</li></ul>
  470. <p><strong>A l’époque (2008…), à l’issue de l’instruction, il s’est avéré que le modèle RDF et le langage de requêtes SPARQL constituaient la réponse la plus adéquate à toutes ces problématiques</strong>. Les bases de données relationnelles nous semblaient trop rigides et trop adhérentes à des logiciels particuliers. Les moteurs de recherche ne permettaient alors pas d’indexation en temps réel et posaient également problème parce qu’ils limitent l’interrogation à une entité unique. Quant aux bases de données documents, elles étaient balbutiantes ; encore aujourd’hui, elles n’offrent pas la même souplesse d’interrogation que SPARQL. Nous avons donc décidé d’implémenter <strong>l’ensemble du module “Gestion des données” avec le modèle RDF et d’exposer un sparql endpoint en guise d’API</strong>. Pour ce faire, nous avons déployé le <a href="http://vos.openlinksw.com/owiki/wiki/VOS">logiciel Virtuoso</a> qui faisait ses preuves depuis deux ans pour <a href="https://dbpedia.org">Dbpedia</a>.</p>
  471. <p>En premier lieu, il a fallu <strong>monter en compétence</strong> mes collègues d’Atos et les équipes de la BnF dont c’était la première expérience dans le domaine. Il a fallu ensuite créer le modèle de données, l’ontologie, puis étrenner, tester et éprouver la technologie. Et c’est là que sont apparus les premiers problèmes. <strong>Le modèle s’est bien avéré aussi souple que prévu et l’expressivité du langage de requête à la hauteur. Mais les performances et la montée en charge n’étaient pas au rendez-vous.</strong> Comme les avantages constatés étaient plus importants que les inconvénients, nous avons poursuivi dans cette voie. </p>
  472. <p><span><img alt="" src="http://www.lespetitescases.net/files/image21.png" title="Modèle de données de SPAR"/></span><br/><span class="c10 c7">Modèle de données de SPAR</span></p>
  473. <p>Nous avons alors complexifié l’architecture avec le déploiement de <strong>plusieurs instances contenant différents ensembles de métadonnées en fonction des usages</strong>, dont une instance contenant toutes les métadonnées à indexer. Nous avons par ailleurs effectué un travail sur le volume de métadonnées indexées en les limitant à celles qui ne paraissaient pas redondantes. <span class="c14">Last but not least</span>, il s’avère que <strong>l’instance contenant l’ensemble des métadonnées a un nombre d’utilisateurs très limités</strong> (grosso modo on les compte sur les doigts des deux mains ;) ).</p>
  474. <p><span><img alt="" src="http://www.lespetitescases.net/files/image13.png" title=""/></span><br/><span class="c10 c7">Contenu des trois entrepôts constituant le module “Gestion des données” de SPAR</span></p>
  475. <p><strong>Dix ans après, le système est toujours en place</strong>, la BnF est passée de la version libre (et gratuite) de Virtuoso à la version payante pour assurer la montée en charge et, d’après les échos que j’en ai, reste convaincue de ce choix. Pour ma part, j’en retiens d’abord un <strong>pari un peu fou</strong> (nous sommes quelques uns à avoir passé des nuits agitées à nous demander si c’était la bonne solution…). Si le problème de la vitesse de réponse et du nombre d’utilisateurs n’étaient pas un enjeu sur ce projet, j’en suis sorti convaincu qu’il semblait <strong>difficile d’imaginer un service en production avec un grand nombre d’utilisateurs et/ou de données, construit directement sur une base de données RDF interrogeable avec SPARQL</strong>. </p>
  476. <p>Est-ce-que je préconiserais la même architecture aujourd’hui ? Je continue de penser que le <strong>graphe est le bon modèle pour répondre aux besoins de souplesse du modèle de données et d’expressivité des requêtes nécessaires à un tel système</strong>. J’aurais donc tendance à penser que le couple RDF-SPARQL reste le bon choix. Pour autant, j’étudierais les autres bases de données graphes basés sur le modèle de Property graph, en particulier celles utilisant le <a href="http://tinkerpop.apache.org/">framework Tinkerpop</a> et j’en <strong>limiterais l’usage à la base qui stocke l’ensemble des métadonnées</strong>. En effet, je <strong>complèterais l’architecture avec un moteur de recherche</strong> du type Solr ou ElasticSearch avec un index orienté “paquet” et un autre pour les référentiels afin d’offrir une recherche plus réactive.</p>
  477. <h2 id="h.spibpn3pneij">Le projet Isidore</h2>
  478. <p><a href="https://www.rechercheisidore.fr/">Isidore</a> est un projet conduit par <a href="https://www.huma-num.fr/">la très grande infrastructure de recherche Huma-Num</a> (anciennement <a href="https://web.archive.org/web/20100212221328/http://www.tge-adonis.fr">Très grand équipement Adonis</a>) qui vise à offrir une plateforme unifiée de recherche dans les différentes ressources développées par la recherche en sciences humaines et sociales. Ce <a href="https://www.huma-num.fr/services-et-outils/signaler">projet</a>, démarré en 2008, a été <a href="http://25images.ish-lyon.cnrs.fr/tge_adonis-dec2010/video/isidore-plateforme-de-recherche-donnees-shs/fr">mis en ligne en décembre 2010</a>. Il <strong>donne accès aujourd’hui à presque 6 millions de ressources</strong> issues de plus de <a href="https://www.rechercheisidore.fr/annuaire">6400 sources de données</a>. </p>
  479. <p><span><img alt="" src="http://www.lespetitescases.net/files/image17.png" title=""/></span><br/><span class="c7">Macro-architecture d’Isidore issue de “</span><span class="c4 c7"><a href="http://25images.ish-lyon.cnrs.fr/data/TGE_Adonis-dec2010/Antidot-Sword-Isidore-Valpre.ppt">ISIDORE, un grand projet d’ingénierie au cœur de l’avenir du web de données</a></span><span class="c10 c7">”, Fabrice Lacroix, Jean-Louis Villa et Bruno Perron</span></p>
  480. <p>Les <a href="https://www.slideshare.net/AntidotNet/isidore-linterface-de-la-rencontre-des-shs-et-du-web-de-donnes">technologies du Web sémantique interviennent à différents endroits dans ce projet</a> :</p>
  481. <ul class="c17 lst-kix_be204a8kmtws-0 start"><li>Isidore <strong>récupère les métadonnées</strong> et le contenu selon trois méthodes différentes, l’une d’entre elles consistant à utiliser <strong>le formalisme </strong><strong><a href="https://fr.wikipedia.org/wiki/RDFa">RDFa</a></strong>, qui permet d’intégrer des assertions RDF dans des pages Web, pour récupérer les métadonnées de pages web dont l’URL est indiqué via le<a href="https://www.sitemaps.org/index.html"> protocole Sitemap</a> ;</li><li>Les <strong>référentiels </strong>qui permettent d’effectuer les enrichissements sont <strong>exprimés en RDF</strong> et exploités comme tels ;</li><li><strong>L’ensemble des métadonnées</strong> récupérées des sources de données ou obtenues à partir des mécanismes d’enrichissement d’Isidore <strong>sont converties en RDF et stockées dans une base de données RDF à partir de laquelle elles sont exposées selon les </strong><strong><a href="https://www.w3.org/DesignIssues/LinkedData.html">principes du Linked Data</a></strong>.</li></ul>
  482. <p>En revanche, la mise en cohérence des différentes métadonnées récupérées se fait via le mapping de ces données sur un format pivot XML mis au point pour les besoins du projet.</p>
  483. <p>A l’époque, le choix d’intégrer les technologies du Web sémantique constituait un pari sur l’avenir à différents niveaux. Tout d’abord, nous étions convaincus des <strong>limites du protocole OAI-PMH</strong> pour exposer les données : </p>
  484. <ul><li>impossibilité d’exprimer différentes granularités ce qui a pour conséquence de mettre au même niveau des entités disparates ;</li><li>limitation de base de la description au Dublin Core simple ;</li><li>utilisation du protocole HTTP non respectueuse de sa logique (le mécanisme d’erreur n’utilise pas les codes d’erreur adéquats, mécanisme de l’hypermedia non utilisé…).</li></ul>
  485. <p><strong>RDFa </strong>constituait à nos yeux un <strong><a href="http://blog.stephanepouyllau.org/624">moyen simple</a> pour <strong>accompagner les producteurs vers les technologies du Web sémantique et de dépasser les limites d’OAI-PMH</strong>, car cela permettait, avec un investissement qui nous paraissait limité, d’envisager une plus grande capacité de description en utilisant <a href="https://www.openarchives.org/ore/">OAI-ORE</a>, vocabulaire RDF apparu en 2008 et qui palliait aux limites d’OAI-PMH, et <a href="http://dublincore.org/documents/dcmi-terms/">Dublin Core terms</a>. </strong></p>
  486. <p>Par ailleurs, inspirés par les initiatives naissantes autour de l’Open Data, nous avons jugé essentiel de remettre à disposition les données. Plusieurs objectifs étaient visés :</p>
  487. <ul class="c17 lst-kix_fz6yegwd03cf-0 start"><li>en tant qu’initiative publique, <strong>faire preuve de transparence</strong> quant aux données utilisées pour constituer le moteur de recherche ;</li><li><strong>remettre à disposition des producteurs</strong> (et, par extension, de tous) les enrichissements produits à partir de leurs données (génération d’un identifiant unique Handle, classification des ressources, annotation automatique avec des référentiels…) dans une logique de contre-don ;</li><li><strong>accompagner la recherche en SHS dans son appropriation des technologies du Web sémantique</strong>.</li></ul>
  488. <p><span><img alt="" src="http://www.lespetitescases.net/files/image3.png" title=""/></span><br/><span class="c7">Boucle de rétroaction de la mise à disposition des données d’Isidore<br/></span><span class="c4 c7"><a href="https://www.slideshare.net/AntidotNet/isidore-linterface-de-la-rencontre-des-shs-et-du-web-de-donnes">Isidore à l’interface de la rencontre entre des SHS et du Web de données</a></span><span class="c10 c7">, Gautier Poupeau, CC-BY</span></p>
  489. <p>Je ne suis pas le mieux placé pour tirer le bilan de ces différents paris. Avec le recul (de temps mais aussi de position), j’ai l’impression qu’<strong>ils sont à moitié tenus</strong>. Les choix étaient certainement les bons à l’époque. Ils ont eu le mérite de servir d’exemple pour <strong>faire avancer la </strong><strong><a href="https://m.rechercheisidore.fr/">réflexion</a></strong><strong> autour de la réutilisation de données exposées, de l’usage des technologies du Web sémantique et, plus généralement, de l’interopérabilité des données de la recherche</strong>. Mais, force est de constater que les réutilisations de ces données sont assez faibles. Outre la nature des données qui ne se prête pas forcément à la réutilisation (quoique…), leur <strong>exploitation demande une courbe d’apprentissage qui n’est pas évidente</strong>. Or, <strong>les chercheurs veulent des choses simples et accessibles</strong>. Clarisse Bardiot, professeur d’histoire de l’art à l’université de Valenciennes, l’explique clairement dans ce <a href="https://dorradh.hypotheses.org/66">billet</a>. Lors de la <a href="https://youtu.be/WDpXvKTcgaQ">table ronde</a> pendant la<a href="https://www.youtube.com/playlist?list=PLayqwLSo_nPUV6Qj_O2LghU5ew0SD9YmH"> journée d’étude </a>organisée l’an dernier par <a href="https://www.ademec.com">l’ADEMEC</a> autour des rapports entre recherche et institutions patrimoniales,<a href="https://twitter.com/RLapotre"> Raphaëlle Lapotre</a>, chef de produit de <a href="http://data.bnf.fr/">data.bnf.fr</a>, <a href="https://youtu.be/WDpXvKTcgaQ?t=1h35m58s">ne dit pas autre chose</a> :</p>
  490. <blockquote><p>« on entre surtout en contact avec les chercheurs quand ça se passe mal avec les données et ça se passe souvent mal pour plusieurs raisons. Mais, effectivement, il y a eu la question de ces fameux standards qui bouffent la vie des chercheurs [...] ils nous disent mais pourquoi vous balancez pas des csv plutôt que de vous embêter avec vos affaires de web sémantique. »</p></blockquote>
  491. <p><strong>C’est un constat général dans le monde de l’Open Data, même si cela se justifie (ici l’interopérabilité) : plus les données se révèlent complexes à exploiter et moins elles font l’objet de réutilisation.</strong> </p>
  492. <p>Quant à RDFa, ce <strong>formalisme s’est avéré bien plus complexe que prévu à manipuler</strong>. De plus, il n’existait à l’époque aucune initiative ou de standard de vocabulaire pour structurer ces données de manière uniforme. Nous avions préconisé le Dublin Core terms, car cela nous paraissait le plus approprié au regard du type de données. Depuis, <a href="https://schema.org/">Schema.org</a> (sur lequel je reviendrai) est apparu et peu à peu, le formalisme RDFa a laissé la place à <a href="https://json-ld.org/">Json-LD</a>. C’est bien évidemment vers ce couple que je m’orienterais aujourd’hui. Enfin, il faut constater que, malgré ses défauts, le <strong>protocole OAI-PMH reste le vecteur majoritaire par lequel Isidore récupère les données... victoire de la simplicité sur l’expressivité ?</strong> En tout cas, c’est une leçon à retenir alors qu’OAI-ORE fête ses 10 ans...</p>
  493. <h2 class="c3" id="h.w42pt28p358e">Du mashup de données…. </h2>
  494. <p>Dans <a href="https://www-sop.inria.fr/acacia/cours/essi2006/Scientific%2520American_%2520Feature%2520Article_%2520The%2520Semantic%2520Web_%2520May%25202001.pdf">l’article fondateur sur le Web sémantique paru en 2001</a> dans la revue <span class="c14">Scientifc American</span>, les trois auteurs, Tim Berners-Lee, <a href="https://en.wikipedia.org/wiki/Ora_Lassila">Ora Lassila</a> et <a href="https://en.wikipedia.org/wiki/James_Hendler">James Hendler</a>, illustrent leurs propos avec un exemple dans lequel un agent logiciel parcourt différentes sources de données disponibles sur le Web et les combine en temps réel pour aboutir à une prise de rendez-vous médical. Ce cas d’usage est censé démontrer les possibilités d’exposition et d’échange des données et la capacité des technologies du Web sémantique à mettre en relation des données hétérogènes pour en déduire une information. <strong>Décentralisation, interopérabilité, inférence constituent finalement les trois objectifs principaux du Web sémantique</strong> et cet exemple en est l’illustration. </p>
  495. <p>Sur le même modèle, il paraîtrait envisageable de mixer plusieurs sources de données hétérogènes exposées en RDF (ou non) pour créer des nouvelles applications dont les données seraient mises à jour en temps réel à partir des différentes sources données. C’est tout le principe des mashups de données.</p>
  496. <p>Pour autant, de la théorie à la pratique, il y a un gouffre qui complexifie largement l’exercice. J’en ai fait l’expérience en réalisant plusieurs mashups seul ou à <a href="https://twitter.com/julien_homo">plusieurs</a> avec les outils de l’éditeur <a href="http://www.antidot.net/">Antidot </a>lorsque j’en étais l’employé. Que ce soit celui sur les <a href="http://labs.antidot.net/monuments/">monuments historiques</a> ou celui sur les <a href="http://labs.antidot.net/museesdefrance/">musées </a>(qui nous a valu <a href="https://www.wikimedia.fr/2014/05/22/laureats-du-concours-semanticpedia/">le prix d’un concours organisé par le Ministère de la culture et l’association Wikimedia France</a> pour la promotion de Dbpedia France), le principe général et la place des technologies du Web sémantique sont les mêmes. Nous les utilisions dans deux perspectives différentes : </p>
  497. <ul><li>pour <strong>récupérer les sources exposées</strong> selon les principes du Linked Data ou à travers un sparql endpoint ;</li><li>pour <strong>faire la « glue » entre les sources de données hétérogènes en construisant un graphe</strong> lui même stocké dans une base de données RDF et à partir duquel nous construisions les fichiers XML à indexer dans le moteur de recherche.</li></ul>
  498. <p><span><img alt="" src="http://www.lespetitescases.net/files/image10.png" title=""/></span><br/><span class="c10 c7">Modèle de données du projet de mashup “Monuments historiques”</span></p>
  499. <p>La première <strong>différence </strong>qui saute aux yeux par rapport au cas d’usage exposé dans l’article de 2001 concerne la <strong>récupération des données</strong>. Dans l’état actuel des technologies et avec les problématiques de résilience du réseau, si vous souhaitez disposer d’une application disponible, rapide et scalable, vous devez récupérer les données de manière asynchrone, les traiter puis les stocker dans une base pour les exploiter localement. <strong>La promesse de décentralisation est largement écornée</strong> et cela oblige à mettre en place des mécanismes lourds pour effectuer la mise à jour des données qui ne peut se faire en temps réel. </p>
  500. <p>Au delà de la complexité intrinsèque et non liée à l’utilisation des technologies du Web sémantique de ce genre d’exercice pour préparer et mettre en cohérence les données, <strong>deux autres difficultés</strong> apparaissent rapidement de par l’architecture choisie :</p>
  501. <ul><li><strong>convertir toutes les sources de données en RDF</strong> et mettre au point pour cela un modèle de données capable de décrire toutes les données rapatriées ;</li><li><strong>convertir à nouveau les données stockées dans un formalisme (Json ou XML) exploitable par un moteur de recherche</strong>, les capacités de la base de données RDF étant limitées de ce point de vue.</li></ul>
  502. <p><span><img alt="" src="http://www.lespetitescases.net/files/image2.png" title=""/></span><br/><span class="c7">Macro-architecture de la chaîne de traitement pour le mashup “Monuments historiques”</span></p>
  503. <p>A bien y réfléchir, on peut douter de l’utilité de l’étape de conversion et de stockage en RDF. On pourrait passer directement de la phase de récupération au stockage dans le moteur de recherche via la préparation des données. L’intérêt principal de ce choix est de <strong>séparer la donnée et sa logique de la manière de l’exploiter</strong>. De cette manière, il est <strong>possible, simple et rapide de créer différentes vues centrées autour des différentes entités du modèle ou d’inventer de </strong><strong><a href="http://bbf.enssib.fr/consulter/bbf-2013-05-0052-013">nouvelles façons de naviguer dans la donnée en fonction de la manière de parcourir le graphe</a></strong>. évidemment, cela suppose que les réutilisateurs connaissent parfaitement la structure du graphe et maîtrisent les technologies du Web sémantique… </p>
  504. <p>Cette promesse de souplesse est parfaitement tenue. Mais, à l’issue du travail, quand vous faites le rapport entre le temps passé à développer et automatiser la conversion et le stockage en RDF et le temps gagné dans l’exploitation des données, <strong>le gain immédiat est inexistant voire en défaveur de ces technologies</strong>. <strong>Il ne se justifiera (peut-être) qu’avec le temps (sans garantie…) et la création réelle de différents usages</strong>...</p>
  505. <p>J’apprécie tout particulièrement cet exercice du mashup. Il est assez comparable au travail d’un cuisinier pour mettre au point un plat : il faut choisir les bons ingrédients, réfléchir à la manière de les travailler, les cuisiner et enfin effectuer le dressage. Ainsi, il fait intervenir toutes les composantes de la gestion des données : de la modélisation à la visualisation en passant par la récupération des données.</p>
  506. <p><span><img alt="" src="http://www.lespetitescases.net/files/image19.png" title=""/></span></p>
  507. <p>C’est la raison pour laquelle je donne depuis plusieurs années <a href="http://www.lespetitescases.net/realiser-mashup-donnees-Dataiku-DSS-Palladio">cet exercice</a> pour évaluer les étudiants du master “Technologies numériques appliquées à l’histoire” de l’Ecole nationale des chartes. Pour autant, <strong>leur utilisation des technologies du Web sémantique se “limite” à la récupération des données via des sparql endpoint</strong>. Je ne leur demande ni de stocker les données dans une base de données RDF, ni de réexposer les données. Pourquoi le leur demanderais-je ? Dans les deux cas, c’est une perte de temps qui ne se justifie pas (plus ?)...</p>
  508. <h2 id="h.nt93jfgchng">… au Linked enterprise Data</h2>
  509. <p>Libérer les données des silos existants, séparer les données des usages, lier et mettre en cohérence l’ensemble des sources de données afin de proposer de nouveaux usages et une nouvelle manière d’exploiter/explorer les données, actifs de l’organisation, le Linked Enterprise Data, concept que nous avons tenté de pousser chez Antidot, pourrait être assimilé à un mashup des données des <a href="http://www.christian-faure.net/2010/10/04/les-technologies-relationnelles-dans-les-systemes-dinformation/">systèmes d’informations “</a><a href="http://www.christian-faure.net/2010/10/04/les-technologies-relationnelles-dans-les-systemes-dinformation/">legacy” des organisations</a>. </p>
  510. <p><span><img alt="" src="http://www.lespetitescases.net/files/image15.png" title=""/></span><br/><span class="c7">Principe général du Linked Enterprise Data issu de<br/> “</span><span class="c4 c7"><a href="https://www.slideshare.net/AntidotNet/search-2012-big-data-et-crm-vers-une-autre-crm">Linked Enterprise Data, les données au coeur de l’entreprise</a></span><span class="c10 c7">”</span></p>
  511. <p>J’ai déjà eu l’occasion dans un <a href="http://www.lespetitescases.net/bilan-reflexion-sur-la-gestion-des-donnees-numeriques">précédent billet</a> d’exposer les difficultés auxquels a été confrontée cette vision : </p>
  512. <ul class="c17 lst-kix_em6vnpmm71tz-0 start"><li><strong>problème de scalabilité </strong>et de performance ;</li><li><strong>complexité </strong>à sortir les données des silos et à les <strong>convertir en RDF</strong> ;</li><li><strong>désintérêt des organisations</strong> pour la donnée elle-même et sa logique ;</li><li><strong>(il)légitimité</strong> réelle ou supposée des DSI <strong>à porter une vision transverse dans l’organisation</strong> ;</li><li><strong>limite du modèle RDF</strong> pour exprimer la provenance des informations et, plus généralement, difficulté à contextualiser le triplet ;</li><li><strong>absence de compétences des développeurs dans le domaine</strong>. </li></ul>
  513. <p>Cette dernière difficulté est certainement une des plus importantes, car elle conditionne la réalisation, la supervision et la maintenabilité de tels systèmes, ces deux dernières problématiques étant souvent négligées par les spécialistes de la construction de système d’information alors qu’elles sont fondamentales. Jamais un <strong>DSI ne s’orientera vers une solution dont il n’a pas la garantie de pouvoir dans le temps assurer le maintien en condition opérationnelle</strong>. </p>
  514. <p>Enfin, dans mon billet, j’ai oublié un point essentiel. Nous étions <strong>incapable de garantir un retour sur investissement (ROI)</strong>. En effet, on parle de « possibilité », « capacité », « souplesse » mais, une fois l’infrastructure mise en place, il faut alors construire les usages et le DSI n’est pas certain de la volonté du métier de s’emparer d’une telle plateforme pour construire de nouveaux usages ou rationaliser son système d’information. C’est un <strong>investissement qui ne se justifie que si, au démarrage du chantier, il existe soit une volonté de refonte globale du système d’information, soit un projet clairement identifié et suffisamment stratégique pour engager un chantier aussi lourd du côté du back-office</strong>. Quand vous voyez les projets de « data lake » qui se limitent bien souvent à déverser des données tabulaires dans un système de fichiers clusterisés sans réflexion sur la cohérence des données, leur structure et leur maîtrise, on peut légitimement remettre en question la capacité des DSI à investir dans ce genre de vision...  </p>
  515. </article>
  516. </section>
  517. <nav id="jumpto">
  518. <p>
  519. <a href="/david/blog/">Accueil du blog</a> |
  520. <a href="http://www.lespetitescases.net/les-technologies-du-web-semantique-entre-theorie-et-pratique">Source originale</a> |
  521. <a href="/david/stream/2019/">Accueil du flux</a>
  522. </p>
  523. </nav>
  524. <footer>
  525. <div>
  526. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  527. <p>
  528. Bonjour/Hi!
  529. Je suis <a href="/david/" title="Profil public">David&nbsp;Larlet</a>, je vis actuellement à Montréal et j’alimente cet espace depuis 15 ans. <br>
  530. Si tu as apprécié cette lecture, n’hésite pas à poursuivre ton exploration. Par exemple via les <a href="/david/blog/" title="Expériences bienveillantes">réflexions bimestrielles</a>, la <a href="/david/stream/2019/" title="Pensées (dés)articulées">veille hebdomadaire</a> ou en t’abonnant au <a href="/david/log/" title="S’abonner aux publications via RSS">flux RSS</a> (<a href="/david/blog/2019/flux-rss/" title="Tiens c’est quoi un flux RSS ?">so 2005</a>).
  531. </p>
  532. <p>
  533. Je m’intéresse à la place que je peux avoir dans ce monde. En tant qu’humain, en tant que membre d’une famille et en tant qu’associé d’une coopérative. De temps en temps, je fais aussi des <a href="https://github.com/davidbgk" title="Principalement sur Github mais aussi ailleurs">trucs techniques</a>. Et encore plus rarement, <a href="/david/talks/" title="En ce moment je laisse plutôt la place aux autres">j’en parle</a>.
  534. </p>
  535. <p>
  536. Voici quelques articles choisis :
  537. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  538. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  539. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  540. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  541. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  542. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  543. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  544. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  545. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  546. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  547. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  548. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  549. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  550. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  551. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  552. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  553. </p>
  554. <p>
  555. On peut <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">échanger par courriel</a>. Si éventuellement tu souhaites que l’on travaille ensemble, tu devrais commencer par consulter le <a href="http://larlet.com">profil dédié à mon activité professionnelle</a> et/ou contacter directement <a href="http://scopyleft.fr/">scopyleft</a>, la <abbr title="Société coopérative et participative">SCOP</abbr> dont je fais partie depuis six ans. Je recommande au préalable de lire <a href="/david/blog/2018/cout-site/" title="Attention ce qui va suivre peut vous choquer">combien coûte un site</a> et pourquoi je suis plutôt favorable à une <a href="/david/pro/devis/" title="Discutons-en !">non-demande de devis</a>.
  556. </p>
  557. <p>
  558. Je ne traque pas ta navigation mais mon
  559. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  560. conserve des logs d’accès.
  561. </p>
  562. </div>
  563. </footer>
  564. <script type="text/javascript">
  565. ;(_ => {
  566. const jumper = document.getElementById('jumper')
  567. jumper.addEventListener('click', e => {
  568. e.preventDefault()
  569. const anchor = e.target.getAttribute('href')
  570. const targetEl = document.getElementById(anchor.substring(1))
  571. targetEl.scrollIntoView({behavior: 'smooth'})
  572. })
  573. })()
  574. </script>