Mapping bread wheat trait ontologies for semantic... | F1000Research "use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r 3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}(); dataLayer = dataLayer || []; // Standard GTM initialization - Google Consent Mode handles consent automatically (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl+ '>m_auth=hzk0Vc3qFsQYhCrIoHz68A>m_preview=env-1>m_cookies_win=x';f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MWFK8L5J'); ;window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]}}; ;NREUM.loader_config={accountID:"438030",trustKey:"438030",agentID:"772317073",licenseKey:"97f8f67f26",applicationID:"772317073"} ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"97f8f67f26",applicationID:"772317073",sa:1} ;/*! For license information please see nr-loader-spa-1.236.0.min.js.LICENSE.txt */ (()=>{"use strict";var e,t,r={5763:(e,t,r)=>{r.d(t,{P_:()=>l,Mt:()=>g,C5:()=>s,DL:()=>v,OP:()=>T,lF:()=>D,Yu:()=>y,Dg:()=>h,CX:()=>c,GE:()=>b,sU:()=>_});var n=r(8632),i=r(9567);const o={beacon:n.ce.beacon,errorBeacon:n.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.D)(t,o),(0,n.Qy)(e,a[e],"info")}var u=r(7056);const d=()=>{const e={blockSelector:"[data-nr-block]",maskInputOptions:{password:!0}};return{allow_bfcache:!0,privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,enabled:!0,harvestTimeSeconds:10},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:u.oD,inactiveMs:u.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10},metrics:{enabled:!0},page_action:{enabled:!0,harvestTimeSeconds:30},page_view_event:{enabled:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1},session_trace:{enabled:!0,harvestTimeSeconds:10},harvest:{tooManyRequestsDelay:60},session_replay:{enabled:!1,harvestTimeSeconds:60,sampleRate:.1,errorSampleRate:.1,maskTextSelector:"*",maskAllInputs:!0,get blockClass(){return"nr-block"},get ignoreClass(){return"nr-ignore"},get maskTextClass(){return"nr-mask"},get blockSelector(){return e.blockSelector},set blockSelector(t){e.blockSelector+=",".concat(t)},get maskInputOptions(){return e.maskInputOptions},set maskInputOptions(t){e.maskInputOptions={...t,password:!0}}},spa:{enabled:!0,harvestTimeSeconds:10}}},f={};function l(e){if(!e)throw new Error("All configuration objects require an agent identifier!");if(!f[e])throw new Error("Configuration for ".concat(e," was never set"));return f[e]}function h(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");f[e]=(0,i.D)(t,d()),(0,n.Qy)(e,f[e],"config")}function g(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");var r=l(e);if(r){for(var n=t.split("."),i=0;i {r.d(t,{D:()=>i});var n=r(50);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.Z)("Setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,n.Z)("Setting a Configurable requires a model to set its initial properties");const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.Z)("An error occurred while setting a property of a Configurable",e)}return r}catch(e){(0,n.Z)("An error occured while setting a Configurable",e)}}},6818:(e,t,r)=>{r.d(t,{Re:()=>i,gF:()=>o,q4:()=>n});const n="1.236.0",i="PROD",o="CDN"},385:(e,t,r)=>{r.d(t,{FN:()=>a,IF:()=>u,Nk:()=>f,Tt:()=>s,_A:()=>o,il:()=>n,pL:()=>c,v6:()=>i,w1:()=>d});const n="undefined"!=typeof window&&!!window.document,i="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=n?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=""+o?.location,s=/iPad|iPhone|iPod/.test(navigator.userAgent),c=s&&"undefined"==typeof SharedWorker,u=(()=>{const e=navigator.userAgent.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),d=Boolean(n&&window.document.documentMode),f=!!navigator.sendBeacon},1117:(e,t,r)=>{r.d(t,{w:()=>o});var n=r(50);const i={agentIdentifier:"",ee:void 0};class o{constructor(e){try{if("object"!=typeof e)return(0,n.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,r]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)("An error occured while setting SharedContext",e)}}}},8e3:(e,t,r)=>{r.d(t,{L:()=>d,R:()=>c});var n=r(2177),i=r(1284),o=r(4322),a=r(3325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function u(e){e&&(s[e]||(s[e]=new Map))}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature";if(u(e),!e||!s[e].get(t))return a(t);s[e].get(t).staged=!0;const r=[...s[e]];function a(t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog&&a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s&&u {let[t,r]=e;return r.staged}))&&(r.sort(((e,t)=>e[1].priority-t[1].priority)),r.forEach((e=>{let[t]=e;a(t)})))}function f(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},2177:(e,t,r)=>{r.d(t,{c:()=>f,ee:()=>u});var n=r(8632),i=r(2210),o=r(1284),a=r(5763),s="nr@context";let c=(0,n.fP)();var u;function d(){}function f(e){return(0,i.X)(e,s,l)}function l(){return new d}function h(){u.aborted=!0,u.backlog={}}c.ee?u=c.ee:(u=function e(t,r){var n={},c={},f={},g=!1;try{g=16===r.length&&(0,a.OP)(r).isolatedBacklog}catch(e){}var p={on:b,addEventListener:b,removeEventListener:y,emit:v,get:x,listeners:w,context:m,buffer:A,abort:h,aborted:!1,isBuffering:E,debugId:r,backlog:g?{}:t&&"object"==typeof t.backlog?t.backlog:{}};return p;function m(e){return e&&e instanceof d?e:e?(0,i.X)(e,s,l):l()}function v(e,r,n,i,o){if(!1!==o&&(o=!0),!u.aborted||i){t&&o&&t.emit(e,r,n);for(var a=m(n),s=w(e),d=s.length,f=0;fn,p:()=>i});var n=r(2177).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4322:(e,t,r)=>{r.d(t,{X:()=>o});var n=r(5546);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3239:(e,t,r)=>{r.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var n=r(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener("test",null,e),n._A.removeEventListener("test",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(r,n))}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(r,n))}},4402:(e,t,r)=>{r.d(t,{Ht:()=>u,M:()=>c,Rl:()=>a,ky:()=>s});var n=r(385);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n._A?.crypto||n._A?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(31))),i.split("").map((e=>"x"===e?o(t,++r).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n._A?.crypto||n._A?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(31)));const a=[];for(var s=0;s {r.d(t,{Bq:()=>n,Hb:()=>o,oD:()=>i});const n="NRBA",i=144e5,o=18e5},7894:(e,t,r)=>{function n(){return Math.round(performance.now())}r.d(t,{z:()=>n})},7243:(e,t,r)=>{r.d(t,{e:()=>o});var n=r(385),i={};function o(e){if(e in i)return i[e];if(0===(e||"").indexOf("data:"))return{protocol:"data"};let t;var r=n._A?.location,o={};if(n.il)t=document.createElement("a"),t.href=e;else try{t=new URL(e,r.href)}catch(e){return o}o.port=t.port;var a=t.href.split("://");!o.port&&a[1]&&(o.port=a[1].split("/")[0].split("@").pop().split(":")[1]),o.port&&"0"!==o.port||(o.port="https"===a[0]?"443":"80"),o.hostname=t.hostname||r.hostname,o.pathname=t.pathname,o.protocol=a[0],"/"!==o.pathname.charAt(0)&&(o.pathname="/"+o.pathname);var s=!t.protocol||":"===t.protocol||t.protocol===r.protocol,c=t.hostname===r.hostname&&t.port===r.port;return o.sameOrigin=s&&(!t.hostname||c),"/"===o.pathname&&(i[e]=o),o}},50:(e,t,r)=>{function n(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},2587:(e,t,r)=>{r.d(t,{N:()=>c,T:()=>u});var n=r(2177),i=r(5546),o=r(8e3),a=r(3325);const s={stn:[a.D.sessionTrace],err:[a.D.jserrors,a.D.metrics],ins:[a.D.pageAction],spa:[a.D.spa],sr:[a.D.sessionReplay,a.D.sessionTrace]};function c(e,t){const r=n.ee.get(t);e&&"object"==typeof e&&(Object.entries(e).forEach((e=>{let[t,n]=e;void 0===u[t]&&(s[t]?s[t].forEach((e=>{n?(0,i.p)("feat-"+t,[],void 0,e,r):(0,i.p)("block-"+t,[],void 0,e,r),(0,i.p)("rumresp-"+t,[Boolean(n)],void 0,e,r)})):n&&(0,i.p)("feat-"+t,[],void 0,void 0,r),u[t]=Boolean(n))})),Object.keys(s).forEach((e=>{void 0===u[e]&&(s[e]?.forEach((t=>(0,i.p)("rumresp-"+e,[!1],void 0,t,r))),u[e]=!1)})),(0,o.L)(t,a.D.pageViewEvent))}const u={}},2210:(e,t,r)=>{r.d(t,{X:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,r)=>{r.d(t,{D:()=>n});const n=(e,t)=>Object.entries(e||{}).map((e=>{let[r,n]=e;return t(r,n)}))},4351:(e,t,r)=>{r.d(t,{P:()=>o});var n=r(2177);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}}}},3960:(e,t,r)=>{r.d(t,{K:()=>a,b:()=>o});var n=r(3239);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)("load",e,t)}function a(e){if(i())return e();(0,n.iz)("DOMContentLoaded",e)}},8632:(e,t,r)=>{r.d(t,{EZ:()=>u,Qy:()=>c,ce:()=>o,fP:()=>a,gG:()=>d,mF:()=>s});var n=r(7894),i=r(385);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t,r){let i=a();const o=i.initializedAgents||{},s=o[e]||{};return Object.keys(s).length||(s.initializedAt={ms:(0,n.z)(),date:new Date}),i.initializedAgents={...o,[e]:{...s,[r]:t}},i}function u(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},7956:(e,t,r)=>{r.d(t,{N:()=>i});var n=r(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;return void(0,n.iz)("visibilitychange",(function(){if(t)return void("hidden"==document.visibilityState&&e());e(document.visibilityState)}),r,i)}},1214:(e,t,r)=>{r.d(t,{em:()=>v,u5:()=>N,QU:()=>S,_L:()=>I,Gm:()=>L,Lg:()=>M,gy:()=>U,BV:()=>Q,Kf:()=>ee});var n=r(2177);const i="nr@original";var o=Object.prototype.hasOwnProperty,a=!1;function s(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");var a,s,c,u="-"===n.charAt(0);for(c=0;c 2?n-2:0),o=2;o {r(A[T],e,w),r(E[T],e,w)})),r(l._A,"fetch",y),t.on(y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(y+"done",[null,r],n)}else t.emit(y+"done",[e],n)})),t}const O={},j=["pushState","replaceState"];function S(e){const t=function(e){return(e||n.ee).get("history")}(e);return!l.il||O[t.debugId]++||(O[t.debugId]=1,s(t).inPlace(window.history,j,"-")),t}var P=r(3239);const C={},R=["appendChild","insertBefore","replaceChild"];function I(e){const t=function(e){return(e||n.ee).get("jsonp")}(e);if(!l.il||C[t.debugId])return t;C[t.debugId]=!0;var r=s(t),i=/[?&](?:callback|cb)=([^&#]+)/,o=/(.*)\.([^.]+)/,a=/^(\w+)(\.|$)(.*)$/;function c(e,t){var r=e.match(a),n=r[1],i=r[3];return i?c(i,t[n]):t[n]}return r.inPlace(Node.prototype,R,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var n=(a=e.src,s=a.match(i),s?s[1]:null);var a,s;if(!n)return;var u=function(e){var t=e.match(o);if(t&&t.length>=3)return{key:t[2],parent:c(t[1],window)};return{key:e,parent:window}}(n);if("function"!=typeof u.parent[u.key])return;var d={};function f(){t.emit("jsonp-end",[],d),e.removeEventListener("load",f,(0,P.m$)(!1)),e.removeEventListener("error",l,(0,P.m$)(!1))}function l(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",f,(0,P.m$)(!1)),e.removeEventListener("error",l,(0,P.m$)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",f,(0,P.m$)(!1)),e.addEventListener("error",l,(0,P.m$)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}var k=r(5763);const H={};function L(e){const t=function(e){return(e||n.ee).get("mutation")}(e);if(!l.il||H[t.debugId])return t;H[t.debugId]=!0;var r=s(t),i=k.Yu.MO;return i&&(window.MutationObserver=function(e){return this instanceof i?new i(r(e,"fn-")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype),t}const z={};function M(e){const t=function(e){return(e||n.ee).get("promise")}(e);if(z[t.debugId])return t;z[t.debugId]=!0;var r=n.c,o=s(t),a=k.Yu.PR;return a&&function(){function e(r){var n=t.context(),i=o(r,"executor-",n,null,!1);const s=Reflect.construct(a,[i],e);return t.context(s).getCtx=function(){return n},s}l._A.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return a.toString()},Object.setPrototypeOf(e,a),["all","race"].forEach((function(r){const n=a[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=a[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=a.prototype;const n=a.prototype.then;a.prototype.then=function(){var e=this,i=r(e);i.promise=e;for(var a=arguments.length,s=new Array(a),c=0;c e())),t};function m(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}function b(){var e=this,t=r.context(e);e.readyState>3&&!t.resolved&&(t.resolved=!0,r.emit("xhr-resolved",[],e)),i.inPlace(e,f,"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,p),p.prototype=o.prototype,i.inPlace(p.prototype,J,"-xhr-",E),r.on("send-xhr-start",(function(e,t){m(e,t),function(e){h.push(e),a&&(y?y.then(A):u?u(A):(w=-w,x.data=w))}(t)})),r.on("open-xhr-start",m),a){var y=c&&c.resolve();if(!u&&!c){var w=1,x=document.createTextNode(w);new a(A).observe(x,{characterData:!0})}}else t.on("fn-end",(function(e){e[0]&&e[0].type===d||A()}));function A(){for(var e=0;e {r.d(t,{t:()=>n});const n=r(3325).D.ajax},6660:(e,t,r)=>{r.d(t,{A:()=>i,t:()=>n});const n=r(3325).D.jserrors,i="nr@seenError"},3081:(e,t,r)=>{r.d(t,{gF:()=>o,mY:()=>i,t9:()=>n,vz:()=>s,xS:()=>a});const n=r(3325).D.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},4649:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageAction},7633:(e,t,r)=>{r.d(t,{Dz:()=>i,OJ:()=>a,qw:()=>o,t9:()=>n});const n=r(3325).D.pageViewEvent,i="firstbyte",o="domcontent",a="windowload"},9251:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageViewTiming},3614:(e,t,r)=>{r.d(t,{BST_RESOURCE:()=>i,END:()=>s,FEATURE_NAME:()=>n,FN_END:()=>u,FN_START:()=>c,PUSH_STATE:()=>d,RESOURCE:()=>o,START:()=>a});const n=r(3325).D.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState"},7836:(e,t,r)=>{r.d(t,{BODY:()=>A,CB_END:()=>E,CB_START:()=>u,END:()=>x,FEATURE_NAME:()=>i,FETCH:()=>_,FETCH_BODY:()=>v,FETCH_DONE:()=>m,FETCH_START:()=>p,FN_END:()=>c,FN_START:()=>s,INTERACTION:()=>l,INTERACTION_API:()=>d,INTERACTION_EVENTS:()=>o,JSONP_END:()=>b,JSONP_NODE:()=>g,JS_TIME:()=>T,MAX_TIMER_BUDGET:()=>a,REMAINING:()=>f,SPA_NODE:()=>h,START:()=>w,originalSetTimeout:()=>y});var n=r(5763);const i=r(3325).D.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",f="remaining",l="interaction",h="spaNode",g="jsonpNode",p="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=n.Yu.ST,w="-start",x="-end",A="-body",E="cb"+x,T="jsTime",_="fetch"},5938:(e,t,r)=>{r.d(t,{W:()=>o});var n=r(5763),i=r(2177);class o{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=i.ee.get(e,(0,n.OP)(this.agentIdentifier).isolatedBacklog),this.featureName=r,this.blocked=!1}}},9144:(e,t,r)=>{r.d(t,{j:()=>m});var n=r(3325),i=r(5763),o=r(5546),a=r(2177),s=r(7894),c=r(8e3),u=r(3960),d=r(385),f=r(50),l=r(3081),h=r(8632);function g(){const e=(0,h.gG)();["setErrorHandler","finished","addToTrace","inlineHit","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId"].forEach((t=>{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i 1?r-1:0),i=1;i {e.exposed&&e.api[t]&&o.push(e.api[t](...n))})),o.length>1?o:o[0]}(t,...n)}}))}var p=r(2587);function m(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=arguments.length>2?arguments[2]:void 0,v=arguments.length>3?arguments[3]:void 0,{init:b,info:y,loader_config:w,runtime:x={loaderType:m},exposed:A=!0}=t;const E=(0,h.gG)();y||(b=E.init,y=E.info,w=E.loader_config),(0,i.Dg)(e,b||{}),(0,i.GE)(e,w||{}),(0,i.sU)(e,x),y.jsAttributes??={},d.v6&&(y.jsAttributes.isWorker=!0),(0,i.CX)(e,y),g();const T=function(e,t){t||(0,c.R)(e,"api");const h={};var g=a.ee.get(e),p=g.get("tracer"),m="api-",v=m+"ixn-";function b(t,r,n,o){const a=(0,i.C5)(e);return null===r?delete a.jsAttributes[t]:(0,i.CX)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),x(m,n,!0,o||null===r?"session":void 0)(t,r)}function y(){}["setErrorHandler","finished","addToTrace","inlineHit","addRelease"].forEach((e=>h[e]=x(m,e,!0,"api"))),h.addPageAction=x(m,"addPageAction",!0,n.D.pageAction),h.setCurrentRouteName=x(m,"routeName",!0,n.D.spa),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,i.OP)(e).customTransaction=(r||"http://custom.transaction")+t,x(m,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e){if(["string","number"].includes(typeof t)||null===t)return b(e,t,"setCustomAttribute",r);(0,f.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string or number type, but a type of was provided."))}else(0,f.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of was provided."))},h.setUserId=function(e){if("string"==typeof e||null===e)return b("enduser.id",e,"setUserId",!0);(0,f.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of was provided."))},h.interaction=function(){return(new y).get()};var w=y.prototype={createTracer:function(e,t){var r={},i=this,a="function"==typeof t;return(0,o.p)(v+"tracer",[(0,s.z)(),e,r],i,n.D.spa,g),function(){if(p.emit((a?"":"no-")+"fn-start",[(0,s.z)(),i,a],r),a)try{return t.apply(this,arguments)}catch(e){throw p.emit("fn-err",[arguments,this,"string"==typeof e?new Error(e):e],r),e}finally{p.emit("fn-end",[(0,s.z)()],r)}}}};function x(e,t,r,i){return function(){return(0,o.p)(l.xS,["API/"+t+"/called"],void 0,n.D.metrics,g),i&&(0,o.p)(e+t,[(0,s.z)(),...arguments],r?null:this,i,g),r?void 0:this}}function A(){r.e(439).then(r.bind(r,7438)).then((t=>{let{setAPI:r}=t;r(e),(0,c.L)(e,"api")})).catch((()=>(0,f.Z)("Downloading runtime APIs failed...")))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{w[e]=x(v,e,void 0,n.D.spa)})),h.noticeError=function(e,t){"string"==typeof e&&(e=new Error(e)),(0,o.p)(l.xS,["API/noticeError/called"],void 0,n.D.metrics,g),(0,o.p)("err",[e,(0,s.z)(),!1,t],void 0,n.D.jserrors,g)},d.il?(0,u.b)((()=>A()),!0):A(),h}(e,v);return(0,h.Qy)(e,T,"api"),(0,h.Qy)(e,A,"exposed"),(0,h.EZ)("activatedFeatures",p.T),T}},3325:(e,t,r)=>{r.d(t,{D:()=>n,p:()=>i});const n={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8,[n.sessionReplay]:9}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>(({78:"page_action-aggregate",147:"metrics-aggregate",242:"session-manager",317:"jserrors-aggregate",348:"page_view_timing-aggregate",412:"lazy-feature-loader",439:"async-api",538:"recorder",590:"session_replay-aggregate",675:"compressor",733:"session_trace-aggregate",786:"page_view_event-aggregate",873:"spa-aggregate",898:"ajax-aggregate"}[e]||e)+"."+{78:"ac76d497",147:"3dc53903",148:"1a20d5fe",242:"2a64278a",317:"49e41428",348:"bd6de33a",412:"2f55ce66",439:"30bd804e",538:"1b18459f",590:"cf0efb30",675:"ae9f91a8",733:"83105561",786:"06482edd",860:"03a8b7a5",873:"e6b09d52",898:"998ef92b"}[e]+"-1.236.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d {s.onerror=s.onload=null,clearTimeout(h);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},h=setTimeout(l.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=l.bind(null,s.onerror),s.onload=l.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.j=364,i.p="https://js-agent.newrelic.com/",(()=>{var e={364:0,953:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u {i.r(o);var e=i(3325),t=i(5763);const r=Object.values(e.D);function n(e){const n={};return r.forEach((r=>{n[r]=function(e,r){return!1!==(0,t.Mt)(r,"".concat(e,".enabled"))}(r,e)})),n}var a=i(9144);var s=i(5546),c=i(385),u=i(8e3),d=i(5938),f=i(3960),l=i(50);class h extends d.W{constructor(e,t,r){let n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,r),this.auto=n,this.abortHandler,this.featAggregate,this.onAggregateImported,n&&(0,u.R)(e,r)}importAggregator(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate||!this.auto)return;const r=c.il&&!0===(0,t.Mt)(this.agentIdentifier,"privacy.cookies_enabled");let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let t;try{if(r){const{setupAgentSession:e}=await Promise.all([i.e(860),i.e(242)]).then(i.bind(i,3228));t=e(this.agentIdentifier)}}catch(e){(0,l.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.",e)}try{if(!this.shouldImportAgg(this.featureName,t))return void(0,u.L)(this.agentIdentifier,this.featureName);const{lazyFeatureLoader:r}=await i.e(412).then(i.bind(i,8582)),{Aggregate:o}=await r(this.featureName,"aggregate");this.featAggregate=new o(this.agentIdentifier,this.aggregator,e),n(!0)}catch(e){(0,l.Z)("Downloading and initializing ".concat(this.featureName," failed..."),e),this.abortHandler?.(),n(!1)}};c.il?(0,f.b)((()=>o()),!0):o()}shouldImportAgg(r,n){return r!==e.D.sessionReplay||!1!==(0,t.Mt)(this.agentIdentifier,"session_trace.enabled")&&(!!n?.isNew||!!n?.state.sessionReplay)}}var g=i(7633),p=i(7894);class m extends h{static featureName=g.t9;constructor(r,n){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(r,n,g.t9,i),("undefined"==typeof PerformanceNavigationTiming||c.Tt)&&"undefined"!=typeof PerformanceTiming){const n=(0,t.OP)(r);n[g.Dz]=Math.max(Date.now()-n.offset,0),(0,f.K)((()=>n[g.qw]=Math.max((0,p.z)()-n[g.Dz],0))),(0,f.b)((()=>{const t=(0,p.z)();n[g.OJ]=Math.max(t-n[g.Dz],0),(0,s.p)("timing",["load",t],void 0,e.D.pageViewTiming,this.ee)}))}this.importAggregator()}}var v=i(1117),b=i(1284);class y extends v.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,b.D)(e,(function(e,r){t[e]=w(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,b.D)(r,(function(e,t){if("count"!==e){var n=a[e],i=r[e];i&&!i.c?a[e]=w(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=x(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=w(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n&&(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r="",n=!1,i=0;i t.max&&(t.max=e),e 2&&void 0!==arguments[2])||arguments[2];super(e,r,j.t,n),c.il&&((0,t.OP)(e).initHidden=Boolean("hidden"===document.visibilityState),(0,N.N)((()=>(0,s.p)("docHidden",[(0,p.z)()],void 0,j.t,this.ee)),!0),(0,O.bP)("pagehide",(()=>(0,s.p)("winPagehide",[(0,p.z)()],void 0,j.t,this.ee))),this.importAggregator())}}var P=i(3081);class C extends h{static featureName=P.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,P.t9,r),this.importAggregator()}}var R,I=i(2210),k=i(1214),H=i(2177),L={};try{R=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(L.console=!0,-1!==R.indexOf("dev")&&(L.dev=!0),-1!==R.indexOf("nr_dev")&&(L.nrDev=!0))}catch(e){}function z(e){try{L.console&&z(e)}catch(e){}}L.nrDev&&H.ee.on("internal-error",(function(e){z(e.stack)})),L.dev&&H.ee.on("fn-err",(function(e,t,r){z(r.stack)})),L.dev&&(z("NR AGENT IN DEVELOPMENT MODE"),z("flags: "+(0,b.D)(L,(function(e,t){return e})).join(", ")));var M=i(6660);class B extends h{static featureName=M.t;constructor(r,n){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(r,n,M.t,i),this.skipNext=0;try{this.removeOnAbort=new AbortController}catch(e){}const o=this;o.ee.on("fn-start",(function(e,t,r){o.abortHandler&&(o.skipNext+=1)})),o.ee.on("fn-err",(function(t,r,n){o.abortHandler&&!n[M.A]&&((0,I.X)(n,M.A,(function(){return!0})),this.thrown=!0,(0,s.p)("err",[n,(0,p.z)()],void 0,e.D.jserrors,o.ee))})),o.ee.on("fn-end",(function(){o.abortHandler&&!this.thrown&&o.skipNext>0&&(o.skipNext-=1)})),o.ee.on("internal-error",(function(t){(0,s.p)("ierr",[t,(0,p.z)(),!0],void 0,e.D.jserrors,o.ee)})),this.origOnerror=c._A.onerror,c._A.onerror=this.onerrorHandler.bind(this),c._A.addEventListener("unhandledrejection",(t=>{const r=function(e){let t="Unhandled Promise Rejection: ";if(e instanceof Error)try{return e.message=t+e.message,e}catch(t){return e}if(void 0===e)return new Error(t);try{return new Error(t+(0,D.P)(e))}catch(e){return new Error(t)}}(t.reason);(0,s.p)("err",[r,(0,p.z)(),!1,{unhandledPromiseRejection:1}],void 0,e.D.jserrors,this.ee)}),(0,O.m$)(!1,this.removeOnAbort?.signal)),(0,k.gy)(this.ee),(0,k.BV)(this.ee),(0,k.em)(this.ee),(0,t.OP)(r).xhrWrappable&&(0,k.Kf)(this.ee),this.abortHandler=this.#e,this.importAggregator()}#e(){this.removeOnAbort?.abort(),this.abortHandler=void 0}onerrorHandler(t,r,n,i,o){"function"==typeof this.origOnerror&&this.origOnerror(...arguments);try{this.skipNext?this.skipNext-=1:(0,s.p)("err",[o||new F(t,r,n),(0,p.z)()],void 0,e.D.jserrors,this.ee)}catch(t){try{(0,s.p)("ierr",[t,(0,p.z)(),!0],void 0,e.D.jserrors,this.ee)}catch(e){}}return!1}}function F(e,t,r){this.message=e||"Uncaught error with no additional information",this.sourceURL=t,this.line=r}let U=1;const q="nr@id";function G(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===c._A?0:(0,I.X)(e,q,(function(){return U++}))}function V(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,D.P)(e).length}catch(e){return}}}var X=i(7243);class W{constructor(e){this.agentIdentifier=e,this.generateTracePayload=this.generateTracePayload.bind(this),this.shouldGenerateTrace=this.shouldGenerateTrace.bind(this)}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var r=(0,t.DL)(this.agentIdentifier);if(!r)return null;var n=(r.accountID||"").toString()||null,i=(r.agentID||"").toString()||null,o=(r.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,_.M)(),s=(0,_.Ht)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof c._A?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,D.P)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var r=!1,n={};if((0,t.Mt)(this.agentIdentifier,"distributed_tracing")&&(n=(0,t.P_)(this.agentIdentifier).distributed_tracing),e.sameOrigin)r=!0;else if(n.allowed_origins instanceof Array)for(var i=0;i 2&&void 0!==arguments[2])||arguments[2];super(r,n,Z.t,i),(0,t.OP)(r).xhrWrappable&&(this.dt=new W(r),this.handler=(e,t,r,n)=>(0,s.p)(e,t,r,n,this.ee),(0,k.u5)(this.ee),(0,k.Kf)(this.ee),function(r,n,i,o){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=E,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){_(t,e)}),(0,O.m$)(!1)),c.IF||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,O.m$)(!1))}function s(e){this.params={method:e[0]},T(this,e[1]),this.metrics={}}function u(e,n){var i=(0,t.DL)(r);i.xpid&&this.sameOrigin&&n.setRequestHeader("X-NewRelic-ID",i.xpid);var a=o.generateTracePayload(this.parsedOrigin);if(a){var s=!1;a.newrelicHeader&&(n.setRequestHeader("newrelic",a.newrelicHeader),s=!0),a.traceContextParentHeader&&(n.setRequestHeader("traceparent",a.traceContextParentHeader),a.traceContextStateHeader&&n.setRequestHeader("tracestate",a.traceContextStateHeader),s=!0),s&&(this.dt=a)}}function d(e,t){var r=this.metrics,i=e[0],o=this;if(r&&i){var a=V(i);a&&(r.txSize=a)}this.startTime=(0,p.z)(),this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof o.end)&&o.end(t)}catch(e){try{n.emit("internal-error",[e])}catch(e){}}};for(var s=0;s 1?e[1]=i:e.push(i)}else e[0]&&e[0].headers&&s(e[0].headers,n)&&(this.dt=n);function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function x(e,t){this.params={},this.metrics={},this.startTime=(0,p.z)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof Y?r=i.url:c._A?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),T(this,r);var o=(""+(i&&i instanceof Y&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.txSize=V(n.body)||0}function A(t,r){var n;this.endTime=(0,p.z)(),this.params||(this.params={}),this.params.status=r?r.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);var o={txSize:this.txSize,rxSize:n,duration:(0,p.z)()-this.startTime};i("xhr",[this.params,o,this.startTime,this.endTime,"fetch"],this,e.D.ajax)}function E(t){var r=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var o=0;o 2&&void 0!==arguments[2])||arguments[2];super(e,t,we.t,r),this.importAggregator()}}new class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,_.ky)(16);c._A?(this.agentIdentifier=t,this.sharedAggregator=new y({agentIdentifier:this.agentIdentifier}),this.features={},this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(m),Object.assign(this,(0,a.j)(this.agentIdentifier,e,e.loaderType||"agent")),this.start()):(0,l.Z)("Failed to initial the agent. Could not determine the runtime environment.")}get config(){return{info:(0,t.C5)(this.agentIdentifier),init:(0,t.P_)(this.agentIdentifier),loader_config:(0,t.DL)(this.agentIdentifier),runtime:(0,t.OP)(this.agentIdentifier)}}start(){const t="features";try{const r=n(this.agentIdentifier),i=[...this.desiredFeatures];i.sort(((t,r)=>e.p[t.featureName]-e.p[r.featureName])),i.forEach((t=>{if(r[t.featureName]||t.featureName===e.D.pageViewEvent){const n=function(t){switch(t){case e.D.ajax:return[e.D.jserrors];case e.D.sessionTrace:return[e.D.ajax,e.D.pageViewEvent];case e.D.sessionReplay:return[e.D.sessionTrace];case e.D.pageViewTiming:return[e.D.pageViewEvent];default:return[]}}(t.featureName);n.every((e=>r[e]))||(0,l.Z)("".concat(t.featureName," is enabled but one or more dependent features has been disabled (").concat((0,D.P)(n),"). This may cause unintended consequences or missing data...")),this.features[t.featureName]=new t(this.agentIdentifier,this.sharedAggregator)}})),(0,T.Qy)(this.agentIdentifier,this.features,t)}catch(e){(0,l.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",e);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,T.fP)();return delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.[t],delete this.sharedAggregator,r.ee?.abort(),delete r.ee?.get(this.agentIdentifier),!1}}}({features:[J,m,S,class extends h{static featureName=oe;constructor(t,r){if(super(t,r,oe,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!c.il)return;const n=this.ee;let i;(0,k.QU)(n),this.eventsEE=(0,k.em)(n),this.eventsEE.on(se,(function(e,t){this.bstStart=(0,p.z)()})),this.eventsEE.on(ae,(function(t,r){(0,s.p)("bst",[t[0],r,this.bstStart,(0,p.z)()],void 0,e.D.sessionTrace,n)})),n.on(ce+ne,(function(e){this.time=(0,p.z)(),this.startPath=location.pathname+location.hash})),n.on(ce+ie,(function(t){(0,s.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,e.D.sessionTrace,n)}));try{i=new PerformanceObserver((t=>{const r=t.getEntries();(0,s.p)(te,[r],void 0,e.D.sessionTrace,n)})),i.observe({type:re,buffered:!0})}catch(e){}this.importAggregator({resourceObserver:i})}},C,xe,B,class extends h{static featureName=de;constructor(e,r){if(super(e,r,de,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!c.il)return;if(!(0,t.OP)(e).xhrWrappable)return;try{this.removeOnAbort=new AbortController}catch(e){}let n,i=0;const o=this.ee.get("tracer"),a=(0,k._L)(this.ee),s=(0,k.Lg)(this.ee),u=(0,k.BV)(this.ee),d=(0,k.Kf)(this.ee),f=this.ee.get("events"),l=(0,k.u5)(this.ee),h=(0,k.QU)(this.ee),g=(0,k.Gm)(this.ee);function m(e,t){h.emit("newURL",[""+window.location,t])}function v(){i++,n=window.location.hash,this[ve]=(0,p.z)()}function b(){i--,window.location.hash!==n&&m(0,!0);var e=(0,p.z)();this[pe]=~~this[pe]+e-this[ve],this[ye]=e}function y(e,t){e.on(t,(function(){this[t]=(0,p.z)()}))}this.ee.on(ve,v),s.on(be,v),a.on(be,v),this.ee.on(ye,b),s.on(ge,b),a.on(ge,b),this.ee.buffer([ve,ye,"xhr-resolved"],this.featureName),f.buffer([ve],this.featureName),u.buffer(["setTimeout"+le,"clearTimeout"+fe,ve],this.featureName),d.buffer([ve,"new-xhr","send-xhr"+fe],this.featureName),l.buffer([me+fe,me+"-done",me+he+fe,me+he+le],this.featureName),h.buffer(["newURL"],this.featureName),g.buffer([ve],this.featureName),s.buffer(["propagate",be,ge,"executor-err","resolve"+fe],this.featureName),o.buffer([ve,"no-"+ve],this.featureName),a.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),y(l,me+fe),y(l,me+"-done"),y(a,"new-jsonp"),y(a,"jsonp-end"),y(a,"cb-start"),h.on("pushState-end",m),h.on("replaceState-end",m),window.addEventListener("hashchange",m,(0,O.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",m,(0,O.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){m(0,i>1)}),(0,O.m$)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#e,this.importAggregator()}#e(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}],loaderType:"spa"})})(),window.NRBA=o})(); window.jQuery || document.write(' ') CKEDITOR_BASEPATH='https://f1000research.com/js/vendor/ckeditor/' window.reactTheme = 'research'; window.MathJax = { CommonHTML: { linebreaks: { automatic: true } }, 'HTML-CSS': { linebreaks: { automatic: true } }, SVG: { linebreaks: { automatic: true } }, AuthorInit: function() { MathJax.Hub.Register.MessageHook('End Process', function () { let timeout = false; // holder for timeout id const delay = 250; // delay after event is "complete" to run callback const reflowMath = function() { const dispFormulas = document.querySelectorAll('.disp-formula.panel'); if (!dispFormulas) { return; } for (const dispFormula of dispFormulas) { const child = dispFormula.querySelector('.MathJax_Preview').nextSibling.firstChild; const isMultiline = MathJax.Hub.getAllJax(dispFormula)[0].root.isMultiline; if (dispFormula.offsetWidth < child.offsetWidth || isMultiline) { MathJax.Hub.Queue(['Rerender', MathJax.Hub, dispFormula]); } } }; window.addEventListener('resize', function() { clearTimeout(timeout); // clear the timeout timeout = setTimeout(reflowMath, delay); // start timing for event "completion" }); }); }, }; if (window.location.hash == '#_=_'){ window.location = window.location.href.split('#')[0] } !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function() {n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)} ;if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1641728616063202'); fbq('track', "PixelInitialized", {}); (function(h,o,t,j,a,r){ h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; h._hjSettings={hjid:2318163,hjsv:6}; a=o.getElementsByTagName('head')[0]; r=o.createElement('script');r.async=1; r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); search file_upload Submit your research search menu close search Browse Gateways & Collections How to Publish Submit your Research My Submissions Article Guidelines Article Guidelines (New Versions) Open Data, Software and Code Guidelines Open Data and Accessible Source Materials Guidelines (HSS) Open Data, Software and Code Guidelines (PSE) Prepublication Checks Production Process Posters and Slides Guidelines Document Guidelines Article Processing Charges Peer Review Finding Article Reviewers About How it Works For Reviewers Our Advisors Policies Glossary FAQs For Developers Newsroom Contact My Research Submissions Content and Tracking Alerts My Details Sign In file_upload Submit your research { "@context": "https://schema.org", "@type": "ScholarlyArticle", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://f1000research.com/articles/13-1102" }, "headline": "Mapping bread wheat trait ontologies for semantic interoperability", "datePublished": "2024-09-27T16:31:40", "dateModified": "2024-09-27T16:31:40", "author": [ { "@type": "Person", "name": "Claire Nédellec" }, { "@type": "Person", "name": "Sophie Aubin" }, { "@type": "Person", "name": "Clara Sauvion" }, { "@type": "Person", "name": "Liliana Ibanescu" }, { "@type": "Person", "name": "Sonia Bravo" }, { "@type": "Person", "name": "Jacques Le Gouis" }, { "@type": "Person", "name": "Thierry C. Marcel" }, { "@type": "Person", "name": "Cyril Pommier" }, { "@type": "Person", "name": "Robert Bossy" }, { "@type": "Person", "name": "Michael Alaux" } ], "publisher": { "@type": "Organization", "name": "F1000Research", "logo": { "@type": "ImageObject", "url": "https://f1000research.com/img/AMP/F1000Research_image.png", "height": 480, "width": 60 } }, "image": { "@type": "ImageObject", "url": "https://f1000research.com/img/AMP/F1000Research_image.png", "height": 1200, "width": 150 }, "description": " Background The Wheat Crop ontology was created to annotate phenotypic experimental data (i.e. field and greenhouse measurements standardized and integrated in databases). The Wheat Trait and Phenotype ontology was created to annotate information on wheat traits from the literature (i.e. text found in the abstract, results and discussion of scholarly articles). To enable seamless data retrieval on wheat traits from these complementary sources, the classes in the two ontologies have been aligned. Methods All pairs of ontology classes were examined and categorized in nine groups based on the nature of their relationships (e.g. equivalence, subsumption). General principles emerged from this process which were formalized into rules. The Simple Standard for Sharing Ontological Mappings (SSSOM) representation was chosen to represent the mappings in RDF (Resource Description Framework), including their metadata such as creators, reviewers, and justification (including rules). Results The mapping dataset is publicly available. It covers 77% of the ontology classes. Most labels of the aligned classes differed significantly and required domain expertise for decisions, especially for traits related to biotic stress. Consequently, most mappings are close mappings rather than exact equivalents. Conclusions We present the end-to-end manual process used to select and represent mappings in SSSOM within the specific domain of wheat traits. We derive general lessons from the complex alignment process that extend beyond the specific case of these two ontologies and more generally apply to alignments of specialized ontologies for information retrieval purposes. This work demonstrates the relevance of SSSOM for representing these mappings. " } { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": "1", "item": { "@id": "https://f1000research.com/", "name": "Home" } }, { "@type": "ListItem", "position": "2", "item": { "@id": "https://f1000research.com/browse/articles", "name": "Browse" } }, { "@type": "ListItem", "position": "3", "item": { "@id": "https://f1000research.com/articles/13-1102", "name": "Mapping bread wheat trait ontologies for semantic interoperability" } } ] } Home Browse Mapping bread wheat trait ontologies for semantic interoperability ALL Metrics - Views Downloads Get PDF Get XML Cite How to cite this article Nédellec C, Aubin S, Sauvion C et al. Mapping bread wheat trait ontologies for semantic interoperability [version 1; peer review: awaiting peer review] . F1000Research 2024, 13 :1102 ( https://doi.org/10.12688/f1000research.154860.1 ) NOTE: If applicable, it is important to ensure the information in square brackets after the title is included in all citations of this article. Close Copy Citation Details Export Export Citation Sciwheel EndNote Ref. Manager Bibtex ProCite Sente EXPORT Select a format first Track Share ▬ ✚ Research Article Mapping bread wheat trait ontologies for semantic interoperability [version 1; peer review: awaiting peer review] Claire Nédellec https://orcid.org/0000-0002-0577-0595 1 , Sophie Aubin https://orcid.org/0000-0003-4805-8220 2 , Clara Sauvion 1 , [...] Liliana Ibanescu https://orcid.org/0000-0003-3373-437X 3 , Sonia Bravo 2 , Jacques Le Gouis 4 , Thierry C. Marcel https://orcid.org/0000-0002-7452-4013 5 , Cyril Pommier https://orcid.org/0000-0002-9040-8733 6,7 , Robert Bossy 1 , Michael Alaux https://orcid.org/0000-0001-9356-4072 6,7 Claire Nédellec https://orcid.org/0000-0002-0577-0595 1 , Sophie Aubin https://orcid.org/0000-0003-4805-8220 2 , [...] Clara Sauvion 1 , Liliana Ibanescu https://orcid.org/0000-0003-3373-437X 3 , Sonia Bravo 2 , Jacques Le Gouis 4 , Thierry C. Marcel https://orcid.org/0000-0002-7452-4013 5 , Cyril Pommier https://orcid.org/0000-0002-9040-8733 6,7 , Robert Bossy 1 , Michael Alaux https://orcid.org/0000-0001-9356-4072 6,7 PUBLISHED 27 Sep 2024 Author details Author details 1 MaIAGE, Université Paris-Saclay, INRAE, Jouy-en-Josas, France 2 DipSO, INRAE, Paris, France 3 Université Paris-Saclay, INRAE, AgroParisTech, UMR MIA Paris-Saclay, Palaiseau, France 4 INRAE, Université Clermont Auvergne, UMR GDEC, Clermont-Ferrand, France 5 Université Paris-Saclay, INRAE, UR BIOGER, Palaiseau, France 6 Université Paris-Saclay, INRAE, URGI, Versailles, France 7 BioinfOmics, Plant Bioinformatics Facility, Université Paris-Saclay, INRAE, URGI, Versailles, France Claire Nédellec Roles: Conceptualization, Data Curation, Funding Acquisition, Investigation, Methodology, Project Administration, Supervision, Writing – Original Draft Preparation Sophie Aubin Roles: Conceptualization, Funding Acquisition, Methodology, Software, Supervision, Writing – Original Draft Preparation Clara Sauvion Roles: Data Curation, Writing – Review & Editing Liliana Ibanescu Roles: Conceptualization, Methodology, Writing – Original Draft Preparation Sonia Bravo Roles: Data Curation, Software, Writing – Original Draft Preparation Jacques Le Gouis Roles: Data Curation, Writing – Review & Editing Thierry C. Marcel Roles: Data Curation, Writing – Review & Editing Cyril Pommier Roles: Conceptualization, Data Curation, Funding Acquisition, Validation, Writing – Original Draft Preparation Robert Bossy Roles: Formal Analysis, Resources, Software, Writing – Review & Editing Michael Alaux Roles: Conceptualization, Data Curation, Funding Acquisition, Investigation, Methodology, Supervision, Writing – Original Draft Preparation OPEN PEER REVIEW REVIEWER STATUS AWAITING PEER REVIEW Abstract Background The Wheat Crop ontology was created to annotate phenotypic experimental data (i.e. field and greenhouse measurements standardized and integrated in databases). The Wheat Trait and Phenotype ontology was created to annotate information on wheat traits from the literature (i.e. text found in the abstract, results and discussion of scholarly articles). To enable seamless data retrieval on wheat traits from these complementary sources, the classes in the two ontologies have been aligned. Methods All pairs of ontology classes were examined and categorized in nine groups based on the nature of their relationships (e.g. equivalence, subsumption). General principles emerged from this process which were formalized into rules. The Simple Standard for Sharing Ontological Mappings (SSSOM) representation was chosen to represent the mappings in RDF (Resource Description Framework), including their metadata such as creators, reviewers, and justification (including rules). Results The mapping dataset is publicly available. It covers 77% of the ontology classes. Most labels of the aligned classes differed significantly and required domain expertise for decisions, especially for traits related to biotic stress. Consequently, most mappings are close mappings rather than exact equivalents. Conclusions We present the end-to-end manual process used to select and represent mappings in SSSOM within the specific domain of wheat traits. We derive general lessons from the complex alignment process that extend beyond the specific case of these two ontologies and more generally apply to alignments of specialized ontologies for information retrieval purposes. This work demonstrates the relevance of SSSOM for representing these mappings. READ ALL READ LESS Keywords bread wheat traits and phenotypes, data interoperability, information retrieval, ontology alignment, ontology mapping representation, wheat breeding Corresponding Author(s) Claire Nédellec ( [email protected] ) Michael Alaux ( [email protected] ) Close Corresponding authors: Claire Nédellec, Michael Alaux Competing interests: No competing interests were disclosed. Grant information: The project was funded by Agence Nationale de la Recherche under grant number [ANR-18-CE23-0017 D2KAB] The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript. Copyright: © 2024 Nédellec C et al . This is an open access article distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. How to cite: Nédellec C, Aubin S, Sauvion C et al. Mapping bread wheat trait ontologies for semantic interoperability [version 1; peer review: awaiting peer review] . F1000Research 2024, 13 :1102 ( https://doi.org/10.12688/f1000research.154860.1 ) First published: 27 Sep 2024, 13 :1102 ( https://doi.org/10.12688/f1000research.154860.1 ) Latest published: 27 Sep 2024, 13 :1102 ( https://doi.org/10.12688/f1000research.154860.1 ) Introduction Plant phenotyping aims to understand how genetic variations and environmental factors influence plant traits. It plays a critical role in crop improvement and precision agriculture to enable sustainable food production and adaptation to climate change. Protocols are being developed to measure phenotypes of plants such as wheat in order to speed up breeding. Wheat is one of the most widely cultivated cereal crops playing a vital role in human nutrition, agriculture, cultural and economic development. 1 , 2 Phenotyping generates large amounts of heterogeneous data such as field and greenhouse observations and measurements. 3 These phenotypic experimental data include raw and computed traits standardized and FAIRified in database. 4 They inform and validate scientific conclusions published in scholarly articles. Therefore, phenotypic experimental data and the description of their corresponding traits in scholarly articles differ in scope and type. On the first hand, experimental data quantify measurable properties of the plant within a limited spatial and temporal scope (cf. Table 1 ). On the other hand, traits descriptions in the text of scholarly articles qualify the characteristics of wheat varieties (cf. Figure 1 ). Table 1 gives an example of the observation data available in the GnpIS information system: https://urgi.versailles.inrae.fr/ephesis/ephesis/viewer.do#dataResults/trialIds=801 . Table 1. Extract of the data collected in the trial BTH_Lusignan_2014_SetB1 in Lusignan, France in 2014. Lot Number Accession Number Accession Name sept: Septoria score Grapeli 36801 GRAPELI 3 AO13031 AO13031 AO13031 3,5 Apache 13481 APACHE 5 AO14001 AO14001 AO14001 5,5 Figure 1. Extract of the scholarly article 5 about Apache resistance to Septoria tritici blotch disease. The specific resistance value of the trait has been drawn from the synthesis of multiple trials measures. It has been collected for the trial BTH_Lusignan_2014_SetB1 in Lusignan, France in 2014. The Septoria score (Septoria tritici blotch incidence) value of Apache variety for this specific trial is 5 on a scale 1 to 9, from resistant to susceptible. The example from the scholarly article 5 in Figure 1 summarizes the conclusion of the analysis of several trials on resistance phenotypic trait of Apache variety to Septoria tritici blotch disease. Compared to experimental data, this excerpt presents a more general and synthesized finding. The aim of our study is to integrate information coming from these two sources, (1) experimental data, (2) scholarly articles, and to propose generic and reusable methods and tools beyond our use case. Our operational goal is their integration in the WheatIS and FAIDARE data discovery portals ( https://urgi.versailles.inrae.fr/wheatis/ , https://urgi.versailles.inrae.fr/faidare/ ). 6 They are web-based one-stop portals developed to access all available plant data resources that result from the international initiatives ELIXIR ( https://elixir-europe.org/ ) and the WheatIS expert working group of the Wheat Initiative ( https://www.wheatinitiative.org/ ). 7 The data interoperability is ensured by semantic indexing by ontologies. The two sources of experimental and scholarly articles data we considered in this study use specific conceptualizations (concepts and relations), and are managed in two different information systems, but both address bread wheat phenotyping. The two types of data are indexed by two ontologies, respectively, the Wheat Crop Ontology (CO_321) 8 and the Wheat Trait and Phenotype Ontology (WTO; http://agroportal.lirmm.fr/ontologies/WHEATPHENOTYPE ). 9 For example, the experimental data scores of Table 1 are indexed by CO_321:0000919 which label is Septoria tritici blotch incidence measured on the whole plant by the direct measurement method. The scholarly article example of Figure 1 is indexed by WTO:0000554 resistance to Septoria leaf blotch. The choice of ontology for indexing both data sources was made based on historical and conceptual considerations, specifically due to differences in the scope and nature of their conceptual classes. In order to fully capitalize on the complementary attributes of the two primary data sources, the essential goal of facilitating federated search requires mapping the classes of the two ontologies. Indeed, the WheatIS and FAIDARE data portals offer full-text search and resource annotation that can both take advantage of a mapping between CO_321 and WTO to easily find experimental and scholarly article trait-related data. The conceptual differences between the two ontologies make the alignment a complex task. Although their hierarchical structures are similar, organizing the trait classes from general to specific, the trait classes of CO_321 and WTO represent different levels of abstraction and information aggregation. The first is tailored to the needs of data producers and experimenters, while the latter is organizing scientific knowledge as synthetized in scholarly articles. Indeed, WTO mostly defines and ontologically organizes atomic concepts that represent different traits, while Crop Ontology is a list of phenotypic variables based on the entity-attribute-value (EAV) model. Each variable is a triplet semantically aggregating a trait, a measurement method and a unit or scale. (1) is an illustrative example. (1) The single stay-green trait of WTO characterizes the wheat variety’s general capability to maintain its green leaves and photosynthetic capacity after anthesis. In CO_321 multiple traits qualify the measurement of observable vegetative greenness and canopy photosynthetic size, including the Normalized difference vegetation index or the Canopy green normalized difference vegetation index. Each of these traits is associated to a method and scale. Therefore, to enable an integrated search of heterogeneous data in WheatIS and FAIDARE data portals, we studied the conceptual differences, defined alignment procedures and identified all alignments between the WTO trait classes and the CO_321 trait classes. Before describing the alignments between the two ontologies (Result section), we will introduce the method used to obtain them and the Simple Standard for Sharing Ontological Mappings (SSSOM) representation (Method section). The next section (Background section) is dedicated to the two ontology specificities and alignment methods and representation. Background Ontologies The Crop Ontology (CO) was created by the CGIAR in 2008 to describe the traits of 17 crops. ( https://cropontology.org/ ). CO_321 is dedicated to bread wheat ( https://github.com/Planteome/CO_321-wheat-traits ). It contains 467 trait classes and 87 synonyms in 16 subtrees of depth 2. The crop ontologies follow a conceptual model that defines a phenotypic variable as a combination of a trait, a method and a scale. The CO format is adopted by the Minimum Information About a Plant Phenotype Experiment (MIAPPE, https://www.miappe.org/ ) 10 and the Breeding Application Programming Interface (BrAPI, https://brapi.org/ ). 11 CO_321 has been used for the phenotypic variables of the experimental data generated by the European Whealbi ( https://wheat-urgi.versailles.inrae.fr/Projects/Achieved-projects/Whealbi ) (12 trials) and the French BreedWheat ( https://wheat-urgi.versailles.inrae.fr/Projects/BreedWheat ) (60 trials) projects. The Wheat Trait Ontology (WTO) was developed by the MaIAGE research laboratory within the SamBlé project to facilitate the annotation of textual data using ontologies. The WTO is accessible on AgroPortal ( https://agroportal.lirmm.fr/ontologies/WHEATPHENOTYPE/ ) in both OBO and OWL formats. It comprises two main sections: the Environmental Condition subtree, which includes 236 classes, and the Plant Property subtree. The latter is further divided into the Trait subtree (WTO:0000006) and the Phenotype subtree (WTO:0000005), resulting in a total of 514 classes. These classes encompass all aspects of plant properties across six primary categories: development, growth, morphology, quality, reproduction, and response to environmental conditions. The WTO model is deeply structured to facilitate navigation and reuse for data and knowledge discovery. The maximum depth of WTO is 9 and includes 486 synonyms. The plant property trait and phenotype classes are respectively used to annotate the trait and phenotype values in scientific documents. 12 The SamBlé application provides an AlvisIR-based search engine where plant properties are linked to genes and varieties in PubMed references ( https://bibliome.migale.inrae.fr/wheat/alvisir/webapi/search?q=wheat+LR*+%28resistance+to+pathogen%29 ). Both ontologies are presently employed within the FAIDARE and WheatIS portals for indexing wheat experimental and PubMed literature data. This functionality enables users to filter data using the Ontology Annotation facet and search for results associated with ontology terms (e.g., mapped, synonyms). However, the federated information retrieval currently utilizes only the alignment of 59 class labels that are identical in both ontologies. The presence of many more shared concepts could be exploited with the creation of new formal alignments. Ontology alignment Ontologies provide a formal description of a set of concepts and the relations between them in a domain area. Therefore, it represents the shared meaning of this domain, that is machine-processable and allows reasoning, i.e. generation of new knowledge, and automatic detection of inconsistencies in the semantic model. Ideally, each domain should be described by a single ontology, but numerous overlapping ontologies exist, having their own scope, and purposes and annotating a specific type of information. This is the case for WTO and CO_321 ontologies. Ontology matching is the process of identifying semantic correspondences between ontology concepts and relations. 13 A number of automatic and semi-automatic ontology matching methods were developed. 14 – 16 Since 2004, OAEI ( ontology alignment evaluation initiative ) ( https://oaei.ontologymatching.org/ ) organizes annual campaigns aiming at their evaluations on different test sets. Results for OAEI 2023 were published in 17 and highlights the diversity of the methods. As demonstrated in Ref. 18 , the majority of semi-automated and automated alignment techniques primarily focus on identifying one-to-one equivalence and subsumption relationships. However, real-world ontologies often require more sophisticated set operations, such as union, intersection, disjunction, and cardinality restriction, collectively referred to as complex alignments. The evaluation of complex alignments was first introduced in OAEI 2018, 19 which underscored the absence of benchmarks that include complex relations, as well as the lack of appropriate metrics for assessing the outcomes of ontology matching techniques. Both WTO and CO_321 are available on the AgroPortal ontology repository. 14 AgroPortal integrates a basic ontology alignment method, called LOOM, which finds 271 mappings between WTO and CO_321 classes. The 2021 version of AgreementMakerLight (AML) [ https://www.semantic-web-journal.net/content/agreementmakerlight-0 ], one of the ontology matching available systems, found 93 mappings. A deep analysis of the complexity of potential alignments with respect to the state-of-the art convinced us to build them manually. Alignment representation In order to make the result of the alignment task (re) usable by both humans and machines, the choice of its representation is essential. Taking into account the goals of the application that exploits the WTO and CO_321 alignments as well as the community recommendations to produce FAIR mappings, 20 the target representation model should meet several needs. The mappings need to be documented with comprehensive and adequate metadata, including 1) the purpose and application domain of the alignment, here information retrieval, 2) the alignment method used, and 3) the scientific justification for each mapping. The model must allow the use of standard, possibly oriented, mapping predicates from the semantic web community, like owl:equivalentClass and skos:match and the representation of complex (1 to N) mappings. As for other data, it is also important that resources involved in the alignment are precisely identified, successive versions of the alignment are marked, and the authors and reviewers of the mappings are credited for their work. We found a couple of representation models that were good candidates to represent alignments independently of the semantic artifacts aligned. The summary of their evaluation with respect to the needs is given in Table 2 . Table 2. Evaluation of the alignment models with respect to the project criteria. Needs Criteria Model of Ontoportal Alignment format model EDOAL SSSOM To know what is aligned Ontology: identifier Y Y Y Y To know what is aligned Ontology: version N N N Y To know what is aligned Concept/Class: identifier Y Y Y Y To be user friendly Concept/Class: preferred label Y N N Y To be interpretable A direction between the two concepts N Y Y Y To be interpretable Alignment predicate from various standards (owl, SKOS) Y N N Y To be interpretable Cardinality (1:1, 1:n) N Y Y Y To be interpretable Restriction of application of mapping N in an add-on Y being discussed To be trustworthy Justification of the mapping N N N Y To be trustworthy Method used (tool, algorithm, etc) Y Y Y Y First of all, as the ontologies were already hosted in the AgroPortal, we considered the model used in this repository of ontologies. Indeed, AgroPortal, like other OntoPortal instances, makes it possible to store, describe and retrieve alignments between the hosted resources. It includes some elements of context such as the author (meta:creator) or an open text field to provide additional details (meta:comment). But it quickly became clear that the metadata available in this model did not sufficiently document the alignment. For example, we could not indicate a direction in the alignment, which can be problematic in the case of “narrower” or “broader” mappings. The Alignment Format Model 13 allows complex alignments to be represented but it does not fully meet the needs formulated above. Its extension, the Expressive and Declarative Ontology Alignment Language (EDOAL) model is much more complete [ https://moex.gitlabpages.inria.fr/alignapi/edoal.html ] but also more focused on complex alignments. Still, it is dedicated to research purposes and evaluation challenges. During the benchmarking work, the scholarly article “A Simple Standard for Sharing Ontological Mappings (SSSOM)” was published, presenting the model developed by the biomedical community involved in the OBO Foundry. 21 This standard meets the majority of our expectations and the SSSOM community is open to suggestions for improvement. SSSOM was developed to meet several objectives: to offer a standard easy-to-use representation, with rich metadata to best represent alignments and facilitate their understanding, integration and reusability. For example, the SSSOM framework provides both RDF ( Resource Description Framework ) and OWL ( Web Ontology Language ) serialization for people working in the Semantic Web framework and a TSV format for a wider audience, including domain experts. We therefore used the SSSOM framework to represent the alignment set. Compared to others, this emerging format offers several advantages for both the alignment producers and users as discussed above. Yet, SSSOM does not allow the representation of compound (or complex) mappings, which has been identified as a current limitation by the authors and is subject to discussions in fora and community events to propose evolutions. Interestingly, SSSOM meets our need to share alignments that respect the FAIR principles and the open science approach. In addition, it is strongly endorsed within the European Open Science Cloud (EOSC, https://eosc.eu/ ) and other international projects to facilitate the interoperability of participating information systems that share scientific data. Methods Alignment principle The overall goal for aligning the classes of WTO and CO_321 ontologies is to enable information retrieval from the indexed datasets regardless of the ontology used to index the data. The target users are researchers, experimenters and breeders who are not familiar with the indexing and inference principles. We defined the following competency questions that cover various topics and are representative of their needs. - CQ1: Which scholarly articles and experiments pertain to insect resistance in wheat varieties? - CQ2: Which scholarly articles and experiments evaluate the flour protein content of wheat varieties? - CQ3: Which scholarly articles discuss the resistance of wheat varieties to specific diseases or pathogens, and which experiments report on wheat responses? - CQ4: Which variety has the highest grain manganese content? - CQ5: Which variety exhibits the greatest soil coverage? - CQ6: What scholarly articles and experiments are available on the milling quality of wheat? To answer these kinds of questions, information retrieval involves two types of inference, (1) the usual subsumption mechanism that retrieves the data indexed by all classes that are logically subsumed by the class of the query and (2) the logical equivalence that retrieves the data indexed by all classes that are logically equivalent to the class of the query. The first involves inference within the same ontology while the second uses the alignment between the classes of two ontologies. The two combined inference mechanisms go down into the ontologies and back and forth from one ontology to the other. The answer set of a user query class C contains the data annotated with C and all its subclasses C, and the data annotated with the aligned classes of C and C and their subclasses. Figure 2 shows the graphical representation of an abstract example. Figure 2. Graphical representation of an information retrieval example. The query is on class C1. By subsumption in WTO, the data indexed by the classes C2, C5, C6, C7 and C8 are retrieved together with the initial class C1 indexed data. Given the equivalence alignment between C5 and C’3, the data indexed by C’3 are also retrieved. The subsumed classes C’5 and C’6 in CO_321are then considered. Finally, the equivalence alignment between C’5 and C8 also retrieves the data they index. The final derived class set is C1, C2, C5, C6, C7, C8 and C’3, C’5 and C’6. To illustrate this with an example, we handle the competency question CQ6 “What scholarly articles and experiments are available on the milling quality of wheat?”. Figure 3 illustrates that the Milling quality class in WTO has two subclasses: Amount of damaged starch and Moisture content of grain. Milling quality in CO_321 is a subclass of Quality trait , while Grain moisture content is a subclass of Agronomical trait. We identified two alignments: Figure 3. Schema of the information retrieval process using CO_321 and WTO alignments. The answer for the query Q:“milling quality” retrieves the scholarly article information indexed by WTO:Milling quality and its subclasses and the experimental data indexed by CO_321:Milling quality according to alig1 alignment. Using alig2 alignment, information retrieval also gathers the experiments indexed by CO_321:Grain moisture content. It is worth noting that the procedure is formally complete. For instance, although the ancestors of the two classes “CO_321:Grain moisture content” and “WTO:Moisture content of the grain” are different, the answer set will be the same regardless of the starting class of the query belonging to WTO or CO_321. Our mapping decision principle is task-oriented. Two classes will be declared aligned if the user’s expectation is to retrieve the data indexed by both classes. This leads to a less restrictive meaning of the equivalence relation. Until then we have considered the aligned classes as equivalent. It happens that there is no equivalence possible for a class C but only a more specific candidate C’. In this case, our strategy is to create an asymmetric alignment between C and C’ where C’ is subsumed by C. For instance “WTO: Leaf senescence time” is more general than “CO_321: Flag leaf senescence time” and WTO does not contain better candidate to align with. Considering such asymmetric alignments extend the retrieval capability of the system while preserving its soundness. Alignment mismatches Regardless of differences in structure and the inference choices that result, we encountered differences in the traits due to the two ontology purposes and expert disagreement. We present in this section a detailed analysis of these differences and the alignment principles that we have adopted for aligning ontology classes. Class naming variations Some of the variations among the class names are shallow and are more related to a mismatch at the language level, i.e. using different terms to denote the same concept. 22 An example is the pair where the name differs by a syntactical variation. Such variations are easy to handle in an automatic way but less frequent than deeper semantic differences. The first type of discrepancy is caused by the differences in the objective of the data annotation by the ontologies, which are the annotation of the characteristics of the plant for WTO, and the annotation of the plant precise observations for CO_321. We distinguish four cases related to (E1) whole plant vs plant part description, (E2) measurement methods, (E3) different words for expressing stress effects, and (E4) differences in modality. Examples for each of them are given in Table 3 . Table 3. Examples per type of class name variation. (E1) Whole plant vs plant part description Fusarium head blight spikelet incidence (CO_321:0000711) qualifies the effect of head blight disease as measurable on spikelets. The phenotypic value is calculated as the ratio of infected spikelets over the total number of spikelets. Conversely, resistance to Fusarium head blight (WTO:0000483) qualifies the resistance level of the cultivar to the disease. Its value ranges from highly resistant to highly susceptible. (E2) Measurement method Flour SDS sedimentation (CO_321:0000146) and Flour SDS sedimentation index (CO_321:0000160) both qualify flour protein content but have different calculation methods. The index is the result of dividing the sedimentation volume by the flour protein content. Conversely, WTO defines a single trait regardless of the calculation method, i.e., Sodium dodecyl sulfate-sedimentation volume (WTO:0000610) (E3) Different words for expressing stress effects Bird damage (CO_321:0000087) and response to bird damage (WTO:0000674) are two examples of naming variations for denoting the plant response. (E4) Difference in modality Aluminium toxicity (WTO:0000450) and Aluminium tolerance (CO_321:0000079) CO_321 does not fully follow the EAV model in that the names of the traits contain information about the entity observed (e.g. whole plant, plant part) and the method (e.g. alveograph measure), which are also formally defined. This leads to name variations corresponding to a single trait in WTO that omits the entity observed and method names from trait labels when relevant. This leads to the cases (E1) and (E2). (E1) is an illustrative example where CO_321 trait distinguishes the part of the plant where the trait is measured, while WTO traits qualify the properties of the whole plant. Different traits in CO_321 may qualify the same property but differ by the method that is used to observe or calculate their values. (E2) is an illustrative example. CO_321 trait labels combine the names of biotic or abiotic stresses with eleven different words that express the effect of the stress and depend on the method and the plant part considered: score , notes , incidence , severity , response , coefficient of infection , index , AUDPC , damage , tolerance , and susceptibility. Conversely, the ability of the plant to resist microbial biotic stresses, the main source of stress, is expressed in WTO trait labels by the single word resistance. The words tolerance (to micronutrient deficiency and to extreme temperature), susceptibility (to lodging), toxicity (i.e., rhyzotoxicity ), and response (to macronutrient deficiency, to animal damage, and to general stresses) are used in a complementarily way. Example (E3) illustrates these naming variations. To deal with cases (E1), (E2) and (E3), in order to achieve our overall interoperability goal, we considered a multiple alignment of the single class in one ontology with the distinct classes in the other ontology, so that queries on any of the classes retrieve the same dataset indexed by any of the aligned classes. It may also happen that the labels induce negative or positive values in opposite directions in the two ontologies, as in (E4), although trait names should be neutral. The decision to consider them aligned despite this requires that the user using the retrieved data be informed. In these four cases, our mapping strategy in line with our overall interoperability goal is to align the classes if they do not otherwise differ. Agent and disease misalignment A large number of the class labels and definitions relate to the names of diseases and pathogenic agents and how plants respond to the biotic stress they cause. The second major source of discrepancy is the disagreement among the experts about the identification of the pathogen agents that cause diseases (cf. examples in Table 4 ). Table 4. Examples per type of misalignment due to disease and causal agent differences. (E5) Different disases causes by the same pathogen on different organs Black chaff and Leaf streak diseases are both caused by the bacteria Xanthomonas campestris pv. Translucens. Black chaff affects the glume of the plant, and leaf streak affects the leaf. Therefore, the two classes resistance to black chaff (WTO:0000494) and Bacterial leaf streak severity (CO_321:0001019) are not aligned. (E6) Multiple diseases viewed as a single disease WTO considers Leaf blotch , Septoria blotch and Septoria tritici blotch the same diseases leading to a single trait. In CO_321 they correspond to two different diseases, i.e. Septoria tritici blotch and Septoria blotch , leading to two distinct traits. (E7) Difference in pathogen species definition WTO:0000510 resistance to wheat blast synonyms includes resistance to Magnaporthe grisea , to Magnaporthe oryzae , and to Pyricularia grisea. The first name refers to a species other than the last two, which are synonyms according to the NCBI reference taxonomy. CO_321:0001031 Wheat blast severity is defined as caused by the agent Magnaporthe grisea ( Pyricularia oryzae ) where the two names are presented as synonyms, referring to the same species as opposed to NCBI taxonomy. (E8) Different agent-disease relation Resistance to eyespot (WTO:0000482) is related to two pathogen species, Oculimacula yallundae (anamorph Helgardia herpotrichoides (Fon)) and Oculimacula acuformis (anamorph Helgardia acuformis (Nirenberg)). CO_321 defines two different classes, Eyespot plant response (agent Tapesia yallundae = Oculimacula yallundae ) that correspond to Resistance to eyespot , but also Susceptibility to Cercosporella , which refers to Cercosporella herpotrichoides species. Following the NBI taxonomy and the Encyclopedia of Life, Cercosporella herpotrichoides is synonym of Oculimacula yallundae. The two CO_321 classes should then not be distinct. Resistance to eyespot (WTO:0000482) and Susceptibility to Cercosporella (CO_321:1000252) are then also aligned through the pathogen name synonymy link, creating a multiple alignment. (E9) Difference in taxonomy and missing classes The Nematode resistance (WTO:0000335) class is more general than the Cyst nematode damage (CO_321:0000111) class. Conversely the Resistance to cereal cyst nematode (WTO:0000495) class is more specific than the Cyst nematode damage (CO_321:0000111) class. None of these classes are equivalent. Two subsumption asymmetric alignments are then needed here. They prevent retrieving data on non- cyst nematode when data on cyst nematode data is queried and retrieving data on non- cereal cyst nematode when data on cereal cyst nematode is queried. First, the diseases caused by the same pathogen on different organs can be different diseases. The classes that relate to resistance to these diseases must therefore not be aligned. (E5) is an illustrative example. The names of diseases are sometimes different in Europe, where WTO is developed, and the USA, where CO_321 is mostly developed, or may even differ more locally. In addition, the names of diseases may change over time as scientific knowledge advances. Two different diseases in CO_321 may be considered the same in WTO, or conversely. It yields two resistance traits on one side and a single resistance trait on the other side. (E6) is an example of this case. This violates the principle of concept uniqueness. In a simpler case, each ontology defines a single class for a given disease resistance trait, but they differ on which species names are synonyms for the pathogen agents involved. Example (E7) illustrates this case. We decided to consider the two classes aligned despite their taxonomic choice differences because in this case, the two ontologies agree on the causal pathogen agents of the disease, and the disagreement concerns naming. Therefore, the decision is to align the classes. It is worth noting that the identification and naming of pathogens evolve over time; for some, no definitive conclusions can be drawn. The pathogens may have many names that are not all reported in the ontologies. A more complex case, as illustrated by (E8), is the case where the causal agents of the diseases to which resistance is reported, are different depending on the ontologies. Using an external taxonomic reference may help to build the alignments. Similarly to the disease distinction case above, multiple alignments have to be considered to reconcile the different agent-disease relation points of view and achieve our interoperability objective. Finally, the level of precision in taxonomy may also vary. One ontology may group pathogen subspecies together, while the other will distinguish them into different classes. The (E9) case involves a difference in the taxonomic level where WTO class species A and B are subspecies of CO_321 class species C. The desired behavior of the information system is that queries on C would retrieve data indexed by A and B, not vice versa. Therefore, we define an asymmetric alignment to meet this requirement. It should be emphasized that the knowledge about the identification of the causal agents of wheat diseases is constantly being revised, which explains these ontology differences. Traceability and justification of the alignment decisions To ensure consistency and to formalize the alignment principles at a fine-grained level, we have defined three strategies that we describe in this section. A set of rules formalizes the naming variations of the label classes that are acceptable to align them according to the principles above (section Alignment mismatches). A typology of alignment types defines the nature of the lexical and semantic relationships between the aligned classes. Additional documentation describes the external source of information when it is needed, e.g., the project expertise, scientific documents, and reference taxonomy. Alignment rules We identified and defined 17 rules for naming variations of the label classes ( Table 5 ). Each rule has a name, a definition in the form of a regular expression. It includes some illustrative examples, an explanation when relevant, and a comment to clarify its meaning or limitation. Table 5. List of alignment rules. (R1.1) Bio_Score (R1.2) Bio_Incidence (R1.3) Bio_Severity (R1.4) Bio_Plant_response (R1.5) Bio_Coefficient of infection (R1.6) Bio_Seedling response (R1.7) Bio_Incidence_plantpart (R1.8) Bio_Disease index (R1.9) Bio_ISK index (R1.10) Bio_AUDPC (R2) Resistance_Damage (R3) Abio_Toxicity_Tolerance (R4) Abio_Resist_Toler (R5) Abio_Resist_Suscept (R6) Plant_opt (R7) Toler_Suscept (R8) Agro_Resist_Incidence (R9) Abio_Suscept_Incid For instance, the rule R1.4 Bio_Plant_response in Table 5 is about the term used to name the response to a biotic stress and is detailed in Table 6 . Notice that the name of the rule was chosen to include the main words involved in the lexical variation. The full list of rules is given in https://entrepot.recherche.data.gouv.fr/dataset.xhtml?persistentId=doi:10.57745/ZLJYQO . Table 6. The Bio_Plant_response rule, (R 1.4). Ontology WTO CO_321 Rule resistance to + ’name of disease’|’name of the pathogen ’name of disease’ + plant response Example Resistance to Stripe Rust (WTO:0000562) Stripe rust plant response (CO_321:0000179) Explanation WTO defines general trait classes of response or resistance to pests and diseases. CO_321 defines traits about the observable degree of affection. The observation indexed by CO_321 may be done on the whole plant, or a subpart of it while WTO defines resistance to pests and diseases for the whole plant. We consider that the user of the information retrieval function, given a pathogen or a disease, would like to retrieve all data, regardless of the way the disease is observed. As a consequence, the retrieval terms response and resistance are considered similar. Comment The plant response is measured on the adult plant Alignment typology We identified and defined alignment types to characterize the relation logically ( Tables 7 and 8 ). The equivalence type (T1) is subdivided into five subtypes with regard to the reasons for the alignment of the classes. Table 7. Simple alignment types. Label Type of the alignment T1 Equivalence of the classes. T1.1 The two traits have the same meaning. Their labels are the same or differ slightly. T1.2 The two traits have the same meaning. The label of one of the classes is identical or slightly different from a synonym in the other class. T1.3 The two traits have different labels, but their definitions are in agreement. T1.4 The labels of the two classes match according to one of the rules of Table 4 . T1.5 The two traits match according to supplementary information from external sources (e.g., scientific publications). T7 The CO_321 class is more general than the WTO class. T8 The WTO class is more general than the CO_321 class. Table 8. Complex alignment types, definitions and examples. (T2) The phenotypic value of the trait can be formally derived or computed from values of other traits definition the tiller number (CO_321:0000190) per area depends on the tillering capacity (WTO:0000640) (= number of tillers per shoot ) and on the plants per area (CO_321: 1010059) example (T3) The phenotypic value of the trait depends on the values of other traits, but the relationship cannot be formalized. definition The value of grain manganese content (CO_321:0500033) depends on the manganese use efficiency (WTO:0000238) through a complex physiological relationship example (T4) The phenotypic value of the trait of WTO can be deduced from the value of the trait of CO_321 given thresholds (e.g., discretization). definition The characteristics of the high soil coverage (WTO:0000663) phenotypic value can be derived from a threshold and from the Crop ground cover (CO_321:0000014) trait value which is the percentage of coverage. example (T5) The phenotypic value of the trait of WTO can be deduced from the value of the trait of CO_321 given external condition values, but the relationship cannot be formalized. definition Response to water deficiency (WTO:0000259) and Leaf rolling incidence (CO_321:0001529). Leaf rolling is an indicator of the plant ability to respond to water stress. example (T6) The phenotypic value of the WTO trait can be derived from the value of the CO_321 trait given a reference. definition Short awned (WTO:0000054) and Awn length (CO_321:0000026). Given the measure of the length, the shortness of the awn is determined by comparison with a reference. example Five other alignment types have been defined for the documentation of complex alignments ( Table 8 ). Although they have been defined, the alignments of these types are not included in the published alignment file because they cannot be easily represented in SSSOM. Only the simple alignment types in Table 5 are included in the formal mapping set. Methodology for alignment Competencies and roles of the participants of the alignment task The highly technical nature of the phenotyping field calls for the participation of two wheat experts and five knowledge engineers who elicit the knowledge of the domain experts and represent it according to the formal framework. Characterizing the relationship between the two ontology sets of classes involves broad expertise not only in phenotyping measurement, but also in plant biology, physiology, pathology, agronomy, and food processing. The role of the knowledge engineers was divided between formulating alignment proposals, reviewing them with the help of experts when necessary, revising them, and coordinating the overall task. Collaborative process and tools Naturally, we have examined the candidate classes for mapping by subfields in order to concentrate the interactions into limited areas taking advantage of the highly structured nature of WTO. The classes of each subfield with their properties, labels, definitions, and synonyms were listed in a depth-first order in separate tables. Tables were used because no suitable user-friendly interface could be found to edit and visualize the alignments in a collaborative and flexible way. Once all WTO classes had been handled, we examined the remaining CO_321 classes that were still not aligned. The flat structure of CO_321 means that the knowledge engineer was constantly moving from one topic to another. The successive versions of the alignment tables were kept in the INRAE GitLab ( https://forgemia.inra.fr/urgi-is/ontologies/-/tree/feat/mapping-wheat/mapping ). The two main knowledge engineers used GitLab issues to discuss with the rest of the team alignment proposals that fell outside their expertise and the scope of the name variation rules. The issues that required the in-depth expertise of the two specialists have been dealt with in a separate file, which was more convenient for them than GitLab issues. It gathers 72 numbered questions in 32 pages broken down into sub-fields which were answered by their respective experts. Each question was answered with a paragraph of varying length depending on the complexity of the issue. The answer is followed by the decision and closed with a ‘done’ mark. Validation and revision procedure Once the discussion was closed, the main arguments and decisions were summarized in the comment section of the alignment tables. The mapping type, the reasons for the alignment in free text form, and the external references, when relevant, were also recorded in the alignment tables. All alignments were reviewed by one or two knowledge engineers with backgrounds in wheat breeding and knowledge representation. The review of the alignment has generated new sequences of discussions and revisions in an iterative way. Results Alignment figures The traits of the whole CO_321 and the traits of WTO subtree have been examined and aligned when appropriate. Table 9 gives the total number of classes and the number of classes for which an alignment has been found; only 140 WTO and 109 CO_321 classes could not be aligned, i.e., 23% of the total. Table 9. Number of trait classes aligned classes per ontology. # WTO trait classes 596 # WTO aligned classes 456 # CO_321 classes 467 # CO_321 aligned classes 358 Figure 4 shows the distribution of the mapping types from 0 to 8 (section Alignment typology). As expected, the most frequent types are 0 (no alignment found) and 1 (equivalence). The 7 and 8 alignment types represent the asymmetric relations where the pair members are not equivalent but one is more general than the other. As expected, type 7 (the WTO class is more specific) is less frequent than 8 (the WTO class is more general) since the depth of CO_321 is low with only 3 levels. Figure 4. Mapping distribution by type. 1: equivalence; 2 to 6: complex; 7: broader WTO class; 8: broader CO_321 class. Only alignments of type 1, 7 and 8 can be represented in SSSOM. - The subcategories of type 1 (equivalence) have been represented by skos:exactMatch (types 1.1, 1.2 and 1.3), skos:closeMatch (type 1.4) and skos:relatedMatch (type 1.5). - Types 7 and 8 are represented respectively by skos:narrowMatch and skos:broadMatch. Table 10 gives the number of alignments represented in SSSOM per type of skos match. Table 10. Number of published alignments per type of skos match. Type of alignment Number skos:exactMatch 76 skos:narrowMatch 81 skos:broadMatch 32 skos:closeMatch 161 skos:relatedMatch 0 TOTAL alignments 350 As detailed in section Class naming variations, the lexical and semantic variations among the two class sets led to extending the bijective frame to multiple mappings where a class in one ontology may have more than one image class in the other ontology. Figures 5a and 5b show the distribution of multiple mappings of the two ontologies. Multiple mappings have different causes that are related to differences in class granularity and disagreements on pathogen agents causing diseases (section Agent and disease misalignment). Figure 5. Distribution of multiple mappings per type for (a) WTO classes and (b) CO_321 classes. The types are numbered from 1 to 8 according to Tables 5 and 6 . The high number of multiple mappings (up to 8 WTO classes mappings to CO_321 classes) are due to three causes: (E1) whole plant vs plant part description, (E2) measurement methods, and (E3) different words for expressing stress effect measure (e.g. note, score, incidence). Multiple classes detailing the different plant parts affected, the different measurement methods used slightly varying by their labels were considered as equivalent in order to ensure the retrieval of all data related to a given trait. Table 11 gives an example of a multiple mapping of type T1 ( equivalence ) ( Table 5 ) of the class resistance to Fusarium head blight (WTO:0000483). It is aligned to 7 classes from CO_321 that differ by the words expressing biotic stress effect measures. Table 11. Multiple mappings of the class resistance to Fusarium head blight (WTO:0000483). Type Rule name CO_321 class id CO_321 class label T1.4 Bio_Incidence (1.2) CO_321:0000924 Fusarium graminearum incidence T1.4 Bio_Severity (1.3) CO_321:0000926 Fusarium graminearum severity T1.4 Bio_Plant_response (1.4) CO_321:0000925 Fusarium graminearum plant response T1.4 Bio_Plant_response CO_321:0000929 Fusarium head blight spike response T1.4 Bio_AUDPC (1.10) CO_321:0000651 Fusarium head blight AUDPC T1.4 Bio_ISK index (1.9) CO_321:0500021 Fusarium head blight ISK index T1.4 Bio_Disease index (1.8) CO_321:0500019 Fusarium head blight disease index These alignments are all justified by the application of one of the rules. Therefore, the alignment type of Table 9 example is T1.4, i.e. The labels of the two classes match according to one of the rules, according to the alignment typology. Files and documentation The result of this alignment task is a mapping set published as a tabular file (TSV format) that conforms to the SSSOM specifications 1 and includes the information listed in Tables 12 and 13 . In the TSV format, the mapping set metadata is described in the header of the file ( Table 12 ). In the body of the file, each line contains a mapping (subject - predicate - object) with its own metadata ( Table 13 ). Table 12. SSSOM metadata elements used to describe the mapping set. Property Description Example creator_id Identifies the persons or groups responsible for the creation of the mapping. “ https://ror.org/02kvxyf05 ” creator_label A string identifying the creator of this mapping. “INRAE” curie_map A valid curie map that allows the unambiguous interpretation of CURIEs #skos: “ http://www.w3.org/2004/02/skos/core ” license A url to the license of the mapping. In absence of a license, we assumed no license. “ https://www.etalab.gouv.fr/licence-ouverte-open-licence/ ” mapping_set_id A globally unique identifier for the mapping set (not each individual mapping). Should be IRI, ideally resolvable. “ https://doi.org/10.57745/ZLJYQO ” object_source URI of vocabulary or identifier source for the object. “ https://cropontology.org/term/CO_321 ” object_source_version Version IRI or version string of the source of the object term. “July 2018” subject_source URI of ontology source for the subject. “ http://opendata.inrae.fr/wto ” subject_source_version Version IRI or version string of the source of the subject term. “3.0” Table 13. SSSOM metadata elements used to describe a mapping. Property Description Example author_id Identifies the persons or groups responsible for asserting the mappings. Recommended to be a list of ORCIDs or otherwise identifying URIs. “ https://orcid.org/0000-0002-1110-8004 ” author_label A string identifying the author of this mapping. In the spirit of provenance, consider using author_id instead. “Claire Nédellec” comment Free text field containing either curator notes or text generated by a tool providing additional informative information. “The definitions of both traits correspond to the date of ear emergence.” curation_rule A (potentially) complex condition executed by an agent that led to the establishment of a mapping. “ https://doi.org/10.57745/MRGHPA ” - Rule 4 mapping_cardinality A string indicating whether this mapping is from a 1:1 (the subject_id maps to a single object_id), 1:n (the subject maps to more than one object_id), n:1, 1:0, 0:1 or n:n group. Note that this is a convenience field that should be derivable from the mapping set. “1:1” mapping_date The date the mapping was asserted. This is different from the date the mapping was published or compiled in a SSSOM file. 2022 mapping_justification A mapping justification is an action (or the written representation of that action) of showing a mapping to be right or reasonable. semapv: ManualMappingCuration object_id The ID of the object of the mapping. CO_321:0000982 object_label The label of object of the mapping. Anther extrusion object_type The type of entity that is being mapped. owl class predicate_id The ID of the predicate or relation that relates the subject and object of this match. skos:exactMatch reviewer_id Identifies the persons or groups that reviewed and confirmed the mapping. Recommended to be a list of ORCIDs or otherwise identifying URIs. “ https://orcid.org/0000-0001-9356-4072 ” reviewer_label A string identifying the reviewer of this mapping. In the spirit of provenance, consider using reviewer_id instead. “Michael Alaux” subject_id The ID of the subject of the mapping. WTO:0000065 subject label The label of subject of the mapping. anther extrusion subject type The type of entity that is being mapped. skos concept All the metadata elements are explained in the SSSOM documentation available online [ 1 ]. We associated the mapping set with a PDF file containing the mapping rules, i.e. the domain-related explanations for creating the mappings. References to these rules are included in the mapping file for 123 mappings, i.e. the mapping of type T1.4 ( the labels of the two classes match according to one of the rules ). When producing mappings manually, it is crucial to document the work done by the experts and be transparent on the reasons for creating the mappings. The curation rule and mapping justification metadata contribute to the trustworthiness and reusability of the mapping set. Conclusion The objective of our research is to consolidate experimental and scientific data pertaining to wheat breeding sourced from phenotyping experiments and scholarly articles. These datasets are indexed using two distinct ontologies CO_321 and WTO which both delineate plant traits through hierarchical class structures. However, discrepancies in ontology modeling have arisen due to conceptual differences. To leverage the wealth and complementarity of both data reservoirs, we recognize the mapping of classes as a crucial step toward ensuring data interoperability. We qualified each alignment with the appropriate semantic relation depending on the degree of equivalence and we provided mapping justification for an effective intended use in the information retrieval task. These alignments, curated and validated through an iterative procedure involving wheat experts, are a valuable resource for researchers in wheat breeding. Furthermore, the decision to make these alignments available in SSSOM format 21 greatly enhances their interoperability and usability within the broader context of knowledge graphs and ontological mappings. The conclusions drawn from this specific alignment task appear to be valuable within the broader context of integrating scientific and experimental data. Discussion and future work Perspectives for the WheatIS and FAIDARE data discovery exploitation The FAIRification of phenotyping data through WheatIS and FAIDARE data discovery portals is a major challenge as there is no generic repository for trait data. 4 , 23 WheatIS and FAIDARE are widely used by the international wheat research community and the European plant research community to find and exploit these data. The initial application of this research will involve enhancing data discovery within WheatIS and FAIDARE through formal alignments of the WTO and CO_321 ontologies. Prior efforts within the European OpenMinTeD project established an initial set of alignments between WTO and WIPO ( Wheat INRA Phenotyping Ontology ), subsequently integrated with CO_321. This process involves a preprocessing saturation step, expanding the “annotation id” field (for CO_321 and WTO) and “observation variable id” (for CO_321), and incorporating all equivalent and subsumed class labels and synonyms. This augmentation simplifies the information retrieval process to a filtering task (see Figure 6 ). Figure 6. WheatIS screenshot of the ontology annotation filter used in a search for 'Stripe Rust'. We will enhance and refine the existing scripts to leverage ontology mapping, facilitating the retrieval of results indexed with classes mapped from one ontology to another (CO_321 to WTO or WTO to CO_321). This enhancement will enable the correlation of experimental data with literature data and vice versa. The implementation of this development is anticipated to be swift and will significantly augment the functionality of the tool. In the medium term, we envision establishing a graphical representation of the data sources based on annotation classes and mapping. This visualization will empower users to intuitively explore the mappings and navigate through them with ease. Furthermore, these mapped ontologies and corresponding data will be seamlessly integrated into the wheat knowledge graph, under development at INRAE-URGI, leveraging Neo4J ( Network Exploration and Optimization 4 Java ) technology ( https://neo4j.com/ ). This knowledge graph encompasses accessions and related phenotypic experimental data annotated with CO_321 ( Figure 7 ). The integration of literature data annotated with WTO in this graph will create a comprehensive knowledge system for exploring the biological mechanisms underlying phenotypic expressions. Figure 7. Neo4J graph schema including CO_321 variables. Update and life cycle The information retrieval system within the data discovery portals is intended for wheat breeders, experimenters and researchers. A test phase is planned to identify any errors or deviations from the intended use. Beta versions of the WheatIS and FAIDARE data discovery portals will be set up to test queries, the consistency of the results and the clarity of the explanations of retrieved data. These explanations will enable users to scrutinize the data retrieval mechanisms and suggest revisions. In addition, future updates will be triggered by revisions to the WTO and CO_321 ontologies, including the addition of new classes, as well as class merging or deletion. Representation choice We chose SSSOM as the standard for representation due to its relevance in depicting alignments, their sources, and justifications. In selecting SSSOM we sought to identify a methodology that was relevant in this particular context. Following this representation work, we identify a number of avenues for further reflection regarding the limitations of our use of SSSOM. SSSOM offers functionalities that we have not yet used, which could prove useful in the future. The level of confidence of the experts is one of them. In our work, the experts were confident in their alignments. Uncertainties, such as those concerning disease-causing pathogens, are shared by the scientific community as a whole. The main issue we encounter in the use of SSSOM concerns multiple mappings that associate a class from one ontology with several disjoint classes from the other ontology, as exemplified by the example of Table 11 . The SSSOM metadata mapping_cardinality provides insight into the alignment quality by indicating the cardinality of relations, thus potentially detecting inconsistencies in SKOS mappings. The mapping_cardinality metadata takes values of 1:n in our dataset. Specifically, in the 24 cases of multiple mappings, some are of the exactMatch type. According to SKOS specifications, skos:exactMatch should have a cardinality of “1:1”. Any deviation from this rule may indicate either erroneous mappings or duplicate classes or concepts in one or both of the aligned semantic resources. We assume that the mappings of our dataset are correct. Moreover, the designers of both ontologies consider that the classes in their ontologies are not duplicated: neither the relations in WTO nor those in CO_321 include equivalence relations between classes, and they are not linked by skos:exactMatch relations. It is the mapping process that creates pseudo-duplication of classes from the perspective of the source ontology onto the target ontology. Therefore, our current usage contravenes SKOS specifications without us having identified a satisfactory solution. Our SSSOM representation fulfills our need for formalization and sharing of our results, but its utilization will need to consider this peculiarity of multiple correspondences. We believe that the issue raised by aligning sets of classes with different degrees of precision is a general representation problem that deserves further investigation, particularly within the context of indexing scientific and experimental data by a shared conceptualization. Ethical considerations Not applicable. Ethics and consent Not applicable. Author contributions Conceptualization: Claire Nédellec, Sophie Aubin, Michael Alaux, Cyril Pommier, Liliana Ibanescu, Data curation: Clara Sauvion, Claire Nédellec, Michael Alaux, Cyril Pommier, Jacques Le Gouis, Thierry C. Marcel Formal Analysis: Robert Bossy Funding acquisition: Claire Nédellec, Sophie Aubin, Cyril Pommier, Michael Alaux Investigation: Claire Nédellec, Michael Alaux Methodology: Claire Nédellec, Sophie Aubin, Michael Alaux, Liliana Ibanescu Project administration: Claire Nédellec Resources: Robert Bossy Software: Robert Bossy, Sonia Bravo, Sophie Aubin Supervision: Claire Nédellec, Michael Alaux, Sophie Aubin Validation: Cyril Pommier Writing – original draft: Claire Nédellec, Sophie Aubin, Cyril Pommier, Michael Alaux, Liliana Ibanescu, Sonia Bravo Writing – review & editing: Jacques Le Gouis, Thierry C. Marcel, Robert Bossy, Clara Sauvion Data availability Recherche Data Gouv: Alignment of WTO and CO_321 ontology classes [Dataset] The dataset file is provided in the SSSOM TSV format together with the full rule list file at the French research open data portal: The project contains the following underlying data: 1. S1.Alignment rules.pdf 2. WTO-CO321_mappings_V1.0_02_2024.tsv https://entrepot.recherche.data.gouv.fr/dataset.xhtml?persistentId=doi:10.57745/ZLJYQO . 24 The dataset “Alignment of WTO and CO_321 ontology classes” is available under the terms of the etalab 2.0 . license. This license has been designed to be compatible with any free license that at least requires an acknowledgement of authorship, and specifically with Creative Commons’ “Creative Commons Attribution” (CC-BY). The repository is the French national public repository for research data. Acknowledgements The authors want to thank Mariya Evtimova, Thomas Letellier, Maud Marty, for their contribution on the class mapping; Catherine Faron, Raphael Flores, Nicolas Francillonne, Yosra Maestri, Franck Michel, Nadia Yacoubi for their contribution in the knowledge graphs developments (RDF and Neo4J); Clément Jonquet for its contribution to AgroPortal development and D2KAB project coordination. The authors acknowledge the following projects, networks and communities. OpenMinTeD project (H2020-EINFRA-2014-2) under grant agreement no. 654021 and the Crop Ontology project for their contribution in the development of WTO and CO_321 ontologies. FSOV 2010H SAM Blé for its contribution in the development of WTO and the text mining workflow. Investment for the Future PIA BreedWheat project funded by the French Research National Agency (ANR-10-BTBR-03), FranceAgriMer (2013-0544), and the French fund to support breeding research (FSOV-2012D); and the Whealbi project under grant agreement FP7-613556 for providing phenotypic experimental data. Wheat Information System expert working group of the Wheat Initiative and the ELIXIR plant science community for the development of the WheatIS and FAIDARE data discovery portals. Saclay Plant Sciences-SPS (ANR-17-EUR-0007) for supporting INRAE-URGI. References 1. Bonjean A: The saga of wheat—the successful story of wheat and human interaction.Bonjean A, et al. , editors. The world wheat book: a history of wheat breeding. Vol 3 . . Paris: Lavoisier; 2016; pp. 1–90. 2. Oury F, Godin C, Mailliard A, et al. : A study of genetic progress due to selection reveals a negative effect of climate change on bread wheat yield in France. Eur. J. Agron. 2012; 40 : 28–38. Publisher Full Text 3. Tardieu F, Cabrera-Bosquet L, Pridmore T, et al. : Plant phenomics, from sensors to knowledge. Curr. Biol. 2017; 27 (15): R770–R783. PubMed Abstract | Publisher Full Text 4. Pommier C, Michotey C, Cornut G, et al. : Applying FAIR Principles to Plant Phenotypic Data Management in GnpIS. Plant Phenomics. 2019 Apr 30; 2019 : 1671403. PubMed Abstract | Publisher Full Text | Free Full Text 5. Ghaffary SM, Robert O, Laurent V, et al. : Genetic analysis of resistance to septoria tritici blotch in the French winter wheat cultivars Balance and Apache. Theor. Appl. Genet. 2011 Sep; 123 (5): 741–754. PubMed Abstract | Publisher Full Text | Free Full Text 6. Alaux M, Dyer S, Sen TZ: Wheat Data Integration and FAIRification: IWGSC, GrainGenes, Ensembl and Other Data Repositories.Appels R, Eversole K, Feuillet C, et al. , editors. The Wheat Genome. Compendium of Plant Genomes. Cham: Springer; 2024. Publisher Full Text 7. Sen TZ, Caccamo M, Edwards D, et al. : Building a successful international research community through data sharing: the case of the Wheat Information System (WheatIS). F1000Res. 2020; 9 : 536. PubMed Abstract | Publisher Full Text | Free Full Text 8. Shrestha R, Matteis L, Skofic M, et al. : Bridging the phenotypic and genetic data useful for integrated breeding through a data annotation using the crop ontology developed by the crop communities of practice. Front. Physiol. 2012; 3 : 326. Free Full Text 9. Nédellec C, Ibanescu L, Bossy R, et al. : WTO, an ontology for wheat traits and phenotypes in scientific publications. Genomics Inform. 2020; 18 : e14. PubMed Abstract | Publisher Full Text | Free Full Text 10. Papoutsoglou EA, Faria D, Arend D, et al. : Enabling reusability of plant phenomic datasets with MIAPPE 1.1. New Phytol. 2020; 227 (1): 260–273. PubMed Abstract | Publisher Full Text | Free Full Text 11. Selby P, Abbeloos R, Backlund JE, et al. : BrAPI—an application programming interface for plant breeding applications. Bioinformatics. 2019; 35 (20): 4147–4155. PubMed Abstract | Publisher Full Text | Free Full Text 12. Nédellec C, Bossy R, Valsamou D, et al. : Information extraction from bibliography for marker-assisted selection in wheat. Metadata and Semantics Research: 8th Research Conference, MTSR 2014, Karlsruhe, Germany, November 27-29, 2014. Proceedings. Vol. 8 . . Springer International Publishing; 2014; 8 . : pp. 301–313. Publisher Full Text 13. Euzenat J: An API for ontology alignment. Proc. 3rd international semantic web conference (ISWC), Nov 2004, Hiroshima, Japan. pp.698–712. ff10.1007/978-3-540-30475-3_48ff. ffhal-00825931. 14. Jonquet C, Toulet A, Arnaud E, et al. : AgroPortal: A vocabulary and ontology repository for agronomy. Comput. Electron. Agric. 2018; 144 : 126–143. Publisher Full Text 15. Harrow I, Balakrishnan R, Jimenez-Ruiz E, et al. : Ontology mapping for semantically enabled applications. Drug Discov. Today. 2019; 24 (10): 2068–2075. PubMed Abstract | Publisher Full Text 16. Liu X, Tong Q, Liu X, et al. : Ontology Matching: State of the Art, Future Challenges, and Thinking Based on Utilized Information. IEEE Access. 2021; 9 : 91235–91243. Publisher Full Text 17. Shvaiko P, Euzenat J, Jiménez-Ruiz E, et al. : Proceedings of the 18th International Workshop on Ontology Matching co-located with the 22nd International Semantic Web Conference (ISWC 2023). 18. Zhou L, Thiéblin E, Cheatham M, et al. : Towards evaluating complex ontology alignments. Knowl. Eng. Rev. 2020; 35 : e21. Publisher Full Text 19. Thiéblin É, et al. : The First Version of the OAEI Complex Alignment Benchmark. International Workshop on the Semantic Web. 2018. 20. Le Franc Y, Parland-von Essen J, Bonino L, et al. : D2.2 FAIR Semantics: First recommendations (1.0 DRAFT). FAIRsFAIR. 2020. Publisher Full Text 21. Matentzoglu N, Balhoff JP, Bello SM, et al. : A Simple Standard for Sharing Ontological Mappings (SSSOM). Database (Oxford). 2022 May 25; 2022 : baac035. PubMed Abstract | Publisher Full Text | Free Full Text 22. Noy NF: Ontology mapping. Handbook on ontologies. Berlin, Heidelberg: Springer Berlin Heidelberg; 2009; pp. 573–590. 23. Alaux M, Rogers J, Letellier T, et al. : Linking the International Wheat Genome Sequencing Consortium bread wheat reference genome sequence to wheat genetic and phenomic data. Genome Biol. 2018 Aug 17; 19 (1): 111. PubMed Abstract | Publisher Full Text | Free Full Text 24. Claire N, Mariya E, Sophie A, et al. : Alignment of WTO and CO_321 ontology classes. [Dataset]. Recherche Data Gouv. 2023; V4. Publisher Full Text Footnotes 1 https://mapping-commons.github.io/sssom/spec/#sssom-metadata-elements Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 27 Sep 2024 ADD YOUR COMMENT Comment Author details Author details 1 MaIAGE, Université Paris-Saclay, INRAE, Jouy-en-Josas, France 2 DipSO, INRAE, Paris, France 3 Université Paris-Saclay, INRAE, AgroParisTech, UMR MIA Paris-Saclay, Palaiseau, France 4 INRAE, Université Clermont Auvergne, UMR GDEC, Clermont-Ferrand, France 5 Université Paris-Saclay, INRAE, UR BIOGER, Palaiseau, France 6 Université Paris-Saclay, INRAE, URGI, Versailles, France 7 BioinfOmics, Plant Bioinformatics Facility, Université Paris-Saclay, INRAE, URGI, Versailles, France Claire Nédellec Roles: Conceptualization, Data Curation, Funding Acquisition, Investigation, Methodology, Project Administration, Supervision, Writing – Original Draft Preparation Sophie Aubin Roles: Conceptualization, Funding Acquisition, Methodology, Software, Supervision, Writing – Original Draft Preparation Clara Sauvion Roles: Data Curation, Writing – Review & Editing Liliana Ibanescu Roles: Conceptualization, Methodology, Writing – Original Draft Preparation Sonia Bravo Roles: Data Curation, Software, Writing – Original Draft Preparation Jacques Le Gouis Roles: Data Curation, Writing – Review & Editing Thierry C. Marcel Roles: Data Curation, Writing – Review & Editing Cyril Pommier Roles: Conceptualization, Data Curation, Funding Acquisition, Validation, Writing – Original Draft Preparation Robert Bossy Roles: Formal Analysis, Resources, Software, Writing – Review & Editing Michael Alaux Roles: Conceptualization, Data Curation, Funding Acquisition, Investigation, Methodology, Supervision, Writing – Original Draft Preparation Competing interests No competing interests were disclosed. Grant information The project was funded by Agence Nationale de la Recherche under grant number [ANR-18-CE23-0017 D2KAB] The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript. Article Versions (1) version 1 Published: 27 Sep 2024, 13:1102 https://doi.org/10.12688/f1000research.154860.1 Copyright © 2024 Nédellec C et al . This is an open access article distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. Download Export To Sciwheel Bibtex EndNote ProCite Ref. Manager (RIS) Sente metrics Views Downloads F1000Research - - PubMed Central info_outline Data from PMC are received and updated monthly. - - Citations open_in_new 0 open_in_new 0 open_in_new SEE MORE DETAILS CITE how to cite this article Nédellec C, Aubin S, Sauvion C et al. Mapping bread wheat trait ontologies for semantic interoperability [version 1; peer review: awaiting peer review] . F1000Research 2024, 13 :1102 ( https://doi.org/10.12688/f1000research.154860.1 ) NOTE: If applicable, it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS track receive updates on this article Track an article to receive email alerts on any updates to this article. TRACK THIS ARTICLE Share Open Peer Review Current Reviewer Status: AWAITING PEER REVIEW AWAITING PEER REVIEW ? Key to Reviewer Statuses VIEW HIDE Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 27 Sep 2024 ADD YOUR COMMENT Comment keyboard_arrow_left keyboard_arrow_right Open Peer Review Reviewer Status AWAITING PEER REVIEW Comments on this article All Comments (0) Add a comment Sign up for content alerts Sign Up You are now signed up to receive this alert Browse by related subjects Alongside their report, reviewers assign a status to the article: Approved - the paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations - A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved - fundamental flaws in the paper seriously undermine the findings and conclusions Adjust parameters to alter display View on desktop for interactive features Includes Interactive Elements View on desktop for interactive features Competing Interests Policy Provide sufficient details of any financial or non-financial competing interests to enable users to assess whether your comments might lead a reasonable person to question your impartiality. Consider the following examples, but note that this is not an exhaustive list: Examples of 'Non-Financial Competing Interests' Within the past 4 years, you have held joint grants, published or collaborated with any of the authors of the selected paper. You have a close personal relationship (e.g. parent, spouse, sibling, or domestic partner) with any of the authors. You are a close professional associate of any of the authors (e.g. scientific mentor, recent student). You work at the same institute as any of the authors. You hope/expect to benefit (e.g. favour or employment) as a result of your submission. You are an Editor for the journal in which the article is published. Examples of 'Financial Competing Interests' You expect to receive, or in the past 4 years have received, any of the following from any commercial organisation that may gain financially from your submission: a salary, fees, funding, reimbursements. You expect to receive, or in the past 4 years have received, shared grant support or other funding with any of the authors. You hold, or are currently applying for, any patents or significant stocks/shares relating to the subject matter of the paper you are commenting on. Stay Updated Sign up for content alerts and receive a weekly or monthly email with all newly published articles Register with F1000Research Already registered? Sign in Not now, thanks close PLEASE NOTE If you are an AUTHOR of this article, please check that you signed in with the account associated with this article otherwise we cannot automatically identify your role as an author and your comment will be labelled as a “User Comment”. If you are a REVIEWER of this article, please check that you have signed in with the account associated with this article and then go to your account to submit your report, please do not post your review here. If you do not have access to your original account, please contact us . All commenters must hold a formal affiliation as per our Policies . The information that you give us will be displayed next to your comment. User comments must be in English, comprehensible and relevant to the article under discussion. We reserve the right to remove any comments that we consider to be inappropriate, offensive or otherwise in breach of the User Comment Terms and Conditions . Commenters must not use a comment for personal attacks. When criticisms of the article are based on unpublished data, the data should be made available. I accept the User Comment Terms and Conditions Please confirm that you accept the User Comment Terms and Conditions. Affiliation ✕ refresh Please enter your institution. Note: To add your institution or organisation, start typing the name and then select the correct name from the list. Where applicable, the name will appear in both the original language and in English. Do not paste in the name. If the name does not appear in the drop-down list, we will display the information you have entered. ✕ refresh Country/Region * USA UK Canada China France Germany Afghanistan Aland Islands Albania Algeria American Samoa Andorra Angola Anguilla Antarctica Antigua and Barbuda Argentina Armenia Aruba Australia Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Bosnia and Herzegovina Botswana Bouvet Island Brazil British Indian Ocean Territory British Virgin Islands Brunei Bulgaria Burkina Faso Burundi Cambodia Cameroon Canada Cape Verde Cayman Islands Central African Republic Chad Chile China Christmas Island Cocos (Keeling) Islands Colombia Comoros Congo Cook Islands Costa Rica Cote d'Ivoire Croatia Cuba Cyprus Czech Republic Democratic Republic of the Congo Denmark Djibouti Dominica Dominican Republic Ecuador Egypt El Salvador Equatorial Guinea Eritrea Estonia Ethiopia Falkland Islands Faroe Islands Federated States of Micronesia Fiji Finland France French Guiana French Polynesia French Southern Territories Gabon Georgia Germany Ghana Gibraltar Greece Greenland Grenada Guadeloupe Guam Guatemala Guernsey Guinea Guinea-Bissau Guyana Haiti Heard Island and Mcdonald Islands Holy See (Vatican City State) Honduras Hong Kong Hungary Iceland India Indonesia Iran Iraq Ireland Israel Italy Jamaica Japan Jersey Jordan Kazakhstan Kenya Kiribati Kosovo (Serbia and Montenegro) Kuwait Kyrgyzstan Lao People's Democratic Republic Latvia Lebanon Lesotho Liberia Libya Liechtenstein Lithuania Luxembourg Macao Madagascar Malawi Malaysia Maldives Mali Malta Marshall Islands Martinique Mauritania Mauritius Mayotte Mexico Minor Outlying Islands of the United States Moldova Monaco Mongolia Montenegro Montserrat Morocco Mozambique Myanmar Namibia Nauru Nepal Netherlands Antilles New Caledonia New Zealand Nicaragua Niger Nigeria Niue Norfolk Island North Korea North Macedonia Northern Mariana Islands Norway Oman Pakistan Palau Palestinian Territory Panama Papua New Guinea Paraguay Peru Philippines Pitcairn Poland Portugal Puerto Rico Qatar Reunion Romania Russian Federation Rwanda Saint Helena Saint Kitts and Nevis Saint Lucia Saint Pierre and Miquelon Saint Vincent and the Grenadines Samoa San Marino Sao Tome and Principe Saudi Arabia Senegal Serbia Seychelles Sierra Leone Singapore Slovakia Slovenia Solomon Islands Somalia South Africa South Georgia and the South Sandwich Is South Korea South Sudan Spain Sri Lanka Sudan Suriname Svalbard and Jan Mayen Swaziland Sweden Switzerland Syria Taiwan Tajikistan Tanzania Thailand The Gambia The Netherlands Timor-Leste Togo Tokelau Tonga Trinidad and Tobago Tunisia Turkey Turkmenistan Turks and Caicos Islands Tuvalu UK USA Uganda Ukraine United Arab Emirates United States Virgin Islands Uruguay Uzbekistan Vanuatu Venezuela Vietnam Wallis and Futuna West Bank and Gaza Strip Western Sahara Yemen Zambia Zimbabwe Please select your country/region. You must enter a comment. Competing Interests Please disclose any competing interests that might be construed to influence your judgment of the article's or peer review report's validity or importance. Competing Interests Policy Provide sufficient details of any financial or non-financial competing interests to enable users to assess whether your comments might lead a reasonable person to question your impartiality. Consider the following examples, but note that this is not an exhaustive list: Examples of 'Non-Financial Competing Interests' Within the past 4 years, you have held joint grants, published or collaborated with any of the authors of the selected paper. You have a close personal relationship (e.g. parent, spouse, sibling, or domestic partner) with any of the authors. You are a close professional associate of any of the authors (e.g. scientific mentor, recent student). You work at the same institute as any of the authors. You hope/expect to benefit (e.g. favour or employment) as a result of your submission. You are an Editor for the journal in which the article is published. Examples of 'Financial Competing Interests' You expect to receive, or in the past 4 years have received, any of the following from any commercial organisation that may gain financially from your submission: a salary, fees, funding, reimbursements. You expect to receive, or in the past 4 years have received, shared grant support or other funding with any of the authors. You hold, or are currently applying for, any patents or significant stocks/shares relating to the subject matter of the paper you are commenting on. Please state your competing interests The comment has been saved. An error has occurred. Please try again. Cancel Post var lTitle = "Mapping bread wheat trait ontologies for...".replace("'", ''); var linkedInUrl = "http://www.linkedin.com/shareArticle?url=https://f1000research.com/articles/13-1102/v1" + "&title=" + encodeURIComponent(lTitle) + "&summary=" + encodeURIComponent('Read the article by '); var deliciousUrl = "https://del.icio.us/post?url=https://f1000research.com/articles/13-1102/v1&title=" + encodeURIComponent(lTitle); var redditUrl = "http://reddit.com/submit?url=https://f1000research.com/articles/13-1102/v1" + "&title=" + encodeURIComponent(lTitle); linkedInUrl += encodeURIComponent('Nédellec C et al.'); var offsetTop = /chrome/i.test( navigator.userAgent ) ? 4 : -10; var addthis_config = { ui_offset_top: offsetTop, services_compact : "facebook,twitter,www.linkedin.com,www.mendeley.com,reddit.com", services_expanded : "facebook,twitter,www.linkedin.com,www.mendeley.com,reddit.com", services_custom : [ { name: "LinkedIn", url: linkedInUrl, icon:"/img/icon/at_linkedin.svg" }, { name: "Mendeley", url: "http://www.mendeley.com/import/?url=https://f1000research.com/articles/13-1102/v1/mendeley", icon:"/img/icon/at_mendeley.svg" }, { name: "Reddit", url: redditUrl, icon:"/img/icon/at_reddit.svg" }, ] }; var addthis_share = { url: "https://f1000research.com/articles/13-1102", templates : { twitter : "Mapping bread wheat trait ontologies for semantic interoperability. Nédellec C et al., published by " + "@F1000Research" + ", https://f1000research.com/articles/13-1102/v1" } }; if (typeof(addthis) != "undefined"){ addthis.addEventListener('addthis.ready', checkCount); addthis.addEventListener('addthis.menu.share', checkCount); } $(".f1r-shares-twitter").attr("href", "https://twitter.com/intent/tweet?text=" + addthis_share.templates.twitter); $(".f1r-shares-facebook").attr("href", "https://www.facebook.com/sharer/sharer.php?u=" + addthis_share.url); $(".f1r-shares-linkedin").attr("href", addthis_config.services_custom[0].url); $(".f1r-shares-reddit").attr("href", addthis_config.services_custom[2].url); $(".f1r-shares-mendelay").attr("href", addthis_config.services_custom[1].url); function checkCount(){ setTimeout(function(){ $(".addthis_button_expanded").each(function(){ var count = $(this).text(); if (count !== "" && count != "0") $(this).removeClass("is-hidden"); else $(this).addClass("is-hidden"); }); }, 1000); } close How to cite this report {{reportCitation}} Cancel Copy Citation Details $(function(){R.ui.buttonDropdowns('.dropdown-for-downloads');}); $(function(){R.ui.toolbarDropdowns('.toolbar-dropdown-for-downloads');}); $.get("/articles/acj/154860/169940") new F1000.Clipboard(); new F1000.ThesaurusTermsDisplay("articles", "article", "169940"); $(document).ready(function() { $( "#frame1" ).on('load', function() { var mydiv = $(this).contents().find("div"); var h = mydiv.height(); console.log(h) }); var tooltipLivingFigure = jQuery(".interactive-living-figure-label .icon-more-info"), titleLivingFigure = tooltipLivingFigure.attr("title"); tooltipLivingFigure.simpletip({ fixed: true, position: ["-115", "30"], baseClass: 'small-tooltip', content:titleLivingFigure + " " }); tooltipLivingFigure.removeAttr("title"); $("body").on("click", ".cite-living-figure", function(e) { e.preventDefault(); var ref = $(this).attr("data-ref"); $(this).closest(".living-figure-list-container").find("#" + ref).fadeIn(200); }); $("body").on("click", ".close-cite-living-figure", function(e) { e.preventDefault(); $(this).closest(".popup-window-wrapper").fadeOut(200); }); $(document).on("mouseup", function(e) { var metricsContainer = $(".article-metrics-popover-wrapper"); if (!metricsContainer.is(e.target) && metricsContainer.has(e.target).length === 0) { $(".article-metrics-close-button").click(); } }); var articleId = $('#articleId').val(); if($("#main-article-count-box").attachArticleMetrics) { $("#main-article-count-box").attachArticleMetrics(articleId, { articleMetricsView: true }); } }); var figshareWidget = $(".new_figshare_widget"); if (figshareWidget.length > 0) { window.figshare.load("f1000", function(Widget) { // Select a tag/tags defined in your page. In this tag we will place the widget. _.map(figshareWidget, function(el){ var widget = new Widget({ articleId: $(el).attr("figshare_articleId") //height:300 // this is the height of the viewer part. [Default: 550] }); widget.initialize(); // initialize the widget widget.mount(el); // mount it in a tag that's on your page // this will save the widget on the global scope for later use from // your JS scripts. This line is optional. //window.widget = widget; }); }); } close Error Close Add Reset F1000.MICROSERVICES.AFFILIATION = ''; $(document).ready(function () { $('.js-affiliations-form').each((index, form) => { new AffiliationForm({ formId: form.id, institutionErrorSelector: '.comment-enter-institution', departmentErrorSelector: '.comment-enter-department', placeSelector: '.js-add-comment-place', stateSelector: '.js-add-comment-state', zipCodeSelector: '.js-add-comment-zipcode', countrySelector: '.js-add-comment-country', countryErrorSelector: '.comment-enter-country', }); }); }); $(document).ready(function () { var reportIds = { "334341": 0, "327685": 0, "334340": 0, "327684": 0, "334343": 0, "327687": 0, "334342": 0, "327686": 0, "334337": 0, "334339": 0, "327683": 0, "334338": 0, "327692": 0, "334345": 0, "327689": 0, "334344": 0, "327688": 0, "327691": 0, "334346": 0, "327690": 0, "373534": 0, "349094": 0, "373539": 0, "373548": 0, "349096": 0, "373547": 0, "373546": 0, "330549": 0, "330548": 0, "373559": 0, "330551": 0, "336310": 0, "330550": 0, "330545": 0, "330547": 0, "330546": 0, "373561": 0, "330553": 0, "373560": 0, "330552": 0, "330554": 0, "337757": 0, "343004": 0, "337756": 0, "337759": 0, "337758": 0, "343001": 0, "343000": 0, "343003": 0, "343002": 0, "337765": 0, "337764": 0, "337761": 0, "337760": 0, "337763": 0, "337762": 0, }; $(".referee-response-container,.js-referee-report").each(function(index, el) { var reportId = $(el).attr("data-reportid"), reportCount = reportIds[reportId] || 0; $(el).find(".comments-count-container,.js-referee-report-views").html(reportCount); }); var uuidInput = $("#article_uuid"), oldUUId = uuidInput.val(), newUUId = "f9147726-47da-4797-821b-184816338f32"; uuidInput.val(newUUId); $("a[href*='article_uuid=']").each(function(index, el) { var newHref = $(el).attr("href").replace(oldUUId, newUUId); $(el).attr("href", newHref); }); }); An innovative open access publishing platform offering rapid publication and open peer review, whilst supporting data deposition and sharing. Browse Gateways Collections How it Works Contact For Developers Cookie Notice Privacy Notice RSS Submit Your Research Follow us © 2012-2026 F1000 Research Ltd. ISSN 2046-1402 | Legal | Partner of Research4Life • CrossRef • ORCID • FAIRSharing R.templateTests.simpleTemplate = R.template(' $text $text $text $text $text '); R.templateTests.runTests(); var F1000platform = new F1000.Platform({ name: "f1000research", displayName: "F1000Research", hostName: "f1000research.com", id: "1", editorialEmail: "
[email protected]", infoEmail: "
[email protected]", usePmcStats: true }); $(function(){R.ui.dropdowns('.dropdown-for-authors, .dropdown-for-about, .dropdown-for-myresearch');}); // $(function(){R.ui.dropdowns('.dropdown-for-referees');}); $(document).ready(function () { if ($(".cookie-warning").is(":visible")) { $(".sticky").css("margin-bottom", "35px"); $(".devices").addClass("devices-and-cookie-warning"); } $(".cookie-warning .close-button").click(function (e) { $(".devices").removeClass("devices-and-cookie-warning"); $(".sticky").css("margin-bottom", "0"); }); $("#tweeter-feed .tweet-message").each(function (i, message) { var self = $(message); self.html(linkify(self.html())); }); $(".partner").on("mouseenter mouseleave", function() { $(this).find(".gray-scale, .colour").toggleClass("is-hidden"); }); }); Sign In Remember me Forgotten your password? Sign In Cancel Email or password not correct. Please try again Please wait... $(function(){ // Note: All the setup needs to run against a name attribute and *not* the id due the clonish // nature of facebox... $("a[id=googleSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("GOOGLE"); $("form[id=oAuthForm]").submit(); }); $("a[id=facebookSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("FACEBOOK"); $("form[id=oAuthForm]").submit(); }); $("a[id=orcidSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("ORCID"); $("form[id=oAuthForm]").submit(); }); }); If you've forgotten your password, please enter your email address below and we'll send you instructions on how to reset your password. The email address should be the one you originally registered with F1000. Email address not valid, please try again You registered with F1000 via Google, so we cannot reset your password. To sign in, please click here . If you still need help with your Google account password, please click here . You registered with F1000 via Facebook, so we cannot reset your password. To sign in, please click here . If you still need help with your Facebook account password, please click here . Code not correct, please try again Reset password Cancel Email us for further assistance. Server error, please try again. If your email address is registered with us, we will email you instructions to reset your password. If you think you should have received this email but it has not arrived, please check your spam filters and/or contact for further assistance. Please wait... Register $(document).ready(function () { signIn.createSignInAsRow($("#sign-in-form-gfb-popup")); $(".target-field").each(function () { var uris = $(this).val().split("/"); if (uris.pop() === "login") { $(this).val(uris.toString().replace(",","/")); } }); });
Text is read by the "Ask this paper" AI Q&A widget below.
Extraction quality varies by source — PMC NXML preserves structure
cleanly, OA-HTML may include some navigation residue, and OA-PDF can
have broken hyphenation. The publisher copy
(via DOI)
is the canonical version.