diff --git a/404.html b/404.html index 88507aa85a..ee31c1a79d 100644 --- a/404.html +++ b/404.html @@ -4,8 +4,8 @@ Page Not Found | TNO Terminology Design - - + +
@@ -17,7 +17,7 @@ .  Copyright © 2022-2023 by TNO.

- - + + \ No newline at end of file diff --git a/assets/js/0243614c.a47f416d.js b/assets/js/0243614c.f3950ee7.js similarity index 99% rename from assets/js/0243614c.a47f416d.js rename to assets/js/0243614c.f3950ee7.js index 61f8dcc6ce..9977a727e9 100644 --- a/assets/js/0243614c.a47f416d.js +++ b/assets/js/0243614c.f3950ee7.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[1277],{3905:function(e,t,a){a.d(t,{Zo:function(){return f},kt:function(){return u}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},f=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,f=s(e,["components","mdxType","originalType","parentName"]),h=p(a),u=r,d=h["".concat(c,".").concat(u)]||h[u]||l[u]||i;return a?n.createElement(d,o(o({ref:t},f),{},{components:a})):n.createElement(d,o({ref:t},f))}));function u(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=h;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var p=2;p=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},f=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,f=s(e,["components","mdxType","originalType","parentName"]),h=p(a),u=r,d=h["".concat(c,".").concat(u)]||h[u]||l[u]||i;return a?n.createElement(d,o(o({ref:t},f),{},{components:a})):n.createElement(d,o({ref:t},f))}));function u(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=h;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var p=2;p=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=s.createContext({}),p=function(e){var t=s.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},c=function(e){var t=p(e.components);return s.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},m=s.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=p(r),f=o,y=m["".concat(l,".").concat(f)]||m[f]||u[f]||n;return r?s.createElement(y,a(a({ref:t},c),{},{components:r})):s.createElement(y,a({ref:t},c))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,a=new Array(n);a[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:o,a[1]=i;for(var p=2;p=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=s.createContext({}),p=function(e){var t=s.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},c=function(e){var t=p(e.components);return s.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},m=s.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=p(r),f=o,y=m["".concat(l,".").concat(f)]||m[f]||u[f]||n;return r?s.createElement(y,a(a({ref:t},c),{},{components:r})):s.createElement(y,a({ref:t},c))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,a=new Array(n);a[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:o,a[1]=i;for(var p=2;p=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var c=i.createContext({}),p=function(e){var t=i.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},m=function(e){var t=p(e.components);return i.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},l=i.forwardRef((function(e,t){var n=e.components,s=e.mdxType,a=e.originalType,c=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),l=p(n),u=s,d=l["".concat(c,".").concat(u)]||l[u]||h[u]||a;return n?i.createElement(d,r(r({ref:t},m),{},{components:n})):i.createElement(d,r({ref:t},m))}));function u(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var a=n.length,r=new Array(a);r[0]=l;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o.mdxType="string"==typeof e?e:s,r[1]=o;for(var p=2;p=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var c=i.createContext({}),p=function(e){var t=i.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},m=function(e){var t=p(e.components);return i.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},l=i.forwardRef((function(e,t){var n=e.components,s=e.mdxType,a=e.originalType,c=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),l=p(n),u=s,d=l["".concat(c,".").concat(u)]||l[u]||h[u]||a;return n?i.createElement(d,r(r({ref:t},m),{},{components:n})):i.createElement(d,r({ref:t},m))}));function u(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var a=n.length,r=new Array(a);r[0]=l;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o.mdxType="string"==typeof e?e:s,r[1]=o;for(var p=2;p=0||(n[i]=t[i]);return n}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(n[i]=t[i])}return n}var h=o.createContext({}),c=function(t){var e=o.useContext(h),i=e;return t&&(i="function"==typeof t?t(e):s(s({},e),t)),i},m=function(t){var e=c(t.components);return o.createElement(h.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},p=o.forwardRef((function(t,e){var i=t.components,n=t.mdxType,a=t.originalType,h=t.parentName,m=r(t,["components","mdxType","originalType","parentName"]),p=c(i),l=n,g=p["".concat(h,".").concat(l)]||p[l]||d[l]||a;return i?o.createElement(g,s(s({ref:e},m),{},{components:i})):o.createElement(g,s({ref:e},m))}));function l(t,e){var i=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var a=i.length,s=new Array(a);s[0]=p;var r={};for(var h in e)hasOwnProperty.call(e,h)&&(r[h]=e[h]);r.originalType=t,r.mdxType="string"==typeof t?t:n,s[1]=r;for(var c=2;c=0||(n[i]=t[i]);return n}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(n[i]=t[i])}return n}var h=o.createContext({}),c=function(t){var e=o.useContext(h),i=e;return t&&(i="function"==typeof t?t(e):s(s({},e),t)),i},m=function(t){var e=c(t.components);return o.createElement(h.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},p=o.forwardRef((function(t,e){var i=t.components,n=t.mdxType,a=t.originalType,h=t.parentName,m=r(t,["components","mdxType","originalType","parentName"]),p=c(i),l=n,g=p["".concat(h,".").concat(l)]||p[l]||d[l]||a;return i?o.createElement(g,s(s({ref:e},m),{},{components:i})):o.createElement(g,s({ref:e},m))}));function l(t,e){var i=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var a=i.length,s=new Array(a);s[0]=p;var r={};for(var h in e)hasOwnProperty.call(e,h)&&(r[h]=e[h]);r.originalType=t,r.mdxType="string"==typeof t?t:n,s[1]=r;for(var c=2;c=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),u=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},h=function(e){var t=u(e.components);return a.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},l=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,h=i(e,["components","mdxType","originalType","parentName"]),l=u(r),p=n,m=l["".concat(c,".").concat(p)]||l[p]||d[p]||o;return r?a.createElement(m,s(s({ref:t},h),{},{components:r})):a.createElement(m,s({ref:t},h))}));function p(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,s=new Array(o);s[0]=l;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:n,s[1]=i;for(var u=2;u=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),u=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},h=function(e){var t=u(e.components);return a.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},l=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,h=i(e,["components","mdxType","originalType","parentName"]),l=u(r),p=n,m=l["".concat(c,".").concat(p)]||l[p]||d[p]||o;return r?a.createElement(m,s(s({ref:t},h),{},{components:r})):a.createElement(m,s({ref:t},h))}));function p(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,s=new Array(o);s[0]=l;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:n,s[1]=i;for(var u=2;u=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var l=n.createContext({}),d=function(t){var e=n.useContext(l),a=e;return t&&(a="function"==typeof t?t(e):o(o({},e),t)),a},p=function(t){var e=d(t.components);return n.createElement(l.Provider,{value:e},t.children)},m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},c=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,l=t.parentName,p=s(t,["components","mdxType","originalType","parentName"]),c=d(a),f=r,h=c["".concat(l,".").concat(f)]||c[f]||m[f]||i;return a?n.createElement(h,o(o({ref:e},p),{},{components:a})):n.createElement(h,o({ref:e},p))}));function f(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,o=new Array(i);o[0]=c;var s={};for(var l in e)hasOwnProperty.call(e,l)&&(s[l]=e[l]);s.originalType=t,s.mdxType="string"==typeof t?t:r,o[1]=s;for(var d=2;d=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var l=n.createContext({}),d=function(t){var e=n.useContext(l),a=e;return t&&(a="function"==typeof t?t(e):o(o({},e),t)),a},p=function(t){var e=d(t.components);return n.createElement(l.Provider,{value:e},t.children)},m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},c=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,l=t.parentName,p=s(t,["components","mdxType","originalType","parentName"]),c=d(a),f=r,h=c["".concat(l,".").concat(f)]||c[f]||m[f]||i;return a?n.createElement(h,o(o({ref:e},p),{},{components:a})):n.createElement(h,o({ref:e},p))}));function f(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,o=new Array(i);o[0]=c;var s={};for(var l in e)hasOwnProperty.call(e,l)&&(s[l]=e[l]);s.originalType=t,s.mdxType="string"==typeof t?t:r,o[1]=s;for(var d=2;d=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var l=o.createContext({}),c=function(e){var t=o.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):r(r({},t),e)),i},p=function(e){var t=c(e.components);return o.createElement(l.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(i),m=n,f=d["".concat(l,".").concat(m)]||d[m]||h[m]||a;return i?o.createElement(f,r(r({ref:t},p),{},{components:i})):o.createElement(f,r({ref:t},p))}));function m(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,r=new Array(a);r[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,r[1]=s;for(var c=2;c child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:i.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function d(e){var t=e.values,i=e.children;return(0,n.useMemo)((function(){var e=null!=t?t:h(i);return function(e){var t=(0,c.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,i])}function m(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function f(e){var t=e.queryString,i=void 0!==t&&t,o=e.groupId,a=(0,s.k6)(),r=function(e){var t=e.queryString,i=void 0!==t&&t,o=e.groupId;if("string"==typeof i)return i;if(!1===i)return null;if(!0===i&&!o)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=o?o:null}({queryString:i,groupId:o});return[(0,l._X)(r),(0,n.useCallback)((function(e){if(r){var t=new URLSearchParams(a.location.search);t.set(r,e),a.replace(Object.assign({},a.location,{search:t.toString()}))}}),[r,a])]}function u(e){var t,i,o,a,r=e.defaultValue,s=e.queryString,l=void 0!==s&&s,c=e.groupId,h=d(e),u=(0,n.useState)((function(){return function(e){var t,i=e.defaultValue,o=e.tabValues;if(0===o.length)throw new Error("Docusaurus error: the component requires at least one children component");if(i){if(!m({value:i,tabValues:o}))throw new Error('Docusaurus error: The has a defaultValue "'+i+'" but none of its children has the corresponding value. Available values are: '+o.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return i}var n=null!=(t=o.find((function(e){return e.default})))?t:o[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:r,tabValues:h})})),g=u[0],v=u[1],y=f({queryString:l,groupId:c}),k=y[0],b=y[1],w=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:c}.groupId),i=(0,p.Nk)(t),o=i[0],a=i[1],[o,(0,n.useCallback)((function(e){t&&a.set(e)}),[t,a])]),N=w[0],S=w[1],T=function(){var e=null!=k?k:N;return m({value:e,tabValues:h})?e:null}();return(0,n.useLayoutEffect)((function(){T&&v(T)}),[T]),{selectedValue:g,selectValue:(0,n.useCallback)((function(e){if(!m({value:e,tabValues:h}))throw new Error("Can't select invalid tab value="+e);v(e),b(e),S(e)}),[b,S,h]),tabValues:h}}var g=i(2389),v="tabList__CuJ",y="tabItem_LNqP";function k(e){var t=e.className,i=e.block,s=e.selectedValue,l=e.selectValue,c=e.tabValues,p=[],h=(0,r.o5)().blockElementScrollPositionUntilNextRender,d=function(e){var t=e.currentTarget,i=p.indexOf(t),o=c[i].value;o!==s&&(h(t),l(o))},m=function(e){var t,i=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":var o,n=p.indexOf(e.currentTarget)+1;i=null!=(o=p[n])?o:p[0];break;case"ArrowLeft":var a,r=p.indexOf(e.currentTarget)-1;i=null!=(a=p[r])?a:p[p.length-1]}null==(t=i)||t.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":i},t)},c.map((function(e){var t=e.value,i=e.label,r=e.attributes;return n.createElement("li",(0,o.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:function(e){return p.push(e)},onKeyDown:m,onClick:d},r,{className:(0,a.Z)("tabs__item",y,null==r?void 0:r.className,{"tabs__item--active":s===t})}),null!=i?i:t)})))}function b(e){var t=e.lazy,i=e.children,o=e.selectedValue,a=(Array.isArray(i)?i:[i]).filter(Boolean);if(t){var r=a.find((function(e){return e.props.value===o}));return r?(0,n.cloneElement)(r,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},a.map((function(e,t){return(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==o})})))}function w(e){var t=u(e);return n.createElement("div",{className:(0,a.Z)("tabs-container",v)},n.createElement(k,(0,o.Z)({},e,t)),n.createElement(b,(0,o.Z)({},e,t)))}function N(e){var t=(0,g.Z)();return n.createElement(w,(0,o.Z)({key:String(t)},e))}},361:function(e,t,i){i.r(t),i.d(t,{assets:function(){return p},contentTitle:function(){return l},default:function(){return f},frontMatter:function(){return s},mark:function(){return d},metadata:function(){return c},toc:function(){return h}});var o=i(7462),n=i(3366),a=(i(7294),i(3905)),r=(i(4996),i(4866),i(5162),["components"]),s={id:"mrg-importer",sidebar_label:"MRG Importer",date:20230731},l="MRG Import Tool",c={unversionedId:"spec-tools/mrg-importer",id:"spec-tools/mrg-importer",title:"MRG Import Tool",description:"text to mark",source:"@site/docs/spec-tools/12-mrg-importer.md",sourceDirName:"spec-tools",slug:"/spec-tools/mrg-importer",permalink:"/tev2-specifications/docs/spec-tools/mrg-importer",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-tools/12-mrg-importer.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695712473,formattedLastUpdatedAt:"Sep 26, 2023",sidebarPosition:12,frontMatter:{id:"mrg-importer",sidebar_label:"MRG Importer",date:20230731},sidebar:"tev2SideBar",previous:{title:"Integrity Checking",permalink:"/tev2-specifications/docs/spec-tools/ict"},next:{title:"Term Ref Resolution",permalink:"/tev2-specifications/docs/spec-tools/trrt"}},p={},h=[{value:"Installing the Tool",id:"installing-the-tool",level:2},{value:"Calling the Tool",id:"calling-the-tool",level:2},{value:"Processing, Errors and Warnings",id:"processing-errors-and-warnings",level:2},{value:"Deploying the Tool",id:"deploying-the-tool",level:2}],d=function(e){var t=e.children;return(0,a.kt)("span",{style:{color:"black",backgroundColor:"yellow",padding:"0.2rem",borderRadius:"2px"}},t)},m={toc:h,mark:d};function f(e){var t=e.components,i=(0,n.Z)(e,r);return(0,a.kt)("wrapper",(0,o.Z)({},m,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"mrg-import-tool"},"MRG Import Tool"),(0,a.kt)("admonition",{title:"Editor's Note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This section is still under development. You'll see further editor's notes where issues exist.")),(0,a.kt)("p",null,"The ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," Import Tool (",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer"),")")," ensures that the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which it is run, obtains a local copy of all ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," that are available in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," that are mentioned in the ",(0,a.kt)("a",{parentName:"p",href:"/docs/spec-files/saf#scopes"},"scopes section")," of its ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". This makes life easy for various tools, e.g., the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," and the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT"),", that can now assume that all ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," that they may need to consult in order to do their job, are readily available. "),(0,a.kt)("p",null,"There will shortly be an implementation of the tool:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"the repo for the code of the tool is ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/tno-terminology-design/mrg-import"},"here"),"."),(0,a.kt)("li",{parentName:"ul"},"the documentation is ","[",(0,a.kt)("mark",null,"tbd"),"]",".")),(0,a.kt)("h2",{id:"installing-the-tool"},"Installing the Tool"),(0,a.kt)("p",null,"The tool can be installed from the command line and made globally available by executing"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"npm install tno-terminology-design/mrg-import -g\n")),(0,a.kt)("h2",{id:"calling-the-tool"},"Calling the Tool"),(0,a.kt)("p",null,"The behavior of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," can be configured per call e.g. by a configuration file and/or command-line parameters. The command-line syntax is as follows:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"mrg-import [ ]\n")),(0,a.kt)("p",null,"where:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"")," (optional) is a list of key-value pairs")),(0,a.kt)("details",null,(0,a.kt)("summary",null,"Legend"),(0,a.kt)("p",null,"The columns in the following table are defined as follows:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},(0,a.kt)("inlineCode",{parentName:"strong"},"Key"))," is the text to be used as a key."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},(0,a.kt)("inlineCode",{parentName:"strong"},"Value"))," represents the kind of value to be used."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},(0,a.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,a.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,a.kt)("inlineCode",{parentName:"li"},"n"),") the field is required to be present when the tool is being called. If required, it MUST either be present in the configuration file, or as a command-line parameter."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},(0,a.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the ",(0,a.kt)("inlineCode",{parentName:"li"},"Value")," field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"left"},"Key"),(0,a.kt)("th",{parentName:"tr",align:"left"},"Value"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,a.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"config")),(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"")),(0,a.kt)("td",{parentName:"tr",align:"center"},"n"),(0,a.kt)("td",{parentName:"tr",align:"left"},"Path (including the filename) of the tool's (YAML) configuration file. This file contains the default key-value pairs to be used. Allowed keys (and the associated values) are documented in this table. Command-line arguments override key-value pairs specified in the configuration file. This parameter MUST NOT appear in the configuration file itself.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"")),(0,a.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,a.kt)("td",{parentName:"tr",align:"left"},"Path of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," from which the tool is called. It MUST contain the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," for that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which we will refer to as the 'current scope' for the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer"),".")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"onNotExist")),(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"")),(0,a.kt)("td",{parentName:"tr",align:"center"},"n"),(0,a.kt)("td",{parentName:"tr",align:"left"},"specifies the action to take in case an MRG file that was expected to exist, does not exist. Default is ",(0,a.kt)("inlineCode",{parentName:"td"},"'throw'"),".")))),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"")," parameter can take the following values:"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"th"},"")),(0,a.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"'throw'")),(0,a.kt)("td",{parentName:"tr",align:"left"},"an error is thrown (an exception is raised), and processing will stop.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"'warn'")),(0,a.kt)("td",{parentName:"tr",align:"left"},"a message is displayed (and logged) and processing continues.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"'log'")),(0,a.kt)("td",{parentName:"tr",align:"left"},"a message is written to a log(file) and processing continues.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"'ignore'")),(0,a.kt)("td",{parentName:"tr",align:"left"},"processing continues as if nothing happened.")))),(0,a.kt)("h2",{id:"processing-errors-and-warnings"},"Processing, Errors and Warnings"),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," starts by reading its command-line and configuration file. If the command-line has a key that is also found in the configuration file, the command-line key-value pair takes precedence. The resulting set of key-value pairs is tested for proper syntax and validity. Every improper syntax and every invalidity found will be logged. Improper syntax may be e.g. an invalid ",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},"globpattern"),". Invalidities include non-existing directories or files, lack of write-permissions where needed, etc."),(0,a.kt)("p",null,"Then, the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," reads the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from which the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," is called. We will use the following names for values that are in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{my-own-scopetag}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"scopetag"),"-field from the ",(0,a.kt)("inlineCode",{parentName:"li"},"scope"),"-section"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{my-own-scopedir}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"scopedir"),"-field from the ",(0,a.kt)("inlineCode",{parentName:"li"},"scope"),"-section"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{my-own-glossarydir}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"glossarydir"),"-field from the ",(0,a.kt)("inlineCode",{parentName:"li"},"scope"),"-section")),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," also reads the ",(0,a.kt)("a",{parentName:"p",href:"/tev2-specifications/docs/spec-files/saf#scopes"},"scopes section")," of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", which specifies the 'other' ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," from which the actively maintained ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," have to be imported. This ",(0,a.kt)("a",{parentName:"p",href:"/tev2-specifications/docs/spec-files/saf#scopes"},"scopes section")," contains elements that consist of two parts, whose values we will refer to by the following names:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{import-scopetag}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"scopetag"),"-field from the ",(0,a.kt)("inlineCode",{parentName:"li"},"scopes"),"-section of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{import-scopedir}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"scopedir"),"-field from the ",(0,a.kt)("inlineCode",{parentName:"li"},"scopes"),"-section of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"))),(0,a.kt)("p",null,"For every ",(0,a.kt)("inlineCode",{parentName:"p"},"{import-scopedir}"),", the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," will read its ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," to find out which ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminologies")," are being actively maintained (we will use ",(0,a.kt)("inlineCode",{parentName:"p"},"{import-saf}")," to refer to the contents of this ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),")."),(0,a.kt)("admonition",{title:"Editor's note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Reading a SAF may require authentication, e.g. when the scopedir of the other scope is in a private or enterprise repo. How the MRG importer will be dealing with this remains to be specified.")),(0,a.kt)("p",null,"We will use:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{other-scopetag}")," = the ",(0,a.kt)("inlineCode",{parentName:"li"},"scopetag"),"-field in the ",(0,a.kt)("inlineCode",{parentName:"li"},"scope")," section of ",(0,a.kt)("inlineCode",{parentName:"li"},"{import-saf}"),";"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{other-glossarydir}")," = the ",(0,a.kt)("inlineCode",{parentName:"li"},"glossarydir"),"-field in the ",(0,a.kt)("inlineCode",{parentName:"li"},"scope")," section of ",(0,a.kt)("inlineCode",{parentName:"li"},"{import-saf}"),";")),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{parentName:"p",href:"/tev2-specifications/docs/spec-files/saf#versions"},"versions-section")," in ",(0,a.kt)("inlineCode",{parentName:"p"},"{import-saf}")," specifies which ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminologies")," are actively maintained within the other ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and hence have to be imported. Every such ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," is specified by an entry in this section, and must hence be processed to import the associated ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),". "),(0,a.kt)("p",null,"To specify one such process, we will use:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{other-vsntag}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"vsntag"),"-field in the element of the ",(0,a.kt)("inlineCode",{parentName:"li"},"versions")," section of ",(0,a.kt)("inlineCode",{parentName:"li"},"{import-saf}")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{other-altvsntags}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"altvsntags"),"-field in an element of the ",(0,a.kt)("inlineCode",{parentName:"li"},"versions")," section of ",(0,a.kt)("inlineCode",{parentName:"li"},"{import-saf}"))),(0,a.kt)("p",null,"To import the associated ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),", here is what we do:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"read the file ",(0,a.kt)("inlineCode",{parentName:"li"},"{import-scopedir}/{import-glossarydir}/mrg.{other-scopetag}.{other-vsntag}.yaml"),", which is the file that contains the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that needs to be imported. If that file doesn't exist, this results in the bahaviour as specified by the ",(0,a.kt)("inlineCode",{parentName:"li"},"")," value of the ",(0,a.kt)("inlineCode",{parentName:"li"},"onNotExist")," parameter. Default is ",(0,a.kt)("inlineCode",{parentName:"li"},"throw"),".",(0,a.kt)("admonition",{parentName:"li",title:"Editor's note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"It may well be possible that contents of the mrg may need to be processed.\nThis is due to the fact that ",(0,a.kt)("inlineCode",{parentName:"p"},"scopetag"),"s are 'local' names for referring to scopes and every scope gets to decide on its own scoptag names. So the meaning of 'scopetags' cannot be transferred across scopes. We have to use universal/fixed identifiers, such as a ",(0,a.kt)("inlineCode",{parentName:"p"},"scopedir"),"-URL to identify scopes. Still, local names can be useful (and are necessary), so we'll have to figure out what the impact of this is.\ned:::"))),(0,a.kt)("li",{parentName:"ul"},"write the contents to ",(0,a.kt)("inlineCode",{parentName:"li"},"{my-scopedir}/{my-glossarydir}/mrg.{import-scopetag}.{other-vsntag}.yaml"),", overwriting a file that has the same name if that were to exist."),(0,a.kt)("li",{parentName:"ul"},"for every ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," in ",(0,a.kt)("inlineCode",{parentName:"li"},"{other-altvsntags}")," (which we call ",(0,a.kt)("inlineCode",{parentName:"li"},"{other-altvsntag}"),"), a symbolic link ",(0,a.kt)("inlineCode",{parentName:"li"},"mrg.{import-scopetag}.{other-altvsntag}.yaml")," is created in the ",(0,a.kt)("inlineCode",{parentName:"li"},"{my-scopedir}/{my-glossarydir}/")," directory, that links to the ",(0,a.kt)("inlineCode",{parentName:"li"},"mrg.{import-scopetag}.{other-vsntag}.yaml")," file that was just created in that same directory.")),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("mdxAdmonitionTitle",{parentName:"admonition"},"NOTE the change of the ",(0,a.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"scopetag")," part in the filename!"),(0,a.kt)("p",{parentName:"admonition"},"The name of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from which it is imported may differ from the name of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that is imported. The reason for this is that the names (",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags")," that are used in these ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," to refer to the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from where ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," are imported, may differ.")),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," logs every error- and/or warning condition that it comes across while processing its configuration file, commandline parameters, and input files, in a way that helps tool-operators and document ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," to identify and fix such conditions."),(0,a.kt)("h2",{id:"deploying-the-tool"},"Deploying the Tool"),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," comes with documentation that enables developers to ascertain its correct functioning (e.g. by using a test set of files, test scripts that exercise its parameters, etc.), and also enables them to deploy the tool in a git repo and author/modify CI-pipes to use that deployment."))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[8136],{3905:function(e,t,i){i.d(t,{Zo:function(){return p},kt:function(){return m}});var o=i(7294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,o)}return i}function r(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var l=o.createContext({}),c=function(e){var t=o.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):r(r({},t),e)),i},p=function(e){var t=c(e.components);return o.createElement(l.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(i),m=n,f=d["".concat(l,".").concat(m)]||d[m]||h[m]||a;return i?o.createElement(f,r(r({ref:t},p),{},{components:i})):o.createElement(f,r({ref:t},p))}));function m(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,r=new Array(a);r[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,r[1]=s;for(var c=2;c child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:i.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function d(e){var t=e.values,i=e.children;return(0,n.useMemo)((function(){var e=null!=t?t:h(i);return function(e){var t=(0,c.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,i])}function m(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function f(e){var t=e.queryString,i=void 0!==t&&t,o=e.groupId,a=(0,s.k6)(),r=function(e){var t=e.queryString,i=void 0!==t&&t,o=e.groupId;if("string"==typeof i)return i;if(!1===i)return null;if(!0===i&&!o)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=o?o:null}({queryString:i,groupId:o});return[(0,l._X)(r),(0,n.useCallback)((function(e){if(r){var t=new URLSearchParams(a.location.search);t.set(r,e),a.replace(Object.assign({},a.location,{search:t.toString()}))}}),[r,a])]}function u(e){var t,i,o,a,r=e.defaultValue,s=e.queryString,l=void 0!==s&&s,c=e.groupId,h=d(e),u=(0,n.useState)((function(){return function(e){var t,i=e.defaultValue,o=e.tabValues;if(0===o.length)throw new Error("Docusaurus error: the component requires at least one children component");if(i){if(!m({value:i,tabValues:o}))throw new Error('Docusaurus error: The has a defaultValue "'+i+'" but none of its children has the corresponding value. Available values are: '+o.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return i}var n=null!=(t=o.find((function(e){return e.default})))?t:o[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:r,tabValues:h})})),g=u[0],v=u[1],y=f({queryString:l,groupId:c}),k=y[0],b=y[1],w=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:c}.groupId),i=(0,p.Nk)(t),o=i[0],a=i[1],[o,(0,n.useCallback)((function(e){t&&a.set(e)}),[t,a])]),N=w[0],S=w[1],T=function(){var e=null!=k?k:N;return m({value:e,tabValues:h})?e:null}();return(0,n.useLayoutEffect)((function(){T&&v(T)}),[T]),{selectedValue:g,selectValue:(0,n.useCallback)((function(e){if(!m({value:e,tabValues:h}))throw new Error("Can't select invalid tab value="+e);v(e),b(e),S(e)}),[b,S,h]),tabValues:h}}var g=i(2389),v="tabList__CuJ",y="tabItem_LNqP";function k(e){var t=e.className,i=e.block,s=e.selectedValue,l=e.selectValue,c=e.tabValues,p=[],h=(0,r.o5)().blockElementScrollPositionUntilNextRender,d=function(e){var t=e.currentTarget,i=p.indexOf(t),o=c[i].value;o!==s&&(h(t),l(o))},m=function(e){var t,i=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":var o,n=p.indexOf(e.currentTarget)+1;i=null!=(o=p[n])?o:p[0];break;case"ArrowLeft":var a,r=p.indexOf(e.currentTarget)-1;i=null!=(a=p[r])?a:p[p.length-1]}null==(t=i)||t.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":i},t)},c.map((function(e){var t=e.value,i=e.label,r=e.attributes;return n.createElement("li",(0,o.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:function(e){return p.push(e)},onKeyDown:m,onClick:d},r,{className:(0,a.Z)("tabs__item",y,null==r?void 0:r.className,{"tabs__item--active":s===t})}),null!=i?i:t)})))}function b(e){var t=e.lazy,i=e.children,o=e.selectedValue,a=(Array.isArray(i)?i:[i]).filter(Boolean);if(t){var r=a.find((function(e){return e.props.value===o}));return r?(0,n.cloneElement)(r,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},a.map((function(e,t){return(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==o})})))}function w(e){var t=u(e);return n.createElement("div",{className:(0,a.Z)("tabs-container",v)},n.createElement(k,(0,o.Z)({},e,t)),n.createElement(b,(0,o.Z)({},e,t)))}function N(e){var t=(0,g.Z)();return n.createElement(w,(0,o.Z)({key:String(t)},e))}},361:function(e,t,i){i.r(t),i.d(t,{assets:function(){return p},contentTitle:function(){return l},default:function(){return f},frontMatter:function(){return s},mark:function(){return d},metadata:function(){return c},toc:function(){return h}});var o=i(7462),n=i(3366),a=(i(7294),i(3905)),r=(i(4996),i(4866),i(5162),["components"]),s={id:"mrg-importer",sidebar_label:"MRG Importer",date:20230731},l="MRG Import Tool",c={unversionedId:"spec-tools/mrg-importer",id:"spec-tools/mrg-importer",title:"MRG Import Tool",description:"text to mark",source:"@site/docs/spec-tools/12-mrg-importer.md",sourceDirName:"spec-tools",slug:"/spec-tools/mrg-importer",permalink:"/tev2-specifications/docs/spec-tools/mrg-importer",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-tools/12-mrg-importer.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695968786,formattedLastUpdatedAt:"Sep 29, 2023",sidebarPosition:12,frontMatter:{id:"mrg-importer",sidebar_label:"MRG Importer",date:20230731},sidebar:"tev2SideBar",previous:{title:"Integrity Checking",permalink:"/tev2-specifications/docs/spec-tools/ict"},next:{title:"Term Ref Resolution",permalink:"/tev2-specifications/docs/spec-tools/trrt"}},p={},h=[{value:"Installing the Tool",id:"installing-the-tool",level:2},{value:"Calling the Tool",id:"calling-the-tool",level:2},{value:"Processing, Errors and Warnings",id:"processing-errors-and-warnings",level:2},{value:"Deploying the Tool",id:"deploying-the-tool",level:2}],d=function(e){var t=e.children;return(0,a.kt)("span",{style:{color:"black",backgroundColor:"yellow",padding:"0.2rem",borderRadius:"2px"}},t)},m={toc:h,mark:d};function f(e){var t=e.components,i=(0,n.Z)(e,r);return(0,a.kt)("wrapper",(0,o.Z)({},m,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"mrg-import-tool"},"MRG Import Tool"),(0,a.kt)("admonition",{title:"Editor's Note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This section is still under development. You'll see further editor's notes where issues exist.")),(0,a.kt)("p",null,"The ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," Import Tool (",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer"),")")," ensures that the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which it is run, obtains a local copy of all ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," that are available in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," that are mentioned in the ",(0,a.kt)("a",{parentName:"p",href:"/docs/spec-files/saf#scopes"},"scopes section")," of its ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". This makes life easy for various tools, e.g., the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," and the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT"),", that can now assume that all ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," that they may need to consult in order to do their job, are readily available. "),(0,a.kt)("p",null,"There will shortly be an implementation of the tool:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"the repo for the code of the tool is ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/tno-terminology-design/mrg-import"},"here"),"."),(0,a.kt)("li",{parentName:"ul"},"the documentation is ","[",(0,a.kt)("mark",null,"tbd"),"]",".")),(0,a.kt)("h2",{id:"installing-the-tool"},"Installing the Tool"),(0,a.kt)("p",null,"The tool can be installed from the command line and made globally available by executing"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"npm install tno-terminology-design/mrg-import -g\n")),(0,a.kt)("h2",{id:"calling-the-tool"},"Calling the Tool"),(0,a.kt)("p",null,"The behavior of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," can be configured per call e.g. by a configuration file and/or command-line parameters. The command-line syntax is as follows:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"mrg-import [ ]\n")),(0,a.kt)("p",null,"where:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"")," (optional) is a list of key-value pairs")),(0,a.kt)("details",null,(0,a.kt)("summary",null,"Legend"),(0,a.kt)("p",null,"The columns in the following table are defined as follows:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},(0,a.kt)("inlineCode",{parentName:"strong"},"Key"))," is the text to be used as a key."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},(0,a.kt)("inlineCode",{parentName:"strong"},"Value"))," represents the kind of value to be used."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},(0,a.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,a.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,a.kt)("inlineCode",{parentName:"li"},"n"),") the field is required to be present when the tool is being called. If required, it MUST either be present in the configuration file, or as a command-line parameter."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},(0,a.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the ",(0,a.kt)("inlineCode",{parentName:"li"},"Value")," field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"left"},"Key"),(0,a.kt)("th",{parentName:"tr",align:"left"},"Value"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,a.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"config")),(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"")),(0,a.kt)("td",{parentName:"tr",align:"center"},"n"),(0,a.kt)("td",{parentName:"tr",align:"left"},"Path (including the filename) of the tool's (YAML) configuration file. This file contains the default key-value pairs to be used. Allowed keys (and the associated values) are documented in this table. Command-line arguments override key-value pairs specified in the configuration file. This parameter MUST NOT appear in the configuration file itself.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"")),(0,a.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,a.kt)("td",{parentName:"tr",align:"left"},"Path of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," from which the tool is called. It MUST contain the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," for that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which we will refer to as the 'current scope' for the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer"),".")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"onNotExist")),(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"")),(0,a.kt)("td",{parentName:"tr",align:"center"},"n"),(0,a.kt)("td",{parentName:"tr",align:"left"},"specifies the action to take in case an MRG file that was expected to exist, does not exist. Default is ",(0,a.kt)("inlineCode",{parentName:"td"},"'throw'"),".")))),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"")," parameter can take the following values:"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"th"},"")),(0,a.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"'throw'")),(0,a.kt)("td",{parentName:"tr",align:"left"},"an error is thrown (an exception is raised), and processing will stop.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"'warn'")),(0,a.kt)("td",{parentName:"tr",align:"left"},"a message is displayed (and logged) and processing continues.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"'log'")),(0,a.kt)("td",{parentName:"tr",align:"left"},"a message is written to a log(file) and processing continues.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},(0,a.kt)("inlineCode",{parentName:"td"},"'ignore'")),(0,a.kt)("td",{parentName:"tr",align:"left"},"processing continues as if nothing happened.")))),(0,a.kt)("h2",{id:"processing-errors-and-warnings"},"Processing, Errors and Warnings"),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," starts by reading its command-line and configuration file. If the command-line has a key that is also found in the configuration file, the command-line key-value pair takes precedence. The resulting set of key-value pairs is tested for proper syntax and validity. Every improper syntax and every invalidity found will be logged. Improper syntax may be e.g. an invalid ",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},"globpattern"),". Invalidities include non-existing directories or files, lack of write-permissions where needed, etc."),(0,a.kt)("p",null,"Then, the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," reads the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from which the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," is called. We will use the following names for values that are in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{my-own-scopetag}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"scopetag"),"-field from the ",(0,a.kt)("inlineCode",{parentName:"li"},"scope"),"-section"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{my-own-scopedir}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"scopedir"),"-field from the ",(0,a.kt)("inlineCode",{parentName:"li"},"scope"),"-section"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{my-own-glossarydir}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"glossarydir"),"-field from the ",(0,a.kt)("inlineCode",{parentName:"li"},"scope"),"-section")),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," also reads the ",(0,a.kt)("a",{parentName:"p",href:"/tev2-specifications/docs/spec-files/saf#scopes"},"scopes section")," of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", which specifies the 'other' ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," from which the actively maintained ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," have to be imported. This ",(0,a.kt)("a",{parentName:"p",href:"/tev2-specifications/docs/spec-files/saf#scopes"},"scopes section")," contains elements that consist of two parts, whose values we will refer to by the following names:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{import-scopetag}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"scopetag"),"-field from the ",(0,a.kt)("inlineCode",{parentName:"li"},"scopes"),"-section of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{import-scopedir}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"scopedir"),"-field from the ",(0,a.kt)("inlineCode",{parentName:"li"},"scopes"),"-section of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"))),(0,a.kt)("p",null,"For every ",(0,a.kt)("inlineCode",{parentName:"p"},"{import-scopedir}"),", the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," will read its ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," to find out which ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminologies")," are being actively maintained (we will use ",(0,a.kt)("inlineCode",{parentName:"p"},"{import-saf}")," to refer to the contents of this ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),")."),(0,a.kt)("admonition",{title:"Editor's note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Reading a SAF may require authentication, e.g. when the scopedir of the other scope is in a private or enterprise repo. How the MRG importer will be dealing with this remains to be specified.")),(0,a.kt)("p",null,"We will use:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{other-scopetag}")," = the ",(0,a.kt)("inlineCode",{parentName:"li"},"scopetag"),"-field in the ",(0,a.kt)("inlineCode",{parentName:"li"},"scope")," section of ",(0,a.kt)("inlineCode",{parentName:"li"},"{import-saf}"),";"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{other-glossarydir}")," = the ",(0,a.kt)("inlineCode",{parentName:"li"},"glossarydir"),"-field in the ",(0,a.kt)("inlineCode",{parentName:"li"},"scope")," section of ",(0,a.kt)("inlineCode",{parentName:"li"},"{import-saf}"),";")),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{parentName:"p",href:"/tev2-specifications/docs/spec-files/saf#versions"},"versions-section")," in ",(0,a.kt)("inlineCode",{parentName:"p"},"{import-saf}")," specifies which ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminologies")," are actively maintained within the other ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and hence have to be imported. Every such ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," is specified by an entry in this section, and must hence be processed to import the associated ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),". "),(0,a.kt)("p",null,"To specify one such process, we will use:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{other-vsntag}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"vsntag"),"-field in the element of the ",(0,a.kt)("inlineCode",{parentName:"li"},"versions")," section of ",(0,a.kt)("inlineCode",{parentName:"li"},"{import-saf}")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"{other-altvsntags}")," = ",(0,a.kt)("inlineCode",{parentName:"li"},"altvsntags"),"-field in an element of the ",(0,a.kt)("inlineCode",{parentName:"li"},"versions")," section of ",(0,a.kt)("inlineCode",{parentName:"li"},"{import-saf}"))),(0,a.kt)("p",null,"To import the associated ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),", here is what we do:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"read the file ",(0,a.kt)("inlineCode",{parentName:"li"},"{import-scopedir}/{import-glossarydir}/mrg.{other-scopetag}.{other-vsntag}.yaml"),", which is the file that contains the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that needs to be imported. If that file doesn't exist, this results in the bahaviour as specified by the ",(0,a.kt)("inlineCode",{parentName:"li"},"")," value of the ",(0,a.kt)("inlineCode",{parentName:"li"},"onNotExist")," parameter. Default is ",(0,a.kt)("inlineCode",{parentName:"li"},"throw"),".",(0,a.kt)("admonition",{parentName:"li",title:"Editor's note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"It may well be possible that contents of the mrg may need to be processed.\nThis is due to the fact that ",(0,a.kt)("inlineCode",{parentName:"p"},"scopetag"),"s are 'local' names for referring to scopes and every scope gets to decide on its own scoptag names. So the meaning of 'scopetags' cannot be transferred across scopes. We have to use universal/fixed identifiers, such as a ",(0,a.kt)("inlineCode",{parentName:"p"},"scopedir"),"-URL to identify scopes. Still, local names can be useful (and are necessary), so we'll have to figure out what the impact of this is.\ned:::"))),(0,a.kt)("li",{parentName:"ul"},"write the contents to ",(0,a.kt)("inlineCode",{parentName:"li"},"{my-scopedir}/{my-glossarydir}/mrg.{import-scopetag}.{other-vsntag}.yaml"),", overwriting a file that has the same name if that were to exist."),(0,a.kt)("li",{parentName:"ul"},"for every ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," in ",(0,a.kt)("inlineCode",{parentName:"li"},"{other-altvsntags}")," (which we call ",(0,a.kt)("inlineCode",{parentName:"li"},"{other-altvsntag}"),"), a symbolic link ",(0,a.kt)("inlineCode",{parentName:"li"},"mrg.{import-scopetag}.{other-altvsntag}.yaml")," is created in the ",(0,a.kt)("inlineCode",{parentName:"li"},"{my-scopedir}/{my-glossarydir}/")," directory, that links to the ",(0,a.kt)("inlineCode",{parentName:"li"},"mrg.{import-scopetag}.{other-vsntag}.yaml")," file that was just created in that same directory.")),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("mdxAdmonitionTitle",{parentName:"admonition"},"NOTE the change of the ",(0,a.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"scopetag")," part in the filename!"),(0,a.kt)("p",{parentName:"admonition"},"The name of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from which it is imported may differ from the name of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that is imported. The reason for this is that the names (",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags")," that are used in these ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," to refer to the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from where ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," are imported, may differ.")),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," logs every error- and/or warning condition that it comes across while processing its configuration file, commandline parameters, and input files, in a way that helps tool-operators and document ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," to identify and fix such conditions."),(0,a.kt)("h2",{id:"deploying-the-tool"},"Deploying the Tool"),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," comes with documentation that enables developers to ascertain its correct functioning (e.g. by using a test set of files, test scripts that exercise its parameters, etc.), and also enables them to deploy the tool in a git repo and author/modify CI-pipes to use that deployment."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0cdee2ba.fa76eaa9.js b/assets/js/0cdee2ba.81161ae3.js similarity index 98% rename from assets/js/0cdee2ba.fa76eaa9.js rename to assets/js/0cdee2ba.81161ae3.js index 7b4f2e06be..2089fa6789 100644 --- a/assets/js/0cdee2ba.fa76eaa9.js +++ b/assets/js/0cdee2ba.81161ae3.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[6135],{3905:function(e,t,r){r.d(t,{Zo:function(){return m},kt:function(){return l}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},m=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),f=p(r),l=o,d=f["".concat(c,".").concat(l)]||f[l]||u[l]||i;return r?n.createElement(d,a(a({ref:t},m),{},{components:r})):n.createElement(d,a({ref:t},m))}));function l(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var p=2;p=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},m=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),f=p(r),l=o,d=f["".concat(c,".").concat(l)]||f[l]||u[l]||i;return r?n.createElement(d,a(a({ref:t},m),{},{components:r})):n.createElement(d,a({ref:t},m))}));function l(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var p=2;p=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var c=o.createContext({}),l=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},h=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var i=e.components,a=e.mdxType,n=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),p=l(i),m=a,f=p["".concat(c,".").concat(m)]||p[m]||d[m]||n;return i?o.createElement(f,s(s({ref:t},h),{},{components:i})):o.createElement(f,s({ref:t},h))}));function m(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=i.length,s=new Array(n);s[0]=p;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:a,s[1]=r;for(var l=2;l child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:i.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function p(e){var t=e.values,i=e.children;return(0,a.useMemo)((function(){var e=null!=t?t:d(i);return function(e){var t=(0,l.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,i])}function m(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function f(e){var t=e.queryString,i=void 0!==t&&t,o=e.groupId,n=(0,r.k6)(),s=function(e){var t=e.queryString,i=void 0!==t&&t,o=e.groupId;if("string"==typeof i)return i;if(!1===i)return null;if(!0===i&&!o)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=o?o:null}({queryString:i,groupId:o});return[(0,c._X)(s),(0,a.useCallback)((function(e){if(s){var t=new URLSearchParams(n.location.search);t.set(s,e),n.replace(Object.assign({},n.location,{search:t.toString()}))}}),[s,n])]}function u(e){var t,i,o,n,s=e.defaultValue,r=e.queryString,c=void 0!==r&&r,l=e.groupId,d=p(e),u=(0,a.useState)((function(){return function(e){var t,i=e.defaultValue,o=e.tabValues;if(0===o.length)throw new Error("Docusaurus error: the component requires at least one children component");if(i){if(!m({value:i,tabValues:o}))throw new Error('Docusaurus error: The has a defaultValue "'+i+'" but none of its children has the corresponding value. Available values are: '+o.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return i}var a=null!=(t=o.find((function(e){return e.default})))?t:o[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:s,tabValues:d})})),g=u[0],v=u[1],y=f({queryString:c,groupId:l}),b=y[0],k=y[1],w=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:l}.groupId),i=(0,h.Nk)(t),o=i[0],n=i[1],[o,(0,a.useCallback)((function(e){t&&n.set(e)}),[t,n])]),S=w[0],N=w[1],x=function(){var e=null!=b?b:S;return m({value:e,tabValues:d})?e:null}();return(0,a.useLayoutEffect)((function(){x&&v(x)}),[x]),{selectedValue:g,selectValue:(0,a.useCallback)((function(e){if(!m({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);v(e),k(e),N(e)}),[k,N,d]),tabValues:d}}var g=i(2389),v="tabList__CuJ",y="tabItem_LNqP";function b(e){var t=e.className,i=e.block,r=e.selectedValue,c=e.selectValue,l=e.tabValues,h=[],d=(0,s.o5)().blockElementScrollPositionUntilNextRender,p=function(e){var t=e.currentTarget,i=h.indexOf(t),o=l[i].value;o!==r&&(d(t),c(o))},m=function(e){var t,i=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":var o,a=h.indexOf(e.currentTarget)+1;i=null!=(o=h[a])?o:h[0];break;case"ArrowLeft":var n,s=h.indexOf(e.currentTarget)-1;i=null!=(n=h[s])?n:h[h.length-1]}null==(t=i)||t.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":i},t)},l.map((function(e){var t=e.value,i=e.label,s=e.attributes;return a.createElement("li",(0,o.Z)({role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,key:t,ref:function(e){return h.push(e)},onKeyDown:m,onClick:p},s,{className:(0,n.Z)("tabs__item",y,null==s?void 0:s.className,{"tabs__item--active":r===t})}),null!=i?i:t)})))}function k(e){var t=e.lazy,i=e.children,o=e.selectedValue,n=(Array.isArray(i)?i:[i]).filter(Boolean);if(t){var s=n.find((function(e){return e.props.value===o}));return s?(0,a.cloneElement)(s,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},n.map((function(e,t){return(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==o})})))}function w(e){var t=u(e);return a.createElement("div",{className:(0,n.Z)("tabs-container",v)},a.createElement(b,(0,o.Z)({},e,t)),a.createElement(k,(0,o.Z)({},e,t)))}function S(e){var t=(0,g.Z)();return a.createElement(w,(0,o.Z)({key:String(t)},e))}},1794:function(e,t,i){i.r(t),i.d(t,{assets:function(){return h},contentTitle:function(){return c},default:function(){return m},frontMatter:function(){return r},metadata:function(){return l},toc:function(){return d}});var o=i(7462),a=i(3366),n=(i(7294),i(3905)),s=(i(4996),i(4866),i(5162),["components"]),r={id:"saf",sidebar_label:"SAF (Scope Admin File)",date:20230103},c="Scope Administration File (SAF)",l={unversionedId:"spec-files/saf",id:"spec-files/saf",title:"Scope Administration File (SAF)",description:"Every scope MUST have exactly one Scope Administration File or SAF, i.e. a file contains whatever needs to be administered in the scope, and that various tools need to find e.g. the scope's MRG, curated texts, scopetags, etc.",source:"@site/docs/spec-files/11-saf.md",sourceDirName:"spec-files",slug:"/spec-files/saf",permalink:"/tev2-specifications/docs/spec-files/saf",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-files/11-saf.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695712473,formattedLastUpdatedAt:"Sep 26, 2023",sidebarPosition:11,frontMatter:{id:"saf",sidebar_label:"SAF (Scope Admin File)",date:20230103},sidebar:"tev2SideBar",previous:{title:"Curated Texts",permalink:"/tev2-specifications/docs/spec-files/ctext"},next:{title:"Profile Templates",permalink:"/tev2-specifications/docs/spec-files/profile-templates"}},h={},d=[{value:"Scope Administration File Field Descriptions",id:"scope-administration-file-field-descriptions",level:2},{value:"SAF Terminology - Defining the Scope itself",id:"terminology",level:3},{value:"SAF Scopes - Mapping Scopetags and Scopedirs",id:"scopes",level:3},{value:"SAF Versions - Enabling changes and updates in a scope's Terminology",id:"versions",level:3}],p={toc:d};function m(e){var t=e.components,i=(0,a.Z)(e,s);return(0,n.kt)("wrapper",(0,o.Z)({},p,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"scope-administration-file-saf"},"Scope Administration File (SAF)"),(0,n.kt)("p",null,"Every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," MUST have exactly one Scope Administration File or ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", i.e. a file contains whatever needs to be administered in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and that various tools need to find e.g. the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),", ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags"),", etc."),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," MUST be located in the (root of the) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),", and is called ",(0,n.kt)("inlineCode",{parentName:"p"},"saf.yaml"),". It is to be created and maintained by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,n.kt)("p",null,"This document specifies the structure of such ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAFs"),"."),(0,n.kt)("h2",{id:"scope-administration-file-field-descriptions"},"Scope Administration File Field Descriptions"),(0,n.kt)("p",null,"A ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," has three main parts:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"The ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"scope"))," (singular) section defines meta-data concerning the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," itself, both for technical use and human use. It shows where directories and files live that ar part of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and also ways in which people can contribute, raise issues, see what's going on, discuss, etc."),(0,n.kt)("li",{parentName:"ol"},"The ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"scopes"))," (plural) section contains a mapping between ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags")," that are used within the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and the associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedirs"),". This enables tools to find the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of these ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes"),", and from there all other directories, files etc. that live within them, e.g. to use/import their data."),(0,n.kt)("li",{parentName:"ol"},"The ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"versions"))," section specifies all versions of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that are actively maintained by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and for each of them, the set of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that constitute this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),".")),(0,n.kt)("p",null,"The following sections specify the fields for each of these parts."),(0,n.kt)("h3",{id:"terminology"},"SAF Terminology - Defining the Scope itself"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Example of a `scope` section"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-yaml"},"#\n# This is a Scope Administration File that can be used in conjunction with TEv2.\n#\n# The first section defines meta-data concerning the scope itself, both for technical use and human use.\n# It shows where directories and files live that ar part of the scope, and also\n# ways in which people can contribute, raise issues, see what's going on, discuss, etc.\n#\nscope:\n scopetag: tev2 # identifier that curators have determined for this terminology\n scopedir: https://github.com/tno-terminology-design/tev2-specifications/tree/master/docs # URL of the scope-directory\n curatedir: terms # directory where all curated files are located. Full URL is `scopedir`/`curatedir`\n glossarydir: glossaries # directory where all glossary files and related stuff are located. Full URL is `scopedir`/`glossarydir`\n defaultvsn: latest # vsntag that identifies the default terminology. MRG is located at `scopedir`/`glossarydir`/mrg.`scopetag`.`defaultvsn`.yaml\n license: LICENSE.md # file that contains the (default) licensing conditions. Full URL is `scopedir`/`license`\n statuses: [ proposed, approved, deprecated ] # list of status tags that are defined for semantic units in this scope\n issues: https://github.com/tno-terminology-design/tev2-specifications/issues # URL where issues can be raised and handled\n website: https://tno-terminology-design.github.io/tev2-specifications/docs-overview # base URL for creating links to rendered versions of Curated Texts\n curators: # contacting individual curators\n - name: RieksJ\n email: # we split up the email address to reduce the likelihood of the address being harvested for spamming\n id: rieks.joosten\n at: tno.nl\n"))),(0,n.kt)("p",null,"The following fields are defined for the ",(0,n.kt)("inlineCode",{parentName:"p"},"scope")," section of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),":"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"Scopetag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of this scope have determined for this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". The associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," is specified in the section ",(0,n.kt)("inlineCode",{parentName:"td"},"scopes"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"URL of the location of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," associated with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags")," listed in the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetags")," field.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"curatedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path to the directory where all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated files")," are located. This directory may contain subdirectories to allow ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," to organize the files in any way they see fit. Full URL is ",(0,n.kt)("inlineCode",{parentName:"td"},""),"/",(0,n.kt)("inlineCode",{parentName:"td"},""),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"glossarydir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path to the directory where all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),"-related files are located. Full URL is ",(0,n.kt)("inlineCode",{parentName:"td"},""),"/",(0,n.kt)("inlineCode",{parentName:"td"},""),". This directory SHOULD contain one ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," for every element in the version-section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", and one or multiple ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRGs"),". It MAY contain other files, e.g. containing instructions, headers, footers or other things that are necessary for generating specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossaries"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"website")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"base URL for creating links to rendered versions of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"Curated Texts"),". It should also serve as the home page of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"navpath")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path to the directory where ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"Curated Texts")," are rendered. What ",(0,n.kt)("inlineCode",{parentName:"td"},"curatedir")," is for ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"Curated Texts")," is, ",(0,n.kt)("inlineCode",{parentName:"td"},"navpath")," is for the rendered versions of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"Curated Texts"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"defaultvsn")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," for this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". The associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is located at ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"glossarydir"),"/mrg.",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag"),".",(0,n.kt)("inlineCode",{parentName:"td"},"defaultvsn"),".yaml")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"license")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"File in the root of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," that contains the (default) licensing data.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"statuses")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Ordered list of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tag",hovertext:"Tag: an alphanumeric string that is used to identify Scopes (so called 'scopetags'), group Terms (so called 'grouptags'), or identify a specific version of a Terminology (so called 'versiontags') from within a specific Scope."},"tags")," that are defined in this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," for specifying stages in the life-cycle of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic units"),". The first element in the list represents the first stage, and the last element the last stage in the life-cycle.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"issues")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"URL where issues can be reported and handled.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"curators")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Data that can be used to contact individual ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators"),".")))),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"It might be more practical to move all of the stuff that is particular to this scope, but that is currently documented in the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopes")," section, to this section. We do then need to check throughout the documentation where that section is referenced, and correct such references.")),(0,n.kt)("h3",{id:"scopes"},"SAF Scopes - Mapping Scopetags and Scopedirs"),(0,n.kt)("p",null,"The ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetags")," section is a list that specifies a mapping between ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags")," as they are used in this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and the associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),"."),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Example of a `scopes` section"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-yaml"},'#\n# The second section contains a mapping between scopetags that are used within the scope, and the associated scopedirs.\n# This enables tools to find the SAF of these scopes, and from there all other directories, files etc.\n# that live within them, e.g. to use/import their data.\n#\nscopes: #\n- scopetag: [ essiflab ] # definition of (scope) tag(s) that are used within this scope to refer to a specific terminology\n scopedir: https://github.com/essif-lab/framework/tree/master/docs # URL of the scope-directory\n- scopetag: [ essif-lab ] # define another scopetag for the same scopedir (just because you can)\n scopedir: https://github.com/essif-lab/framework/tree/master/docs # URL of the scope-directory\n- scopetag: [ ctwg ] # definition of (scope)tag(s) that are used within this scope to refer to a specific terminology\n scopedir: https://github.com/trustoverip/ctwg # URL of the scope-directory\n'))),(0,n.kt)("p",null,"The following fields are defined for the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopes")," section of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),":"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"It may be simpler to change the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetags"),"-field, which is currently a list of scopetags, into a ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetag"),"-field, which would specifiy a single scopetag. This would encourage curators to use no more than one scopetag for each scope they refer to, but if they really wanted to, they could make multiple entries with different scopetags that refer to the same scopedir.")),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:null},"A (single) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag"),", that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curator(s)")," of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," has decided to use to refer to (the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of) a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:null},"URL of the associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),".")))),(0,n.kt)("h3",{id:"versions"},"SAF Versions - Enabling changes and updates in a scope's Terminology"),(0,n.kt)("p",null,"The third section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," specifies the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", in multiple versions that are actively maintained by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators"),". For each version, the set of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," is selected that constitute that version's ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". Also, additional data is provided regarding the state/validity of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," over time, which may of interest for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of other scopes as they need to decide whether or not to import ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," from such a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),"."),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Example of a `versions` section"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-yaml"},'#\n# The third section specifies the versions that are actively maintained by the curators.\n# For each version, the set of terms is selected that constitute the terminology.\n# See the Glossary Generation Tool (GGT) for details about the syntax and semantics.\n#\nversions:\n - vsntag: v0.9.4 # a versiontag that identifies this version from all other versions in the SAF\n altvsntags: # alternative verstiontags\n - latest\n - 0x921456\n termselcrit:\n - "tags[management]@essif-lab" # import all terms from the mrg of `essif-lab:latest` that have grouptag `management`.\n - "terms[party,community](@essif-lab:0.9.4)" # import the terms `party` and `community` from the mrg of `essif-lab:0.9.4`.\n - "*@tev2" # import all terms defined in the scope `tev2`\n status: proposed\n from: 20220312\n to:\n - vsntag: test # a versiontag that identifies this version from all other versions in the SAF\n altvsntags: # alternative verstiontags\n - 0x654129\n termselcrit:\n - "*@essif-lab" # import all terms defined in the scope `essif-lab`\n - "-tags[terminology]" # remove all terms tagged with the grouptag `terminology`\n - "*@tev2" # import all terms defined in the scope `tev2`\n'))),(0,n.kt)("p",null,"The following fields are defined for the ",(0,n.kt)("inlineCode",{parentName:"p"},"versions")," section of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),":"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"Versiontag")," that that is used to ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," this version within the set of all other versions that are maintained within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". in this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". It MUST NOT be changed during the lifetime of this version.",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-\\.]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"altvsntags")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"List of alternative ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontags")," that may be used to refer to this version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". A typical use of this field would be to tag a version as the 'latest' version.",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-\\.]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"license")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"File that contains the (default) licensing conditions. Full URL is ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"license"),". If not specified, its value defaults to the value of the ",(0,n.kt)("inlineCode",{parentName:"td"},"license")," field in the ",(0,n.kt)("inlineCode",{parentName:"td"},"scope")," section (of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"). The purpose of this field is to allow different versions of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," to have different licenses.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"termselcrit")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:null},"List of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria")," that are used to generate (this version of) the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". See ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-tools/terminology-construction"},"Terminology Construction")," for details.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"status")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Text that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the status of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term"),". (",(0,n.kt)("a",{parentName:"td",href:"@"},"Communities")," of) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," may specify values for this field. If not specified, the status SHOULD be assumed to be 'concept', 'draft', 'proposed', or similar. An example is the ",(0,n.kt)("a",{parentName:"td",href:"https://github.com/trustoverip/concepts-and-terminology-wg/blob/master/docs/status-tags.md"},"status tags used by ToIP"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"from")),(0,n.kt)("td",{parentName:"tr",align:"center"},"F"),(0,n.kt)("td",{parentName:"tr",align:null},"Date at which it was decided to establish this version.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"to")),(0,n.kt)("td",{parentName:"tr",align:"center"},"F"),(0,n.kt)("td",{parentName:"tr",align:null},"Date at which this version will expire (or has expired).")))),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"The ",(0,n.kt)("inlineCode",{parentName:"p"},"from")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"to")," dates have been included to (in future) enable one to refer to a specific version of the terminology that was valid at a particular date. This feature needs to be worked out, and will impact ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-tools/terminology-construction"},"terminology construction"),", ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-syntax/term-ref-syntax"},"TermRef specs"),", and various tools.")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[812],{3905:function(e,t,i){i.d(t,{Zo:function(){return h},kt:function(){return m}});var o=i(7294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,o)}return i}function s(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var c=o.createContext({}),l=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},h=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var i=e.components,a=e.mdxType,n=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),p=l(i),m=a,f=p["".concat(c,".").concat(m)]||p[m]||d[m]||n;return i?o.createElement(f,s(s({ref:t},h),{},{components:i})):o.createElement(f,s({ref:t},h))}));function m(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=i.length,s=new Array(n);s[0]=p;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:a,s[1]=r;for(var l=2;l child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:i.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function p(e){var t=e.values,i=e.children;return(0,a.useMemo)((function(){var e=null!=t?t:d(i);return function(e){var t=(0,l.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,i])}function m(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function f(e){var t=e.queryString,i=void 0!==t&&t,o=e.groupId,n=(0,r.k6)(),s=function(e){var t=e.queryString,i=void 0!==t&&t,o=e.groupId;if("string"==typeof i)return i;if(!1===i)return null;if(!0===i&&!o)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=o?o:null}({queryString:i,groupId:o});return[(0,c._X)(s),(0,a.useCallback)((function(e){if(s){var t=new URLSearchParams(n.location.search);t.set(s,e),n.replace(Object.assign({},n.location,{search:t.toString()}))}}),[s,n])]}function u(e){var t,i,o,n,s=e.defaultValue,r=e.queryString,c=void 0!==r&&r,l=e.groupId,d=p(e),u=(0,a.useState)((function(){return function(e){var t,i=e.defaultValue,o=e.tabValues;if(0===o.length)throw new Error("Docusaurus error: the component requires at least one children component");if(i){if(!m({value:i,tabValues:o}))throw new Error('Docusaurus error: The has a defaultValue "'+i+'" but none of its children has the corresponding value. Available values are: '+o.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return i}var a=null!=(t=o.find((function(e){return e.default})))?t:o[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:s,tabValues:d})})),g=u[0],v=u[1],y=f({queryString:c,groupId:l}),b=y[0],k=y[1],w=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:l}.groupId),i=(0,h.Nk)(t),o=i[0],n=i[1],[o,(0,a.useCallback)((function(e){t&&n.set(e)}),[t,n])]),S=w[0],N=w[1],x=function(){var e=null!=b?b:S;return m({value:e,tabValues:d})?e:null}();return(0,a.useLayoutEffect)((function(){x&&v(x)}),[x]),{selectedValue:g,selectValue:(0,a.useCallback)((function(e){if(!m({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);v(e),k(e),N(e)}),[k,N,d]),tabValues:d}}var g=i(2389),v="tabList__CuJ",y="tabItem_LNqP";function b(e){var t=e.className,i=e.block,r=e.selectedValue,c=e.selectValue,l=e.tabValues,h=[],d=(0,s.o5)().blockElementScrollPositionUntilNextRender,p=function(e){var t=e.currentTarget,i=h.indexOf(t),o=l[i].value;o!==r&&(d(t),c(o))},m=function(e){var t,i=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":var o,a=h.indexOf(e.currentTarget)+1;i=null!=(o=h[a])?o:h[0];break;case"ArrowLeft":var n,s=h.indexOf(e.currentTarget)-1;i=null!=(n=h[s])?n:h[h.length-1]}null==(t=i)||t.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":i},t)},l.map((function(e){var t=e.value,i=e.label,s=e.attributes;return a.createElement("li",(0,o.Z)({role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,key:t,ref:function(e){return h.push(e)},onKeyDown:m,onClick:p},s,{className:(0,n.Z)("tabs__item",y,null==s?void 0:s.className,{"tabs__item--active":r===t})}),null!=i?i:t)})))}function k(e){var t=e.lazy,i=e.children,o=e.selectedValue,n=(Array.isArray(i)?i:[i]).filter(Boolean);if(t){var s=n.find((function(e){return e.props.value===o}));return s?(0,a.cloneElement)(s,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},n.map((function(e,t){return(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==o})})))}function w(e){var t=u(e);return a.createElement("div",{className:(0,n.Z)("tabs-container",v)},a.createElement(b,(0,o.Z)({},e,t)),a.createElement(k,(0,o.Z)({},e,t)))}function S(e){var t=(0,g.Z)();return a.createElement(w,(0,o.Z)({key:String(t)},e))}},1794:function(e,t,i){i.r(t),i.d(t,{assets:function(){return h},contentTitle:function(){return c},default:function(){return m},frontMatter:function(){return r},metadata:function(){return l},toc:function(){return d}});var o=i(7462),a=i(3366),n=(i(7294),i(3905)),s=(i(4996),i(4866),i(5162),["components"]),r={id:"saf",sidebar_label:"SAF (Scope Admin File)",date:20230103},c="Scope Administration File (SAF)",l={unversionedId:"spec-files/saf",id:"spec-files/saf",title:"Scope Administration File (SAF)",description:"Every scope MUST have exactly one Scope Administration File or SAF, i.e. a file contains whatever needs to be administered in the scope, and that various tools need to find e.g. the scope's MRG, curated texts, scopetags, etc.",source:"@site/docs/spec-files/11-saf.md",sourceDirName:"spec-files",slug:"/spec-files/saf",permalink:"/tev2-specifications/docs/spec-files/saf",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-files/11-saf.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695968786,formattedLastUpdatedAt:"Sep 29, 2023",sidebarPosition:11,frontMatter:{id:"saf",sidebar_label:"SAF (Scope Admin File)",date:20230103},sidebar:"tev2SideBar",previous:{title:"Curated Texts",permalink:"/tev2-specifications/docs/spec-files/ctext"},next:{title:"Profile Templates",permalink:"/tev2-specifications/docs/spec-files/profile-templates"}},h={},d=[{value:"Scope Administration File Field Descriptions",id:"scope-administration-file-field-descriptions",level:2},{value:"SAF Terminology - Defining the Scope itself",id:"terminology",level:3},{value:"SAF Scopes - Mapping Scopetags and Scopedirs",id:"scopes",level:3},{value:"SAF Versions - Enabling changes and updates in a scope's Terminology",id:"versions",level:3}],p={toc:d};function m(e){var t=e.components,i=(0,a.Z)(e,s);return(0,n.kt)("wrapper",(0,o.Z)({},p,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"scope-administration-file-saf"},"Scope Administration File (SAF)"),(0,n.kt)("p",null,"Every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," MUST have exactly one Scope Administration File or ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", i.e. a file contains whatever needs to be administered in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and that various tools need to find e.g. the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),", ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags"),", etc."),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," MUST be located in the (root of the) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),", and is called ",(0,n.kt)("inlineCode",{parentName:"p"},"saf.yaml"),". It is to be created and maintained by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,n.kt)("p",null,"This document specifies the structure of such ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAFs"),"."),(0,n.kt)("h2",{id:"scope-administration-file-field-descriptions"},"Scope Administration File Field Descriptions"),(0,n.kt)("p",null,"A ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," has three main parts:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"The ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"scope"))," (singular) section defines meta-data concerning the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," itself, both for technical use and human use. It shows where directories and files live that ar part of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and also ways in which people can contribute, raise issues, see what's going on, discuss, etc."),(0,n.kt)("li",{parentName:"ol"},"The ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"scopes"))," (plural) section contains a mapping between ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags")," that are used within the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and the associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedirs"),". This enables tools to find the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of these ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes"),", and from there all other directories, files etc. that live within them, e.g. to use/import their data."),(0,n.kt)("li",{parentName:"ol"},"The ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"versions"))," section specifies all versions of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that are actively maintained by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and for each of them, the set of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that constitute this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),".")),(0,n.kt)("p",null,"The following sections specify the fields for each of these parts."),(0,n.kt)("h3",{id:"terminology"},"SAF Terminology - Defining the Scope itself"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Example of a `scope` section"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-yaml"},"#\n# This is a Scope Administration File that can be used in conjunction with TEv2.\n#\n# The first section defines meta-data concerning the scope itself, both for technical use and human use.\n# It shows where directories and files live that ar part of the scope, and also\n# ways in which people can contribute, raise issues, see what's going on, discuss, etc.\n#\nscope:\n scopetag: tev2 # identifier that curators have determined for this terminology\n scopedir: https://github.com/tno-terminology-design/tev2-specifications/tree/master/docs # URL of the scope-directory\n curatedir: terms # directory where all curated files are located. Full URL is `scopedir`/`curatedir`\n glossarydir: glossaries # directory where all glossary files and related stuff are located. Full URL is `scopedir`/`glossarydir`\n defaultvsn: latest # vsntag that identifies the default terminology. MRG is located at `scopedir`/`glossarydir`/mrg.`scopetag`.`defaultvsn`.yaml\n license: LICENSE.md # file that contains the (default) licensing conditions. Full URL is `scopedir`/`license`\n statuses: [ proposed, approved, deprecated ] # list of status tags that are defined for semantic units in this scope\n issues: https://github.com/tno-terminology-design/tev2-specifications/issues # URL where issues can be raised and handled\n website: https://tno-terminology-design.github.io/tev2-specifications/docs-overview # base URL for creating links to rendered versions of Curated Texts\n curators: # contacting individual curators\n - name: RieksJ\n email: # we split up the email address to reduce the likelihood of the address being harvested for spamming\n id: rieks.joosten\n at: tno.nl\n"))),(0,n.kt)("p",null,"The following fields are defined for the ",(0,n.kt)("inlineCode",{parentName:"p"},"scope")," section of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),":"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"Scopetag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of this scope have determined for this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". The associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," is specified in the section ",(0,n.kt)("inlineCode",{parentName:"td"},"scopes"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"URL of the location of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," associated with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags")," listed in the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetags")," field.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"curatedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path to the directory where all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated files")," are located. This directory may contain subdirectories to allow ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," to organize the files in any way they see fit. Full URL is ",(0,n.kt)("inlineCode",{parentName:"td"},""),"/",(0,n.kt)("inlineCode",{parentName:"td"},""),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"glossarydir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path to the directory where all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),"-related files are located. Full URL is ",(0,n.kt)("inlineCode",{parentName:"td"},""),"/",(0,n.kt)("inlineCode",{parentName:"td"},""),". This directory SHOULD contain one ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," for every element in the version-section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", and one or multiple ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRGs"),". It MAY contain other files, e.g. containing instructions, headers, footers or other things that are necessary for generating specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossaries"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"website")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"base URL for creating links to rendered versions of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"Curated Texts"),". It should also serve as the home page of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"navpath")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path to the directory where ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"Curated Texts")," are rendered. What ",(0,n.kt)("inlineCode",{parentName:"td"},"curatedir")," is for ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"Curated Texts")," is, ",(0,n.kt)("inlineCode",{parentName:"td"},"navpath")," is for the rendered versions of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"Curated Texts"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"defaultvsn")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," for this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". The associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is located at ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"glossarydir"),"/mrg.",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag"),".",(0,n.kt)("inlineCode",{parentName:"td"},"defaultvsn"),".yaml")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"license")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"File in the root of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," that contains the (default) licensing data.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"statuses")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Ordered list of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tag",hovertext:"Tag: an alphanumeric string that is used to identify Scopes (so called 'scopetags'), group Terms (so called 'grouptags'), or identify a specific version of a Terminology (so called 'versiontags') from within a specific Scope."},"tags")," that are defined in this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," for specifying stages in the life-cycle of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic units"),". The first element in the list represents the first stage, and the last element the last stage in the life-cycle.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"issues")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"URL where issues can be reported and handled.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"curators")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Data that can be used to contact individual ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators"),".")))),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"It might be more practical to move all of the stuff that is particular to this scope, but that is currently documented in the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopes")," section, to this section. We do then need to check throughout the documentation where that section is referenced, and correct such references.")),(0,n.kt)("h3",{id:"scopes"},"SAF Scopes - Mapping Scopetags and Scopedirs"),(0,n.kt)("p",null,"The ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetags")," section is a list that specifies a mapping between ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags")," as they are used in this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and the associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),"."),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Example of a `scopes` section"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-yaml"},'#\n# The second section contains a mapping between scopetags that are used within the scope, and the associated scopedirs.\n# This enables tools to find the SAF of these scopes, and from there all other directories, files etc.\n# that live within them, e.g. to use/import their data.\n#\nscopes: #\n- scopetag: [ essiflab ] # definition of (scope) tag(s) that are used within this scope to refer to a specific terminology\n scopedir: https://github.com/essif-lab/framework/tree/master/docs # URL of the scope-directory\n- scopetag: [ essif-lab ] # define another scopetag for the same scopedir (just because you can)\n scopedir: https://github.com/essif-lab/framework/tree/master/docs # URL of the scope-directory\n- scopetag: [ ctwg ] # definition of (scope)tag(s) that are used within this scope to refer to a specific terminology\n scopedir: https://github.com/trustoverip/ctwg # URL of the scope-directory\n'))),(0,n.kt)("p",null,"The following fields are defined for the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopes")," section of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),":"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"It may be simpler to change the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetags"),"-field, which is currently a list of scopetags, into a ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetag"),"-field, which would specifiy a single scopetag. This would encourage curators to use no more than one scopetag for each scope they refer to, but if they really wanted to, they could make multiple entries with different scopetags that refer to the same scopedir.")),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:null},"A (single) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag"),", that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curator(s)")," of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," has decided to use to refer to (the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of) a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:null},"URL of the associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),".")))),(0,n.kt)("h3",{id:"versions"},"SAF Versions - Enabling changes and updates in a scope's Terminology"),(0,n.kt)("p",null,"The third section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," specifies the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", in multiple versions that are actively maintained by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators"),". For each version, the set of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," is selected that constitute that version's ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". Also, additional data is provided regarding the state/validity of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," over time, which may of interest for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of other scopes as they need to decide whether or not to import ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," from such a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),"."),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Example of a `versions` section"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-yaml"},'#\n# The third section specifies the versions that are actively maintained by the curators.\n# For each version, the set of terms is selected that constitute the terminology.\n# See the Glossary Generation Tool (GGT) for details about the syntax and semantics.\n#\nversions:\n - vsntag: v0.9.4 # a versiontag that identifies this version from all other versions in the SAF\n altvsntags: # alternative verstiontags\n - latest\n - 0x921456\n termselcrit:\n - "tags[management]@essif-lab" # import all terms from the mrg of `essif-lab:latest` that have grouptag `management`.\n - "terms[party,community](@essif-lab:0.9.4)" # import the terms `party` and `community` from the mrg of `essif-lab:0.9.4`.\n - "*@tev2" # import all terms defined in the scope `tev2`\n status: proposed\n from: 20220312\n to:\n - vsntag: test # a versiontag that identifies this version from all other versions in the SAF\n altvsntags: # alternative verstiontags\n - 0x654129\n termselcrit:\n - "*@essif-lab" # import all terms defined in the scope `essif-lab`\n - "-tags[terminology]" # remove all terms tagged with the grouptag `terminology`\n - "*@tev2" # import all terms defined in the scope `tev2`\n'))),(0,n.kt)("p",null,"The following fields are defined for the ",(0,n.kt)("inlineCode",{parentName:"p"},"versions")," section of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),":"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"Versiontag")," that that is used to ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," this version within the set of all other versions that are maintained within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". in this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". It MUST NOT be changed during the lifetime of this version.",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-\\.]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"altvsntags")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"List of alternative ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontags")," that may be used to refer to this version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". A typical use of this field would be to tag a version as the 'latest' version.",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-\\.]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"license")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"File that contains the (default) licensing conditions. Full URL is ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"license"),". If not specified, its value defaults to the value of the ",(0,n.kt)("inlineCode",{parentName:"td"},"license")," field in the ",(0,n.kt)("inlineCode",{parentName:"td"},"scope")," section (of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"). The purpose of this field is to allow different versions of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," to have different licenses.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"termselcrit")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:null},"List of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria")," that are used to generate (this version of) the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". See ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-tools/terminology-construction"},"Terminology Construction")," for details.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"status")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Text that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the status of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term"),". (",(0,n.kt)("a",{parentName:"td",href:"@"},"Communities")," of) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," may specify values for this field. If not specified, the status SHOULD be assumed to be 'concept', 'draft', 'proposed', or similar. An example is the ",(0,n.kt)("a",{parentName:"td",href:"https://github.com/trustoverip/concepts-and-terminology-wg/blob/master/docs/status-tags.md"},"status tags used by ToIP"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"from")),(0,n.kt)("td",{parentName:"tr",align:"center"},"F"),(0,n.kt)("td",{parentName:"tr",align:null},"Date at which it was decided to establish this version.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"to")),(0,n.kt)("td",{parentName:"tr",align:"center"},"F"),(0,n.kt)("td",{parentName:"tr",align:null},"Date at which this version will expire (or has expired).")))),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"The ",(0,n.kt)("inlineCode",{parentName:"p"},"from")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"to")," dates have been included to (in future) enable one to refer to a specific version of the terminology that was valid at a particular date. This feature needs to be worked out, and will impact ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-tools/terminology-construction"},"terminology construction"),", ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-syntax/term-ref-syntax"},"TermRef specs"),", and various tools.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0fbf73e8.9409e85b.js b/assets/js/0fbf73e8.f3f72a3f.js similarity index 99% rename from assets/js/0fbf73e8.9409e85b.js rename to assets/js/0fbf73e8.f3f72a3f.js index 31d523ebb5..691f788ed2 100644 --- a/assets/js/0fbf73e8.9409e85b.js +++ b/assets/js/0fbf73e8.f3f72a3f.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[9446],{3905:function(e,t,i){i.d(t,{Zo:function(){return p},kt:function(){return d}});var o=i(7294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function s(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,o)}return i}function a(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var c=o.createContext({}),h=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},p=function(e){var t=h(e.components);return o.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},l=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),l=h(i),d=n,f=l["".concat(c,".").concat(d)]||l[d]||m[d]||s;return i?o.createElement(f,a(a({ref:t},p),{},{components:i})):o.createElement(f,a({ref:t},p))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=i.length,a=new Array(s);a[0]=l;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:n,a[1]=r;for(var h=2;h=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var c=o.createContext({}),h=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},p=function(e){var t=h(e.components);return o.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},l=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),l=h(i),d=n,f=l["".concat(c,".").concat(d)]||l[d]||m[d]||s;return i?o.createElement(f,a(a({ref:t},p),{},{components:i})):o.createElement(f,a({ref:t},p))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=i.length,a=new Array(s);a[0]=l;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:n,a[1]=r;for(var h=2;h=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=i.createContext({}),p=function(e){var t=i.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},c=function(e){var t=p(e.components);return i.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(o),h=n,m=u["".concat(l,".").concat(h)]||u[h]||d[h]||r;return o?i.createElement(m,a(a({ref:t},c),{},{components:o})):i.createElement(m,a({ref:t},c))}));function h(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,a=new Array(r);a[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,a[1]=s;for(var p=2;p")," ",(0,r.kt)("inlineCode",{parentName:"p"},"tno")," ",(0,r.kt)("inlineCode",{parentName:"p"},".")," ",(0,r.kt)("inlineCode",{parentName:"p"},"nl"),", or attend a ",(0,r.kt)("a",{parentName:"p",href:"https://wiki.trustoverip.org/display/HOME/CTWG+Meeting+Pages"},"ToIP CTWG meeting"),", where you express your interest and/or questions, and we'll take it from there."))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[1536],{3905:function(e,t,o){o.d(t,{Zo:function(){return c},kt:function(){return h}});var i=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,i)}return o}function a(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=i.createContext({}),p=function(e){var t=i.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},c=function(e){var t=p(e.components);return i.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(o),h=n,m=u["".concat(l,".").concat(h)]||u[h]||d[h]||r;return o?i.createElement(m,a(a({ref:t},c),{},{components:o})):i.createElement(m,a({ref:t},c))}));function h(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,a=new Array(r);a[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,a[1]=s;for(var p=2;p")," ",(0,r.kt)("inlineCode",{parentName:"p"},"tno")," ",(0,r.kt)("inlineCode",{parentName:"p"},".")," ",(0,r.kt)("inlineCode",{parentName:"p"},"nl"),", or attend a ",(0,r.kt)("a",{parentName:"p",href:"https://wiki.trustoverip.org/display/HOME/CTWG+Meeting+Pages"},"ToIP CTWG meeting"),", where you express your interest and/or questions, and we'll take it from there."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/156e271d.5378f3e1.js b/assets/js/156e271d.bc2d3d77.js similarity index 99% rename from assets/js/156e271d.5378f3e1.js rename to assets/js/156e271d.bc2d3d77.js index a3f7b36236..1028e1f534 100644 --- a/assets/js/156e271d.5378f3e1.js +++ b/assets/js/156e271d.bc2d3d77.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[7082],{3905:function(e,t,o){o.d(t,{Zo:function(){return p},kt:function(){return l}});var i=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function s(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,i)}return o}function a(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),h=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},p=function(e){var t=h(e.components);return i.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),d=h(o),l=n,u=d["".concat(c,".").concat(l)]||d[l]||m[l]||s;return o?i.createElement(u,a(a({ref:t},p),{},{components:o})):i.createElement(u,a({ref:t},p))}));function l(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=o.length,a=new Array(s);a[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:n,a[1]=r;for(var h=2;h=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),h=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},p=function(e){var t=h(e.components);return i.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),d=h(o),l=n,u=d["".concat(c,".").concat(l)]||d[l]||m[l]||s;return o?i.createElement(u,a(a({ref:t},p),{},{components:o})):i.createElement(u,a({ref:t},p))}));function l(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=o.length,a=new Array(s);a[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:n,a[1]=r;for(var h=2;h=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},l=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=d(n),h=a,u=p["".concat(c,".").concat(h)]||p[h]||m[h]||i;return n?r.createElement(u,o(o({ref:t},l),{},{components:n})):r.createElement(u,o({ref:t},l))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,o[1]=s;for(var d=2;d=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},l=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=d(n),h=a,u=p["".concat(c,".").concat(h)]||p[h]||m[h]||i;return n?r.createElement(u,o(o({ref:t},l),{},{components:n})):r.createElement(u,o({ref:t},l))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,o[1]=s;for(var d=2;d=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},l=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),m=p(o),h=r,u=m["".concat(c,".").concat(h)]||m[h]||d[h]||i;return o?n.createElement(u,a(a({ref:t},l),{},{components:o})):n.createElement(u,a({ref:t},l))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var p=2;p=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},l=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),m=p(o),h=r,u=m["".concat(c,".").concat(h)]||m[h]||d[h]||i;return o?n.createElement(u,a(a({ref:t},l),{},{components:o})):n.createElement(u,a({ref:t},l))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var p=2;p=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var c=n.createContext({}),h=function(t){var e=n.useContext(c),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},d=function(t){var e=h(t.components);return n.createElement(c.Provider,{value:e},t.children)},u={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},l=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,o=t.originalType,c=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),l=h(a),p=r,m=l["".concat(c,".").concat(p)]||l[p]||u[p]||o;return a?n.createElement(m,i(i({ref:e},d),{},{components:a})):n.createElement(m,i({ref:e},d))}));function p(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=a.length,i=new Array(o);i[0]=l;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:r,i[1]=s;for(var h=2;hconcept or other semantic unit of a specific [community](@) or other [party](@), and is located within a scope that is owned by that [community](@)/[party](@).\nsynonymOf:\ngrouptags:\nformPhrases: curated-text{ss}, ctext{ss}\n# Curation status\nstatus: proposed\ncreated: 2022-06-02\nupdated: 2022-08-04\n# Origins/Acknowledgements\ncontributors: RieksJ\nattribution: "[eSSIF-Lab](https://essif-lab.github.io/framework)"\noriginalLicense: "[CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1)"\n---\n\n# Curated Text\nA curated text starts with three dashes `---`.\nThis indicates the start of its (YAML) header.\nTypically, the header consists of a sequence of key-value pairs.\nThe header is terminated with onother three dashes and a new line.\n\nThe body of the curated text starts behind the header block.\nIt is typically markdown, but other constructs may be inserted\nthat contribute to the rendering of these texts in a (static) website.\nAn example of this is [MDX](https://mdxjs.com/).\nA discussion on these other constructs is outside the scope of this document.\n')))),(0,o.kt)("h2",{id:"notes"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The header is crucial for categorizing and managing curated texts, enabling efficient retrieval and navigation of relevant information."),(0,o.kt)("li",{parentName:"ul"},"The information within the header ensures consistency and accuracy in the curation process.")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[9901],{3905:function(t,e,a){a.d(e,{Zo:function(){return d},kt:function(){return p}});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function o(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function i(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var c=n.createContext({}),h=function(t){var e=n.useContext(c),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},d=function(t){var e=h(t.components);return n.createElement(c.Provider,{value:e},t.children)},u={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},l=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,o=t.originalType,c=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),l=h(a),p=r,m=l["".concat(c,".").concat(p)]||l[p]||u[p]||o;return a?n.createElement(m,i(i({ref:e},d),{},{components:a})):n.createElement(m,i({ref:e},d))}));function p(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=a.length,i=new Array(o);i[0]=l;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:r,i[1]=s;for(var h=2;hconcept or other semantic unit of a specific [community](@) or other [party](@), and is located within a scope that is owned by that [community](@)/[party](@).\nsynonymOf:\ngrouptags:\nformPhrases: curated-text{ss}, ctext{ss}\n# Curation status\nstatus: proposed\ncreated: 2022-06-02\nupdated: 2022-08-04\n# Origins/Acknowledgements\ncontributors: RieksJ\nattribution: "[eSSIF-Lab](https://essif-lab.github.io/framework)"\noriginalLicense: "[CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1)"\n---\n\n# Curated Text\nA curated text starts with three dashes `---`.\nThis indicates the start of its (YAML) header.\nTypically, the header consists of a sequence of key-value pairs.\nThe header is terminated with onother three dashes and a new line.\n\nThe body of the curated text starts behind the header block.\nIt is typically markdown, but other constructs may be inserted\nthat contribute to the rendering of these texts in a (static) website.\nAn example of this is [MDX](https://mdxjs.com/).\nA discussion on these other constructs is outside the scope of this document.\n')))),(0,o.kt)("h2",{id:"notes"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The header is crucial for categorizing and managing curated texts, enabling efficient retrieval and navigation of relevant information."),(0,o.kt)("li",{parentName:"ul"},"The information within the header ensures consistency and accuracy in the curation process.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/205d9948.36637199.js b/assets/js/205d9948.c0abfca2.js similarity index 99% rename from assets/js/205d9948.36637199.js rename to assets/js/205d9948.c0abfca2.js index 5fd43742da..ab5fb86089 100644 --- a/assets/js/205d9948.36637199.js +++ b/assets/js/205d9948.c0abfca2.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[7523],{3905:function(t,e,i){i.d(e,{Zo:function(){return l},kt:function(){return m}});var a=i(7294);function o(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function n(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function s(t){for(var e=1;e=0||(o[i]=t[i]);return o}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(o[i]=t[i])}return o}var c=a.createContext({}),h=function(t){var e=a.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):s(s({},e),t)),i},l=function(t){var e=h(t.components);return a.createElement(c.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},p=a.forwardRef((function(t,e){var i=t.components,o=t.mdxType,n=t.originalType,c=t.parentName,l=r(t,["components","mdxType","originalType","parentName"]),p=h(i),m=o,f=p["".concat(c,".").concat(m)]||p[m]||d[m]||n;return i?a.createElement(f,s(s({ref:e},l),{},{components:i})):a.createElement(f,s({ref:e},l))}));function m(t,e){var i=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var n=i.length,s=new Array(n);s[0]=p;var r={};for(var c in e)hasOwnProperty.call(e,c)&&(r[c]=e[c]);r.originalType=t,r.mdxType="string"==typeof t?t:o,s[1]=r;for(var h=2;h child <"+("string"==typeof t.type?t.type:t.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:i.filter(Boolean))?e:[]}(t).map((function(t){var e=t.props;return{value:e.value,label:e.label,attributes:e.attributes,default:e.default}}))}function p(t){var e=t.values,i=t.children;return(0,o.useMemo)((function(){var t=null!=e?e:d(i);return function(t){var e=(0,h.l)(t,(function(t,e){return t.value===e.value}));if(e.length>0)throw new Error('Docusaurus error: Duplicate values "'+e.map((function(t){return t.value})).join(", ")+'" found in . Every value needs to be unique.')}(t),t}),[e,i])}function m(t){var e=t.value;return t.tabValues.some((function(t){return t.value===e}))}function f(t){var e=t.queryString,i=void 0!==e&&e,a=t.groupId,n=(0,r.k6)(),s=function(t){var e=t.queryString,i=void 0!==e&&e,a=t.groupId;if("string"==typeof i)return i;if(!1===i)return null;if(!0===i&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=a?a:null}({queryString:i,groupId:a});return[(0,c._X)(s),(0,o.useCallback)((function(t){if(s){var e=new URLSearchParams(n.location.search);e.set(s,t),n.replace(Object.assign({},n.location,{search:e.toString()}))}}),[s,n])]}function g(t){var e,i,a,n,s=t.defaultValue,r=t.queryString,c=void 0!==r&&r,h=t.groupId,d=p(t),g=(0,o.useState)((function(){return function(t){var e,i=t.defaultValue,a=t.tabValues;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(i){if(!m({value:i,tabValues:a}))throw new Error('Docusaurus error: The has a defaultValue "'+i+'" but none of its children has the corresponding value. Available values are: '+a.map((function(t){return t.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return i}var o=null!=(e=a.find((function(t){return t.default})))?e:a[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:s,tabValues:d})})),u=g[0],y=g[1],v=f({queryString:c,groupId:h}),b=v[0],k=v[1],w=(e=function(t){return t?"docusaurus.tab."+t:null}({groupId:h}.groupId),i=(0,l.Nk)(e),a=i[0],n=i[1],[a,(0,o.useCallback)((function(t){e&&n.set(t)}),[e,n])]),T=w[0],x=w[1],S=function(){var t=null!=b?b:T;return m({value:t,tabValues:d})?t:null}();return(0,o.useLayoutEffect)((function(){S&&y(S)}),[S]),{selectedValue:u,selectValue:(0,o.useCallback)((function(t){if(!m({value:t,tabValues:d}))throw new Error("Can't select invalid tab value="+t);y(t),k(t),x(t)}),[k,x,d]),tabValues:d}}var u=i(2389),y="tabList__CuJ",v="tabItem_LNqP";function b(t){var e=t.className,i=t.block,r=t.selectedValue,c=t.selectValue,h=t.tabValues,l=[],d=(0,s.o5)().blockElementScrollPositionUntilNextRender,p=function(t){var e=t.currentTarget,i=l.indexOf(e),a=h[i].value;a!==r&&(d(e),c(a))},m=function(t){var e,i=null;switch(t.key){case"Enter":p(t);break;case"ArrowRight":var a,o=l.indexOf(t.currentTarget)+1;i=null!=(a=l[o])?a:l[0];break;case"ArrowLeft":var n,s=l.indexOf(t.currentTarget)-1;i=null!=(n=l[s])?n:l[l.length-1]}null==(e=i)||e.focus()};return o.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":i},e)},h.map((function(t){var e=t.value,i=t.label,s=t.attributes;return o.createElement("li",(0,a.Z)({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,key:e,ref:function(t){return l.push(t)},onKeyDown:m,onClick:p},s,{className:(0,n.Z)("tabs__item",v,null==s?void 0:s.className,{"tabs__item--active":r===e})}),null!=i?i:e)})))}function k(t){var e=t.lazy,i=t.children,a=t.selectedValue,n=(Array.isArray(i)?i:[i]).filter(Boolean);if(e){var s=n.find((function(t){return t.props.value===a}));return s?(0,o.cloneElement)(s,{className:"margin-top--md"}):null}return o.createElement("div",{className:"margin-top--md"},n.map((function(t,e){return(0,o.cloneElement)(t,{key:e,hidden:t.props.value!==a})})))}function w(t){var e=g(t);return o.createElement("div",{className:(0,n.Z)("tabs-container",y)},o.createElement(b,(0,a.Z)({},t,e)),o.createElement(k,(0,a.Z)({},t,e)))}function T(t){var e=(0,u.Z)();return o.createElement(w,(0,a.Z)({key:String(e)},t))}},2219:function(t,e,i){i.r(e),i.d(e,{assets:function(){return l},contentTitle:function(){return c},default:function(){return f},frontMatter:function(){return r},mark:function(){return p},metadata:function(){return h},toc:function(){return d}});var a=i(7462),o=i(3366),n=(i(7294),i(3905)),s=(i(4996),i(4866),i(5162),["components"]),r={id:"mrgt",sidebar_label:"MR Glossary Generation",date:20221127},c="Machine Readable Glossary Generation Tool",h={unversionedId:"spec-tools/mrgt",id:"spec-tools/mrgt",title:"Machine Readable Glossary Generation Tool",description:"text to mark",source:"@site/docs/spec-tools/21-mrgt.md",sourceDirName:"spec-tools",slug:"/spec-tools/mrgt",permalink:"/tev2-specifications/docs/spec-tools/mrgt",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-tools/21-mrgt.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695712473,formattedLastUpdatedAt:"Sep 26, 2023",sidebarPosition:21,frontMatter:{id:"mrgt",sidebar_label:"MR Glossary Generation",date:20221127},sidebar:"tev2SideBar",previous:{title:"Terminology Construction",permalink:"/tev2-specifications/docs/spec-tools/terminology-construction"},next:{title:"HR Glossary Generation (previous version)",permalink:"/tev2-specifications/docs/spec-tools/hrgt-old"}},l={},d=[{value:"Installing the Tool",id:"installing-the-tool",level:2},{value:"Calling the Tool",id:"calling-the-tool",level:2},{value:"Generating an MRG",id:"generating-an-mrg",level:2},{value:"Creating an MRG Entry",id:"creating-an-mrg-entry",level:3},{value:"Copying an MRG Entry from an existing MRG",id:"copying-an-mrg-entry-from-an-existing-mrg",level:4},{value:"Constructing an MRG Entry from a Curated Text",id:"constructing-an-mrg-entry-from-a-curated-text",level:4},{value:"Exceptions, Warnings, and Logging",id:"exceptions",level:2},{value:"Notes",id:"notes",level:2}],p=function(t){var e=t.children;return(0,n.kt)("span",{style:{color:"black",backgroundColor:"yellow",padding:"0.2rem",borderRadius:"2px"}},e)},m={toc:d,mark:p};function f(t){var e=t.components,i=(0,o.Z)(t,s);return(0,n.kt)("wrapper",(0,a.Z)({},m,i,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"machine-readable-glossary-generation-tool"},"Machine Readable Glossary Generation Tool"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Machine Readable Glossary generation Tool (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT"),")")," generates a Machine Readable Glossary or ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),") for (a specific version of) the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," into a specific, well-defined ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/mrg"},"format"),". An ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," contains so-called ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," for every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," in its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which represent not only ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/concept",hovertext:"Concept: a Semantic Unit that captures the ideas/thoughts behind a classification of Entities (what makes Entities in that class 'the same')."},"concepts")," but also other ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic units")," of other kinds, such as ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mental-model",hovertext:"Mental Model: A Semantic Unit that relates a set of Concepts (ideas), Relations between them, and constraints about a certain topic, into a coherent and consistent whole (sometimes called 'viewpoint', or 'way of thinking')."},"mental models")," and ",(0,n.kt)("a",{parentName:"p",href:"@"},"use cases"),"."),(0,n.kt)("p",null,"The (newly generated) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is meant to be processed by the other tools in the ",(0,n.kt)("a",{parentName:"p",href:"/docs-toolbox"},"toolbox"),", regardless of whether such tools are called from within the context of another ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". As it contains every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that is used in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and includes all the relevant meta-data, an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," serves as the single, authoritative source of that (version of the) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),"."),(0,n.kt)("p",null,"There is currently one (JAVA) implementation of the tool:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"the repo is ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/trustoverip/ctwg-toolkit-mrg/"},"here")),(0,n.kt)("li",{parentName:"ul"},"the documentation is ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/trustoverip/ctwg-toolkit-mrg#readme"},"here")),(0,n.kt)("li",{parentName:"ul"},"the (deprecated) specifications for this tool are ",(0,n.kt)("a",{parentName:"li",href:"https://essif-lab.github.io/framework/docs/spec-tools/mrgt"},"here"))),(0,n.kt)("p",null,"A new implementation is envisaged (but not yet available), which will be built similar to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," and ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG Importer"),"."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"the repo is ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/tno-terminology-design/mrgt"},"here"),"."),(0,n.kt)("li",{parentName:"ul"},"the documentation is ","[",(0,n.kt)("mark",null,"tbd"),"]",".")),(0,n.kt)("h2",{id:"installing-the-tool"},"Installing the Tool"),(0,n.kt)("p",null,"The tool can be installed from the command line and made globally available by executing"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"npm install tno-terminology-design/mrgt -g\n")),(0,n.kt)("h2",{id:"calling-the-tool"},"Calling the Tool"),(0,n.kt)("p",null,"The behavior of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," can be configured per call e.g. by a configuration file and/or command-line parameters. The command-line syntax is as follows:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"mrgt [ ]\n")),(0,n.kt)("p",null,"where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," (optional) is a list of key-value pairs")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("p",null,"The columns in the following table are defined as follows:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Key"))," is the text to be used as a key."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Value"))," represents the kind of value to be used."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),") the field is required to be present when the tool is being called. If required, it MUST either be present in the configuration file, or as a command-line parameter."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the ",(0,n.kt)("inlineCode",{parentName:"li"},"Value")," field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Key"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Value"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"config")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path (including the filename) of the tool's (YAML) configuration file. This file contains the default key-value pairs to be used. Allowed keys (and the associated values) are documented in this table. Command-line arguments override key-value pairs specified in the configuration file. This parameter MUST NOT appear in the configuration file itself.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," from which the tool is called. It MUST contain the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," for that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which we will refer to as the 'current scope' for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," for which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," needs to be (re)generated. When omitted, an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," will be generated for every version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that is specified in the ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-files/saf#versions"},"versions section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"))),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"onNotExist")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"specifies the action to take in case a ",(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")," was specified, but wasn't found in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". Default is ",(0,n.kt)("inlineCode",{parentName:"td"},"'throw'"),".")))),(0,n.kt)("p",null,"The ",(0,n.kt)("inlineCode",{parentName:"p"},"")," parameter can take the following values:"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"th"},"")),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"'throw'")),(0,n.kt)("td",{parentName:"tr",align:"left"},"an error is thrown (an exception is raised), and processing will stop.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"'warn'")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a message is displayed (and logged) and processing continues.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"'log'")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a message is written to a log(file) and processing continues.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"'ignore'")),(0,n.kt)("td",{parentName:"tr",align:"left"},"processing continues as if nothing happened.")))),(0,n.kt)("h2",{id:"generating-an-mrg"},"Generating an MRG"),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," starts by reading the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," that exists in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," that was provided as one of the calling parameters. If a ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," argument is provided, it will search the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/saf#versions"},"versions section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," to find the corresponding entry. This corresponding entry will have the value of the ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," parameter either in its ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," field, or it is one of the elements in the ",(0,n.kt)("inlineCode",{parentName:"p"},"altvsntags")," field. If the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," does not have a corresponding entry, the action specified in the ",(0,n.kt)("inlineCode",{parentName:"p"},"onNotExist")," parameter will determine whether or not (and how) to proceed."),(0,n.kt)("p",null,"The corresponding entry in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," specifies (a specific version of) a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". It not only includes meta-data for that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),", but also the set of '",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria"),"' that specify how the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," needs to be ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-tools/terminology-construction"},"constructed"),", and the file to which the result needs to be written."),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is then created as follows (starting with an empty file):"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," ",(0,n.kt)("inlineCode",{parentName:"li"},"terminology")," section is created, by copying ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-files/mrg#mrg-terminology"},"relevant fields")," from the ",(0,n.kt)("inlineCode",{parentName:"li"},"terminology")," section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"."),(0,n.kt)("li",{parentName:"ol"},"Then, ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-tools/terminology-construction"},"terminology construction")," takes place, which can be thought of as constructing a set of tuples ",(0,n.kt)("inlineCode",{parentName:"li"},"{ [term, grouptags] }"),", where ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," (the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that documents) the particular ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),", and ",(0,n.kt)("inlineCode",{parentName:"li"},"grouptags")," is a set of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," associated with that tuple."),(0,n.kt)("li",{parentName:"ol"},"For every tuple in this set, an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is created, and added to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," under construction. The structure of each such ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entry")," depends on the type of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," represents, as the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"header")," of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," depends on that type.")),(0,n.kt)("p",null,"After the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," has been created, it is written to the file ",(0,n.kt)("inlineCode",{parentName:"p"},"mrg...yaml"),", where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," that is used within the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," to refer to itself. Its value can be found in the ",(0,n.kt)("inlineCode",{parentName:"li"},"scopetag"),"-field in the ",(0,n.kt)("a",{parentName:"li",href:"docs/spec-files/saf#terminology"},"scope section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," for which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," contains ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries"),". Its value must be equal to that found in the ",(0,n.kt)("inlineCode",{parentName:"li"},"vsntag"),"-field of the element in the ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-files/saf#versions"},"versions section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," was generated. NOTE that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontags")," that are listed in the ",(0,n.kt)("inlineCode",{parentName:"li"},"altvsntags"),"-field of such an element MUST NOT be used in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"-filename.")),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," file must be written to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossarydir",hovertext:"Glossarydir: a directory within a Scopedir within which the different versions of its (Machine Readable and Human Readable) Glossaries are created and maintained."},"glossarydir")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which is located at ",(0,n.kt)("inlineCode",{parentName:"p"},"/"),", where"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," is the home-directory of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," is the path to the directorty where all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),"-related files are located. Its value can be found in the ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-files/saf#terminology"},"scope section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".")),(0,n.kt)("p",null,"After the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," file has been written, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," will create, a ",(0,n.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Symbolic_link"},"symbolic link")," for every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that it finds in the ",(0,n.kt)("inlineCode",{parentName:"p"},"altvsntags"),"-field of the element in the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/saf#versions"},"versions section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," was generated. The symbolic link will point to the file that has just been written and contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that has just been generated. The name of this symbolic link is ",(0,n.kt)("inlineCode",{parentName:"p"},"mrg...yaml"),", which is the same name as the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," file, except that the ",(0,n.kt)("inlineCode",{parentName:"p"},"")," part of that filename is replaced with the value of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," found in the ",(0,n.kt)("inlineCode",{parentName:"p"},"altvsntags"),"-field."),(0,n.kt)("h3",{id:"creating-an-mrg-entry"},"Creating an MRG Entry"),(0,n.kt)("p",null,"An ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is either"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"a copy of an (existing) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," that is found in an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that lives in another ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", or"),(0,n.kt)("li",{parentName:"ul"},"it is constructed from a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),", the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"header")," of which always lives in a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file")," that is located in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curatedir",hovertext:"Curatedir: a directory within a Scopedir within which every file contains a Curated Texts for that Scope."},"curatedir")," of the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", as ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-files/saf#terminology"},"specified")," in the ",(0,n.kt)("inlineCode",{parentName:"li"},"curatedir")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", and the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of which can either be found in that same file, or in the file that can be found at the location in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," as specified by the ",(0,n.kt)("inlineCode",{parentName:"li"},"bodyFile"),"-field in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"header")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),".")),(0,n.kt)("h4",{id:"copying-an-mrg-entry-from-an-existing-mrg"},"Copying an MRG Entry from an existing MRG"),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"A prerequisite for generating an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that includes ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," that are maintained in other ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes"),", is that such other ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," must be available in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossarydir",hovertext:"Glossarydir: a directory within a Scopedir within which the different versions of its (Machine Readable and Human Readable) Glossaries are created and maintained."},"glossarydir")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," is run. This can be achieved by running the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-tools/mrg-importer"},"tool"),". If the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that is to be generated doesn't include such ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries"),", the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," need not be invoked.")),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"this section needs to be reviewed/revisded to ensure it fits with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," specs.")),(0,n.kt)("p",null,"In case the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is a copy, the ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/mrg#mrg-entries"},"field")," of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," should be given the value of the ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," field that is found in the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/mrg#mrg-terminology"},"'terminology' section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from which ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," contents was copied."),(0,n.kt)("h4",{id:"constructing-an-mrg-entry-from-a-curated-text"},"Constructing an MRG Entry from a Curated Text"),(0,n.kt)("p",null,"Constructing an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," from a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," is done as follows:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"create an empty/new ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),";"),(0,n.kt)("li",{parentName:"ol"},"if the ",(0,n.kt)("inlineCode",{parentName:"li"},"synonymOf")," field contains a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"term identifier")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," in which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is being created, then copy the entire front matter of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," into the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),";",(0,n.kt)("sup",{parentName:"li",id:"fnref-1"},(0,n.kt)("a",{parentName:"sup",href:"#fn-1",className:"footnote-ref"},"1"))),(0,n.kt)("li",{parentName:"ul"},"an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," in an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," other than the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that is being created, then copy that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," into the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," that has just been created;"))),(0,n.kt)("li",{parentName:"ol"},"if the ",(0,n.kt)("inlineCode",{parentName:"li"},"synonymOf")," field contains a text that is not a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"term identifier"),", raise an ",(0,n.kt)("a",{parentName:"li",href:"#exceptions"},"appropriate warning"),";"),(0,n.kt)("li",{parentName:"ol"},"copy every field in the front-matter of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," into the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),"; if the field already exists in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),", it will be overwritten;"),(0,n.kt)("li",{parentName:"ol"},"discard every field that has a field name that, when converted into lowercase, matches any of the field names in the table below;"),(0,n.kt)("li",{parentName:"ol"},"add the fields in the below table with the specified contents, as follows:")),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Field"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Value(s) that are assigned to the fields"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"left"},"overwrite the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")," field with the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")," field as found in the ",(0,n.kt)("inlineCode",{parentName:"td"},"scope")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"locator")),(0,n.kt)("td",{parentName:"tr",align:"left"},"path, relative to ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"curatedir"),"/, of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"navurl")),(0,n.kt)("td",{parentName:"tr",align:"left"},"path, relative to the URL as specified in the ",(0,n.kt)("inlineCode",{parentName:"td"},"website")," field in the ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-files/saf#terminology"},(0,n.kt)("inlineCode",{parentName:"a"},"scope")," section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", where the rendered version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," is located.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"headingids")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a list of the ",(0,n.kt)("a",{parentName:"td",href:"https://www.markdownguide.org/basic-syntax/#headings"},"markdown headings")," and/or ",(0,n.kt)("a",{parentName:"td",href:"https://www.markdownguide.org/extended-syntax/#linking-to-heading-ids"},"heading ids")," that are found in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),". Note that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," can be in a another file that that which contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"header")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"))))),(0,n.kt)("h2",{id:"exceptions"},"Exceptions, Warnings, and Logging"),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"This section needs to be reviewed/revised so as to enable a consistent way of error checking and logging, similar to what is done in the TRRT")),(0,n.kt)("p",null,"The general principle is that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," helps its users to do their jobs. This means that errors that terminate the processing are limited to the max, that warnings (perhaps at different 'levels' of detail/severity) are given output whenever possible (yet may be limited by command-line options), and that texts are tailored for the envisaged users of the tool."),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," logs conditions that prevent it from properly:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"obtaining the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," from a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag"),";"),(0,n.kt)("li",{parentName:"ul"},"parsing a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," (e.g. because it is not in the expected format);"),(0,n.kt)("li",{parentName:"ul"},"resolving ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),", ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scope tags"),", ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"group tags"),", or ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"version tags"),";"),(0,n.kt)("li",{parentName:"ul"},"writing the output (e.g. because it has no write-permission for the designated location);"),(0,n.kt)("li",{parentName:"ul"},"etc.;")),(0,n.kt)("p",null,"Also, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," provides suggestions that help tool-operators (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators"),") to not only identify, but also fix any problems."),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," comes with documentation that enables developers to ascertain its correct functioning (e.g. by using a test set of files, test scripts that exercise its parameters, etc.), and also enables them to deploy the tool in a git repo and author/modify CI-pipes to use that deployment."),(0,n.kt)("h2",{id:"notes"},"Notes"),(0,n.kt)("div",{className:"footnotes"},(0,n.kt)("hr",{parentName:"div"}),(0,n.kt)("ol",{parentName:"div"},(0,n.kt)("li",{parentName:"ol",id:"fn-1"},"The algorithm ensures that an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," for a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that is a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/synonym",hovertext:"Synonym: a Term that has the same (or similar) meaning as another Term."},"synonym")," of another ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," identical to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," for that other ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term"),", but if the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that specifies the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/synonym",hovertext:"Synonym: a Term that has the same (or similar) meaning as another Term."},"synonym")," has additional front matter (e.g. a slightly modified ",(0,n.kt)("inlineCode",{parentName:"li"},"glossaryText")," field), that front matter is retained in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),". It is up to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"author")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," to make sure this does not pose any problems, and up to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," to do appropriate checks.",(0,n.kt)("a",{parentName:"li",href:"#fnref-1",className:"footnote-backref"},"\u21a9")))))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[7523],{3905:function(t,e,i){i.d(e,{Zo:function(){return l},kt:function(){return m}});var a=i(7294);function o(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function n(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function s(t){for(var e=1;e=0||(o[i]=t[i]);return o}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(o[i]=t[i])}return o}var c=a.createContext({}),h=function(t){var e=a.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):s(s({},e),t)),i},l=function(t){var e=h(t.components);return a.createElement(c.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},p=a.forwardRef((function(t,e){var i=t.components,o=t.mdxType,n=t.originalType,c=t.parentName,l=r(t,["components","mdxType","originalType","parentName"]),p=h(i),m=o,f=p["".concat(c,".").concat(m)]||p[m]||d[m]||n;return i?a.createElement(f,s(s({ref:e},l),{},{components:i})):a.createElement(f,s({ref:e},l))}));function m(t,e){var i=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var n=i.length,s=new Array(n);s[0]=p;var r={};for(var c in e)hasOwnProperty.call(e,c)&&(r[c]=e[c]);r.originalType=t,r.mdxType="string"==typeof t?t:o,s[1]=r;for(var h=2;h child <"+("string"==typeof t.type?t.type:t.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:i.filter(Boolean))?e:[]}(t).map((function(t){var e=t.props;return{value:e.value,label:e.label,attributes:e.attributes,default:e.default}}))}function p(t){var e=t.values,i=t.children;return(0,o.useMemo)((function(){var t=null!=e?e:d(i);return function(t){var e=(0,h.l)(t,(function(t,e){return t.value===e.value}));if(e.length>0)throw new Error('Docusaurus error: Duplicate values "'+e.map((function(t){return t.value})).join(", ")+'" found in . Every value needs to be unique.')}(t),t}),[e,i])}function m(t){var e=t.value;return t.tabValues.some((function(t){return t.value===e}))}function f(t){var e=t.queryString,i=void 0!==e&&e,a=t.groupId,n=(0,r.k6)(),s=function(t){var e=t.queryString,i=void 0!==e&&e,a=t.groupId;if("string"==typeof i)return i;if(!1===i)return null;if(!0===i&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=a?a:null}({queryString:i,groupId:a});return[(0,c._X)(s),(0,o.useCallback)((function(t){if(s){var e=new URLSearchParams(n.location.search);e.set(s,t),n.replace(Object.assign({},n.location,{search:e.toString()}))}}),[s,n])]}function g(t){var e,i,a,n,s=t.defaultValue,r=t.queryString,c=void 0!==r&&r,h=t.groupId,d=p(t),g=(0,o.useState)((function(){return function(t){var e,i=t.defaultValue,a=t.tabValues;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(i){if(!m({value:i,tabValues:a}))throw new Error('Docusaurus error: The has a defaultValue "'+i+'" but none of its children has the corresponding value. Available values are: '+a.map((function(t){return t.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return i}var o=null!=(e=a.find((function(t){return t.default})))?e:a[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:s,tabValues:d})})),u=g[0],y=g[1],v=f({queryString:c,groupId:h}),b=v[0],k=v[1],w=(e=function(t){return t?"docusaurus.tab."+t:null}({groupId:h}.groupId),i=(0,l.Nk)(e),a=i[0],n=i[1],[a,(0,o.useCallback)((function(t){e&&n.set(t)}),[e,n])]),T=w[0],x=w[1],S=function(){var t=null!=b?b:T;return m({value:t,tabValues:d})?t:null}();return(0,o.useLayoutEffect)((function(){S&&y(S)}),[S]),{selectedValue:u,selectValue:(0,o.useCallback)((function(t){if(!m({value:t,tabValues:d}))throw new Error("Can't select invalid tab value="+t);y(t),k(t),x(t)}),[k,x,d]),tabValues:d}}var u=i(2389),y="tabList__CuJ",v="tabItem_LNqP";function b(t){var e=t.className,i=t.block,r=t.selectedValue,c=t.selectValue,h=t.tabValues,l=[],d=(0,s.o5)().blockElementScrollPositionUntilNextRender,p=function(t){var e=t.currentTarget,i=l.indexOf(e),a=h[i].value;a!==r&&(d(e),c(a))},m=function(t){var e,i=null;switch(t.key){case"Enter":p(t);break;case"ArrowRight":var a,o=l.indexOf(t.currentTarget)+1;i=null!=(a=l[o])?a:l[0];break;case"ArrowLeft":var n,s=l.indexOf(t.currentTarget)-1;i=null!=(n=l[s])?n:l[l.length-1]}null==(e=i)||e.focus()};return o.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":i},e)},h.map((function(t){var e=t.value,i=t.label,s=t.attributes;return o.createElement("li",(0,a.Z)({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,key:e,ref:function(t){return l.push(t)},onKeyDown:m,onClick:p},s,{className:(0,n.Z)("tabs__item",v,null==s?void 0:s.className,{"tabs__item--active":r===e})}),null!=i?i:e)})))}function k(t){var e=t.lazy,i=t.children,a=t.selectedValue,n=(Array.isArray(i)?i:[i]).filter(Boolean);if(e){var s=n.find((function(t){return t.props.value===a}));return s?(0,o.cloneElement)(s,{className:"margin-top--md"}):null}return o.createElement("div",{className:"margin-top--md"},n.map((function(t,e){return(0,o.cloneElement)(t,{key:e,hidden:t.props.value!==a})})))}function w(t){var e=g(t);return o.createElement("div",{className:(0,n.Z)("tabs-container",y)},o.createElement(b,(0,a.Z)({},t,e)),o.createElement(k,(0,a.Z)({},t,e)))}function T(t){var e=(0,u.Z)();return o.createElement(w,(0,a.Z)({key:String(e)},t))}},2219:function(t,e,i){i.r(e),i.d(e,{assets:function(){return l},contentTitle:function(){return c},default:function(){return f},frontMatter:function(){return r},mark:function(){return p},metadata:function(){return h},toc:function(){return d}});var a=i(7462),o=i(3366),n=(i(7294),i(3905)),s=(i(4996),i(4866),i(5162),["components"]),r={id:"mrgt",sidebar_label:"MR Glossary Generation",date:20221127},c="Machine Readable Glossary Generation Tool",h={unversionedId:"spec-tools/mrgt",id:"spec-tools/mrgt",title:"Machine Readable Glossary Generation Tool",description:"text to mark",source:"@site/docs/spec-tools/21-mrgt.md",sourceDirName:"spec-tools",slug:"/spec-tools/mrgt",permalink:"/tev2-specifications/docs/spec-tools/mrgt",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-tools/21-mrgt.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695968786,formattedLastUpdatedAt:"Sep 29, 2023",sidebarPosition:21,frontMatter:{id:"mrgt",sidebar_label:"MR Glossary Generation",date:20221127},sidebar:"tev2SideBar",previous:{title:"Terminology Construction",permalink:"/tev2-specifications/docs/spec-tools/terminology-construction"},next:{title:"HR Glossary Generation (previous version)",permalink:"/tev2-specifications/docs/spec-tools/hrgt-old"}},l={},d=[{value:"Installing the Tool",id:"installing-the-tool",level:2},{value:"Calling the Tool",id:"calling-the-tool",level:2},{value:"Generating an MRG",id:"generating-an-mrg",level:2},{value:"Creating an MRG Entry",id:"creating-an-mrg-entry",level:3},{value:"Copying an MRG Entry from an existing MRG",id:"copying-an-mrg-entry-from-an-existing-mrg",level:4},{value:"Constructing an MRG Entry from a Curated Text",id:"constructing-an-mrg-entry-from-a-curated-text",level:4},{value:"Exceptions, Warnings, and Logging",id:"exceptions",level:2},{value:"Notes",id:"notes",level:2}],p=function(t){var e=t.children;return(0,n.kt)("span",{style:{color:"black",backgroundColor:"yellow",padding:"0.2rem",borderRadius:"2px"}},e)},m={toc:d,mark:p};function f(t){var e=t.components,i=(0,o.Z)(t,s);return(0,n.kt)("wrapper",(0,a.Z)({},m,i,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"machine-readable-glossary-generation-tool"},"Machine Readable Glossary Generation Tool"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Machine Readable Glossary generation Tool (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT"),")")," generates a Machine Readable Glossary or ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),") for (a specific version of) the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," into a specific, well-defined ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/mrg"},"format"),". An ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," contains so-called ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," for every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," in its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which represent not only ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/concept",hovertext:"Concept: a Semantic Unit that captures the ideas/thoughts behind a classification of Entities (what makes Entities in that class 'the same')."},"concepts")," but also other ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic units")," of other kinds, such as ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mental-model",hovertext:"Mental Model: A Semantic Unit that relates a set of Concepts (ideas), Relations between them, and constraints about a certain topic, into a coherent and consistent whole (sometimes called 'viewpoint', or 'way of thinking')."},"mental models")," and ",(0,n.kt)("a",{parentName:"p",href:"@"},"use cases"),"."),(0,n.kt)("p",null,"The (newly generated) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is meant to be processed by the other tools in the ",(0,n.kt)("a",{parentName:"p",href:"/docs-toolbox"},"toolbox"),", regardless of whether such tools are called from within the context of another ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". As it contains every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that is used in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and includes all the relevant meta-data, an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," serves as the single, authoritative source of that (version of the) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),"."),(0,n.kt)("p",null,"There is currently one (JAVA) implementation of the tool:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"the repo is ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/trustoverip/ctwg-toolkit-mrg/"},"here")),(0,n.kt)("li",{parentName:"ul"},"the documentation is ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/trustoverip/ctwg-toolkit-mrg#readme"},"here")),(0,n.kt)("li",{parentName:"ul"},"the (deprecated) specifications for this tool are ",(0,n.kt)("a",{parentName:"li",href:"https://essif-lab.github.io/framework/docs/spec-tools/mrgt"},"here"))),(0,n.kt)("p",null,"A new implementation is envisaged (but not yet available), which will be built similar to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," and ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG Importer"),"."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"the repo is ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/tno-terminology-design/mrgt"},"here"),"."),(0,n.kt)("li",{parentName:"ul"},"the documentation is ","[",(0,n.kt)("mark",null,"tbd"),"]",".")),(0,n.kt)("h2",{id:"installing-the-tool"},"Installing the Tool"),(0,n.kt)("p",null,"The tool can be installed from the command line and made globally available by executing"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"npm install tno-terminology-design/mrgt -g\n")),(0,n.kt)("h2",{id:"calling-the-tool"},"Calling the Tool"),(0,n.kt)("p",null,"The behavior of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," can be configured per call e.g. by a configuration file and/or command-line parameters. The command-line syntax is as follows:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"mrgt [ ]\n")),(0,n.kt)("p",null,"where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," (optional) is a list of key-value pairs")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("p",null,"The columns in the following table are defined as follows:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Key"))," is the text to be used as a key."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Value"))," represents the kind of value to be used."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),") the field is required to be present when the tool is being called. If required, it MUST either be present in the configuration file, or as a command-line parameter."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the ",(0,n.kt)("inlineCode",{parentName:"li"},"Value")," field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Key"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Value"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"config")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path (including the filename) of the tool's (YAML) configuration file. This file contains the default key-value pairs to be used. Allowed keys (and the associated values) are documented in this table. Command-line arguments override key-value pairs specified in the configuration file. This parameter MUST NOT appear in the configuration file itself.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," from which the tool is called. It MUST contain the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," for that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which we will refer to as the 'current scope' for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," for which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," needs to be (re)generated. When omitted, an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," will be generated for every version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that is specified in the ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-files/saf#versions"},"versions section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"))),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"onNotExist")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"specifies the action to take in case a ",(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")," was specified, but wasn't found in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". Default is ",(0,n.kt)("inlineCode",{parentName:"td"},"'throw'"),".")))),(0,n.kt)("p",null,"The ",(0,n.kt)("inlineCode",{parentName:"p"},"")," parameter can take the following values:"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"th"},"")),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"'throw'")),(0,n.kt)("td",{parentName:"tr",align:"left"},"an error is thrown (an exception is raised), and processing will stop.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"'warn'")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a message is displayed (and logged) and processing continues.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"'log'")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a message is written to a log(file) and processing continues.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"'ignore'")),(0,n.kt)("td",{parentName:"tr",align:"left"},"processing continues as if nothing happened.")))),(0,n.kt)("h2",{id:"generating-an-mrg"},"Generating an MRG"),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," starts by reading the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," that exists in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," that was provided as one of the calling parameters. If a ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," argument is provided, it will search the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/saf#versions"},"versions section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," to find the corresponding entry. This corresponding entry will have the value of the ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," parameter either in its ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," field, or it is one of the elements in the ",(0,n.kt)("inlineCode",{parentName:"p"},"altvsntags")," field. If the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," does not have a corresponding entry, the action specified in the ",(0,n.kt)("inlineCode",{parentName:"p"},"onNotExist")," parameter will determine whether or not (and how) to proceed."),(0,n.kt)("p",null,"The corresponding entry in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," specifies (a specific version of) a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". It not only includes meta-data for that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),", but also the set of '",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria"),"' that specify how the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," needs to be ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-tools/terminology-construction"},"constructed"),", and the file to which the result needs to be written."),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is then created as follows (starting with an empty file):"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," ",(0,n.kt)("inlineCode",{parentName:"li"},"terminology")," section is created, by copying ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-files/mrg#mrg-terminology"},"relevant fields")," from the ",(0,n.kt)("inlineCode",{parentName:"li"},"terminology")," section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"."),(0,n.kt)("li",{parentName:"ol"},"Then, ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-tools/terminology-construction"},"terminology construction")," takes place, which can be thought of as constructing a set of tuples ",(0,n.kt)("inlineCode",{parentName:"li"},"{ [term, grouptags] }"),", where ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," (the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that documents) the particular ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),", and ",(0,n.kt)("inlineCode",{parentName:"li"},"grouptags")," is a set of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," associated with that tuple."),(0,n.kt)("li",{parentName:"ol"},"For every tuple in this set, an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is created, and added to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," under construction. The structure of each such ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entry")," depends on the type of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," represents, as the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"header")," of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," depends on that type.")),(0,n.kt)("p",null,"After the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," has been created, it is written to the file ",(0,n.kt)("inlineCode",{parentName:"p"},"mrg...yaml"),", where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," that is used within the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," to refer to itself. Its value can be found in the ",(0,n.kt)("inlineCode",{parentName:"li"},"scopetag"),"-field in the ",(0,n.kt)("a",{parentName:"li",href:"docs/spec-files/saf#terminology"},"scope section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," for which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," contains ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries"),". Its value must be equal to that found in the ",(0,n.kt)("inlineCode",{parentName:"li"},"vsntag"),"-field of the element in the ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-files/saf#versions"},"versions section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," was generated. NOTE that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontags")," that are listed in the ",(0,n.kt)("inlineCode",{parentName:"li"},"altvsntags"),"-field of such an element MUST NOT be used in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"-filename.")),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," file must be written to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossarydir",hovertext:"Glossarydir: a directory within a Scopedir within which the different versions of its (Machine Readable and Human Readable) Glossaries are created and maintained."},"glossarydir")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which is located at ",(0,n.kt)("inlineCode",{parentName:"p"},"/"),", where"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," is the home-directory of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," is the path to the directorty where all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),"-related files are located. Its value can be found in the ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-files/saf#terminology"},"scope section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".")),(0,n.kt)("p",null,"After the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," file has been written, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," will create, a ",(0,n.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Symbolic_link"},"symbolic link")," for every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that it finds in the ",(0,n.kt)("inlineCode",{parentName:"p"},"altvsntags"),"-field of the element in the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/saf#versions"},"versions section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," was generated. The symbolic link will point to the file that has just been written and contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that has just been generated. The name of this symbolic link is ",(0,n.kt)("inlineCode",{parentName:"p"},"mrg...yaml"),", which is the same name as the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," file, except that the ",(0,n.kt)("inlineCode",{parentName:"p"},"")," part of that filename is replaced with the value of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," found in the ",(0,n.kt)("inlineCode",{parentName:"p"},"altvsntags"),"-field."),(0,n.kt)("h3",{id:"creating-an-mrg-entry"},"Creating an MRG Entry"),(0,n.kt)("p",null,"An ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is either"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"a copy of an (existing) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," that is found in an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that lives in another ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", or"),(0,n.kt)("li",{parentName:"ul"},"it is constructed from a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),", the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"header")," of which always lives in a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file")," that is located in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curatedir",hovertext:"Curatedir: a directory within a Scopedir within which every file contains a Curated Texts for that Scope."},"curatedir")," of the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", as ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-files/saf#terminology"},"specified")," in the ",(0,n.kt)("inlineCode",{parentName:"li"},"curatedir")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", and the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of which can either be found in that same file, or in the file that can be found at the location in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," as specified by the ",(0,n.kt)("inlineCode",{parentName:"li"},"bodyFile"),"-field in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"header")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),".")),(0,n.kt)("h4",{id:"copying-an-mrg-entry-from-an-existing-mrg"},"Copying an MRG Entry from an existing MRG"),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"A prerequisite for generating an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that includes ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," that are maintained in other ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes"),", is that such other ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," must be available in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossarydir",hovertext:"Glossarydir: a directory within a Scopedir within which the different versions of its (Machine Readable and Human Readable) Glossaries are created and maintained."},"glossarydir")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," is run. This can be achieved by running the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-tools/mrg-importer"},"tool"),". If the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that is to be generated doesn't include such ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries"),", the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," need not be invoked.")),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"this section needs to be reviewed/revisded to ensure it fits with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-importer",hovertext:"MRG Importer: is a tool in the TEv2 toolbox that is run within a particular Scope for the purpose of obtaining MRGs from other Scopes, as specified in the Scope's SAF, and putting them in the Scope's Glossarydir."},"MRG importer")," specs.")),(0,n.kt)("p",null,"In case the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is a copy, the ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/mrg#mrg-entries"},"field")," of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," should be given the value of the ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," field that is found in the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/mrg#mrg-terminology"},"'terminology' section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from which ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," contents was copied."),(0,n.kt)("h4",{id:"constructing-an-mrg-entry-from-a-curated-text"},"Constructing an MRG Entry from a Curated Text"),(0,n.kt)("p",null,"Constructing an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," from a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," is done as follows:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"create an empty/new ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),";"),(0,n.kt)("li",{parentName:"ol"},"if the ",(0,n.kt)("inlineCode",{parentName:"li"},"synonymOf")," field contains a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"term identifier")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," in which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is being created, then copy the entire front matter of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," into the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),";",(0,n.kt)("sup",{parentName:"li",id:"fnref-1"},(0,n.kt)("a",{parentName:"sup",href:"#fn-1",className:"footnote-ref"},"1"))),(0,n.kt)("li",{parentName:"ul"},"an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," in an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," other than the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that is being created, then copy that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," into the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," that has just been created;"))),(0,n.kt)("li",{parentName:"ol"},"if the ",(0,n.kt)("inlineCode",{parentName:"li"},"synonymOf")," field contains a text that is not a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"term identifier"),", raise an ",(0,n.kt)("a",{parentName:"li",href:"#exceptions"},"appropriate warning"),";"),(0,n.kt)("li",{parentName:"ol"},"copy every field in the front-matter of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," into the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),"; if the field already exists in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),", it will be overwritten;"),(0,n.kt)("li",{parentName:"ol"},"discard every field that has a field name that, when converted into lowercase, matches any of the field names in the table below;"),(0,n.kt)("li",{parentName:"ol"},"add the fields in the below table with the specified contents, as follows:")),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Field"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Value(s) that are assigned to the fields"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"left"},"overwrite the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")," field with the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")," field as found in the ",(0,n.kt)("inlineCode",{parentName:"td"},"scope")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"locator")),(0,n.kt)("td",{parentName:"tr",align:"left"},"path, relative to ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"curatedir"),"/, of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"navurl")),(0,n.kt)("td",{parentName:"tr",align:"left"},"path, relative to the URL as specified in the ",(0,n.kt)("inlineCode",{parentName:"td"},"website")," field in the ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-files/saf#terminology"},(0,n.kt)("inlineCode",{parentName:"a"},"scope")," section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", where the rendered version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," is located.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"headingids")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a list of the ",(0,n.kt)("a",{parentName:"td",href:"https://www.markdownguide.org/basic-syntax/#headings"},"markdown headings")," and/or ",(0,n.kt)("a",{parentName:"td",href:"https://www.markdownguide.org/extended-syntax/#linking-to-heading-ids"},"heading ids")," that are found in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),". Note that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," can be in a another file that that which contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"header")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"))))),(0,n.kt)("h2",{id:"exceptions"},"Exceptions, Warnings, and Logging"),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"This section needs to be reviewed/revised so as to enable a consistent way of error checking and logging, similar to what is done in the TRRT")),(0,n.kt)("p",null,"The general principle is that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," helps its users to do their jobs. This means that errors that terminate the processing are limited to the max, that warnings (perhaps at different 'levels' of detail/severity) are given output whenever possible (yet may be limited by command-line options), and that texts are tailored for the envisaged users of the tool."),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," logs conditions that prevent it from properly:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"obtaining the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," from a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag"),";"),(0,n.kt)("li",{parentName:"ul"},"parsing a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," (e.g. because it is not in the expected format);"),(0,n.kt)("li",{parentName:"ul"},"resolving ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),", ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scope tags"),", ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"group tags"),", or ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"version tags"),";"),(0,n.kt)("li",{parentName:"ul"},"writing the output (e.g. because it has no write-permission for the designated location);"),(0,n.kt)("li",{parentName:"ul"},"etc.;")),(0,n.kt)("p",null,"Also, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," provides suggestions that help tool-operators (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators"),") to not only identify, but also fix any problems."),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," comes with documentation that enables developers to ascertain its correct functioning (e.g. by using a test set of files, test scripts that exercise its parameters, etc.), and also enables them to deploy the tool in a git repo and author/modify CI-pipes to use that deployment."),(0,n.kt)("h2",{id:"notes"},"Notes"),(0,n.kt)("div",{className:"footnotes"},(0,n.kt)("hr",{parentName:"div"}),(0,n.kt)("ol",{parentName:"div"},(0,n.kt)("li",{parentName:"ol",id:"fn-1"},"The algorithm ensures that an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," for a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that is a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/synonym",hovertext:"Synonym: a Term that has the same (or similar) meaning as another Term."},"synonym")," of another ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," identical to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," for that other ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term"),", but if the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that specifies the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/synonym",hovertext:"Synonym: a Term that has the same (or similar) meaning as another Term."},"synonym")," has additional front matter (e.g. a slightly modified ",(0,n.kt)("inlineCode",{parentName:"li"},"glossaryText")," field), that front matter is retained in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),". It is up to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"author")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," to make sure this does not pose any problems, and up to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," to do appropriate checks.",(0,n.kt)("a",{parentName:"li",href:"#fnref-1",className:"footnote-backref"},"\u21a9")))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/23374ca6.2fad5b54.js b/assets/js/23374ca6.f9a6d72b.js similarity index 99% rename from assets/js/23374ca6.2fad5b54.js rename to assets/js/23374ca6.f9a6d72b.js index b4434f9638..9babd7bb9c 100644 --- a/assets/js/23374ca6.2fad5b54.js +++ b/assets/js/23374ca6.f9a6d72b.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[8421],{3905:function(e,t,o){o.d(t,{Zo:function(){return l},kt:function(){return f}});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=n.createContext({}),u=function(e){var t=n.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},l=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),m=u(o),f=r,d=m["".concat(c,".").concat(f)]||m[f]||p[f]||i;return o?n.createElement(d,a(a({ref:t},l),{},{components:o})):n.createElement(d,a({ref:t},l))}));function f(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var u=2;u=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=n.createContext({}),u=function(e){var t=n.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},l=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),m=u(o),f=r,d=m["".concat(c,".").concat(f)]||m[f]||p[f]||i;return o?n.createElement(d,a(a({ref:t},l),{},{components:o})):n.createElement(d,a({ref:t},l))}));function f(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var u=2;u=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),m=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},h=function(e){var t=m(e.components);return i.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),d=m(o),l=n,g=d["".concat(c,".").concat(l)]||d[l]||p[l]||a;return o?i.createElement(g,s(s({ref:t},h),{},{components:o})):i.createElement(g,s({ref:t},h))}));function l(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,s=new Array(a);s[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:n,s[1]=r;for(var m=2;m=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),m=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},h=function(e){var t=m(e.components);return i.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),d=m(o),l=n,g=d["".concat(c,".").concat(l)]||d[l]||p[l]||a;return o?i.createElement(g,s(s({ref:t},h),{},{components:o})):i.createElement(g,s({ref:t},h))}));function l(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,s=new Array(a);s[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:n,s[1]=r;for(var m=2;m=0||(s[i]=e[i]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(s[i]=e[i])}return s}var c=o.createContext({}),p=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},h=function(e){var t=p(e.components);return o.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},f=o.forwardRef((function(e,t){var i=e.components,s=e.mdxType,n=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),f=p(i),d=s,m=f["".concat(c,".").concat(d)]||f[d]||l[d]||n;return i?o.createElement(m,a(a({ref:t},h),{},{components:i})):o.createElement(m,a({ref:t},h))}));function d(e,t){var i=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=i.length,a=new Array(n);a[0]=f;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:s,a[1]=r;for(var p=2;p=0||(s[i]=e[i]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(s[i]=e[i])}return s}var c=o.createContext({}),p=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},h=function(e){var t=p(e.components);return o.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},f=o.forwardRef((function(e,t){var i=e.components,s=e.mdxType,n=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),f=p(i),d=s,m=f["".concat(c,".").concat(d)]||f[d]||l[d]||n;return i?o.createElement(m,a(a({ref:t},h),{},{components:i})):o.createElement(m,a({ref:t},h))}));function d(e,t){var i=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=i.length,a=new Array(n);a[0]=f;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:s,a[1]=r;for(var p=2;p=0||(a[o]=t[o]);return a}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(a[o]=t[o])}return a}var c=i.createContext({}),h=function(t){var e=i.useContext(c),o=e;return t&&(o="function"==typeof t?t(e):r(r({},e),t)),o},d=function(t){var e=h(t.components);return i.createElement(c.Provider,{value:e},t.children)},u={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},m=i.forwardRef((function(t,e){var o=t.components,a=t.mdxType,n=t.originalType,c=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),m=h(o),p=a,l=m["".concat(c,".").concat(p)]||m[p]||u[p]||n;return o?i.createElement(l,r(r({ref:e},d),{},{components:o})):i.createElement(l,r({ref:e},d))}));function p(t,e){var o=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var n=o.length,r=new Array(n);r[0]=m;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:a,r[1]=s;for(var h=2;h=0||(a[o]=t[o]);return a}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(a[o]=t[o])}return a}var c=i.createContext({}),h=function(t){var e=i.useContext(c),o=e;return t&&(o="function"==typeof t?t(e):r(r({},e),t)),o},d=function(t){var e=h(t.components);return i.createElement(c.Provider,{value:e},t.children)},u={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},m=i.forwardRef((function(t,e){var o=t.components,a=t.mdxType,n=t.originalType,c=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),m=h(o),p=a,l=m["".concat(c,".").concat(p)]||m[p]||u[p]||n;return o?i.createElement(l,r(r({ref:e},d),{},{components:o})):i.createElement(l,r({ref:e},d))}));function p(t,e){var o=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var n=o.length,r=new Array(n);r[0]=m;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:a,r[1]=s;for(var h=2;h=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=o.createContext({}),h=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},l=function(e){var t=h(e.components);return o.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,l=r(e,["components","mdxType","originalType","parentName"]),m=h(n),p=i,u=m["".concat(c,".").concat(p)]||m[p]||d[p]||a;return n?o.createElement(u,s(s({ref:t},l),{},{components:n})):o.createElement(u,s({ref:t},l))}));function p(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,s=new Array(a);s[0]=m;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:i,s[1]=r;for(var h=2;h=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=o.createContext({}),h=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},l=function(e){var t=h(e.components);return o.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,l=r(e,["components","mdxType","originalType","parentName"]),m=h(n),p=i,u=m["".concat(c,".").concat(p)]||m[p]||d[p]||a;return n?o.createElement(u,s(s({ref:t},l),{},{components:n})):o.createElement(u,s({ref:t},l))}));function p(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,s=new Array(a);s[0]=m;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:i,s[1]=r;for(var h=2;h=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=o.createContext({}),m=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},l=function(e){var t=m(e.components);return o.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=m(n),h=i,u=d["".concat(c,".").concat(h)]||d[h]||p[h]||a;return n?o.createElement(u,r(r({ref:t},l),{},{components:n})):o.createElement(u,r({ref:t},l))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,r=new Array(a);r[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:i,r[1]=s;for(var m=2;m=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=o.createContext({}),m=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},l=function(e){var t=m(e.components);return o.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=m(n),h=i,u=d["".concat(c,".").concat(h)]||d[h]||p[h]||a;return n?o.createElement(u,r(r({ref:t},l),{},{components:n})):o.createElement(u,r({ref:t},l))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,r=new Array(a);r[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:i,r[1]=s;for(var m=2;m=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(r),m=a,f=u["".concat(l,".").concat(m)]||u[m]||p[m]||o;return r?n.createElement(f,i(i({ref:t},d),{},{components:r})):n.createElement(f,i({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var c=2;c=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(r),m=a,f=u["".concat(l,".").concat(m)]||u[m]||p[m]||o;return r?n.createElement(f,i(i({ref:t},d),{},{components:r})):n.createElement(f,i({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var c=2;c=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var c=a.createContext({}),l=function(e){var t=a.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):r(r({},t),e)),i},h=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var i=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=l(i),m=n,f=p["".concat(c,".").concat(m)]||p[m]||d[m]||o;return i?a.createElement(f,r(r({ref:t},h),{},{components:i})):a.createElement(f,r({ref:t},h))}));function m(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=i.length,r=new Array(o);r[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,r[1]=s;for(var l=2;l child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:i.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function p(e){var t=e.values,i=e.children;return(0,n.useMemo)((function(){var e=null!=t?t:d(i);return function(e){var t=(0,l.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,i])}function m(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function f(e){var t=e.queryString,i=void 0!==t&&t,a=e.groupId,o=(0,s.k6)(),r=function(e){var t=e.queryString,i=void 0!==t&&t,a=e.groupId;if("string"==typeof i)return i;if(!1===i)return null;if(!0===i&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=a?a:null}({queryString:i,groupId:a});return[(0,c._X)(r),(0,n.useCallback)((function(e){if(r){var t=new URLSearchParams(o.location.search);t.set(r,e),o.replace(Object.assign({},o.location,{search:t.toString()}))}}),[r,o])]}function u(e){var t,i,a,o,r=e.defaultValue,s=e.queryString,c=void 0!==s&&s,l=e.groupId,d=p(e),u=(0,n.useState)((function(){return function(e){var t,i=e.defaultValue,a=e.tabValues;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(i){if(!m({value:i,tabValues:a}))throw new Error('Docusaurus error: The has a defaultValue "'+i+'" but none of its children has the corresponding value. Available values are: '+a.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return i}var n=null!=(t=a.find((function(e){return e.default})))?t:a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:r,tabValues:d})})),g=u[0],y=u[1],k=f({queryString:c,groupId:l}),v=k[0],b=k[1],C=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:l}.groupId),i=(0,h.Nk)(t),a=i[0],o=i[1],[a,(0,n.useCallback)((function(e){t&&o.set(e)}),[t,o])]),T=C[0],w=C[1],N=function(){var e=null!=v?v:T;return m({value:e,tabValues:d})?e:null}();return(0,n.useLayoutEffect)((function(){N&&y(N)}),[N]),{selectedValue:g,selectValue:(0,n.useCallback)((function(e){if(!m({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);y(e),b(e),w(e)}),[b,w,d]),tabValues:d}}var g=i(2389),y="tabList__CuJ",k="tabItem_LNqP";function v(e){var t=e.className,i=e.block,s=e.selectedValue,c=e.selectValue,l=e.tabValues,h=[],d=(0,r.o5)().blockElementScrollPositionUntilNextRender,p=function(e){var t=e.currentTarget,i=h.indexOf(t),a=l[i].value;a!==s&&(d(t),c(a))},m=function(e){var t,i=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":var a,n=h.indexOf(e.currentTarget)+1;i=null!=(a=h[n])?a:h[0];break;case"ArrowLeft":var o,r=h.indexOf(e.currentTarget)-1;i=null!=(o=h[r])?o:h[h.length-1]}null==(t=i)||t.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":i},t)},l.map((function(e){var t=e.value,i=e.label,r=e.attributes;return n.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:function(e){return h.push(e)},onKeyDown:m,onClick:p},r,{className:(0,o.Z)("tabs__item",k,null==r?void 0:r.className,{"tabs__item--active":s===t})}),null!=i?i:t)})))}function b(e){var t=e.lazy,i=e.children,a=e.selectedValue,o=(Array.isArray(i)?i:[i]).filter(Boolean);if(t){var r=o.find((function(e){return e.props.value===a}));return r?(0,n.cloneElement)(r,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},o.map((function(e,t){return(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a})})))}function C(e){var t=u(e);return n.createElement("div",{className:(0,o.Z)("tabs-container",y)},n.createElement(v,(0,a.Z)({},e,t)),n.createElement(b,(0,a.Z)({},e,t)))}function T(e){var t=(0,g.Z)();return n.createElement(C,(0,a.Z)({key:String(t)},e))}},6592:function(e,t,i){i.r(t),i.d(t,{assets:function(){return p},contentTitle:function(){return h},default:function(){return g},frontMatter:function(){return l},mark:function(){return f},metadata:function(){return d},toc:function(){return m}});var a=i(7462),n=i(3366),o=(i(7294),i(3905)),r=(i(4996),i(4866)),s=i(5162),c=["components"],l={id:"ict",sidebar_label:"Integrity Checking",date:20220421},h=void 0,d={unversionedId:"spec-tools/ict",id:"spec-tools/ict",title:"ict",description:"text to mark",source:"@site/docs/spec-tools/11-ict.md",sourceDirName:"spec-tools",slug:"/spec-tools/ict",permalink:"/tev2-specifications/docs/spec-tools/ict",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-tools/11-ict.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695712473,formattedLastUpdatedAt:"Sep 26, 2023",sidebarPosition:11,frontMatter:{id:"ict",sidebar_label:"Integrity Checking",date:20220421},sidebar:"tev2SideBar",previous:{title:"TEv2 Terminology Toolbox",permalink:"/tev2-specifications/docs/tev2-toolbox"},next:{title:"MRG Importer",permalink:"/tev2-specifications/docs/spec-tools/mrg-importer"}},p={},m=[{value:"Calling the Tool",id:"calling-the-tool",level:2},{value:"Parameters (Command-line arguments)",id:"parameters-command-line-arguments",level:3},{value:"Integrity Checks",id:"integrity-checks",level:2},{value:"SAF integrity",id:"saf-integrity",level:3},{value:"MRG integrity",id:"mrg-integrity",level:3},{value:"Header fields for termType: relation",id:"header-fields-for-termtype-relation",level:3},{value:"Curated Text integrity",id:"curated-text-integrity",level:3},{value:"Concepts",id:"concepts",level:4},{value:"Patterns",id:"patterns",level:4},{value:"Processing, Errors and Warnings",id:"processing-errors-and-warnings",level:2},{value:"Deploying the Tool",id:"deploying-the-tool",level:2},{value:"Discussion Notes",id:"discussion-notes",level:2}],f=function(e){var t=e.children;return(0,o.kt)("span",{style:{color:"black",backgroundColor:"yellow",padding:"0.2rem",borderRadius:"2px"}},t)},u={toc:m,mark:f};function g(e){var t=e.components,i=(0,n.Z)(e,c);return(0,o.kt)("wrapper",(0,a.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{title:"Editor's note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"The text below will need a thorough revision due to various changes that have not yet been taken into account")),(0,o.kt)("h1",{id:"integrity-checker-tool-ict"},"Integrity Checker Tool (ICT)"),(0,o.kt)("p",null,"The ",(0,o.kt)("strong",{parentName:"p"},"Integrity Checker Tool (",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT"),")")," tests the integrity of (a selection of) the data in files that are ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curate",hovertext:"Curate: to select, organize, and present Terms, Definitions, and other, related content in a thoughtful and purposeful manner to establish shared understanding among a Community working together on a particular set of objectives."},"curated")," within a particular ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", i.e. the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),", and ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),". The integrity checking of other data, e.g. ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/formatted-text",hovertext:"Formatted Text: a text that has been processed and arranged to have a specific layout, style, and presentation, making it visually appealing and easy to read."},"formatted texts"),", such as ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRGs"),", is outside the scope of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT"),"."),(0,o.kt)("p",null,"In order for the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," to be used optimally, it will assume for specific kinds of files that the integrity of other files is guaranteed, as follows:"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:"left"},"When testing a ... ,"),(0,o.kt)("th",{parentName:"tr",align:"left"},"the integrity is assumed of"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," and ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"))))),(0,o.kt)("p",null,"The idea behind this is to enable ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," to only test changes they have made rather than testing the entire set of files."),(0,o.kt)("admonition",{title:"Editor's Note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"As the tool hasn't been made, and no practical experience has been gained, many of these optimizations may not work in the first versions.")),(0,o.kt)("admonition",{title:"Editor's Note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"There's a lot of duplication in syntax specs. For example, the ",(0,o.kt)("a",{parentName:"p",href:"docs/spec-files/saf"},"SAF spec")," and ",(0,o.kt)("a",{parentName:"p",href:"/docs/spec-files/mrg"},"MRG spec")," define the regex for various kinds of tags all over the place. It would be nice to have a way by which syntax can be specified in one location that is 'naturally predictable' so that both readers and maintainers of the documentation can easily find it. One way might be to include the syntax in a 'popover', i.e. that we define stuff with particular syntax as a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/concept",hovertext:"Concept: a Semantic Unit that captures the ideas/thoughts behind a classification of Entities (what makes Entities in that class 'the same')."},"concept")," and have the syntax be included in its ",(0,o.kt)("inlineCode",{parentName:"p"},"hoverText"),".")),(0,o.kt)("h2",{id:"calling-the-tool"},"Calling the Tool"),(0,o.kt)("p",null,"The behavior of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," can be configured per call e.g. by a configuration file and/or command-line parameters. Examples include specifications for:"),(0,o.kt)("p",null,"The command-line syntax is as follows:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"ict [ ] [ ]\n")),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:"left"},"Where:"),(0,o.kt)("th",{parentName:"tr",align:"left"}))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"left"},"(optional) specifies the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," whose integrity is to be tested. If ",(0,o.kt)("inlineCode",{parentName:"td"},"")," is omitted and a configuration file is used, its value is read from that file. If cases where ",(0,o.kt)("inlineCode",{parentName:"td"},"")," isn't specified, the current directory is assumed to be the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),".",(0,o.kt)("br",null),'In this document, we use the term "',(0,o.kt)("strong",{parentName:"td"},"this scopedir"),'" to refer to the value of ',(0,o.kt)("inlineCode",{parentName:"td"},""),", and ",(0,o.kt)("strong",{parentName:"td"},"this scope"),'" to refer to the associated ',(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"left"},"The following commands are valid:",(0,o.kt)("br",null),(0,o.kt)("ul",null,(0,o.kt)("li",null,(0,o.kt)("inlineCode",{parentName:"td"},"-saf"),": check the integrity of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". It does not take any further parameters."),(0,o.kt)("li",null,(0,o.kt)("inlineCode",{parentName:"td"},"-mrg"),": check the integrity of (one of) the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG(s)"),". Additional parameters can be used, e.g. to specify a particular version of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," to be checked."),(0,o.kt)("li",null,(0,o.kt)("inlineCode",{parentName:"td"},"-txt"),": check the integrity of ",(0,o.kt)("em",{parentName:"td"},"this scope's")," ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated files"),". Additional parameters can be used, e.g. to select a particular subset of these files."),(0,o.kt)("li",null,(0,o.kt)("inlineCode",{parentName:"td"},"-all"),": check all ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curate",hovertext:"Curate: to select, organize, and present Terms, Definitions, and other, related content in a thoughtful and purposeful manner to establish shared understanding among a Community working together on a particular set of objectives."},"curated")," files within ",(0,o.kt)("em",{parentName:"td"},"this scope"),". Additional parameters may be used, e.g. to skip the checking of specific files.")))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"left"},"a list of parameters that provide further specifications for what the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," should be checking.")))),(0,o.kt)("h3",{id:"parameters-command-line-arguments"},"Parameters (Command-line arguments)"),(0,o.kt)("admonition",{title:"Editor's Note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"The current set of parameters is just an initial suggestion. We'll need to see what will actually be needed in practice.")),(0,o.kt)("details",null,(0,o.kt)("summary",null,"Legend"),(0,o.kt)("p",null,"The columns in the following table are defined as follows:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"strong"},"Key"))," is the text to be used as a key."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"strong"},"Value"))," represents the kind of value to be used."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,o.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,o.kt)("inlineCode",{parentName:"li"},"n"),") the field is required to be present when the tool is being called. If (always) required, it MUST either be present in the configuration file, or as a command-line parameter."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"strong"},"Cmd"))," specifies a ",(0,o.kt)("inlineCode",{parentName:"li"},"")," value: if the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," is called with this ",(0,o.kt)("inlineCode",{parentName:"li"},""),", then this parameter will be used by the tool as described. A ",(0,o.kt)("inlineCode",{parentName:"li"},"*")," in this field indicates that this parameter can be used with every command."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the ",(0,o.kt)("inlineCode",{parentName:"li"},"Value")," field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:"left"},"Key"),(0,o.kt)("th",{parentName:"tr",align:"left"},"Value"),(0,o.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,o.kt)("th",{parentName:"tr",align:"center"},"Cmds"),(0,o.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"config")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"center"},"n"),(0,o.kt)("td",{parentName:"tr",align:"center"},"*"),(0,o.kt)("td",{parentName:"tr",align:"left"},"Path (including the filename) of the tool's (YAML) configuration file. This file contains the default key-value pairs to be used. Allowed keys (and the associated values) are documented in this table. Command-line arguments override key-value pairs specified in the configuration file. This parameter SHOULD NOT appear in the configuration file itself.")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,o.kt)("td",{parentName:"tr",align:"center"},"*"),(0,o.kt)("td",{parentName:"tr",align:"left"},"Path to the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," within which the tool is to operate, i.e.: ",(0,o.kt)("em",{parentName:"td"},"this scopedir"),".")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"syntax")),(0,o.kt)("td",{parentName:"tr",align:"left"}),(0,o.kt)("td",{parentName:"tr",align:"center"},"n"),(0,o.kt)("td",{parentName:"tr",align:"center"},"*"),(0,o.kt)("td",{parentName:"tr",align:"left"},"This argument has no value. If present, the syntax of all (YAML) fields in the file is checked against their specifications (see e.g. ",(0,o.kt)("a",{parentName:"td",href:"docs/spec-files/saf"},"SAF specs"),", ",(0,o.kt)("a",{parentName:"td",href:"/docs/spec-tools/terminology-construction"},"terminology construction"),", ",(0,o.kt)("a",{parentName:"td",href:"/docs/spec-files/mrg"},"MRG specs"),", ",(0,o.kt)("a",{parentName:"td",href:"/docs/spec-files/ctext"},"Curated Texts"),", ",(0,o.kt)("a",{parentName:"td",href:"/docs/spec-syntax/term-ref-syntax"},"TermRefs"),").")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"vsntag")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"center"}),(0,o.kt)("td",{parentName:"tr",align:"center"},(0,o.kt)("inlineCode",{parentName:"td"},"-mrg")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that is used to select the version of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," to be checked. The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that is selected will either have ",(0,o.kt)("inlineCode",{parentName:"td"},"")," as the contents of the field ",(0,o.kt)("inlineCode",{parentName:"td"},"terminology.vsntag"),", or as an element in the list of ",(0,o.kt)("inlineCode",{parentName:"td"},"terminology.alvsntags"),".")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"term")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"center"},"n"),(0,o.kt)("td",{parentName:"tr",align:"center"},"-txt"),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," a particular ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file"),". The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file"),", whose (front-matter) field ",(0,o.kt)("inlineCode",{parentName:"td"},"term")," matches this parameter, will be integrity-checked.")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"termtypes")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"center"},"n"),(0,o.kt)("td",{parentName:"tr",align:"center"},"-txt"),(0,o.kt)("td",{parentName:"tr",align:"left"},"List of texts that serve to identify a specific kind of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),", e.g. ",(0,o.kt)("inlineCode",{parentName:"td"},"concept"),", or ",(0,o.kt)("inlineCode",{parentName:"td"},"pattern"),". Every ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file"),", whose (front-matter) field ",(0,o.kt)("inlineCode",{parentName:"td"},"termtype")," appears as an element in the ",(0,o.kt)("inlineCode",{parentName:"td"},"")," list, will be integrity-checked.")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"grouptags")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"center"},"n"),(0,o.kt)("td",{parentName:"tr",align:"center"},"-txt"),(0,o.kt)("td",{parentName:"tr",align:"left"},"List of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags"),". Every ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file"),", whose (front-matter) field ",(0,o.kt)("inlineCode",{parentName:"td"},"grouptags")," has an element that also appears as an element in the ",(0,o.kt)("inlineCode",{parentName:"td"},"")," list, will be integrity-checked.")))),(0,o.kt)("h2",{id:"integrity-checks"},"Integrity Checks"),(0,o.kt)("p",null,"The checks that are done on files depend on the kind of file that is being checked. This section lists the tests for the various kinds of files. Every file is assumed to be part of ",(0,o.kt)("em",{parentName:"p"},"this scope"),", and reside in the associated ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," (i.e.: ",(0,o.kt)("em",{parentName:"p"},"this scopedir"),")."),(0,o.kt)("h3",{id:"saf-integrity"},"SAF integrity"),(0,o.kt)("p",null,"The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," must be a file that contains valid YAML syntax."),(0,o.kt)("p",null,"The integrity of a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," requires the following conditions to be satisfied for the key's in the ",(0,o.kt)("inlineCode",{parentName:"p"},"scope")," section:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopedir")," must point to the directory in which the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," is stored for public use (i.e. in this scopedir)."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"curatedir"),', when appended to the value of "',(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),'/", must point to the directory that stores the ',(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated files"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"glossarydir")," must point to an existing directory."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"mrgfile"),' must be an existing file in directory "',(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),'/" (note that an empty ',(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," is still a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that can have an ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),")."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"hrgfile"),' must be an existing file in directory "',(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),'/" (note that an empty ',(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," is still a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that can have a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),")."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"license")," must be an existing file in the directory pointed to by ",(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),".")),(0,o.kt)("p",null,"The integrity of a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," requires the following conditions to be satisfied for every element in the ",(0,o.kt)("inlineCode",{parentName:"p"},"scopes")," section:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopetags")," must be a nonempty list of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopedir")," must be a valid URL, that points to an existing directory resource.")),(0,o.kt)("p",null,"The integrity of a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," requires the following conditions to be satisfied for every element in the ",(0,o.kt)("inlineCode",{parentName:"p"},"versions")," section:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"vsntag")," SHOULD not appear as an element in the ",(0,o.kt)("inlineCode",{parentName:"li"},"altvsntags")," field of this ",(0,o.kt)("inlineCode",{parentName:"li"},"version")," element, and it MUST NOT appear in the ",(0,o.kt)("inlineCode",{parentName:"li"},"vsntag")," or ",(0,o.kt)("inlineCode",{parentName:"li"},"altvsntags")," fields of any other element in the ",(0,o.kt)("inlineCode",{parentName:"li"},"versions")," section."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"altvsntags")," must be a (possibly empty) list of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontags"),", each of which SHOULD not appear in the ",(0,o.kt)("inlineCode",{parentName:"li"},"vsntag")," field of the element, and MUST NOT appear in the ",(0,o.kt)("inlineCode",{parentName:"li"},"vsntag")," or ",(0,o.kt)("inlineCode",{parentName:"li"},"altvsntags")," fields of any other element in the ",(0,o.kt)("inlineCode",{parentName:"li"},"versions")," section."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"termselcrit")," must be a non-emptly list of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"status")," SHOULD be a non-empty field.")),(0,o.kt)("h3",{id:"mrg-integrity"},"MRG integrity"),(0,o.kt)("p",null,"The integrity checking for ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," files assumes that the integrity conditions of a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," file are satisfied, and that the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," file itself contains valid YAML syntax."),(0,o.kt)("p",null,"The integrity checking comprises every (group of) test(s) as specified in this sub-section."),(0,o.kt)("p",null,"The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," MUST have sections named ",(0,o.kt)("inlineCode",{parentName:"p"},"terminology"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"scopes"),", and ",(0,o.kt)("inlineCode",{parentName:"p"},"entries"),"."),(0,o.kt)("p",null,"Integrity checks for the ",(0,o.kt)("inlineCode",{parentName:"p"},"terminology")," section include:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopedir")," must point to the directory in which the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," is stored for public use (i.e. in this scopedir)."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"vsntag")," must be a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that SHOULD not appear as an element in the ",(0,o.kt)("inlineCode",{parentName:"li"},"altvsntags")," field."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"altvsntags")," must be a (possibly empty) list of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontags"),", none of which appear in the ",(0,o.kt)("inlineCode",{parentName:"li"},"vsntag")," field."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"license")," must be an existing file in the directory pointed to by ",(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),".")),(0,o.kt)("p",null,"Integrity checks for the ",(0,o.kt)("inlineCode",{parentName:"p"},"scopes")," section include:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopetags")," must be a nonempty list of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopedir")," must be a valid URL, that points to an existing directory resource other than the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," of the current ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". This directory MUST contain a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". ",(0,o.kt)("mark",null,"Do we need an option to test the integrity of such ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAFs"),"?"))),(0,o.kt)("p",null,"Integrity checks for the ",(0,o.kt)("inlineCode",{parentName:"p"},"entries")," section consist of one part that is generic for all entries, and another part that depends on the value of the ",(0,o.kt)("inlineCode",{parentName:"p"},"termtype")," field (so that checking of e.g. entries of type ",(0,o.kt)("inlineCode",{parentName:"p"},"concept")," and of type ",(0,o.kt)("inlineCode",{parentName:"p"},"pattern")," can have different checks.) The checks that every entry must pass include the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopetag")," MUST also appear as the value of ",(0,o.kt)("inlineCode",{parentName:"li"},"terminology.scopetag"),", or as an element in one of the ",(0,o.kt)("inlineCode",{parentName:"li"},"scopes.scopetags")," elements."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"termtype")," SHOULD be ",(0,o.kt)("mark",null,"tbd.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"grouptags")," MUST be a list of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptag")," elements."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"license")," MUST be an existing file in the directory pointed to by ",(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"status")," SHOULD match an element in the list ",(0,o.kt)("inlineCode",{parentName:"li"},"scope.statuses")," of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"locator"),", if specified, MUST have a readable resource (file) at ",(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),"/",(0,o.kt)("inlineCode",{parentName:"li"},"curatedir"),"/",(0,o.kt)("inlineCode",{parentName:"li"},"locator"),", where ",(0,o.kt)("inlineCode",{parentName:"li"},"scopedir")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"curatedir")," are specified in the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"navurl"),", if specified, MUST return an HTML-resource when specified as the URL in a HTTP(S) request method ",(0,o.kt)("inlineCode",{parentName:"li"},"GET")," or ",(0,o.kt)("inlineCode",{parentName:"li"},"HEAD"),".")),(0,o.kt)("p",null,"For specific kinds of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries"),", the following additional constraints MUST be satisfied:"),(0,o.kt)(r.Z,{defaultValue:"concept",values:[{label:"Terms",value:"term"},{label:"Concepts",value:"concept"},{label:"Relations",value:"relation"},{label:"Mental Models",value:"pattern"}],mdxType:"Tabs"},(0,o.kt)(s.Z,{value:"concept",mdxType:"TabItem"},(0,o.kt)("br",null),(0,o.kt)("p",null,"The following constraints MUST hold for ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," of type ",(0,o.kt)("inlineCode",{parentName:"p"},"concept"),":"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"if a ",(0,o.kt)("inlineCode",{parentName:"li"},"glossaryText")," contains a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),", then the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," SHOULD be resolvable ",(0,o.kt)("mark",null,"(reference to the term-ref-integrity checks)"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"hoverText")," MUST NOT contain any ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),", nor any other ",(0,o.kt)("a",{parentName:"li",href:"https://www.markdownguide.org/basic-syntax/#links"},"markdown links"),"."))),(0,o.kt)(s.Z,{value:"term",mdxType:"TabItem"},(0,o.kt)("br",null),(0,o.kt)("admonition",{title:"Editor's note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"As header fields for ",(0,o.kt)("inlineCode",{parentName:"p"},"term")," termtypes need to be discussed, we do not yet specify any constraints"))),(0,o.kt)(s.Z,{value:"relation",mdxType:"TabItem"},(0,o.kt)("br",null),(0,o.kt)("h3",{id:"header-fields-for-termtype-relation"},"Header fields for ",(0,o.kt)("inlineCode",{parentName:"h3"},"termType: relation")),(0,o.kt)("admonition",{title:"Editor's note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"As ",(0,o.kt)("inlineCode",{parentName:"p"},"relation"),"s need to be discussed, we do not yet specify any constraints."))),(0,o.kt)(s.Z,{value:"pattern",mdxType:"TabItem"},(0,o.kt)("br",null),(0,o.kt)("admonition",{title:"Editor's note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"As ",(0,o.kt)("inlineCode",{parentName:"p"},"pattern"),"s need to be discussed, we do not yet specify any constraints.")))),(0,o.kt)("admonition",{title:"Editor's note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Checks need to be added to ensure congruence between terms and any synonyms that are defined for them. For example, they should have the same value in various fields, e.g., ",(0,o.kt)("inlineCode",{parentName:"p"},"termType"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"isa")," (but not ",(0,o.kt)("inlineCode",{parentName:"p"},"glossaryText")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"synonymOf"),")")),(0,o.kt)("h3",{id:"curated-text-integrity"},"Curated Text integrity"),(0,o.kt)("p",null,"The integrity of any ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," file requires the integrity conditions of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," file to be satisfied, as well as the following conditions:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("mark",null,"TBD"))),(0,o.kt)("h4",{id:"concepts"},"Concepts"),(0,o.kt)("p",null,"The integrity of any ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," file that has ",(0,o.kt)("inlineCode",{parentName:"p"},"termType: concept")," requires the integrity conditions of a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," file to be satisfied, as well as the following conditions:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("mark",null,"TBD"))),(0,o.kt)("h4",{id:"patterns"},"Patterns"),(0,o.kt)("p",null,"The integrity of any ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," file that has ",(0,o.kt)("inlineCode",{parentName:"p"},"termType: concept")," requires the integrity conditions of a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," file to be satisfied, as well as the following conditions:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("mark",null,"TBD"))),(0,o.kt)("h2",{id:"processing-errors-and-warnings"},"Processing, Errors and Warnings"),(0,o.kt)("p",null,"The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," starts by reading its command-line and configuration file. If the command-line has a key that is also found in the configuration file, the command-line key-value pair takes precedence. The resulting set of key-value pairs is tested for proper syntax and validity. Every improper syntax and every invalidity found will be logged."),(0,o.kt)("p",null,"Then, the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," ",(0,o.kt)("mark",null,"TBD")),(0,o.kt)("p",null,"The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," logs every error- and/or warning condition that it comes across while processing its configuration file, commandline parameters, and input files, in a way that helps tool-operators and document ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," to identify and fix such conditions."),(0,o.kt)("h2",{id:"deploying-the-tool"},"Deploying the Tool"),(0,o.kt)("p",null,"The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," comes with documentation that enables developers to ascertain its correct functioning (e.g. by using a test set of files, test scripts that exercise its parameters, etc.), and also enables them to deploy the tool in a git repo and ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"author"),"/modify CI-pipes to use that deployment."),(0,o.kt)("h2",{id:"discussion-notes"},"Discussion Notes"),(0,o.kt)("p",null,"This section lists the topics that may need further discission"))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[4060],{3905:function(e,t,i){i.d(t,{Zo:function(){return h},kt:function(){return m}});var a=i(7294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,a)}return i}function r(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var c=a.createContext({}),l=function(e){var t=a.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):r(r({},t),e)),i},h=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var i=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=l(i),m=n,f=p["".concat(c,".").concat(m)]||p[m]||d[m]||o;return i?a.createElement(f,r(r({ref:t},h),{},{components:i})):a.createElement(f,r({ref:t},h))}));function m(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=i.length,r=new Array(o);r[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,r[1]=s;for(var l=2;l child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:i.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function p(e){var t=e.values,i=e.children;return(0,n.useMemo)((function(){var e=null!=t?t:d(i);return function(e){var t=(0,l.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,i])}function m(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function f(e){var t=e.queryString,i=void 0!==t&&t,a=e.groupId,o=(0,s.k6)(),r=function(e){var t=e.queryString,i=void 0!==t&&t,a=e.groupId;if("string"==typeof i)return i;if(!1===i)return null;if(!0===i&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=a?a:null}({queryString:i,groupId:a});return[(0,c._X)(r),(0,n.useCallback)((function(e){if(r){var t=new URLSearchParams(o.location.search);t.set(r,e),o.replace(Object.assign({},o.location,{search:t.toString()}))}}),[r,o])]}function u(e){var t,i,a,o,r=e.defaultValue,s=e.queryString,c=void 0!==s&&s,l=e.groupId,d=p(e),u=(0,n.useState)((function(){return function(e){var t,i=e.defaultValue,a=e.tabValues;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(i){if(!m({value:i,tabValues:a}))throw new Error('Docusaurus error: The has a defaultValue "'+i+'" but none of its children has the corresponding value. Available values are: '+a.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return i}var n=null!=(t=a.find((function(e){return e.default})))?t:a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:r,tabValues:d})})),g=u[0],y=u[1],k=f({queryString:c,groupId:l}),v=k[0],b=k[1],C=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:l}.groupId),i=(0,h.Nk)(t),a=i[0],o=i[1],[a,(0,n.useCallback)((function(e){t&&o.set(e)}),[t,o])]),T=C[0],w=C[1],N=function(){var e=null!=v?v:T;return m({value:e,tabValues:d})?e:null}();return(0,n.useLayoutEffect)((function(){N&&y(N)}),[N]),{selectedValue:g,selectValue:(0,n.useCallback)((function(e){if(!m({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);y(e),b(e),w(e)}),[b,w,d]),tabValues:d}}var g=i(2389),y="tabList__CuJ",k="tabItem_LNqP";function v(e){var t=e.className,i=e.block,s=e.selectedValue,c=e.selectValue,l=e.tabValues,h=[],d=(0,r.o5)().blockElementScrollPositionUntilNextRender,p=function(e){var t=e.currentTarget,i=h.indexOf(t),a=l[i].value;a!==s&&(d(t),c(a))},m=function(e){var t,i=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":var a,n=h.indexOf(e.currentTarget)+1;i=null!=(a=h[n])?a:h[0];break;case"ArrowLeft":var o,r=h.indexOf(e.currentTarget)-1;i=null!=(o=h[r])?o:h[h.length-1]}null==(t=i)||t.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":i},t)},l.map((function(e){var t=e.value,i=e.label,r=e.attributes;return n.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:function(e){return h.push(e)},onKeyDown:m,onClick:p},r,{className:(0,o.Z)("tabs__item",k,null==r?void 0:r.className,{"tabs__item--active":s===t})}),null!=i?i:t)})))}function b(e){var t=e.lazy,i=e.children,a=e.selectedValue,o=(Array.isArray(i)?i:[i]).filter(Boolean);if(t){var r=o.find((function(e){return e.props.value===a}));return r?(0,n.cloneElement)(r,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},o.map((function(e,t){return(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a})})))}function C(e){var t=u(e);return n.createElement("div",{className:(0,o.Z)("tabs-container",y)},n.createElement(v,(0,a.Z)({},e,t)),n.createElement(b,(0,a.Z)({},e,t)))}function T(e){var t=(0,g.Z)();return n.createElement(C,(0,a.Z)({key:String(t)},e))}},6592:function(e,t,i){i.r(t),i.d(t,{assets:function(){return p},contentTitle:function(){return h},default:function(){return g},frontMatter:function(){return l},mark:function(){return f},metadata:function(){return d},toc:function(){return m}});var a=i(7462),n=i(3366),o=(i(7294),i(3905)),r=(i(4996),i(4866)),s=i(5162),c=["components"],l={id:"ict",sidebar_label:"Integrity Checking",date:20220421},h=void 0,d={unversionedId:"spec-tools/ict",id:"spec-tools/ict",title:"ict",description:"text to mark",source:"@site/docs/spec-tools/11-ict.md",sourceDirName:"spec-tools",slug:"/spec-tools/ict",permalink:"/tev2-specifications/docs/spec-tools/ict",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-tools/11-ict.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695968786,formattedLastUpdatedAt:"Sep 29, 2023",sidebarPosition:11,frontMatter:{id:"ict",sidebar_label:"Integrity Checking",date:20220421},sidebar:"tev2SideBar",previous:{title:"TEv2 Terminology Toolbox",permalink:"/tev2-specifications/docs/tev2-toolbox"},next:{title:"MRG Importer",permalink:"/tev2-specifications/docs/spec-tools/mrg-importer"}},p={},m=[{value:"Calling the Tool",id:"calling-the-tool",level:2},{value:"Parameters (Command-line arguments)",id:"parameters-command-line-arguments",level:3},{value:"Integrity Checks",id:"integrity-checks",level:2},{value:"SAF integrity",id:"saf-integrity",level:3},{value:"MRG integrity",id:"mrg-integrity",level:3},{value:"Header fields for termType: relation",id:"header-fields-for-termtype-relation",level:3},{value:"Curated Text integrity",id:"curated-text-integrity",level:3},{value:"Concepts",id:"concepts",level:4},{value:"Patterns",id:"patterns",level:4},{value:"Processing, Errors and Warnings",id:"processing-errors-and-warnings",level:2},{value:"Deploying the Tool",id:"deploying-the-tool",level:2},{value:"Discussion Notes",id:"discussion-notes",level:2}],f=function(e){var t=e.children;return(0,o.kt)("span",{style:{color:"black",backgroundColor:"yellow",padding:"0.2rem",borderRadius:"2px"}},t)},u={toc:m,mark:f};function g(e){var t=e.components,i=(0,n.Z)(e,c);return(0,o.kt)("wrapper",(0,a.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{title:"Editor's note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"The text below will need a thorough revision due to various changes that have not yet been taken into account")),(0,o.kt)("h1",{id:"integrity-checker-tool-ict"},"Integrity Checker Tool (ICT)"),(0,o.kt)("p",null,"The ",(0,o.kt)("strong",{parentName:"p"},"Integrity Checker Tool (",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT"),")")," tests the integrity of (a selection of) the data in files that are ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curate",hovertext:"Curate: to select, organize, and present Terms, Definitions, and other, related content in a thoughtful and purposeful manner to establish shared understanding among a Community working together on a particular set of objectives."},"curated")," within a particular ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", i.e. the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),", and ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),". The integrity checking of other data, e.g. ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/formatted-text",hovertext:"Formatted Text: a text that has been processed and arranged to have a specific layout, style, and presentation, making it visually appealing and easy to read."},"formatted texts"),", such as ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRGs"),", is outside the scope of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT"),"."),(0,o.kt)("p",null,"In order for the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," to be used optimally, it will assume for specific kinds of files that the integrity of other files is guaranteed, as follows:"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:"left"},"When testing a ... ,"),(0,o.kt)("th",{parentName:"tr",align:"left"},"the integrity is assumed of"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," and ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"))))),(0,o.kt)("p",null,"The idea behind this is to enable ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," to only test changes they have made rather than testing the entire set of files."),(0,o.kt)("admonition",{title:"Editor's Note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"As the tool hasn't been made, and no practical experience has been gained, many of these optimizations may not work in the first versions.")),(0,o.kt)("admonition",{title:"Editor's Note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"There's a lot of duplication in syntax specs. For example, the ",(0,o.kt)("a",{parentName:"p",href:"docs/spec-files/saf"},"SAF spec")," and ",(0,o.kt)("a",{parentName:"p",href:"/docs/spec-files/mrg"},"MRG spec")," define the regex for various kinds of tags all over the place. It would be nice to have a way by which syntax can be specified in one location that is 'naturally predictable' so that both readers and maintainers of the documentation can easily find it. One way might be to include the syntax in a 'popover', i.e. that we define stuff with particular syntax as a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/concept",hovertext:"Concept: a Semantic Unit that captures the ideas/thoughts behind a classification of Entities (what makes Entities in that class 'the same')."},"concept")," and have the syntax be included in its ",(0,o.kt)("inlineCode",{parentName:"p"},"hoverText"),".")),(0,o.kt)("h2",{id:"calling-the-tool"},"Calling the Tool"),(0,o.kt)("p",null,"The behavior of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," can be configured per call e.g. by a configuration file and/or command-line parameters. Examples include specifications for:"),(0,o.kt)("p",null,"The command-line syntax is as follows:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"ict [ ] [ ]\n")),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:"left"},"Where:"),(0,o.kt)("th",{parentName:"tr",align:"left"}))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"left"},"(optional) specifies the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," whose integrity is to be tested. If ",(0,o.kt)("inlineCode",{parentName:"td"},"")," is omitted and a configuration file is used, its value is read from that file. If cases where ",(0,o.kt)("inlineCode",{parentName:"td"},"")," isn't specified, the current directory is assumed to be the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),".",(0,o.kt)("br",null),'In this document, we use the term "',(0,o.kt)("strong",{parentName:"td"},"this scopedir"),'" to refer to the value of ',(0,o.kt)("inlineCode",{parentName:"td"},""),", and ",(0,o.kt)("strong",{parentName:"td"},"this scope"),'" to refer to the associated ',(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"left"},"The following commands are valid:",(0,o.kt)("br",null),(0,o.kt)("ul",null,(0,o.kt)("li",null,(0,o.kt)("inlineCode",{parentName:"td"},"-saf"),": check the integrity of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". It does not take any further parameters."),(0,o.kt)("li",null,(0,o.kt)("inlineCode",{parentName:"td"},"-mrg"),": check the integrity of (one of) the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG(s)"),". Additional parameters can be used, e.g. to specify a particular version of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," to be checked."),(0,o.kt)("li",null,(0,o.kt)("inlineCode",{parentName:"td"},"-txt"),": check the integrity of ",(0,o.kt)("em",{parentName:"td"},"this scope's")," ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated files"),". Additional parameters can be used, e.g. to select a particular subset of these files."),(0,o.kt)("li",null,(0,o.kt)("inlineCode",{parentName:"td"},"-all"),": check all ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curate",hovertext:"Curate: to select, organize, and present Terms, Definitions, and other, related content in a thoughtful and purposeful manner to establish shared understanding among a Community working together on a particular set of objectives."},"curated")," files within ",(0,o.kt)("em",{parentName:"td"},"this scope"),". Additional parameters may be used, e.g. to skip the checking of specific files.")))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"left"},"a list of parameters that provide further specifications for what the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," should be checking.")))),(0,o.kt)("h3",{id:"parameters-command-line-arguments"},"Parameters (Command-line arguments)"),(0,o.kt)("admonition",{title:"Editor's Note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"The current set of parameters is just an initial suggestion. We'll need to see what will actually be needed in practice.")),(0,o.kt)("details",null,(0,o.kt)("summary",null,"Legend"),(0,o.kt)("p",null,"The columns in the following table are defined as follows:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"strong"},"Key"))," is the text to be used as a key."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"strong"},"Value"))," represents the kind of value to be used."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,o.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,o.kt)("inlineCode",{parentName:"li"},"n"),") the field is required to be present when the tool is being called. If (always) required, it MUST either be present in the configuration file, or as a command-line parameter."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"strong"},"Cmd"))," specifies a ",(0,o.kt)("inlineCode",{parentName:"li"},"")," value: if the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," is called with this ",(0,o.kt)("inlineCode",{parentName:"li"},""),", then this parameter will be used by the tool as described. A ",(0,o.kt)("inlineCode",{parentName:"li"},"*")," in this field indicates that this parameter can be used with every command."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the ",(0,o.kt)("inlineCode",{parentName:"li"},"Value")," field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:"left"},"Key"),(0,o.kt)("th",{parentName:"tr",align:"left"},"Value"),(0,o.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,o.kt)("th",{parentName:"tr",align:"center"},"Cmds"),(0,o.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"config")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"center"},"n"),(0,o.kt)("td",{parentName:"tr",align:"center"},"*"),(0,o.kt)("td",{parentName:"tr",align:"left"},"Path (including the filename) of the tool's (YAML) configuration file. This file contains the default key-value pairs to be used. Allowed keys (and the associated values) are documented in this table. Command-line arguments override key-value pairs specified in the configuration file. This parameter SHOULD NOT appear in the configuration file itself.")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,o.kt)("td",{parentName:"tr",align:"center"},"*"),(0,o.kt)("td",{parentName:"tr",align:"left"},"Path to the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," within which the tool is to operate, i.e.: ",(0,o.kt)("em",{parentName:"td"},"this scopedir"),".")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"syntax")),(0,o.kt)("td",{parentName:"tr",align:"left"}),(0,o.kt)("td",{parentName:"tr",align:"center"},"n"),(0,o.kt)("td",{parentName:"tr",align:"center"},"*"),(0,o.kt)("td",{parentName:"tr",align:"left"},"This argument has no value. If present, the syntax of all (YAML) fields in the file is checked against their specifications (see e.g. ",(0,o.kt)("a",{parentName:"td",href:"docs/spec-files/saf"},"SAF specs"),", ",(0,o.kt)("a",{parentName:"td",href:"/docs/spec-tools/terminology-construction"},"terminology construction"),", ",(0,o.kt)("a",{parentName:"td",href:"/docs/spec-files/mrg"},"MRG specs"),", ",(0,o.kt)("a",{parentName:"td",href:"/docs/spec-files/ctext"},"Curated Texts"),", ",(0,o.kt)("a",{parentName:"td",href:"/docs/spec-syntax/term-ref-syntax"},"TermRefs"),").")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"vsntag")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"center"}),(0,o.kt)("td",{parentName:"tr",align:"center"},(0,o.kt)("inlineCode",{parentName:"td"},"-mrg")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that is used to select the version of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," to be checked. The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that is selected will either have ",(0,o.kt)("inlineCode",{parentName:"td"},"")," as the contents of the field ",(0,o.kt)("inlineCode",{parentName:"td"},"terminology.vsntag"),", or as an element in the list of ",(0,o.kt)("inlineCode",{parentName:"td"},"terminology.alvsntags"),".")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"term")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"center"},"n"),(0,o.kt)("td",{parentName:"tr",align:"center"},"-txt"),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," a particular ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file"),". The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file"),", whose (front-matter) field ",(0,o.kt)("inlineCode",{parentName:"td"},"term")," matches this parameter, will be integrity-checked.")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"termtypes")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"center"},"n"),(0,o.kt)("td",{parentName:"tr",align:"center"},"-txt"),(0,o.kt)("td",{parentName:"tr",align:"left"},"List of texts that serve to identify a specific kind of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),", e.g. ",(0,o.kt)("inlineCode",{parentName:"td"},"concept"),", or ",(0,o.kt)("inlineCode",{parentName:"td"},"pattern"),". Every ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file"),", whose (front-matter) field ",(0,o.kt)("inlineCode",{parentName:"td"},"termtype")," appears as an element in the ",(0,o.kt)("inlineCode",{parentName:"td"},"")," list, will be integrity-checked.")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"grouptags")),(0,o.kt)("td",{parentName:"tr",align:"left"},(0,o.kt)("inlineCode",{parentName:"td"},"")),(0,o.kt)("td",{parentName:"tr",align:"center"},"n"),(0,o.kt)("td",{parentName:"tr",align:"center"},"-txt"),(0,o.kt)("td",{parentName:"tr",align:"left"},"List of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags"),". Every ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file"),", whose (front-matter) field ",(0,o.kt)("inlineCode",{parentName:"td"},"grouptags")," has an element that also appears as an element in the ",(0,o.kt)("inlineCode",{parentName:"td"},"")," list, will be integrity-checked.")))),(0,o.kt)("h2",{id:"integrity-checks"},"Integrity Checks"),(0,o.kt)("p",null,"The checks that are done on files depend on the kind of file that is being checked. This section lists the tests for the various kinds of files. Every file is assumed to be part of ",(0,o.kt)("em",{parentName:"p"},"this scope"),", and reside in the associated ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," (i.e.: ",(0,o.kt)("em",{parentName:"p"},"this scopedir"),")."),(0,o.kt)("h3",{id:"saf-integrity"},"SAF integrity"),(0,o.kt)("p",null,"The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," must be a file that contains valid YAML syntax."),(0,o.kt)("p",null,"The integrity of a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," requires the following conditions to be satisfied for the key's in the ",(0,o.kt)("inlineCode",{parentName:"p"},"scope")," section:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopedir")," must point to the directory in which the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," is stored for public use (i.e. in this scopedir)."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"curatedir"),', when appended to the value of "',(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),'/", must point to the directory that stores the ',(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated files"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"glossarydir")," must point to an existing directory."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"mrgfile"),' must be an existing file in directory "',(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),'/" (note that an empty ',(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," is still a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that can have an ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),")."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"hrgfile"),' must be an existing file in directory "',(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),'/" (note that an empty ',(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," is still a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that can have a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),")."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"license")," must be an existing file in the directory pointed to by ",(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),".")),(0,o.kt)("p",null,"The integrity of a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," requires the following conditions to be satisfied for every element in the ",(0,o.kt)("inlineCode",{parentName:"p"},"scopes")," section:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopetags")," must be a nonempty list of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopedir")," must be a valid URL, that points to an existing directory resource.")),(0,o.kt)("p",null,"The integrity of a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," requires the following conditions to be satisfied for every element in the ",(0,o.kt)("inlineCode",{parentName:"p"},"versions")," section:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"vsntag")," SHOULD not appear as an element in the ",(0,o.kt)("inlineCode",{parentName:"li"},"altvsntags")," field of this ",(0,o.kt)("inlineCode",{parentName:"li"},"version")," element, and it MUST NOT appear in the ",(0,o.kt)("inlineCode",{parentName:"li"},"vsntag")," or ",(0,o.kt)("inlineCode",{parentName:"li"},"altvsntags")," fields of any other element in the ",(0,o.kt)("inlineCode",{parentName:"li"},"versions")," section."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"altvsntags")," must be a (possibly empty) list of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontags"),", each of which SHOULD not appear in the ",(0,o.kt)("inlineCode",{parentName:"li"},"vsntag")," field of the element, and MUST NOT appear in the ",(0,o.kt)("inlineCode",{parentName:"li"},"vsntag")," or ",(0,o.kt)("inlineCode",{parentName:"li"},"altvsntags")," fields of any other element in the ",(0,o.kt)("inlineCode",{parentName:"li"},"versions")," section."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"termselcrit")," must be a non-emptly list of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"status")," SHOULD be a non-empty field.")),(0,o.kt)("h3",{id:"mrg-integrity"},"MRG integrity"),(0,o.kt)("p",null,"The integrity checking for ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," files assumes that the integrity conditions of a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," file are satisfied, and that the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," file itself contains valid YAML syntax."),(0,o.kt)("p",null,"The integrity checking comprises every (group of) test(s) as specified in this sub-section."),(0,o.kt)("p",null,"The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," MUST have sections named ",(0,o.kt)("inlineCode",{parentName:"p"},"terminology"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"scopes"),", and ",(0,o.kt)("inlineCode",{parentName:"p"},"entries"),"."),(0,o.kt)("p",null,"Integrity checks for the ",(0,o.kt)("inlineCode",{parentName:"p"},"terminology")," section include:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopedir")," must point to the directory in which the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," is stored for public use (i.e. in this scopedir)."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"vsntag")," must be a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that SHOULD not appear as an element in the ",(0,o.kt)("inlineCode",{parentName:"li"},"altvsntags")," field."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"altvsntags")," must be a (possibly empty) list of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontags"),", none of which appear in the ",(0,o.kt)("inlineCode",{parentName:"li"},"vsntag")," field."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"license")," must be an existing file in the directory pointed to by ",(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),".")),(0,o.kt)("p",null,"Integrity checks for the ",(0,o.kt)("inlineCode",{parentName:"p"},"scopes")," section include:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopetags")," must be a nonempty list of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopedir")," must be a valid URL, that points to an existing directory resource other than the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," of the current ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". This directory MUST contain a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". ",(0,o.kt)("mark",null,"Do we need an option to test the integrity of such ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAFs"),"?"))),(0,o.kt)("p",null,"Integrity checks for the ",(0,o.kt)("inlineCode",{parentName:"p"},"entries")," section consist of one part that is generic for all entries, and another part that depends on the value of the ",(0,o.kt)("inlineCode",{parentName:"p"},"termtype")," field (so that checking of e.g. entries of type ",(0,o.kt)("inlineCode",{parentName:"p"},"concept")," and of type ",(0,o.kt)("inlineCode",{parentName:"p"},"pattern")," can have different checks.) The checks that every entry must pass include the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"scopetag")," MUST also appear as the value of ",(0,o.kt)("inlineCode",{parentName:"li"},"terminology.scopetag"),", or as an element in one of the ",(0,o.kt)("inlineCode",{parentName:"li"},"scopes.scopetags")," elements."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"termtype")," SHOULD be ",(0,o.kt)("mark",null,"tbd.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"grouptags")," MUST be a list of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptag")," elements."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"license")," MUST be an existing file in the directory pointed to by ",(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"status")," SHOULD match an element in the list ",(0,o.kt)("inlineCode",{parentName:"li"},"scope.statuses")," of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"locator"),", if specified, MUST have a readable resource (file) at ",(0,o.kt)("inlineCode",{parentName:"li"},"scopedir"),"/",(0,o.kt)("inlineCode",{parentName:"li"},"curatedir"),"/",(0,o.kt)("inlineCode",{parentName:"li"},"locator"),", where ",(0,o.kt)("inlineCode",{parentName:"li"},"scopedir")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"curatedir")," are specified in the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"navurl"),", if specified, MUST return an HTML-resource when specified as the URL in a HTTP(S) request method ",(0,o.kt)("inlineCode",{parentName:"li"},"GET")," or ",(0,o.kt)("inlineCode",{parentName:"li"},"HEAD"),".")),(0,o.kt)("p",null,"For specific kinds of ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries"),", the following additional constraints MUST be satisfied:"),(0,o.kt)(r.Z,{defaultValue:"concept",values:[{label:"Terms",value:"term"},{label:"Concepts",value:"concept"},{label:"Relations",value:"relation"},{label:"Mental Models",value:"pattern"}],mdxType:"Tabs"},(0,o.kt)(s.Z,{value:"concept",mdxType:"TabItem"},(0,o.kt)("br",null),(0,o.kt)("p",null,"The following constraints MUST hold for ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," of type ",(0,o.kt)("inlineCode",{parentName:"p"},"concept"),":"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"if a ",(0,o.kt)("inlineCode",{parentName:"li"},"glossaryText")," contains a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),", then the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," SHOULD be resolvable ",(0,o.kt)("mark",null,"(reference to the term-ref-integrity checks)"),"."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"hoverText")," MUST NOT contain any ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),", nor any other ",(0,o.kt)("a",{parentName:"li",href:"https://www.markdownguide.org/basic-syntax/#links"},"markdown links"),"."))),(0,o.kt)(s.Z,{value:"term",mdxType:"TabItem"},(0,o.kt)("br",null),(0,o.kt)("admonition",{title:"Editor's note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"As header fields for ",(0,o.kt)("inlineCode",{parentName:"p"},"term")," termtypes need to be discussed, we do not yet specify any constraints"))),(0,o.kt)(s.Z,{value:"relation",mdxType:"TabItem"},(0,o.kt)("br",null),(0,o.kt)("h3",{id:"header-fields-for-termtype-relation"},"Header fields for ",(0,o.kt)("inlineCode",{parentName:"h3"},"termType: relation")),(0,o.kt)("admonition",{title:"Editor's note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"As ",(0,o.kt)("inlineCode",{parentName:"p"},"relation"),"s need to be discussed, we do not yet specify any constraints."))),(0,o.kt)(s.Z,{value:"pattern",mdxType:"TabItem"},(0,o.kt)("br",null),(0,o.kt)("admonition",{title:"Editor's note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"As ",(0,o.kt)("inlineCode",{parentName:"p"},"pattern"),"s need to be discussed, we do not yet specify any constraints.")))),(0,o.kt)("admonition",{title:"Editor's note",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Checks need to be added to ensure congruence between terms and any synonyms that are defined for them. For example, they should have the same value in various fields, e.g., ",(0,o.kt)("inlineCode",{parentName:"p"},"termType"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"isa")," (but not ",(0,o.kt)("inlineCode",{parentName:"p"},"glossaryText")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"synonymOf"),")")),(0,o.kt)("h3",{id:"curated-text-integrity"},"Curated Text integrity"),(0,o.kt)("p",null,"The integrity of any ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," file requires the integrity conditions of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," file to be satisfied, as well as the following conditions:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("mark",null,"TBD"))),(0,o.kt)("h4",{id:"concepts"},"Concepts"),(0,o.kt)("p",null,"The integrity of any ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," file that has ",(0,o.kt)("inlineCode",{parentName:"p"},"termType: concept")," requires the integrity conditions of a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," file to be satisfied, as well as the following conditions:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("mark",null,"TBD"))),(0,o.kt)("h4",{id:"patterns"},"Patterns"),(0,o.kt)("p",null,"The integrity of any ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," file that has ",(0,o.kt)("inlineCode",{parentName:"p"},"termType: concept")," requires the integrity conditions of a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," file to be satisfied, as well as the following conditions:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("mark",null,"TBD"))),(0,o.kt)("h2",{id:"processing-errors-and-warnings"},"Processing, Errors and Warnings"),(0,o.kt)("p",null,"The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," starts by reading its command-line and configuration file. If the command-line has a key that is also found in the configuration file, the command-line key-value pair takes precedence. The resulting set of key-value pairs is tested for proper syntax and validity. Every improper syntax and every invalidity found will be logged."),(0,o.kt)("p",null,"Then, the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," ",(0,o.kt)("mark",null,"TBD")),(0,o.kt)("p",null,"The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," logs every error- and/or warning condition that it comes across while processing its configuration file, commandline parameters, and input files, in a way that helps tool-operators and document ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," to identify and fix such conditions."),(0,o.kt)("h2",{id:"deploying-the-tool"},"Deploying the Tool"),(0,o.kt)("p",null,"The ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/ict",hovertext:"Integrity Checker Tool (ICT): a software tool designed to check the integrity and conformity of various files used in the curation and management of Glossaries, Dictionaries, Curated Texts, and other data within a terminology project. The ICT verifies that the files adhere to the TEv2 File Specifications, ensuring the consistency and accuracy of the terminology data."},"ICT")," comes with documentation that enables developers to ascertain its correct functioning (e.g. by using a test set of files, test scripts that exercise its parameters, etc.), and also enables them to deploy the tool in a git repo and ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"author"),"/modify CI-pipes to use that deployment."),(0,o.kt)("h2",{id:"discussion-notes"},"Discussion Notes"),(0,o.kt)("p",null,"This section lists the topics that may need further discission"))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/41daa8b4.d32f3474.js b/assets/js/41daa8b4.4a092cf4.js similarity index 97% rename from assets/js/41daa8b4.d32f3474.js rename to assets/js/41daa8b4.4a092cf4.js index 762dab6d26..173c288bc7 100644 --- a/assets/js/41daa8b4.d32f3474.js +++ b/assets/js/41daa8b4.4a092cf4.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[1576],{3905:function(e,t,r){r.d(t,{Zo:function(){return d},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=l(r),m=o,f=u["".concat(c,".").concat(m)]||u[m]||p[m]||a;return r?n.createElement(f,i(i({ref:t},d),{},{components:r})):n.createElement(f,i({ref:t},d))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var l=2;l=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=l(r),m=o,f=u["".concat(c,".").concat(m)]||u[m]||p[m]||a;return r?n.createElement(f,i(i({ref:t},d),{},{components:r})):n.createElement(f,i({ref:t},d))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var l=2;l=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=i.createContext({}),l=function(e){var t=i.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=l(e.components);return i.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),m=o,u=d["".concat(c,".").concat(m)]||d[m]||h[m]||a;return n?i.createElement(u,r(r({ref:t},p),{},{components:n})):i.createElement(u,r({ref:t},p))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,r=new Array(a);r[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,r[1]=s;for(var l=2;l=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=i.createContext({}),l=function(e){var t=i.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=l(e.components);return i.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),m=o,u=d["".concat(c,".").concat(m)]||d[m]||h[m]||a;return n?i.createElement(u,r(r({ref:t},p),{},{components:n})):i.createElement(u,r({ref:t},p))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,r=new Array(a);r[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,r[1]=s;for(var l=2;l=0||(n[o]=t[o]);return n}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(n[o]=t[o])}return n}var c=i.createContext({}),m=function(t){var e=i.useContext(c),o=e;return t&&(o="function"==typeof t?t(e):a(a({},e),t)),o},h=function(t){var e=m(t.components);return i.createElement(c.Provider,{value:e},t.children)},u={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},d=i.forwardRef((function(t,e){var o=t.components,n=t.mdxType,r=t.originalType,c=t.parentName,h=s(t,["components","mdxType","originalType","parentName"]),d=m(o),l=n,p=d["".concat(c,".").concat(l)]||d[l]||u[l]||r;return o?i.createElement(p,a(a({ref:e},h),{},{components:o})):i.createElement(p,a({ref:e},h))}));function l(t,e){var o=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var r=o.length,a=new Array(r);a[0]=d;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:n,a[1]=s;for(var m=2;m=0||(n[o]=t[o]);return n}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(n[o]=t[o])}return n}var c=i.createContext({}),m=function(t){var e=i.useContext(c),o=e;return t&&(o="function"==typeof t?t(e):a(a({},e),t)),o},h=function(t){var e=m(t.components);return i.createElement(c.Provider,{value:e},t.children)},u={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},d=i.forwardRef((function(t,e){var o=t.components,n=t.mdxType,r=t.originalType,c=t.parentName,h=s(t,["components","mdxType","originalType","parentName"]),d=m(o),l=n,p=d["".concat(c,".").concat(l)]||d[l]||u[l]||r;return o?i.createElement(p,a(a({ref:e},h),{},{components:o})):i.createElement(p,a({ref:e},h))}));function l(t,e){var o=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var r=o.length,a=new Array(r);a[0]=d;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:n,a[1]=s;for(var m=2;m=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var m=r.createContext({}),c=function(e){var t=r.useContext(m),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},h=function(e){var t=c(e.components);return r.createElement(m.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,m=e.parentName,h=a(e,["components","mdxType","originalType","parentName"]),d=c(n),f=o,y=d["".concat(m,".").concat(f)]||d[f]||p[f]||i;return n?r.createElement(y,s(s({ref:t},h),{},{components:n})):r.createElement(y,s({ref:t},h))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,s=new Array(i);s[0]=d;var a={};for(var m in t)hasOwnProperty.call(t,m)&&(a[m]=t[m]);a.originalType=e,a.mdxType="string"==typeof e?e:o,s[1]=a;for(var c=2;c=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var m=r.createContext({}),c=function(e){var t=r.useContext(m),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},h=function(e){var t=c(e.components);return r.createElement(m.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,m=e.parentName,h=a(e,["components","mdxType","originalType","parentName"]),d=c(n),f=o,y=d["".concat(m,".").concat(f)]||d[f]||p[f]||i;return n?r.createElement(y,s(s({ref:t},h),{},{components:n})):r.createElement(y,s({ref:t},h))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,s=new Array(i);s[0]=d;var a={};for(var m in t)hasOwnProperty.call(t,m)&&(a[m]=t[m]);a.originalType=e,a.mdxType="string"==typeof e?e:o,s[1]=a;for(var c=2;c=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=o.createContext({}),l=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),m=l(r),f=n,u=m["".concat(c,".").concat(f)]||m[f]||p[f]||a;return r?o.createElement(u,i(i({ref:t},d),{},{components:r})):o.createElement(u,i({ref:t},d))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var l=2;l=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=o.createContext({}),l=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),m=l(r),f=n,u=m["".concat(c,".").concat(f)]||m[f]||p[f]||a;return r?o.createElement(u,i(i({ref:t},d),{},{components:r})):o.createElement(u,i({ref:t},d))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var l=2;l=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}var c=n.createContext({}),h=function(e){var t=n.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},p=function(e){var t=h(e.components);return n.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var i=e.components,o=e.mdxType,s=e.originalType,c=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),d=h(i),l=o,f=d["".concat(c,".").concat(l)]||d[l]||m[l]||s;return i?n.createElement(f,a(a({ref:t},p),{},{components:i})):n.createElement(f,a({ref:t},p))}));function l(e,t){var i=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=i.length,a=new Array(s);a[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:o,a[1]=r;for(var h=2;h=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}var c=n.createContext({}),h=function(e){var t=n.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},p=function(e){var t=h(e.components);return n.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var i=e.components,o=e.mdxType,s=e.originalType,c=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),d=h(i),l=o,f=d["".concat(c,".").concat(l)]||d[l]||m[l]||s;return i?n.createElement(f,a(a({ref:t},p),{},{components:i})):n.createElement(f,a({ref:t},p))}));function l(e,t){var i=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=i.length,a=new Array(s);a[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:o,a[1]=r;for(var h=2;h=0||(n[o]=t[o]);return n}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(n[o]=t[o])}return n}var c=i.createContext({}),h=function(t){var e=i.useContext(c),o=e;return t&&(o="function"==typeof t?t(e):r(r({},e),t)),o},u=function(t){var e=h(t.components);return i.createElement(c.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},m=i.forwardRef((function(t,e){var o=t.components,n=t.mdxType,a=t.originalType,c=t.parentName,u=s(t,["components","mdxType","originalType","parentName"]),m=h(o),p=n,l=m["".concat(c,".").concat(p)]||m[p]||d[p]||a;return o?i.createElement(l,r(r({ref:e},u),{},{components:o})):i.createElement(l,r({ref:e},u))}));function p(t,e){var o=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var a=o.length,r=new Array(a);r[0]=m;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:n,r[1]=s;for(var h=2;h=0||(n[o]=t[o]);return n}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(n[o]=t[o])}return n}var c=i.createContext({}),h=function(t){var e=i.useContext(c),o=e;return t&&(o="function"==typeof t?t(e):r(r({},e),t)),o},u=function(t){var e=h(t.components);return i.createElement(c.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},m=i.forwardRef((function(t,e){var o=t.components,n=t.mdxType,a=t.originalType,c=t.parentName,u=s(t,["components","mdxType","originalType","parentName"]),m=h(o),p=n,l=m["".concat(c,".").concat(p)]||m[p]||d[p]||a;return o?i.createElement(l,r(r({ref:e},u),{},{components:o})):i.createElement(l,r({ref:e},u))}));function p(t,e){var o=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var a=o.length,r=new Array(a);r[0]=m;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:n,r[1]=s;for(var h=2;h=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},u=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,i=e.originalType,c=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),m=p(o),l=n,d=m["".concat(c,".").concat(l)]||m[l]||h[l]||i;return o?r.createElement(d,s(s({ref:t},u),{},{components:o})):r.createElement(d,s({ref:t},u))}));function l(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=o.length,s=new Array(i);s[0]=m;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:n,s[1]=a;for(var p=2;p=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},u=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,i=e.originalType,c=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),m=p(o),l=n,d=m["".concat(c,".").concat(l)]||m[l]||h[l]||i;return o?r.createElement(d,s(s({ref:t},u),{},{components:o})):r.createElement(d,s({ref:t},u))}));function l(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=o.length,s=new Array(i);s[0]=m;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:n,s[1]=a;for(var p=2;p=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var c=i.createContext({}),h=function(t){var e=i.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):s(s({},e),t)),n},m=function(t){var e=h(t.components);return i.createElement(c.Provider,{value:e},t.children)},p={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},l=i.forwardRef((function(t,e){var n=t.components,o=t.mdxType,a=t.originalType,c=t.parentName,m=r(t,["components","mdxType","originalType","parentName"]),l=h(n),d=o,u=l["".concat(c,".").concat(d)]||l[d]||p[d]||a;return n?i.createElement(u,s(s({ref:e},m),{},{components:n})):i.createElement(u,s({ref:e},m))}));function d(t,e){var n=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var a=n.length,s=new Array(a);s[0]=l;var r={};for(var c in e)hasOwnProperty.call(e,c)&&(r[c]=e[c]);r.originalType=t,r.mdxType="string"==typeof t?t:o,s[1]=r;for(var h=2;h=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var c=i.createContext({}),h=function(t){var e=i.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):s(s({},e),t)),n},m=function(t){var e=h(t.components);return i.createElement(c.Provider,{value:e},t.children)},p={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},l=i.forwardRef((function(t,e){var n=t.components,o=t.mdxType,a=t.originalType,c=t.parentName,m=r(t,["components","mdxType","originalType","parentName"]),l=h(n),d=o,u=l["".concat(c,".").concat(d)]||l[d]||p[d]||a;return n?i.createElement(u,s(s({ref:e},m),{},{components:n})):i.createElement(u,s({ref:e},m))}));function d(t,e){var n=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var a=n.length,s=new Array(a);s[0]=l;var r={};for(var c in e)hasOwnProperty.call(e,c)&&(r[c]=e[c]);r.originalType=t,r.mdxType="string"==typeof t?t:o,s[1]=r;for(var h=2;h=0||(r[o]=t[o]);return r}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(r[o]=t[o])}return r}var c=i.createContext({}),h=function(t){var e=i.useContext(c),o=e;return t&&(o="function"==typeof t?t(e):n(n({},e),t)),o},m=function(t){var e=h(t.components);return i.createElement(c.Provider,{value:e},t.children)},u={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},d=i.forwardRef((function(t,e){var o=t.components,r=t.mdxType,a=t.originalType,c=t.parentName,m=s(t,["components","mdxType","originalType","parentName"]),d=h(o),p=r,l=d["".concat(c,".").concat(p)]||d[p]||u[p]||a;return o?i.createElement(l,n(n({ref:e},m),{},{components:o})):i.createElement(l,n({ref:e},m))}));function p(t,e){var o=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var a=o.length,n=new Array(a);n[0]=d;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:r,n[1]=s;for(var h=2;h=0||(r[o]=t[o]);return r}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(r[o]=t[o])}return r}var c=i.createContext({}),h=function(t){var e=i.useContext(c),o=e;return t&&(o="function"==typeof t?t(e):n(n({},e),t)),o},m=function(t){var e=h(t.components);return i.createElement(c.Provider,{value:e},t.children)},u={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},d=i.forwardRef((function(t,e){var o=t.components,r=t.mdxType,a=t.originalType,c=t.parentName,m=s(t,["components","mdxType","originalType","parentName"]),d=h(o),p=r,l=d["".concat(c,".").concat(p)]||d[p]||u[p]||a;return o?i.createElement(l,n(n({ref:e},m),{},{components:o})):i.createElement(l,n({ref:e},m))}));function p(t,e){var o=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var a=o.length,n=new Array(a);n[0]=d;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:r,n[1]=s;for(var h=2;h=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var l=i.createContext({}),c=function(e){var t=i.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},h=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var a=e.components,o=e.mdxType,n=e.originalType,l=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),m=c(a),p=o,u=m["".concat(l,".").concat(p)]||m[p]||d[p]||n;return a?i.createElement(u,s(s({ref:t},h),{},{components:a})):i.createElement(u,s({ref:t},h))}));function p(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=a.length,s=new Array(n);s[0]=m;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r.mdxType="string"==typeof e?e:o,s[1]=r;for(var c=2;c child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:a.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function m(e){var t=e.values,a=e.children;return(0,o.useMemo)((function(){var e=null!=t?t:d(a);return function(e){var t=(0,c.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,a])}function p(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function u(e){var t=e.queryString,a=void 0!==t&&t,i=e.groupId,n=(0,r.k6)(),s=function(e){var t=e.queryString,a=void 0!==t&&t,i=e.groupId;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!i)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=i?i:null}({queryString:a,groupId:i});return[(0,l._X)(s),(0,o.useCallback)((function(e){if(s){var t=new URLSearchParams(n.location.search);t.set(s,e),n.replace(Object.assign({},n.location,{search:t.toString()}))}}),[s,n])]}function f(e){var t,a,i,n,s=e.defaultValue,r=e.queryString,l=void 0!==r&&r,c=e.groupId,d=m(e),f=(0,o.useState)((function(){return function(e){var t,a=e.defaultValue,i=e.tabValues;if(0===i.length)throw new Error("Docusaurus error: the component requires at least one children component");if(a){if(!p({value:a,tabValues:i}))throw new Error('Docusaurus error: The has a defaultValue "'+a+'" but none of its children has the corresponding value. Available values are: '+i.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return a}var o=null!=(t=i.find((function(e){return e.default})))?t:i[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:s,tabValues:d})})),g=f[0],y=f[1],b=u({queryString:l,groupId:c}),v=b[0],k=b[1],G=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:c}.groupId),a=(0,h.Nk)(t),i=a[0],n=a[1],[i,(0,o.useCallback)((function(e){t&&n.set(e)}),[t,n])]),T=G[0],w=G[1],R=function(){var e=null!=v?v:T;return p({value:e,tabValues:d})?e:null}();return(0,o.useLayoutEffect)((function(){R&&y(R)}),[R]),{selectedValue:g,selectValue:(0,o.useCallback)((function(e){if(!p({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);y(e),k(e),w(e)}),[k,w,d]),tabValues:d}}var g=a(2389),y="tabList__CuJ",b="tabItem_LNqP";function v(e){var t=e.className,a=e.block,r=e.selectedValue,l=e.selectValue,c=e.tabValues,h=[],d=(0,s.o5)().blockElementScrollPositionUntilNextRender,m=function(e){var t=e.currentTarget,a=h.indexOf(t),i=c[a].value;i!==r&&(d(t),l(i))},p=function(e){var t,a=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":var i,o=h.indexOf(e.currentTarget)+1;a=null!=(i=h[o])?i:h[0];break;case"ArrowLeft":var n,s=h.indexOf(e.currentTarget)-1;a=null!=(n=h[s])?n:h[h.length-1]}null==(t=a)||t.focus()};return o.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":a},t)},c.map((function(e){var t=e.value,a=e.label,s=e.attributes;return o.createElement("li",(0,i.Z)({role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,key:t,ref:function(e){return h.push(e)},onKeyDown:p,onClick:m},s,{className:(0,n.Z)("tabs__item",b,null==s?void 0:s.className,{"tabs__item--active":r===t})}),null!=a?a:t)})))}function k(e){var t=e.lazy,a=e.children,i=e.selectedValue,n=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){var s=n.find((function(e){return e.props.value===i}));return s?(0,o.cloneElement)(s,{className:"margin-top--md"}):null}return o.createElement("div",{className:"margin-top--md"},n.map((function(e,t){return(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==i})})))}function G(e){var t=f(e);return o.createElement("div",{className:(0,n.Z)("tabs-container",y)},o.createElement(v,(0,i.Z)({},e,t)),o.createElement(k,(0,i.Z)({},e,t)))}function T(e){var t=(0,g.Z)();return o.createElement(G,(0,i.Z)({key:String(t)},e))}},5557:function(e,t,a){a.r(t),a.d(t,{assets:function(){return h},contentTitle:function(){return l},default:function(){return u},frontMatter:function(){return r},mark:function(){return m},metadata:function(){return c},toc:function(){return d}});var i=a(7462),o=a(3366),n=(a(7294),a(3905)),s=(a(4996),a(4866),a(5162),["components"]),r={id:"hrgt",sidebar_label:"HR Glossary Generation",date:20230103},l="Human Readable Glossary Generation Tool",c={unversionedId:"spec-tools/hrgt",id:"spec-tools/hrgt",title:"Human Readable Glossary Generation Tool",description:"text to mark",source:"@site/docs/spec-tools/22-hrgt.md",sourceDirName:"spec-tools",slug:"/spec-tools/hrgt",permalink:"/tev2-specifications/docs/spec-tools/hrgt",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-tools/22-hrgt.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695712473,formattedLastUpdatedAt:"Sep 26, 2023",sidebarPosition:22,frontMatter:{id:"hrgt",sidebar_label:"HR Glossary Generation",date:20230103},sidebar:"tev2SideBar",previous:{title:"HR Glossary Generation (previous version)",permalink:"/tev2-specifications/docs/spec-tools/hrgt-old"},next:{title:"MR Dictionary Generation",permalink:"/tev2-specifications/docs/spec-tools/mrdt"}},h={},d=[{value:"Calling the Tool",id:"calling-the-tool",level:2},{value:"Processing, Errors and Warnings",id:"processing-errors-and-warnings",level:2},{value:"Deploying the Tool",id:"deploying-the-tool",level:2},{value:"Discussion Notes",id:"discussion-notes",level:2}],m=function(e){var t=e.children;return(0,n.kt)("span",{style:{color:"black",backgroundColor:"yellow",padding:"0.2rem",borderRadius:"2px"}},t)},p={toc:d,mark:m};function u(e){var t=e.components,a=(0,o.Z)(e,s);return(0,n.kt)("wrapper",(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"human-readable-glossary-generation-tool"},"Human Readable Glossary Generation Tool"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Human Readable Glossary generation Tool (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT"),")")," generates a Human Readable ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"Glossary")," (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),") that consists of (a selection of) the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that are part of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". "),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," takes one specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," as its input, and converts (a selection of) its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," into one of the supported output formats, e.g. HTML, or PDF. The file that contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is named ",(0,n.kt)("inlineCode",{parentName:"p"},"mrg...yaml"),", where the combination of ",(0,n.kt)("inlineCode",{parentName:"p"},"")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"")," identify a particular ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". See the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/mrg#mrg-file-naming"},"MRG file naming conventions")," for details."),(0,n.kt)("p",null,"The selection of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that are to be included in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),", as well as the specification of the output format, headers, footers, etc., can be configured as well as customized. Thus, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," provides a flexible means for creating all sorts of outputs that are either already human readable or can be processed further by third-party rendering tools, such as ",(0,n.kt)("a",{parentName:"p",href:"https://pages.github.com/"},"github pages")," or ",(0,n.kt)("a",{parentName:"p",href:"https://docusaurus.io/docs/docs-introduction"},"Docusaurus"),", etc. (see also: ",(0,n.kt)("a",{parentName:"p",href:"/docs/tev2-toolbox"},"Using the Tools"),")."),(0,n.kt)("p",null,"There is currently one implementation of the tool underway:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"the repo in which the tool is being developed is ","[",(0,n.kt)("mark",null,"tbd"),"]","."),(0,n.kt)("li",{parentName:"ul"},"the documentation is ","[",(0,n.kt)("mark",null,"tbd"),"]",".")),(0,n.kt)("h2",{id:"calling-the-tool"},"Calling the Tool"),(0,n.kt)("p",null,"The behavior of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," can be configured per call e.g. by a configuration file and/or command-line parameters. The command-line syntax is as follows:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"hrgt [ ] [ ]\n")),(0,n.kt)("p",null,"where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," (optional) is a list of key-value pairs"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},(0,n.kt)("inlineCode",{parentName:"a"},"globpattern"))," (optional) specifies a set of (input) files that are to be processed. If a configuration file is used, its contents may specify an additional set of input files to be processed.")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("p",null,"The columns in the following table are defined as follows:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Key"))," is the text to be used as a key."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Value"))," represents the kind of value to be used."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),") the field is required to be present when the tool is being called. If required, it MUST either be present in the configuration file, or as a command-line parameter."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the ",(0,n.kt)("inlineCode",{parentName:"li"},"Value")," field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Key"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"config")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path (including the filename) of the tool's (YAML) configuration file. This file contains the default key-value pairs to be used. Allowed keys (and the associated values) are documented in this table. Command-line arguments override key-value pairs specified in the configuration file. This parameter MUST NOT appear in the configuration file itself.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," from which the tool is called. It MUST contain the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," for that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which we will refer to as the 'current scope' for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT"),". If omitted, the current directory is assumed to tbe the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"input")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{parentName:"td",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},"Globpattern")," that specifies the set of (input) files (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),") that are to be processed. If omitted, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is generated for the default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," of the current scope (as specified in the ",(0,n.kt)("inlineCode",{parentName:"td"},"mrgfile")," field of the ",(0,n.kt)("inlineCode",{parentName:"td"},"scope")," section in its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"output")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"text that is used as the last part of the name of the file(s) that contain(s) the generated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG(s)"),". This text must specify an appropriate extension, such as HTML or PDF. The filename(s) will be of the form ",(0,n.kt)("inlineCode",{parentName:"td"},"hrg..."),", where ",(0,n.kt)("inlineCode",{parentName:"td"},"")," is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is generated, and ",(0,n.kt)("inlineCode",{parentName:"td"},"")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," in that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". From this, it follows that an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"-file exists named ",(0,n.kt)("inlineCode",{parentName:"td"},"mrg...yaml"),", which is used as the source for the entries in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"termselcrit")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"List of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria")," that are used to generate (this version of) the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". If omitted, all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from the source ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," will be selected. See ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-tools/terminology-construction"},"Terminology Construction")," for details.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"method")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("mark",null,"Text, the syntax and semantics of which remain to be specified (see also the Editor's note below).")," When this parameter is omitted, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is generated as an HTML file.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"license")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"File that contains the (default) licensing conditions. Full URL is ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"license"),". If not specified, its value defaults to the value of the ",(0,n.kt)("inlineCode",{parentName:"td"},"license")," field in the ",(0,n.kt)("inlineCode",{parentName:"td"},"scope")," section (of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of the current scope). The purpose of this field is to enable different ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRGs")," to have different licenses.")))),(0,n.kt)("admonition",{title:"Editor's Note:",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"We may want to consider:"),(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},"changing the ",(0,n.kt)("inlineCode",{parentName:"li"},"input")," parameter from a globpattern to a list of versiontags for which the HRG is to be generated."),(0,n.kt)("li",{parentName:"ul"},"revising the spec of the ",(0,n.kt)("inlineCode",{parentName:"li"},"output")," parameter, depending on the kind of control that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," need."),(0,n.kt)("li",{parentName:"ul"},"add a ",(0,n.kt)("inlineCode",{parentName:"li"},"version")," parameter, the value of which is a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag"),", and the meaning of which is that (a) the input file is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," associated with that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag"),", and (b) the output file will be registered in the ",(0,n.kt)("inlineCode",{parentName:"li"},"hrgfile")," entry of the appropriate element of the ",(0,n.kt)("inlineCode",{parentName:"li"},"versions")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", and also, if appropriate, in the ",(0,n.kt)("inlineCode",{parentName:"li"},"scope")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". Doing this requires additional texts in subsequent sections."))),(0,n.kt)("admonition",{title:"Editor's Note:",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"Various ",(0,n.kt)("inlineCode",{parentName:"p"},"method"),"s are envisaged, yet remain to be properly specified. A method may specify:"),(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},"what a single entry contains"),(0,n.kt)("li",{parentName:"ul"},"that the contents of particular files are to be used as header or footer;"),(0,n.kt)("li",{parentName:"ul"},"that a particular kind of navigation bar is to be inserted at specific places (e.g. between two subsequent entries that start with a different character);"),(0,n.kt)("li",{parentName:"ul"},"..."))),(0,n.kt)("h2",{id:"processing-errors-and-warnings"},"Processing, Errors and Warnings"),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," starts by reading its command-line and configuration file. If the command-line has a key that is also found in the configuration file, the command-line key-value pair takes precedence. The resulting set of key-value pairs is tested for proper syntax and validity. Every improper syntax and every invalidity found will be logged. Improper syntax may be e.g. an invalid ",(0,n.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},"globpattern"),". Invalidities include non-existing directories or files, lack of write-permissions where needed, etc."),(0,n.kt)("p",null,"Then, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," reads the specified input files (in arbitrary order), and processes each of them, as follows:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"select the actual ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that is to be used as an input;"),(0,n.kt)("li",{parentName:"ul"},"select the (subset of) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that must appear in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," - see ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-syntax/hrg-termselcrit"},"HRG Term Selection")," for details. Conceptually, this will result in an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that only contains ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that need to appear in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," as well;"),(0,n.kt)("li",{parentName:"ul"},"(alphabetically) sort these entries;"),(0,n.kt)("li",{parentName:"ul"},"convert each entry into a specific 'rendered' format (as specified by the user), thereby resolving any ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," (by appropriately calling the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT"),")",(0,n.kt)("sup",{parentName:"li",id:"fnref-1"},(0,n.kt)("a",{parentName:"sup",href:"#fn-1",className:"footnote-ref"},"1")),", adding hyperlinks to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that the entry relates to, 'meta-data' (e.g. the associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags"),", contributors, etc.), and anything else, as required for the particular kind of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," that is being generated;",(0,n.kt)("admonition",{parentName:"li",title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"The ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/tno-terminology-design/trrt"},"TRRT")," has a nice setup for implementing ",(0,n.kt)("a",{parentName:"p",href:"/docs/overview/tev2-design-principles#text-conversion-steps"},"text conversion steps"),". We should check that out and adapt the specifications text in this section so that this stuff can be reused as much as possible."))),(0,n.kt)("li",{parentName:"ul"},"construct the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," by adding (rendered) header- and footer-material and (optionally) licensing information;"),(0,n.kt)("li",{parentName:"ul"},"write the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," to the designated output file.")),(0,n.kt)("admonition",{title:"Editor's Note:",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"A special case of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," generation is when the default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is created for a particular ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", which typically consists of all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),". In that case, the contents of the ",(0,n.kt)("inlineCode",{parentName:"p"},"hrgfile")," field in ",(0,n.kt)("inlineCode",{parentName:"p"},"versions")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," whose ",(0,n.kt)("inlineCode",{parentName:"p"},"mrgfile")," field ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," should become the name of the file that contains the generated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),". Additionally, if the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," happens to be the default one for the scope (as can be seen by comparing its filename with the contents of the ",(0,n.kt)("inlineCode",{parentName:"p"},"mrgfile")," field in the ",(0,n.kt)("inlineCode",{parentName:"p"},"scope")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"), then the contents of the ",(0,n.kt)("inlineCode",{parentName:"p"},"hrgfile")," field in ",(0,n.kt)("inlineCode",{parentName:"p"},"scope")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," must also become the name of the file that contains the generated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),". Whether or not the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," is expected to operate in this mode is an option that can be provided at the commandline or in the configuration file.")),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," logs every error- and/or warning condition that it comes across while processing its configuration file, commandline parameters, and input files, in a way that helps tool-operators and document ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," to identify and fix such conditions."),(0,n.kt)("h2",{id:"deploying-the-tool"},"Deploying the Tool"),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," comes with documentation that enables developers to ascertain its correct functioning (e.g. by using a test set of files, test scripts that exercise its parameters, etc.), and also enables them to deploy the tool in a git repo and author/modify CI-pipes to use that deployment."),(0,n.kt)("h2",{id:"discussion-notes"},"Discussion Notes"),(0,n.kt)("p",null,"This section contains some notes of a discussion between Daniel and Rieks on these matters of some time ago, which pertains to glossaries in the context of ToIP."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A ToIP ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary")," will be put by default at ",(0,n.kt)("inlineCode",{parentName:"li"},"http://trustoverip.github.io//glossary"),", where ",(0,n.kt)("inlineCode",{parentName:"li"},"")," is the name of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terms-community",hovertext:"Terms Community: a Community that maintains a Terminology for the purpose of avoiding misunderstandings between its members as they collaborate."},"terms-community"),". This allows every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terms-community",hovertext:"Terms Community: a Community that maintains a Terminology for the purpose of avoiding misunderstandings between its members as they collaborate."},"terms-community")," to have its own ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),". However, the above specifications allow ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terms-community",hovertext:"Terms Community: a Community that maintains a Terminology for the purpose of avoiding misunderstandings between its members as they collaborate."},"terms-communities")," to ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curate",hovertext:"Curate: to select, organize, and present Terms, Definitions, and other, related content in a thoughtful and purposeful manner to establish shared understanding among a Community working together on a particular set of objectives."},"curate")," multiple ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes"),"."),(0,n.kt)("li",{parentName:"ul"},"Storing ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossaries")," elsewhere was seen to break the (basic workings of the postprocessing tool, but the above specifications would fix that."),(0,n.kt)("li",{parentName:"ul"},"Entries, e.g. 'foo' can be referenced as ",(0,n.kt)("inlineCode",{parentName:"li"},'http://trustoverip.github.io//glossary#foo')," (in case of a standalone glossary), and ",(0,n.kt)("inlineCode",{parentName:"li"},"http://trustoverip.github.io//document-that-includes-glossary-fragment#foo")," (in case of a fragmented glossary)."),(0,n.kt)("li",{parentName:"ul"},"We could also see GGT and TRRT to be extended, e.g. to work in conjunction with LaTeX or word-processor documents. This needs some looking into, but ",(0,n.kt)("a",{parentName:"li",href:"https://pandoc.org/"},"pandoc")," may be useful here.")),(0,n.kt)("div",{className:"footnotes"},(0,n.kt)("hr",{parentName:"div"}),(0,n.kt)("ol",{parentName:"div"},(0,n.kt)("li",{parentName:"ol",id:"fn-1"},"if the rendered output is such that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," can still be recognized by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT"),", it may be more efficient to defer the resolution of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," until after the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is completely generated.",(0,n.kt)("a",{parentName:"li",href:"#fnref-1",className:"footnote-backref"},"\u21a9")))))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[7773],{3905:function(e,t,a){a.d(t,{Zo:function(){return h},kt:function(){return p}});var i=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function s(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var l=i.createContext({}),c=function(e){var t=i.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},h=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var a=e.components,o=e.mdxType,n=e.originalType,l=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),m=c(a),p=o,u=m["".concat(l,".").concat(p)]||m[p]||d[p]||n;return a?i.createElement(u,s(s({ref:t},h),{},{components:a})):i.createElement(u,s({ref:t},h))}));function p(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=a.length,s=new Array(n);s[0]=m;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r.mdxType="string"==typeof e?e:o,s[1]=r;for(var c=2;c child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:a.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function m(e){var t=e.values,a=e.children;return(0,o.useMemo)((function(){var e=null!=t?t:d(a);return function(e){var t=(0,c.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,a])}function p(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function u(e){var t=e.queryString,a=void 0!==t&&t,i=e.groupId,n=(0,r.k6)(),s=function(e){var t=e.queryString,a=void 0!==t&&t,i=e.groupId;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!i)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=i?i:null}({queryString:a,groupId:i});return[(0,l._X)(s),(0,o.useCallback)((function(e){if(s){var t=new URLSearchParams(n.location.search);t.set(s,e),n.replace(Object.assign({},n.location,{search:t.toString()}))}}),[s,n])]}function f(e){var t,a,i,n,s=e.defaultValue,r=e.queryString,l=void 0!==r&&r,c=e.groupId,d=m(e),f=(0,o.useState)((function(){return function(e){var t,a=e.defaultValue,i=e.tabValues;if(0===i.length)throw new Error("Docusaurus error: the component requires at least one children component");if(a){if(!p({value:a,tabValues:i}))throw new Error('Docusaurus error: The has a defaultValue "'+a+'" but none of its children has the corresponding value. Available values are: '+i.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return a}var o=null!=(t=i.find((function(e){return e.default})))?t:i[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:s,tabValues:d})})),g=f[0],y=f[1],b=u({queryString:l,groupId:c}),v=b[0],k=b[1],G=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:c}.groupId),a=(0,h.Nk)(t),i=a[0],n=a[1],[i,(0,o.useCallback)((function(e){t&&n.set(e)}),[t,n])]),T=G[0],w=G[1],R=function(){var e=null!=v?v:T;return p({value:e,tabValues:d})?e:null}();return(0,o.useLayoutEffect)((function(){R&&y(R)}),[R]),{selectedValue:g,selectValue:(0,o.useCallback)((function(e){if(!p({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);y(e),k(e),w(e)}),[k,w,d]),tabValues:d}}var g=a(2389),y="tabList__CuJ",b="tabItem_LNqP";function v(e){var t=e.className,a=e.block,r=e.selectedValue,l=e.selectValue,c=e.tabValues,h=[],d=(0,s.o5)().blockElementScrollPositionUntilNextRender,m=function(e){var t=e.currentTarget,a=h.indexOf(t),i=c[a].value;i!==r&&(d(t),l(i))},p=function(e){var t,a=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":var i,o=h.indexOf(e.currentTarget)+1;a=null!=(i=h[o])?i:h[0];break;case"ArrowLeft":var n,s=h.indexOf(e.currentTarget)-1;a=null!=(n=h[s])?n:h[h.length-1]}null==(t=a)||t.focus()};return o.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":a},t)},c.map((function(e){var t=e.value,a=e.label,s=e.attributes;return o.createElement("li",(0,i.Z)({role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,key:t,ref:function(e){return h.push(e)},onKeyDown:p,onClick:m},s,{className:(0,n.Z)("tabs__item",b,null==s?void 0:s.className,{"tabs__item--active":r===t})}),null!=a?a:t)})))}function k(e){var t=e.lazy,a=e.children,i=e.selectedValue,n=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){var s=n.find((function(e){return e.props.value===i}));return s?(0,o.cloneElement)(s,{className:"margin-top--md"}):null}return o.createElement("div",{className:"margin-top--md"},n.map((function(e,t){return(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==i})})))}function G(e){var t=f(e);return o.createElement("div",{className:(0,n.Z)("tabs-container",y)},o.createElement(v,(0,i.Z)({},e,t)),o.createElement(k,(0,i.Z)({},e,t)))}function T(e){var t=(0,g.Z)();return o.createElement(G,(0,i.Z)({key:String(t)},e))}},5557:function(e,t,a){a.r(t),a.d(t,{assets:function(){return h},contentTitle:function(){return l},default:function(){return u},frontMatter:function(){return r},mark:function(){return m},metadata:function(){return c},toc:function(){return d}});var i=a(7462),o=a(3366),n=(a(7294),a(3905)),s=(a(4996),a(4866),a(5162),["components"]),r={id:"hrgt",sidebar_label:"HR Glossary Generation",date:20230103},l="Human Readable Glossary Generation Tool",c={unversionedId:"spec-tools/hrgt",id:"spec-tools/hrgt",title:"Human Readable Glossary Generation Tool",description:"text to mark",source:"@site/docs/spec-tools/22-hrgt.md",sourceDirName:"spec-tools",slug:"/spec-tools/hrgt",permalink:"/tev2-specifications/docs/spec-tools/hrgt",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-tools/22-hrgt.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695968786,formattedLastUpdatedAt:"Sep 29, 2023",sidebarPosition:22,frontMatter:{id:"hrgt",sidebar_label:"HR Glossary Generation",date:20230103},sidebar:"tev2SideBar",previous:{title:"HR Glossary Generation (previous version)",permalink:"/tev2-specifications/docs/spec-tools/hrgt-old"},next:{title:"MR Dictionary Generation",permalink:"/tev2-specifications/docs/spec-tools/mrdt"}},h={},d=[{value:"Calling the Tool",id:"calling-the-tool",level:2},{value:"Processing, Errors and Warnings",id:"processing-errors-and-warnings",level:2},{value:"Deploying the Tool",id:"deploying-the-tool",level:2},{value:"Discussion Notes",id:"discussion-notes",level:2}],m=function(e){var t=e.children;return(0,n.kt)("span",{style:{color:"black",backgroundColor:"yellow",padding:"0.2rem",borderRadius:"2px"}},t)},p={toc:d,mark:m};function u(e){var t=e.components,a=(0,o.Z)(e,s);return(0,n.kt)("wrapper",(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"human-readable-glossary-generation-tool"},"Human Readable Glossary Generation Tool"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Human Readable Glossary generation Tool (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT"),")")," generates a Human Readable ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"Glossary")," (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),") that consists of (a selection of) the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that are part of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". "),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," takes one specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," as its input, and converts (a selection of) its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," into one of the supported output formats, e.g. HTML, or PDF. The file that contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is named ",(0,n.kt)("inlineCode",{parentName:"p"},"mrg...yaml"),", where the combination of ",(0,n.kt)("inlineCode",{parentName:"p"},"")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"")," identify a particular ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". See the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/mrg#mrg-file-naming"},"MRG file naming conventions")," for details."),(0,n.kt)("p",null,"The selection of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that are to be included in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),", as well as the specification of the output format, headers, footers, etc., can be configured as well as customized. Thus, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," provides a flexible means for creating all sorts of outputs that are either already human readable or can be processed further by third-party rendering tools, such as ",(0,n.kt)("a",{parentName:"p",href:"https://pages.github.com/"},"github pages")," or ",(0,n.kt)("a",{parentName:"p",href:"https://docusaurus.io/docs/docs-introduction"},"Docusaurus"),", etc. (see also: ",(0,n.kt)("a",{parentName:"p",href:"/docs/tev2-toolbox"},"Using the Tools"),")."),(0,n.kt)("p",null,"There is currently one implementation of the tool underway:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"the repo in which the tool is being developed is ","[",(0,n.kt)("mark",null,"tbd"),"]","."),(0,n.kt)("li",{parentName:"ul"},"the documentation is ","[",(0,n.kt)("mark",null,"tbd"),"]",".")),(0,n.kt)("h2",{id:"calling-the-tool"},"Calling the Tool"),(0,n.kt)("p",null,"The behavior of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," can be configured per call e.g. by a configuration file and/or command-line parameters. The command-line syntax is as follows:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"hrgt [ ] [ ]\n")),(0,n.kt)("p",null,"where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," (optional) is a list of key-value pairs"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},(0,n.kt)("inlineCode",{parentName:"a"},"globpattern"))," (optional) specifies a set of (input) files that are to be processed. If a configuration file is used, its contents may specify an additional set of input files to be processed.")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("p",null,"The columns in the following table are defined as follows:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Key"))," is the text to be used as a key."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Value"))," represents the kind of value to be used."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),") the field is required to be present when the tool is being called. If required, it MUST either be present in the configuration file, or as a command-line parameter."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the ",(0,n.kt)("inlineCode",{parentName:"li"},"Value")," field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Key"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"config")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path (including the filename) of the tool's (YAML) configuration file. This file contains the default key-value pairs to be used. Allowed keys (and the associated values) are documented in this table. Command-line arguments override key-value pairs specified in the configuration file. This parameter MUST NOT appear in the configuration file itself.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," from which the tool is called. It MUST contain the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," for that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which we will refer to as the 'current scope' for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT"),". If omitted, the current directory is assumed to tbe the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"input")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{parentName:"td",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},"Globpattern")," that specifies the set of (input) files (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),") that are to be processed. If omitted, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is generated for the default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," of the current scope (as specified in the ",(0,n.kt)("inlineCode",{parentName:"td"},"mrgfile")," field of the ",(0,n.kt)("inlineCode",{parentName:"td"},"scope")," section in its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"output")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"text that is used as the last part of the name of the file(s) that contain(s) the generated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG(s)"),". This text must specify an appropriate extension, such as HTML or PDF. The filename(s) will be of the form ",(0,n.kt)("inlineCode",{parentName:"td"},"hrg..."),", where ",(0,n.kt)("inlineCode",{parentName:"td"},"")," is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is generated, and ",(0,n.kt)("inlineCode",{parentName:"td"},"")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," in that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". From this, it follows that an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"-file exists named ",(0,n.kt)("inlineCode",{parentName:"td"},"mrg...yaml"),", which is used as the source for the entries in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"termselcrit")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"List of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria")," that are used to generate (this version of) the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". If omitted, all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from the source ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," will be selected. See ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-tools/terminology-construction"},"Terminology Construction")," for details.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"method")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("mark",null,"Text, the syntax and semantics of which remain to be specified (see also the Editor's note below).")," When this parameter is omitted, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is generated as an HTML file.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"license")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"File that contains the (default) licensing conditions. Full URL is ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"license"),". If not specified, its value defaults to the value of the ",(0,n.kt)("inlineCode",{parentName:"td"},"license")," field in the ",(0,n.kt)("inlineCode",{parentName:"td"},"scope")," section (of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of the current scope). The purpose of this field is to enable different ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRGs")," to have different licenses.")))),(0,n.kt)("admonition",{title:"Editor's Note:",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"We may want to consider:"),(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},"changing the ",(0,n.kt)("inlineCode",{parentName:"li"},"input")," parameter from a globpattern to a list of versiontags for which the HRG is to be generated."),(0,n.kt)("li",{parentName:"ul"},"revising the spec of the ",(0,n.kt)("inlineCode",{parentName:"li"},"output")," parameter, depending on the kind of control that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," need."),(0,n.kt)("li",{parentName:"ul"},"add a ",(0,n.kt)("inlineCode",{parentName:"li"},"version")," parameter, the value of which is a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag"),", and the meaning of which is that (a) the input file is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," associated with that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag"),", and (b) the output file will be registered in the ",(0,n.kt)("inlineCode",{parentName:"li"},"hrgfile")," entry of the appropriate element of the ",(0,n.kt)("inlineCode",{parentName:"li"},"versions")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", and also, if appropriate, in the ",(0,n.kt)("inlineCode",{parentName:"li"},"scope")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". Doing this requires additional texts in subsequent sections."))),(0,n.kt)("admonition",{title:"Editor's Note:",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"Various ",(0,n.kt)("inlineCode",{parentName:"p"},"method"),"s are envisaged, yet remain to be properly specified. A method may specify:"),(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},"what a single entry contains"),(0,n.kt)("li",{parentName:"ul"},"that the contents of particular files are to be used as header or footer;"),(0,n.kt)("li",{parentName:"ul"},"that a particular kind of navigation bar is to be inserted at specific places (e.g. between two subsequent entries that start with a different character);"),(0,n.kt)("li",{parentName:"ul"},"..."))),(0,n.kt)("h2",{id:"processing-errors-and-warnings"},"Processing, Errors and Warnings"),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," starts by reading its command-line and configuration file. If the command-line has a key that is also found in the configuration file, the command-line key-value pair takes precedence. The resulting set of key-value pairs is tested for proper syntax and validity. Every improper syntax and every invalidity found will be logged. Improper syntax may be e.g. an invalid ",(0,n.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},"globpattern"),". Invalidities include non-existing directories or files, lack of write-permissions where needed, etc."),(0,n.kt)("p",null,"Then, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," reads the specified input files (in arbitrary order), and processes each of them, as follows:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"select the actual ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that is to be used as an input;"),(0,n.kt)("li",{parentName:"ul"},"select the (subset of) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that must appear in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," - see ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-syntax/hrg-termselcrit"},"HRG Term Selection")," for details. Conceptually, this will result in an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that only contains ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that need to appear in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," as well;"),(0,n.kt)("li",{parentName:"ul"},"(alphabetically) sort these entries;"),(0,n.kt)("li",{parentName:"ul"},"convert each entry into a specific 'rendered' format (as specified by the user), thereby resolving any ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," (by appropriately calling the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT"),")",(0,n.kt)("sup",{parentName:"li",id:"fnref-1"},(0,n.kt)("a",{parentName:"sup",href:"#fn-1",className:"footnote-ref"},"1")),", adding hyperlinks to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that the entry relates to, 'meta-data' (e.g. the associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags"),", contributors, etc.), and anything else, as required for the particular kind of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," that is being generated;",(0,n.kt)("admonition",{parentName:"li",title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"The ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/tno-terminology-design/trrt"},"TRRT")," has a nice setup for implementing ",(0,n.kt)("a",{parentName:"p",href:"/docs/overview/tev2-design-principles#text-conversion-steps"},"text conversion steps"),". We should check that out and adapt the specifications text in this section so that this stuff can be reused as much as possible."))),(0,n.kt)("li",{parentName:"ul"},"construct the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," by adding (rendered) header- and footer-material and (optionally) licensing information;"),(0,n.kt)("li",{parentName:"ul"},"write the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," to the designated output file.")),(0,n.kt)("admonition",{title:"Editor's Note:",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"A special case of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," generation is when the default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is created for a particular ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", which typically consists of all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),". In that case, the contents of the ",(0,n.kt)("inlineCode",{parentName:"p"},"hrgfile")," field in ",(0,n.kt)("inlineCode",{parentName:"p"},"versions")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," whose ",(0,n.kt)("inlineCode",{parentName:"p"},"mrgfile")," field ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," should become the name of the file that contains the generated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),". Additionally, if the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," happens to be the default one for the scope (as can be seen by comparing its filename with the contents of the ",(0,n.kt)("inlineCode",{parentName:"p"},"mrgfile")," field in the ",(0,n.kt)("inlineCode",{parentName:"p"},"scope")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"), then the contents of the ",(0,n.kt)("inlineCode",{parentName:"p"},"hrgfile")," field in ",(0,n.kt)("inlineCode",{parentName:"p"},"scope")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," must also become the name of the file that contains the generated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),". Whether or not the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," is expected to operate in this mode is an option that can be provided at the commandline or in the configuration file.")),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," logs every error- and/or warning condition that it comes across while processing its configuration file, commandline parameters, and input files, in a way that helps tool-operators and document ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," to identify and fix such conditions."),(0,n.kt)("h2",{id:"deploying-the-tool"},"Deploying the Tool"),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT")," comes with documentation that enables developers to ascertain its correct functioning (e.g. by using a test set of files, test scripts that exercise its parameters, etc.), and also enables them to deploy the tool in a git repo and author/modify CI-pipes to use that deployment."),(0,n.kt)("h2",{id:"discussion-notes"},"Discussion Notes"),(0,n.kt)("p",null,"This section contains some notes of a discussion between Daniel and Rieks on these matters of some time ago, which pertains to glossaries in the context of ToIP."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A ToIP ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary")," will be put by default at ",(0,n.kt)("inlineCode",{parentName:"li"},"http://trustoverip.github.io//glossary"),", where ",(0,n.kt)("inlineCode",{parentName:"li"},"")," is the name of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terms-community",hovertext:"Terms Community: a Community that maintains a Terminology for the purpose of avoiding misunderstandings between its members as they collaborate."},"terms-community"),". This allows every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terms-community",hovertext:"Terms Community: a Community that maintains a Terminology for the purpose of avoiding misunderstandings between its members as they collaborate."},"terms-community")," to have its own ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),". However, the above specifications allow ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terms-community",hovertext:"Terms Community: a Community that maintains a Terminology for the purpose of avoiding misunderstandings between its members as they collaborate."},"terms-communities")," to ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curate",hovertext:"Curate: to select, organize, and present Terms, Definitions, and other, related content in a thoughtful and purposeful manner to establish shared understanding among a Community working together on a particular set of objectives."},"curate")," multiple ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes"),"."),(0,n.kt)("li",{parentName:"ul"},"Storing ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossaries")," elsewhere was seen to break the (basic workings of the postprocessing tool, but the above specifications would fix that."),(0,n.kt)("li",{parentName:"ul"},"Entries, e.g. 'foo' can be referenced as ",(0,n.kt)("inlineCode",{parentName:"li"},'http://trustoverip.github.io//glossary#foo')," (in case of a standalone glossary), and ",(0,n.kt)("inlineCode",{parentName:"li"},"http://trustoverip.github.io//document-that-includes-glossary-fragment#foo")," (in case of a fragmented glossary)."),(0,n.kt)("li",{parentName:"ul"},"We could also see GGT and TRRT to be extended, e.g. to work in conjunction with LaTeX or word-processor documents. This needs some looking into, but ",(0,n.kt)("a",{parentName:"li",href:"https://pandoc.org/"},"pandoc")," may be useful here.")),(0,n.kt)("div",{className:"footnotes"},(0,n.kt)("hr",{parentName:"div"}),(0,n.kt)("ol",{parentName:"div"},(0,n.kt)("li",{parentName:"ol",id:"fn-1"},"if the rendered output is such that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," can still be recognized by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT"),", it may be more efficient to defer the resolution of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," until after the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is completely generated.",(0,n.kt)("a",{parentName:"li",href:"#fnref-1",className:"footnote-backref"},"\u21a9")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5ea46faf.dff9cc44.js b/assets/js/5ea46faf.d3d1c863.js similarity index 99% rename from assets/js/5ea46faf.dff9cc44.js rename to assets/js/5ea46faf.d3d1c863.js index 0cb86c605f..882f9866d7 100644 --- a/assets/js/5ea46faf.dff9cc44.js +++ b/assets/js/5ea46faf.d3d1c863.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[3504],{3905:function(e,t,r){r.d(t,{Zo:function(){return p},kt:function(){return l}});var i=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=i.createContext({}),u=function(e){var t=i.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=u(e.components);return i.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),h=u(r),l=o,f=h["".concat(c,".").concat(l)]||h[l]||d[l]||n;return r?i.createElement(f,a(a({ref:t},p),{},{components:r})):i.createElement(f,a({ref:t},p))}));function l(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,a=new Array(n);a[0]=h;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var u=2;u=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=i.createContext({}),u=function(e){var t=i.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=u(e.components);return i.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),h=u(r),l=o,f=h["".concat(c,".").concat(l)]||h[l]||d[l]||n;return r?i.createElement(f,a(a({ref:t},p),{},{components:r})):i.createElement(f,a({ref:t},p))}));function l(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,a=new Array(n);a[0]=h;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var u=2;u=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var h=o.createContext({}),c=function(e){var t=o.useContext(h),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},l=function(e){var t=c(e.components);return o.createElement(h.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,h=e.parentName,l=r(e,["components","mdxType","originalType","parentName"]),p=c(i),f=n,m=p["".concat(h,".").concat(f)]||p[f]||d[f]||a;return i?o.createElement(m,s(s({ref:t},l),{},{components:i})):o.createElement(m,s({ref:t},l))}));function f(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,s=new Array(a);s[0]=p;var r={};for(var h in t)hasOwnProperty.call(t,h)&&(r[h]=t[h]);r.originalType=e,r.mdxType="string"==typeof e?e:n,s[1]=r;for(var c=2;c=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var h=o.createContext({}),c=function(e){var t=o.useContext(h),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},l=function(e){var t=c(e.components);return o.createElement(h.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,a=e.originalType,h=e.parentName,l=r(e,["components","mdxType","originalType","parentName"]),p=c(i),f=n,m=p["".concat(h,".").concat(f)]||p[f]||d[f]||a;return i?o.createElement(m,s(s({ref:t},l),{},{components:i})):o.createElement(m,s({ref:t},l))}));function f(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=i.length,s=new Array(a);s[0]=p;var r={};for(var h in t)hasOwnProperty.call(t,h)&&(r[h]=t[h]);r.originalType=e,r.mdxType="string"==typeof e?e:n,s[1]=r;for(var c=2;c=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=c(n),m=i,p=h["".concat(l,".").concat(m)]||h[m]||d[m]||r;return n?a.createElement(p,o(o({ref:t},u),{},{components:n})):a.createElement(p,o({ref:t},u))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:i,o[1]=s;for(var c=2;c child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:n.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function h(e){var t=e.values,n=e.children;return(0,i.useMemo)((function(){var e=null!=t?t:d(n);return function(e){var t=(0,c.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,n])}function m(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function p(e){var t=e.queryString,n=void 0!==t&&t,a=e.groupId,r=(0,s.k6)(),o=function(e){var t=e.queryString,n=void 0!==t&&t,a=e.groupId;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=a?a:null}({queryString:n,groupId:a});return[(0,l._X)(o),(0,i.useCallback)((function(e){if(o){var t=new URLSearchParams(r.location.search);t.set(o,e),r.replace(Object.assign({},r.location,{search:t.toString()}))}}),[o,r])]}function f(e){var t,n,a,r,o=e.defaultValue,s=e.queryString,l=void 0!==s&&s,c=e.groupId,d=h(e),f=(0,i.useState)((function(){return function(e){var t,n=e.defaultValue,a=e.tabValues;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!m({value:n,tabValues:a}))throw new Error('Docusaurus error: The has a defaultValue "'+n+'" but none of its children has the corresponding value. Available values are: '+a.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return n}var i=null!=(t=a.find((function(e){return e.default})))?t:a[0];if(!i)throw new Error("Unexpected error: 0 tabValues");return i.value}({defaultValue:o,tabValues:d})})),g=f[0],b=f[1],y=p({queryString:l,groupId:c}),v=y[0],G=y[1],R=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:c}.groupId),n=(0,u.Nk)(t),a=n[0],r=n[1],[a,(0,i.useCallback)((function(e){t&&r.set(e)}),[t,r])]),w=R[0],k=R[1],H=function(){var e=null!=v?v:w;return m({value:e,tabValues:d})?e:null}();return(0,i.useLayoutEffect)((function(){H&&b(H)}),[H]),{selectedValue:g,selectValue:(0,i.useCallback)((function(e){if(!m({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);b(e),G(e),k(e)}),[G,k,d]),tabValues:d}}var g=n(2389),b="tabList__CuJ",y="tabItem_LNqP";function v(e){var t=e.className,n=e.block,s=e.selectedValue,l=e.selectValue,c=e.tabValues,u=[],d=(0,o.o5)().blockElementScrollPositionUntilNextRender,h=function(e){var t=e.currentTarget,n=u.indexOf(t),a=c[n].value;a!==s&&(d(t),l(a))},m=function(e){var t,n=null;switch(e.key){case"Enter":h(e);break;case"ArrowRight":var a,i=u.indexOf(e.currentTarget)+1;n=null!=(a=u[i])?a:u[0];break;case"ArrowLeft":var r,o=u.indexOf(e.currentTarget)-1;n=null!=(r=u[o])?r:u[u.length-1]}null==(t=n)||t.focus()};return i.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":n},t)},c.map((function(e){var t=e.value,n=e.label,o=e.attributes;return i.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:function(e){return u.push(e)},onKeyDown:m,onClick:h},o,{className:(0,r.Z)("tabs__item",y,null==o?void 0:o.className,{"tabs__item--active":s===t})}),null!=n?n:t)})))}function G(e){var t=e.lazy,n=e.children,a=e.selectedValue,r=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){var o=r.find((function(e){return e.props.value===a}));return o?(0,i.cloneElement)(o,{className:"margin-top--md"}):null}return i.createElement("div",{className:"margin-top--md"},r.map((function(e,t){return(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==a})})))}function R(e){var t=f(e);return i.createElement("div",{className:(0,r.Z)("tabs-container",b)},i.createElement(v,(0,a.Z)({},e,t)),i.createElement(G,(0,a.Z)({},e,t)))}function w(e){var t=(0,g.Z)();return i.createElement(R,(0,a.Z)({key:String(t)},e))}},6286:function(e,t,n){n.r(t),n.d(t,{assets:function(){return d},contentTitle:function(){return c},default:function(){return p},frontMatter:function(){return l},metadata:function(){return u},toc:function(){return h}});var a=n(7462),i=n(3366),r=(n(7294),n(3905)),o=n(4996),s=(n(4866),n(5162),["components"]),l={id:"hrg",sidebar_label:"HRG (Human Readable Glossary)",date:20220503},c="Human Readable Glossary (HRG)",u={unversionedId:"spec-files/hrg",id:"spec-files/hrg",title:"Human Readable Glossary (HRG)",description:".."))," is the name of a file that contains an actual ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),", or it is a file that links (references) such a file, where:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"strong"},"."))," is taken from the ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"-file from which the ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is generated. See ",(0,r.kt)("a",{parentName:"li",href:"/docs/spec-files/mrg#mrg-file-naming"},"MRG file naming")," for details."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"strong"},""))," is a text that has been provided by the user that generated the ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),". It includes the file extension (e.g., PDF, HTML, etc.) that is appropriate for its contents. See ",(0,r.kt)("a",{parentName:"li",href:"/docs/spec-tools/hrgt#calling-the-tool"},"HRG generation")," for details.")),(0,r.kt)("p",null,"This naming convention enables tools (as well as ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," and others) that operate within a particular ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", to quickly find a particular ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," that is relevant for that ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,r.kt)("admonition",{title:"Editor's note",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"We need to decide whether this document actually describes "),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"(the possible structures of) HRGs, or"),(0,r.kt)("li",{parentName:"ul"},"the ways in hwich the generation of an HRG can be specified"))))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[6214],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=c(n),m=i,p=h["".concat(l,".").concat(m)]||h[m]||d[m]||r;return n?a.createElement(p,o(o({ref:t},u),{},{components:n})):a.createElement(p,o({ref:t},u))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:i,o[1]=s;for(var c=2;c child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:n.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function h(e){var t=e.values,n=e.children;return(0,i.useMemo)((function(){var e=null!=t?t:d(n);return function(e){var t=(0,c.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,n])}function m(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function p(e){var t=e.queryString,n=void 0!==t&&t,a=e.groupId,r=(0,s.k6)(),o=function(e){var t=e.queryString,n=void 0!==t&&t,a=e.groupId;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=a?a:null}({queryString:n,groupId:a});return[(0,l._X)(o),(0,i.useCallback)((function(e){if(o){var t=new URLSearchParams(r.location.search);t.set(o,e),r.replace(Object.assign({},r.location,{search:t.toString()}))}}),[o,r])]}function f(e){var t,n,a,r,o=e.defaultValue,s=e.queryString,l=void 0!==s&&s,c=e.groupId,d=h(e),f=(0,i.useState)((function(){return function(e){var t,n=e.defaultValue,a=e.tabValues;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!m({value:n,tabValues:a}))throw new Error('Docusaurus error: The has a defaultValue "'+n+'" but none of its children has the corresponding value. Available values are: '+a.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return n}var i=null!=(t=a.find((function(e){return e.default})))?t:a[0];if(!i)throw new Error("Unexpected error: 0 tabValues");return i.value}({defaultValue:o,tabValues:d})})),g=f[0],b=f[1],y=p({queryString:l,groupId:c}),v=y[0],G=y[1],R=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:c}.groupId),n=(0,u.Nk)(t),a=n[0],r=n[1],[a,(0,i.useCallback)((function(e){t&&r.set(e)}),[t,r])]),w=R[0],k=R[1],H=function(){var e=null!=v?v:w;return m({value:e,tabValues:d})?e:null}();return(0,i.useLayoutEffect)((function(){H&&b(H)}),[H]),{selectedValue:g,selectValue:(0,i.useCallback)((function(e){if(!m({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);b(e),G(e),k(e)}),[G,k,d]),tabValues:d}}var g=n(2389),b="tabList__CuJ",y="tabItem_LNqP";function v(e){var t=e.className,n=e.block,s=e.selectedValue,l=e.selectValue,c=e.tabValues,u=[],d=(0,o.o5)().blockElementScrollPositionUntilNextRender,h=function(e){var t=e.currentTarget,n=u.indexOf(t),a=c[n].value;a!==s&&(d(t),l(a))},m=function(e){var t,n=null;switch(e.key){case"Enter":h(e);break;case"ArrowRight":var a,i=u.indexOf(e.currentTarget)+1;n=null!=(a=u[i])?a:u[0];break;case"ArrowLeft":var r,o=u.indexOf(e.currentTarget)-1;n=null!=(r=u[o])?r:u[u.length-1]}null==(t=n)||t.focus()};return i.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":n},t)},c.map((function(e){var t=e.value,n=e.label,o=e.attributes;return i.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:function(e){return u.push(e)},onKeyDown:m,onClick:h},o,{className:(0,r.Z)("tabs__item",y,null==o?void 0:o.className,{"tabs__item--active":s===t})}),null!=n?n:t)})))}function G(e){var t=e.lazy,n=e.children,a=e.selectedValue,r=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){var o=r.find((function(e){return e.props.value===a}));return o?(0,i.cloneElement)(o,{className:"margin-top--md"}):null}return i.createElement("div",{className:"margin-top--md"},r.map((function(e,t){return(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==a})})))}function R(e){var t=f(e);return i.createElement("div",{className:(0,r.Z)("tabs-container",b)},i.createElement(v,(0,a.Z)({},e,t)),i.createElement(G,(0,a.Z)({},e,t)))}function w(e){var t=(0,g.Z)();return i.createElement(R,(0,a.Z)({key:String(t)},e))}},6286:function(e,t,n){n.r(t),n.d(t,{assets:function(){return d},contentTitle:function(){return c},default:function(){return p},frontMatter:function(){return l},metadata:function(){return u},toc:function(){return h}});var a=n(7462),i=n(3366),r=(n(7294),n(3905)),o=n(4996),s=(n(4866),n(5162),["components"]),l={id:"hrg",sidebar_label:"HRG (Human Readable Glossary)",date:20220503},c="Human Readable Glossary (HRG)",u={unversionedId:"spec-files/hrg",id:"spec-files/hrg",title:"Human Readable Glossary (HRG)",description:".."))," is the name of a file that contains an actual ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),", or it is a file that links (references) such a file, where:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"strong"},"."))," is taken from the ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"-file from which the ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is generated. See ",(0,r.kt)("a",{parentName:"li",href:"/docs/spec-files/mrg#mrg-file-naming"},"MRG file naming")," for details."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"strong"},""))," is a text that has been provided by the user that generated the ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),". It includes the file extension (e.g., PDF, HTML, etc.) that is appropriate for its contents. See ",(0,r.kt)("a",{parentName:"li",href:"/docs/spec-tools/hrgt#calling-the-tool"},"HRG generation")," for details.")),(0,r.kt)("p",null,"This naming convention enables tools (as well as ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," and others) that operate within a particular ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", to quickly find a particular ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," that is relevant for that ",(0,r.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,r.kt)("admonition",{title:"Editor's note",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"We need to decide whether this document actually describes "),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"(the possible structures of) HRGs, or"),(0,r.kt)("li",{parentName:"ul"},"the ways in hwich the generation of an HRG can be specified"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/65f59a55.f5a73650.js b/assets/js/65f59a55.b3f37b35.js similarity index 99% rename from assets/js/65f59a55.f5a73650.js rename to assets/js/65f59a55.b3f37b35.js index b7f05009a6..f255018ea6 100644 --- a/assets/js/65f59a55.f5a73650.js +++ b/assets/js/65f59a55.b3f37b35.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[328],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return p}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=l(n),p=a,h=u["".concat(c,".").concat(p)]||u[p]||m[p]||s;return n?r.createElement(h,i(i({ref:t},d),{},{components:n})):r.createElement(h,i({ref:t},d))}));function p(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,i=new Array(s);i[0]=u;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o.mdxType="string"==typeof e?e:a,i[1]=o;for(var l=2;l=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=l(n),p=a,h=u["".concat(c,".").concat(p)]||u[p]||m[p]||s;return n?r.createElement(h,i(i({ref:t},d),{},{components:n})):r.createElement(h,i({ref:t},d))}));function p(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,i=new Array(s);i[0]=u;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o.mdxType="string"==typeof e?e:a,i[1]=o;for(var l=2;l=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},h=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var i=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),d=p(i),m=o,l=d["".concat(c,".").concat(m)]||d[m]||f[m]||a;return i?n.createElement(l,s(s({ref:t},h),{},{components:i})):n.createElement(l,s({ref:t},h))}));function m(e,t){var i=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=i.length,s=new Array(a);s[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:o,s[1]=r;for(var p=2;p=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},h=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var i=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),d=p(i),m=o,l=d["".concat(c,".").concat(m)]||d[m]||f[m]||a;return i?n.createElement(l,s(s({ref:t},h),{},{components:i})):n.createElement(l,s({ref:t},h))}));function m(e,t){var i=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=i.length,s=new Array(a);s[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:o,s[1]=r;for(var p=2;p=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),l=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),m=l(r),u=n,f=m["".concat(c,".").concat(u)]||m[u]||p[u]||i;return r?a.createElement(f,o(o({ref:t},d),{},{components:r})):a.createElement(f,o({ref:t},d))}));function u(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,o[1]=s;for(var l=2;l=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),l=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),m=l(r),u=n,f=m["".concat(c,".").concat(u)]||m[u]||p[u]||i;return r?a.createElement(f,o(o({ref:t},d),{},{components:r})):a.createElement(f,o({ref:t},d))}));function u(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,o[1]=s;for(var l=2;l=0||(a[i]=t[i]);return a}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(a[i]=t[i])}return a}var c=o.createContext({}),m=function(t){var e=o.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):r(r({},e),t)),i},h=function(t){var e=m(t.components);return o.createElement(c.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},l=o.forwardRef((function(t,e){var i=t.components,a=t.mdxType,n=t.originalType,c=t.parentName,h=s(t,["components","mdxType","originalType","parentName"]),l=m(i),p=a,g=l["".concat(c,".").concat(p)]||l[p]||d[p]||n;return i?o.createElement(g,r(r({ref:e},h),{},{components:i})):o.createElement(g,r({ref:e},h))}));function p(t,e){var i=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var n=i.length,r=new Array(n);r[0]=l;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:a,r[1]=s;for(var m=2;mterminology under construction',id:"syntax-add",level:2},{value:'Removing MRG Entries from a terminology under construction',id:"syntax-remove",level:2},{value:"Rename/rewrite specific parts of an MRG entry",id:"syntax-rename",level:2}],p={toc:l};function g(t){var e=t.components,i=(0,a.Z)(t,s);return(0,n.kt)("wrapper",(0,o.Z)({},p,i,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"terminology-construction"},"Terminology Construction"),(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"Curators")," need the ability to construct (different versions of) the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," for any ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," they ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curate",hovertext:"Curate: to select, organize, and present Terms, Definitions, and other, related content in a thoughtful and purposeful manner to establish shared understanding among a Community working together on a particular set of objectives."},"curate"),".",(0,n.kt)("p",null,"Constructing a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," consists of specifying the set of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"terms")," that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," consists of, and making sure there is an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," that holds all associated (meta) data that other (e.g. third party) tools may need. In other words, it consists of constructing the set of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"terms")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),"."),(0,n.kt)("p",null,"An ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," contains (meta) data about (the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that represents/",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies"),") a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," (an illustration can be found in the ",(0,n.kt)("a",{parentName:"p",href:"/docs/terms/patterns/pattern-terminology#formalized-model"},"terminology support pattern"),"). For constructing a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),", the following such data is relevant (as it enables one to ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," (groups of) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"terms")," that are to become part of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),"):"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"the (preferred) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that represents the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),", and its synonymous ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"terms"),";"),(0,n.kt)("li",{parentName:"ul"},"various ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tag",hovertext:"Tag: an alphanumeric string that is used to identify Scopes (so called 'scopetags'), group Terms (so called 'grouptags'), or identify a specific version of a Terminology (so called 'versiontags') from within a specific Scope."},"tags"),", amongst which are the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," that indicate the groups of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"terms")," that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"term")," is a member of.")),(0,n.kt)("p",null,"The process for creating a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," is as follows:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"start with an empty set of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries"),' - we use the term "',(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),'" to refer to this set.'),(0,n.kt)("li",{parentName:"ol"},"sequentially process a list of so-called '",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria"),"' (i.e. instructions), which allow for")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"#syntax-add"},"adding")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),"; these can either be ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries")," that have been created from ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),", or ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries")," whose contents is obtained from an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," other than the one that is being created."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"#syntax-remove"},"removing")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"#syntax-rename"},"modifying attributes")," of a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),", e.g. for renaming a term that originated from another ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"Curators")," create and maintain the list of '",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria"),"', i.e. instructions for constructing a specific (version of a) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". Each such (versioned) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," has an entry in the [`versions` section](/docs/spec-files/saf#versions) of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," (of the designated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"), and the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria")," reside in the `termselcrit` field of that section.",(0,n.kt)("h2",{id:"syntax-add"},"Adding MRG Entries to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")),(0,n.kt)("p",null,"A ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curator")," can add ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")," from different sources, i.e."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that are defined in a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that exists in the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that are defined by an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," in an existing ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," (from another ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", or another version of the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),").")),(0,n.kt)("p",null,"Note that any reference to (an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," in) (the specific version of) the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that is being constructed, MUST be interpreted as a reference to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," would have been constructed."),(0,n.kt)("p",null,"The following instructions can be used for adding ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," (whitespace in the syntax is disregarded):"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Instruction",(0,n.kt)("sup",null,"*)")),(0,n.kt)("th",{parentName:"tr",align:"left"},"The instruction creates, and subsequently adds an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," for every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," ..."))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"terms [ ]")),(0,n.kt)("td",{parentName:"tr",align:"left"},"that documents the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that is represented by a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that appears in the ",(0,n.kt)("inlineCode",{parentName:"td"},""),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"tags [ ]")),(0,n.kt)("td",{parentName:"tr",align:"left"},"that has an element in the list of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," that also appears in the ",(0,n.kt)("inlineCode",{parentName:"td"},""),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"*")),(0,n.kt)("td",{parentName:"tr",align:"left"},"that exists within the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")))),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"")," are comma-separated lists of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," and ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," respectively."),(0,n.kt)("p",null,"*) It is allowed to add ",(0,n.kt)("inlineCode",{parentName:"p"},"@")," or ",(0,n.kt)("inlineCode",{parentName:"p"},"@:")," to the instruction syntax, the effect of which is that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," are not created from ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),", but rather selected from the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that holds (the specified version of) the ","[terminology]"," of the specified ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". If ",(0,n.kt)("inlineCode",{parentName:"p"},":")," isn't used, the default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from the specified ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," will be used."),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Examples"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,n.kt)("th",{parentName:"tr",align:"left"},"What it does when processed"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"terms[party]@essif-lab:v3.1")),(0,n.kt)("td",{parentName:"tr",align:"left"},"gets version ",(0,n.kt)("inlineCode",{parentName:"td"},"v3.1")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from the scope ",(0,n.kt)("inlineCode",{parentName:"td"},"essiflab"),", finds the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," associated with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," ",(0,n.kt)("inlineCode",{parentName:"td"},"party"),", and adds a copy to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"tags[management,governance]@toip")),(0,n.kt)("td",{parentName:"tr",align:"left"},"gets the default version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from the scope ",(0,n.kt)("inlineCode",{parentName:"td"},"toip"),", finds the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that have ",(0,n.kt)("inlineCode",{parentName:"td"},"management")," and/or ",(0,n.kt)("inlineCode",{parentName:"td"},"governance")," as one of their ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags"),", and adds a copy for each of them to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"* @essif-lab")),(0,n.kt)("td",{parentName:"tr",align:"left"},"gets the default version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from the scope ",(0,n.kt)("inlineCode",{parentName:"td"},"essif-lab"),", and adds a copy of all of its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"* @")),(0,n.kt)("td",{parentName:"tr",align:"left"},"creates an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," for every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," in the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and adds them to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),"."))))),(0,n.kt)("h2",{id:"syntax-remove"},"Removing MRG Entries from a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")),(0,n.kt)("p",null,"A ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curator")," can remove ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from the tuple set, using the following syntax (whitespace in the syntax is disregarded):"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"-tags [ ]")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"-terms [ ]"))),(0,n.kt)("p",null,"A ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curator")," can remove ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")," in different ways, using the following instructions (whitespace is disregarded):"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Instruction",(0,n.kt)("sup",null,"*)")),(0,n.kt)("th",{parentName:"tr",align:"left"},"The instruction removes an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," from the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")," if ..."))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"-tags [ ]")),(0,n.kt)("td",{parentName:"tr",align:"left"},"one of its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," appears in the ",(0,n.kt)("inlineCode",{parentName:"td"},""),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"-terms [ ]")),(0,n.kt)("td",{parentName:"tr",align:"left"},"the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that it specifies is an element of ",(0,n.kt)("inlineCode",{parentName:"td"},""),".")))),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"")," are comma-separated lists of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),", and ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," respectively."),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Examples"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,n.kt)("th",{parentName:"tr",align:"left"},"What it does when processed"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"-terms[party, actor]")),(0,n.kt)("td",{parentName:"tr",align:"left"},"removes the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that specifies ",(0,n.kt)("inlineCode",{parentName:"td"},"party")," or ",(0,n.kt)("inlineCode",{parentName:"td"},"actor")," as its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"-tags[management]")),(0,n.kt)("td",{parentName:"tr",align:"left"},"removes all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that have a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptag")," ",(0,n.kt)("inlineCode",{parentName:"td"},"management"),"."))))),(0,n.kt)("h2",{id:"syntax-rename"},"Rename/rewrite specific parts of an MRG entry"),(0,n.kt)("img",{alt:"From this point onward, texts are under construction",src:(0,r.Z)("images/wip/wip-under-construction-from-here-onward.png")}),(0,n.kt)("br",null),(0,n.kt)("br",null),(0,n.kt)("p",null,"In analogy with ",(0,n.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Namespace"},"namespaces"),", we accommodate for the renaming of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," as they are 'imported' from ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminologies")," other than the one that we are constructing. However, the analogy breaks down in the sense that it is not only a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that should be renameable (which is sufficient for ",(0,n.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Namespace"},"namespaces"),"), but also certain attributes may need to be changed."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"rename [ ]"),".")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Syntax examples"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,n.kt)("th",{parentName:"tr",align:"left"},"What it does when it is processed"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"rename party partij")),(0,n.kt)("td",{parentName:"tr",align:"left"},"renames the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that is currently associated with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," ",(0,n.kt)("inlineCode",{parentName:"td"},"party")," into ",(0,n.kt)("inlineCode",{parentName:"td"},"partij"),"."))))),(0,n.kt)("p",null,"where:"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"symbol"),(0,n.kt)("th",{parentName:"tr",align:"left"},"description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"left"},"the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," of the tuple that will be selected for renaming.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a (non-empty) comma-separated list of ",(0,n.kt)("inlineCode",{parentName:"td"},""),"s.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a ",(0,n.kt)("inlineCode",{parentName:"td"},": ")," (or ",(0,n.kt)("inlineCode",{parentName:"td"},"{ : }")," pair - to be decided.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a text that identifies a field in an ","[MRG entry]",", the value of which is to be changed, e.g. ",(0,n.kt)("inlineCode",{parentName:"td"},"formphrases"),", ",(0,n.kt)("inlineCode",{parentName:"td"},"grouptags"),", etc.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a text that will replace the existing text of the field identified by ",(0,n.kt)("inlineCode",{parentName:"td"},""),".")))),(0,n.kt)("p",null,"This syntax is processed by first selecting the tuple (in the tuple set that is being constructed) that has the specified ",(0,n.kt)("inlineCode",{parentName:"p"},"")," as its ",(0,n.kt)("inlineCode",{parentName:"p"},"term"),"-field, and then sequentially processing the ",(0,n.kt)("inlineCode",{parentName:"p"},""),"s in the ",(0,n.kt)("inlineCode",{parentName:"p"},""),", which means that the existing text of the field that is identified by the ",(0,n.kt)("inlineCode",{parentName:"p"},"")," element of the ",(0,n.kt)("inlineCode",{parentName:"p"},"")," is replaced by the text specified by the ",(0,n.kt)("inlineCode",{parentName:"p"},"")," element of that ",(0,n.kt)("inlineCode",{parentName:"p"},""),"."),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"The ability to rename terms as they are imported may introduce some issues related to other field-names, such as ",(0,n.kt)("inlineCode",{parentName:"p"},"term"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"formphrases"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"synonyms"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"glossaryText"),"s and possibly some others. Perhaps this syntax should therefore be extended, enabling ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," to simultaneously change these (and other) fields in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),".")))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[2938],{3905:function(t,e,i){i.d(e,{Zo:function(){return h},kt:function(){return p}});var o=i(7294);function a(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function n(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,o)}return i}function r(t){for(var e=1;e=0||(a[i]=t[i]);return a}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(a[i]=t[i])}return a}var c=o.createContext({}),m=function(t){var e=o.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):r(r({},e),t)),i},h=function(t){var e=m(t.components);return o.createElement(c.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},l=o.forwardRef((function(t,e){var i=t.components,a=t.mdxType,n=t.originalType,c=t.parentName,h=s(t,["components","mdxType","originalType","parentName"]),l=m(i),p=a,g=l["".concat(c,".").concat(p)]||l[p]||d[p]||n;return i?o.createElement(g,r(r({ref:e},h),{},{components:i})):o.createElement(g,r({ref:e},h))}));function p(t,e){var i=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var n=i.length,r=new Array(n);r[0]=l;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:a,r[1]=s;for(var m=2;mterminology under construction',id:"syntax-add",level:2},{value:'Removing MRG Entries from a terminology under construction',id:"syntax-remove",level:2},{value:"Rename/rewrite specific parts of an MRG entry",id:"syntax-rename",level:2}],p={toc:l};function g(t){var e=t.components,i=(0,a.Z)(t,s);return(0,n.kt)("wrapper",(0,o.Z)({},p,i,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"terminology-construction"},"Terminology Construction"),(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"Curators")," need the ability to construct (different versions of) the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," for any ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," they ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curate",hovertext:"Curate: to select, organize, and present Terms, Definitions, and other, related content in a thoughtful and purposeful manner to establish shared understanding among a Community working together on a particular set of objectives."},"curate"),".",(0,n.kt)("p",null,"Constructing a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," consists of specifying the set of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"terms")," that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," consists of, and making sure there is an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," that holds all associated (meta) data that other (e.g. third party) tools may need. In other words, it consists of constructing the set of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"terms")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),"."),(0,n.kt)("p",null,"An ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," contains (meta) data about (the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that represents/",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies"),") a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," (an illustration can be found in the ",(0,n.kt)("a",{parentName:"p",href:"/docs/terms/patterns/pattern-terminology#formalized-model"},"terminology support pattern"),"). For constructing a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),", the following such data is relevant (as it enables one to ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," (groups of) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"terms")," that are to become part of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),"):"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"the (preferred) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that represents the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),", and its synonymous ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"terms"),";"),(0,n.kt)("li",{parentName:"ul"},"various ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tag",hovertext:"Tag: an alphanumeric string that is used to identify Scopes (so called 'scopetags'), group Terms (so called 'grouptags'), or identify a specific version of a Terminology (so called 'versiontags') from within a specific Scope."},"tags"),", amongst which are the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," that indicate the groups of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"terms")," that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"term")," is a member of.")),(0,n.kt)("p",null,"The process for creating a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," is as follows:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"start with an empty set of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries"),' - we use the term "',(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),'" to refer to this set.'),(0,n.kt)("li",{parentName:"ol"},"sequentially process a list of so-called '",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria"),"' (i.e. instructions), which allow for")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"#syntax-add"},"adding")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),"; these can either be ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries")," that have been created from ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),", or ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries")," whose contents is obtained from an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," other than the one that is being created."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"#syntax-remove"},"removing")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"#syntax-rename"},"modifying attributes")," of a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),", e.g. for renaming a term that originated from another ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"Curators")," create and maintain the list of '",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria"),"', i.e. instructions for constructing a specific (version of a) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". Each such (versioned) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," has an entry in the [`versions` section](/docs/spec-files/saf#versions) of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," (of the designated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"), and the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-selection-criteria",hovertext:"Term Selection Criteria: criteria that are used within a particular Scope for the selection of Terms that are part of a particular Terminology."},"term selection criteria")," reside in the `termselcrit` field of that section.",(0,n.kt)("h2",{id:"syntax-add"},"Adding MRG Entries to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")),(0,n.kt)("p",null,"A ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curator")," can add ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")," from different sources, i.e."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that are defined in a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that exists in the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that are defined by an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," in an existing ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," (from another ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", or another version of the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),").")),(0,n.kt)("p",null,"Note that any reference to (an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," in) (the specific version of) the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that is being constructed, MUST be interpreted as a reference to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," would have been constructed."),(0,n.kt)("p",null,"The following instructions can be used for adding ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," (whitespace in the syntax is disregarded):"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Instruction",(0,n.kt)("sup",null,"*)")),(0,n.kt)("th",{parentName:"tr",align:"left"},"The instruction creates, and subsequently adds an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," for every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," ..."))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"terms [ ]")),(0,n.kt)("td",{parentName:"tr",align:"left"},"that documents the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that is represented by a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that appears in the ",(0,n.kt)("inlineCode",{parentName:"td"},""),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"tags [ ]")),(0,n.kt)("td",{parentName:"tr",align:"left"},"that has an element in the list of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," that also appears in the ",(0,n.kt)("inlineCode",{parentName:"td"},""),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"*")),(0,n.kt)("td",{parentName:"tr",align:"left"},"that exists within the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")))),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"")," are comma-separated lists of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," and ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," respectively."),(0,n.kt)("p",null,"*) It is allowed to add ",(0,n.kt)("inlineCode",{parentName:"p"},"@")," or ",(0,n.kt)("inlineCode",{parentName:"p"},"@:")," to the instruction syntax, the effect of which is that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," are not created from ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),", but rather selected from the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that holds (the specified version of) the ","[terminology]"," of the specified ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". If ",(0,n.kt)("inlineCode",{parentName:"p"},":")," isn't used, the default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from the specified ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," will be used."),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Examples"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,n.kt)("th",{parentName:"tr",align:"left"},"What it does when processed"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"terms[party]@essif-lab:v3.1")),(0,n.kt)("td",{parentName:"tr",align:"left"},"gets version ",(0,n.kt)("inlineCode",{parentName:"td"},"v3.1")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from the scope ",(0,n.kt)("inlineCode",{parentName:"td"},"essiflab"),", finds the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," associated with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," ",(0,n.kt)("inlineCode",{parentName:"td"},"party"),", and adds a copy to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"tags[management,governance]@toip")),(0,n.kt)("td",{parentName:"tr",align:"left"},"gets the default version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from the scope ",(0,n.kt)("inlineCode",{parentName:"td"},"toip"),", finds the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that have ",(0,n.kt)("inlineCode",{parentName:"td"},"management")," and/or ",(0,n.kt)("inlineCode",{parentName:"td"},"governance")," as one of their ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags"),", and adds a copy for each of them to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"* @essif-lab")),(0,n.kt)("td",{parentName:"tr",align:"left"},"gets the default version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from the scope ",(0,n.kt)("inlineCode",{parentName:"td"},"essif-lab"),", and adds a copy of all of its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"* @")),(0,n.kt)("td",{parentName:"tr",align:"left"},"creates an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," for every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," in the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and adds them to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction"),"."))))),(0,n.kt)("h2",{id:"syntax-remove"},"Removing MRG Entries from a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")),(0,n.kt)("p",null,"A ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curator")," can remove ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from the tuple set, using the following syntax (whitespace in the syntax is disregarded):"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"-tags [ ]")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"-terms [ ]"))),(0,n.kt)("p",null,"A ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curator")," can remove ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")," in different ways, using the following instructions (whitespace is disregarded):"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Instruction",(0,n.kt)("sup",null,"*)")),(0,n.kt)("th",{parentName:"tr",align:"left"},"The instruction removes an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," from the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")," if ..."))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"-tags [ ]")),(0,n.kt)("td",{parentName:"tr",align:"left"},"one of its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," appears in the ",(0,n.kt)("inlineCode",{parentName:"td"},""),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"-terms [ ]")),(0,n.kt)("td",{parentName:"tr",align:"left"},"the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that it specifies is an element of ",(0,n.kt)("inlineCode",{parentName:"td"},""),".")))),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"")," are comma-separated lists of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),", and ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," respectively."),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Examples"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,n.kt)("th",{parentName:"tr",align:"left"},"What it does when processed"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"-terms[party, actor]")),(0,n.kt)("td",{parentName:"tr",align:"left"},"removes the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that specifies ",(0,n.kt)("inlineCode",{parentName:"td"},"party")," or ",(0,n.kt)("inlineCode",{parentName:"td"},"actor")," as its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"-tags[management]")),(0,n.kt)("td",{parentName:"tr",align:"left"},"removes all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that have a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptag")," ",(0,n.kt)("inlineCode",{parentName:"td"},"management"),"."))))),(0,n.kt)("h2",{id:"syntax-rename"},"Rename/rewrite specific parts of an MRG entry"),(0,n.kt)("img",{alt:"From this point onward, texts are under construction",src:(0,r.Z)("images/wip/wip-under-construction-from-here-onward.png")}),(0,n.kt)("br",null),(0,n.kt)("br",null),(0,n.kt)("p",null,"In analogy with ",(0,n.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Namespace"},"namespaces"),", we accommodate for the renaming of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," as they are 'imported' from ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminologies")," other than the one that we are constructing. However, the analogy breaks down in the sense that it is not only a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that should be renameable (which is sufficient for ",(0,n.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Namespace"},"namespaces"),"), but also certain attributes may need to be changed."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"rename [ ]"),".")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Syntax examples"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,n.kt)("th",{parentName:"tr",align:"left"},"What it does when it is processed"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"rename party partij")),(0,n.kt)("td",{parentName:"tr",align:"left"},"renames the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that is currently associated with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," ",(0,n.kt)("inlineCode",{parentName:"td"},"party")," into ",(0,n.kt)("inlineCode",{parentName:"td"},"partij"),"."))))),(0,n.kt)("p",null,"where:"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"symbol"),(0,n.kt)("th",{parentName:"tr",align:"left"},"description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"left"},"the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," of the tuple that will be selected for renaming.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a (non-empty) comma-separated list of ",(0,n.kt)("inlineCode",{parentName:"td"},""),"s.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a ",(0,n.kt)("inlineCode",{parentName:"td"},": ")," (or ",(0,n.kt)("inlineCode",{parentName:"td"},"{ : }")," pair - to be decided.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a text that identifies a field in an ","[MRG entry]",", the value of which is to be changed, e.g. ",(0,n.kt)("inlineCode",{parentName:"td"},"formphrases"),", ",(0,n.kt)("inlineCode",{parentName:"td"},"grouptags"),", etc.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a text that will replace the existing text of the field identified by ",(0,n.kt)("inlineCode",{parentName:"td"},""),".")))),(0,n.kt)("p",null,"This syntax is processed by first selecting the tuple (in the tuple set that is being constructed) that has the specified ",(0,n.kt)("inlineCode",{parentName:"p"},"")," as its ",(0,n.kt)("inlineCode",{parentName:"p"},"term"),"-field, and then sequentially processing the ",(0,n.kt)("inlineCode",{parentName:"p"},""),"s in the ",(0,n.kt)("inlineCode",{parentName:"p"},""),", which means that the existing text of the field that is identified by the ",(0,n.kt)("inlineCode",{parentName:"p"},"")," element of the ",(0,n.kt)("inlineCode",{parentName:"p"},"")," is replaced by the text specified by the ",(0,n.kt)("inlineCode",{parentName:"p"},"")," element of that ",(0,n.kt)("inlineCode",{parentName:"p"},""),"."),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"The ability to rename terms as they are imported may introduce some issues related to other field-names, such as ",(0,n.kt)("inlineCode",{parentName:"p"},"term"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"formphrases"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"synonyms"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"glossaryText"),"s and possibly some others. Perhaps this syntax should therefore be extended, enabling ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," to simultaneously change these (and other) fields in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),".")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6b1e0334.947013ff.js b/assets/js/6b1e0334.51903e77.js similarity index 99% rename from assets/js/6b1e0334.947013ff.js rename to assets/js/6b1e0334.51903e77.js index 6150bd7731..fd80657f89 100644 --- a/assets/js/6b1e0334.947013ff.js +++ b/assets/js/6b1e0334.51903e77.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[1521],{3905:function(e,t,o){o.d(t,{Zo:function(){return h},kt:function(){return p}});var i=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,i)}return o}function s(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),d=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},h=function(e){var t=d(e.components);return i.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),m=d(o),p=n,u=m["".concat(c,".").concat(p)]||m[p]||l[p]||a;return o?i.createElement(u,s(s({ref:t},h),{},{components:o})):i.createElement(u,s({ref:t},h))}));function p(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,s=new Array(a);s[0]=m;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:n,s[1]=r;for(var d=2;d=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),d=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},h=function(e){var t=d(e.components);return i.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),m=d(o),p=n,u=m["".concat(c,".").concat(p)]||m[p]||l[p]||a;return o?i.createElement(u,s(s({ref:t},h),{},{components:o})):i.createElement(u,s({ref:t},h))}));function p(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,s=new Array(a);s[0]=m;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:n,s[1]=r;for(var d=2;d=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var c=o.createContext({}),p=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},h=function(e){var t=p(e.components);return o.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},l=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),l=p(i),d=n,m=l["".concat(c,".").concat(d)]||l[d]||f[d]||s;return i?o.createElement(m,a(a({ref:t},h),{},{components:i})):o.createElement(m,a({ref:t},h))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=i.length,a=new Array(s);a[0]=l;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:n,a[1]=r;for(var p=2;p=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var c=o.createContext({}),p=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},h=function(e){var t=p(e.components);return o.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},l=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),l=p(i),d=n,m=l["".concat(c,".").concat(d)]||l[d]||f[d]||s;return i?o.createElement(m,a(a({ref:t},h),{},{components:i})):o.createElement(m,a({ref:t},h))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=i.length,a=new Array(s);a[0]=l;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:n,a[1]=r;for(var p=2;p=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c=n.createContext({}),h=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},d=function(e){var t=h(e.components);return n.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),p=h(r),f=i,l=p["".concat(c,".").concat(f)]||p[f]||m[f]||o;return r?n.createElement(l,s(s({ref:t},d),{},{components:r})):n.createElement(l,s({ref:t},d))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,s=new Array(o);s[0]=p;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:i,s[1]=a;for(var h=2;h=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c=n.createContext({}),h=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},d=function(e){var t=h(e.components);return n.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),p=h(r),f=i,l=p["".concat(c,".").concat(f)]||p[f]||m[f]||o;return r?n.createElement(l,s(s({ref:t},d),{},{components:r})):n.createElement(l,s({ref:t},d))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,s=new Array(o);s[0]=p;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:i,s[1]=a;for(var h=2;h=0||(o[a]=t[a]);return o}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(o[a]=t[a])}return o}var c=i.createContext({}),h=function(t){var e=i.useContext(c),a=e;return t&&(a="function"==typeof t?t(e):r(r({},e),t)),a},d=function(t){var e=h(t.components);return i.createElement(c.Provider,{value:e},t.children)},m={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},p=i.forwardRef((function(t,e){var a=t.components,o=t.mdxType,n=t.originalType,c=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),p=h(a),l=o,u=p["".concat(c,".").concat(l)]||p[l]||m[l]||n;return a?i.createElement(u,r(r({ref:e},d),{},{components:a})):i.createElement(u,r({ref:e},d))}));function l(t,e){var a=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var n=a.length,r=new Array(n);r[0]=p;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:o,r[1]=s;for(var h=2;hconcept or other semantic unit of a specific [community](@) or other [party](@), and is located within a scope that is owned by that [community](@)/[party](@).\nsynonymOf:\ngrouptags:\nformPhrases: curated-text{ss}, ctext{ss}\n# TEv2 Curation status\nstatus: proposed\ncreated: 2022-06-02\nupdated: 2023-08-14\n# Origins/Acknowledgements\ncontributors: RieksJ\nattribution: "[eSSIF-Lab](https://essif-lab.github.io/framework)"\noriginalLicense: "[CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1)"\n---\n\n# Curated Text\nA curated text starts with three dashes `---`.\nThis indicates the start of its (YAML) header.\nTypically, the header consists of a sequence of key-value pairs.\nThe header is terminated with onother three dashes and a new line.\n\nThe body of the curated text typically starts behind the header block,\nbut it can also be placed in another file within the `scopedir`.\nThe body is typically markdown, but other constructs may be inserted\nthat contribute to the rendering of these texts in a (static) website.\nAn example of this is [MDX](https://mdxjs.com/).\nA discussion on these other constructs is outside the scope of this document.\n')))),(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"Headers")," of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts")," are used by ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tev2",hovertext:"Tev2: a set of specifications and tools that caters for the Curation of Terminologies, as well as for its subsequent use in publications of different types (e.g. websites, whitepapers) and formats (e.g. html, LaTeX), as appropriate for different, individual Scopes."},"TEv2")," tools, but may also contain entries that are used by other tools, such as static site generators. The example above shows some entries that are used by (the static site generator) Docusaurus. In order to avoid confusion about which entries serve what purposes, it is advised to mark them as separate sections, as shown in the example.",(0,n.kt)("h2",{id:"header-fields"},"Header Fields"),(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tev2",hovertext:"Tev2: a set of specifications and tools that caters for the Curation of Terminologies, as well as for its subsequent use in publications of different types (e.g. websites, whitepapers) and formats (e.g. html, LaTeX), as appropriate for different, individual Scopes."},"TEv2")," requires a number of fields to exist, to ensure its correct functioning. However, for specific features of different tools, additional fields may be specified. Here is a list of the fields that are are available for genenic use across the tools:",(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"term")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"Text")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and hence also the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that describes it, which includes its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definition"),". Its value is typically the value of the ",(0,n.kt)("inlineCode",{parentName:"td"},"glossaryTerm")," field, where all characters are made lower-case, any text between parentheses is discarded, and any (sequences of) spaces (or other special characters) are replaced with a ",(0,n.kt)("inlineCode",{parentName:"td"},"-"),"character.",(0,n.kt)("br",null),"The ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-syntax/term-ref-syntax#term"},(0,n.kt)("inlineCode",{parentName:"a"},"term"),"-field")," of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," that refers to this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," must match this value.",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"termType")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-type",hovertext:"Term Type: a Text that Identifies a particular *kind* of Semantic Unit within a particular Scope. Examples include `concept`, `relation`, `pattern` (or `mental-model`)."},"Text")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the kind of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," describes. Typical values would be ",(0,n.kt)("inlineCode",{parentName:"td"},"concept"),", ",(0,n.kt)("inlineCode",{parentName:"td"},"relation"),", ",(0,n.kt)("inlineCode",{parentName:"td"},"pattern")," (or ",(0,n.kt)("inlineCode",{parentName:"td"},"mental-model"),"), ",(0,n.kt)("inlineCode",{parentName:"td"},"term")," (or ",(0,n.kt)("inlineCode",{parentName:"td"},"alias"),"), or ",(0,n.kt)("inlineCode",{parentName:"td"},"usecase"),".",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"isa")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"Term identifier")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," of which this is a specialization.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"bodyFile")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Path, relative to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),", that contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),". If not specified, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," in this file serves as the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"glossaryTerm")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Text that is used for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," in a human readable ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),". For example, for a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," called ",(0,n.kt)("inlineCode",{parentName:"td"},"member"),", you may want to specify a glossaryTerm ",(0,n.kt)("inlineCode",{parentName:"td"},"member (of a [community](@))"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"glossaryText")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Text that is used as the (raw) contents for the entry of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," in a human readable ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),". This text MUST be expected to contain ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"synonymOf")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"Term identifier")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the defined ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminological-artifact",hovertext:"Terminological Artifact: a basic building block of meaning or representation, i.e., a 'semantic unit' within the 'mind' of a Scope, such as a Concept, a Relation, or a Property."},"terminological artifact")," for which this is a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/synonym",hovertext:"Synonym: a Term that has the same (or similar) meaning as another Term."},"synonym"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"grouptags")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"List of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags"),", each of which signifies that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," documents, is part of the group of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that it represents.",(0,n.kt)("br",null),"Example: ",(0,n.kt)("inlineCode",{parentName:"td"},"[tev2, management]"),".",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("a",{parentName:"td",href:"https://www.debuggex.com/r/a51CXl1NzR3kwihT"},(0,n.kt)("inlineCode",{parentName:"a"},"(?:\\[\\s*([a-z0-9_-]+)\\s*(?:,\\s*([a-z0-9_-]+))*\\s*\\])?")),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"formPhrases")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"List of ",(0,n.kt)("a",{parentName:"td",href:"formphrase@"},"texts")," that are ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-tools/trrt#id"},"used to convert")," the ",(0,n.kt)("inlineCode",{parentName:"td"},"show text")," parts of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," into ",(0,n.kt)("inlineCode",{parentName:"td"},"term"),"s, for the purpose of accommodating plural forms (for nouns) or conjugate forms (for verbs). For details, see ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-syntax/form-phrase-syntax"},"'Syntax Specs - Form Phrases"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"status")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Text that identifies the status of the term. (",(0,n.kt)("a",{parentName:"td",href:"@"},"Communities")," of) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," may specify values for this field. An example is the ",(0,n.kt)("a",{parentName:"td",href:"https://github.com/trustoverip/concepts-and-terminology-wg/blob/master/docs/status-tags.md"},"status tags used by ToIP"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"created")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Date at which of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," was created, in the date format as used within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"updated")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Date at which of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," was last modified, in the date format as used within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"contributors")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Text that shows (or refers to) the people that have contributed to this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"attribution")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Text that credits the original creation of the texts in the document.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"originalLicense")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Reference to the license of the work from which the texts were derived.")))),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"Do we need to provide more guidance, e.g., regarding the front matter fields that may be used by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," for converting ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),", e.g. with popovers (for which it is known that the ",(0,n.kt)("inlineCode",{parentName:"p"},"hoverText")," field is used)?")),(0,n.kt)("div",{className:"footnotes"},(0,n.kt)("hr",{parentName:"div"}),(0,n.kt)("ol",{parentName:"div"},(0,n.kt)("li",{parentName:"ol",id:"fn-1"},"There are exceptions. In some contexts, documentation files may already exist that would properly describe a particular term. For ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tev2",hovertext:"Tev2: a set of specifications and tools that caters for the Curation of Terminologies, as well as for its subsequent use in publications of different types (e.g. websites, whitepapers) and formats (e.g. html, LaTeX), as appropriate for different, individual Scopes."},"TEv2"),", the documentation of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is an example: it specifies everything you might want to know about machine readable glossary files. If we could use that file to provide the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," for ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),", that would be very convenient. Since ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts")," consist of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"header")," and a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body"),", instead of stuffing them both in a single ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file"),", we have the possibility to have only the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"header")," in a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file"),", and leave the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," in the existing document.",(0,n.kt)("a",{parentName:"li",href:"#fnref-1",className:"footnote-backref"},"\u21a9")))))}l.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[2468],{3905:function(t,e,a){a.d(e,{Zo:function(){return d},kt:function(){return l}});var i=a(7294);function o(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function n(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,i)}return a}function r(t){for(var e=1;e=0||(o[a]=t[a]);return o}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(o[a]=t[a])}return o}var c=i.createContext({}),h=function(t){var e=i.useContext(c),a=e;return t&&(a="function"==typeof t?t(e):r(r({},e),t)),a},d=function(t){var e=h(t.components);return i.createElement(c.Provider,{value:e},t.children)},m={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},p=i.forwardRef((function(t,e){var a=t.components,o=t.mdxType,n=t.originalType,c=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),p=h(a),l=o,u=p["".concat(c,".").concat(l)]||p[l]||m[l]||n;return a?i.createElement(u,r(r({ref:e},d),{},{components:a})):i.createElement(u,r({ref:e},d))}));function l(t,e){var a=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var n=a.length,r=new Array(n);r[0]=p;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:o,r[1]=s;for(var h=2;hconcept or other semantic unit of a specific [community](@) or other [party](@), and is located within a scope that is owned by that [community](@)/[party](@).\nsynonymOf:\ngrouptags:\nformPhrases: curated-text{ss}, ctext{ss}\n# TEv2 Curation status\nstatus: proposed\ncreated: 2022-06-02\nupdated: 2023-08-14\n# Origins/Acknowledgements\ncontributors: RieksJ\nattribution: "[eSSIF-Lab](https://essif-lab.github.io/framework)"\noriginalLicense: "[CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1)"\n---\n\n# Curated Text\nA curated text starts with three dashes `---`.\nThis indicates the start of its (YAML) header.\nTypically, the header consists of a sequence of key-value pairs.\nThe header is terminated with onother three dashes and a new line.\n\nThe body of the curated text typically starts behind the header block,\nbut it can also be placed in another file within the `scopedir`.\nThe body is typically markdown, but other constructs may be inserted\nthat contribute to the rendering of these texts in a (static) website.\nAn example of this is [MDX](https://mdxjs.com/).\nA discussion on these other constructs is outside the scope of this document.\n')))),(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"Headers")," of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts")," are used by ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tev2",hovertext:"Tev2: a set of specifications and tools that caters for the Curation of Terminologies, as well as for its subsequent use in publications of different types (e.g. websites, whitepapers) and formats (e.g. html, LaTeX), as appropriate for different, individual Scopes."},"TEv2")," tools, but may also contain entries that are used by other tools, such as static site generators. The example above shows some entries that are used by (the static site generator) Docusaurus. In order to avoid confusion about which entries serve what purposes, it is advised to mark them as separate sections, as shown in the example.",(0,n.kt)("h2",{id:"header-fields"},"Header Fields"),(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tev2",hovertext:"Tev2: a set of specifications and tools that caters for the Curation of Terminologies, as well as for its subsequent use in publications of different types (e.g. websites, whitepapers) and formats (e.g. html, LaTeX), as appropriate for different, individual Scopes."},"TEv2")," requires a number of fields to exist, to ensure its correct functioning. However, for specific features of different tools, additional fields may be specified. Here is a list of the fields that are are available for genenic use across the tools:",(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"term")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"Text")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and hence also the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that describes it, which includes its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definition"),". Its value is typically the value of the ",(0,n.kt)("inlineCode",{parentName:"td"},"glossaryTerm")," field, where all characters are made lower-case, any text between parentheses is discarded, and any (sequences of) spaces (or other special characters) are replaced with a ",(0,n.kt)("inlineCode",{parentName:"td"},"-"),"character.",(0,n.kt)("br",null),"The ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-syntax/term-ref-syntax#term"},(0,n.kt)("inlineCode",{parentName:"a"},"term"),"-field")," of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," that refers to this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," must match this value.",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"termType")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-type",hovertext:"Term Type: a Text that Identifies a particular *kind* of Semantic Unit within a particular Scope. Examples include `concept`, `relation`, `pattern` (or `mental-model`)."},"Text")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the kind of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," describes. Typical values would be ",(0,n.kt)("inlineCode",{parentName:"td"},"concept"),", ",(0,n.kt)("inlineCode",{parentName:"td"},"relation"),", ",(0,n.kt)("inlineCode",{parentName:"td"},"pattern")," (or ",(0,n.kt)("inlineCode",{parentName:"td"},"mental-model"),"), ",(0,n.kt)("inlineCode",{parentName:"td"},"term")," (or ",(0,n.kt)("inlineCode",{parentName:"td"},"alias"),"), or ",(0,n.kt)("inlineCode",{parentName:"td"},"usecase"),".",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"isa")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"Term identifier")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," of which this is a specialization.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"bodyFile")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Path, relative to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),", that contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),". If not specified, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," in this file serves as the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"glossaryTerm")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Text that is used for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," in a human readable ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),". For example, for a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," called ",(0,n.kt)("inlineCode",{parentName:"td"},"member"),", you may want to specify a glossaryTerm ",(0,n.kt)("inlineCode",{parentName:"td"},"member (of a [community](@))"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"glossaryText")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Text that is used as the (raw) contents for the entry of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," in a human readable ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),". This text MUST be expected to contain ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"synonymOf")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"Term identifier")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the defined ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminological-artifact",hovertext:"Terminological Artifact: a basic building block of meaning or representation, i.e., a 'semantic unit' within the 'mind' of a Scope, such as a Concept, a Relation, or a Property."},"terminological artifact")," for which this is a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/synonym",hovertext:"Synonym: a Term that has the same (or similar) meaning as another Term."},"synonym"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"grouptags")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"List of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags"),", each of which signifies that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," documents, is part of the group of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that it represents.",(0,n.kt)("br",null),"Example: ",(0,n.kt)("inlineCode",{parentName:"td"},"[tev2, management]"),".",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("a",{parentName:"td",href:"https://www.debuggex.com/r/a51CXl1NzR3kwihT"},(0,n.kt)("inlineCode",{parentName:"a"},"(?:\\[\\s*([a-z0-9_-]+)\\s*(?:,\\s*([a-z0-9_-]+))*\\s*\\])?")),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"formPhrases")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"List of ",(0,n.kt)("a",{parentName:"td",href:"formphrase@"},"texts")," that are ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-tools/trrt#id"},"used to convert")," the ",(0,n.kt)("inlineCode",{parentName:"td"},"show text")," parts of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," into ",(0,n.kt)("inlineCode",{parentName:"td"},"term"),"s, for the purpose of accommodating plural forms (for nouns) or conjugate forms (for verbs). For details, see ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-syntax/form-phrase-syntax"},"'Syntax Specs - Form Phrases"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"status")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Text that identifies the status of the term. (",(0,n.kt)("a",{parentName:"td",href:"@"},"Communities")," of) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," may specify values for this field. An example is the ",(0,n.kt)("a",{parentName:"td",href:"https://github.com/trustoverip/concepts-and-terminology-wg/blob/master/docs/status-tags.md"},"status tags used by ToIP"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"created")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Date at which of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," was created, in the date format as used within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"updated")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Date at which of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," was last modified, in the date format as used within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"contributors")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Text that shows (or refers to) the people that have contributed to this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"attribution")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Text that credits the original creation of the texts in the document.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"originalLicense")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:null},"Reference to the license of the work from which the texts were derived.")))),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"Do we need to provide more guidance, e.g., regarding the front matter fields that may be used by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," for converting ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),", e.g. with popovers (for which it is known that the ",(0,n.kt)("inlineCode",{parentName:"p"},"hoverText")," field is used)?")),(0,n.kt)("div",{className:"footnotes"},(0,n.kt)("hr",{parentName:"div"}),(0,n.kt)("ol",{parentName:"div"},(0,n.kt)("li",{parentName:"ol",id:"fn-1"},"There are exceptions. In some contexts, documentation files may already exist that would properly describe a particular term. For ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tev2",hovertext:"Tev2: a set of specifications and tools that caters for the Curation of Terminologies, as well as for its subsequent use in publications of different types (e.g. websites, whitepapers) and formats (e.g. html, LaTeX), as appropriate for different, individual Scopes."},"TEv2"),", the documentation of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is an example: it specifies everything you might want to know about machine readable glossary files. If we could use that file to provide the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," for ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),", that would be very convenient. Since ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts")," consist of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"header")," and a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body"),", instead of stuffing them both in a single ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file"),", we have the possibility to have only the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/header",hovertext:"Header (of a Curated Text): the part at the beginning of that curated text, that starts with a line that (only) contains three subsequent '-'characters, and that ends with a second occurrance of such a line."},"header")," in a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file"),", and leave the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," in the existing document.",(0,n.kt)("a",{parentName:"li",href:"#fnref-1",className:"footnote-backref"},"\u21a9")))))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7567abf2.6b9f80d9.js b/assets/js/7567abf2.4cc77f7b.js similarity index 99% rename from assets/js/7567abf2.6b9f80d9.js rename to assets/js/7567abf2.4cc77f7b.js index 7586ed72df..9bcd8d2982 100644 --- a/assets/js/7567abf2.6b9f80d9.js +++ b/assets/js/7567abf2.4cc77f7b.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[8948],{3905:function(t,e,i){i.d(e,{Zo:function(){return m},kt:function(){return p}});var a=i(7294);function o(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function n(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function s(t){for(var e=1;e=0||(o[i]=t[i]);return o}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(o[i]=t[i])}return o}var c=a.createContext({}),h=function(t){var e=a.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):s(s({},e),t)),i},m=function(t){var e=h(t.components);return a.createElement(c.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},l=a.forwardRef((function(t,e){var i=t.components,o=t.mdxType,n=t.originalType,c=t.parentName,m=r(t,["components","mdxType","originalType","parentName"]),l=h(i),p=o,u=l["".concat(c,".").concat(p)]||l[p]||d[p]||n;return i?a.createElement(u,s(s({ref:e},m),{},{components:i})):a.createElement(u,s({ref:e},m))}));function p(t,e){var i=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var n=i.length,s=new Array(n);s[0]=l;var r={};for(var c in e)hasOwnProperty.call(e,c)&&(r[c]=e[c]);r.originalType=t,r.mdxType="string"==typeof t?t:o,s[1]=r;for(var h=2;h=0||(o[i]=t[i]);return o}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(o[i]=t[i])}return o}var c=a.createContext({}),h=function(t){var e=a.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):s(s({},e),t)),i},m=function(t){var e=h(t.components);return a.createElement(c.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},l=a.forwardRef((function(t,e){var i=t.components,o=t.mdxType,n=t.originalType,c=t.parentName,m=r(t,["components","mdxType","originalType","parentName"]),l=h(i),p=o,u=l["".concat(c,".").concat(p)]||l[p]||d[p]||n;return i?a.createElement(u,s(s({ref:e},m),{},{components:i})):a.createElement(u,s({ref:e},m))}));function p(t,e){var i=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var n=i.length,s=new Array(n);s[0]=l;var r={};for(var c in e)hasOwnProperty.call(e,c)&&(r[c]=e[c]);r.originalType=t,r.mdxType="string"==typeof t?t:o,s[1]=r;for(var h=2;h=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),u=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=u(n),p=o,h=d["".concat(c,".").concat(p)]||d[p]||m[p]||i;return n?r.createElement(h,a(a({ref:t},l),{},{components:n})):r.createElement(h,a({ref:t},l))}));function p(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var u=2;u=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),u=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=u(n),p=o,h=d["".concat(c,".").concat(p)]||d[p]||m[p]||i;return n?r.createElement(h,a(a({ref:t},l),{},{components:n})):r.createElement(h,a({ref:t},l))}));function p(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var u=2;u=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),h=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=h(e.components);return a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=r(e,["components","mdxType","originalType","parentName"]),m=h(n),d=i,u=m["".concat(l,".").concat(d)]||m[d]||p[d]||o;return n?a.createElement(u,s(s({ref:t},c),{},{components:n})):a.createElement(u,s({ref:t},c))}));function d(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,s=new Array(o);s[0]=m;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r.mdxType="string"==typeof e?e:i,s[1]=r;for(var h=2;h ")," (Person owns House) suggests the phrase that describes the intension(al definition) of that relation. The (operational) extension of a relation embraces all pairs (SRC,TGT) for which the relation holds. In the example, it consists of all pairs (P,H), where P is a Person and H is a House, such that the phrase 'P owns H' is true."),(0,o.kt)("p",null,"A ",(0,o.kt)("strong",{parentName:"p"},"green name")," at either ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/association.html#association-end"},"end of a relation/association")," is what UML calls 'role'; this name may be used to refer to (an instance of) the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/concept",hovertext:"Concept: a Semantic Unit that captures the ideas/thoughts behind a classification of Entities (what makes Entities in that class 'the same')."},"concept")," at which the name is placed as it performs its/this role in this relation. In the figure, ",(0,o.kt)("inlineCode",{parentName:"p"},"owner")," is the role that a Person fulfills in the relation 'owns'. If we assert that a Person (P) is the owner of a specific House (H), or that House H is owned by Person P, this means that (P,H) is an element of the extension of the relation 'owns'."),(0,o.kt)("p",null,"A ",(0,o.kt)("strong",{parentName:"p"},"solid line with an open arrowhead"),", represents a ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/generalization.html"},"generalization relation"),". It can be read as ",(0,o.kt)("inlineCode",{parentName:"p"}," is a "),", and is therefore also referred to as an ISA-relation. The SRC of the relation is the specialization (subclass) of the TGT (which in turn is a generalization of SRC). This means that SRC satisfies all constraints that TGT satisfies, and also that SRC has all attributes (properties, characteristics) that TGT has. The figure shows 'Self Employed Retailer is a Person' as an example."),(0,o.kt)("p",null,"A ",(0,o.kt)("strong",{parentName:"p"},"line with a solid diamond")," at one end represents a ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/composition.html"},"composition")," relation. The element at the 'diamond-end' is called the 'parent', or the 'whole'. The other element is called the 'child' or the 'part'. A 'part' in a composition relation cannot be part of more than one 'whole'. Normally, if a 'whole' in a composition relation ceases to exist, then so do all of its composite parts. In the figure, at least one Bedroom and precisely one Living Room are parts of a (every) House. Obviously, if a House ceases to exist, then so do these rooms."),(0,o.kt)("p",null,"A ",(0,o.kt)("strong",{parentName:"p"},"line with a hollow diamond")," at one end represents an ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/aggregation.html"},"aggregation")," relation. The element at the 'diamond-end' is called the 'parent', or the 'whole'. The other element is called the 'child' or the 'part'. A 'part' can be a part in multiple aggregation relations, and hence be part of multiple 'wholes'. If a 'whole' in an aggregation relation ceases to exist, the parts typically continue their existence. In the figure, 'Documentation' (about a Building Type) is an aggregation of a 'User Manual' and at least one 'Technical Document'. Obviously, if the Documentation ceases to exist, then the 'User Manual' and 'Technical Documents' typically continue to exist."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"A ",(0,o.kt)("strong",{parentName:"p"},"dashed line")," with a pointed arrow (",(0,o.kt)("inlineCode",{parentName:"p"},">"),") represents a ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/dependency.html"},"dependency"),", where the SRC concept somehow depends on the TGT concept. The kind of dependency is specified by a ",(0,o.kt)("inlineCode",{parentName:"p"},"<>"),". In the figure, we see a dependency relation relation ",(0,o.kt)("inlineCode",{parentName:"p"},"<>"),", indicating that 'House' is a specific instance of 'Building Type'.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"A ",(0,o.kt)("strong",{parentName:"p"},"[n..m]")," structure represents a ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/multiplicity.html"},"multiplicity"),". When it appears"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"at the TGT end of a relation"),", it means that for every SRC element there must be at least ",(0,o.kt)("em",{parentName:"li"},"n")," and at most ",(0,o.kt)("em",{parentName:"li"},"m")," TGT elements in the relation. For example, the ","[0..n]"," multiplicity in the 'owns' relation in the figure means that for every 'Person' element, there must be at least 0 and at most ",(0,o.kt)("em",{parentName:"li"},"n")," (i.e. any number) 'House' elements. Effectively, this says that every Person can own any number of Houses."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"at the SRC end of a relation"),", it means that for every TGT element there must be at least ",(0,o.kt)("em",{parentName:"li"},"n")," and at most ",(0,o.kt)("em",{parentName:"li"},"m")," SRC elements in the relation. For example, the ","[0..1]"," multiplicity in the 'owns' relation in the figure means that for every 'House' element, there must be at least 0 and at most 1 'Person' elements. Effectively, this means that every House can be owned by at most 1 Person."),(0,o.kt)("li",{parentName:"ul"},"is typically of any of the following forms (although there may be others, e.g. ","[1..2]","):\n","[0..1]",": at most one;\n","[1..1]",": precisely one;\n","[0..n]",": any number - as this is not a constraint, this is the default multiplicity and may be omitted;\n","[1..n]",": at least one.\nNote that the term ",(0,o.kt)("em",{parentName:"li"},"multiplicity")," is distinct from ",(0,o.kt)("em",{parentName:"li"},"cardinality"),", the difference being that a cardinality states the ",(0,o.kt)("em",{parentName:"li"},"actual")," number of SRC/TGT elements that a specific TGT/SRC element has in a relation, whereas a multiplicity states the ",(0,o.kt)("em",{parentName:"li"},"possible")," number of such elements. In short, the multiplicity is the set of all possible cardinalities in a relation. We note this becaus it is common practice for people to use the term 'cardinality' where 'multiplicity' is intended."))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"a ",(0,o.kt)("strong",{parentName:"p"},"named and coloured area"),", e.g. the green area named ",(0,o.kt)("inlineCode",{parentName:"p"},"House Ownership")," is the aggregate (Parent/Whole) of all concepts (rectangular elements) therein, which are its children/parts. This aggregate can be linked/associated with any other concept, including its children/parts."))),(0,o.kt)("h3",{id:"notational-exceptions"},"Notational Exceptions"),(0,o.kt)("p",null,"The following notational conventions are not used by ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/"},"UML"),", but are specific to our use."),(0,o.kt)("p",null,"We use a ",(0,o.kt)("strong",{parentName:"p"},"coloring convention")," to distinguish between what is 'officially' part of the eSSIF-Lab models, and parts that are not."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"blue")," is used to color the lines and other symbols that are part of the 'official' models. Typically, they are explicitly defined or otherwise explained, e.g. in a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mental-model",hovertext:"Mental Model: A Semantic Unit that relates a set of Concepts (ideas), Relations between them, and constraints about a certain topic, into a coherent and consistent whole (sometimes called 'viewpoint', or 'way of thinking')."},"mental model"),". Their definitions/meanings may differ from 'common knowledge'."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"red")," is used to color the lines and other symbols that are part of our 'common knowledge', and hence need not be explicitly defined. They appear to explain where eSSIF-Lab models link to these commonly known/used concepts. We think of them as necessary in order to bridge possible gaps between 'common understanding' and the eSSIF-Lab ways of thinking. Whenever a 'red concept' is nevertheless defined, this is for the purpose of conveying what we conceive the 'common knowledge' to be.")),(0,o.kt)("p",null,"We use a ",(0,o.kt)("strong",{parentName:"p"},"line typing convention")," within a diagram, as follows:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"solid lines")," are used for lines and other symbols that are part of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mental-model",hovertext:"Mental Model: A Semantic Unit that relates a set of Concepts (ideas), Relations between them, and constraints about a certain topic, into a coherent and consistent whole (sometimes called 'viewpoint', or 'way of thinking')."},"mental model")," that is represented by the diagram;"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"dashed lines")," are used for lines and other symbols that are (authoritatively) defined elsewhere.\nFor example, the concept ",(0,o.kt)("a",{parentName:"li",href:"@"},"party")," is authoritatively defined in the ",(0,o.kt)("a",{parentName:"li",href:"pattern-party-actor-action@essif-lab"},"party, actor and action pattern"),", so the diagram there shows a solid (blue) line for that concept. It also appears in other diagrams, e.g. in the ",(0,o.kt)("a",{parentName:"li",href:"pattern-jurisdiction@essif-lab"},"jurisdiction pattern"),", where the concept is represented with a (blue) dashed line.")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[1789],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return d}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),h=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=h(e.components);return a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=r(e,["components","mdxType","originalType","parentName"]),m=h(n),d=i,u=m["".concat(l,".").concat(d)]||m[d]||p[d]||o;return n?a.createElement(u,s(s({ref:t},c),{},{components:n})):a.createElement(u,s({ref:t},c))}));function d(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,s=new Array(o);s[0]=m;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r.mdxType="string"==typeof e?e:i,s[1]=r;for(var h=2;h ")," (Person owns House) suggests the phrase that describes the intension(al definition) of that relation. The (operational) extension of a relation embraces all pairs (SRC,TGT) for which the relation holds. In the example, it consists of all pairs (P,H), where P is a Person and H is a House, such that the phrase 'P owns H' is true."),(0,o.kt)("p",null,"A ",(0,o.kt)("strong",{parentName:"p"},"green name")," at either ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/association.html#association-end"},"end of a relation/association")," is what UML calls 'role'; this name may be used to refer to (an instance of) the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/concept",hovertext:"Concept: a Semantic Unit that captures the ideas/thoughts behind a classification of Entities (what makes Entities in that class 'the same')."},"concept")," at which the name is placed as it performs its/this role in this relation. In the figure, ",(0,o.kt)("inlineCode",{parentName:"p"},"owner")," is the role that a Person fulfills in the relation 'owns'. If we assert that a Person (P) is the owner of a specific House (H), or that House H is owned by Person P, this means that (P,H) is an element of the extension of the relation 'owns'."),(0,o.kt)("p",null,"A ",(0,o.kt)("strong",{parentName:"p"},"solid line with an open arrowhead"),", represents a ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/generalization.html"},"generalization relation"),". It can be read as ",(0,o.kt)("inlineCode",{parentName:"p"}," is a "),", and is therefore also referred to as an ISA-relation. The SRC of the relation is the specialization (subclass) of the TGT (which in turn is a generalization of SRC). This means that SRC satisfies all constraints that TGT satisfies, and also that SRC has all attributes (properties, characteristics) that TGT has. The figure shows 'Self Employed Retailer is a Person' as an example."),(0,o.kt)("p",null,"A ",(0,o.kt)("strong",{parentName:"p"},"line with a solid diamond")," at one end represents a ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/composition.html"},"composition")," relation. The element at the 'diamond-end' is called the 'parent', or the 'whole'. The other element is called the 'child' or the 'part'. A 'part' in a composition relation cannot be part of more than one 'whole'. Normally, if a 'whole' in a composition relation ceases to exist, then so do all of its composite parts. In the figure, at least one Bedroom and precisely one Living Room are parts of a (every) House. Obviously, if a House ceases to exist, then so do these rooms."),(0,o.kt)("p",null,"A ",(0,o.kt)("strong",{parentName:"p"},"line with a hollow diamond")," at one end represents an ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/aggregation.html"},"aggregation")," relation. The element at the 'diamond-end' is called the 'parent', or the 'whole'. The other element is called the 'child' or the 'part'. A 'part' can be a part in multiple aggregation relations, and hence be part of multiple 'wholes'. If a 'whole' in an aggregation relation ceases to exist, the parts typically continue their existence. In the figure, 'Documentation' (about a Building Type) is an aggregation of a 'User Manual' and at least one 'Technical Document'. Obviously, if the Documentation ceases to exist, then the 'User Manual' and 'Technical Documents' typically continue to exist."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"A ",(0,o.kt)("strong",{parentName:"p"},"dashed line")," with a pointed arrow (",(0,o.kt)("inlineCode",{parentName:"p"},">"),") represents a ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/dependency.html"},"dependency"),", where the SRC concept somehow depends on the TGT concept. The kind of dependency is specified by a ",(0,o.kt)("inlineCode",{parentName:"p"},"<>"),". In the figure, we see a dependency relation relation ",(0,o.kt)("inlineCode",{parentName:"p"},"<>"),", indicating that 'House' is a specific instance of 'Building Type'.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"A ",(0,o.kt)("strong",{parentName:"p"},"[n..m]")," structure represents a ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/multiplicity.html"},"multiplicity"),". When it appears"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"at the TGT end of a relation"),", it means that for every SRC element there must be at least ",(0,o.kt)("em",{parentName:"li"},"n")," and at most ",(0,o.kt)("em",{parentName:"li"},"m")," TGT elements in the relation. For example, the ","[0..n]"," multiplicity in the 'owns' relation in the figure means that for every 'Person' element, there must be at least 0 and at most ",(0,o.kt)("em",{parentName:"li"},"n")," (i.e. any number) 'House' elements. Effectively, this says that every Person can own any number of Houses."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"at the SRC end of a relation"),", it means that for every TGT element there must be at least ",(0,o.kt)("em",{parentName:"li"},"n")," and at most ",(0,o.kt)("em",{parentName:"li"},"m")," SRC elements in the relation. For example, the ","[0..1]"," multiplicity in the 'owns' relation in the figure means that for every 'House' element, there must be at least 0 and at most 1 'Person' elements. Effectively, this means that every House can be owned by at most 1 Person."),(0,o.kt)("li",{parentName:"ul"},"is typically of any of the following forms (although there may be others, e.g. ","[1..2]","):\n","[0..1]",": at most one;\n","[1..1]",": precisely one;\n","[0..n]",": any number - as this is not a constraint, this is the default multiplicity and may be omitted;\n","[1..n]",": at least one.\nNote that the term ",(0,o.kt)("em",{parentName:"li"},"multiplicity")," is distinct from ",(0,o.kt)("em",{parentName:"li"},"cardinality"),", the difference being that a cardinality states the ",(0,o.kt)("em",{parentName:"li"},"actual")," number of SRC/TGT elements that a specific TGT/SRC element has in a relation, whereas a multiplicity states the ",(0,o.kt)("em",{parentName:"li"},"possible")," number of such elements. In short, the multiplicity is the set of all possible cardinalities in a relation. We note this becaus it is common practice for people to use the term 'cardinality' where 'multiplicity' is intended."))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"a ",(0,o.kt)("strong",{parentName:"p"},"named and coloured area"),", e.g. the green area named ",(0,o.kt)("inlineCode",{parentName:"p"},"House Ownership")," is the aggregate (Parent/Whole) of all concepts (rectangular elements) therein, which are its children/parts. This aggregate can be linked/associated with any other concept, including its children/parts."))),(0,o.kt)("h3",{id:"notational-exceptions"},"Notational Exceptions"),(0,o.kt)("p",null,"The following notational conventions are not used by ",(0,o.kt)("a",{parentName:"p",href:"https://www.uml-diagrams.org/"},"UML"),", but are specific to our use."),(0,o.kt)("p",null,"We use a ",(0,o.kt)("strong",{parentName:"p"},"coloring convention")," to distinguish between what is 'officially' part of the eSSIF-Lab models, and parts that are not."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"blue")," is used to color the lines and other symbols that are part of the 'official' models. Typically, they are explicitly defined or otherwise explained, e.g. in a ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mental-model",hovertext:"Mental Model: A Semantic Unit that relates a set of Concepts (ideas), Relations between them, and constraints about a certain topic, into a coherent and consistent whole (sometimes called 'viewpoint', or 'way of thinking')."},"mental model"),". Their definitions/meanings may differ from 'common knowledge'."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"red")," is used to color the lines and other symbols that are part of our 'common knowledge', and hence need not be explicitly defined. They appear to explain where eSSIF-Lab models link to these commonly known/used concepts. We think of them as necessary in order to bridge possible gaps between 'common understanding' and the eSSIF-Lab ways of thinking. Whenever a 'red concept' is nevertheless defined, this is for the purpose of conveying what we conceive the 'common knowledge' to be.")),(0,o.kt)("p",null,"We use a ",(0,o.kt)("strong",{parentName:"p"},"line typing convention")," within a diagram, as follows:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"solid lines")," are used for lines and other symbols that are part of the ",(0,o.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mental-model",hovertext:"Mental Model: A Semantic Unit that relates a set of Concepts (ideas), Relations between them, and constraints about a certain topic, into a coherent and consistent whole (sometimes called 'viewpoint', or 'way of thinking')."},"mental model")," that is represented by the diagram;"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"dashed lines")," are used for lines and other symbols that are (authoritatively) defined elsewhere.\nFor example, the concept ",(0,o.kt)("a",{parentName:"li",href:"@"},"party")," is authoritatively defined in the ",(0,o.kt)("a",{parentName:"li",href:"pattern-party-actor-action@essif-lab"},"party, actor and action pattern"),", so the diagram there shows a solid (blue) line for that concept. It also appears in other diagrams, e.g. in the ",(0,o.kt)("a",{parentName:"li",href:"pattern-jurisdiction@essif-lab"},"jurisdiction pattern"),", where the concept is represented with a (blue) dashed line.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/79495b8c.89f3324f.js b/assets/js/79495b8c.bd9623bc.js similarity index 99% rename from assets/js/79495b8c.89f3324f.js rename to assets/js/79495b8c.bd9623bc.js index 849044730a..db67b7bf66 100644 --- a/assets/js/79495b8c.89f3324f.js +++ b/assets/js/79495b8c.bd9623bc.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[6122],{3905:function(e,t,n){n.d(t,{Zo:function(){return h},kt:function(){return d}});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=o.createContext({}),m=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},h=function(e){var t=m(e.components);return o.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},l=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),l=m(n),d=i,p=l["".concat(c,".").concat(d)]||l[d]||u[d]||r;return n?o.createElement(p,a(a({ref:t},h),{},{components:n})):o.createElement(p,a({ref:t},h))}));function d(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,a=new Array(r);a[0]=l;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:i,a[1]=s;for(var m=2;m=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=o.createContext({}),m=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},h=function(e){var t=m(e.components);return o.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},l=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),l=m(n),d=i,p=l["".concat(c,".").concat(d)]||l[d]||u[d]||r;return n?o.createElement(p,a(a({ref:t},h),{},{components:n})):o.createElement(p,a({ref:t},h))}));function d(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,a=new Array(r);a[0]=l;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:i,a[1]=s;for(var m=2;m=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),f=l(r),m=o,d=f["".concat(s,".").concat(m)]||f[m]||u[m]||i;return r?n.createElement(d,a(a({ref:t},p),{},{components:r})):n.createElement(d,a({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var l=2;l=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),f=l(r),m=o,d=f["".concat(s,".").concat(m)]||f[m]||u[m]||i;return r?n.createElement(d,a(a({ref:t},p),{},{components:r})):n.createElement(d,a({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var l=2;l=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}var h=a.createContext({}),c=function(e){var t=a.useContext(h),i=t;return e&&(i="function"==typeof e?e(t):r(r({},t),e)),i},l=function(e){var t=c(e.components);return a.createElement(h.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var i=e.components,o=e.mdxType,n=e.originalType,h=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=c(i),f=o,m=p["".concat(h,".").concat(f)]||p[f]||d[f]||n;return i?a.createElement(m,r(r({ref:t},l),{},{components:i})):a.createElement(m,r({ref:t},l))}));function f(e,t){var i=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=i.length,r=new Array(n);r[0]=p;var s={};for(var h in t)hasOwnProperty.call(t,h)&&(s[h]=t[h]);s.originalType=e,s.mdxType="string"==typeof e?e:o,r[1]=s;for(var c=2;c child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:i.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function p(e){var t=e.values,i=e.children;return(0,o.useMemo)((function(){var e=null!=t?t:d(i);return function(e){var t=(0,c.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,i])}function f(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function m(e){var t=e.queryString,i=void 0!==t&&t,a=e.groupId,n=(0,s.k6)(),r=function(e){var t=e.queryString,i=void 0!==t&&t,a=e.groupId;if("string"==typeof i)return i;if(!1===i)return null;if(!0===i&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=a?a:null}({queryString:i,groupId:a});return[(0,h._X)(r),(0,o.useCallback)((function(e){if(r){var t=new URLSearchParams(n.location.search);t.set(r,e),n.replace(Object.assign({},n.location,{search:t.toString()}))}}),[r,n])]}function u(e){var t,i,a,n,r=e.defaultValue,s=e.queryString,h=void 0!==s&&s,c=e.groupId,d=p(e),u=(0,o.useState)((function(){return function(e){var t,i=e.defaultValue,a=e.tabValues;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(i){if(!f({value:i,tabValues:a}))throw new Error('Docusaurus error: The has a defaultValue "'+i+'" but none of its children has the corresponding value. Available values are: '+a.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return i}var o=null!=(t=a.find((function(e){return e.default})))?t:a[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:r,tabValues:d})})),g=u[0],y=u[1],v=m({queryString:h,groupId:c}),b=v[0],k=v[1],w=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:c}.groupId),i=(0,l.Nk)(t),a=i[0],n=i[1],[a,(0,o.useCallback)((function(e){t&&n.set(e)}),[t,n])]),T=w[0],x=w[1],R=function(){var e=null!=b?b:T;return f({value:e,tabValues:d})?e:null}();return(0,o.useLayoutEffect)((function(){R&&y(R)}),[R]),{selectedValue:g,selectValue:(0,o.useCallback)((function(e){if(!f({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);y(e),k(e),x(e)}),[k,x,d]),tabValues:d}}var g=i(2389),y="tabList__CuJ",v="tabItem_LNqP";function b(e){var t=e.className,i=e.block,s=e.selectedValue,h=e.selectValue,c=e.tabValues,l=[],d=(0,r.o5)().blockElementScrollPositionUntilNextRender,p=function(e){var t=e.currentTarget,i=l.indexOf(t),a=c[i].value;a!==s&&(d(t),h(a))},f=function(e){var t,i=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":var a,o=l.indexOf(e.currentTarget)+1;i=null!=(a=l[o])?a:l[0];break;case"ArrowLeft":var n,r=l.indexOf(e.currentTarget)-1;i=null!=(n=l[r])?n:l[l.length-1]}null==(t=i)||t.focus()};return o.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":i},t)},c.map((function(e){var t=e.value,i=e.label,r=e.attributes;return o.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:function(e){return l.push(e)},onKeyDown:f,onClick:p},r,{className:(0,n.Z)("tabs__item",v,null==r?void 0:r.className,{"tabs__item--active":s===t})}),null!=i?i:t)})))}function k(e){var t=e.lazy,i=e.children,a=e.selectedValue,n=(Array.isArray(i)?i:[i]).filter(Boolean);if(t){var r=n.find((function(e){return e.props.value===a}));return r?(0,o.cloneElement)(r,{className:"margin-top--md"}):null}return o.createElement("div",{className:"margin-top--md"},n.map((function(e,t){return(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==a})})))}function w(e){var t=u(e);return o.createElement("div",{className:(0,n.Z)("tabs-container",y)},o.createElement(b,(0,a.Z)({},e,t)),o.createElement(k,(0,a.Z)({},e,t)))}function T(e){var t=(0,g.Z)();return o.createElement(w,(0,a.Z)({key:String(t)},e))}},9257:function(e,t,i){i.r(t),i.d(t,{assets:function(){return f},contentTitle:function(){return d},default:function(){return y},frontMatter:function(){return l},mark:function(){return u},metadata:function(){return p},toc:function(){return m}});var a=i(7462),o=i(3366),n=(i(7294),i(3905)),r=i(4996),s=i(4866),h=i(5162),c=["components"],l={id:"trrt",sidebar_label:"Term Ref Resolution",date:20220421},d="Term Reference Resolution Tool",p={unversionedId:"spec-tools/trrt",id:"spec-tools/trrt",title:"Term Reference Resolution Tool",description:"text to mark",source:"@site/docs/spec-tools/13-trrt.md",sourceDirName:"spec-tools",slug:"/spec-tools/trrt",permalink:"/tev2-specifications/docs/spec-tools/trrt",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-tools/13-trrt.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695712473,formattedLastUpdatedAt:"Sep 26, 2023",sidebarPosition:13,frontMatter:{id:"trrt",sidebar_label:"Term Ref Resolution",date:20220421},sidebar:"tev2SideBar",previous:{title:"MRG Importer",permalink:"/tev2-specifications/docs/spec-tools/mrg-importer"},next:{title:"Terminology Construction",permalink:"/tev2-specifications/docs/spec-tools/terminology-construction"}},f={},m=[{value:"Installing the Tool",id:"installing-the-tool",level:2},{value:"Calling the Tool",id:"calling-the-tool",level:2},{value:"Term Ref Resolution",id:"term-ref-resolution",level:2},{value:"Interpretation of the Term Ref",id:"interpretation-of-the-term-ref",level:3},{value:"showtext (required)",id:"showtext",level:4},{value:"scopetag (optional)",id:"scopetag",level:4},{value:"vsntag (optional)",id:"vsntag",level:4},{value:"term (optional)",id:"id",level:4},{value:"trait (optional)",id:"trait",level:4},{value:"Locating the identified MRG Entry",id:"locating-the-identified-mrg-entry",level:3},{value:"Rewriting the Term Ref with a Renderable Ref",id:"rewriting-the-term-ref-with-a-renderable-ref",level:3},{value:"Processing, Errors and Warnings",id:"processing-errors-and-warnings",level:2},{value:"Deploying the Tool",id:"deploying-the-tool",level:2}],u=function(e){var t=e.children;return(0,n.kt)("span",{style:{color:"black",backgroundColor:"yellow",padding:"0.2rem",borderRadius:"2px"}},t)},g={toc:m,mark:u};function y(e){var t=e.components,i=(0,o.Z)(e,c);return(0,n.kt)("wrapper",(0,a.Z)({},g,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"term-reference-resolution-tool"},"Term Reference Resolution Tool"),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"Term ref resolution is the same process as we use for ingestion, and other conversions, as (will be) explained in the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/profile-templates"},"profiles template section"),". When that 'conversion pattern' is stable and properly documented, we need to revise this section to align with those descriptions.")),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Term Ref(erence) Resolution Tool (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT"),")")," takes files that contain so-called ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," and outputs a copy of these files in which these ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," are converted into so-called ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable refs"),", i.e. texts that can be further processed by tools such as GitHub pages, Docusaurus, etc. The result of this is that the rendered document contains markups that help ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/reader",hovertext:"Reader: a person that reads a text that is authored by another person (its Author]), and that tries to understand the meaning of this text in the way its Author intended."},"readers")," to quickly find more explanations of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/concept",hovertext:"Concept: a Semantic Unit that captures the ideas/thoughts behind a classification of Entities (what makes Entities in that class 'the same')."},"concept")," or other ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that is being referenced."),(0,n.kt)("p",null,"There is currently one implementation of the tool:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"the repo is ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/tno-terminology-design/trrt"},"here"),"."),(0,n.kt)("li",{parentName:"ul"},"the documentation is ",(0,n.kt)("a",{parentName:"li",href:"https://tno-terminology-design.github.io/trrt"},"here"),".")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Examples"),(0,n.kt)("p",null,"Consider the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," ",(0,n.kt)("inlineCode",{parentName:"p"},"[the purpose of actors](actor#purpose@essif-lab)"),". Here are a number of ways that it can be converted into:"),(0,n.kt)(s.Z,{defaultValue:"markdown",values:[{label:"Markdown",value:"markdown"},{label:"HTML",value:"html"},{label:"eSSIF-Lab Style",value:"essiflab-style"}],mdxType:"Tabs"},(0,n.kt)(h.Z,{value:"markdown",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-markdown"}," [the purpose of actors](/framework/docs/terms/actor#purpose)\n")),(0,n.kt)("p",null,"which is text that a markdown interpreter will render into a text ",(0,n.kt)("inlineCode",{parentName:"p"},"the purpose of actors")," that hyperlinks to the (relative) path ",(0,n.kt)("inlineCode",{parentName:"p"},"/framework/docs/terms/actor#purpose"),".")),(0,n.kt)(h.Z,{value:"html",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-html"},' \n the purpose of actors\n ,\n')),(0,n.kt)("p",null,"which is code that will render the text ",(0,n.kt)("inlineCode",{parentName:"p"},"the purpose of actors")," as a (boldface) hyperlink, that, when clicked, will navigate to the ",(0,n.kt)("inlineCode",{parentName:"p"},"purpose")," section of the page that documents (the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," called ",(0,n.kt)("inlineCode",{parentName:"p"},"actor"),".")),(0,n.kt)(h.Z,{value:"essiflab-style",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-html"},' the purpose of actors\n \n')),(0,n.kt)("p",null,"Note that this text is not readily renderable in a browser. ",(0,n.kt)("inlineCode",{parentName:"p"},"")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"")," represent a React component that supports linking and tooltip functionality, so that users hovering over the link will see a popup/tooltip with the text ",(0,n.kt)("inlineCode",{parentName:"p"},""),". This functionality is expected to be provided by an appropriate plugin in the static website generator.")))),(0,n.kt)("p",null,"Conceptually, ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," conversion is a simple two-step process:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is interpreted, the result of which is a set of variables (or if regexes are used: ",(0,n.kt)("a",{parentName:"li",href:"https://riptutorial.com/regex/example/2479/named-capture-groups"},"named capturing groups"),") whose contents ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," from a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"."),(0,n.kt)("li",{parentName:"ol"},"Then, using the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),", the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is replaced by a converter with a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable ref"),", of the kind as specified by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT's")," command line arguments or configuration file. Through the use of converters, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable ref")," may include all sorts of code that is processed further by other, third party rendering tools.")),(0,n.kt)("p",null,"By cleanly separating ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," interpretation from the part where it is overwritten with a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable ref"),", it becomes easy to extend the capabilities of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," to include ways for rendering ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),", e.g. for LaTeX, PDF, docx, odt and other formats, as well as for formats that we currently do not even know we would like to have."),(0,n.kt)("p",null,"In order to convert ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," into ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable refs"),", ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," expects the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," and the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from within which it is being called, to be available. The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is used to resolve all links to ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that are part of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," is used to locate the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," of any (other) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," whose ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," is used as part of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," that needs to be resolved."),(0,n.kt)("h2",{id:"installing-the-tool"},"Installing the Tool"),(0,n.kt)("p",null,"The tool can be installed from the command line and made globally available by executing"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"npm install tno-terminology-design/trrt -g\n")),(0,n.kt)("h2",{id:"calling-the-tool"},"Calling the Tool"),(0,n.kt)("p",null,"The behavior of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," can be configured per call e.g. by a configuration file and/or command-line parameters. The command-line syntax is as follows:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"trrt [ ] [ ]\n")),(0,n.kt)("p",null,"where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," (optional) is a list of key-value pairs"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},(0,n.kt)("inlineCode",{parentName:"a"},"globpattern"))," (optional) specifies a set of (input) files that are to be processed. If a configuration file is used, its contents may specify an additional set of input files to be processed.")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("p",null,"The columns in the following table are defined as follows:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Key"))," is the text to be used as a key."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Value"))," represents the kind of value to be used."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),") the field is required to be present when the tool is being called. If required, it MUST either be present in the configuration file, or as a command-line parameter."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the ",(0,n.kt)("inlineCode",{parentName:"li"},"Value")," field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Key"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Value"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"config")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path (including the filename) of the tool's (YAML) configuration file. This file contains the default key-value pairs to be used. Allowed keys (and the associated values) are documented in this table. Command-line arguments override key-value pairs specified in the configuration file. This parameter MUST NOT appear in the configuration file itself.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"input")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{parentName:"td",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},"Globpattern")," that specifies the set of (input) files that are to be processed.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"output")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"(Root) directory where output files are to be written. This directory is specified as an absolute or relative path.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," from which the tool is called. It MUST contain the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," for that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which we will refer to as the 'current scope' for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"version")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that is to be used to resolve ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," for which neither a ",(0,n.kt)("inlineCode",{parentName:"td"},"scope")," nor a ",(0,n.kt)("inlineCode",{parentName:"td"},"version")," part has been specified (which is the most common case). It MUST match either the ",(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")," field, or an element of the ",(0,n.kt)("inlineCode",{parentName:"td"},"altvsntags")," field as specified in the ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-files/saf#versions"},(0,n.kt)("inlineCode",{parentName:"a"},"versions")," section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". When not specified, its value is taken from the ",(0,n.kt)("inlineCode",{parentName:"td"},"defaultvsn")," field in the ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-files/mrg#mrg-terminology"},"terminology section")," of the default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," (which is ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified")," by the contents of the ",(0,n.kt)("inlineCode",{parentName:"td"},"mrgfile")," field (in the ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-files/saf#terminology"},(0,n.kt)("inlineCode",{parentName:"a"},"scope")," section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),").")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"interpreter")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Allows for the switching between interpreter types. By default the ",(0,n.kt)("inlineCode",{parentName:"td"},"AltInterpreter")," and ",(0,n.kt)("inlineCode",{parentName:"td"},"StandardInterpreter")," are available. When this parameter is omitted, the basic ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," syntax is used.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"converter")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"The type of converter which creates the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable refs"),". When this parameter is omitted, the Markdown converter is used.")))),(0,n.kt)("h2",{id:"term-ref-resolution"},"Term Ref Resolution"),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," resolution process has three steps:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Interpretation of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," into variables that can be used to ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),";"),(0,n.kt)("li",{parentName:"ol"},"Locating the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG Entry"),";"),(0,n.kt)("li",{parentName:"ol"},"Rewriting the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," with a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable ref"),".")),(0,n.kt)("h3",{id:"interpretation-of-the-term-ref"},"Interpretation of the Term Ref"),(0,n.kt)("p",null,"The following kinds of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," syntaxes are (to be) supported:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"the ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-syntax/term-ref-syntax#basic-syntax"},"basic syntax"),", i.e. ","[",(0,n.kt)("inlineCode",{parentName:"li"},"show text"),"]","(",(0,n.kt)("inlineCode",{parentName:"li"},"term"),"#",(0,n.kt)("inlineCode",{parentName:"li"},"trait"),"@",(0,n.kt)("inlineCode",{parentName:"li"},"scopetag"),":",(0,n.kt)("inlineCode",{parentName:"li"},"vsntag"),");"),(0,n.kt)("li",{parentName:"ul"},"the ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-syntax/term-ref-syntax#alternative-syntax"},"alternative syntax"),", e.g. ","[",(0,n.kt)("inlineCode",{parentName:"li"},"show text"),"@","]",", which basically moves the ",(0,n.kt)("inlineCode",{parentName:"li"},"@"),"-character from the basic syntax within the square brackets, which in many (if not most) cases is more convenient for ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors"),", but has the drawback that the rendering of the plain markdown text would be rendered as ","[show text@]",", which may be inconvenient.")),(0,n.kt)("p",null,"Interpretation of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," leads to the population of the following variables (or, in case regexes are used, named capturing groups):"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Using regexes to find the values for the variables"),(0,n.kt)("p",null,"Finding a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," in the file can be done by using a regular expressions (regexes - you can use ",(0,n.kt)("a",{parentName:"p",href:"https://www.debuggex.com/"},"debuggex")," to see what these regexps do (make sure you choose PCRE as the regex flavor to work with))."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"For the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-syntax/term-ref-syntax#basic-syntax"},"basic syntax"),", you can use the PCRE regex"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://www.debuggex.com/r/G1uvznpNG1mhqEx5"},(0,n.kt)("inlineCode",{parentName:"a"},"(?:(?<=[^`\\\\])|^)\\[(?=[^@\\]]+\\]\\([#a-z0-9_-]*@[:a-z0-9_-]*\\))"))," to find the ",(0,n.kt)("inlineCode",{parentName:"li"},"[")," that starts a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),", and"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://www.debuggex.com/r/36D57uOvsnyPehh3"},(0,n.kt)("inlineCode",{parentName:"a"},"(?[^\\n\\]@]+)\\]\\((?:(?[a-z0-9_-]*)?(?:#(?[a-z0-9_-]+))?)?@(?[a-z0-9_-]*)(?::(?[a-z0-9_-]+))?\\)"))," to find the various parts of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," as (named) capturing groups."))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"For the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-syntax/term-ref-syntax#alternative-syntax"},"alternative syntax"),", you can use the PCRE regex"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://www.debuggex.com/r/7dEYEdoc52QeIxf4"},(0,n.kt)("inlineCode",{parentName:"a"},"(?:(?<=[^`\\\\])|^)\\[(?=[^@\\]]+@[:a-z0-9_-]*\\](?:\\([#a-z0-9_-]+\\))?)"))," to find the ",(0,n.kt)("inlineCode",{parentName:"li"},"[")," that starts a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),", and"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://www.debuggex.com/r/tMBiAk_W9ipNc9Mm"},(0,n.kt)("inlineCode",{parentName:"a"},"(?[^\\n\\]@]+?)@(?[a-z0-9_-]*)(?::(?[a-z0-9_-]+?))?\\](?:\\((?[a-z0-9_-]*)(?:#(?[a-z0-9_-]+?))?\\))?"))," to subsequently obtain the various fields as (named) capturing groups from the PCRE regex.")))),(0,n.kt)("p",null,"Note that when a value of a named capturing group is empty, it is filled by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," with (default) values according to the specifications below.")),(0,n.kt)("h4",{id:"showtext"},(0,n.kt)("inlineCode",{parentName:"h4"},"showtext")," (required)"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"showtext")," is a (non-empty) text that will be highlighed/enhanced, and will become clickable and/or receive other features when rendered. It MUST NOT be empty, and it MUST NOT contain the characters ",(0,n.kt)("inlineCode",{parentName:"p"},"@")," or ",(0,n.kt)("inlineCode",{parentName:"p"},"]")," (which we need to be able to distinguish between ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," and other links)."),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"The alternative notation assumes that the ",(0,n.kt)("inlineCode",{parentName:"p"},"showtext")," part of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," won't contain the ",(0,n.kt)("inlineCode",{parentName:"p"},"@")," character. However, it is likely that some ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," will want to use an email address as the ",(0,n.kt)("inlineCode",{parentName:"p"},"showtext")," part of a ",(0,n.kt)("em",{parentName:"p"},"regular")," link, e.g. as in ",(0,n.kt)("inlineCode",{parentName:"p"},"[rieks.joosten@tno.nl](mailto:rieks.joosten@tno.nl)"),". However, since ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags")," should not contain ",(0,n.kt)("inlineCode",{parentName:"p"},"."),"-characters, ",(0,n.kt)("inlineCode",{parentName:"p"},"[rieks.joosten@tno.nl]")," does not qualify as a ",(0,n.kt)("inlineCode",{parentName:"p"},"showtext")," in our syntax. Also, it would be detectable if such syntax is followed by ",(0,n.kt)("inlineCode",{parentName:"p"},"(mailto:"),". Any detected problems must result in a proper warning, and the suggestion that email addresses can be used in a ",(0,n.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#urls-and-email-addresses"},"link with angle brackets"),", e.g. ",(0,n.kt)("inlineCode",{parentName:"p"},""),".")),(0,n.kt)("h4",{id:"scopetag"},(0,n.kt)("inlineCode",{parentName:"h4"},"scopetag")," (optional)"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"scopetag")," is a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is to be resolved."),(0,n.kt)("p",null,"If specified, it MUST appear in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," (of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," is called), as an element of the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetags")," field of one of elements in the list of ",(0,n.kt)("inlineCode",{parentName:"p"},"scopes"),". That element also contains a ",(0,n.kt)("inlineCode",{parentName:"p"},"scopedir")," field, that can subsequently be used to obtain the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,n.kt)("p",null,"If not specified, the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," (from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," is being called) will be used. This SHOULD be the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which the document containing the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is being maintained. Note that the preceding ",(0,n.kt)("inlineCode",{parentName:"p"},"@")," sign may never be omitted because as it serves the purpose to distinguish ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," from other ",(0,n.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"Markdown links"),". A ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetag")," shall only contain characters in regex ",(0,n.kt)("inlineCode",{parentName:"p"},"[a-z0-9_-]"),"."),(0,n.kt)("h4",{id:"vsntag"},(0,n.kt)("inlineCode",{parentName:"h4"},"vsntag")," (optional)"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," is a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," (as ","[identified]"," by the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetag"),"). It MUST appear either in the ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," field, or as one of the elements in the ",(0,n.kt)("inlineCode",{parentName:"p"},"altvsntags")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," that contains the administration of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,n.kt)("p",null,"If omitted (in which case the preceding ",(0,n.kt)("inlineCode",{parentName:"p"},":"),"-character may also be omitted from the syntax), its value will ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," the default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," (as ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/saf#terminology"},"specified")," in the ",(0,n.kt)("inlineCode",{parentName:"p"},"mrgfile")," field os the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),")."),(0,n.kt)("h4",{id:"id"},(0,n.kt)("inlineCode",{parentName:"h4"},"term")," (optional)"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"term")," is a text that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),", and is specified in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that documents that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," (in a specific version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"). It will be matched against the ",(0,n.kt)("inlineCode",{parentName:"p"},"term")," fields of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that documents said ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),"."),(0,n.kt)("p",null,"If omitted, "," it is generated as follows (assuming the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," to be used has already been ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified"),"):"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"set ",(0,n.kt)("inlineCode",{parentName:"li"},"term"),":=",(0,n.kt)("inlineCode",{parentName:"li"},"showtext"),";"),(0,n.kt)("li",{parentName:"ul"},"convert every character in the (regex) range ",(0,n.kt)("inlineCode",{parentName:"li"},"[A-Z]")," to lower-case;"),(0,n.kt)("li",{parentName:"ul"},"convert every sequence of characters ",(0,n.kt)("inlineCode",{parentName:"li"},"[^A-Za-z_-]+")," to (a single) ",(0,n.kt)("inlineCode",{parentName:"li"},"-")," character;"),(0,n.kt)("li",{parentName:"ul"},"if the resulting ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-syntax/form-phrase-syntax"},"matches an element in the list of texts")," in the ",(0,n.kt)("inlineCode",{parentName:"li"},"formphrases")," field of an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),", then replace ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," with the contents of the ",(0,n.kt)("inlineCode",{parentName:"li"},"term"),"-field of that same ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),".")),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"We should clarify the extent to which this ",(0,n.kt)("inlineCode",{parentName:"p"},"matching")," supports formphrase macro's, Currently, this is documented as part of the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-syntax/form-phrase-syntax"},"form-phrase syntax")," which doesn't seem right.")),(0,n.kt)("p",null,"It is an error if the resulting ",(0,n.kt)("inlineCode",{parentName:"p"},"term")," does not ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," in the selected ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),". This may mean that the ",(0,n.kt)("inlineCode",{parentName:"p"},"showtext")," has misspellings, the ",(0,n.kt)("inlineCode",{parentName:"p"},"term")," field was not specified where it had to, or the list of ",(0,n.kt)("inlineCode",{parentName:"p"},"formphrases")," in some ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," should have included more elements."),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},(0,n.kt)("a",{parentName:"p",href:"https://tartarus.org/martin/PorterStemmer/"},"The Porter Stemming Algorithm")," is a process for removing the commoner morphological and inflexional endings from words in English. Its main use is as part of a term normalisation process that is usually done when setting up Information Retrieval systems. The mentioned site links to lots of freely useable code that the TRRT might want to consider using."),(0,n.kt)("p",{parentName:"admonition"},"Perhaps the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," may use this tool as a means for generating the ",(0,n.kt)("inlineCode",{parentName:"p"},"term")," field from the ",(0,n.kt)("inlineCode",{parentName:"p"},"showtext")," if necessary. However, we would need to first experiment with that to see whether or not, c.q. to what extent this conversion does what it is expected to do.")),(0,n.kt)("h4",{id:"trait"},(0,n.kt)("inlineCode",{parentName:"h4"},"trait")," (optional)"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"trait")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," a particular kind of descriptive text that is associated with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),". If specified, it must be one of the elements in the list of headingid's as specified in ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/mrg#mrg-entries"},"the ",(0,n.kt)("inlineCode",{parentName:"a"},"headingids")," field")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),". If omitted, the preceding ",(0,n.kt)("inlineCode",{parentName:"p"},"#"),"-character should also be omitted."),(0,n.kt)("h3",{id:"locating-the-identified-mrg-entry"},"Locating the identified MRG Entry"),(0,n.kt)("p",null,"As soon as the variables have been provided with a value, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," can be found by following a sequence of steps:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"get the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," and ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," associated with the ",(0,n.kt)("inlineCode",{parentName:"strong"},"scope")," variable of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")),". If the value of the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetag")," variable is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," of the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," (as specified when the ",(0,n.kt)("a",{parentName:"p",href:"#calling-the-tool"},"tool was called"),"), then use the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),". Otherwise, look up the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," from the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/saf#scopes"},(0,n.kt)("inlineCode",{parentName:"a"},"scopes")," section")," of the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". From the resulting ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),", read the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," (i.e. the ",(0,n.kt)("inlineCode",{parentName:"p"},"saf.yaml")," file in the root of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),").")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"get the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," associated with the ",(0,n.kt)("inlineCode",{parentName:"strong"},"vsntag")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")),". Search the element in the ",(0,n.kt)("a",{parentName:"p",href:"docs/spec-files/mrg#versions"},"versions section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," where the ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," variable is either the value of the ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," field, or appears as one of the elements in the ",(0,n.kt)("inlineCode",{parentName:"p"},"altvsntags")," field. Then, obtain the filename of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from the ",(0,n.kt)("inlineCode",{parentName:"p"},"mrgfile")," field of that element.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"identify the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," associated with the ",(0,n.kt)("inlineCode",{parentName:"strong"},"id")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")),". Get the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from the location specified by the URL ",(0,n.kt)("inlineCode",{parentName:"p"},""),"/",(0,n.kt)("inlineCode",{parentName:"p"},""),"/",(0,n.kt)("inlineCode",{parentName:"p"},"")," (which are all in the context of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," as identified by the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetag")," variable). The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," will be ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified")," by a process that starts with the set of all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries")," that exist in the selected ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", and then weeding out any non-matching ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries")," by applying the following steps:"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"since ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," must be present, all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries")," are removed whose ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," field differs from the ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," variable;"),(0,n.kt)("li",{parentName:"ul"},"then, if the variable ",(0,n.kt)("inlineCode",{parentName:"li"},"termtype")," is present, all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries")," whose ",(0,n.kt)("inlineCode",{parentName:"li"},"termtype")," field has a different value from what that variable holds, are removed from the set;"),(0,n.kt)("li",{parentName:"ul"},"If the resulting set contains exactly one ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),", this is the one that is selected; otherwise, a warning is raised.")))),(0,n.kt)("h3",{id:"rewriting-the-term-ref-with-a-renderable-ref"},"Rewriting the Term Ref with a Renderable Ref"),(0,n.kt)("img",{alt:"From this point onward, texts are under construction",src:(0,r.Z)("images/wip/wip-under-construction-from-here-onward.png")}),(0,n.kt)("br",null),(0,n.kt)("br",null),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," will by default dereference to a human readable, rendered version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," associated with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),", which can be obtained through the URL located in the ",(0,n.kt)("inlineCode",{parentName:"p"},"navurl")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),", which the text ",(0,n.kt)("inlineCode",{parentName:"p"},"#")," is appended if a ",(0,n.kt)("inlineCode",{parentName:"p"},"trait")," was specified."),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"We should think about how to document ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable refs")," in such a way that they can easily be found and used for different roles (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors"),", curators, developers) and purposes (writing a trrt-config file, adding a new type of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable ref"),", etc.).")),(0,n.kt)("p",null,"The text with which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is to be replaced can have various formats. This enables the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," to be used in different contexts, and its results to be further processed by a variety of third-party rendering tools."),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Examples of term-ref replacements"),(0,n.kt)(s.Z,{defaultValue:"simple",values:[{label:"ToIP Style",value:"simple"},{label:"eSSIF-Lab Style",value:"complex"}],mdxType:"Tabs"},(0,n.kt)(h.Z,{value:"simple",mdxType:"TabItem"},(0,n.kt)("p",null,"The simplest example is where a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is replaced with a regular ",(0,n.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"markdown link")),(0,n.kt)("p",null,"In this case, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," ",(0,n.kt)("inlineCode",{parentName:"p"},"[Actions](@)")," is replaced with ",(0,n.kt)("inlineCode",{parentName:"p"},"[Actions](/#action)"),"\nwhere:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"hrgfile")," is the contents of the field ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".",(0,n.kt)("inlineCode",{parentName:"li"},"scope.hrgfile"),".")),(0,n.kt)("p",null,"Note that if the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," refers to a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," that differs from the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", then the URL should be preceeded by the text specified in the ",(0,n.kt)("inlineCode",{parentName:"p"},"website")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", because it would not be a relative (local) hyperlink.")),(0,n.kt)(h.Z,{value:"complex",mdxType:"TabItem"},(0,n.kt)("p",null,"A more complex example is what is done within eSSIF-Lab, where the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," not only want ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," to be linked to their (rendered) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),", but also want them to be provided with a tooltip that states their ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definitions"),"."),(0,n.kt)("p",null,"In this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," ",(0,n.kt)("inlineCode",{parentName:"p"},"[Actions](@)")," is replaced with ",(0,n.kt)("inlineCode",{parentName:"p"},'Actions'),"\nwhere:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," is the text provided in the ",(0,n.kt)("inlineCode",{parentName:"li"},"hoverText")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," whose ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," field is ",(0,n.kt)("inlineCode",{parentName:"li"},"action"),", and"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"")," represent a React component that supports linking and tooltip functionality, so that users hovering over the link will see a popup/tooltip with the text ",(0,n.kt)("inlineCode",{parentName:"li"},""),", and will navigate to the location of the (human readable, i.e. rendered) file that contains details and further explanations, as specified in the ",(0,n.kt)("inlineCode",{parentName:"li"},"navurl")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),".")),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"The implementation of the ",(0,n.kt)("inlineCode",{parentName:"p"},"")," ... ",(0,n.kt)("inlineCode",{parentName:"p"},"")," construct will differ from that which is used by eSSIF-Lab, because a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that is defined in this, or another ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", lives in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file")," at ",(0,n.kt)("inlineCode",{parentName:"p"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"p"},"curatedir"),"/",(0,n.kt)("inlineCode",{parentName:"p"},"locator"),", where"),(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"scopedir")," is the URL that locates the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"curatedir")," is the directory in that ",(0,n.kt)("inlineCode",{parentName:"li"},"scopedir")," where ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic units")," (c.q. ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),") live; its value is found both in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," and in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"locator")," is the path (including filename), relative to ",(0,n.kt)("inlineCode",{parentName:"li"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"li"},"curatedir"),"/, of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file")," that describes the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that is being referred to.")))))),(0,n.kt)("p",null,"The essentials of the rewriting start with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," is called, and proceed as follows:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"access the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", and in case the ",(0,n.kt)("inlineCode",{parentName:"li"},"scopetag")," is not of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", look up the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," associated with that ",(0,n.kt)("inlineCode",{parentName:"li"},"scopetag")," and obtain its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),";"),(0,n.kt)("li",{parentName:"ul"},"using the ",(0,n.kt)("inlineCode",{parentName:"li"},"vsntag"),", locate the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," (or if ",(0,n.kt)("inlineCode",{parentName:"li"},"vsntag")," isn't specified, use the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"-file as specified in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),");"),(0,n.kt)("li",{parentName:"ul"},"Find the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," that has a ",(0,n.kt)("inlineCode",{parentName:"li"},"term"),"-field that is the same as ",(0,n.kt)("inlineCode",{parentName:"li"},"term"),";")),(0,n.kt)("p",null,"At this point, all data is available for constructing the replacement text. As we have seen, it depends on the situation that need to be supported how the actual construction needs to be done."),(0,n.kt)("h2",{id:"processing-errors-and-warnings"},"Processing, Errors and Warnings"),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," starts by reading its command-line and configuration file. If the command-line has a key that is also found in the configuration file, the command-line key-value pair takes precedence. The resulting set of key-value pairs is tested for proper syntax and validity. Every improper syntax and every invalidity found will be logged. Improper syntax may be e.g. an invalid ",(0,n.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},"globpattern"),". Invalidities include non-existing directories or files, lack of write-permissions where needed, etc."),(0,n.kt)("p",null,"Then, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," reads the specified input files (in arbitrary order), and for each of them, produces an output file that is the same as the input file except for the fact that all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," have been replaced with regular ",(0,n.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"markdown links"),", and (optionally) with additional texts that are to be used by third-party rendering tools for enhanced rendering of such links. An example of this would be text that can be used to enhance a link with a popup that contains the definition, or a description of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that is being referenced."),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," logs every error- and/or warning condition that it comes across while processing its configuration file, commandline parameters, and input files, in a way that helps tool-operators and document ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," to identify and fix such conditions."),(0,n.kt)("h2",{id:"deploying-the-tool"},"Deploying the Tool"),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," comes with documentation that enables developers to ascertain its correct functioning (e.g. by using a test set of files, test scripts that exercise its parameters, etc.), and also enables them to deploy the tool in a git repo and author/modify CI-pipes to use that deployment."))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[3991],{3905:function(e,t,i){i.d(t,{Zo:function(){return l},kt:function(){return f}});var a=i(7294);function o(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,a)}return i}function r(e){for(var t=1;t=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}var h=a.createContext({}),c=function(e){var t=a.useContext(h),i=t;return e&&(i="function"==typeof e?e(t):r(r({},t),e)),i},l=function(e){var t=c(e.components);return a.createElement(h.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var i=e.components,o=e.mdxType,n=e.originalType,h=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=c(i),f=o,m=p["".concat(h,".").concat(f)]||p[f]||d[f]||n;return i?a.createElement(m,r(r({ref:t},l),{},{components:i})):a.createElement(m,r({ref:t},l))}));function f(e,t){var i=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=i.length,r=new Array(n);r[0]=p;var s={};for(var h in t)hasOwnProperty.call(t,h)&&(s[h]=t[h]);s.originalType=e,s.mdxType="string"==typeof e?e:o,r[1]=s;for(var c=2;c child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:i.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function p(e){var t=e.values,i=e.children;return(0,o.useMemo)((function(){var e=null!=t?t:d(i);return function(e){var t=(0,c.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,i])}function f(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function m(e){var t=e.queryString,i=void 0!==t&&t,a=e.groupId,n=(0,s.k6)(),r=function(e){var t=e.queryString,i=void 0!==t&&t,a=e.groupId;if("string"==typeof i)return i;if(!1===i)return null;if(!0===i&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=a?a:null}({queryString:i,groupId:a});return[(0,h._X)(r),(0,o.useCallback)((function(e){if(r){var t=new URLSearchParams(n.location.search);t.set(r,e),n.replace(Object.assign({},n.location,{search:t.toString()}))}}),[r,n])]}function u(e){var t,i,a,n,r=e.defaultValue,s=e.queryString,h=void 0!==s&&s,c=e.groupId,d=p(e),u=(0,o.useState)((function(){return function(e){var t,i=e.defaultValue,a=e.tabValues;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(i){if(!f({value:i,tabValues:a}))throw new Error('Docusaurus error: The has a defaultValue "'+i+'" but none of its children has the corresponding value. Available values are: '+a.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return i}var o=null!=(t=a.find((function(e){return e.default})))?t:a[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:r,tabValues:d})})),g=u[0],y=u[1],v=m({queryString:h,groupId:c}),b=v[0],k=v[1],w=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:c}.groupId),i=(0,l.Nk)(t),a=i[0],n=i[1],[a,(0,o.useCallback)((function(e){t&&n.set(e)}),[t,n])]),T=w[0],x=w[1],R=function(){var e=null!=b?b:T;return f({value:e,tabValues:d})?e:null}();return(0,o.useLayoutEffect)((function(){R&&y(R)}),[R]),{selectedValue:g,selectValue:(0,o.useCallback)((function(e){if(!f({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);y(e),k(e),x(e)}),[k,x,d]),tabValues:d}}var g=i(2389),y="tabList__CuJ",v="tabItem_LNqP";function b(e){var t=e.className,i=e.block,s=e.selectedValue,h=e.selectValue,c=e.tabValues,l=[],d=(0,r.o5)().blockElementScrollPositionUntilNextRender,p=function(e){var t=e.currentTarget,i=l.indexOf(t),a=c[i].value;a!==s&&(d(t),h(a))},f=function(e){var t,i=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":var a,o=l.indexOf(e.currentTarget)+1;i=null!=(a=l[o])?a:l[0];break;case"ArrowLeft":var n,r=l.indexOf(e.currentTarget)-1;i=null!=(n=l[r])?n:l[l.length-1]}null==(t=i)||t.focus()};return o.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":i},t)},c.map((function(e){var t=e.value,i=e.label,r=e.attributes;return o.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:function(e){return l.push(e)},onKeyDown:f,onClick:p},r,{className:(0,n.Z)("tabs__item",v,null==r?void 0:r.className,{"tabs__item--active":s===t})}),null!=i?i:t)})))}function k(e){var t=e.lazy,i=e.children,a=e.selectedValue,n=(Array.isArray(i)?i:[i]).filter(Boolean);if(t){var r=n.find((function(e){return e.props.value===a}));return r?(0,o.cloneElement)(r,{className:"margin-top--md"}):null}return o.createElement("div",{className:"margin-top--md"},n.map((function(e,t){return(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==a})})))}function w(e){var t=u(e);return o.createElement("div",{className:(0,n.Z)("tabs-container",y)},o.createElement(b,(0,a.Z)({},e,t)),o.createElement(k,(0,a.Z)({},e,t)))}function T(e){var t=(0,g.Z)();return o.createElement(w,(0,a.Z)({key:String(t)},e))}},9257:function(e,t,i){i.r(t),i.d(t,{assets:function(){return f},contentTitle:function(){return d},default:function(){return y},frontMatter:function(){return l},mark:function(){return u},metadata:function(){return p},toc:function(){return m}});var a=i(7462),o=i(3366),n=(i(7294),i(3905)),r=i(4996),s=i(4866),h=i(5162),c=["components"],l={id:"trrt",sidebar_label:"Term Ref Resolution",date:20220421},d="Term Reference Resolution Tool",p={unversionedId:"spec-tools/trrt",id:"spec-tools/trrt",title:"Term Reference Resolution Tool",description:"text to mark",source:"@site/docs/spec-tools/13-trrt.md",sourceDirName:"spec-tools",slug:"/spec-tools/trrt",permalink:"/tev2-specifications/docs/spec-tools/trrt",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-tools/13-trrt.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695968786,formattedLastUpdatedAt:"Sep 29, 2023",sidebarPosition:13,frontMatter:{id:"trrt",sidebar_label:"Term Ref Resolution",date:20220421},sidebar:"tev2SideBar",previous:{title:"MRG Importer",permalink:"/tev2-specifications/docs/spec-tools/mrg-importer"},next:{title:"Terminology Construction",permalink:"/tev2-specifications/docs/spec-tools/terminology-construction"}},f={},m=[{value:"Installing the Tool",id:"installing-the-tool",level:2},{value:"Calling the Tool",id:"calling-the-tool",level:2},{value:"Term Ref Resolution",id:"term-ref-resolution",level:2},{value:"Interpretation of the Term Ref",id:"interpretation-of-the-term-ref",level:3},{value:"showtext (required)",id:"showtext",level:4},{value:"scopetag (optional)",id:"scopetag",level:4},{value:"vsntag (optional)",id:"vsntag",level:4},{value:"term (optional)",id:"id",level:4},{value:"trait (optional)",id:"trait",level:4},{value:"Locating the identified MRG Entry",id:"locating-the-identified-mrg-entry",level:3},{value:"Rewriting the Term Ref with a Renderable Ref",id:"rewriting-the-term-ref-with-a-renderable-ref",level:3},{value:"Processing, Errors and Warnings",id:"processing-errors-and-warnings",level:2},{value:"Deploying the Tool",id:"deploying-the-tool",level:2}],u=function(e){var t=e.children;return(0,n.kt)("span",{style:{color:"black",backgroundColor:"yellow",padding:"0.2rem",borderRadius:"2px"}},t)},g={toc:m,mark:u};function y(e){var t=e.components,i=(0,o.Z)(e,c);return(0,n.kt)("wrapper",(0,a.Z)({},g,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"term-reference-resolution-tool"},"Term Reference Resolution Tool"),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"Term ref resolution is the same process as we use for ingestion, and other conversions, as (will be) explained in the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/profile-templates"},"profiles template section"),". When that 'conversion pattern' is stable and properly documented, we need to revise this section to align with those descriptions.")),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Term Ref(erence) Resolution Tool (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT"),")")," takes files that contain so-called ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," and outputs a copy of these files in which these ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," are converted into so-called ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable refs"),", i.e. texts that can be further processed by tools such as GitHub pages, Docusaurus, etc. The result of this is that the rendered document contains markups that help ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/reader",hovertext:"Reader: a person that reads a text that is authored by another person (its Author]), and that tries to understand the meaning of this text in the way its Author intended."},"readers")," to quickly find more explanations of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/concept",hovertext:"Concept: a Semantic Unit that captures the ideas/thoughts behind a classification of Entities (what makes Entities in that class 'the same')."},"concept")," or other ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that is being referenced."),(0,n.kt)("p",null,"There is currently one implementation of the tool:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"the repo is ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/tno-terminology-design/trrt"},"here"),"."),(0,n.kt)("li",{parentName:"ul"},"the documentation is ",(0,n.kt)("a",{parentName:"li",href:"https://tno-terminology-design.github.io/trrt"},"here"),".")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Examples"),(0,n.kt)("p",null,"Consider the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," ",(0,n.kt)("inlineCode",{parentName:"p"},"[the purpose of actors](actor#purpose@essif-lab)"),". Here are a number of ways that it can be converted into:"),(0,n.kt)(s.Z,{defaultValue:"markdown",values:[{label:"Markdown",value:"markdown"},{label:"HTML",value:"html"},{label:"eSSIF-Lab Style",value:"essiflab-style"}],mdxType:"Tabs"},(0,n.kt)(h.Z,{value:"markdown",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-markdown"}," [the purpose of actors](/framework/docs/terms/actor#purpose)\n")),(0,n.kt)("p",null,"which is text that a markdown interpreter will render into a text ",(0,n.kt)("inlineCode",{parentName:"p"},"the purpose of actors")," that hyperlinks to the (relative) path ",(0,n.kt)("inlineCode",{parentName:"p"},"/framework/docs/terms/actor#purpose"),".")),(0,n.kt)(h.Z,{value:"html",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-html"},' \n the purpose of actors\n ,\n')),(0,n.kt)("p",null,"which is code that will render the text ",(0,n.kt)("inlineCode",{parentName:"p"},"the purpose of actors")," as a (boldface) hyperlink, that, when clicked, will navigate to the ",(0,n.kt)("inlineCode",{parentName:"p"},"purpose")," section of the page that documents (the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," called ",(0,n.kt)("inlineCode",{parentName:"p"},"actor"),".")),(0,n.kt)(h.Z,{value:"essiflab-style",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-html"},' the purpose of actors\n \n')),(0,n.kt)("p",null,"Note that this text is not readily renderable in a browser. ",(0,n.kt)("inlineCode",{parentName:"p"},"")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"")," represent a React component that supports linking and tooltip functionality, so that users hovering over the link will see a popup/tooltip with the text ",(0,n.kt)("inlineCode",{parentName:"p"},""),". This functionality is expected to be provided by an appropriate plugin in the static website generator.")))),(0,n.kt)("p",null,"Conceptually, ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," conversion is a simple two-step process:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is interpreted, the result of which is a set of variables (or if regexes are used: ",(0,n.kt)("a",{parentName:"li",href:"https://riptutorial.com/regex/example/2479/named-capture-groups"},"named capturing groups"),") whose contents ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," from a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"."),(0,n.kt)("li",{parentName:"ol"},"Then, using the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),", the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is replaced by a converter with a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable ref"),", of the kind as specified by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT's")," command line arguments or configuration file. Through the use of converters, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable ref")," may include all sorts of code that is processed further by other, third party rendering tools.")),(0,n.kt)("p",null,"By cleanly separating ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," interpretation from the part where it is overwritten with a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable ref"),", it becomes easy to extend the capabilities of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," to include ways for rendering ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),", e.g. for LaTeX, PDF, docx, odt and other formats, as well as for formats that we currently do not even know we would like to have."),(0,n.kt)("p",null,"In order to convert ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," into ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable refs"),", ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," expects the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," and the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from within which it is being called, to be available. The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is used to resolve all links to ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that are part of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," is used to locate the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs")," of any (other) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," whose ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," is used as part of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," that needs to be resolved."),(0,n.kt)("h2",{id:"installing-the-tool"},"Installing the Tool"),(0,n.kt)("p",null,"The tool can be installed from the command line and made globally available by executing"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"npm install tno-terminology-design/trrt -g\n")),(0,n.kt)("h2",{id:"calling-the-tool"},"Calling the Tool"),(0,n.kt)("p",null,"The behavior of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," can be configured per call e.g. by a configuration file and/or command-line parameters. The command-line syntax is as follows:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"trrt [ ] [ ]\n")),(0,n.kt)("p",null,"where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," (optional) is a list of key-value pairs"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},(0,n.kt)("inlineCode",{parentName:"a"},"globpattern"))," (optional) specifies a set of (input) files that are to be processed. If a configuration file is used, its contents may specify an additional set of input files to be processed.")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("p",null,"The columns in the following table are defined as follows:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Key"))," is the text to be used as a key."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Value"))," represents the kind of value to be used."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),") the field is required to be present when the tool is being called. If required, it MUST either be present in the configuration file, or as a command-line parameter."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the ",(0,n.kt)("inlineCode",{parentName:"li"},"Value")," field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:"left"},"Key"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Value"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"config")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path (including the filename) of the tool's (YAML) configuration file. This file contains the default key-value pairs to be used. Allowed keys (and the associated values) are documented in this table. Command-line arguments override key-value pairs specified in the configuration file. This parameter MUST NOT appear in the configuration file itself.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"input")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{parentName:"td",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},"Globpattern")," that specifies the set of (input) files that are to be processed.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"output")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"(Root) directory where output files are to be written. This directory is specified as an absolute or relative path.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," from which the tool is called. It MUST contain the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," for that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which we will refer to as the 'current scope' for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"version")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that is to be used to resolve ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," for which neither a ",(0,n.kt)("inlineCode",{parentName:"td"},"scope")," nor a ",(0,n.kt)("inlineCode",{parentName:"td"},"version")," part has been specified (which is the most common case). It MUST match either the ",(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")," field, or an element of the ",(0,n.kt)("inlineCode",{parentName:"td"},"altvsntags")," field as specified in the ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-files/saf#versions"},(0,n.kt)("inlineCode",{parentName:"a"},"versions")," section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". When not specified, its value is taken from the ",(0,n.kt)("inlineCode",{parentName:"td"},"defaultvsn")," field in the ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-files/mrg#mrg-terminology"},"terminology section")," of the default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," (which is ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified")," by the contents of the ",(0,n.kt)("inlineCode",{parentName:"td"},"mrgfile")," field (in the ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-files/saf#terminology"},(0,n.kt)("inlineCode",{parentName:"a"},"scope")," section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),").")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"interpreter")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Allows for the switching between interpreter types. By default the ",(0,n.kt)("inlineCode",{parentName:"td"},"AltInterpreter")," and ",(0,n.kt)("inlineCode",{parentName:"td"},"StandardInterpreter")," are available. When this parameter is omitted, the basic ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," syntax is used.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"converter")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("inlineCode",{parentName:"td"},"")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"The type of converter which creates the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable refs"),". When this parameter is omitted, the Markdown converter is used.")))),(0,n.kt)("h2",{id:"term-ref-resolution"},"Term Ref Resolution"),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," resolution process has three steps:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Interpretation of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," into variables that can be used to ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),";"),(0,n.kt)("li",{parentName:"ol"},"Locating the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG Entry"),";"),(0,n.kt)("li",{parentName:"ol"},"Rewriting the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," with a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable ref"),".")),(0,n.kt)("h3",{id:"interpretation-of-the-term-ref"},"Interpretation of the Term Ref"),(0,n.kt)("p",null,"The following kinds of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," syntaxes are (to be) supported:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"the ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-syntax/term-ref-syntax#basic-syntax"},"basic syntax"),", i.e. ","[",(0,n.kt)("inlineCode",{parentName:"li"},"show text"),"]","(",(0,n.kt)("inlineCode",{parentName:"li"},"term"),"#",(0,n.kt)("inlineCode",{parentName:"li"},"trait"),"@",(0,n.kt)("inlineCode",{parentName:"li"},"scopetag"),":",(0,n.kt)("inlineCode",{parentName:"li"},"vsntag"),");"),(0,n.kt)("li",{parentName:"ul"},"the ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-syntax/term-ref-syntax#alternative-syntax"},"alternative syntax"),", e.g. ","[",(0,n.kt)("inlineCode",{parentName:"li"},"show text"),"@","]",", which basically moves the ",(0,n.kt)("inlineCode",{parentName:"li"},"@"),"-character from the basic syntax within the square brackets, which in many (if not most) cases is more convenient for ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors"),", but has the drawback that the rendering of the plain markdown text would be rendered as ","[show text@]",", which may be inconvenient.")),(0,n.kt)("p",null,"Interpretation of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," leads to the population of the following variables (or, in case regexes are used, named capturing groups):"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Using regexes to find the values for the variables"),(0,n.kt)("p",null,"Finding a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," in the file can be done by using a regular expressions (regexes - you can use ",(0,n.kt)("a",{parentName:"p",href:"https://www.debuggex.com/"},"debuggex")," to see what these regexps do (make sure you choose PCRE as the regex flavor to work with))."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"For the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-syntax/term-ref-syntax#basic-syntax"},"basic syntax"),", you can use the PCRE regex"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://www.debuggex.com/r/G1uvznpNG1mhqEx5"},(0,n.kt)("inlineCode",{parentName:"a"},"(?:(?<=[^`\\\\])|^)\\[(?=[^@\\]]+\\]\\([#a-z0-9_-]*@[:a-z0-9_-]*\\))"))," to find the ",(0,n.kt)("inlineCode",{parentName:"li"},"[")," that starts a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),", and"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://www.debuggex.com/r/36D57uOvsnyPehh3"},(0,n.kt)("inlineCode",{parentName:"a"},"(?[^\\n\\]@]+)\\]\\((?:(?[a-z0-9_-]*)?(?:#(?[a-z0-9_-]+))?)?@(?[a-z0-9_-]*)(?::(?[a-z0-9_-]+))?\\)"))," to find the various parts of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," as (named) capturing groups."))),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"For the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-syntax/term-ref-syntax#alternative-syntax"},"alternative syntax"),", you can use the PCRE regex"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://www.debuggex.com/r/7dEYEdoc52QeIxf4"},(0,n.kt)("inlineCode",{parentName:"a"},"(?:(?<=[^`\\\\])|^)\\[(?=[^@\\]]+@[:a-z0-9_-]*\\](?:\\([#a-z0-9_-]+\\))?)"))," to find the ",(0,n.kt)("inlineCode",{parentName:"li"},"[")," that starts a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),", and"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://www.debuggex.com/r/tMBiAk_W9ipNc9Mm"},(0,n.kt)("inlineCode",{parentName:"a"},"(?[^\\n\\]@]+?)@(?[a-z0-9_-]*)(?::(?[a-z0-9_-]+?))?\\](?:\\((?[a-z0-9_-]*)(?:#(?[a-z0-9_-]+?))?\\))?"))," to subsequently obtain the various fields as (named) capturing groups from the PCRE regex.")))),(0,n.kt)("p",null,"Note that when a value of a named capturing group is empty, it is filled by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," with (default) values according to the specifications below.")),(0,n.kt)("h4",{id:"showtext"},(0,n.kt)("inlineCode",{parentName:"h4"},"showtext")," (required)"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"showtext")," is a (non-empty) text that will be highlighed/enhanced, and will become clickable and/or receive other features when rendered. It MUST NOT be empty, and it MUST NOT contain the characters ",(0,n.kt)("inlineCode",{parentName:"p"},"@")," or ",(0,n.kt)("inlineCode",{parentName:"p"},"]")," (which we need to be able to distinguish between ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," and other links)."),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"The alternative notation assumes that the ",(0,n.kt)("inlineCode",{parentName:"p"},"showtext")," part of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," won't contain the ",(0,n.kt)("inlineCode",{parentName:"p"},"@")," character. However, it is likely that some ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," will want to use an email address as the ",(0,n.kt)("inlineCode",{parentName:"p"},"showtext")," part of a ",(0,n.kt)("em",{parentName:"p"},"regular")," link, e.g. as in ",(0,n.kt)("inlineCode",{parentName:"p"},"[rieks.joosten@tno.nl](mailto:rieks.joosten@tno.nl)"),". However, since ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags")," should not contain ",(0,n.kt)("inlineCode",{parentName:"p"},"."),"-characters, ",(0,n.kt)("inlineCode",{parentName:"p"},"[rieks.joosten@tno.nl]")," does not qualify as a ",(0,n.kt)("inlineCode",{parentName:"p"},"showtext")," in our syntax. Also, it would be detectable if such syntax is followed by ",(0,n.kt)("inlineCode",{parentName:"p"},"(mailto:"),". Any detected problems must result in a proper warning, and the suggestion that email addresses can be used in a ",(0,n.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#urls-and-email-addresses"},"link with angle brackets"),", e.g. ",(0,n.kt)("inlineCode",{parentName:"p"},""),".")),(0,n.kt)("h4",{id:"scopetag"},(0,n.kt)("inlineCode",{parentName:"h4"},"scopetag")," (optional)"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"scopetag")," is a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is to be resolved."),(0,n.kt)("p",null,"If specified, it MUST appear in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," (of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," is called), as an element of the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetags")," field of one of elements in the list of ",(0,n.kt)("inlineCode",{parentName:"p"},"scopes"),". That element also contains a ",(0,n.kt)("inlineCode",{parentName:"p"},"scopedir")," field, that can subsequently be used to obtain the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,n.kt)("p",null,"If not specified, the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," (from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," is being called) will be used. This SHOULD be the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which the document containing the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is being maintained. Note that the preceding ",(0,n.kt)("inlineCode",{parentName:"p"},"@")," sign may never be omitted because as it serves the purpose to distinguish ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," from other ",(0,n.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"Markdown links"),". A ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetag")," shall only contain characters in regex ",(0,n.kt)("inlineCode",{parentName:"p"},"[a-z0-9_-]"),"."),(0,n.kt)("h4",{id:"vsntag"},(0,n.kt)("inlineCode",{parentName:"h4"},"vsntag")," (optional)"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," is a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," (as ","[identified]"," by the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetag"),"). It MUST appear either in the ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," field, or as one of the elements in the ",(0,n.kt)("inlineCode",{parentName:"p"},"altvsntags")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," that contains the administration of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,n.kt)("p",null,"If omitted (in which case the preceding ",(0,n.kt)("inlineCode",{parentName:"p"},":"),"-character may also be omitted from the syntax), its value will ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," the default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," (as ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/saf#terminology"},"specified")," in the ",(0,n.kt)("inlineCode",{parentName:"p"},"mrgfile")," field os the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),")."),(0,n.kt)("h4",{id:"id"},(0,n.kt)("inlineCode",{parentName:"h4"},"term")," (optional)"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"term")," is a text that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),", and is specified in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that documents that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," (in a specific version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"). It will be matched against the ",(0,n.kt)("inlineCode",{parentName:"p"},"term")," fields of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that documents said ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),"."),(0,n.kt)("p",null,"If omitted, "," it is generated as follows (assuming the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," to be used has already been ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified"),"):"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"set ",(0,n.kt)("inlineCode",{parentName:"li"},"term"),":=",(0,n.kt)("inlineCode",{parentName:"li"},"showtext"),";"),(0,n.kt)("li",{parentName:"ul"},"convert every character in the (regex) range ",(0,n.kt)("inlineCode",{parentName:"li"},"[A-Z]")," to lower-case;"),(0,n.kt)("li",{parentName:"ul"},"convert every sequence of characters ",(0,n.kt)("inlineCode",{parentName:"li"},"[^A-Za-z_-]+")," to (a single) ",(0,n.kt)("inlineCode",{parentName:"li"},"-")," character;"),(0,n.kt)("li",{parentName:"ul"},"if the resulting ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-syntax/form-phrase-syntax"},"matches an element in the list of texts")," in the ",(0,n.kt)("inlineCode",{parentName:"li"},"formphrases")," field of an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),", then replace ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," with the contents of the ",(0,n.kt)("inlineCode",{parentName:"li"},"term"),"-field of that same ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),".")),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"We should clarify the extent to which this ",(0,n.kt)("inlineCode",{parentName:"p"},"matching")," supports formphrase macro's, Currently, this is documented as part of the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-syntax/form-phrase-syntax"},"form-phrase syntax")," which doesn't seem right.")),(0,n.kt)("p",null,"It is an error if the resulting ",(0,n.kt)("inlineCode",{parentName:"p"},"term")," does not ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," in the selected ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),". This may mean that the ",(0,n.kt)("inlineCode",{parentName:"p"},"showtext")," has misspellings, the ",(0,n.kt)("inlineCode",{parentName:"p"},"term")," field was not specified where it had to, or the list of ",(0,n.kt)("inlineCode",{parentName:"p"},"formphrases")," in some ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," should have included more elements."),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},(0,n.kt)("a",{parentName:"p",href:"https://tartarus.org/martin/PorterStemmer/"},"The Porter Stemming Algorithm")," is a process for removing the commoner morphological and inflexional endings from words in English. Its main use is as part of a term normalisation process that is usually done when setting up Information Retrieval systems. The mentioned site links to lots of freely useable code that the TRRT might want to consider using."),(0,n.kt)("p",{parentName:"admonition"},"Perhaps the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," may use this tool as a means for generating the ",(0,n.kt)("inlineCode",{parentName:"p"},"term")," field from the ",(0,n.kt)("inlineCode",{parentName:"p"},"showtext")," if necessary. However, we would need to first experiment with that to see whether or not, c.q. to what extent this conversion does what it is expected to do.")),(0,n.kt)("h4",{id:"trait"},(0,n.kt)("inlineCode",{parentName:"h4"},"trait")," (optional)"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"trait")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," a particular kind of descriptive text that is associated with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),". If specified, it must be one of the elements in the list of headingid's as specified in ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/mrg#mrg-entries"},"the ",(0,n.kt)("inlineCode",{parentName:"a"},"headingids")," field")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),". If omitted, the preceding ",(0,n.kt)("inlineCode",{parentName:"p"},"#"),"-character should also be omitted."),(0,n.kt)("h3",{id:"locating-the-identified-mrg-entry"},"Locating the identified MRG Entry"),(0,n.kt)("p",null,"As soon as the variables have been provided with a value, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," can be found by following a sequence of steps:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"get the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," and ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," associated with the ",(0,n.kt)("inlineCode",{parentName:"strong"},"scope")," variable of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")),". If the value of the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetag")," variable is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," of the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," (as specified when the ",(0,n.kt)("a",{parentName:"p",href:"#calling-the-tool"},"tool was called"),"), then use the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),". Otherwise, look up the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," from the ",(0,n.kt)("a",{parentName:"p",href:"/docs/spec-files/saf#scopes"},(0,n.kt)("inlineCode",{parentName:"a"},"scopes")," section")," of the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". From the resulting ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),", read the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," (i.e. the ",(0,n.kt)("inlineCode",{parentName:"p"},"saf.yaml")," file in the root of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),").")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"get the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," associated with the ",(0,n.kt)("inlineCode",{parentName:"strong"},"vsntag")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")),". Search the element in the ",(0,n.kt)("a",{parentName:"p",href:"docs/spec-files/mrg#versions"},"versions section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," where the ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," variable is either the value of the ",(0,n.kt)("inlineCode",{parentName:"p"},"vsntag")," field, or appears as one of the elements in the ",(0,n.kt)("inlineCode",{parentName:"p"},"altvsntags")," field. Then, obtain the filename of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from the ",(0,n.kt)("inlineCode",{parentName:"p"},"mrgfile")," field of that element.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"identify the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," associated with the ",(0,n.kt)("inlineCode",{parentName:"strong"},"id")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")),". Get the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from the location specified by the URL ",(0,n.kt)("inlineCode",{parentName:"p"},""),"/",(0,n.kt)("inlineCode",{parentName:"p"},""),"/",(0,n.kt)("inlineCode",{parentName:"p"},"")," (which are all in the context of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," as identified by the ",(0,n.kt)("inlineCode",{parentName:"p"},"scopetag")," variable). The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," will be ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified")," by a process that starts with the set of all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries")," that exist in the selected ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", and then weeding out any non-matching ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries")," by applying the following steps:"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"since ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," must be present, all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries")," are removed whose ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," field differs from the ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," variable;"),(0,n.kt)("li",{parentName:"ul"},"then, if the variable ",(0,n.kt)("inlineCode",{parentName:"li"},"termtype")," is present, all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries")," whose ",(0,n.kt)("inlineCode",{parentName:"li"},"termtype")," field has a different value from what that variable holds, are removed from the set;"),(0,n.kt)("li",{parentName:"ul"},"If the resulting set contains exactly one ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),", this is the one that is selected; otherwise, a warning is raised.")))),(0,n.kt)("h3",{id:"rewriting-the-term-ref-with-a-renderable-ref"},"Rewriting the Term Ref with a Renderable Ref"),(0,n.kt)("img",{alt:"From this point onward, texts are under construction",src:(0,r.Z)("images/wip/wip-under-construction-from-here-onward.png")}),(0,n.kt)("br",null),(0,n.kt)("br",null),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," will by default dereference to a human readable, rendered version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," associated with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),", which can be obtained through the URL located in the ",(0,n.kt)("inlineCode",{parentName:"p"},"navurl")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),", which the text ",(0,n.kt)("inlineCode",{parentName:"p"},"#")," is appended if a ",(0,n.kt)("inlineCode",{parentName:"p"},"trait")," was specified."),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"We should think about how to document ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable refs")," in such a way that they can easily be found and used for different roles (",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors"),", curators, developers) and purposes (writing a trrt-config file, adding a new type of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/renderable-ref",hovertext:"Renderable Ref: a text with which the TRRT replaces a TermRef, that can be processed by specific third party rendering tools, the result of which is a rendering of the original TermRef that has additional characteristics that help Readers to (better) understand the intention of its Author."},"renderable ref"),", etc.).")),(0,n.kt)("p",null,"The text with which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is to be replaced can have various formats. This enables the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," to be used in different contexts, and its results to be further processed by a variety of third-party rendering tools."),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Examples of term-ref replacements"),(0,n.kt)(s.Z,{defaultValue:"simple",values:[{label:"ToIP Style",value:"simple"},{label:"eSSIF-Lab Style",value:"complex"}],mdxType:"Tabs"},(0,n.kt)(h.Z,{value:"simple",mdxType:"TabItem"},(0,n.kt)("p",null,"The simplest example is where a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is replaced with a regular ",(0,n.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"markdown link")),(0,n.kt)("p",null,"In this case, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," ",(0,n.kt)("inlineCode",{parentName:"p"},"[Actions](@)")," is replaced with ",(0,n.kt)("inlineCode",{parentName:"p"},"[Actions](/#action)"),"\nwhere:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"hrgfile")," is the contents of the field ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".",(0,n.kt)("inlineCode",{parentName:"li"},"scope.hrgfile"),".")),(0,n.kt)("p",null,"Note that if the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," refers to a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," that differs from the current ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", then the URL should be preceeded by the text specified in the ",(0,n.kt)("inlineCode",{parentName:"p"},"website")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", because it would not be a relative (local) hyperlink.")),(0,n.kt)(h.Z,{value:"complex",mdxType:"TabItem"},(0,n.kt)("p",null,"A more complex example is what is done within eSSIF-Lab, where the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," not only want ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," to be linked to their (rendered) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),", but also want them to be provided with a tooltip that states their ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definitions"),"."),(0,n.kt)("p",null,"In this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," ",(0,n.kt)("inlineCode",{parentName:"p"},"[Actions](@)")," is replaced with ",(0,n.kt)("inlineCode",{parentName:"p"},'Actions'),"\nwhere:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," is the text provided in the ",(0,n.kt)("inlineCode",{parentName:"li"},"hoverText")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," whose ",(0,n.kt)("inlineCode",{parentName:"li"},"term")," field is ",(0,n.kt)("inlineCode",{parentName:"li"},"action"),", and"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"")," represent a React component that supports linking and tooltip functionality, so that users hovering over the link will see a popup/tooltip with the text ",(0,n.kt)("inlineCode",{parentName:"li"},""),", and will navigate to the location of the (human readable, i.e. rendered) file that contains details and further explanations, as specified in the ",(0,n.kt)("inlineCode",{parentName:"li"},"navurl")," field of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),".")),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"The implementation of the ",(0,n.kt)("inlineCode",{parentName:"p"},"")," ... ",(0,n.kt)("inlineCode",{parentName:"p"},"")," construct will differ from that which is used by eSSIF-Lab, because a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that is defined in this, or another ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", lives in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file")," at ",(0,n.kt)("inlineCode",{parentName:"p"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"p"},"curatedir"),"/",(0,n.kt)("inlineCode",{parentName:"p"},"locator"),", where"),(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"scopedir")," is the URL that locates the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"curatedir")," is the directory in that ",(0,n.kt)("inlineCode",{parentName:"li"},"scopedir")," where ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic units")," (c.q. ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),") live; its value is found both in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," and in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),";"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"locator")," is the path (including filename), relative to ",(0,n.kt)("inlineCode",{parentName:"li"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"li"},"curatedir"),"/, of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated file")," that describes the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that is being referred to.")))))),(0,n.kt)("p",null,"The essentials of the rewriting start with the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," is called, and proceed as follows:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"access the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", and in case the ",(0,n.kt)("inlineCode",{parentName:"li"},"scopetag")," is not of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", look up the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," associated with that ",(0,n.kt)("inlineCode",{parentName:"li"},"scopetag")," and obtain its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),";"),(0,n.kt)("li",{parentName:"ul"},"using the ",(0,n.kt)("inlineCode",{parentName:"li"},"vsntag"),", locate the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," (or if ",(0,n.kt)("inlineCode",{parentName:"li"},"vsntag")," isn't specified, use the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," default ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"-file as specified in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope's")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),");"),(0,n.kt)("li",{parentName:"ul"},"Find the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," that has a ",(0,n.kt)("inlineCode",{parentName:"li"},"term"),"-field that is the same as ",(0,n.kt)("inlineCode",{parentName:"li"},"term"),";")),(0,n.kt)("p",null,"At this point, all data is available for constructing the replacement text. As we have seen, it depends on the situation that need to be supported how the actual construction needs to be done."),(0,n.kt)("h2",{id:"processing-errors-and-warnings"},"Processing, Errors and Warnings"),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," starts by reading its command-line and configuration file. If the command-line has a key that is also found in the configuration file, the command-line key-value pair takes precedence. The resulting set of key-value pairs is tested for proper syntax and validity. Every improper syntax and every invalidity found will be logged. Improper syntax may be e.g. an invalid ",(0,n.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Glob_(programming)#Syntax"},"globpattern"),". Invalidities include non-existing directories or files, lack of write-permissions where needed, etc."),(0,n.kt)("p",null,"Then, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," reads the specified input files (in arbitrary order), and for each of them, produces an output file that is the same as the input file except for the fact that all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," have been replaced with regular ",(0,n.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"markdown links"),", and (optionally) with additional texts that are to be used by third-party rendering tools for enhanced rendering of such links. An example of this would be text that can be used to enhance a link with a popup that contains the definition, or a description of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," that is being referenced."),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," logs every error- and/or warning condition that it comes across while processing its configuration file, commandline parameters, and input files, in a way that helps tool-operators and document ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," to identify and fix such conditions."),(0,n.kt)("h2",{id:"deploying-the-tool"},"Deploying the Tool"),(0,n.kt)("p",null,"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," comes with documentation that enables developers to ascertain its correct functioning (e.g. by using a test set of files, test scripts that exercise its parameters, etc.), and also enables them to deploy the tool in a git repo and author/modify CI-pipes to use that deployment."))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/83d6452b.0ee1da4a.js b/assets/js/83d6452b.b0cc2a55.js similarity index 98% rename from assets/js/83d6452b.0ee1da4a.js rename to assets/js/83d6452b.b0cc2a55.js index 2f2f159468..3c3c8ec9bb 100644 --- a/assets/js/83d6452b.0ee1da4a.js +++ b/assets/js/83d6452b.b0cc2a55.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[1437],{3905:function(e,t,r){r.d(t,{Zo:function(){return l},kt:function(){return d}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),f=p(r),d=o,m=f["".concat(s,".").concat(d)]||f[d]||u[d]||i;return r?n.createElement(m,c(c({ref:t},l),{},{components:r})):n.createElement(m,c({ref:t},l))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a.mdxType="string"==typeof e?e:o,c[1]=a;for(var p=2;p=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),f=p(r),d=o,m=f["".concat(s,".").concat(d)]||f[d]||u[d]||i;return r?n.createElement(m,c(c({ref:t},l),{},{components:r})):n.createElement(m,c({ref:t},l))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a.mdxType="string"==typeof e?e:o,c[1]=a;for(var p=2;p=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}var c=o.createContext({}),p=function(t){var e=o.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):r(r({},e),t)),n},l=function(t){var e=p(t.components);return o.createElement(c.Provider,{value:e},t.children)},h={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},u=o.forwardRef((function(t,e){var n=t.components,i=t.mdxType,a=t.originalType,c=t.parentName,l=s(t,["components","mdxType","originalType","parentName"]),u=p(n),m=i,f=u["".concat(c,".").concat(m)]||u[m]||h[m]||a;return n?o.createElement(f,r(r({ref:e},l),{},{components:n})):o.createElement(f,r({ref:e},l))}));function m(t,e){var n=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var a=n.length,r=new Array(a);r[0]=u;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:i,r[1]=s;for(var p=2;p=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}var c=o.createContext({}),p=function(t){var e=o.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):r(r({},e),t)),n},l=function(t){var e=p(t.components);return o.createElement(c.Provider,{value:e},t.children)},h={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},u=o.forwardRef((function(t,e){var n=t.components,i=t.mdxType,a=t.originalType,c=t.parentName,l=s(t,["components","mdxType","originalType","parentName"]),u=p(n),m=i,f=u["".concat(c,".").concat(m)]||u[m]||h[m]||a;return n?o.createElement(f,r(r({ref:e},l),{},{components:n})):o.createElement(f,r({ref:e},l))}));function m(t,e){var n=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var a=n.length,r=new Array(a);r[0]=u;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:i,r[1]=s;for(var p=2;p=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var h=n.createContext({}),c=function(e){var t=n.useContext(h),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=c(e.components);return n.createElement(h.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,h=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),f=c(r),p=i,u=f["".concat(h,".").concat(p)]||f[p]||l[p]||a;return r?n.createElement(u,o(o({ref:t},d),{},{components:r})):n.createElement(u,o({ref:t},d))}));function p(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=f;var s={};for(var h in t)hasOwnProperty.call(t,h)&&(s[h]=t[h]);s.originalType=e,s.mdxType="string"==typeof e?e:i,o[1]=s;for(var c=2;c=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var h=n.createContext({}),c=function(e){var t=n.useContext(h),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=c(e.components);return n.createElement(h.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,h=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),f=c(r),p=i,u=f["".concat(h,".").concat(p)]||f[p]||l[p]||a;return r?n.createElement(u,o(o({ref:t},d),{},{components:r})):n.createElement(u,o({ref:t},d))}));function p(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=f;var s={};for(var h in t)hasOwnProperty.call(t,h)&&(s[h]=t[h]);s.originalType=e,s.mdxType="string"==typeof e?e:i,o[1]=s;for(var c=2;c=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),p=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},f=function(e){var t=p(e.components);return a.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,f=s(e,["components","mdxType","originalType","parentName"]),u=p(r),d=n,m=u["".concat(c,".").concat(d)]||u[d]||l[d]||o;return r?a.createElement(m,i(i({ref:t},f),{},{components:r})):a.createElement(m,i({ref:t},f))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var p=2;p=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),p=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},f=function(e){var t=p(e.components);return a.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,f=s(e,["components","mdxType","originalType","parentName"]),u=p(r),d=n,m=u["".concat(c,".").concat(d)]||u[d]||l[d]||o;return r?a.createElement(m,i(i({ref:t},f),{},{components:r})):a.createElement(m,i({ref:t},f))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var p=2;p=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(r),f=i,d=m["".concat(c,".").concat(f)]||m[f]||u[f]||o;return r?n.createElement(d,a(a({ref:t},p),{},{components:r})):n.createElement(d,a({ref:t},p))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:i,a[1]=s;for(var l=2;l=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(r),f=i,d=m["".concat(c,".").concat(f)]||m[f]||u[f]||o;return r?n.createElement(d,a(a({ref:t},p),{},{components:r})):n.createElement(d,a({ref:t},p))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:i,a[1]=s;for(var l=2;l=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=i.createContext({}),p=function(e){var t=i.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},l=function(e){var t=p(e.components);return i.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=p(n),u=o,f=d["".concat(c,".").concat(u)]||d[u]||m[u]||a;return n?i.createElement(f,r(r({ref:t},l),{},{components:n})):i.createElement(f,r({ref:t},l))}));function u(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,r=new Array(a);r[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,r[1]=s;for(var p=2;p=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=i.createContext({}),p=function(e){var t=i.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},l=function(e){var t=p(e.components);return i.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=p(n),u=o,f=d["".concat(c,".").concat(u)]||d[u]||m[u]||a;return n?i.createElement(f,r(r({ref:t},l),{},{components:n})):i.createElement(f,r({ref:t},l))}));function u(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,r=new Array(a);r[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,r[1]=s;for(var p=2;p=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),h=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},p=function(e){var t=h(e.components);return i.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),u=h(o),f=n,l=u["".concat(c,".").concat(f)]||u[f]||d[f]||s;return o?i.createElement(l,a(a({ref:t},p),{},{components:o})):i.createElement(l,a({ref:t},p))}));function f(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=o.length,a=new Array(s);a[0]=u;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:n,a[1]=r;for(var h=2;h=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),h=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):r(r({},t),e)),o},p=function(e){var t=h(e.components);return i.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),u=h(o),f=n,l=u["".concat(c,".").concat(f)]||u[f]||d[f]||s;return o?i.createElement(l,r(r({ref:t},p),{},{components:o})):i.createElement(l,r({ref:t},p))}));function f(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=o.length,r=new Array(s);r[0]=u;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:n,r[1]=a;for(var h=2;h=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=i.createContext({}),l=function(e){var t=i.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return i.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(n),f=r,u=m["".concat(c,".").concat(f)]||m[f]||d[f]||o;return n?i.createElement(u,a(a({ref:t},p),{},{components:n})):i.createElement(u,a({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,a=new Array(o);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var l=2;l=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=i.createContext({}),l=function(e){var t=i.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return i.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(n),f=r,u=m["".concat(c,".").concat(f)]||m[f]||d[f]||o;return n?i.createElement(u,a(a({ref:t},p),{},{components:n})):i.createElement(u,a({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,a=new Array(o);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var l=2;l=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=i.createContext({}),p=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},m=function(e){var t=p(e.components);return i.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var o=e.components,r=e.mdxType,n=e.originalType,c=e.parentName,m=a(e,["components","mdxType","originalType","parentName"]),u=p(o),g=r,d=u["".concat(c,".").concat(g)]||u[g]||l[g]||n;return o?i.createElement(d,s(s({ref:t},m),{},{components:o})):i.createElement(d,s({ref:t},m))}));function g(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=o.length,s=new Array(n);s[0]=u;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:r,s[1]=a;for(var p=2;p=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=i.createContext({}),p=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},m=function(e){var t=p(e.components);return i.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var o=e.components,r=e.mdxType,n=e.originalType,c=e.parentName,m=a(e,["components","mdxType","originalType","parentName"]),u=p(o),g=r,d=u["".concat(c,".").concat(g)]||u[g]||l[g]||n;return o?i.createElement(d,s(s({ref:t},m),{},{components:o})):i.createElement(d,s({ref:t},m))}));function g(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=o.length,s=new Array(n);s[0]=u;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:r,s[1]=a;for(var p=2;p=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,r=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(i),d=a,m=u["".concat(c,".").concat(d)]||u[d]||h[d]||r;return i?n.createElement(m,o(o({ref:t},p),{},{components:i})):n.createElement(m,o({ref:t},p))}));function d(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=i.length,o=new Array(r);o[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,o[1]=s;for(var l=2;l=0||(s[i]=e[i]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(s[i]=e[i])}return s}var c=o.createContext({}),l=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},h=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var i=e.components,s=e.mdxType,n=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),d=l(i),f=s,m=d["".concat(c,".").concat(f)]||d[f]||p[f]||n;return i?o.createElement(m,a(a({ref:t},h),{},{components:i})):o.createElement(m,a({ref:t},h))}));function f(e,t){var i=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=i.length,a=new Array(n);a[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:s,a[1]=r;for(var l=2;l=0||(s[i]=e[i]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(s[i]=e[i])}return s}var c=o.createContext({}),l=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},h=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var i=e.components,s=e.mdxType,n=e.originalType,c=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),d=l(i),f=s,m=d["".concat(c,".").concat(f)]||d[f]||p[f]||n;return i?o.createElement(m,a(a({ref:t},h),{},{components:i})):o.createElement(m,a({ref:t},h))}));function f(e,t){var i=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=i.length,a=new Array(n);a[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:s,a[1]=r;for(var l=2;l=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),d=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):r(r({},t),e)),o},h=function(e){var t=d(e.components);return i.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=d(o),m=n,f=p["".concat(c,".").concat(m)]||p[m]||l[m]||a;return o?i.createElement(f,r(r({ref:t},h),{},{components:o})):i.createElement(f,r({ref:t},h))}));function m(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,r=new Array(a);r[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,r[1]=s;for(var d=2;d=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),d=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):r(r({},t),e)),o},h=function(e){var t=d(e.components);return i.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=d(o),m=n,f=p["".concat(c,".").concat(m)]||p[m]||l[m]||a;return o?i.createElement(f,r(r({ref:t},h),{},{components:o})):i.createElement(f,r({ref:t},h))}));function m(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,r=new Array(a);r[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,r[1]=s;for(var d=2;d=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var m=o.createContext({}),c=function(e){var t=o.useContext(m),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},h=function(e){var t=c(e.components);return o.createElement(m.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,r=e.originalType,m=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=c(i),u=n,d=p["".concat(m,".").concat(u)]||p[u]||l[u]||r;return i?o.createElement(d,a(a({ref:t},h),{},{components:i})):o.createElement(d,a({ref:t},h))}));function u(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=i.length,a=new Array(r);a[0]=p;var s={};for(var m in t)hasOwnProperty.call(t,m)&&(s[m]=t[m]);s.originalType=e,s.mdxType="string"==typeof e?e:n,a[1]=s;for(var c=2;c=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var m=o.createContext({}),c=function(e){var t=o.useContext(m),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},h=function(e){var t=c(e.components);return o.createElement(m.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,r=e.originalType,m=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=c(i),u=n,d=p["".concat(m,".").concat(u)]||p[u]||l[u]||r;return i?o.createElement(d,a(a({ref:t},h),{},{components:i})):o.createElement(d,a({ref:t},h))}));function u(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=i.length,a=new Array(r);a[0]=p;var s={};for(var m in t)hasOwnProperty.call(t,m)&&(s[m]=t[m]);s.originalType=e,s.mdxType="string"==typeof e?e:n,a[1]=s;for(var c=2;c=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=o.createContext({}),l=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),m=l(r),d=n,f=m["".concat(c,".").concat(d)]||m[d]||p[d]||a;return r?o.createElement(f,i(i({ref:t},u),{},{components:r})):o.createElement(f,i({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var l=2;l=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=o.createContext({}),l=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),m=l(r),d=n,f=m["".concat(c,".").concat(d)]||m[d]||p[d]||a;return r?o.createElement(f,i(i({ref:t},u),{},{components:r})):o.createElement(f,i({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var l=2;l=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=o.createContext({}),l=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),f=r,m=d["".concat(c,".").concat(f)]||d[f]||u[f]||i;return n?o.createElement(m,a(a({ref:t},p),{},{components:n})):o.createElement(m,a({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var l=2;l=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=o.createContext({}),l=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),f=r,m=d["".concat(c,".").concat(f)]||d[f]||u[f]||i;return n?o.createElement(m,a(a({ref:t},p),{},{components:n})):o.createElement(m,a({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var l=2;l=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=u(e,["components","mdxType","originalType","parentName"]),d=c(r),f=o,h=d["".concat(s,".").concat(f)]||d[f]||p[f]||a;return r?n.createElement(h,i(i({ref:t},l),{},{components:r})):n.createElement(h,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var u={};for(var s in t)hasOwnProperty.call(t,s)&&(u[s]=t[s]);u.originalType=e,u.mdxType="string"==typeof e?e:o,i[1]=u;for(var c=2;c=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=u(e,["components","mdxType","originalType","parentName"]),d=c(r),f=o,h=d["".concat(s,".").concat(f)]||d[f]||p[f]||a;return r?n.createElement(h,i(i({ref:t},l),{},{components:r})):n.createElement(h,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var u={};for(var s in t)hasOwnProperty.call(t,s)&&(u[s]=t[s]);u.originalType=e,u.mdxType="string"==typeof e?e:o,i[1]=u;for(var c=2;c=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c=o.createContext({}),h=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=h(e.components);return o.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,i=e.mdxType,n=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=h(r),f=i,m=u["".concat(c,".").concat(f)]||u[f]||d[f]||n;return r?o.createElement(m,a(a({ref:t},p),{},{components:r})):o.createElement(m,a({ref:t},p))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=r.length,a=new Array(n);a[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:i,a[1]=s;for(var h=2;h=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c=o.createContext({}),h=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=h(e.components);return o.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,i=e.mdxType,n=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=h(r),f=i,m=u["".concat(c,".").concat(f)]||u[f]||d[f]||n;return r?o.createElement(m,a(a({ref:t},p),{},{components:r})):o.createElement(m,a({ref:t},p))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=r.length,a=new Array(n);a[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:i,a[1]=s;for(var h=2;h=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var c=o.createContext({}),h=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},p=function(e){var t=h(e.components);return o.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,r=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=h(i),f=n,d=m["".concat(c,".").concat(f)]||m[f]||l[f]||r;return i?o.createElement(d,a(a({ref:t},p),{},{components:i})):o.createElement(d,a({ref:t},p))}));function f(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=i.length,a=new Array(r);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,a[1]=s;for(var h=2;h=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var c=o.createContext({}),h=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},p=function(e){var t=h(e.components);return o.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,r=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=h(i),f=n,d=m["".concat(c,".").concat(f)]||m[f]||l[f]||r;return i?o.createElement(d,a(a({ref:t},p),{},{components:i})):o.createElement(d,a({ref:t},p))}));function f(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=i.length,a=new Array(r);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,a[1]=s;for(var h=2;h=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),h=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},p=function(e){var t=h(e.components);return i.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},l=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),l=h(o),f=n,m=l["".concat(c,".").concat(f)]||l[f]||d[f]||r;return o?i.createElement(m,a(a({ref:t},p),{},{components:o})):i.createElement(m,a({ref:t},p))}));function f(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,a=new Array(r);a[0]=l;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,a[1]=s;for(var h=2;h=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),h=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},p=function(e){var t=h(e.components);return i.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},l=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),l=h(o),f=n,m=l["".concat(c,".").concat(f)]||l[f]||d[f]||r;return o?i.createElement(m,a(a({ref:t},p),{},{components:o})):i.createElement(m,a({ref:t},p))}));function f(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,a=new Array(r);a[0]=l;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,a[1]=s;for(var h=2;h=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=i,m=u["".concat(s,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(m,o(o({ref:t},l),{},{components:r})):n.createElement(m,o({ref:t},l))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:i,o[1]=c;for(var p=2;p=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=i,m=u["".concat(s,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(m,o(o({ref:t},l),{},{components:r})):n.createElement(m,o({ref:t},l))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:i,o[1]=c;for(var p=2;p=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var c=i.createContext({}),h=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},d=function(e){var t=h(e.components);return i.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var o=e.components,a=e.mdxType,n=e.originalType,c=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),m=h(o),p=a,f=m["".concat(c,".").concat(p)]||m[p]||l[p]||n;return o?i.createElement(f,s(s({ref:t},d),{},{components:o})):i.createElement(f,s({ref:t},d))}));function p(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=o.length,s=new Array(n);s[0]=m;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:a,s[1]=r;for(var h=2;h=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var c=i.createContext({}),h=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},d=function(e){var t=h(e.components);return i.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var o=e.components,a=e.mdxType,n=e.originalType,c=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),m=h(o),p=a,f=m["".concat(c,".").concat(p)]||m[p]||l[p]||n;return o?i.createElement(f,s(s({ref:t},d),{},{components:o})):i.createElement(f,s({ref:t},d))}));function p(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=o.length,s=new Array(n);s[0]=m;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:a,s[1]=r;for(var h=2;h=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var c=n.createContext({}),h=function(e){var t=n.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},p=function(e){var t=h(e.components);return n.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),m=h(i),l=a,f=m["".concat(c,".").concat(l)]||m[l]||d[l]||o;return i?n.createElement(f,s(s({ref:t},p),{},{components:i})):n.createElement(f,s({ref:t},p))}));function l(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=i.length,s=new Array(o);s[0]=m;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:a,s[1]=r;for(var h=2;h=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var c=n.createContext({}),h=function(e){var t=n.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},d=function(e){var t=h(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},l=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),l=h(i),m=a,f=l["".concat(c,".").concat(m)]||l[m]||p[m]||o;return i?n.createElement(f,s(s({ref:t},d),{},{components:i})):n.createElement(f,s({ref:t},d))}));function m(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=i.length,s=new Array(o);s[0]=l;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:a,s[1]=r;for(var h=2;h=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),h=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):r(r({},t),e)),o},p=function(e){var t=h(e.components);return i.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},l=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),l=h(o),d=n,m=l["".concat(c,".").concat(d)]||l[d]||u[d]||s;return o?i.createElement(m,r(r({ref:t},p),{},{components:o})):i.createElement(m,r({ref:t},p))}));function d(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=o.length,r=new Array(s);r[0]=l;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:n,r[1]=a;for(var h=2;h=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),h=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):r(r({},t),e)),o},p=function(e){var t=h(e.components);return i.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},l=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),l=h(o),d=n,m=l["".concat(c,".").concat(d)]||l[d]||u[d]||s;return o?i.createElement(m,r(r({ref:t},p),{},{components:o})):i.createElement(m,r({ref:t},p))}));function d(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=o.length,r=new Array(s);r[0]=l;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:n,r[1]=a;for(var h=2;h=0||(i[o]=e[o]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(i[o]=e[o])}return i}var l=n.createContext({}),c=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},u=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var o=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),m=c(o),f=i,d=m["".concat(l,".").concat(f)]||m[f]||p[f]||r;return o?n.createElement(d,s(s({ref:t},u),{},{components:o})):n.createElement(d,s({ref:t},u))}));function f(e,t){var o=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=o.length,s=new Array(r);s[0]=m;var a={};for(var l in t)hasOwnProperty.call(t,l)&&(a[l]=t[l]);a.originalType=e,a.mdxType="string"==typeof e?e:i,s[1]=a;for(var c=2;c=0||(i[o]=e[o]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(i[o]=e[o])}return i}var l=n.createContext({}),c=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},u=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var o=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),m=c(o),f=i,d=m["".concat(l,".").concat(f)]||m[f]||p[f]||r;return o?n.createElement(d,s(s({ref:t},u),{},{components:o})):n.createElement(d,s({ref:t},u))}));function f(e,t){var o=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=o.length,s=new Array(r);s[0]=m;var a={};for(var l in t)hasOwnProperty.call(t,l)&&(a[l]=t[l]);a.originalType=e,a.mdxType="string"==typeof e?e:i,s[1]=a;for(var c=2;c=0||(o[i]=t[i]);return o}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(o[i]=t[i])}return o}var c=a.createContext({}),h=function(t){var e=a.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):s(s({},e),t)),i},d=function(t){var e=h(t.components);return a.createElement(c.Provider,{value:e},t.children)},l={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},m=a.forwardRef((function(t,e){var i=t.components,o=t.mdxType,n=t.originalType,c=t.parentName,d=r(t,["components","mdxType","originalType","parentName"]),m=h(i),p=o,f=m["".concat(c,".").concat(p)]||m[p]||l[p]||n;return i?a.createElement(f,s(s({ref:e},d),{},{components:i})):a.createElement(f,s({ref:e},d))}));function p(t,e){var i=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var n=i.length,s=new Array(n);s[0]=m;var r={};for(var c in e)hasOwnProperty.call(e,c)&&(r[c]=e[c]);r.originalType=t,r.mdxType="string"==typeof t?t:o,s[1]=r;for(var h=2;h child <"+("string"==typeof t.type?t.type:t.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:i.filter(Boolean))?e:[]}(t).map((function(t){var e=t.props;return{value:e.value,label:e.label,attributes:e.attributes,default:e.default}}))}function m(t){var e=t.values,i=t.children;return(0,o.useMemo)((function(){var t=null!=e?e:l(i);return function(t){var e=(0,h.l)(t,(function(t,e){return t.value===e.value}));if(e.length>0)throw new Error('Docusaurus error: Duplicate values "'+e.map((function(t){return t.value})).join(", ")+'" found in . Every value needs to be unique.')}(t),t}),[e,i])}function p(t){var e=t.value;return t.tabValues.some((function(t){return t.value===e}))}function f(t){var e=t.queryString,i=void 0!==e&&e,a=t.groupId,n=(0,r.k6)(),s=function(t){var e=t.queryString,i=void 0!==e&&e,a=t.groupId;if("string"==typeof i)return i;if(!1===i)return null;if(!0===i&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=a?a:null}({queryString:i,groupId:a});return[(0,c._X)(s),(0,o.useCallback)((function(t){if(s){var e=new URLSearchParams(n.location.search);e.set(s,t),n.replace(Object.assign({},n.location,{search:e.toString()}))}}),[s,n])]}function g(t){var e,i,a,n,s=t.defaultValue,r=t.queryString,c=void 0!==r&&r,h=t.groupId,l=m(t),g=(0,o.useState)((function(){return function(t){var e,i=t.defaultValue,a=t.tabValues;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(i){if(!p({value:i,tabValues:a}))throw new Error('Docusaurus error: The has a defaultValue "'+i+'" but none of its children has the corresponding value. Available values are: '+a.map((function(t){return t.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return i}var o=null!=(e=a.find((function(t){return t.default})))?e:a[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:s,tabValues:l})})),u=g[0],y=g[1],v=f({queryString:c,groupId:h}),b=v[0],k=v[1],w=(e=function(t){return t?"docusaurus.tab."+t:null}({groupId:h}.groupId),i=(0,d.Nk)(e),a=i[0],n=i[1],[a,(0,o.useCallback)((function(t){e&&n.set(t)}),[e,n])]),x=w[0],S=w[1],T=function(){var t=null!=b?b:x;return p({value:t,tabValues:l})?t:null}();return(0,o.useLayoutEffect)((function(){T&&y(T)}),[T]),{selectedValue:u,selectValue:(0,o.useCallback)((function(t){if(!p({value:t,tabValues:l}))throw new Error("Can't select invalid tab value="+t);y(t),k(t),S(t)}),[k,S,l]),tabValues:l}}var u=i(2389),y="tabList__CuJ",v="tabItem_LNqP";function b(t){var e=t.className,i=t.block,r=t.selectedValue,c=t.selectValue,h=t.tabValues,d=[],l=(0,s.o5)().blockElementScrollPositionUntilNextRender,m=function(t){var e=t.currentTarget,i=d.indexOf(e),a=h[i].value;a!==r&&(l(e),c(a))},p=function(t){var e,i=null;switch(t.key){case"Enter":m(t);break;case"ArrowRight":var a,o=d.indexOf(t.currentTarget)+1;i=null!=(a=d[o])?a:d[0];break;case"ArrowLeft":var n,s=d.indexOf(t.currentTarget)-1;i=null!=(n=d[s])?n:d[d.length-1]}null==(e=i)||e.focus()};return o.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":i},e)},h.map((function(t){var e=t.value,i=t.label,s=t.attributes;return o.createElement("li",(0,a.Z)({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,key:e,ref:function(t){return d.push(t)},onKeyDown:p,onClick:m},s,{className:(0,n.Z)("tabs__item",v,null==s?void 0:s.className,{"tabs__item--active":r===e})}),null!=i?i:e)})))}function k(t){var e=t.lazy,i=t.children,a=t.selectedValue,n=(Array.isArray(i)?i:[i]).filter(Boolean);if(e){var s=n.find((function(t){return t.props.value===a}));return s?(0,o.cloneElement)(s,{className:"margin-top--md"}):null}return o.createElement("div",{className:"margin-top--md"},n.map((function(t,e){return(0,o.cloneElement)(t,{key:e,hidden:t.props.value!==a})})))}function w(t){var e=g(t);return o.createElement("div",{className:(0,n.Z)("tabs-container",y)},o.createElement(b,(0,a.Z)({},t,e)),o.createElement(k,(0,a.Z)({},t,e)))}function x(t){var e=(0,u.Z)();return o.createElement(w,(0,a.Z)({key:String(e)},t))}},3405:function(t,e,i){i.r(e),i.d(e,{assets:function(){return d},contentTitle:function(){return c},default:function(){return p},frontMatter:function(){return r},metadata:function(){return h},toc:function(){return l}});var a=i(7462),o=i(3366),n=(i(7294),i(3905)),s=(i(4996),i(4866),i(5162),["components"]),r={id:"mrg",sidebar_label:"MRG (Machine Readable Glossary)",date:20220303},c="Machine Readable Glossary (MRG)",h={unversionedId:"spec-files/mrg",id:"spec-files/mrg",title:"Machine Readable Glossary (MRG)",description:"Every scope has (at least) one Machine Readable Inventory (that we call a Machine Readable Glossary or MRG), that renders the terminology of a specific scope into a specific, well-defined format that is described in this document. An MRG is meant to be used by the tools from the toolbox, e.g. for creating a HRG, or to help resolve TermRefs. A scope may have multiple MRGs, each of which represents a specific version of its terminology.",source:"@site/docs/spec-files/21-mrg.md",sourceDirName:"spec-files",slug:"/spec-files/mrg",permalink:"/tev2-specifications/docs/spec-files/mrg",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-files/21-mrg.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695712473,formattedLastUpdatedAt:"Sep 26, 2023",sidebarPosition:21,frontMatter:{id:"mrg",sidebar_label:"MRG (Machine Readable Glossary)",date:20220303},sidebar:"tev2SideBar",previous:{title:"Profile Templates",permalink:"/tev2-specifications/docs/spec-files/profile-templates"},next:{title:"HRG (Human Readable Glossary)",permalink:"/tev2-specifications/docs/spec-files/hrg"}},d={},l=[{value:"File naming conventions",id:"mrg-file-naming",level:2},{value:"MRG structure",id:"mrg-structure",level:2},{value:"MRG Terminology section",id:"mrg-terminology",level:3},{value:"MRG scopes section",id:"mrg-scopes",level:3},{value:"MRG Entries (the entries section)",id:"mrg-entries",level:2}],m={toc:l};function p(t){var e=t.components,i=(0,o.Z)(t,s);return(0,n.kt)("wrapper",(0,a.Z)({},m,i,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"machine-readable-glossary-mrg"},"Machine Readable Glossary (MRG)"),(0,n.kt)("p",null,"Every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," has (at least) one ",(0,n.kt)("strong",{parentName:"p"},"Machine Readable Inventory"),(0,n.kt)("sup",{parentName:"p",id:"fnref-1"},(0,n.kt)("a",{parentName:"sup",href:"#fn-1",className:"footnote-ref"},"1"))," (that we call a ",(0,n.kt)("strong",{parentName:"p"},"Machine Readable Glossary")," or ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"), that renders the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," into a specific, well-defined format that is described in this document. An ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is meant to be used by the tools from the ",(0,n.kt)("a",{parentName:"p",href:"/docs-toolbox"},"toolbox"),", e.g. for creating a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),", or to help resolve ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),". A ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," may have multiple ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),", each of which represents a specific version of its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),"."),(0,n.kt)("h2",{id:"mrg-file-naming"},"File naming conventions"),(0,n.kt)("p",null,"The file naming conventions apply to one particular ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which implies that there is a single ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", a single ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossarydir",hovertext:"Glossarydir: a directory within a Scopedir within which the different versions of its (Machine Readable and Human Readable) Glossaries are created and maintained."},"glossarydir"),", and a single ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," (called ",(0,n.kt)("inlineCode",{parentName:"p"},"{scopedir}")," here). Within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", the meaning of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags"),", i.e. the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," to which they refer, are defined in/by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". "),(0,n.kt)("p",null,"Within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossarydir",hovertext:"Glossarydir: a directory within a Scopedir within which the different versions of its (Machine Readable and Human Readable) Glossaries are created and maintained."},"glossarydir")," we can generate (or import), and hence also find all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"-files that are needed within its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". We use the following file naming convention for such files:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("inlineCode",{parentName:"strong"},"mrg...yaml"))," is the name of a file that contains an actual ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", or it is a file that links (references) such a file, where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},""))," is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," in which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is curated, as specified in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," we are in. Thus, its value must either be that of the ",(0,n.kt)("inlineCode",{parentName:"li"},"scopetag"),"-field in the ",(0,n.kt)("a",{parentName:"li",href:"docs/spec-files/saf#terminology"},"scope section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", or it must be one of the values in the ",(0,n.kt)("inlineCode",{parentName:"li"},"scopetags"),"-field in the ",(0,n.kt)("a",{parentName:"li",href:"docs/spec-files/saf#scopes"},"scopes (plural) section")," of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},""))," is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," for which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," contains ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries"),". Its value must be either one of the ",(0,n.kt)("inlineCode",{parentName:"li"},"vsntag"),"-fields, or appear in one of the ",(0,n.kt)("inlineCode",{parentName:"li"},"alatvsntag"),"-fields in the ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-files/saf#versions"},"versions section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".")),(0,n.kt)("p",null,"This naming convention enables tools (as well as ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," and others) that operate within a particular ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", to quickly find a particular ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that is relevant for that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,n.kt)("h2",{id:"mrg-structure"},"MRG structure"),(0,n.kt)("p",null,"A Machine Readable Glossary (MRG) is a YAML (or JSON) file that has three sections:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"terminology"))," specifies the characteristics of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". This includes the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," and ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", as well as the license under which the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," can be used."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"scopes"))," specifies which (other) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," are relevant to this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". This includes the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," and ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," of any such ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"entries"))," contains an (unsorted) list of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries"),".")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Example of sections `terminology` and `scopes`"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-yaml"},"terminology: # the fields below must match the corresponding data in the SAF\n scopetag: tev2 # scope, the terminology of which is contained in this MRG\n scopedir: https://github.com/tno-terminology-design/tev2-specifications/tree/master/docs\n curatedir: terms\n vsntag: v0.9.4\n altvsntags: [ latest ]\n license: LICENSE.md\nscopes: # mappings of scopetags that are used, and their scopedirs\n - scopetag: essiflab\n scopedir: https://github.com/essif-lab/framework/tree/master/docs\n - scopetag: ctwg\n scopedir: https://github.com/trustoverip/ctwg\nentries: # here follows an (unsorted) list of MRG entries\n"))),(0,n.kt)("h3",{id:"mrg-terminology"},"MRG ",(0,n.kt)("inlineCode",{parentName:"h3"},"Terminology")," section"),(0,n.kt)("p",null,"The following fields are defined for the sections ",(0,n.kt)("inlineCode",{parentName:"p"},"terminology"),":"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"Scopetag")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," in which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is defined.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"URL that locates the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," associated with that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"curatedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path to the directory where all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated files")," are located. This directory may contain subdirectories to allow ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," to organize the files in any way they see fit. Full URL is ",(0,n.kt)("inlineCode",{parentName:"td"},""),"/",(0,n.kt)("inlineCode",{parentName:"td"},""),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," by which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," can be distinguished from the other versions of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," (in other ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),"). Its value MUST match the ",(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")," field of the corresponding ",(0,n.kt)("inlineCode",{parentName:"td"},"versions")," section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"))),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"altvsntags")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"List of alternative ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontags")," that can be used to ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," this version. Each of the values MUST be in the list of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontags")," in the ",(0,n.kt)("inlineCode",{parentName:"td"},"altvsntags")," field of the the corresponding ",(0,n.kt)("inlineCode",{parentName:"td"},"versions")," section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"license")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"File that contains the (default) licensing conditions. Full URL is ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"license"),". Its value MUST match the ",(0,n.kt)("inlineCode",{parentName:"td"},"license")," field of the corresponding ",(0,n.kt)("inlineCode",{parentName:"td"},"versions")," section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", or if that isn't specified, the ",(0,n.kt)("inlineCode",{parentName:"td"},"license")," field of the ",(0,n.kt)("inlineCode",{parentName:"td"},"scope")," section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".")))),(0,n.kt)("h3",{id:"mrg-scopes"},"MRG ",(0,n.kt)("inlineCode",{parentName:"h3"},"scopes")," section"),(0,n.kt)("p",null,"The following fields are defined for the section ",(0,n.kt)("inlineCode",{parentName:"p"},"scopes"),":"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"Scopetag")," of a third-party ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," of which contains ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that have been imported into the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),". This ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," has been chosen by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," of which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is part, to refer to that particular third-party ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". This ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," may differ from the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of that third-party ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," have chosen for this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," ",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"URL that locates the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," associated with that third-party ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")))),(0,n.kt)("h2",{id:"mrg-entries"},"MRG Entries (the ",(0,n.kt)("inlineCode",{parentName:"h2"},"entries")," section)"),(0,n.kt)("p",null,"The ",(0,n.kt)("inlineCode",{parentName:"p"},"entries")," section of an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is a list of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries"),", the purpose of which is that the various tools can find all data that is relevant for the purpose that such a tool serves."),(0,n.kt)("p",null,"An ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," has a few fields that are always present, because the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," generates them, as follows:"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Field"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Value(s) that are assigned to the fields"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"Scopetag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from within which the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is obtained. This is either ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from within which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," has been generated, or the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," was imported. In the latter case, the ",(0,n.kt)("a",{parentName:"td",href:"#mrg-scopes"},(0,n.kt)("inlineCode",{parentName:"a"},"scopes")," section")," in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," MUST contain a mapping between the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")," and its associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"Versiontag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," from which the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is obtained. If the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," was constructed from a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),", its value equals the value of the ",(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")," field in the ",(0,n.kt)("a",{parentName:"td",href:"#mrg-terminology"},(0,n.kt)("inlineCode",{parentName:"a"},"terminology"),"-section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is a part of. As a result, ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag"),":",(0,n.kt)("inlineCode",{parentName:"td"},"versiontag")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," from which this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," has originated.",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-.]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"locator")),(0,n.kt)("td",{parentName:"tr",align:"left"},"path, relative to ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"curatedir"),"/, where ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")," can be obtained from the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopes")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", and ",(0,n.kt)("inlineCode",{parentName:"td"},"curatedir")," can be obtained from the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," that lives in this ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),", where the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," lives from which the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," was constructed.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"navurl")),(0,n.kt)("td",{parentName:"tr",align:"left"},"path, relative to the URL as specified in the ",(0,n.kt)("inlineCode",{parentName:"td"},"website")," field in the ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-files/saf#terminology"},(0,n.kt)("inlineCode",{parentName:"a"},"scope")," section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," (that lives in the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")," as specified in the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopes")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"), where the rendered version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," is located.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"headingids")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a list of the ",(0,n.kt)("a",{parentName:"td",href:"https://www.markdownguide.org/basic-syntax/#headings"},"markdown headings")," and/or ",(0,n.kt)("a",{parentName:"td",href:"https://www.markdownguide.org/extended-syntax/#linking-to-heading-ids"},"heading ids")," that exist in the file that contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),", and can serve as ",(0,n.kt)("inlineCode",{parentName:"td"},"trait")," in a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),".")))),(0,n.kt)("p",null,"An ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," has additional fields that come from the front matter of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," represents. Some fields are"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"mandatory for all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),", and hence will always appear in an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),"; these appear in the table below."),(0,n.kt)("li",{parentName:"ul"},"optional for ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts")," - typically, e.g. to accommodate for differences in the types ",(0,n.kt)("a",{parentName:"li",href:"@"},"terminological artifacts")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts")," document; these also appear in the table below."),(0,n.kt)("li",{parentName:"ul"},"optional in the sense that they are intended to be processed by TEv2 tool plugins - these are not documented here."),(0,n.kt)("li",{parentName:"ul"},"optional in the sense that they are intended to be used by third party rendering tools, such as Docusaurus or Jekyll - these are also not documented here.")),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"We need to think about how to refer readers to sections of plugins and rendering tool documentation that they might want/need to use.")),(0,n.kt)("p",null,"The following table documents the fields that are used within the context of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tev2",hovertext:"Tev2: a set of specifications and tools that caters for the Curation of Terminologies, as well as for its subsequent use in publications of different types (e.g. websites, whitepapers) and formats (e.g. html, LaTeX), as appropriate for different, individual Scopes."},"TEv2")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"Scopetag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from within which the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curate",hovertext:"Curate: to select, organize, and present Terms, Definitions, and other, related content in a thoughtful and purposeful manner to establish shared understanding among a Community working together on a particular set of objectives."},"curated"),", and obtained. The ",(0,n.kt)("a",{parentName:"td",href:"#mrg-scopes"},(0,n.kt)("inlineCode",{parentName:"a"},"scopes")," section")," in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," SHOULD contain a mapping between the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")," and its associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"Versiontag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," from which the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is obtained. If the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," was constructed from a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),", its value equals the value of the ",(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")," field in the ",(0,n.kt)("a",{parentName:"td",href:"#mrg-terminology"},(0,n.kt)("inlineCode",{parentName:"a"},"terminology"),"-section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is a part of. As a result, ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag"),":",(0,n.kt)("inlineCode",{parentName:"td"},"versiontag")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," from which this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," has originated.",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-.]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"term")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"Text")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and hence also the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that describes it, which includes its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definition"),". Its value is typically the value of the ",(0,n.kt)("inlineCode",{parentName:"td"},"glossaryTerm")," field, where all characters are made lower-case, any text between parentheses is discarded, and any (sequences of) spaces (or other special characters) are replaced with a ",(0,n.kt)("inlineCode",{parentName:"td"},"-"),"character.",(0,n.kt)("br",null),"The ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-syntax/term-ref-syntax#term"},(0,n.kt)("inlineCode",{parentName:"a"},"term"),"-field")," of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," that refers to this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," must match this value.",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"termType")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-type",hovertext:"Term Type: a Text that Identifies a particular *kind* of Semantic Unit within a particular Scope. Examples include `concept`, `relation`, `pattern` (or `mental-model`)."},"Text")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the kind of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," describes. Typical values would be ",(0,n.kt)("inlineCode",{parentName:"td"},"concept"),", ",(0,n.kt)("inlineCode",{parentName:"td"},"relation"),", ",(0,n.kt)("inlineCode",{parentName:"td"},"pattern")," (or ",(0,n.kt)("inlineCode",{parentName:"td"},"mental-model"),"), ",(0,n.kt)("inlineCode",{parentName:"td"},"term")," (or ",(0,n.kt)("inlineCode",{parentName:"td"},"alias"),"), or ",(0,n.kt)("inlineCode",{parentName:"td"},"usecase"),".",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"isa")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"Term identifier")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," of which this is a specialization.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"bodyFile")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path, relative to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),", that contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),". If not specified, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," in this file serves as the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"glossaryTerm")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Text that is used for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," in a human readable ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),". For example, for a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," called ",(0,n.kt)("inlineCode",{parentName:"td"},"member"),", you may want to specify a glossaryTerm ",(0,n.kt)("inlineCode",{parentName:"td"},"member (of a [community](@))"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"glossaryText")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Text that is used as the (raw) contents for the entry of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," in a human readable ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),". This text MUST be expected to contain ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"synonymOf")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"Term identifier")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the defined ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminological-artifact",hovertext:"Terminological Artifact: a basic building block of meaning or representation, i.e., a 'semantic unit' within the 'mind' of a Scope, such as a Concept, a Relation, or a Property."},"terminological artifact")," for which this is a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/synonym",hovertext:"Synonym: a Term that has the same (or similar) meaning as another Term."},"synonym"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"grouptags")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"List of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags"),", each of which signifies that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," documents, is part of the group of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that it represents.",(0,n.kt)("br",null),"Example: ",(0,n.kt)("inlineCode",{parentName:"td"},"[tev2, management]"),".",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("a",{parentName:"td",href:"https://www.debuggex.com/r/a51CXl1NzR3kwihT"},(0,n.kt)("inlineCode",{parentName:"a"},"(?:\\[\\s*([a-z0-9_-]+)\\s*(?:,\\s*([a-z0-9_-]+))*\\s*\\])?")),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"formPhrases")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"List of ",(0,n.kt)("a",{parentName:"td",href:"formphrase@"},"texts")," that are ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-tools/trrt#id"},"used to convert")," the ",(0,n.kt)("inlineCode",{parentName:"td"},"show text")," parts of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," into ",(0,n.kt)("inlineCode",{parentName:"td"},"term"),"s, for the purpose of accommodating plural forms (for nouns) or conjugate forms (for verbs). For details, see ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-syntax/form-phrase-syntax"},"'Syntax Specs - Form Phrases"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"status")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Text that identifies the status of the term. (",(0,n.kt)("a",{parentName:"td",href:"@"},"Communities")," of) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," may specify values for this field. An example is the ",(0,n.kt)("a",{parentName:"td",href:"https://github.com/trustoverip/concepts-and-terminology-wg/blob/master/docs/status-tags.md"},"status tags used by ToIP"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"created")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Date at which of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," was created, in the date format as used within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"updated")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Date at which of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," was last modified, in the date format as used within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"contributors")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Text that shows (or refers to) the people that have contributed to this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"attribution")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Text that credits the original creation of the texts in the document.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"originalLicense")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Reference to the license of the work from which the texts were derived.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"locator")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Text that identifies the file that holds the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," describes. The full URL of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," is ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"curatedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"locator"),", where ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")," and ",(0,n.kt)("inlineCode",{parentName:"td"},"curatedir")," can be found in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," (which is in the root of ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"). Note that ",(0,n.kt)("inlineCode",{parentName:"td"},"locator")," may contain a path.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"navurl")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"URL that locates a human readable, rendered version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," describes. This URL is used to resolve ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," that refer to this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"headingids")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"a list of the ",(0,n.kt)("a",{parentName:"td",href:"https://www.markdownguide.org/basic-syntax/#headings"},"markdown headings")," and/or ",(0,n.kt)("a",{parentName:"td",href:"https://www.markdownguide.org/extended-syntax/#linking-to-heading-ids"},"heading ids")," that exist in the file that contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),", and can serve as ",(0,n.kt)("inlineCode",{parentName:"td"},"trait")," in a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),".")))),(0,n.kt)("h1",{id:"footnotes"},"Footnotes"),(0,n.kt)("div",{className:"footnotes"},(0,n.kt)("hr",{parentName:"div"}),(0,n.kt)("ol",{parentName:"div"},(0,n.kt)("li",{parentName:"ol",id:"fn-1"},"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is an inventory rather than a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),", because it contains ",(0,n.kt)("em",{parentName:"li"},"all")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic units")," that are ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curate",hovertext:"Curate: to select, organize, and present Terms, Definitions, and other, related content in a thoughtful and purposeful manner to establish shared understanding among a Community working together on a particular set of objectives."},"curated")," within the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),": apart from ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),", it also include e.g., ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mental-model",hovertext:"Mental Model: A Semantic Unit that relates a set of Concepts (ideas), Relations between them, and constraints about a certain topic, into a coherent and consistent whole (sometimes called 'viewpoint', or 'way of thinking')."},"mental models")," and ",(0,n.kt)("a",{parentName:"li",href:"@"},"use cases"),". We choose to maintain the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term"),' "Machine Readable Glossary" (',(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"), because most of us would view it - initially, at least - as a list of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," and their ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definitions"),".",(0,n.kt)("a",{parentName:"li",href:"#fnref-1",className:"footnote-backref"},"\u21a9")))))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[8113],{3905:function(t,e,i){i.d(e,{Zo:function(){return d},kt:function(){return p}});var a=i(7294);function o(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function n(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function s(t){for(var e=1;e=0||(o[i]=t[i]);return o}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(o[i]=t[i])}return o}var c=a.createContext({}),h=function(t){var e=a.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):s(s({},e),t)),i},d=function(t){var e=h(t.components);return a.createElement(c.Provider,{value:e},t.children)},l={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},m=a.forwardRef((function(t,e){var i=t.components,o=t.mdxType,n=t.originalType,c=t.parentName,d=r(t,["components","mdxType","originalType","parentName"]),m=h(i),p=o,f=m["".concat(c,".").concat(p)]||m[p]||l[p]||n;return i?a.createElement(f,s(s({ref:e},d),{},{components:i})):a.createElement(f,s({ref:e},d))}));function p(t,e){var i=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var n=i.length,s=new Array(n);s[0]=m;var r={};for(var c in e)hasOwnProperty.call(e,c)&&(r[c]=e[c]);r.originalType=t,r.mdxType="string"==typeof t?t:o,s[1]=r;for(var h=2;h child <"+("string"==typeof t.type?t.type:t.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:i.filter(Boolean))?e:[]}(t).map((function(t){var e=t.props;return{value:e.value,label:e.label,attributes:e.attributes,default:e.default}}))}function m(t){var e=t.values,i=t.children;return(0,o.useMemo)((function(){var t=null!=e?e:l(i);return function(t){var e=(0,h.l)(t,(function(t,e){return t.value===e.value}));if(e.length>0)throw new Error('Docusaurus error: Duplicate values "'+e.map((function(t){return t.value})).join(", ")+'" found in . Every value needs to be unique.')}(t),t}),[e,i])}function p(t){var e=t.value;return t.tabValues.some((function(t){return t.value===e}))}function f(t){var e=t.queryString,i=void 0!==e&&e,a=t.groupId,n=(0,r.k6)(),s=function(t){var e=t.queryString,i=void 0!==e&&e,a=t.groupId;if("string"==typeof i)return i;if(!1===i)return null;if(!0===i&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=a?a:null}({queryString:i,groupId:a});return[(0,c._X)(s),(0,o.useCallback)((function(t){if(s){var e=new URLSearchParams(n.location.search);e.set(s,t),n.replace(Object.assign({},n.location,{search:e.toString()}))}}),[s,n])]}function g(t){var e,i,a,n,s=t.defaultValue,r=t.queryString,c=void 0!==r&&r,h=t.groupId,l=m(t),g=(0,o.useState)((function(){return function(t){var e,i=t.defaultValue,a=t.tabValues;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(i){if(!p({value:i,tabValues:a}))throw new Error('Docusaurus error: The has a defaultValue "'+i+'" but none of its children has the corresponding value. Available values are: '+a.map((function(t){return t.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return i}var o=null!=(e=a.find((function(t){return t.default})))?e:a[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:s,tabValues:l})})),u=g[0],y=g[1],v=f({queryString:c,groupId:h}),b=v[0],k=v[1],w=(e=function(t){return t?"docusaurus.tab."+t:null}({groupId:h}.groupId),i=(0,d.Nk)(e),a=i[0],n=i[1],[a,(0,o.useCallback)((function(t){e&&n.set(t)}),[e,n])]),x=w[0],S=w[1],T=function(){var t=null!=b?b:x;return p({value:t,tabValues:l})?t:null}();return(0,o.useLayoutEffect)((function(){T&&y(T)}),[T]),{selectedValue:u,selectValue:(0,o.useCallback)((function(t){if(!p({value:t,tabValues:l}))throw new Error("Can't select invalid tab value="+t);y(t),k(t),S(t)}),[k,S,l]),tabValues:l}}var u=i(2389),y="tabList__CuJ",v="tabItem_LNqP";function b(t){var e=t.className,i=t.block,r=t.selectedValue,c=t.selectValue,h=t.tabValues,d=[],l=(0,s.o5)().blockElementScrollPositionUntilNextRender,m=function(t){var e=t.currentTarget,i=d.indexOf(e),a=h[i].value;a!==r&&(l(e),c(a))},p=function(t){var e,i=null;switch(t.key){case"Enter":m(t);break;case"ArrowRight":var a,o=d.indexOf(t.currentTarget)+1;i=null!=(a=d[o])?a:d[0];break;case"ArrowLeft":var n,s=d.indexOf(t.currentTarget)-1;i=null!=(n=d[s])?n:d[d.length-1]}null==(e=i)||e.focus()};return o.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":i},e)},h.map((function(t){var e=t.value,i=t.label,s=t.attributes;return o.createElement("li",(0,a.Z)({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,key:e,ref:function(t){return d.push(t)},onKeyDown:p,onClick:m},s,{className:(0,n.Z)("tabs__item",v,null==s?void 0:s.className,{"tabs__item--active":r===e})}),null!=i?i:e)})))}function k(t){var e=t.lazy,i=t.children,a=t.selectedValue,n=(Array.isArray(i)?i:[i]).filter(Boolean);if(e){var s=n.find((function(t){return t.props.value===a}));return s?(0,o.cloneElement)(s,{className:"margin-top--md"}):null}return o.createElement("div",{className:"margin-top--md"},n.map((function(t,e){return(0,o.cloneElement)(t,{key:e,hidden:t.props.value!==a})})))}function w(t){var e=g(t);return o.createElement("div",{className:(0,n.Z)("tabs-container",y)},o.createElement(b,(0,a.Z)({},t,e)),o.createElement(k,(0,a.Z)({},t,e)))}function x(t){var e=(0,u.Z)();return o.createElement(w,(0,a.Z)({key:String(e)},t))}},3405:function(t,e,i){i.r(e),i.d(e,{assets:function(){return d},contentTitle:function(){return c},default:function(){return p},frontMatter:function(){return r},metadata:function(){return h},toc:function(){return l}});var a=i(7462),o=i(3366),n=(i(7294),i(3905)),s=(i(4996),i(4866),i(5162),["components"]),r={id:"mrg",sidebar_label:"MRG (Machine Readable Glossary)",date:20220303},c="Machine Readable Glossary (MRG)",h={unversionedId:"spec-files/mrg",id:"spec-files/mrg",title:"Machine Readable Glossary (MRG)",description:"Every scope has (at least) one Machine Readable Inventory (that we call a Machine Readable Glossary or MRG), that renders the terminology of a specific scope into a specific, well-defined format that is described in this document. An MRG is meant to be used by the tools from the toolbox, e.g. for creating a HRG, or to help resolve TermRefs. A scope may have multiple MRGs, each of which represents a specific version of its terminology.",source:"@site/docs/spec-files/21-mrg.md",sourceDirName:"spec-files",slug:"/spec-files/mrg",permalink:"/tev2-specifications/docs/spec-files/mrg",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-files/21-mrg.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695968786,formattedLastUpdatedAt:"Sep 29, 2023",sidebarPosition:21,frontMatter:{id:"mrg",sidebar_label:"MRG (Machine Readable Glossary)",date:20220303},sidebar:"tev2SideBar",previous:{title:"Profile Templates",permalink:"/tev2-specifications/docs/spec-files/profile-templates"},next:{title:"HRG (Human Readable Glossary)",permalink:"/tev2-specifications/docs/spec-files/hrg"}},d={},l=[{value:"File naming conventions",id:"mrg-file-naming",level:2},{value:"MRG structure",id:"mrg-structure",level:2},{value:"MRG Terminology section",id:"mrg-terminology",level:3},{value:"MRG scopes section",id:"mrg-scopes",level:3},{value:"MRG Entries (the entries section)",id:"mrg-entries",level:2}],m={toc:l};function p(t){var e=t.components,i=(0,o.Z)(t,s);return(0,n.kt)("wrapper",(0,a.Z)({},m,i,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"machine-readable-glossary-mrg"},"Machine Readable Glossary (MRG)"),(0,n.kt)("p",null,"Every ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," has (at least) one ",(0,n.kt)("strong",{parentName:"p"},"Machine Readable Inventory"),(0,n.kt)("sup",{parentName:"p",id:"fnref-1"},(0,n.kt)("a",{parentName:"sup",href:"#fn-1",className:"footnote-ref"},"1"))," (that we call a ",(0,n.kt)("strong",{parentName:"p"},"Machine Readable Glossary")," or ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"), that renders the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of a specific ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," into a specific, well-defined format that is described in this document. An ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is meant to be used by the tools from the ",(0,n.kt)("a",{parentName:"p",href:"/docs-toolbox"},"toolbox"),", e.g. for creating a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG"),", or to help resolve ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),". A ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," may have multiple ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),", each of which represents a specific version of its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),"."),(0,n.kt)("h2",{id:"mrg-file-naming"},"File naming conventions"),(0,n.kt)("p",null,"The file naming conventions apply to one particular ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", which implies that there is a single ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", a single ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossarydir",hovertext:"Glossarydir: a directory within a Scopedir within which the different versions of its (Machine Readable and Human Readable) Glossaries are created and maintained."},"glossarydir"),", and a single ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," (called ",(0,n.kt)("inlineCode",{parentName:"p"},"{scopedir}")," here). Within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", the meaning of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags"),", i.e. the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," to which they refer, are defined in/by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),". "),(0,n.kt)("p",null,"Within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossarydir",hovertext:"Glossarydir: a directory within a Scopedir within which the different versions of its (Machine Readable and Human Readable) Glossaries are created and maintained."},"glossarydir")," we can generate (or import), and hence also find all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"-files that are needed within its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". We use the following file naming convention for such files:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("inlineCode",{parentName:"strong"},"mrg...yaml"))," is the name of a file that contains an actual ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", or it is a file that links (references) such a file, where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},""))," is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," in which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is curated, as specified in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," we are in. Thus, its value must either be that of the ",(0,n.kt)("inlineCode",{parentName:"li"},"scopetag"),"-field in the ",(0,n.kt)("a",{parentName:"li",href:"docs/spec-files/saf#terminology"},"scope section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", or it must be one of the values in the ",(0,n.kt)("inlineCode",{parentName:"li"},"scopetags"),"-field in the ",(0,n.kt)("a",{parentName:"li",href:"docs/spec-files/saf#scopes"},"scopes (plural) section")," of that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},""))," is the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," for which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," contains ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"entries"),". Its value must be either one of the ",(0,n.kt)("inlineCode",{parentName:"li"},"vsntag"),"-fields, or appear in one of the ",(0,n.kt)("inlineCode",{parentName:"li"},"alatvsntag"),"-fields in the ",(0,n.kt)("a",{parentName:"li",href:"/docs/spec-files/saf#versions"},"versions section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".")),(0,n.kt)("p",null,"This naming convention enables tools (as well as ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," and others) that operate within a particular ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", to quickly find a particular ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that is relevant for that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,n.kt)("h2",{id:"mrg-structure"},"MRG structure"),(0,n.kt)("p",null,"A Machine Readable Glossary (MRG) is a YAML (or JSON) file that has three sections:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"terminology"))," specifies the characteristics of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". This includes the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," and ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", as well as the license under which the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," can be used."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"scopes"))," specifies which (other) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," are relevant to this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology"),". This includes the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," and ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir")," of any such ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"entries"))," contains an (unsorted) list of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries"),".")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Example of sections `terminology` and `scopes`"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-yaml"},"terminology: # the fields below must match the corresponding data in the SAF\n scopetag: tev2 # scope, the terminology of which is contained in this MRG\n scopedir: https://github.com/tno-terminology-design/tev2-specifications/tree/master/docs\n curatedir: terms\n vsntag: v0.9.4\n altvsntags: [ latest ]\n license: LICENSE.md\nscopes: # mappings of scopetags that are used, and their scopedirs\n - scopetag: essiflab\n scopedir: https://github.com/essif-lab/framework/tree/master/docs\n - scopetag: ctwg\n scopedir: https://github.com/trustoverip/ctwg\nentries: # here follows an (unsorted) list of MRG entries\n"))),(0,n.kt)("h3",{id:"mrg-terminology"},"MRG ",(0,n.kt)("inlineCode",{parentName:"h3"},"Terminology")," section"),(0,n.kt)("p",null,"The following fields are defined for the sections ",(0,n.kt)("inlineCode",{parentName:"p"},"terminology"),":"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"Scopetag")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," in which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is defined.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"URL that locates the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," associated with that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"curatedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path to the directory where all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated files")," are located. This directory may contain subdirectories to allow ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," to organize the files in any way they see fit. Full URL is ",(0,n.kt)("inlineCode",{parentName:"td"},""),"/",(0,n.kt)("inlineCode",{parentName:"td"},""),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," by which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," can be distinguished from the other versions of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," (in other ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),"). Its value MUST match the ",(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")," field of the corresponding ",(0,n.kt)("inlineCode",{parentName:"td"},"versions")," section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"))),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"altvsntags")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"List of alternative ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontags")," that can be used to ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identify")," this version. Each of the values MUST be in the list of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontags")," in the ",(0,n.kt)("inlineCode",{parentName:"td"},"altvsntags")," field of the the corresponding ",(0,n.kt)("inlineCode",{parentName:"td"},"versions")," section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"license")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"File that contains the (default) licensing conditions. Full URL is ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"license"),". Its value MUST match the ",(0,n.kt)("inlineCode",{parentName:"td"},"license")," field of the corresponding ",(0,n.kt)("inlineCode",{parentName:"td"},"versions")," section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),", or if that isn't specified, the ",(0,n.kt)("inlineCode",{parentName:"td"},"license")," field of the ",(0,n.kt)("inlineCode",{parentName:"td"},"scope")," section in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF"),".")))),(0,n.kt)("h3",{id:"mrg-scopes"},"MRG ",(0,n.kt)("inlineCode",{parentName:"h3"},"scopes")," section"),(0,n.kt)("p",null,"The following fields are defined for the section ",(0,n.kt)("inlineCode",{parentName:"p"},"scopes"),":"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"Scopetag")," of a third-party ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," of which contains ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that have been imported into the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),". This ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," has been chosen by the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," of which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is part, to refer to that particular third-party ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),". This ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," may differ from the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of that third-party ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," have chosen for this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," ",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},"URL that locates the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory")," associated with that third-party ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")))),(0,n.kt)("h2",{id:"mrg-entries"},"MRG Entries (the ",(0,n.kt)("inlineCode",{parentName:"h2"},"entries")," section)"),(0,n.kt)("p",null,"The ",(0,n.kt)("inlineCode",{parentName:"p"},"entries")," section of an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is a list of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries"),", the purpose of which is that the various tools can find all data that is relevant for the purpose that such a tool serves."),(0,n.kt)("p",null,"An ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," has a few fields that are always present, because the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrgt",hovertext:"MRGT: a software tool designed to create, manage, and process Machine Readable Glossaries (MRGs), as [specified by TEv2](/docs/spec-tools/mrgt). MRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"MRGT")," generates them, as follows:"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Field"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Value(s) that are assigned to the fields"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"Scopetag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from within which the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is obtained. This is either ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from within which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," has been generated, or the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from which the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," was imported. In the latter case, the ",(0,n.kt)("a",{parentName:"td",href:"#mrg-scopes"},(0,n.kt)("inlineCode",{parentName:"a"},"scopes")," section")," in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," MUST contain a mapping between the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")," and its associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"Versiontag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," from which the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is obtained. If the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," was constructed from a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),", its value equals the value of the ",(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")," field in the ",(0,n.kt)("a",{parentName:"td",href:"#mrg-terminology"},(0,n.kt)("inlineCode",{parentName:"a"},"terminology"),"-section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is a part of. As a result, ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag"),":",(0,n.kt)("inlineCode",{parentName:"td"},"versiontag")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," from which this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," has originated.",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-.]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"locator")),(0,n.kt)("td",{parentName:"tr",align:"left"},"path, relative to ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"curatedir"),"/, where ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")," can be obtained from the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopes")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", and ",(0,n.kt)("inlineCode",{parentName:"td"},"curatedir")," can be obtained from the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," that lives in this ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),", where the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," lives from which the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," was constructed.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"navurl")),(0,n.kt)("td",{parentName:"tr",align:"left"},"path, relative to the URL as specified in the ",(0,n.kt)("inlineCode",{parentName:"td"},"website")," field in the ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-files/saf#terminology"},(0,n.kt)("inlineCode",{parentName:"a"},"scope")," section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," (that lives in the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")," as specified in the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopes")," section of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"), where the rendered version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," is located.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"headingids")),(0,n.kt)("td",{parentName:"tr",align:"left"},"a list of the ",(0,n.kt)("a",{parentName:"td",href:"https://www.markdownguide.org/basic-syntax/#headings"},"markdown headings")," and/or ",(0,n.kt)("a",{parentName:"td",href:"https://www.markdownguide.org/extended-syntax/#linking-to-heading-ids"},"heading ids")," that exist in the file that contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),", and can serve as ",(0,n.kt)("inlineCode",{parentName:"td"},"trait")," in a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),".")))),(0,n.kt)("p",null,"An ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," has additional fields that come from the front matter of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," represents. Some fields are"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"mandatory for all ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts"),", and hence will always appear in an ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry"),"; these appear in the table below."),(0,n.kt)("li",{parentName:"ul"},"optional for ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts")," - typically, e.g. to accommodate for differences in the types ",(0,n.kt)("a",{parentName:"li",href:"@"},"terminological artifacts")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated texts")," document; these also appear in the table below."),(0,n.kt)("li",{parentName:"ul"},"optional in the sense that they are intended to be processed by TEv2 tool plugins - these are not documented here."),(0,n.kt)("li",{parentName:"ul"},"optional in the sense that they are intended to be used by third party rendering tools, such as Docusaurus or Jekyll - these are also not documented here.")),(0,n.kt)("admonition",{title:"Editor's note",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"We need to think about how to refer readers to sections of plugins and rendering tool documentation that they might want/need to use.")),(0,n.kt)("p",null,"The following table documents the fields that are used within the context of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tev2",hovertext:"Tev2: a set of specifications and tools that caters for the Curation of Terminologies, as well as for its subsequent use in publications of different types (e.g. websites, whitepapers) and formats (e.g. html, LaTeX), as appropriate for different, individual Scopes."},"TEv2")),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Legend"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Name"))," contains the field name;"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Req'd"))," specifies whether (",(0,n.kt)("inlineCode",{parentName:"li"},"Y"),") or not (",(0,n.kt)("inlineCode",{parentName:"li"},"n"),", or ",(0,n.kt)("inlineCode",{parentName:"li"},"F"),") the field is required to be present as a header field. The ",(0,n.kt)("inlineCode",{parentName:"li"},"F")," means that we reserve this field for Future Use."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"Description"))," specifies the meaning of the field, and other things you may need to know, e.g. why it is needed, a required syntax, etc."))),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:"center"},"Req'd"),(0,n.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"Scopetag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from within which the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curate",hovertext:"Curate: to select, organize, and present Terms, Definitions, and other, related content in a thoughtful and purposeful manner to establish shared understanding among a Community working together on a particular set of objectives."},"curated"),", and obtained. The ",(0,n.kt)("a",{parentName:"td",href:"#mrg-scopes"},(0,n.kt)("inlineCode",{parentName:"a"},"scopes")," section")," in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," SHOULD contain a mapping between the ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag")," and its associated ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scope directory"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"Versiontag")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," from which the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is obtained. If the contents of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," was constructed from a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),", its value equals the value of the ",(0,n.kt)("inlineCode",{parentName:"td"},"vsntag")," field in the ",(0,n.kt)("a",{parentName:"td",href:"#mrg-terminology"},(0,n.kt)("inlineCode",{parentName:"a"},"terminology"),"-section")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," is a part of. As a result, ",(0,n.kt)("inlineCode",{parentName:"td"},"scopetag"),":",(0,n.kt)("inlineCode",{parentName:"td"},"versiontag")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," from which this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," has originated.",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-.]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"term")),(0,n.kt)("td",{parentName:"tr",align:"center"},"Y"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"Text")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", and hence also the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," that describes it, which includes its ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definition"),". Its value is typically the value of the ",(0,n.kt)("inlineCode",{parentName:"td"},"glossaryTerm")," field, where all characters are made lower-case, any text between parentheses is discarded, and any (sequences of) spaces (or other special characters) are replaced with a ",(0,n.kt)("inlineCode",{parentName:"td"},"-"),"character.",(0,n.kt)("br",null),"The ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-syntax/term-ref-syntax#term"},(0,n.kt)("inlineCode",{parentName:"a"},"term"),"-field")," of a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," that refers to this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," must match this value.",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"termType")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-type",hovertext:"Term Type: a Text that Identifies a particular *kind* of Semantic Unit within a particular Scope. Examples include `concept`, `relation`, `pattern` (or `mental-model`)."},"Text")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the kind of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," describes. Typical values would be ",(0,n.kt)("inlineCode",{parentName:"td"},"concept"),", ",(0,n.kt)("inlineCode",{parentName:"td"},"relation"),", ",(0,n.kt)("inlineCode",{parentName:"td"},"pattern")," (or ",(0,n.kt)("inlineCode",{parentName:"td"},"mental-model"),"), ",(0,n.kt)("inlineCode",{parentName:"td"},"term")," (or ",(0,n.kt)("inlineCode",{parentName:"td"},"alias"),"), or ",(0,n.kt)("inlineCode",{parentName:"td"},"usecase"),".",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("inlineCode",{parentName:"td"},"[a-z0-9_-]+"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"isa")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"Term identifier")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," of which this is a specialization.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"bodyFile")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Path, relative to the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopedir",hovertext:"Scopedir: a directory in a computer file system that contains all files that are either being Curated within a particular Scope, or generated to serve some purpose within that Scope."},"scopedir"),", that contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),". If not specified, the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," in this file serves as the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"glossaryTerm")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Text that is used for the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," in a human readable ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),". For example, for a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," called ",(0,n.kt)("inlineCode",{parentName:"td"},"member"),", you may want to specify a glossaryTerm ",(0,n.kt)("inlineCode",{parentName:"td"},"member (of a [community](@))"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"glossaryText")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Text that is used as the (raw) contents for the entry of this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," in a human readable ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),". This text MUST be expected to contain ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"synonymOf")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-identifier",hovertext:"Term Identifier: a Text that Identifies a Semantic Unit within a particular Scope, and hence also the Curated Text that describes it. The part between the parentheses `(` and `)` of Term Refs contains a term identifier (if it doesn't have a `#`)."},"Term identifier")," that ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the defined ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminological-artifact",hovertext:"Terminological Artifact: a basic building block of meaning or representation, i.e., a 'semantic unit' within the 'mind' of a Scope, such as a Concept, a Relation, or a Property."},"terminological artifact")," for which this is a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/synonym",hovertext:"Synonym: a Term that has the same (or similar) meaning as another Term."},"synonym"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"grouptags")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"List of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags"),", each of which signifies that the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," documents, is part of the group of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that it represents.",(0,n.kt)("br",null),"Example: ",(0,n.kt)("inlineCode",{parentName:"td"},"[tev2, management]"),".",(0,n.kt)("br",null),"Must satisfy regex ",(0,n.kt)("a",{parentName:"td",href:"https://www.debuggex.com/r/a51CXl1NzR3kwihT"},(0,n.kt)("inlineCode",{parentName:"a"},"(?:\\[\\s*([a-z0-9_-]+)\\s*(?:,\\s*([a-z0-9_-]+))*\\s*\\])?")),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"formPhrases")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"List of ",(0,n.kt)("a",{parentName:"td",href:"formphrase@"},"texts")," that are ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-tools/trrt#id"},"used to convert")," the ",(0,n.kt)("inlineCode",{parentName:"td"},"show text")," parts of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," into ",(0,n.kt)("inlineCode",{parentName:"td"},"term"),"s, for the purpose of accommodating plural forms (for nouns) or conjugate forms (for verbs). For details, see ",(0,n.kt)("a",{parentName:"td",href:"/docs/spec-syntax/form-phrase-syntax"},"'Syntax Specs - Form Phrases"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"status")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Text that identifies the status of the term. (",(0,n.kt)("a",{parentName:"td",href:"@"},"Communities")," of) ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scopes")," may specify values for this field. An example is the ",(0,n.kt)("a",{parentName:"td",href:"https://github.com/trustoverip/concepts-and-terminology-wg/blob/master/docs/status-tags.md"},"status tags used by ToIP"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"created")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Date at which of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," was created, in the date format as used within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"updated")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Date at which of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," was last modified, in the date format as used within this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"contributors")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Text that shows (or refers to) the people that have contributed to this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"attribution")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Text that credits the original creation of the texts in the document.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"originalLicense")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Reference to the license of the work from which the texts were derived.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"locator")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"Text that identifies the file that holds the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," describes. The full URL of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," is ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"curatedir"),"/",(0,n.kt)("inlineCode",{parentName:"td"},"locator"),", where ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir")," and ",(0,n.kt)("inlineCode",{parentName:"td"},"curatedir")," can be found in the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," (which is in the root of ",(0,n.kt)("inlineCode",{parentName:"td"},"scopedir"),"). Note that ",(0,n.kt)("inlineCode",{parentName:"td"},"locator")," may contain a path.")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"navurl")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"URL that locates a human readable, rendered version of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," describes. This URL is used to resolve ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," that refer to this ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),".")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("inlineCode",{parentName:"td"},"headingids")),(0,n.kt)("td",{parentName:"tr",align:"center"},"n"),(0,n.kt)("td",{parentName:"tr",align:"left"},"a list of the ",(0,n.kt)("a",{parentName:"td",href:"https://www.markdownguide.org/basic-syntax/#headings"},"markdown headings")," and/or ",(0,n.kt)("a",{parentName:"td",href:"https://www.markdownguide.org/extended-syntax/#linking-to-heading-ids"},"heading ids")," that exist in the file that contains the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/body",hovertext:"Body (of a Curated Text) the part of a curated text that comes after its its header (also called the 'front-matter')."},"body")," of the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curated-text",hovertext:"Curated Text: a text that documents a Concept or other Semantic Unit of a specific Community or other Party, and is located within a Scope that is owned by that Community/Party."},"curated text"),", and can serve as ",(0,n.kt)("inlineCode",{parentName:"td"},"trait")," in a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),".")))),(0,n.kt)("h1",{id:"footnotes"},"Footnotes"),(0,n.kt)("div",{className:"footnotes"},(0,n.kt)("hr",{parentName:"div"}),(0,n.kt)("ol",{parentName:"div"},(0,n.kt)("li",{parentName:"ol",id:"fn-1"},"The ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," is an inventory rather than a ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary"),", because it contains ",(0,n.kt)("em",{parentName:"li"},"all")," ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic units")," that are ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curate",hovertext:"Curate: to select, organize, and present Terms, Definitions, and other, related content in a thoughtful and purposeful manner to establish shared understanding among a Community working together on a particular set of objectives."},"curated")," within the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),": apart from ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),", it also include e.g., ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mental-model",hovertext:"Mental Model: A Semantic Unit that relates a set of Concepts (ideas), Relations between them, and constraints about a certain topic, into a coherent and consistent whole (sometimes called 'viewpoint', or 'way of thinking')."},"mental models")," and ",(0,n.kt)("a",{parentName:"li",href:"@"},"use cases"),". We choose to maintain the ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term"),' "Machine Readable Glossary" (',(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),"), because most of us would view it - initially, at least - as a list of ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," and their ",(0,n.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definitions"),".",(0,n.kt)("a",{parentName:"li",href:"#fnref-1",className:"footnote-backref"},"\u21a9")))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bcb93ad0.92743b72.js b/assets/js/bcb93ad0.3b212a63.js similarity index 99% rename from assets/js/bcb93ad0.92743b72.js rename to assets/js/bcb93ad0.3b212a63.js index dad54a48ed..39d3d8c66f 100644 --- a/assets/js/bcb93ad0.92743b72.js +++ b/assets/js/bcb93ad0.3b212a63.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[4069],{3905:function(e,t,o){o.d(t,{Zo:function(){return h},kt:function(){return u}});var i=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,i)}return o}function r(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),l=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):r(r({},t),e)),o},h=function(e){var t=l(e.components);return i.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=l(o),u=n,m=p["".concat(c,".").concat(u)]||p[u]||d[u]||a;return o?i.createElement(m,r(r({ref:t},h),{},{components:o})):i.createElement(m,r({ref:t},h))}));function u(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,r=new Array(a);r[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,r[1]=s;for(var l=2;l=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=i.createContext({}),l=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):r(r({},t),e)),o},h=function(e){var t=l(e.components);return i.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=l(o),u=n,m=p["".concat(c,".").concat(u)]||p[u]||d[u]||a;return o?i.createElement(m,r(r({ref:t},h),{},{components:o})):i.createElement(m,r({ref:t},h))}));function u(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,r=new Array(a);r[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,r[1]=s;for(var l=2;l=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},d=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=l(r),m=o,h=p["".concat(c,".").concat(m)]||p[m]||f[m]||i;return r?n.createElement(h,a(a({ref:t},d),{},{components:r})):n.createElement(h,a({ref:t},d))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var l=2;l=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},d=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=l(r),m=o,h=p["".concat(c,".").concat(m)]||p[m]||f[m]||i;return r?n.createElement(h,a(a({ref:t},d),{},{components:r})):n.createElement(h,a({ref:t},d))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var l=2;l=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=i.createContext({}),l=function(e){var t=i.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},f=function(e){var t=l(e.components);return i.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,c=e.parentName,f=s(e,["components","mdxType","originalType","parentName"]),p=l(r),u=o,h=p["".concat(c,".").concat(u)]||p[u]||d[u]||n;return r?i.createElement(h,a(a({ref:t},f),{},{components:r})):i.createElement(h,a({ref:t},f))}));function u(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,a=new Array(n);a[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var l=2;l=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=i.createContext({}),l=function(e){var t=i.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},f=function(e){var t=l(e.components);return i.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,c=e.parentName,f=s(e,["components","mdxType","originalType","parentName"]),p=l(r),u=o,h=p["".concat(c,".").concat(u)]||p[u]||d[u]||n;return r?i.createElement(h,a(a({ref:t},f),{},{components:r})):i.createElement(h,a({ref:t},f))}));function u(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,a=new Array(n);a[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var l=2;l=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},l=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),l=p(r),d=o,f=l["".concat(c,".").concat(d)]||l[d]||m[d]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=l;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var p=2;p=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},l=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),l=p(r),d=o,f=l["".concat(c,".").concat(d)]||l[d]||m[d]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=l;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var p=2;p=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}var c=o.createContext({}),l=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,s=e.mdxType,n=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),d=s,m=u["".concat(c,".").concat(d)]||u[d]||f[d]||n;return r?o.createElement(m,a(a({ref:t},p),{},{components:r})):o.createElement(m,a({ref:t},p))}));function d(e,t){var r=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=r.length,a=new Array(n);a[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:s,a[1]=i;for(var l=2;l=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}var c=o.createContext({}),l=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,s=e.mdxType,n=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),d=s,m=u["".concat(c,".").concat(d)]||u[d]||f[d]||n;return r?o.createElement(m,a(a({ref:t},p),{},{components:r})):o.createElement(m,a({ref:t},p))}));function d(e,t){var r=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=r.length,a=new Array(n);a[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:s,a[1]=i;for(var l=2;l=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var c=o.createContext({}),u=function(t){var e=o.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):s(s({},e),t)),n},p=function(t){var e=u(t.components);return o.createElement(c.Provider,{value:e},t.children)},h={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},d=o.forwardRef((function(t,e){var n=t.components,r=t.mdxType,i=t.originalType,c=t.parentName,p=a(t,["components","mdxType","originalType","parentName"]),d=u(n),l=r,m=d["".concat(c,".").concat(l)]||d[l]||h[l]||i;return n?o.createElement(m,s(s({ref:e},p),{},{components:n})):o.createElement(m,s({ref:e},p))}));function l(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=n.length,s=new Array(i);s[0]=d;var a={};for(var c in e)hasOwnProperty.call(e,c)&&(a[c]=e[c]);a.originalType=t,a.mdxType="string"==typeof t?t:r,s[1]=a;for(var u=2;u=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var c=o.createContext({}),u=function(t){var e=o.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):s(s({},e),t)),n},p=function(t){var e=u(t.components);return o.createElement(c.Provider,{value:e},t.children)},h={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},d=o.forwardRef((function(t,e){var n=t.components,r=t.mdxType,i=t.originalType,c=t.parentName,p=a(t,["components","mdxType","originalType","parentName"]),d=u(n),l=r,m=d["".concat(c,".").concat(l)]||d[l]||h[l]||i;return n?o.createElement(m,s(s({ref:e},p),{},{components:n})):o.createElement(m,s({ref:e},p))}));function l(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=n.length,s=new Array(i);s[0]=d;var a={};for(var c in e)hasOwnProperty.call(e,c)&&(a[c]=e[c]);a.originalType=t,a.mdxType="string"==typeof t?t:r,s[1]=a;for(var u=2;u=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(n),d=i,v=u["".concat(c,".").concat(d)]||u[d]||f[d]||o;return n?r.createElement(v,a(a({ref:t},l),{},{components:n})):r.createElement(v,a({ref:t},l))}));function d(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,a=new Array(o);a[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:i,a[1]=s;for(var p=2;p=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(n),d=i,v=u["".concat(c,".").concat(d)]||u[d]||f[d]||o;return n?r.createElement(v,a(a({ref:t},l),{},{components:n})):r.createElement(v,a({ref:t},l))}));function d(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,a=new Array(o);a[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:i,a[1]=s;for(var p=2;p=0||(r[i]=e[i]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}var c=o.createContext({}),h=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},p=function(e){var t=h(e.components);return o.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var i=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,p=n(e,["components","mdxType","originalType","parentName"]),d=h(i),m=r,u=d["".concat(c,".").concat(m)]||d[m]||l[m]||a;return i?o.createElement(u,s(s({ref:t},p),{},{components:i})):o.createElement(u,s({ref:t},p))}));function m(e,t){var i=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=i.length,s=new Array(a);s[0]=d;var n={};for(var c in t)hasOwnProperty.call(t,c)&&(n[c]=t[c]);n.originalType=e,n.mdxType="string"==typeof e?e:r,s[1]=n;for(var h=2;h=0||(r[i]=e[i]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}var c=o.createContext({}),h=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},p=function(e){var t=h(e.components);return o.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var i=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,p=n(e,["components","mdxType","originalType","parentName"]),d=h(i),m=r,u=d["".concat(c,".").concat(m)]||d[m]||l[m]||a;return i?o.createElement(u,s(s({ref:t},p),{},{components:i})):o.createElement(u,s({ref:t},p))}));function m(e,t){var i=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=i.length,s=new Array(a);s[0]=d;var n={};for(var c in t)hasOwnProperty.call(t,c)&&(n[c]=t[c]);n.originalType=e,n.mdxType="string"==typeof e?e:r,s[1]=n;for(var h=2;h=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),p=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},l=function(e){var t=p(e.components);return a.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),m=p(n),f=r,h=m["".concat(c,".").concat(f)]||m[f]||u[f]||i;return n?a.createElement(h,o(o({ref:t},l),{},{components:n})):a.createElement(h,o({ref:t},l))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var p=2;p=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),p=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},l=function(e){var t=p(e.components);return a.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),m=p(n),f=r,h=m["".concat(c,".").concat(f)]||m[f]||u[f]||i;return n?a.createElement(h,o(o({ref:t},l),{},{components:n})):a.createElement(h,o({ref:t},l))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var p=2;p=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}var c=o.createContext({}),l=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,s=e.mdxType,a=e.originalType,c=e.parentName,p=n(e,["components","mdxType","originalType","parentName"]),m=l(r),d=s,u=m["".concat(c,".").concat(d)]||m[d]||h[d]||a;return r?o.createElement(u,i(i({ref:t},p),{},{components:r})):o.createElement(u,i({ref:t},p))}));function d(e,t){var r=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var a=r.length,i=new Array(a);i[0]=m;var n={};for(var c in t)hasOwnProperty.call(t,c)&&(n[c]=t[c]);n.originalType=e,n.mdxType="string"==typeof e?e:s,i[1]=n;for(var l=2;l=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}var c=o.createContext({}),l=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,s=e.mdxType,a=e.originalType,c=e.parentName,p=n(e,["components","mdxType","originalType","parentName"]),m=l(r),d=s,u=m["".concat(c,".").concat(d)]||m[d]||h[d]||a;return r?o.createElement(u,i(i({ref:t},p),{},{components:r})):o.createElement(u,i({ref:t},p))}));function d(e,t){var r=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var a=r.length,i=new Array(a);i[0]=m;var n={};for(var c in t)hasOwnProperty.call(t,c)&&(n[c]=t[c]);n.originalType=e,n.mdxType="string"==typeof e?e:s,i[1]=n;for(var l=2;l=0||(n[i]=t[i]);return n}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(n[i]=t[i])}return n}var c=o.createContext({}),h=function(t){var e=o.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):a(a({},e),t)),i},u=function(t){var e=h(t.components);return o.createElement(c.Provider,{value:e},t.children)},p={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},d=o.forwardRef((function(t,e){var i=t.components,n=t.mdxType,r=t.originalType,c=t.parentName,u=s(t,["components","mdxType","originalType","parentName"]),d=h(i),m=n,l=d["".concat(c,".").concat(m)]||d[m]||p[m]||r;return i?o.createElement(l,a(a({ref:e},u),{},{components:i})):o.createElement(l,a({ref:e},u))}));function m(t,e){var i=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var r=i.length,a=new Array(r);a[0]=d;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:n,a[1]=s;for(var h=2;h=0||(n[i]=t[i]);return n}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(n[i]=t[i])}return n}var c=o.createContext({}),h=function(t){var e=o.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):a(a({},e),t)),i},u=function(t){var e=h(t.components);return o.createElement(c.Provider,{value:e},t.children)},p={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},d=o.forwardRef((function(t,e){var i=t.components,n=t.mdxType,r=t.originalType,c=t.parentName,u=s(t,["components","mdxType","originalType","parentName"]),d=h(i),m=n,l=d["".concat(c,".").concat(m)]||d[m]||p[m]||r;return i?o.createElement(l,a(a({ref:e},u),{},{components:i})):o.createElement(l,a({ref:e},u))}));function m(t,e){var i=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var r=i.length,a=new Array(r);a[0]=d;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:n,a[1]=s;for(var h=2;h=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}var h=n.createContext({}),c=function(e){var t=n.useContext(h),i=t;return e&&(i="function"==typeof e?e(t):r(r({},t),e)),i},d=function(e){var t=c(e.components);return n.createElement(h.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},l=n.forwardRef((function(e,t){var i=e.components,o=e.mdxType,a=e.originalType,h=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),l=c(i),m=o,f=l["".concat(h,".").concat(m)]||l[m]||p[m]||a;return i?n.createElement(f,r(r({ref:t},d),{},{components:i})):n.createElement(f,r({ref:t},d))}));function m(e,t){var i=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=i.length,r=new Array(a);r[0]=l;var s={};for(var h in t)hasOwnProperty.call(t,h)&&(s[h]=t[h]);s.originalType=e,s.mdxType="string"==typeof e?e:o,r[1]=s;for(var c=2;cshowtext",id:"showtext",level:3},{value:"term",id:"term",level:3},{value:"trait",id:"trait",level:3},{value:"scopetag",id:"scopetag",level:3},{value:"vsntag",id:"vsntag",level:3},{value:"Alternative notation",id:"alternative-syntax",level:3}],l={toc:p};function m(e){var t=e.components,i=(0,o.Z)(e,r);return(0,a.kt)("wrapper",(0,n.Z)({},l,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"term-references---syntax"},"Term References - Syntax"),(0,a.kt)("p",null,"As an ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"author")," or ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curator"),", you want to be able to mark words or phrases, and have them refer to (the documentation of) a particular ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/concept",hovertext:"Concept: a Semantic Unit that captures the ideas/thoughts behind a classification of Entities (what makes Entities in that class 'the same')."},"concept")," or other ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),". Such marked-up words or phrases are called ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),". This text specifies the syntax that you can use to ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"author")," ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),"."),(0,a.kt)("admonition",{title:"Editor's note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Also, you will want to (and actually can) control the effect that your ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," must have when it is rendered. After all, the effect you seek it to have as part of a rendered static website (e.g. so that it produces a popup with its definition) would be quite different form when it would be part of a PDF (in which case you may want it to become part of an automatically generated ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary")," in one of the papers annexes). Selecting the effect is done by properly instructing the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TermRef resolution tool")," when your text is processed for rendering."),(0,a.kt)("p",{parentName:"admonition"},"We need some text here that points to the documentation for doing so. This could be e.g. in the ",(0,a.kt)("a",{parentName:"p",href:"/docs/manuals/author"},"authors manual")," and ",(0,a.kt)("a",{parentName:"p",href:"/docs/manuals/curator"},"curators manual"),", but also in the ",(0,a.kt)("a",{parentName:"p",href:"/docs/spec-tools/trrt"},"TRRT specifications"),", or in some manual that deals with adding rendering plugins.")),(0,a.kt)("p",null,"while at the same time referring to the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definition")," that defines its meaning. i.e. the syntax that you need to use in such texts. The way in which the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," (and its ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definition"),") may be rendered depends on the artifact that is being generated. For example, when a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," is rendered in a web-site, it may be enhanced, showing a popup that contains its ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definition")," when a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/reader",hovertext:"Reader: a person that reads a text that is authored by another person (its Author]), and that tries to understand the meaning of this text in the way its Author intended."},"reader")," hovers the mouse over it, and that hyperlinks to the page in the website that explains the term in more detail when the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/reader",hovertext:"Reader: a person that reads a text that is authored by another person (its Author]), and that tries to understand the meaning of this text in the way its Author intended."},"reader")," clicks on it. When a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," is rendered in a PDF file, its definition may appear as an entry in a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary")," that is added somewhere in the PDF. It all depends on the rendering tools that are being used, and this is out of scope for this specification."),(0,a.kt)("p",null,"This file specifies the syntax of ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),". The ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," describes ",(0,a.kt)("a",{parentName:"p",href:"/docs/spec-tools/trrt#term-ref-resolution"},"how they are processed (resolved)"),"."),(0,a.kt)("h2",{id:"basic-syntax"},"Term References (Original/Default Syntax)"),(0,a.kt)("p",null,"A ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," can be thought of as a ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"Markdown link"),", but rather than linking to some URL or fragment, it refers/links to a specific descriptive text (e.g. a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definition"),", purpose, or example) that is associated with (a specific version of) a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term"),", which is ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified")," by its ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," and the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," (label, text)."),(0,a.kt)("details",null,(0,a.kt)("summary",null,"Motivation for the chosen syntax"),(0,a.kt)("p",null,"We want to enable ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," to use ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," pervasively, which means it must be easy to use, and mistakes should be (relatively) hard to make, yet easy to detect, identify, and correct. ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"Markdown links")," are of the form ","[",(0,a.kt)("inlineCode",{parentName:"p"},"show text"),"]","(",(0,a.kt)("inlineCode",{parentName:"p"},"ref-text"),"), where ",(0,a.kt)("inlineCode",{parentName:"p"},"show text")," is the text that is rendered and emphasized so that a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/reader",hovertext:"Reader: a person that reads a text that is authored by another person (its Author]), and that tries to understand the meaning of this text in the way its Author intended."},"reader")," knows it can be clicked, and ",(0,a.kt)("inlineCode",{parentName:"p"},"ref-text")," is a (relative or absolute) URL, or a ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/extended-syntax/#linking-to-heading-ids"},"heading ID"),", that identifies the resource (e.g. web page, or place therein) that is being referenced. So, we need a syntax for ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," that is",(0,a.kt)("br",null),"- sufficiently similar to a ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"Markdown link"),",",(0,a.kt)("br",null),"- 'humanly interpretable' when it isn't processed by the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT"),",",(0,a.kt)("br",null),"- easy to use for ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors"),", and",(0,a.kt)("br",null),"- sufficiently distinct from a Markdown link so that the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," will not process Markdown links yet will process the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),".")),(0,a.kt)("p",null,"Here is an example of a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),": ",(0,a.kt)("inlineCode",{parentName:"p"},"[definitions](definition@)"),". When this text is rendered into a human readable form, it will show the text ",(0,a.kt)("inlineCode",{parentName:"p"},"definitions")," (plural) enhanced, and it will link to the text that describes (or defines) the term ",(0,a.kt)("inlineCode",{parentName:"p"},"definition")," (singular). If you would want to use this term as it is defined in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," called ",(0,a.kt)("inlineCode",{parentName:"p"},"essif-lab"),", you could do that by wrinting ",(0,a.kt)("inlineCode",{parentName:"p"},"[definitions](definition@essif-lab)")," (provided that ",(0,a.kt)("inlineCode",{parentName:"p"},"essif-lab")," is a defined ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," within the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," that you operate in)."),(0,a.kt)("p",null,"The complete, generic structure of a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is: ",(0,a.kt)("strong",{parentName:"p"},"[",(0,a.kt)("inlineCode",{parentName:"strong"},"show text"),"]","(",(0,a.kt)("inlineCode",{parentName:"strong"},"term"),"#",(0,a.kt)("inlineCode",{parentName:"strong"},"trait"),"@",(0,a.kt)("inlineCode",{parentName:"strong"},"scopetag"),":",(0,a.kt)("inlineCode",{parentName:"strong"},"vsntag"),")"),". However, all of its elements (except for ",(0,a.kt)("inlineCode",{parentName:"p"},"show text"),") are optional, so as to limit the 'extra work' that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," need to do to a minimum."),(0,a.kt)("h3",{id:"showtext"},(0,a.kt)("inlineCode",{parentName:"h3"},"showtext")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("inlineCode",{parentName:"strong"},"showtext"))," is the text that will be highlighted/emphasized to indicate it is linked.\nIt must not contain the characters ",(0,a.kt)("inlineCode",{parentName:"p"},"@")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"]")," (this is needed to distinguish ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," from regular ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"markdown links"),")."),(0,a.kt)("h3",{id:"term"},(0,a.kt)("inlineCode",{parentName:"h3"},"term")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("inlineCode",{parentName:"strong"},"term"))," is the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that is to be referred to.",(0,a.kt)("br",null),"It must satisfy the regex ",(0,a.kt)("inlineCode",{parentName:"p"},"[a-z0-9_-]+"),"."),(0,a.kt)("p",null,"If omitted, its value is assumed to be ",(0,a.kt)("a",{parentName:"p",href:"/docs/spec-tools/trrt#id"},"derivable from ",(0,a.kt)("inlineCode",{parentName:"a"},"showtext")),".\nAt a minimum, this is the case if the ",(0,a.kt)("inlineCode",{parentName:"p"},"term")," equals the result of processing ",(0,a.kt)("inlineCode",{parentName:"p"},"showtext")," by first converting every character in the range ",(0,a.kt)("inlineCode",{parentName:"p"},"[A-Z]")," to lower-case, and then replacing every sequence of characters specified by regex ",(0,a.kt)("inlineCode",{parentName:"p"},"[^A-Za-z_-]+")," with (a single) ",(0,a.kt)("inlineCode",{parentName:"p"},"-")," character."),(0,a.kt)("h3",{id:"trait"},(0,a.kt)("inlineCode",{parentName:"h3"},"trait")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("inlineCode",{parentName:"strong"},"trait"))," is a text that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," a particular (kind of) characteristic (feature, attribute, particularity) that is associated with the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term"),", and to a description of which is to be referred.",(0,a.kt)("br",null),"It must satisfy the regex ",(0,a.kt)("inlineCode",{parentName:"p"},"[a-z0-9_-]+"),"."),(0,a.kt)("p",null,"If omitted (in which case the preceding ",(0,a.kt)("inlineCode",{parentName:"p"},"#"),"-character may also be omitted), the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," will by default resolve to the text of its ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary")," entry. While it is envisaged that ",(0,a.kt)("inlineCode",{parentName:"p"},"trait")," must be a text from a predefined set of allowed/supported texts (e.g. ",(0,a.kt)("inlineCode",{parentName:"p"},"purpose"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"criteria"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"example-3"),"), the precise semantics remain to be specified."),(0,a.kt)("admonition",{title:"Editor's note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"The semantics of ",(0,a.kt)("inlineCode",{parentName:"p"},"trait")," need to be better specified.")),(0,a.kt)("h3",{id:"scopetag"},(0,a.kt)("inlineCode",{parentName:"h3"},"scopetag")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("inlineCode",{parentName:"strong"},"scopetag"))," is a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tag",hovertext:"Tag: an alphanumeric string that is used to identify Scopes (so called 'scopetags'), group Terms (so called 'grouptags'), or identify a specific version of a Terminology (so called 'versiontags') from within a specific Scope."},"tag")," that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that contains the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that is being referenced.",(0,a.kt)("br",null),"It must satisfy the regex ",(0,a.kt)("inlineCode",{parentName:"p"},"[a-z0-9_-]+"),". Also, it must appear as such in the ",(0,a.kt)("inlineCode",{parentName:"p"},"scopes")," section of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which the document containing the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is being maintained, or it must be the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," itself."),(0,a.kt)("p",null,"If omitted, a default ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," will be used, which is the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from which the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," is being called, which SHOULD be the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which the document containing the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is being maintained. Note that the preceding ",(0,a.kt)("inlineCode",{parentName:"p"},"@")," sign MUST NOT be omitted because as it serves the purpose to distinguish ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," from other ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"markdown links"),"."),(0,a.kt)("h3",{id:"vsntag"},(0,a.kt)("inlineCode",{parentName:"h3"},"vsntag")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("inlineCode",{parentName:"strong"},"vsntag"))," is a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the specific version of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," that contains the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that is being referenced.",(0,a.kt)("br",null),"It must satisfy the regex ",(0,a.kt)("inlineCode",{parentName:"p"},"[a-z0-9_-\\.]+"),"."),(0,a.kt)("p",null,"If omitted (in which case the preceding ",(0,a.kt)("inlineCode",{parentName:"p"},":"),"-character may also be omitted), its value will be the default, which is determined by the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," (the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that has the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that contains the (scoped) term](scoped-term@) that is being referenced, is specified in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", in the appropriate ",(0,a.kt)("inlineCode",{parentName:"p"},"scopes.mrgfile"),"-field). A ",(0,a.kt)("inlineCode",{parentName:"p"},"vsntag")," is only valid if it appears as the value of the ",(0,a.kt)("inlineCode",{parentName:"p"},"vsntag")," field or an element of the ",(0,a.kt)("inlineCode",{parentName:"p"},"altvsntags")," field in one of the list-elements of the ",(0,a.kt)("inlineCode",{parentName:"p"},"versions")," field in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,a.kt)("admonition",{title:"Editor's note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"It has been suggested to provide ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," syntax that allows one to refer to a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," from a ","[terminology]"," that was 'current'/'latest'/... at a particular date. The ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," ",(0,a.kt)("a",{parentName:"p",href:"/docs/spec-files/saf#versions"},"versioning specifications")," already cater for ",(0,a.kt)("inlineCode",{parentName:"p"},"from")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"to")," dates, but everything else needs to be worked out.")),(0,a.kt)("h3",{id:"alternative-syntax"},"Alternative notation"),(0,a.kt)("p",null,"It is convenient for ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," to be able to use the '@",(0,a.kt)("inlineCode",{parentName:"p"},"scopetag"),"' part of a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," immediately behind the ",(0,a.kt)("inlineCode",{parentName:"p"},"show text")," within the square brackets (",(0,a.kt)("inlineCode",{parentName:"p"},"[")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"]"),"), and leave out the parentheses and the text in between if all the other items are omitted."),(0,a.kt)("p",null,"This is particularly useful in the vast majority of cases, where the default processing of ",(0,a.kt)("inlineCode",{parentName:"p"},"showtext")," results in ",(0,a.kt)("inlineCode",{parentName:"p"},"term")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"trait")," is absent. Examples of this are ",(0,a.kt)("inlineCode",{parentName:"p"},"[definition](@)"),", or ",(0,a.kt)("inlineCode",{parentName:"p"},"[TermRef](@)"),"."),(0,a.kt)("p",null,"The usefulness becomes even greater as the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," also implements more sophisticated ways to derive a ",(0,a.kt)("inlineCode",{parentName:"p"},"term")," from a ",(0,a.kt)("inlineCode",{parentName:"p"},"show text"),", e.g. to accommodate for plural forms (of nouns), or conjugate forms (for verbs)."),(0,a.kt)("admonition",{title:"Editor's note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This alternative notation will assume that the ",(0,a.kt)("inlineCode",{parentName:"p"},"showtext")," part of a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," won't contain the ",(0,a.kt)("inlineCode",{parentName:"p"},"@")," character. However, it is likely that some ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," will want to use an email address as the ",(0,a.kt)("inlineCode",{parentName:"p"},"showtext")," part of a ",(0,a.kt)("em",{parentName:"p"},"regular")," link, e.g. as in ",(0,a.kt)("inlineCode",{parentName:"p"},"[rieks.joosten@tno.nl](mailto:rieks.joosten@tno.nl)"),". However, since ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags")," should not contain ",(0,a.kt)("inlineCode",{parentName:"p"},"."),"-characters, ",(0,a.kt)("inlineCode",{parentName:"p"},"[rieks.joosten@tno.nl]")," does not qualify as a ",(0,a.kt)("inlineCode",{parentName:"p"},"showtext")," in our syntax. ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"Authors")," should ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#urls-and-email-addresses"},"use angle brackets to link to email addresses"),", as in ",(0,a.kt)("inlineCode",{parentName:"p"},""),".")),(0,a.kt)("p",null,"This leads to an alternative notation that can be used in addition to the previously specified notation. Here is the alternative syntax and its equivalent counterpart:"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"center"},"Alternative syntax"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Equivalent regular syntax"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"center"},"[",(0,a.kt)("inlineCode",{parentName:"td"},"show text"),"@","]"),(0,a.kt)("td",{parentName:"tr",align:"center"},"[",(0,a.kt)("inlineCode",{parentName:"td"},"show text"),"]","(@)")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"center"},"[",(0,a.kt)("inlineCode",{parentName:"td"},"show text"),"@",(0,a.kt)("inlineCode",{parentName:"td"},"scopetag"),"]"),(0,a.kt)("td",{parentName:"tr",align:"center"},"[",(0,a.kt)("inlineCode",{parentName:"td"},"show text"),"]","(",(0,a.kt)("inlineCode",{parentName:"td"},"showtext"),"@",(0,a.kt)("inlineCode",{parentName:"td"},"scopetag"),")")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"center"},"[",(0,a.kt)("inlineCode",{parentName:"td"},"show text"),"@",(0,a.kt)("inlineCode",{parentName:"td"},"scopetag"),":",(0,a.kt)("inlineCode",{parentName:"td"},"vsntag"),"]","(",(0,a.kt)("inlineCode",{parentName:"td"},"term"),"#",(0,a.kt)("inlineCode",{parentName:"td"},"trait"),")"),(0,a.kt)("td",{parentName:"tr",align:"center"},"[",(0,a.kt)("inlineCode",{parentName:"td"},"show text"),"]","(",(0,a.kt)("inlineCode",{parentName:"td"},"term"),"#",(0,a.kt)("inlineCode",{parentName:"td"},"trait"),"@",(0,a.kt)("inlineCode",{parentName:"td"},"scopetag"),":",(0,a.kt)("inlineCode",{parentName:"td"},"vsntag"),")")))),(0,a.kt)("p",null,"In the last row of the above table, ",(0,a.kt)("inlineCode",{parentName:"p"},"term")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"#trait")," are optional. Thus, ",(0,a.kt)("inlineCode",{parentName:"p"},"[definition@]()")," is equivalent with ",(0,a.kt)("inlineCode",{parentName:"p"},"[definition](@)")," and with ",(0,a.kt)("inlineCode",{parentName:"p"},"[definition](@)"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[5446],{3905:function(e,t,i){i.d(t,{Zo:function(){return d},kt:function(){return m}});var n=i(7294);function o(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function r(e){for(var t=1;t=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}var h=n.createContext({}),c=function(e){var t=n.useContext(h),i=t;return e&&(i="function"==typeof e?e(t):r(r({},t),e)),i},d=function(e){var t=c(e.components);return n.createElement(h.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},l=n.forwardRef((function(e,t){var i=e.components,o=e.mdxType,a=e.originalType,h=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),l=c(i),m=o,f=l["".concat(h,".").concat(m)]||l[m]||p[m]||a;return i?n.createElement(f,r(r({ref:t},d),{},{components:i})):n.createElement(f,r({ref:t},d))}));function m(e,t){var i=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=i.length,r=new Array(a);r[0]=l;var s={};for(var h in t)hasOwnProperty.call(t,h)&&(s[h]=t[h]);s.originalType=e,s.mdxType="string"==typeof e?e:o,r[1]=s;for(var c=2;cshowtext",id:"showtext",level:3},{value:"term",id:"term",level:3},{value:"trait",id:"trait",level:3},{value:"scopetag",id:"scopetag",level:3},{value:"vsntag",id:"vsntag",level:3},{value:"Alternative notation",id:"alternative-syntax",level:3}],l={toc:p};function m(e){var t=e.components,i=(0,o.Z)(e,r);return(0,a.kt)("wrapper",(0,n.Z)({},l,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"term-references---syntax"},"Term References - Syntax"),(0,a.kt)("p",null,"As an ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"author")," or ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curator"),", you want to be able to mark words or phrases, and have them refer to (the documentation of) a particular ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/concept",hovertext:"Concept: a Semantic Unit that captures the ideas/thoughts behind a classification of Entities (what makes Entities in that class 'the same')."},"concept")," or other ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit"),". Such marked-up words or phrases are called ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),". This text specifies the syntax that you can use to ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"author")," ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),"."),(0,a.kt)("admonition",{title:"Editor's note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Also, you will want to (and actually can) control the effect that your ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," must have when it is rendered. After all, the effect you seek it to have as part of a rendered static website (e.g. so that it produces a popup with its definition) would be quite different form when it would be part of a PDF (in which case you may want it to become part of an automatically generated ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary")," in one of the papers annexes). Selecting the effect is done by properly instructing the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TermRef resolution tool")," when your text is processed for rendering."),(0,a.kt)("p",{parentName:"admonition"},"We need some text here that points to the documentation for doing so. This could be e.g. in the ",(0,a.kt)("a",{parentName:"p",href:"/docs/manuals/author"},"authors manual")," and ",(0,a.kt)("a",{parentName:"p",href:"/docs/manuals/curator"},"curators manual"),", but also in the ",(0,a.kt)("a",{parentName:"p",href:"/docs/spec-tools/trrt"},"TRRT specifications"),", or in some manual that deals with adding rendering plugins.")),(0,a.kt)("p",null,"while at the same time referring to the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definition")," that defines its meaning. i.e. the syntax that you need to use in such texts. The way in which the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," (and its ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definition"),") may be rendered depends on the artifact that is being generated. For example, when a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," is rendered in a web-site, it may be enhanced, showing a popup that contains its ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definition")," when a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/reader",hovertext:"Reader: a person that reads a text that is authored by another person (its Author]), and that tries to understand the meaning of this text in the way its Author intended."},"reader")," hovers the mouse over it, and that hyperlinks to the page in the website that explains the term in more detail when the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/reader",hovertext:"Reader: a person that reads a text that is authored by another person (its Author]), and that tries to understand the meaning of this text in the way its Author intended."},"reader")," clicks on it. When a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," is rendered in a PDF file, its definition may appear as an entry in a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary")," that is added somewhere in the PDF. It all depends on the rendering tools that are being used, and this is out of scope for this specification."),(0,a.kt)("p",null,"This file specifies the syntax of ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),". The ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," describes ",(0,a.kt)("a",{parentName:"p",href:"/docs/spec-tools/trrt#term-ref-resolution"},"how they are processed (resolved)"),"."),(0,a.kt)("h2",{id:"basic-syntax"},"Term References (Original/Default Syntax)"),(0,a.kt)("p",null,"A ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," can be thought of as a ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"Markdown link"),", but rather than linking to some URL or fragment, it refers/links to a specific descriptive text (e.g. a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/definition",hovertext:"Definition: a text that helps Parties to have the same understanding about the meaning of (and Concepts behind) a Term, ideally in such a way that these Parties can determine whether or not they make the same distinction."},"definition"),", purpose, or example) that is associated with (a specific version of) a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term"),", which is ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identified")," by its ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," and the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," (label, text)."),(0,a.kt)("details",null,(0,a.kt)("summary",null,"Motivation for the chosen syntax"),(0,a.kt)("p",null,"We want to enable ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," to use ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," pervasively, which means it must be easy to use, and mistakes should be (relatively) hard to make, yet easy to detect, identify, and correct. ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"Markdown links")," are of the form ","[",(0,a.kt)("inlineCode",{parentName:"p"},"show text"),"]","(",(0,a.kt)("inlineCode",{parentName:"p"},"ref-text"),"), where ",(0,a.kt)("inlineCode",{parentName:"p"},"show text")," is the text that is rendered and emphasized so that a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/reader",hovertext:"Reader: a person that reads a text that is authored by another person (its Author]), and that tries to understand the meaning of this text in the way its Author intended."},"reader")," knows it can be clicked, and ",(0,a.kt)("inlineCode",{parentName:"p"},"ref-text")," is a (relative or absolute) URL, or a ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/extended-syntax/#linking-to-heading-ids"},"heading ID"),", that identifies the resource (e.g. web page, or place therein) that is being referenced. So, we need a syntax for ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," that is",(0,a.kt)("br",null),"- sufficiently similar to a ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"Markdown link"),",",(0,a.kt)("br",null),"- 'humanly interpretable' when it isn't processed by the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT"),",",(0,a.kt)("br",null),"- easy to use for ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors"),", and",(0,a.kt)("br",null),"- sufficiently distinct from a Markdown link so that the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," will not process Markdown links yet will process the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs"),".")),(0,a.kt)("p",null,"Here is an example of a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef"),": ",(0,a.kt)("inlineCode",{parentName:"p"},"[definitions](definition@)"),". When this text is rendered into a human readable form, it will show the text ",(0,a.kt)("inlineCode",{parentName:"p"},"definitions")," (plural) enhanced, and it will link to the text that describes (or defines) the term ",(0,a.kt)("inlineCode",{parentName:"p"},"definition")," (singular). If you would want to use this term as it is defined in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," called ",(0,a.kt)("inlineCode",{parentName:"p"},"essif-lab"),", you could do that by wrinting ",(0,a.kt)("inlineCode",{parentName:"p"},"[definitions](definition@essif-lab)")," (provided that ",(0,a.kt)("inlineCode",{parentName:"p"},"essif-lab")," is a defined ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," within the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," that you operate in)."),(0,a.kt)("p",null,"The complete, generic structure of a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is: ",(0,a.kt)("strong",{parentName:"p"},"[",(0,a.kt)("inlineCode",{parentName:"strong"},"show text"),"]","(",(0,a.kt)("inlineCode",{parentName:"strong"},"term"),"#",(0,a.kt)("inlineCode",{parentName:"strong"},"trait"),"@",(0,a.kt)("inlineCode",{parentName:"strong"},"scopetag"),":",(0,a.kt)("inlineCode",{parentName:"strong"},"vsntag"),")"),". However, all of its elements (except for ",(0,a.kt)("inlineCode",{parentName:"p"},"show text"),") are optional, so as to limit the 'extra work' that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," need to do to a minimum."),(0,a.kt)("h3",{id:"showtext"},(0,a.kt)("inlineCode",{parentName:"h3"},"showtext")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("inlineCode",{parentName:"strong"},"showtext"))," is the text that will be highlighted/emphasized to indicate it is linked.\nIt must not contain the characters ",(0,a.kt)("inlineCode",{parentName:"p"},"@")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"]")," (this is needed to distinguish ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," from regular ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"markdown links"),")."),(0,a.kt)("h3",{id:"term"},(0,a.kt)("inlineCode",{parentName:"h3"},"term")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("inlineCode",{parentName:"strong"},"term"))," is the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," that is to be referred to.",(0,a.kt)("br",null),"It must satisfy the regex ",(0,a.kt)("inlineCode",{parentName:"p"},"[a-z0-9_-]+"),"."),(0,a.kt)("p",null,"If omitted, its value is assumed to be ",(0,a.kt)("a",{parentName:"p",href:"/docs/spec-tools/trrt#id"},"derivable from ",(0,a.kt)("inlineCode",{parentName:"a"},"showtext")),".\nAt a minimum, this is the case if the ",(0,a.kt)("inlineCode",{parentName:"p"},"term")," equals the result of processing ",(0,a.kt)("inlineCode",{parentName:"p"},"showtext")," by first converting every character in the range ",(0,a.kt)("inlineCode",{parentName:"p"},"[A-Z]")," to lower-case, and then replacing every sequence of characters specified by regex ",(0,a.kt)("inlineCode",{parentName:"p"},"[^A-Za-z_-]+")," with (a single) ",(0,a.kt)("inlineCode",{parentName:"p"},"-")," character."),(0,a.kt)("h3",{id:"trait"},(0,a.kt)("inlineCode",{parentName:"h3"},"trait")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("inlineCode",{parentName:"strong"},"trait"))," is a text that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," a particular (kind of) characteristic (feature, attribute, particularity) that is associated with the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term"),", and to a description of which is to be referred.",(0,a.kt)("br",null),"It must satisfy the regex ",(0,a.kt)("inlineCode",{parentName:"p"},"[a-z0-9_-]+"),"."),(0,a.kt)("p",null,"If omitted (in which case the preceding ",(0,a.kt)("inlineCode",{parentName:"p"},"#"),"-character may also be omitted), the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," will by default resolve to the text of its ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/glossary",hovertext:"Glossary: an alphabetically sorted list of Terms with the (single) meaning it has in (at least) one context."},"glossary")," entry. While it is envisaged that ",(0,a.kt)("inlineCode",{parentName:"p"},"trait")," must be a text from a predefined set of allowed/supported texts (e.g. ",(0,a.kt)("inlineCode",{parentName:"p"},"purpose"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"criteria"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"example-3"),"), the precise semantics remain to be specified."),(0,a.kt)("admonition",{title:"Editor's note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"The semantics of ",(0,a.kt)("inlineCode",{parentName:"p"},"trait")," need to be better specified.")),(0,a.kt)("h3",{id:"scopetag"},(0,a.kt)("inlineCode",{parentName:"h3"},"scopetag")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("inlineCode",{parentName:"strong"},"scopetag"))," is a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/tag",hovertext:"Tag: an alphanumeric string that is used to identify Scopes (so called 'scopetags'), group Terms (so called 'grouptags'), or identify a specific version of a Terminology (so called 'versiontags') from within a specific Scope."},"tag")," that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that contains the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that is being referenced.",(0,a.kt)("br",null),"It must satisfy the regex ",(0,a.kt)("inlineCode",{parentName:"p"},"[a-z0-9_-]+"),". Also, it must appear as such in the ",(0,a.kt)("inlineCode",{parentName:"p"},"scopes")," section of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which the document containing the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is being maintained, or it must be the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetag")," of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," itself."),(0,a.kt)("p",null,"If omitted, a default ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," will be used, which is the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," from which the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," is being called, which SHOULD be the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," within which the document containing the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," is being maintained. Note that the preceding ",(0,a.kt)("inlineCode",{parentName:"p"},"@")," sign MUST NOT be omitted because as it serves the purpose to distinguish ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRefs")," from other ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#links"},"markdown links"),"."),(0,a.kt)("h3",{id:"vsntag"},(0,a.kt)("inlineCode",{parentName:"h3"},"vsntag")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("inlineCode",{parentName:"strong"},"vsntag"))," is a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/versiontag",hovertext:"Versiontag: a Tag that is used to Identify a specific version of a Terminology from within a specific Scope."},"versiontag")," that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/identify",hovertext:"Identify: an Act, by or on behalf of a Party, that results in the selection of either\n- a single Partial Identity that the party Owns, given some (observed or received) data, or\n- a single Entity from a given set of entities that is the Subject of a specified Partial Identity that the party Owns."},"identifies")," the specific version of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," that contains the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scoped-term",hovertext:"Scoped Term: a Term that represents (and Identifies) a specific Semantic Unit of a particular Community (or Party)."},"(scoped) term")," that is being referenced.",(0,a.kt)("br",null),"It must satisfy the regex ",(0,a.kt)("inlineCode",{parentName:"p"},"[a-z0-9_-\\.]+"),"."),(0,a.kt)("p",null,"If omitted (in which case the preceding ",(0,a.kt)("inlineCode",{parentName:"p"},":"),"-character may also be omitted), its value will be the default, which is determined by the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," of that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope")," (the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," that has the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology",hovertext:"Terminology: a set of Terms that are used within a single Scope to refer to Concepts and other Semantic Units of a single Party (e.g. a Community), enabling Parties to reason and communicate ideas they have about one or more specific topics."},"terminology")," that contains the (scoped) term](scoped-term@) that is being referenced, is specified in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of that ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),", in the appropriate ",(0,a.kt)("inlineCode",{parentName:"p"},"scopes.mrgfile"),"-field). A ",(0,a.kt)("inlineCode",{parentName:"p"},"vsntag")," is only valid if it appears as the value of the ",(0,a.kt)("inlineCode",{parentName:"p"},"vsntag")," field or an element of the ",(0,a.kt)("inlineCode",{parentName:"p"},"altvsntags")," field in one of the list-elements of the ",(0,a.kt)("inlineCode",{parentName:"p"},"versions")," field in the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," of the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scope",hovertext:"Scope: the extent of the Terms, Definitions and other documentation that a Community (which we call the Owner of the Scope) needs to express, communicate and validate its Knowledge as relevant to achieving a specific subset of its Objectives."},"scope"),"."),(0,a.kt)("admonition",{title:"Editor's note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"It has been suggested to provide ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," syntax that allows one to refer to a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/semantic-unit",hovertext:"Semantic Unit: something that can be thought of as existing in a particular Knowledge, e.g. a Concept, or a Mental Model."},"semantic unit")," from a ","[terminology]"," that was 'current'/'latest'/... at a particular date. The ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/saf",hovertext:"SAF: a YAML file that contains essential data about a particular Scope (e.g., specifying where its Curated Texts, Glossaries etc. live), the relationships this Scope has with other Scopes, and the specifications of the different Terminologies that are Curated within that Scope."},"SAF")," ",(0,a.kt)("a",{parentName:"p",href:"/docs/spec-files/saf#versions"},"versioning specifications")," already cater for ",(0,a.kt)("inlineCode",{parentName:"p"},"from")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"to")," dates, but everything else needs to be worked out.")),(0,a.kt)("h3",{id:"alternative-syntax"},"Alternative notation"),(0,a.kt)("p",null,"It is convenient for ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," to be able to use the '@",(0,a.kt)("inlineCode",{parentName:"p"},"scopetag"),"' part of a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," immediately behind the ",(0,a.kt)("inlineCode",{parentName:"p"},"show text")," within the square brackets (",(0,a.kt)("inlineCode",{parentName:"p"},"[")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"]"),"), and leave out the parentheses and the text in between if all the other items are omitted."),(0,a.kt)("p",null,"This is particularly useful in the vast majority of cases, where the default processing of ",(0,a.kt)("inlineCode",{parentName:"p"},"showtext")," results in ",(0,a.kt)("inlineCode",{parentName:"p"},"term")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"trait")," is absent. Examples of this are ",(0,a.kt)("inlineCode",{parentName:"p"},"[definition](@)"),", or ",(0,a.kt)("inlineCode",{parentName:"p"},"[TermRef](@)"),"."),(0,a.kt)("p",null,"The usefulness becomes even greater as the ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/trrt",hovertext:"TRRT (TermRef Rendering Tool): a TEv2 Tool that is designed to facilitate the visualization and rendering of TermRefs."},"TRRT")," also implements more sophisticated ways to derive a ",(0,a.kt)("inlineCode",{parentName:"p"},"term")," from a ",(0,a.kt)("inlineCode",{parentName:"p"},"show text"),", e.g. to accommodate for plural forms (of nouns), or conjugate forms (for verbs)."),(0,a.kt)("admonition",{title:"Editor's note",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This alternative notation will assume that the ",(0,a.kt)("inlineCode",{parentName:"p"},"showtext")," part of a ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term-ref",hovertext:"TermRef: a word or phrase that is Marked Up (in A Specific Way) so that it refers to a particular Concept (or other Semantic Unit), enabling it to be rendered in a variety of ways for the purpose of helping Readers to (better) understand the intention of its Author."},"TermRef")," won't contain the ",(0,a.kt)("inlineCode",{parentName:"p"},"@")," character. However, it is likely that some ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"authors")," will want to use an email address as the ",(0,a.kt)("inlineCode",{parentName:"p"},"showtext")," part of a ",(0,a.kt)("em",{parentName:"p"},"regular")," link, e.g. as in ",(0,a.kt)("inlineCode",{parentName:"p"},"[rieks.joosten@tno.nl](mailto:rieks.joosten@tno.nl)"),". However, since ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/scopetag",hovertext:"Scopetag: a Tag that is used to Identify Scopes from within a specific Scope"},"scopetags")," should not contain ",(0,a.kt)("inlineCode",{parentName:"p"},"."),"-characters, ",(0,a.kt)("inlineCode",{parentName:"p"},"[rieks.joosten@tno.nl]")," does not qualify as a ",(0,a.kt)("inlineCode",{parentName:"p"},"showtext")," in our syntax. ",(0,a.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author",hovertext:"Author: a person that creates a text that is meant to be read and understood by others - usually, a particular audience."},"Authors")," should ",(0,a.kt)("a",{parentName:"p",href:"https://www.markdownguide.org/basic-syntax/#urls-and-email-addresses"},"use angle brackets to link to email addresses"),", as in ",(0,a.kt)("inlineCode",{parentName:"p"},""),".")),(0,a.kt)("p",null,"This leads to an alternative notation that can be used in addition to the previously specified notation. Here is the alternative syntax and its equivalent counterpart:"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"center"},"Alternative syntax"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Equivalent regular syntax"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"center"},"[",(0,a.kt)("inlineCode",{parentName:"td"},"show text"),"@","]"),(0,a.kt)("td",{parentName:"tr",align:"center"},"[",(0,a.kt)("inlineCode",{parentName:"td"},"show text"),"]","(@)")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"center"},"[",(0,a.kt)("inlineCode",{parentName:"td"},"show text"),"@",(0,a.kt)("inlineCode",{parentName:"td"},"scopetag"),"]"),(0,a.kt)("td",{parentName:"tr",align:"center"},"[",(0,a.kt)("inlineCode",{parentName:"td"},"show text"),"]","(",(0,a.kt)("inlineCode",{parentName:"td"},"showtext"),"@",(0,a.kt)("inlineCode",{parentName:"td"},"scopetag"),")")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"center"},"[",(0,a.kt)("inlineCode",{parentName:"td"},"show text"),"@",(0,a.kt)("inlineCode",{parentName:"td"},"scopetag"),":",(0,a.kt)("inlineCode",{parentName:"td"},"vsntag"),"]","(",(0,a.kt)("inlineCode",{parentName:"td"},"term"),"#",(0,a.kt)("inlineCode",{parentName:"td"},"trait"),")"),(0,a.kt)("td",{parentName:"tr",align:"center"},"[",(0,a.kt)("inlineCode",{parentName:"td"},"show text"),"]","(",(0,a.kt)("inlineCode",{parentName:"td"},"term"),"#",(0,a.kt)("inlineCode",{parentName:"td"},"trait"),"@",(0,a.kt)("inlineCode",{parentName:"td"},"scopetag"),":",(0,a.kt)("inlineCode",{parentName:"td"},"vsntag"),")")))),(0,a.kt)("p",null,"In the last row of the above table, ",(0,a.kt)("inlineCode",{parentName:"p"},"term")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"#trait")," are optional. Thus, ",(0,a.kt)("inlineCode",{parentName:"p"},"[definition@]()")," is equivalent with ",(0,a.kt)("inlineCode",{parentName:"p"},"[definition](@)")," and with ",(0,a.kt)("inlineCode",{parentName:"p"},"[definition](@)"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d71eb2ae.dd3e0d2c.js b/assets/js/d71eb2ae.207cb21b.js similarity index 99% rename from assets/js/d71eb2ae.dd3e0d2c.js rename to assets/js/d71eb2ae.207cb21b.js index 523e0c9229..189d2719fa 100644 --- a/assets/js/d71eb2ae.dd3e0d2c.js +++ b/assets/js/d71eb2ae.207cb21b.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[5505],{3905:function(t,e,o){o.d(e,{Zo:function(){return u},kt:function(){return p}});var i=o(7294);function n(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function a(t,e){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.push.apply(o,i)}return o}function r(t){for(var e=1;e=0||(n[o]=t[o]);return n}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(n[o]=t[o])}return n}var c=i.createContext({}),h=function(t){var e=i.useContext(c),o=e;return t&&(o="function"==typeof t?t(e):r(r({},e),t)),o},u=function(t){var e=h(t.components);return i.createElement(c.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},m=i.forwardRef((function(t,e){var o=t.components,n=t.mdxType,a=t.originalType,c=t.parentName,u=s(t,["components","mdxType","originalType","parentName"]),m=h(o),p=n,l=m["".concat(c,".").concat(p)]||m[p]||d[p]||a;return o?i.createElement(l,r(r({ref:e},u),{},{components:o})):i.createElement(l,r({ref:e},u))}));function p(t,e){var o=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var a=o.length,r=new Array(a);r[0]=m;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:n,r[1]=s;for(var h=2;h=0||(n[o]=t[o]);return n}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(n[o]=t[o])}return n}var c=i.createContext({}),h=function(t){var e=i.useContext(c),o=e;return t&&(o="function"==typeof t?t(e):r(r({},e),t)),o},u=function(t){var e=h(t.components);return i.createElement(c.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},m=i.forwardRef((function(t,e){var o=t.components,n=t.mdxType,a=t.originalType,c=t.parentName,u=s(t,["components","mdxType","originalType","parentName"]),m=h(o),p=n,l=m["".concat(c,".").concat(p)]||m[p]||d[p]||a;return o?i.createElement(l,r(r({ref:e},u),{},{components:o})):i.createElement(l,r({ref:e},u))}));function p(t,e){var o=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var a=o.length,r=new Array(a);r[0]=m;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:n,r[1]=s;for(var h=2;h=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},l=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),l=p(r),d=o,m=l["".concat(c,".").concat(d)]||l[d]||f[d]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=l;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var p=2;p=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},l=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),l=p(r),d=o,m=l["".concat(c,".").concat(d)]||l[d]||f[d]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=l;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var p=2;p=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}var c=o.createContext({}),m=function(t){var e=o.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):r(r({},e),t)),n},h=function(t){var e=m(t.components);return o.createElement(c.Provider,{value:e},t.children)},u={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},p=o.forwardRef((function(t,e){var n=t.components,i=t.mdxType,s=t.originalType,c=t.parentName,h=a(t,["components","mdxType","originalType","parentName"]),p=m(n),d=i,l=p["".concat(c,".").concat(d)]||p[d]||u[d]||s;return n?o.createElement(l,r(r({ref:e},h),{},{components:n})):o.createElement(l,r({ref:e},h))}));function d(t,e){var n=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var s=n.length,r=new Array(s);r[0]=p;var a={};for(var c in e)hasOwnProperty.call(e,c)&&(a[c]=e[c]);a.originalType=t,a.mdxType="string"==typeof t?t:i,r[1]=a;for(var m=2;m=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}var c=o.createContext({}),m=function(t){var e=o.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):r(r({},e),t)),n},h=function(t){var e=m(t.components);return o.createElement(c.Provider,{value:e},t.children)},u={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},p=o.forwardRef((function(t,e){var n=t.components,i=t.mdxType,s=t.originalType,c=t.parentName,h=a(t,["components","mdxType","originalType","parentName"]),p=m(n),d=i,l=p["".concat(c,".").concat(d)]||p[d]||u[d]||s;return n?o.createElement(l,r(r({ref:e},h),{},{components:n})):o.createElement(l,r({ref:e},h))}));function d(t,e){var n=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var s=n.length,r=new Array(s);r[0]=p;var a={};for(var c in e)hasOwnProperty.call(e,c)&&(a[c]=e[c]);a.originalType=t,a.mdxType="string"==typeof t?t:i,r[1]=a;for(var m=2;m=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}var c=n.createContext({}),d=function(t){var e=n.useContext(c),r=e;return t&&(r="function"==typeof t?t(e):s(s({},e),t)),r},u=function(t){var e=d(t.components);return n.createElement(c.Provider,{value:e},t.children)},h={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},l=n.forwardRef((function(t,e){var r=t.components,o=t.mdxType,a=t.originalType,c=t.parentName,u=i(t,["components","mdxType","originalType","parentName"]),l=d(r),p=o,f=l["".concat(c,".").concat(p)]||l[p]||h[p]||a;return r?n.createElement(f,s(s({ref:e},u),{},{components:r})):n.createElement(f,s({ref:e},u))}));function p(t,e){var r=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var a=r.length,s=new Array(a);s[0]=l;var i={};for(var c in e)hasOwnProperty.call(e,c)&&(i[c]=e[c]);i.originalType=t,i.mdxType="string"==typeof t?t:o,s[1]=i;for(var d=2;d=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}var c=n.createContext({}),d=function(t){var e=n.useContext(c),r=e;return t&&(r="function"==typeof t?t(e):s(s({},e),t)),r},u=function(t){var e=d(t.components);return n.createElement(c.Provider,{value:e},t.children)},h={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},l=n.forwardRef((function(t,e){var r=t.components,o=t.mdxType,a=t.originalType,c=t.parentName,u=i(t,["components","mdxType","originalType","parentName"]),l=d(r),p=o,f=l["".concat(c,".").concat(p)]||l[p]||h[p]||a;return r?n.createElement(f,s(s({ref:e},u),{},{components:r})):n.createElement(f,s({ref:e},u))}));function p(t,e){var r=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var a=r.length,s=new Array(a);s[0]=l;var i={};for(var c in e)hasOwnProperty.call(e,c)&&(i[c]=e[c]);i.originalType=t,i.mdxType="string"==typeof t?t:o,s[1]=i;for(var d=2;d=0||(s[i]=e[i]);return s}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(s[i]=e[i])}return s}var c=o.createContext({}),h=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):n(n({},t),e)),i},d=function(e){var t=h(e.components);return o.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var i=e.components,s=e.mdxType,a=e.originalType,c=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),p=h(i),l=s,f=p["".concat(c,".").concat(l)]||p[l]||m[l]||a;return i?o.createElement(f,n(n({ref:t},d),{},{components:i})):o.createElement(f,n({ref:t},d))}));function l(e,t){var i=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var a=i.length,n=new Array(a);n[0]=p;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:s,n[1]=r;for(var h=2;h=0||(s[i]=e[i]);return s}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(s[i]=e[i])}return s}var c=o.createContext({}),h=function(e){var t=o.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):n(n({},t),e)),i},d=function(e){var t=h(e.components);return o.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var i=e.components,s=e.mdxType,a=e.originalType,c=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),p=h(i),l=s,f=p["".concat(c,".").concat(l)]||p[l]||m[l]||a;return i?o.createElement(f,n(n({ref:t},d),{},{components:i})):o.createElement(f,n({ref:t},d))}));function l(e,t){var i=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var a=i.length,n=new Array(a);n[0]=p;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:s,n[1]=r;for(var h=2;h=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}var c=o.createContext({}),l=function(t){var e=o.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):a(a({},e),t)),n},m=function(t){var e=l(t.components);return o.createElement(c.Provider,{value:e},t.children)},p={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},h=o.forwardRef((function(t,e){var n=t.components,i=t.mdxType,r=t.originalType,c=t.parentName,m=s(t,["components","mdxType","originalType","parentName"]),h=l(n),f=i,u=h["".concat(c,".").concat(f)]||h[f]||p[f]||r;return n?o.createElement(u,a(a({ref:e},m),{},{components:n})):o.createElement(u,a({ref:e},m))}));function f(t,e){var n=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var r=n.length,a=new Array(r);a[0]=h;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:i,a[1]=s;for(var l=2;l=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}var c=o.createContext({}),l=function(t){var e=o.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):a(a({},e),t)),n},m=function(t){var e=l(t.components);return o.createElement(c.Provider,{value:e},t.children)},p={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},h=o.forwardRef((function(t,e){var n=t.components,i=t.mdxType,r=t.originalType,c=t.parentName,m=s(t,["components","mdxType","originalType","parentName"]),h=l(n),f=i,u=h["".concat(c,".").concat(f)]||h[f]||p[f]||r;return n?o.createElement(u,a(a({ref:e},m),{},{components:n})):o.createElement(u,a({ref:e},m))}));function f(t,e){var n=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var r=n.length,a=new Array(r);a[0]=h;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:i,a[1]=s;for(var l=2;l=0||(n[a]=t[a]);return n}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(n[a]=t[a])}return n}var c=r.createContext({}),h=function(t){var e=r.useContext(c),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},d=function(t){var e=h(t.components);return r.createElement(c.Provider,{value:e},t.children)},p={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},m=r.forwardRef((function(t,e){var a=t.components,n=t.mdxType,o=t.originalType,c=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),m=h(a),l=n,f=m["".concat(c,".").concat(l)]||m[l]||p[l]||o;return a?r.createElement(f,i(i({ref:e},d),{},{components:a})):r.createElement(f,i({ref:e},d))}));function l(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var o=a.length,i=new Array(o);i[0]=m;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:n,i[1]=s;for(var h=2;h=0||(n[a]=t[a]);return n}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(n[a]=t[a])}return n}var c=r.createContext({}),h=function(t){var e=r.useContext(c),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},d=function(t){var e=h(t.components);return r.createElement(c.Provider,{value:e},t.children)},p={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},m=r.forwardRef((function(t,e){var a=t.components,n=t.mdxType,o=t.originalType,c=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),m=h(a),l=n,f=m["".concat(c,".").concat(l)]||m[l]||p[l]||o;return a?r.createElement(f,i(i({ref:e},d),{},{components:a})):r.createElement(f,i({ref:e},d))}));function l(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var o=a.length,i=new Array(o);i[0]=m;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:n,i[1]=s;for(var h=2;h=0||(s[o]=e[o]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(s[o]=e[o])}return s}var c=r.createContext({}),l=function(e){var t=r.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var o=e.components,s=e.mdxType,n=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),f=l(o),d=s,u=f["".concat(c,".").concat(d)]||f[d]||m[d]||n;return o?r.createElement(u,a(a({ref:t},p),{},{components:o})):r.createElement(u,a({ref:t},p))}));function d(e,t){var o=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=o.length,a=new Array(n);a[0]=f;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:s,a[1]=i;for(var l=2;l=0||(s[o]=e[o]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(s[o]=e[o])}return s}var c=r.createContext({}),l=function(e){var t=r.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var o=e.components,s=e.mdxType,n=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),f=l(o),d=s,u=f["".concat(c,".").concat(d)]||f[d]||m[d]||n;return o?r.createElement(u,a(a({ref:t},p),{},{components:o})):r.createElement(u,a({ref:t},p))}));function d(e,t){var o=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=o.length,a=new Array(n);a[0]=f;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:s,a[1]=i;for(var l=2;l=0||(i[o]=e[o]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(i[o]=e[o])}return i}var c=r.createContext({}),l=function(e){var t=r.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},m=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var o=e.components,i=e.mdxType,n=e.originalType,c=e.parentName,m=a(e,["components","mdxType","originalType","parentName"]),u=l(o),d=i,f=u["".concat(c,".").concat(d)]||u[d]||p[d]||n;return o?r.createElement(f,s(s({ref:t},m),{},{components:o})):r.createElement(f,s({ref:t},m))}));function d(e,t){var o=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=o.length,s=new Array(n);s[0]=u;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:i,s[1]=a;for(var l=2;l=0||(i[o]=e[o]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(i[o]=e[o])}return i}var c=r.createContext({}),l=function(e){var t=r.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},m=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var o=e.components,i=e.mdxType,n=e.originalType,c=e.parentName,m=a(e,["components","mdxType","originalType","parentName"]),u=l(o),d=i,f=u["".concat(c,".").concat(d)]||u[d]||p[d]||n;return o?r.createElement(f,s(s({ref:t},m),{},{components:o})):r.createElement(f,s({ref:t},m))}));function d(e,t){var o=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=o.length,s=new Array(n);s[0]=u;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:i,s[1]=a;for(var l=2;l=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},d=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},l=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),l=u(r),h=a,m=l["".concat(c,".").concat(h)]||l[h]||p[h]||o;return r?n.createElement(m,s(s({ref:t},d),{},{components:r})):n.createElement(m,s({ref:t},d))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=l;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,s[1]=i;for(var u=2;u=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},d=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},l=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),l=u(r),h=a,m=l["".concat(c,".").concat(h)]||l[h]||p[h]||o;return r?n.createElement(m,s(s({ref:t},d),{},{components:r})):n.createElement(m,s({ref:t},d))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=l;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,s[1]=i;for(var u=2;u=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},m=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),d=l(r),g=o,f=d["".concat(c,".").concat(g)]||d[g]||p[g]||a;return r?n.createElement(f,i(i({ref:t},m),{},{components:r})):n.createElement(f,i({ref:t},m))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var l=2;l=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},m=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),d=l(r),g=o,f=d["".concat(c,".").concat(g)]||d[g]||p[g]||a;return r?n.createElement(f,i(i({ref:t},m),{},{components:r})):n.createElement(f,i({ref:t},m))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var l=2;l=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=a.createContext({}),l=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=l(r),f=o,d=p["".concat(c,".").concat(f)]||p[f]||u[f]||n;return r?a.createElement(d,i(i({ref:t},h),{},{components:r})):a.createElement(d,i({ref:t},h))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,i=new Array(n);i[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var l=2;l=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=a.createContext({}),l=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=l(r),f=o,d=p["".concat(c,".").concat(f)]||p[f]||u[f]||n;return r?a.createElement(d,i(i({ref:t},h),{},{components:r})):a.createElement(d,i({ref:t},h))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,i=new Array(n);i[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var l=2;l=0||(n[i]=t[i]);return n}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(n[i]=t[i])}return n}var c=r.createContext({}),h=function(t){var e=r.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):o(o({},e),t)),i},d=function(t){var e=h(t.components);return r.createElement(c.Provider,{value:e},t.children)},f={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},m=r.forwardRef((function(t,e){var i=t.components,n=t.mdxType,a=t.originalType,c=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),m=h(i),p=n,u=m["".concat(c,".").concat(p)]||m[p]||f[p]||a;return i?r.createElement(u,o(o({ref:e},d),{},{components:i})):r.createElement(u,o({ref:e},d))}));function p(t,e){var i=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var a=i.length,o=new Array(a);o[0]=m;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:n,o[1]=s;for(var h=2;h=0||(n[i]=t[i]);return n}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(n[i]=t[i])}return n}var c=r.createContext({}),h=function(t){var e=r.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):o(o({},e),t)),i},d=function(t){var e=h(t.components);return r.createElement(c.Provider,{value:e},t.children)},f={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},m=r.forwardRef((function(t,e){var i=t.components,n=t.mdxType,a=t.originalType,c=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),m=h(i),p=n,u=m["".concat(c,".").concat(p)]||m[p]||f[p]||a;return i?r.createElement(u,o(o({ref:e},d),{},{components:i})):r.createElement(u,o({ref:e},d))}));function p(t,e){var i=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var a=i.length,o=new Array(a);o[0]=m;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:n,o[1]=s;for(var h=2;h=0||(r[i]=e[i]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},h=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var i=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),f=p(i),d=r,u=f["".concat(c,".").concat(d)]||f[d]||l[d]||a;return i?n.createElement(u,o(o({ref:t},h),{},{components:i})):n.createElement(u,o({ref:t},h))}));function d(e,t){var i=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=i.length,o=new Array(a);o[0]=f;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var p=2;p=0||(r[i]=e[i]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},h=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var i=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),f=p(i),d=r,u=f["".concat(c,".").concat(d)]||f[d]||l[d]||a;return i?n.createElement(u,o(o({ref:t},h),{},{components:i})):n.createElement(u,o({ref:t},h))}));function d(e,t){var i=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=i.length,o=new Array(a);o[0]=f;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var p=2;p=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=u(r),f=o,m=d["".concat(c,".").concat(f)]||d[f]||p[f]||i;return r?n.createElement(m,a(a({ref:t},l),{},{components:r})):n.createElement(m,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var u=2;u=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=u(r),f=o,m=d["".concat(c,".").concat(f)]||d[f]||p[f]||i;return r?n.createElement(m,a(a({ref:t},l),{},{components:r})):n.createElement(m,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var u=2;u=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var c=n.createContext({}),l=function(t){var e=n.useContext(c),a=e;return t&&(a="function"==typeof t?t(e):o(o({},e),t)),a},d=function(t){var e=l(t.components);return n.createElement(c.Provider,{value:e},t.children)},m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},u=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,c=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),u=l(a),p=r,h=u["".concat(c,".").concat(p)]||u[p]||m[p]||i;return a?n.createElement(h,o(o({ref:e},d),{},{components:a})):n.createElement(h,o({ref:e},d))}));function p(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,o=new Array(i);o[0]=u;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:r,o[1]=s;for(var l=2;l child <"+("string"==typeof t.type?t.type:t.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:a.filter(Boolean))?e:[]}(t).map((function(t){var e=t.props;return{value:e.value,label:e.label,attributes:e.attributes,default:e.default}}))}function u(t){var e=t.values,a=t.children;return(0,r.useMemo)((function(){var t=null!=e?e:m(a);return function(t){var e=(0,l.l)(t,(function(t,e){return t.value===e.value}));if(e.length>0)throw new Error('Docusaurus error: Duplicate values "'+e.map((function(t){return t.value})).join(", ")+'" found in . Every value needs to be unique.')}(t),t}),[e,a])}function p(t){var e=t.value;return t.tabValues.some((function(t){return t.value===e}))}function h(t){var e=t.queryString,a=void 0!==e&&e,n=t.groupId,i=(0,s.k6)(),o=function(t){var e=t.queryString,a=void 0!==e&&e,n=t.groupId;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=n?n:null}({queryString:a,groupId:n});return[(0,c._X)(o),(0,r.useCallback)((function(t){if(o){var e=new URLSearchParams(i.location.search);e.set(o,t),i.replace(Object.assign({},i.location,{search:e.toString()}))}}),[o,i])]}function f(t){var e,a,n,i,o=t.defaultValue,s=t.queryString,c=void 0!==s&&s,l=t.groupId,m=u(t),f=(0,r.useState)((function(){return function(t){var e,a=t.defaultValue,n=t.tabValues;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(a){if(!p({value:a,tabValues:n}))throw new Error('Docusaurus error: The has a defaultValue "'+a+'" but none of its children has the corresponding value. Available values are: '+n.map((function(t){return t.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return a}var r=null!=(e=n.find((function(t){return t.default})))?e:n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:o,tabValues:m})})),g=f[0],y=f[1],b=h({queryString:c,groupId:l}),v=b[0],k=b[1],T=(e=function(t){return t?"docusaurus.tab."+t:null}({groupId:l}.groupId),a=(0,d.Nk)(e),n=a[0],i=a[1],[n,(0,r.useCallback)((function(t){e&&i.set(t)}),[e,i])]),N=T[0],w=T[1],x=function(){var t=null!=v?v:N;return p({value:t,tabValues:m})?t:null}();return(0,r.useLayoutEffect)((function(){x&&y(x)}),[x]),{selectedValue:g,selectValue:(0,r.useCallback)((function(t){if(!p({value:t,tabValues:m}))throw new Error("Can't select invalid tab value="+t);y(t),k(t),w(t)}),[k,w,m]),tabValues:m}}var g=a(2389),y="tabList__CuJ",b="tabItem_LNqP";function v(t){var e=t.className,a=t.block,s=t.selectedValue,c=t.selectValue,l=t.tabValues,d=[],m=(0,o.o5)().blockElementScrollPositionUntilNextRender,u=function(t){var e=t.currentTarget,a=d.indexOf(e),n=l[a].value;n!==s&&(m(e),c(n))},p=function(t){var e,a=null;switch(t.key){case"Enter":u(t);break;case"ArrowRight":var n,r=d.indexOf(t.currentTarget)+1;a=null!=(n=d[r])?n:d[0];break;case"ArrowLeft":var i,o=d.indexOf(t.currentTarget)-1;a=null!=(i=d[o])?i:d[d.length-1]}null==(e=a)||e.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":a},e)},l.map((function(t){var e=t.value,a=t.label,o=t.attributes;return r.createElement("li",(0,n.Z)({role:"tab",tabIndex:s===e?0:-1,"aria-selected":s===e,key:e,ref:function(t){return d.push(t)},onKeyDown:p,onClick:u},o,{className:(0,i.Z)("tabs__item",b,null==o?void 0:o.className,{"tabs__item--active":s===e})}),null!=a?a:e)})))}function k(t){var e=t.lazy,a=t.children,n=t.selectedValue,i=(Array.isArray(a)?a:[a]).filter(Boolean);if(e){var o=i.find((function(t){return t.props.value===n}));return o?(0,r.cloneElement)(o,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map((function(t,e){return(0,r.cloneElement)(t,{key:e,hidden:t.props.value!==n})})))}function T(t){var e=f(t);return r.createElement("div",{className:(0,i.Z)("tabs-container",y)},r.createElement(v,(0,n.Z)({},t,e)),r.createElement(k,(0,n.Z)({},t,e)))}function N(t){var e=(0,g.Z)();return r.createElement(T,(0,n.Z)({key:String(e)},t))}},1056:function(t,e,a){a.r(e),a.d(e,{assets:function(){return d},contentTitle:function(){return c},default:function(){return h},frontMatter:function(){return s},mark:function(){return u},metadata:function(){return l},toc:function(){return m}});var n=a(7462),r=a(3366),i=(a(7294),a(3905)),o=(a(4996),a(4866),a(5162),["components"]),s={id:"hrg-termselcrit",date:20230103},c="HRG Selection Criteria",l={unversionedId:"spec-syntax/hrg-termselcrit",id:"spec-syntax/hrg-termselcrit",title:"HRG Selection Criteria",description:"text to mark",source:"@site/docs/spec-syntax/31-hrg-termselcrit.md",sourceDirName:"spec-syntax",slug:"/spec-syntax/hrg-termselcrit",permalink:"/tev2-specifications/docs/spec-syntax/hrg-termselcrit",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-syntax/31-hrg-termselcrit.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695712473,formattedLastUpdatedAt:"Sep 26, 2023",sidebarPosition:31,frontMatter:{id:"hrg-termselcrit",date:20230103},sidebar:"tev2SideBar",previous:{title:"Form Phrases",permalink:"/tev2-specifications/docs/spec-syntax/form-phrase-syntax"},next:{title:"Terminology Construction",permalink:"/tev2-specifications/docs/spec-tools/terminology-construction"}},d={},m=[{value:"Adding terms",id:"syntax-add",level:2},{value:"Removing terms",id:"syntax-remove",level:2}],u=function(t){var e=t.children;return(0,i.kt)("span",{style:{color:"black",backgroundColor:"yellow",padding:"0.2rem",borderRadius:"2px"}},e)},p={toc:m,mark:u};function h(t){var e=t.components,a=(0,r.Z)(t,o);return(0,i.kt)("wrapper",(0,n.Z)({},p,a,{components:e,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"hrg-selection-criteria"},"HRG Selection Criteria"),(0,i.kt)("p",null,"When ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," generate an ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," from a particular ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", they may want to specify the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," to be included in the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," (or preventing specific ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from being included)."),(0,i.kt)("p",null,"This can be done by using the same mechanism for ",(0,i.kt)("a",{parentName:"p",href:"/docs/spec-tools/terminology-construction"},"terminology construction")," as is used for generating ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),". The differences are that there is only one source, i.e. the particular ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from which the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is generated. Thus, references to ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that have no corresponding ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," in that ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," are invalid. Also, there is no need for renaming syntax."),(0,i.kt)("p",null,"If generating an ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," requires the selection of terms, the instructions are to be specified in the ",(0,i.kt)("inlineCode",{parentName:"p"},"termselcrit")," field of the configuration file specified as an argument on the command-line when calling the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT"),"."),(0,i.kt)("h2",{id:"syntax-add"},"Adding terms"),(0,i.kt)("p",null,"The following instructions can be used for adding ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," (whitespace in the syntax is disregarded):"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,i.kt)("th",{parentName:"tr",align:"left"},"The instruction adds every ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," from the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," to the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")," ..."))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"terms [ ]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"whose ",(0,i.kt)("inlineCode",{parentName:"td"},"term"),"-field is an element of ",(0,i.kt)("inlineCode",{parentName:"td"},""),".")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"tags [ ]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"whose ",(0,i.kt)("inlineCode",{parentName:"td"},"grouptags")," field contains an element that is also an element of ",(0,i.kt)("inlineCode",{parentName:"td"},""),".")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"*")),(0,i.kt)("td",{parentName:"tr",align:"left"},"that exists within the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from which the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is generated.")))),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"")," and ",(0,i.kt)("inlineCode",{parentName:"li"},"")," are comma-separated lists of ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," and ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," respectively."),(0,i.kt)("li",{parentName:"ul"},"An ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," will only be added to the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")," if it does not already exist.")),(0,i.kt)("details",null,(0,i.kt)("summary",null,"Examples"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,i.kt)("th",{parentName:"tr",align:"left"},"What it does when processed"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"terms[party]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"finds the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," associated with the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," ",(0,i.kt)("inlineCode",{parentName:"td"},"party"),", and adds it to the selected set of ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),".")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"tags[management,governance]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"finds the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," associated with the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," ",(0,i.kt)("inlineCode",{parentName:"td"},"management")," and ",(0,i.kt)("inlineCode",{parentName:"td"},"governance"),", and adds them to the selected set of ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),".")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"*")),(0,i.kt)("td",{parentName:"tr",align:"left"},"selects all ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," from the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", and adds them to the selected set of ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),"."))))),(0,i.kt)("h2",{id:"syntax-remove"},"Removing terms"),(0,i.kt)("p",null,"The following instructions can be used for removing ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," from the set of selected ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," (whitespace in the syntax is disregarded):"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,i.kt)("th",{parentName:"tr",align:"left"},"The instruction removes every ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," from the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")," ..."))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"-terms [ ]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"whose ",(0,i.kt)("inlineCode",{parentName:"td"},"term"),"-field is an element of ",(0,i.kt)("inlineCode",{parentName:"td"},""),".")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"-tags [ ]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"whose ",(0,i.kt)("inlineCode",{parentName:"td"},"grouptags")," field contains an element that is also an element of ",(0,i.kt)("inlineCode",{parentName:"td"},""),".")))),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"")," and ",(0,i.kt)("inlineCode",{parentName:"li"},"")," are comma-separated lists of ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),", and ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," respectively."),(0,i.kt)("li",{parentName:"ul"},"Elements of the ",(0,i.kt)("inlineCode",{parentName:"li"},"")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"")," that do not lead to the removal of an ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," may be logged.")),(0,i.kt)("details",null,(0,i.kt)("summary",null,"Examples"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,i.kt)("th",{parentName:"tr",align:"left"},"What it does when processed"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"-terms[party, actor]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"removes the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that have either ",(0,i.kt)("inlineCode",{parentName:"td"},"party")," or ",(0,i.kt)("inlineCode",{parentName:"td"},"actor")," in its ",(0,i.kt)("inlineCode",{parentName:"td"},"term")," field.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"-tags[management]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"removes all ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that have a ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptag")," ",(0,i.kt)("inlineCode",{parentName:"td"},"management"),"."))))))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[9825],{3905:function(t,e,a){a.d(e,{Zo:function(){return d},kt:function(){return p}});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function o(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var c=n.createContext({}),l=function(t){var e=n.useContext(c),a=e;return t&&(a="function"==typeof t?t(e):o(o({},e),t)),a},d=function(t){var e=l(t.components);return n.createElement(c.Provider,{value:e},t.children)},m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},u=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,c=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),u=l(a),p=r,h=u["".concat(c,".").concat(p)]||u[p]||m[p]||i;return a?n.createElement(h,o(o({ref:e},d),{},{components:a})):n.createElement(h,o({ref:e},d))}));function p(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,o=new Array(i);o[0]=u;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:r,o[1]=s;for(var l=2;l child <"+("string"==typeof t.type?t.type:t.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:a.filter(Boolean))?e:[]}(t).map((function(t){var e=t.props;return{value:e.value,label:e.label,attributes:e.attributes,default:e.default}}))}function u(t){var e=t.values,a=t.children;return(0,r.useMemo)((function(){var t=null!=e?e:m(a);return function(t){var e=(0,l.l)(t,(function(t,e){return t.value===e.value}));if(e.length>0)throw new Error('Docusaurus error: Duplicate values "'+e.map((function(t){return t.value})).join(", ")+'" found in . Every value needs to be unique.')}(t),t}),[e,a])}function p(t){var e=t.value;return t.tabValues.some((function(t){return t.value===e}))}function h(t){var e=t.queryString,a=void 0!==e&&e,n=t.groupId,i=(0,s.k6)(),o=function(t){var e=t.queryString,a=void 0!==e&&e,n=t.groupId;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=n?n:null}({queryString:a,groupId:n});return[(0,c._X)(o),(0,r.useCallback)((function(t){if(o){var e=new URLSearchParams(i.location.search);e.set(o,t),i.replace(Object.assign({},i.location,{search:e.toString()}))}}),[o,i])]}function f(t){var e,a,n,i,o=t.defaultValue,s=t.queryString,c=void 0!==s&&s,l=t.groupId,m=u(t),f=(0,r.useState)((function(){return function(t){var e,a=t.defaultValue,n=t.tabValues;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(a){if(!p({value:a,tabValues:n}))throw new Error('Docusaurus error: The has a defaultValue "'+a+'" but none of its children has the corresponding value. Available values are: '+n.map((function(t){return t.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return a}var r=null!=(e=n.find((function(t){return t.default})))?e:n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:o,tabValues:m})})),g=f[0],y=f[1],b=h({queryString:c,groupId:l}),v=b[0],k=b[1],T=(e=function(t){return t?"docusaurus.tab."+t:null}({groupId:l}.groupId),a=(0,d.Nk)(e),n=a[0],i=a[1],[n,(0,r.useCallback)((function(t){e&&i.set(t)}),[e,i])]),N=T[0],w=T[1],x=function(){var t=null!=v?v:N;return p({value:t,tabValues:m})?t:null}();return(0,r.useLayoutEffect)((function(){x&&y(x)}),[x]),{selectedValue:g,selectValue:(0,r.useCallback)((function(t){if(!p({value:t,tabValues:m}))throw new Error("Can't select invalid tab value="+t);y(t),k(t),w(t)}),[k,w,m]),tabValues:m}}var g=a(2389),y="tabList__CuJ",b="tabItem_LNqP";function v(t){var e=t.className,a=t.block,s=t.selectedValue,c=t.selectValue,l=t.tabValues,d=[],m=(0,o.o5)().blockElementScrollPositionUntilNextRender,u=function(t){var e=t.currentTarget,a=d.indexOf(e),n=l[a].value;n!==s&&(m(e),c(n))},p=function(t){var e,a=null;switch(t.key){case"Enter":u(t);break;case"ArrowRight":var n,r=d.indexOf(t.currentTarget)+1;a=null!=(n=d[r])?n:d[0];break;case"ArrowLeft":var i,o=d.indexOf(t.currentTarget)-1;a=null!=(i=d[o])?i:d[d.length-1]}null==(e=a)||e.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":a},e)},l.map((function(t){var e=t.value,a=t.label,o=t.attributes;return r.createElement("li",(0,n.Z)({role:"tab",tabIndex:s===e?0:-1,"aria-selected":s===e,key:e,ref:function(t){return d.push(t)},onKeyDown:p,onClick:u},o,{className:(0,i.Z)("tabs__item",b,null==o?void 0:o.className,{"tabs__item--active":s===e})}),null!=a?a:e)})))}function k(t){var e=t.lazy,a=t.children,n=t.selectedValue,i=(Array.isArray(a)?a:[a]).filter(Boolean);if(e){var o=i.find((function(t){return t.props.value===n}));return o?(0,r.cloneElement)(o,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map((function(t,e){return(0,r.cloneElement)(t,{key:e,hidden:t.props.value!==n})})))}function T(t){var e=f(t);return r.createElement("div",{className:(0,i.Z)("tabs-container",y)},r.createElement(v,(0,n.Z)({},t,e)),r.createElement(k,(0,n.Z)({},t,e)))}function N(t){var e=(0,g.Z)();return r.createElement(T,(0,n.Z)({key:String(e)},t))}},1056:function(t,e,a){a.r(e),a.d(e,{assets:function(){return d},contentTitle:function(){return c},default:function(){return h},frontMatter:function(){return s},mark:function(){return u},metadata:function(){return l},toc:function(){return m}});var n=a(7462),r=a(3366),i=(a(7294),a(3905)),o=(a(4996),a(4866),a(5162),["components"]),s={id:"hrg-termselcrit",date:20230103},c="HRG Selection Criteria",l={unversionedId:"spec-syntax/hrg-termselcrit",id:"spec-syntax/hrg-termselcrit",title:"HRG Selection Criteria",description:"text to mark",source:"@site/docs/spec-syntax/31-hrg-termselcrit.md",sourceDirName:"spec-syntax",slug:"/spec-syntax/hrg-termselcrit",permalink:"/tev2-specifications/docs/spec-syntax/hrg-termselcrit",draft:!1,editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/docs/spec-syntax/31-hrg-termselcrit.md",tags:[],version:"current",lastUpdatedBy:"Rieks",lastUpdatedAt:1695968786,formattedLastUpdatedAt:"Sep 29, 2023",sidebarPosition:31,frontMatter:{id:"hrg-termselcrit",date:20230103},sidebar:"tev2SideBar",previous:{title:"Form Phrases",permalink:"/tev2-specifications/docs/spec-syntax/form-phrase-syntax"},next:{title:"Terminology Construction",permalink:"/tev2-specifications/docs/spec-tools/terminology-construction"}},d={},m=[{value:"Adding terms",id:"syntax-add",level:2},{value:"Removing terms",id:"syntax-remove",level:2}],u=function(t){var e=t.children;return(0,i.kt)("span",{style:{color:"black",backgroundColor:"yellow",padding:"0.2rem",borderRadius:"2px"}},e)},p={toc:m,mark:u};function h(t){var e=t.components,a=(0,r.Z)(t,o);return(0,i.kt)("wrapper",(0,n.Z)({},p,a,{components:e,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"hrg-selection-criteria"},"HRG Selection Criteria"),(0,i.kt)("p",null,"When ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/curator",hovertext:"Curator: a person responsible for curating, managing, and maintaining the Terminologies, to ensure shared understanding among a Community working together on a particular set of objectives."},"curators")," generate an ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," from a particular ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", they may want to specify the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," to be included in the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," (or preventing specific ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," from being included)."),(0,i.kt)("p",null,"This can be done by using the same mechanism for ",(0,i.kt)("a",{parentName:"p",href:"/docs/spec-tools/terminology-construction"},"terminology construction")," as is used for generating ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRGs"),". The differences are that there is only one source, i.e. the particular ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from which the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is generated. Thus, references to ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," that have no corresponding ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," in that ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," are invalid. Also, there is no need for renaming syntax."),(0,i.kt)("p",null,"If generating an ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," requires the selection of terms, the instructions are to be specified in the ",(0,i.kt)("inlineCode",{parentName:"p"},"termselcrit")," field of the configuration file specified as an argument on the command-line when calling the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrgt",hovertext:"Human Readable Glossary Tool (HRGT): a software tool designed to create, manage, and process Human Readable Glossaries (HRGs), as Specified By TEv2. HRGTs offer features for selecting Terms that are Curated within the Scope it is run in, or from other Scopes."},"HRGT"),"."),(0,i.kt)("h2",{id:"syntax-add"},"Adding terms"),(0,i.kt)("p",null,"The following instructions can be used for adding ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," (whitespace in the syntax is disregarded):"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,i.kt)("th",{parentName:"tr",align:"left"},"The instruction adds every ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," from the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," to the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")," ..."))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"terms [ ]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"whose ",(0,i.kt)("inlineCode",{parentName:"td"},"term"),"-field is an element of ",(0,i.kt)("inlineCode",{parentName:"td"},""),".")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"tags [ ]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"whose ",(0,i.kt)("inlineCode",{parentName:"td"},"grouptags")," field contains an element that is also an element of ",(0,i.kt)("inlineCode",{parentName:"td"},""),".")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"*")),(0,i.kt)("td",{parentName:"tr",align:"left"},"that exists within the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG")," from which the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/hrg",hovertext:"Human Readable Glossary (HRG): a Glossary that is designed to be easily understandable and accessible to humans. HRGs present terms and their meanings in a format that prioritizes human comprehension and may include additional contextual information to aid understanding."},"HRG")," is generated.")))),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"")," and ",(0,i.kt)("inlineCode",{parentName:"li"},"")," are comma-separated lists of ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," and ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," respectively."),(0,i.kt)("li",{parentName:"ul"},"An ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," will only be added to the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")," if it does not already exist.")),(0,i.kt)("details",null,(0,i.kt)("summary",null,"Examples"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,i.kt)("th",{parentName:"tr",align:"left"},"What it does when processed"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"terms[party]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"finds the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," associated with the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"term")," ",(0,i.kt)("inlineCode",{parentName:"td"},"party"),", and adds it to the selected set of ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),".")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"tags[management,governance]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"finds the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," associated with the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," ",(0,i.kt)("inlineCode",{parentName:"td"},"management")," and ",(0,i.kt)("inlineCode",{parentName:"td"},"governance"),", and adds them to the selected set of ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),".")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"*")),(0,i.kt)("td",{parentName:"tr",align:"left"},"selects all ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," from the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg",hovertext:"MRG: a Glossary for a particular (version of a) Terminology that is formatted in YAML, according to the [TEv2 MRG specifications](/docs/spec-files/mrg), to enable automated processing and integration with software systems."},"MRG"),", and adds them to the selected set of ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),"."))))),(0,i.kt)("h2",{id:"syntax-remove"},"Removing terms"),(0,i.kt)("p",null,"The following instructions can be used for removing ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," from the set of selected ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms")," (whitespace in the syntax is disregarded):"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,i.kt)("th",{parentName:"tr",align:"left"},"The instruction removes every ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," from the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/terminology-under-construction",hovertext:"Terminology Under Construction: a set of Terms (that is initially empty), to which Terms can be added or removed as specified by Term Selection Criteria, so as to ultimately result in a proper Terminology."},"terminology under construction")," ..."))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"-terms [ ]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"whose ",(0,i.kt)("inlineCode",{parentName:"td"},"term"),"-field is an element of ",(0,i.kt)("inlineCode",{parentName:"td"},""),".")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"-tags [ ]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"whose ",(0,i.kt)("inlineCode",{parentName:"td"},"grouptags")," field contains an element that is also an element of ",(0,i.kt)("inlineCode",{parentName:"td"},""),".")))),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"")," and ",(0,i.kt)("inlineCode",{parentName:"li"},"")," are comma-separated lists of ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/term",hovertext:"Term: a word or phrase (i.e.: text) that is used to represent (Identify) a specific Semantic Unit (in some Scope)."},"terms"),", and ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptags")," respectively."),(0,i.kt)("li",{parentName:"ul"},"Elements of the ",(0,i.kt)("inlineCode",{parentName:"li"},"")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"")," that do not lead to the removal of an ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entry")," may be logged.")),(0,i.kt)("details",null,(0,i.kt)("summary",null,"Examples"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Instruction"),(0,i.kt)("th",{parentName:"tr",align:"left"},"What it does when processed"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"-terms[party, actor]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"removes the ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that have either ",(0,i.kt)("inlineCode",{parentName:"td"},"party")," or ",(0,i.kt)("inlineCode",{parentName:"td"},"actor")," in its ",(0,i.kt)("inlineCode",{parentName:"td"},"term")," field.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},(0,i.kt)("inlineCode",{parentName:"td"},"-tags[management]")),(0,i.kt)("td",{parentName:"tr",align:"left"},"removes all ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/mrg-entry",hovertext:"MRG Entry: A machine-readable (and interpretable) artifact that contains (pointers to) data and meta-data about a particular Semantic Unit, such as the associated Term(s), its Definition, etc., to make it easy for IT-tools to create, e.g. documentation, Glossaries, Dictionaries, whitepapers, etc. that uses such Terms (Definitions, etc.)."},"MRG entries")," that have a ",(0,i.kt)("a",{href:"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/grouptag",hovertext:"Grouptag: a Tag that is used to group Terms within a specific Scope."},"grouptag")," ",(0,i.kt)("inlineCode",{parentName:"td"},"management"),"."))))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ee5834a7.08e208ae.js b/assets/js/ee5834a7.3192fb11.js similarity index 98% rename from assets/js/ee5834a7.08e208ae.js rename to assets/js/ee5834a7.3192fb11.js index 412f8b0f04..3b5cc8886c 100644 --- a/assets/js/ee5834a7.08e208ae.js +++ b/assets/js/ee5834a7.3192fb11.js @@ -1 +1 @@ -"use strict";(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[4117],{3905:function(e,t,o){o.d(t,{Zo:function(){return l},kt:function(){return f}});var i=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function s(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,i)}return o}function n(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=i.createContext({}),p=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):n(n({},t),e)),o},l=function(e){var t=p(e.components);return i.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var o=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),h=p(o),f=r,d=h["".concat(c,".").concat(f)]||h[f]||m[f]||s;return o?i.createElement(d,n(n({ref:t},l),{},{components:o})):i.createElement(d,n({ref:t},l))}));function f(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=o.length,n=new Array(s);n[0]=h;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:r,n[1]=a;for(var p=2;p=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=i.createContext({}),p=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):n(n({},t),e)),o},l=function(e){var t=p(e.components);return i.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var o=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),h=p(o),f=r,d=h["".concat(c,".").concat(f)]||h[f]||m[f]||s;return o?i.createElement(d,n(n({ref:t},l),{},{components:o})):i.createElement(d,n({ref:t},l))}));function f(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=o.length,n=new Array(s);n[0]=h;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:r,n[1]=a;for(var p=2;p=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=o.createContext({}),p=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=p(e.components);return o.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),h=p(r),d=n,l=h["".concat(c,".").concat(d)]||h[d]||f[d]||a;return r?o.createElement(l,s(s({ref:t},u),{},{components:r})):o.createElement(l,s({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,s=new Array(a);s[0]=h;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:n,s[1]=i;for(var p=2;p=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=o.createContext({}),p=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=p(e.components);return o.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),h=p(r),d=n,l=h["".concat(c,".").concat(d)]||h[d]||f[d]||a;return r?o.createElement(l,s(s({ref:t},u),{},{components:r})):o.createElement(l,s({ref:t},u))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,s=new Array(a);s[0]=h;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:n,s[1]=i;for(var p=2;p=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},m=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),f=p(r),u=i,d=f["".concat(c,".").concat(u)]||f[u]||l[u]||o;return r?n.createElement(d,a(a({ref:t},m),{},{components:r})):n.createElement(d,a({ref:t},m))}));function u(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=f;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:i,a[1]=s;for(var p=2;p=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},m=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),f=p(r),u=i,d=f["".concat(c,".").concat(u)]||f[u]||l[u]||o;return r?n.createElement(d,a(a({ref:t},m),{},{components:r})):n.createElement(d,a({ref:t},m))}));function u(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=f;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:i,a[1]=s;for(var p=2;p=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(n),f=i,m=d["".concat(s,".").concat(f)]||d[f]||u[f]||a;return n?r.createElement(m,o(o({ref:t},p),{},{components:n})):r.createElement(m,o({ref:t},p))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:i,o[1]=c;for(var l=2;l=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(n),f=i,m=d["".concat(s,".").concat(f)]||d[f]||u[f]||a;return n?r.createElement(m,o(o({ref:t},p),{},{components:n})):r.createElement(m,o({ref:t},p))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:i,o[1]=c;for(var l=2;l=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}var c=r.createContext({}),d=function(e){var t=r.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},l=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var i=e.components,o=e.mdxType,s=e.originalType,c=e.parentName,l=n(e,["components","mdxType","originalType","parentName"]),p=d(i),m=o,f=p["".concat(c,".").concat(m)]||p[m]||h[m]||s;return i?r.createElement(f,a(a({ref:t},l),{},{components:i})):r.createElement(f,a({ref:t},l))}));function m(e,t){var i=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=i.length,a=new Array(s);a[0]=p;var n={};for(var c in t)hasOwnProperty.call(t,c)&&(n[c]=t[c]);n.originalType=e,n.mdxType="string"==typeof e?e:o,a[1]=n;for(var d=2;d=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}var c=r.createContext({}),d=function(e){var t=r.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},l=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var i=e.components,o=e.mdxType,s=e.originalType,c=e.parentName,l=n(e,["components","mdxType","originalType","parentName"]),p=d(i),m=o,f=p["".concat(c,".").concat(m)]||p[m]||h[m]||s;return i?r.createElement(f,a(a({ref:t},l),{},{components:i})):r.createElement(f,a({ref:t},l))}));function m(e,t){var i=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=i.length,a=new Array(s);a[0]=p;var n={};for(var c in t)hasOwnProperty.call(t,c)&&(n[c]=t[c]);n.originalType=e,n.mdxType="string"==typeof e?e:o,a[1]=n;for(var d=2;d=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=i.createContext({}),m=function(e){var t=i.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},l=function(e){var t=m(e.components);return i.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,c=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),d=m(r),h=o,u=d["".concat(c,".").concat(h)]||d[h]||p[h]||n;return r?i.createElement(u,s(s({ref:t},l),{},{components:r})):i.createElement(u,s({ref:t},l))}));function h(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,s=new Array(n);s[0]=d;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:o,s[1]=a;for(var m=2;m=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=i.createContext({}),m=function(e){var t=i.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},l=function(e){var t=m(e.components);return i.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,c=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),d=m(r),h=o,u=d["".concat(c,".").concat(h)]||d[h]||p[h]||n;return r?i.createElement(u,s(s({ref:t},l),{},{components:r})):i.createElement(u,s({ref:t},l))}));function h(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,s=new Array(n);s[0]=d;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a.mdxType="string"==typeof e?e:o,s[1]=a;for(var m=2;m=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var c=i.createContext({}),l=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},d=function(e){var t=l(e.components);return i.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var o=e.components,a=e.mdxType,n=e.originalType,c=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),m=l(o),p=a,g=m["".concat(c,".").concat(p)]||m[p]||h[p]||n;return o?i.createElement(g,s(s({ref:t},d),{},{components:o})):i.createElement(g,s({ref:t},d))}));function p(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=o.length,s=new Array(n);s[0]=m;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:a,s[1]=r;for(var l=2;l=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var c=i.createContext({}),l=function(e){var t=i.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},d=function(e){var t=l(e.components);return i.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var o=e.components,a=e.mdxType,n=e.originalType,c=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),m=l(o),p=a,g=m["".concat(c,".").concat(p)]||m[p]||h[p]||n;return o?i.createElement(g,s(s({ref:t},d),{},{components:o})):i.createElement(g,s({ref:t},d))}));function p(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=o.length,s=new Array(n);s[0]=m;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r.mdxType="string"==typeof e?e:a,s[1]=r;for(var l=2;l=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}var u=n.createContext({}),s=function(t){var e=n.useContext(u),r=e;return t&&(r="function"==typeof t?t(e):a(a({},e),t)),r},l=function(t){var e=s(t.components);return n.createElement(u.Provider,{value:e},t.children)},p={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},f=n.forwardRef((function(t,e){var r=t.components,o=t.mdxType,i=t.originalType,u=t.parentName,l=c(t,["components","mdxType","originalType","parentName"]),f=s(r),d=o,b=f["".concat(u,".").concat(d)]||f[d]||p[d]||i;return r?n.createElement(b,a(a({ref:e},l),{},{components:r})):n.createElement(b,a({ref:e},l))}));function d(t,e){var r=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var u in e)hasOwnProperty.call(e,u)&&(c[u]=e[u]);c.originalType=t,c.mdxType="string"==typeof t?t:o,a[1]=c;for(var s=2;s=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}var u=n.createContext({}),s=function(t){var e=n.useContext(u),r=e;return t&&(r="function"==typeof t?t(e):a(a({},e),t)),r},l=function(t){var e=s(t.components);return n.createElement(u.Provider,{value:e},t.children)},p={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},f=n.forwardRef((function(t,e){var r=t.components,o=t.mdxType,i=t.originalType,u=t.parentName,l=c(t,["components","mdxType","originalType","parentName"]),f=s(r),d=o,b=f["".concat(u,".").concat(d)]||f[d]||p[d]||i;return r?n.createElement(b,a(a({ref:e},l),{},{components:r})):n.createElement(b,a({ref:e},l))}));function d(t,e){var r=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var u in e)hasOwnProperty.call(e,u)&&(c[u]=e[u]);c.originalType=t,c.mdxType="string"==typeof t?t:o,a[1]=c;for(var s=2;s1?t-1:0),r=1;r\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = '+e+" "+("/"===e?" (default value)":"")+'

\n

We suggest trying baseUrl =

\n\n'}(e)).replace(/0)&&(F.current.unobserve(e),F.current.disconnect(),null!=L&&window.docusaurus.prefetch(L))}))})),F.current.observe(e))},to:L},v&&{isActive:y,activeClassName:b}))}var v=o.forwardRef(m)},1875:function(e,t){"use strict";t.Z=function(){return null}},5999:function(e,t,n){"use strict";n.d(t,{Z:function(){return c},I:function(){return s}});var r=n(7294);function i(e,t){var n=e.split(/(\{\w+\})/).map((function(e,n){if(n%2==1){var r=null==t?void 0:t[e.slice(1,-1)];if(void 0!==r)return r}return e}));return n.some((function(e){return(0,r.isValidElement)(e)}))?n.map((function(e,t){return(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e})).filter((function(e){return""!==e})):n.join("")}var o=n(7529);function a(e){var t,n,r=e.id,i=e.message;if(void 0===r&&void 0===i)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=o[null!=r?r:i])?n:i)?t:r}function s(e,t){return i(a({message:e.message,id:e.id}),t)}function c(e){var t=e.children,n=e.id,o=e.values;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");var s=a({message:t,id:n});return r.createElement(r.Fragment,null,i(s,o))}},9935:function(e,t,n){"use strict";n.d(t,{m:function(){return r}});var r="default"},3919:function(e,t,n){"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function i(e){return void 0!==e&&!r(e)}n.d(t,{Z:function(){return i},b:function(){return r}})},4996:function(e,t,n){"use strict";n.d(t,{C:function(){return a},Z:function(){return s}});var r=n(7294),i=n(2263),o=n(3919);function a(){var e=(0,i.Z)().siteConfig,t=e.baseUrl,n=e.url,a=(0,r.useCallback)((function(e,r){return function(e,t,n,r){var i=void 0===r?{}:r,a=i.forcePrependBaseUrl,s=void 0!==a&&a,c=i.absolute,l=void 0!==c&&c;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(s)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;var u=n.startsWith(t)?n:t+n.replace(/^\//,"");return l?e+u:u}(n,t,e,r)}),[n,t]);return{withBaseUrl:a}}function s(e,t){return void 0===t&&(t={}),(0,a().withBaseUrl)(e,t)}},2263:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),i=n(8940);function o(){return(0,r.useContext)(i._)}},2389:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),i=n(8934);function o(){return(0,r.useContext)(i._)}},9670:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});function r(e){var t={};return function e(n,r){Object.entries(n).forEach((function(n){var i,o=n[0],a=n[1],s=r?r+"."+o:o;"object"==typeof(i=a)&&i&&Object.keys(i).length>0?e(a,s):t[s]=a}))}(e),t}},226:function(e,t,n){"use strict";n.d(t,{_:function(){return i},z:function(){return o}});var r=n(7294),i=r.createContext(null);function o(e){var t=e.children,n=e.value,o=r.useContext(i),a=(0,r.useMemo)((function(){return function(e){var t=e.parent,n=e.value;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}var r=Object.assign({},t.data,null==n?void 0:n.data);return{plugin:t.plugin,data:r}}({parent:o,value:n})}),[o,n]);return r.createElement(i.Provider,{value:a},t)}},143:function(e,t,n){"use strict";n.d(t,{Iw:function(){return v},gA:function(){return f},_r:function(){return u},Jo:function(){return h},zh:function(){return d},yW:function(){return m},gB:function(){return p}});var r=n(6775),i=n(2263),o=n(9935);function a(e,t){void 0===t&&(t={});var n=(0,i.Z)().globalData[e];if(!n&&t.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}var s=function(e){return e.versions.find((function(e){return e.isLast}))};function c(e,t){var n,i,o=function(e,t){var n=s(e);return[].concat(e.versions.filter((function(e){return e!==n})),[n]).find((function(e){return!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})}))}(e,t),a=null==o?void 0:o.docs.find((function(e){return!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})}));return{activeVersion:o,activeDoc:a,alternateDocVersions:a?(n=a.id,i={},e.versions.forEach((function(e){e.docs.forEach((function(t){t.id===n&&(i[e.name]=t)}))})),i):{}}}var l={},u=function(){var e;return null!=(e=a("docusaurus-plugin-content-docs"))?e:l},d=function(e){return function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});var r=a(e),i=null==r?void 0:r[t];if(!i&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return i}("docusaurus-plugin-content-docs",e,{failfast:!0})};function f(e){return void 0===e&&(e={}),function(e,t,n){void 0===n&&(n={});var i=Object.entries(e).sort((function(e,t){return t[1].path.localeCompare(e[1].path)})).find((function(e){var n=e[1];return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=i?{pluginId:i[0],pluginData:i[1]}:void 0;if(!o&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((function(e){return e.path})).join(", "));return o}(u(),(0,r.TH)().pathname,e)}function p(e){return d(e).versions}function m(e){var t=d(e);return s(t)}function v(e){return c(d(e),(0,r.TH)().pathname)}function h(e){return function(e,t){var n=s(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(d(e),(0,r.TH)().pathname)}},8320:function(e,t,n){"use strict";n.r(t);var r=n(4865),i=n.n(r);i().configure({showSpinner:!1});var o={onRouteUpdate:function(e){var t=e.location,n=e.previousLocation;if(n&&t.pathname!==n.pathname){var r=window.setTimeout((function(){i().start()}),200);return function(){return window.clearTimeout(r)}}},onRouteDidUpdate:function(){i().done()}};t.default=o},3310:function(e,t,n){"use strict";n.r(t);var r,i,o=n(7410),a=n(6809);r=o.Z,i=a.default.themeConfig.prism.additionalLanguages,globalThis.Prism=r,i.forEach((function(e){n(1357)("./prism-"+e)})),delete globalThis.Prism},9471:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),i="iconExternalLink_nPIU";function o(e){var t=e.width,n=void 0===t?13.5:t,o=e.height,a=void 0===o?13.5:o;return r.createElement("svg",{width:n,height:a,"aria-hidden":"true",viewBox:"0 0 24 24",className:i},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},7961:function(e,t,n){"use strict";n.d(t,{Z:function(){return Rt}});var r=n(7294),i=n(6010),o=n(4763),a=n(1944),s=n(7462),c=n(6775),l=n(5999),u=n(5936),d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){var e=(0,r.useRef)(null),t=(0,c.k6)().action,n=(0,r.useCallback)((function(e){e.preventDefault();var t,n=null!=(t=document.querySelector("main:first-of-type"))?t:document.getElementById(d);n&&f(n)}),[]);return(0,u.S)((function(n){var r=n.location;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}var m=(0,l.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function v(e){var t,n=null!=(t=e.children)?t:m,i=p(),o=i.containerRef,a=i.onClick;return r.createElement("div",{ref:o,role:"region","aria-label":m},r.createElement("a",(0,s.Z)({},e,{href:"#"+d,onClick:a}),n))}var h=n(5281),g=n(9727),b="skipToContent_fXgn";function y(){return r.createElement(v,{className:b})}var w=n(6668),E=n(9689),S=n(3366),k=["width","height","color","strokeWidth","className"];function x(e){var t=e.width,n=void 0===t?21:t,i=e.height,o=void 0===i?21:i,a=e.color,c=void 0===a?"currentColor":a,l=e.strokeWidth,u=void 0===l?1.2:l,d=(e.className,(0,S.Z)(e,k));return r.createElement("svg",(0,s.Z)({viewBox:"0 0 15 15",width:n,height:o},d),r.createElement("g",{stroke:c,strokeWidth:u},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}var T="closeButton_CVFx";function _(e){return r.createElement("button",(0,s.Z)({type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,i.Z)("clean-btn close",T,e.className)}),r.createElement(x,{width:14,height:14,strokeWidth:3.1}))}var C="content_knG7";function A(e){var t=(0,w.L)().announcementBar.content;return r.createElement("div",(0,s.Z)({},e,{className:(0,i.Z)(C,e.className),dangerouslySetInnerHTML:{__html:t}}))}var O="announcementBar_mb4j",P="announcementBarPlaceholder_vyr4",N="announcementBarClose_gvF7",I="announcementBarContent_xLdY";function R(){var e=(0,w.L)().announcementBar,t=(0,E.nT)(),n=t.isActive,i=t.close;if(!n)return null;var o=e.backgroundColor,a=e.textColor,s=e.isCloseable;return r.createElement("div",{className:O,style:{backgroundColor:o,color:a},role:"banner"},s&&r.createElement("div",{className:P}),r.createElement(A,{className:I}),s&&r.createElement(_,{onClick:i,className:N}))}var L=n(3163),B=n(2466);var D=n(9688),M=n(3102),F=r.createContext(null);function U(e){var t,n,i,o,a,s,c,l=e.children,u=(t=(0,L.e)(),n=(0,M.HY)(),i=(0,r.useState)(!1),o=i[0],a=i[1],s=null!==n.component,c=(0,D.D9)(s),(0,r.useEffect)((function(){s&&!c&&a(!0)}),[s,c]),(0,r.useEffect)((function(){s?t.shown||a(!0):a(!1)}),[t.shown,s]),(0,r.useMemo)((function(){return[o,a]}),[o]));return r.createElement(F.Provider,{value:u},l)}function z(e){if(e.component){var t=e.component;return r.createElement(t,e.props)}}function j(){var e=(0,r.useContext)(F);if(!e)throw new D.i6("NavbarSecondaryMenuDisplayProvider");var t=e[0],n=e[1],i=(0,r.useCallback)((function(){return n(!1)}),[n]),o=(0,M.HY)();return(0,r.useMemo)((function(){return{shown:t,hide:i,content:z(o)}}),[i,o,t])}function $(e){var t=e.header,n=e.primaryMenu,o=e.secondaryMenu,a=j().shown;return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,i.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var Z=n(2949),H=n(2389);function G(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function V(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}var W={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){var t=e.className,n=e.buttonClassName,o=e.value,a=e.onChange,s=(0,H.Z)(),c=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,i.Z)(W.toggle,t)},r.createElement("button",{className:(0,i.Z)("clean-btn",W.toggleButton,!s&&W.toggleButtonDisabled,n),type:"button",onClick:function(){return a("dark"===o?"light":"dark")},disabled:!s,title:c,"aria-label":c,"aria-live":"polite"},r.createElement(G,{className:(0,i.Z)(W.toggleIcon,W.lightToggleIcon)}),r.createElement(V,{className:(0,i.Z)(W.toggleIcon,W.darkToggleIcon)})))}var Y=r.memo(q),K="darkNavbarColorModeToggle_X3D1";function X(e){var t=e.className,n=(0,w.L)().navbar.style,i=(0,w.L)().colorMode.disableSwitch,o=(0,Z.I)(),a=o.colorMode,s=o.setColorMode;return i?null:r.createElement(Y,{className:t,buttonClassName:"dark"===n?K:void 0,value:a,onChange:s})}var Q=n(1327);function J(){return r.createElement(Q.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function ee(){var e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,l.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:function(){return e.toggle()}},r.createElement(x,{color:"var(--ifm-color-emphasis-600)"}))}function te(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(J,null),r.createElement(X,{className:"margin-right--md"}),r.createElement(ee,null))}var ne=n(9960),re=n(4996),ie=n(3919);function oe(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var ae=n(9471),se=["activeBasePath","activeBaseRegex","to","href","label","html","isDropdownLink","prependBaseUrlToHref"];function ce(e){var t=e.activeBasePath,n=e.activeBaseRegex,i=e.to,o=e.href,a=e.label,c=e.html,l=e.isDropdownLink,u=e.prependBaseUrlToHref,d=(0,S.Z)(e,se),f=(0,re.Z)(i),p=(0,re.Z)(t),m=(0,re.Z)(o,{forcePrependBaseUrl:!0}),v=a&&o&&!(0,ie.Z)(o),h=c?{dangerouslySetInnerHTML:{__html:c}}:{children:r.createElement(r.Fragment,null,a,v&&r.createElement(ae.Z,l&&{width:12,height:12}))};return o?r.createElement(ne.Z,(0,s.Z)({href:u?m:o},d,h)):r.createElement(ne.Z,(0,s.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:function(e,t){return n?oe(n,t.pathname):t.pathname.startsWith(p)}},d,h))}var le=["className","isDropdownItem"],ue=["className","isDropdownItem"],de=["mobile","position"];function fe(e){var t=e.className,n=e.isDropdownItem,o=void 0!==n&&n,a=(0,S.Z)(e,le),c=r.createElement(ce,(0,s.Z)({className:(0,i.Z)(o?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:o},a));return o?r.createElement("li",null,c):c}function pe(e){var t=e.className,n=(e.isDropdownItem,(0,S.Z)(e,ue));return r.createElement("li",{className:"menu__list-item"},r.createElement(ce,(0,s.Z)({className:(0,i.Z)("menu__link",t)},n)))}function me(e){var t,n=e.mobile,i=void 0!==n&&n,o=(e.position,(0,S.Z)(e,de)),a=i?pe:fe;return r.createElement(a,(0,s.Z)({},o,{activeClassName:null!=(t=o.activeClassName)?t:i?"menu__link--active":"navbar__link--active"}))}var ve=n(6043),he=n(8596),ge=n(2263);var be=["items","position","className","onClick"],ye=["items","className","position","onClick"],we=["mobile"];function Ee(e,t){return e.some((function(e){return function(e,t){return!!(0,he.Mg)(e.to,t)||!!oe(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)}))}function Se(e){var t,n=e.items,o=e.position,a=e.className,c=(e.onClick,(0,S.Z)(e,be)),l=(0,r.useRef)(null),u=(0,r.useState)(!1),d=u[0],f=u[1];return(0,r.useEffect)((function(){var e=function(e){l.current&&!l.current.contains(e.target)&&f(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),r.createElement("div",{ref:l,className:(0,i.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===o,"dropdown--show":d})},r.createElement(ce,(0,s.Z)({"aria-haspopup":"true","aria-expanded":d,role:"button",href:c.to?void 0:"#",className:(0,i.Z)("navbar__link",a)},c,{onClick:c.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),f(!d))}}),null!=(t=c.children)?t:c.label),r.createElement("ul",{className:"dropdown__menu"},n.map((function(e,t){return r.createElement(Ze,(0,s.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))}))))}function ke(e){var t,n,o=e.items,a=e.className,l=(e.position,e.onClick),u=(0,S.Z)(e,ye),d=(n=(0,ge.Z)().siteConfig.baseUrl,(0,c.TH)().pathname.replace(n,"/")),f=Ee(o,d),p=(0,ve.u)({initialState:function(){return!f}}),m=p.collapsed,v=p.toggleCollapsed,h=p.setCollapsed;return(0,r.useEffect)((function(){f&&h(!f)}),[d,f,h]),r.createElement("li",{className:(0,i.Z)("menu__list-item",{"menu__list-item--collapsed":m})},r.createElement(ce,(0,s.Z)({role:"button",className:(0,i.Z)("menu__link menu__link--sublist menu__link--sublist-caret",a)},u,{onClick:function(e){e.preventDefault(),v()}}),null!=(t=u.children)?t:u.label),r.createElement(ve.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:m},o.map((function(e,t){return r.createElement(Ze,(0,s.Z)({mobile:!0,isDropdownItem:!0,onClick:l,activeClassName:"menu__link--active"},e,{key:t}))}))))}function xe(e){var t=e.mobile,n=void 0!==t&&t,i=(0,S.Z)(e,we),o=n?ke:Se;return r.createElement(o,i)}var Te=n(4711),_e=["width","height"];function Ce(e){var t=e.width,n=void 0===t?20:t,i=e.height,o=void 0===i?20:i,a=(0,S.Z)(e,_e);return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:n,height:o,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}var Ae="iconLanguage_nlXk",Oe=["mobile","dropdownItemsBefore","dropdownItemsAfter"];var Pe=n(1875),Ne="searchBox_ZlJk";function Ie(e){var t=e.children,n=e.className;return r.createElement("div",{className:(0,i.Z)(n,Ne)},t)}var Re=n(143),Le=n(3791),Be=["docId","label","docsPluginId"];var De=["sidebarId","label","docsPluginId"];var Me=["label","to","docsPluginId"];var Fe=n(373),Ue=["mobile","docsPluginId","dropdownActiveClassDisabled","dropdownItemsBefore","dropdownItemsAfter"],ze=function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))};var je={default:me,localeDropdown:function(e){var t=e.mobile,n=e.dropdownItemsBefore,i=e.dropdownItemsAfter,o=(0,S.Z)(e,Oe),a=(0,ge.Z)().i18n,u=a.currentLocale,d=a.locales,f=a.localeConfigs,p=(0,Te.l)(),m=(0,c.TH)(),v=m.search,h=m.hash,g=d.map((function(e){var n=""+("pathname://"+p.createUrl({locale:e,fullyQualified:!1}))+v+h;return{label:f[e].label,lang:f[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===u?t?"menu__link--active":"dropdown__link--active":""}})),b=[].concat(n,g,i),y=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):f[u].label;return r.createElement(xe,(0,s.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(Ce,{className:Ae}),y),items:b}))},search:function(e){var t=e.mobile,n=e.className;return t?null:r.createElement(Ie,{className:n},r.createElement(Pe.Z,null))},dropdown:xe,html:function(e){var t=e.value,n=e.className,o=e.mobile,a=void 0!==o&&o,s=e.isDropdownItem,c=void 0!==s&&s,l=c?"li":"div";return r.createElement(l,{className:(0,i.Z)({navbar__item:!a&&!c,"menu__list-item":a},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){var t=e.docId,n=e.label,i=e.docsPluginId,o=(0,S.Z)(e,Be),a=(0,Re.Iw)(i).activeDoc,c=(0,Le.vY)(t,i);return null===c?null:r.createElement(me,(0,s.Z)({exact:!0},o,{isActive:function(){return(null==a?void 0:a.path)===c.path||!(null==a||!a.sidebar)&&a.sidebar===c.sidebar},label:null!=n?n:c.id,to:c.path}))},docSidebar:function(e){var t=e.sidebarId,n=e.label,i=e.docsPluginId,o=(0,S.Z)(e,De),a=(0,Re.Iw)(i).activeDoc,c=(0,Le.oz)(t,i).link;if(!c)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+t+"\" doesn't have anything to be linked to.");return r.createElement(me,(0,s.Z)({exact:!0},o,{isActive:function(){return(null==a?void 0:a.sidebar)===t},label:null!=n?n:c.label,to:c.path}))},docsVersion:function(e){var t=e.label,n=e.to,i=e.docsPluginId,o=(0,S.Z)(e,Me),a=(0,Le.lO)(i)[0],c=null!=t?t:a.label,l=null!=n?n:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(a).path;return r.createElement(me,(0,s.Z)({},o,{label:c,to:l}))},docsVersionDropdown:function(e){var t=e.mobile,n=e.docsPluginId,i=e.dropdownActiveClassDisabled,o=e.dropdownItemsBefore,a=e.dropdownItemsAfter,u=(0,S.Z)(e,Ue),d=(0,c.TH)(),f=d.search,p=d.hash,m=(0,Re.Iw)(n),v=(0,Re.gB)(n),h=(0,Fe.J)(n).savePreferredVersionName,g=v.map((function(e){var t,n=null!=(t=m.alternateDocVersions[e.name])?t:ze(e);return{label:e.label,to:""+n.path+f+p,isActive:function(){return e===m.activeVersion},onClick:function(){return h(e.name)}}})),b=[].concat(o,g,a),y=(0,Le.lO)(n)[0],w=t&&b.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):y.label,E=t&&b.length>1?void 0:ze(y).path;return b.length<=1?r.createElement(me,(0,s.Z)({},u,{mobile:t,label:w,to:E,isActive:i?function(){return!1}:void 0})):r.createElement(xe,(0,s.Z)({},u,{mobile:t,label:w,to:E,items:b,isActive:i?function(){return!1}:void 0}))}},$e=["type"];function Ze(e){var t=e.type,n=(0,S.Z)(e,$e),i=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=je[i];if(!o)throw new Error('No NavbarItem component found for type "'+t+'".');return r.createElement(o,n)}function He(){var e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map((function(t,n){return r.createElement(Ze,(0,s.Z)({mobile:!0},t,{onClick:function(){return e.toggle()},key:n}))})))}function Ge(e){return r.createElement("button",(0,s.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(l.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ve(){var e=0===(0,w.L)().navbar.items.length,t=j();return r.createElement(r.Fragment,null,!e&&r.createElement(Ge,{onClick:function(){return t.hide()}}),t.content)}function We(){var e,t=(0,L.e)();return void 0===(e=t.shown)&&(e=!0),(0,r.useEffect)((function(){return document.body.style.overflow=e?"hidden":"visible",function(){document.body.style.overflow="visible"}}),[e]),t.shouldRender?r.createElement($,{header:r.createElement(te,null),primaryMenu:r.createElement(He,null),secondaryMenu:r.createElement(Ve,null)}):null}var qe="navbarHideable_m1mJ",Ye="navbarHidden_jGov";function Ke(e){return r.createElement("div",(0,s.Z)({role:"presentation"},e,{className:(0,i.Z)("navbar-sidebar__backdrop",e.className)}))}function Xe(e){var t=e.children,n=(0,w.L)().navbar,o=n.hideOnScroll,a=n.style,s=(0,L.e)(),c=function(e){var t=(0,r.useState)(e),n=t[0],i=t[1],o=(0,r.useRef)(!1),a=(0,r.useRef)(0),s=(0,r.useCallback)((function(e){null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,B.RF)((function(t,n){var r=t.scrollY;if(e)if(r=s?i(!1):r+l0&&r.createElement(wt,{links:n}),logo:i&&r.createElement(xt,{logo:i}),copyright:t&&r.createElement(Tt,{copyright:t})})}var At=r.memo(Ct),Ot=(0,D.Qc)([Z.S,E.pl,B.OC,Fe.L5,a.VC,function(e){var t=e.children;return r.createElement(M.n2,null,r.createElement(L.M,null,r.createElement(U,null,t)))}]);function Pt(e){var t=e.children;return r.createElement(Ot,null,t)}function Nt(e){var t=e.error,n=e.tryAgain;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(tt,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(nt,{error:t})))))}var It="mainWrapper_z2l0";function Rt(e){var t=e.children,n=e.noFooter,s=e.wrapperClassName,c=e.title,l=e.description;return(0,g.t)(),r.createElement(Pt,null,r.createElement(a.d,{title:c,description:l}),r.createElement(y,null),r.createElement(R,null),r.createElement(dt,null),r.createElement("div",{id:d,className:(0,i.Z)(h.k.wrapper.main,It,s)},r.createElement(o.Z,{fallback:function(e){return r.createElement(Nt,e)}},t)),!n&&r.createElement(At,null))}},1327:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(7462),i=n(3366),o=n(7294),a=n(9960),s=n(4996),c=n(2263),l=n(6668),u=n(941),d=["imageClassName","titleClassName"];function f(e){var t=e.logo,n=e.alt,r=e.imageClassName,i={light:(0,s.Z)(t.src),dark:(0,s.Z)(t.srcDark||t.src)},a=o.createElement(u.Z,{className:t.className,sources:i,height:t.height,width:t.width,alt:n,style:t.style});return r?o.createElement("div",{className:r},a):a}function p(e){var t,n=(0,c.Z)().siteConfig.title,u=(0,l.L)().navbar,p=u.title,m=u.logo,v=e.imageClassName,h=e.titleClassName,g=(0,i.Z)(e,d),b=(0,s.Z)((null==m?void 0:m.href)||"/"),y=p?"":n,w=null!=(t=null==m?void 0:m.alt)?t:y;return o.createElement(a.Z,(0,r.Z)({to:b},g,(null==m?void 0:m.target)&&{target:m.target}),m&&o.createElement(f,{logo:m,alt:w,imageClassName:v}),null!=p&&o.createElement("b",{className:h},p))}},197:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),i=n(5742);function o(e){var t=e.locale,n=e.version,o=e.tag,a=t;return r.createElement(i.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),a&&r.createElement("meta",{name:"docsearch:language",content:a}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},941:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(7462),i=n(3366),o=n(7294),a=n(6010),s=n(2389),c=n(2949),l={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"},u=["sources","className","alt"];function d(e){var t=(0,s.Z)(),n=(0,c.I)().colorMode,d=e.sources,f=e.className,p=e.alt,m=(0,i.Z)(e,u),v=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,v.map((function(e){return o.createElement("img",(0,r.Z)({key:e,src:d[e],alt:p,className:(0,a.Z)(l.themedImage,l["themedImage--"+e],f)},m))})))}},6043:function(e,t,n){"use strict";n.d(t,{u:function(){return u},z:function(){return b}});var r=n(7462),i=n(3366),o=n(7294),a=n(412),s=n(1442),c=["collapsed"],l=["lazy"];function u(e){var t=e.initialState,n=(0,o.useState)(null!=t&&t),r=n[0],i=n[1],a=(0,o.useCallback)((function(){i((function(e){return!e}))}),[]);return{collapsed:r,setCollapsed:i,toggleCollapsed:a}}var d={display:"none",overflow:"hidden",height:"0px"},f={display:"block",overflow:"visible",height:"auto"};function p(e,t){var n=t?d:f;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function m(e){var t=e.collapsibleRef,n=e.collapsed,r=e.animation,i=(0,o.useRef)(!1);(0,o.useEffect)((function(){var e,o=t.current;function a(){var e,t,n=o.scrollHeight,i=null!=(e=null==r?void 0:r.duration)?e:function(e){if((0,s.n)())return 1;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}(n);return{transition:"height "+i+"ms "+(null!=(t=null==r?void 0:r.easing)?t:"ease-in-out"),height:n+"px"}}function c(){var e=a();o.style.transition=e.transition,o.style.height=e.height}if(!i.current)return p(o,n),void(i.current=!0);return o.style.willChange="height",e=requestAnimationFrame((function(){n?(c(),requestAnimationFrame((function(){o.style.height=d.height,o.style.overflow=d.overflow}))):(o.style.display="block",requestAnimationFrame((function(){c()})))})),function(){return cancelAnimationFrame(e)}}),[t,n,r])}function v(e){if(!a.Z.canUseDOM)return e?d:f}function h(e){var t=e.as,n=void 0===t?"div":t,r=e.collapsed,i=e.children,a=e.animation,s=e.onCollapseTransitionEnd,c=e.className,l=e.disableSSRStyle,u=(0,o.useRef)(null);return m({collapsibleRef:u,collapsed:r,animation:a}),o.createElement(n,{ref:u,style:l?void 0:v(r),onTransitionEnd:function(e){"height"===e.propertyName&&(p(u.current,r),null==s||s(r))},className:c},i)}function g(e){var t=e.collapsed,n=(0,i.Z)(e,c),a=(0,o.useState)(!t),s=a[0],l=a[1],u=(0,o.useState)(t),d=u[0],f=u[1];return(0,o.useLayoutEffect)((function(){t||l(!0)}),[t]),(0,o.useLayoutEffect)((function(){s&&f(t)}),[s,t]),s?o.createElement(h,(0,r.Z)({},n,{collapsed:d})):null}function b(e){var t=e.lazy,n=(0,i.Z)(e,l),r=t?g:h;return o.createElement(r,n)}},9689:function(e,t,n){"use strict";n.d(t,{nT:function(){return m},pl:function(){return p}});var r=n(7294),i=n(2389),o=n(12),a=n(9688),s=n(6668),c=(0,o.WA)("docusaurus.announcement.dismiss"),l=(0,o.WA)("docusaurus.announcement.id"),u=function(){return"true"===c.get()},d=function(e){return c.set(String(e))},f=r.createContext(null);function p(e){var t=e.children,n=function(){var e=(0,s.L)().announcementBar,t=(0,i.Z)(),n=(0,r.useState)((function(){return!!t&&u()})),o=n[0],a=n[1];(0,r.useEffect)((function(){a(u())}),[]);var c=(0,r.useCallback)((function(){d(!0),a(!0)}),[]);return(0,r.useEffect)((function(){if(e){var t=e.id,n=l.get();"annoucement-bar"===n&&(n="announcement-bar");var r=t!==n;l.set(t),r&&d(!1),!r&&u()||a(!1)}}),[e]),(0,r.useMemo)((function(){return{isActive:!!e&&!o,close:c}}),[e,o,c])}();return r.createElement(f.Provider,{value:n},t)}function m(){var e=(0,r.useContext)(f);if(!e)throw new a.i6("AnnouncementBarProvider");return e}},2949:function(e,t,n){"use strict";n.d(t,{I:function(){return h},S:function(){return v}});var r=n(7294),i=n(412),o=n(9688),a=n(12),s=n(6668),c=r.createContext(void 0),l="theme",u=(0,a.WA)(l),d="light",f="dark",p=function(e){return e===f?f:d};function m(){var e=(0,s.L)().colorMode,t=e.defaultMode,n=e.disableSwitch,o=e.respectPrefersColorScheme,a=(0,r.useState)(function(e){return i.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e)}(t)),c=a[0],m=a[1];(0,r.useEffect)((function(){n&&u.del()}),[n]);var v=(0,r.useCallback)((function(e,n){void 0===n&&(n={});var r=n.persist,i=void 0===r||r;e?(m(e),i&&function(e){u.set(p(e))}(e)):(m(o?window.matchMedia("(prefers-color-scheme: dark)").matches?f:d:t),u.del())}),[o,t]);(0,r.useEffect)((function(){document.documentElement.setAttribute("data-theme",p(c))}),[c]),(0,r.useEffect)((function(){if(!n){var e=function(e){if(e.key===l){var t=u.get();null!==t&&v(p(t))}};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}}),[n,v]);var h=(0,r.useRef)(!1);return(0,r.useEffect)((function(){if(!n||o){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=function(){window.matchMedia("print").matches||h.current?h.current=window.matchMedia("print").matches:v(null)};return e.addListener(t),function(){return e.removeListener(t)}}}),[v,n,o]),(0,r.useMemo)((function(){return{colorMode:c,setColorMode:v,get isDarkTheme(){return c===f},setLightTheme:function(){v(d)},setDarkTheme:function(){v(f)}}}),[c,v])}function v(e){var t=e.children,n=m();return r.createElement(c.Provider,{value:n},t)}function h(){var e=(0,r.useContext)(c);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:function(e,t,n){"use strict";n.d(t,{J:function(){return y},L5:function(){return g}});var r=n(7294),i=n(143),o=n(9935),a=n(6668),s=n(3791),c=n(9688),l=n(12),u=function(e){return"docs-preferred-version-"+e},d=function(e,t,n){(0,l.WA)(u(e),{persistence:t}).set(n)},f=function(e,t){return(0,l.WA)(u(e),{persistence:t}).get()},p=function(e,t){(0,l.WA)(u(e),{persistence:t}).del()};var m=r.createContext(null);function v(){var e=(0,i._r)(),t=(0,a.L)().docs.versionPersistence,n=(0,r.useMemo)((function(){return Object.keys(e)}),[e]),o=(0,r.useState)((function(){return function(e){return Object.fromEntries(e.map((function(e){return[e,{preferredVersionName:null}]})))}(n)})),s=o[0],c=o[1];return(0,r.useEffect)((function(){c(function(e){var t=e.pluginIds,n=e.versionPersistence,r=e.allDocsData;return Object.fromEntries(t.map((function(e){return[e,(t=e,i=f(t,n),r[t].versions.some((function(e){return e.name===i}))?{preferredVersionName:i}:(p(t,n),{preferredVersionName:null}))];var t,i})))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]),[s,(0,r.useMemo)((function(){return{savePreferredVersion:function(e,n){d(e,t,n),c((function(t){var r;return Object.assign({},t,((r={})[e]={preferredVersionName:n},r))}))}}}),[t])]}function h(e){var t=e.children,n=v();return r.createElement(m.Provider,{value:n},t)}function g(e){var t=e.children;return s.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){var e=(0,r.useContext)(m);if(!e)throw new c.i6("DocsPreferredVersionContextProvider");return e}function y(e){var t;void 0===e&&(e=o.m);var n=(0,i.zh)(e),a=b(),s=a[0],c=a[1],l=s[e].preferredVersionName;return{preferredVersion:null!=(t=n.versions.find((function(e){return e.name===l})))?t:null,savePreferredVersionName:(0,r.useCallback)((function(t){c.savePreferredVersion(e,t)}),[c,e])}}},1116:function(e,t,n){"use strict";n.d(t,{V:function(){return c},b:function(){return s}});var r=n(7294),i=n(9688),o=Symbol("EmptyContext"),a=r.createContext(o);function s(e){var t=e.children,n=e.name,i=e.items,o=(0,r.useMemo)((function(){return n&&i?{name:n,items:i}:null}),[n,i]);return r.createElement(a.Provider,{value:o},t)}function c(){var e=(0,r.useContext)(a);if(e===o)throw new i.i6("DocsSidebarProvider");return e}},3163:function(e,t,n){"use strict";n.d(t,{M:function(){return d},e:function(){return f}});var r=n(7294),i=n(3102),o=n(7524),a=n(1980),s=n(6668),c=n(9688),l=r.createContext(void 0);function u(){var e,t=(e=(0,i.HY)(),0===(0,s.L)().navbar.items.length&&!e.component),n=(0,o.i)(),c=!t&&"mobile"===n,l=(0,r.useState)(!1),u=l[0],d=l[1];(0,a.Rb)((function(){if(u)return d(!1),!1}));var f=(0,r.useCallback)((function(){d((function(e){return!e}))}),[]);return(0,r.useEffect)((function(){"desktop"===n&&d(!1)}),[n]),(0,r.useMemo)((function(){return{disabled:t,shouldRender:c,toggle:f,shown:u}}),[t,c,f,u])}function d(e){var t=e.children,n=u();return r.createElement(l.Provider,{value:n},t)}function f(){var e=r.useContext(l);if(void 0===e)throw new c.i6("NavbarMobileSidebarProvider");return e}},3102:function(e,t,n){"use strict";n.d(t,{HY:function(){return s},Zo:function(){return c},n2:function(){return a}});var r=n(7294),i=n(9688),o=r.createContext(null);function a(e){var t=e.children,n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function s(){var e=(0,r.useContext)(o);if(!e)throw new i.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){var t=e.component,n=e.props,a=(0,r.useContext)(o);if(!a)throw new i.i6("NavbarSecondaryMenuContentProvider");var s=a[1],c=(0,i.Ql)(n);return(0,r.useEffect)((function(){s({component:t,props:c})}),[s,t,c]),(0,r.useEffect)((function(){return function(){return s({component:null,props:null})}}),[s]),null}},9727:function(e,t,n){"use strict";n.d(t,{h:function(){return i},t:function(){return o}});var r=n(7294),i="navigation-with-keyboard";function o(){(0,r.useEffect)((function(){function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(i),"mousedown"===e.type&&document.body.classList.remove(i)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),function(){document.body.classList.remove(i),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:function(e,t,n){"use strict";n.d(t,{i:function(){return l}});var r=n(7294),i=n(412),o="desktop",a="mobile",s="ssr";function c(){return i.Z.canUseDOM?window.innerWidth>996?o:a:s}function l(){var e=(0,r.useState)((function(){return c()})),t=e[0],n=e[1];return(0,r.useEffect)((function(){function e(){n(c())}return window.addEventListener("resize",e),function(){window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),t}},5281:function(e,t,n){"use strict";n.d(t,{k:function(){return r}});var r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:function(e){return"theme-admonition-"+e}},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:function(e){return"theme-doc-sidebar-item-category-level-"+e},docSidebarItemLinkLevel:function(e){return"theme-doc-sidebar-item-link-level-"+e}},blog:{}}},1442:function(e,t,n){"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:function(){return r}})},3791:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Wl:function(){return m},_F:function(){return h},cE:function(){return p},hI:function(){return S},lO:function(){return y},vY:function(){return E},oz:function(){return w},s1:function(){return b}});var o=n(7294),a=n(6775),s=n(8790),c=n(143),l=n(373),u=n(1116),d=n(7392),f=n(8596),p=!!c._r;function m(e){if(e.href)return e.href;for(var t,n=i(e.items);!(t=n()).done;){var r=t.value;if("link"===r.type)return r.href;if("category"===r.type){var o=m(r);if(o)return o}}}var v=function(e,t){return void 0!==e&&(0,f.Mg)(e,t)};function h(e,t){return"link"===e.type?v(e.href,t):"category"===e.type&&(v(e.href,t)||function(e,t){return e.some((function(e){return h(e,t)}))}(e.items,t))}function g(e){var t=e.sidebarItems,n=e.pathname,r=e.onlyCategories,o=void 0!==r&&r,a=[];return function e(t){for(var r,s=i(t);!(r=s()).done;){var c=r.value;if("category"===c.type&&((0,f.Mg)(c.href,n)||e(c.items))||"link"===c.type&&(0,f.Mg)(c.href,n))return o&&"category"!==c.type||a.unshift(c),!0}return!1}(t),a}function b(){var e,t=(0,u.V)(),n=(0,a.TH)().pathname;return!1!==(null==(e=(0,c.gA)())?void 0:e.pluginData.breadcrumbs)&&t?g({sidebarItems:t.items,pathname:n}):null}function y(e){var t=(0,c.Iw)(e).activeVersion,n=(0,l.J)(e).preferredVersion,r=(0,c.yW)(e);return(0,o.useMemo)((function(){return(0,d.j)([t,n,r].filter(Boolean))}),[t,n,r])}function w(e,t){var n=y(t);return(0,o.useMemo)((function(){var t=n.flatMap((function(e){return e.sidebars?Object.entries(e.sidebars):[]})),r=t.find((function(t){return t[0]===e}));if(!r)throw new Error("Can't find any sidebar with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((function(e){return e.name})).join(", ")+'".\nAvailable sidebar ids are:\n- '+t.map((function(e){return e[0]})).join("\n- "));return r[1]}),[e,n])}function E(e,t){var n=y(t);return(0,o.useMemo)((function(){var t=n.flatMap((function(e){return e.docs})),r=t.find((function(t){return t.id===e}));if(!r){if(n.flatMap((function(e){return e.draftIds})).includes(e))return null;throw new Error("Couldn't find any doc with id \""+e+'" in version'+(n.length>1?"s":"")+' "'+n.map((function(e){return e.name})).join(", ")+'".\nAvailable doc ids are:\n- '+(0,d.j)(t.map((function(e){return e.id}))).join("\n- "))}return r}),[e,n])}function S(e){var t=e.route,n=e.versionMetadata,r=(0,a.TH)(),i=t.routes,o=i.find((function(e){return(0,a.LX)(r.pathname,e)}));if(!o)return null;var c=o.sidebar,l=c?n.docsSidebars[c]:void 0;return{docElement:(0,s.H)(i),sidebarName:c,sidebarItems:l}}},1980:function(e,t,n){"use strict";n.d(t,{Rb:function(){return s},_X:function(){return c}});var r=n(7294),i=n(6775),o=n(1688),a=n(9688);function s(e){!function(e){var t=(0,i.k6)(),n=(0,a.zX)(e);(0,r.useEffect)((function(){return t.block((function(e,t){return n(e,t)}))}),[t,n])}((function(t,n){if("POP"===n)return e(t,n)}))}function c(e){return t=function(t){return null===e?null:new URLSearchParams(t.location.search).get(e)},n=(0,i.k6)(),(0,o.useSyncExternalStore)(n.listen,(function(){return t(n)}),(function(){return t(n)}));var t,n}},7392:function(e,t,n){"use strict";function r(e,t){return void 0===t&&(t=function(e,t){return e===t}),e.filter((function(n,r){return e.findIndex((function(e){return t(e,n)}))!==r}))}function i(e){return Array.from(new Set(e))}n.d(t,{j:function(){return i},l:function(){return r}})},1944:function(e,t,n){"use strict";n.d(t,{FG:function(){return f},d:function(){return u},VC:function(){return p}});var r=n(7294),i=n(6010),o=n(5742),a=n(226);function s(){var e=r.useContext(a._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var c=n(4996),l=n(2263);function u(e){var t=e.title,n=e.description,i=e.keywords,a=e.image,s=e.children,u=function(e){var t=(0,l.Z)().siteConfig,n=t.title,r=t.titleDelimiter;return null!=e&&e.trim().length?e.trim()+" "+r+" "+n:n}(t),d=(0,c.C)().withBaseUrl,f=a?d(a,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),i&&r.createElement("meta",{name:"keywords",content:Array.isArray(i)?i.join(","):i}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),s)}var d=r.createContext(void 0);function f(e){var t=e.className,n=e.children,a=r.useContext(d),s=(0,i.Z)(a,t);return r.createElement(d.Provider,{value:s},r.createElement(o.Z,null,r.createElement("html",{className:s})),n)}function p(e){var t=e.children,n=s(),o="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,""),a="plugin-id-"+n.plugin.id;return r.createElement(f,{className:(0,i.Z)(o,a)},t)}},9688:function(e,t,n){"use strict";n.d(t,{i6:function(){return m},Qc:function(){return h},zX:function(){return f},D9:function(){return p},Ql:function(){return v}});var r=n(6528),i=n(4578);function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}var a=n(9611);function s(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function c(e,t,n){return c=s()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&(0,a.Z)(i,n.prototype),i},c.apply(null,arguments)}function l(e){var t="function"==typeof Map?new Map:void 0;return l=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return c(e,arguments,o(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,a.Z)(r,e)},l(e)}var u=n(7294),d=n(412).Z.canUseDOM?u.useLayoutEffect:u.useEffect;function f(e){var t=(0,u.useRef)(e);return d((function(){t.current=e}),[e]),(0,u.useCallback)((function(){return t.current.apply(t,arguments)}),[])}function p(e){var t=(0,u.useRef)();return d((function(){t.current=e})),t.current}var m=function(e){function t(t,n){var i,o,a,s,c;return(c=e.call(this)||this).name="ReactContextError",c.message="Hook "+(null!=(i=null==(o=c.stack)||null==(a=o.split("\n")[1])||null==(s=a.match((0,r.Z)(/at (?:\w+\.)?(\w+)/,{name:1})))?void 0:s.groups.name)?i:"")+" is called outside the <"+t+">. "+(null!=n?n:""),c}return(0,i.Z)(t,e),t}(l(Error));function v(e){var t=Object.entries(e);return t.sort((function(e,t){return e[0].localeCompare(t[0])})),(0,u.useMemo)((function(){return e}),t.flat())}function h(e){return function(t){var n=t.children;return u.createElement(u.Fragment,null,e.reduceRight((function(e,t){return u.createElement(t,null,e)}),n))}}},8596:function(e,t,n){"use strict";n.d(t,{Mg:function(){return a},Ns:function(){return s}});var r=n(7294),i=n(723),o=n(2263);function a(e,t){var n=function(e){var t;return null==(t=!e||e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function s(){var e=(0,o.Z)().siteConfig.baseUrl;return(0,r.useMemo)((function(){return function(e){var t=e.baseUrl;function n(e){return e.path===t&&!0===e.exact}function r(e){return e.path===t&&!e.exact}return function e(t){if(0!==t.length)return t.find(n)||e(t.filter(r).flatMap((function(e){var t;return null!=(t=e.routes)?t:[]})))}(e.routes)}({routes:i.Z,baseUrl:e})}),[e])}},2466:function(e,t,n){"use strict";n.d(t,{Ct:function(){return p},OC:function(){return c},RF:function(){return d},o5:function(){return f}});var r=n(7294),i=n(412),o=n(2389),a=n(9688);var s=r.createContext(void 0);function c(e){var t,n=e.children,i=(t=(0,r.useRef)(!0),(0,r.useMemo)((function(){return{scrollEventsEnabledRef:t,enableScrollEvents:function(){t.current=!0},disableScrollEvents:function(){t.current=!1}}}),[]));return r.createElement(s.Provider,{value:i},n)}function l(){var e=(0,r.useContext)(s);if(null==e)throw new a.i6("ScrollControllerProvider");return e}var u=function(){return i.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null};function d(e,t){void 0===t&&(t=[]);var n=l().scrollEventsEnabledRef,i=(0,r.useRef)(u()),o=(0,a.zX)(e);(0,r.useEffect)((function(){var e=function(){if(n.current){var e=u();o(e,i.current),i.current=e}},t={passive:!0};return e(),window.addEventListener("scroll",e,t),function(){return window.removeEventListener("scroll",e,t)}}),[o,n].concat(t))}function f(){var e,t,n,i=l(),o=(e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((function(t){e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((function(){var t=e.current,n=t.elem,r=t.top;if(!n)return{restored:!1};var i=n.getBoundingClientRect().top-r;return i&&window.scrollBy({left:0,top:i}),e.current={elem:null,top:0},{restored:0!==i}}),[]),(0,r.useMemo)((function(){return{save:t,restore:n}}),[n,t])),a=(0,r.useRef)(void 0),s=(0,r.useCallback)((function(e){o.save(e),i.disableScrollEvents(),a.current=function(){var e=o.restore().restored;if(a.current=void 0,e){window.addEventListener("scroll",(function e(){i.enableScrollEvents(),window.removeEventListener("scroll",e)}))}else i.enableScrollEvents()}}),[i,o]);return(0,r.useLayoutEffect)((function(){queueMicrotask((function(){return null==a.current?void 0:a.current()}))})),{blockElementScrollPositionUntilNextRender:s}}function p(){var e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:function(n){e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),function(){}}(n):function(e){var t=null,n=document.documentElement.scrollTop>e;return function r(){var i=document.documentElement.scrollTop;(n&&i>e||!n&&i=0;f--){var p=a[f];"."===p?o(a,f):".."===p?(o(a,f),d++):d&&(o(a,f),d--)}if(!l)for(;d--;d)a.unshift("..");!l||""===a[0]||a[0]&&i(a[0])||a.unshift("");var m=a.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m},s=n(2177);function c(e){return"/"===e.charAt(0)?e:"/"+e}function l(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,i=t||"/";return n&&"?"!==n&&(i+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(i+="#"===r.charAt(0)?r:"#"+r),i}function p(e,t,n,i){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",i=t.indexOf("#");-1!==i&&(r=t.substr(i),t=t.substr(0,i));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),i?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=a(o.pathname,i.pathname)):o.pathname=i.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,i){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,i):i(!0):i(!1!==o)}else i(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,i):n.push(i),d({action:r,location:i,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",i=p(e,t,v(),w.location);u.confirmTransitionTo(i,r,n,(function(e){e&&(w.entries[w.index]=i,d({action:r,location:i}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t
'};function i(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function a(e,t,n){var i;return(i="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,i}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=i(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),l=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),c(l,a(e,u,d)),1===e?(c(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){c(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*i(Math.random()*t,.1,.95)),t=i(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var i,a=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),l=document.querySelector(r.parent);return c(a,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(i=t.querySelector(r.spinnerSelector))&&p(i),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),c=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,i=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);i--;)if((r=e[i]+o)in n)return r;return t}function i(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=i(t),e.style[t]=n}return function(e,t){var n,r,i=arguments;if(2==i.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,i[1],i[2])}}();function l(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=f(e),r=n+t;l(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);l(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(i="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=i)},7418:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(i){return!1}}()?Object.assign:function(e,o){for(var a,s,c=i(e),l=1;l=d.reach);k+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof i)){var T,_=1;if(b){if(!(T=o(E,k,e,g))||T.index>=e.length)break;var C=T.index,A=T.index+T[0].length,O=k;for(O+=S.value.length;C>=O;)O+=(S=S.next).value.length;if(k=O-=S.value.length,S.value instanceof i)continue;for(var P=S;P!==t.tail&&(Od.reach&&(d.reach=L);var B=S.prev;if(I&&(B=c(t,B,I),k+=I.length),l(t,B,_),S=c(t,B,new i(f,h?r.tokenize(N,h):N,y,N)),R&&c(t,S,R),_>1){var D={cause:f+","+m,reach:L};a(e,t,n,S.prev,k,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function l(e,t,n){for(var r=t.next,i=0;i"+o.content+""},r}(),r=n;n.default=n,r.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},r.languages.markup.tag.inside["attr-value"].inside.entity=r.languages.markup.entity,r.languages.markup.doctype.inside["internal-subset"].inside=r.languages.markup,r.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(r.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:r.languages[t]},n.cdata=/^$/i;var i={"included-cdata":{pattern://i,inside:n}};i["language-"+t]={pattern:/[\s\S]+/,inside:r.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:i},r.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(r.languages.markup.tag,"addAttribute",{value:function(e,t){r.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:r.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),r.languages.html=r.languages.markup,r.languages.mathml=r.languages.markup,r.languages.svg=r.languages.markup,r.languages.xml=r.languages.extend("markup",{}),r.languages.ssml=r.languages.xml,r.languages.atom=r.languages.xml,r.languages.rss=r.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var i=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,a=0;a]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},r.languages.c=r.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),r.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),r.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},r.languages.c.string],char:r.languages.c.char,comment:r.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:r.languages.c}}}}),r.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete r.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(r),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(r),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},i={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:i,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:i})}(r),r.languages.javascript=r.languages.extend("clike",{"class-name":[r.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),r.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,r.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:r.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:r.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:r.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:r.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:r.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),r.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:r.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),r.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),r.languages.markup&&(r.languages.markup.tag.addInlined("script","javascript"),r.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),r.languages.js=r.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(r),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",i=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function a(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+i+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:a(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:a(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:a(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:a(o),lookbehind:!0,greedy:!0},number:{pattern:a(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(r),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,i=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+i+o+"(?:"+i+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+i+o+")(?:"+i+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+i+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+i+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},c=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(r),r.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:r.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},r.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var s=f(/^\{$/,/^\}$/);if(-1===s)continue;for(var c=n;c=0&&p(l,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,i=r.inside["interpolation-punctuation"],o=r.pattern.source;function a(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function c(t,n,r){var i={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",i),i.tokens=e.tokenize(i.code,i.grammar),e.hooks.run("after-tokenize",i),i.tokens}function l(t){var n={};n["interpolation-punctuation"]=i;var o=e.tokenize(t,n);if(3===o.length){var a=[1,1];a.push.apply(a,c(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,a)}return new e.Token("interpolation",o,r.alias,t)}function u(t,n,r){var i=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),a=0,u={},d=c(i.map((function(e){if("string"==typeof e)return e;for(var n,i=e.content;-1!==t.indexOf(n=s(a++,r)););return u[n]=i,n})).join(""),n,r),f=Object.keys(u);return a=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var i=f[a],o="string"==typeof r?r:r.content,s=o.indexOf(i);if(-1!==s){++a;var c=o.substring(0,s),d=l(u[i]),p=o.substring(s+i.length),m=[];if(c&&m.push(c),m.push(d),p){var v=[p];e(v),m.push.apply(m,v)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var h=r.content;Array.isArray(h)?e(h):e([h])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[a("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),a("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),a("svg",/\bsvg/.source),a("markdown",/\b(?:markdown|md)/.source),a("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),a("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,i=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(r),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return i})),RegExp(e,t)}i=o(i).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var a=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(a).join(""):""},s=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===a(i.content[0].content[1])&&n.pop():"/>"===i.content[i.content.length-1].content||n.push({tagName:a(i.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===i.type&&"{"===i.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===i.type&&"}"===i.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof i)&&n.length>0&&0===n[n.length-1].openedBraces){var c=a(i);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(c=a(t[r-1])+c,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",c,null,c)}i.content&&"string"!=typeof i.content&&s(i.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(r),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],i=[];/^\w+$/.test(n)||i.push(/\w+/.exec(n)[0]),"diff"===n&&i.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:i,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(r),r.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},r.languages.go=r.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),r.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete r.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,i,o){if(n.language===r){var a=n.tokenStack=[];n.code=n.code.replace(i,(function(e){if("function"==typeof o&&!o(e))return e;for(var i,s=a.length;-1!==n.code.indexOf(i=t(r,s));)++s;return a[s]=e,i})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var i=0,o=Object.keys(n.tokenStack);!function a(s){for(var c=0;c=o.length);c++){var l=s[c];if("string"==typeof l||l.content&&"string"==typeof l.content){var u=o[i],d=n.tokenStack[u],f="string"==typeof l?l:l.content,p=t(r,u),m=f.indexOf(p);if(m>-1){++i;var v=f.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),g=f.substring(m+p.length),b=[];v&&b.push.apply(b,a([v])),b.push(h),g&&b.push.apply(b,a([g])),"string"==typeof l?s.splice.apply(s,[c,1].concat(b)):l.content=b}}else l.content&&a(l.content)}return s}(n.tokens)}}}})}(r),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(r),r.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},r.languages.webmanifest=r.languages.json,r.languages.less=r.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),r.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),r.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},r.languages.objectivec=r.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete r.languages.objectivec["class-name"],r.languages.objc=r.languages.objectivec,r.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},r.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},r.languages.python["string-interpolation"].inside.interpolation.inside.rest=r.languages.python,r.languages.py=r.languages.python,r.languages.reason=r.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),r.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete r.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(r),r.languages.scss=r.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),r.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),r.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),r.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),r.languages.scss.atrule.inside.rest=r.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(r),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(r),r.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/},t.Z=r},7874:function(){!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var i=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,a=0;a@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars,e.languages.mustache=e.languages.handlebars}(Prism)},9299:function(){!function(e){var t={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,r="(?:[^\\\\-]|"+n.source+")",i=RegExp(r+"-"+r),o={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};e.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:i,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":t,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":t,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":o}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|t}return!1}(t,n,i,r)&&(n=null),r||null===i?function(e){return!!Z.call(G,e)||!Z.call(H,e)&&($.test(e)?G[e]=!0:(H[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):i.mustUseProperty?e[i.propertyName]=null===n?3!==i.type&&"":n:(t=i.attributeName,r=i.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(i=i.type)||4===i&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}K.hasOwnProperty("ReactCurrentDispatcher")||(K.ReactCurrentDispatcher={current:null}),K.hasOwnProperty("ReactCurrentBatchConfig")||(K.ReactCurrentBatchConfig={suspense:null});var Q=/^(.*)[\\\/]/,J="function"==typeof Symbol&&Symbol.for,ee=J?Symbol.for("react.element"):60103,te=J?Symbol.for("react.portal"):60106,ne=J?Symbol.for("react.fragment"):60107,re=J?Symbol.for("react.strict_mode"):60108,ie=J?Symbol.for("react.profiler"):60114,oe=J?Symbol.for("react.provider"):60109,ae=J?Symbol.for("react.context"):60110,se=J?Symbol.for("react.concurrent_mode"):60111,ce=J?Symbol.for("react.forward_ref"):60112,le=J?Symbol.for("react.suspense"):60113,ue=J?Symbol.for("react.suspense_list"):60120,de=J?Symbol.for("react.memo"):60115,fe=J?Symbol.for("react.lazy"):60116,pe=J?Symbol.for("react.block"):60121,me="function"==typeof Symbol&&Symbol.iterator;function ve(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=me&&e[me]||e["@@iterator"])?e:null}function he(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case ne:return"Fragment";case te:return"Portal";case ie:return"Profiler";case re:return"StrictMode";case le:return"Suspense";case ue:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case ae:return"Context.Consumer";case oe:return"Context.Provider";case ce:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case de:return he(e.type);case pe:return he(e.render);case fe:if(e=1===e._status?e._result:null)return he(e)}return null}function ge(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,i=e._debugSource,o=he(e.type);n=null,r&&(n=he(r.type)),r=o,o="",i?o=" (at "+i.fileName.replace(Q,"")+":"+i.lineNumber+")":n&&(o=" (created by "+n+")"),n="\n in "+(r||"Unknown")+o}t+=n,e=e.return}while(e);return t}function be(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function ye(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function we(e){e._valueTracker||(e._valueTracker=function(e){var t=ye(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Ee(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ye(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Se(e,t){var n=t.checked;return i({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ke(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=be(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function xe(e,t){null!=(t=t.checked)&&X(e,"checked",t,!1)}function Te(e,t){xe(e,t);var n=be(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?Ce(e,t.type,n):t.hasOwnProperty("defaultValue")&&Ce(e,t.type,be(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function _e(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function Ce(e,t,n){"number"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function Ae(e,t){return e=i({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function Oe(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i=n.length))throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:be(n)}}function Ie(e,t){var n=be(t.value),r=be(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function Re(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var Le="http://www.w3.org/1999/xhtml",Be="http://www.w3.org/2000/svg";function De(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Me(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?De(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var Fe,Ue,ze=(Ue=function(e,t){if(e.namespaceURI!==Be||"innerHTML"in e)e.innerHTML=t;else{for((Fe=Fe||document.createElement("div")).innerHTML=""+t.valueOf().toString()+"",t=Fe.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return Ue(e,t)}))}:Ue);function je(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function $e(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Ze={animationend:$e("Animation","AnimationEnd"),animationiteration:$e("Animation","AnimationIteration"),animationstart:$e("Animation","AnimationStart"),transitionend:$e("Transition","TransitionEnd")},He={},Ge={};function Ve(e){if(He[e])return He[e];if(!Ze[e])return e;var t,n=Ze[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ge)return He[e]=n[t];return e}C&&(Ge=document.createElement("div").style,"AnimationEvent"in window||(delete Ze.animationend.animation,delete Ze.animationiteration.animation,delete Ze.animationstart.animation),"TransitionEvent"in window||delete Ze.transitionend.transition);var We=Ve("animationend"),qe=Ve("animationiteration"),Ye=Ve("animationstart"),Ke=Ve("transitionend"),Xe="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Qe=new("function"==typeof WeakMap?WeakMap:Map);function Je(e){var t=Qe.get(e);return void 0===t&&(t=new Map,Qe.set(e,t)),t}function et(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).effectTag)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function tt(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function nt(e){if(et(e)!==e)throw Error(a(188))}function rt(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=et(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var i=n.return;if(null===i)break;var o=i.alternate;if(null===o){if(null!==(r=i.return)){n=r;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===n)return nt(i),e;if(o===r)return nt(i),t;o=o.sibling}throw Error(a(188))}if(n.return!==r.return)n=i,r=o;else{for(var s=!1,c=i.child;c;){if(c===n){s=!0,n=i,r=o;break}if(c===r){s=!0,r=i,n=o;break}c=c.sibling}if(!s){for(c=o.child;c;){if(c===n){s=!0,n=o,r=i;break}if(c===r){s=!0,r=o,n=i;break}c=c.sibling}if(!s)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function it(e,t){if(null==t)throw Error(a(30));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function ot(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var at=null;function st(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;rdt.length&&dt.push(e)}function pt(e,t,n,r){if(dt.length){var i=dt.pop();return i.topLevelType=e,i.eventSystemFlags=r,i.nativeEvent=t,i.targetInst=n,i}return{topLevelType:e,eventSystemFlags:r,nativeEvent:t,targetInst:n,ancestors:[]}}function mt(e){var t=e.targetInst,n=t;do{if(!n){e.ancestors.push(n);break}var r=n;if(3===r.tag)r=r.stateNode.containerInfo;else{for(;r.return;)r=r.return;r=3!==r.tag?null:r.stateNode.containerInfo}if(!r)break;5!==(t=n.tag)&&6!==t||e.ancestors.push(n),n=Nn(r)}while(n);for(n=0;n=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fn(r)}}function mn(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mn(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function vn(){for(var e=window,t=dn();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=dn((e=t.contentWindow).document)}return t}function hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var gn="$?",bn="$!",yn=null,wn=null;function En(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Sn(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var kn="function"==typeof setTimeout?setTimeout:void 0,xn="function"==typeof clearTimeout?clearTimeout:void 0;function Tn(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function _n(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||n===bn||n===gn){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Cn=Math.random().toString(36).slice(2),An="__reactInternalInstance$"+Cn,On="__reactEventHandlers$"+Cn,Pn="__reactContainere$"+Cn;function Nn(e){var t=e[An];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Pn]||n[An]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=_n(e);null!==e;){if(n=e[An])return n;e=_n(e)}return t}n=(e=n).parentNode}return null}function In(e){return!(e=e[An]||e[Pn])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function Rn(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function Ln(e){return e[On]||null}function Bn(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function Dn(e,t){var n=e.stateNode;if(!n)return null;var r=m(n);if(!r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(a(231,t,typeof n));return n}function Mn(e,t,n){(t=Dn(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=it(n._dispatchListeners,t),n._dispatchInstances=it(n._dispatchInstances,e))}function Fn(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var t=e._targetInst,n=[];t;)n.push(t),t=Bn(t);for(t=n.length;0this.eventPool.length&&this.eventPool.push(e)}function Xn(e){e.eventPool=[],e.getPooled=Yn,e.release=Kn}i(qn.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=Vn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Vn)},persist:function(){this.isPersistent=Vn},isPersistent:Wn,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=Wn,this._dispatchInstances=this._dispatchListeners=null}}),qn.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},qn.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var o=new t;return i(o,n.prototype),n.prototype=o,n.prototype.constructor=n,n.Interface=i({},r.Interface,e),n.extend=r.extend,Xn(n),n},Xn(qn);var Qn=qn.extend({data:null}),Jn=qn.extend({data:null}),er=[9,13,27,32],tr=C&&"CompositionEvent"in window,nr=null;C&&"documentMode"in document&&(nr=document.documentMode);var rr=C&&"TextEvent"in window&&!nr,ir=C&&(!tr||nr&&8=nr),or=String.fromCharCode(32),ar={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},sr=!1;function cr(e,t){switch(e){case"keyup":return-1!==er.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function lr(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var ur=!1;var dr={eventTypes:ar,extractEvents:function(e,t,n,r){var i;if(tr)e:{switch(e){case"compositionstart":var o=ar.compositionStart;break e;case"compositionend":o=ar.compositionEnd;break e;case"compositionupdate":o=ar.compositionUpdate;break e}o=void 0}else ur?cr(e,n)&&(o=ar.compositionEnd):"keydown"===e&&229===n.keyCode&&(o=ar.compositionStart);return o?(ir&&"ko"!==n.locale&&(ur||o!==ar.compositionStart?o===ar.compositionEnd&&ur&&(i=Gn()):(Zn="value"in($n=r)?$n.value:$n.textContent,ur=!0)),o=Qn.getPooled(o,t,n,r),i?o.data=i:null!==(i=lr(n))&&(o.data=i),jn(o),i=o):i=null,(e=rr?function(e,t){switch(e){case"compositionend":return lr(t);case"keypress":return 32!==t.which?null:(sr=!0,or);case"textInput":return(e=t.data)===or&&sr?null:e;default:return null}}(e,n):function(e,t){if(ur)return"compositionend"===e||!tr&&cr(e,t)?(e=Gn(),Hn=Zn=$n=null,ur=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=document.documentMode,Gr={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Vr=null,Wr=null,qr=null,Yr=!1;function Kr(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return Yr||null==Vr||Vr!==dn(n)?null:("selectionStart"in(n=Vr)&&hn(n)?n={start:n.selectionStart,end:n.selectionEnd}:n={anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},qr&&Zr(qr,n)?null:(qr=n,(e=qn.getPooled(Gr.select,Wr,e,t)).type="select",e.target=Vr,jn(e),e))}var Xr={eventTypes:Gr,extractEvents:function(e,t,n,r,i,o){if(!(o=!(i=o||(r.window===r?r.document:9===r.nodeType?r:r.ownerDocument)))){e:{i=Je(i),o=T.onSelect;for(var a=0;adi||(e.current=ui[di],ui[di]=null,di--)}function pi(e,t){di++,ui[di]=e.current,e.current=t}var mi={},vi={current:mi},hi={current:!1},gi=mi;function bi(e,t){var n=e.type.contextTypes;if(!n)return mi;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in n)o[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function yi(e){return null!=(e=e.childContextTypes)}function wi(){fi(hi),fi(vi)}function Ei(e,t,n){if(vi.current!==mi)throw Error(a(168));pi(vi,t),pi(hi,n)}function Si(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(a(108,he(t)||"Unknown",o));return i({},n,{},r)}function ki(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||mi,gi=vi.current,pi(vi,e),pi(hi,hi.current),!0}function xi(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=Si(e,t,gi),r.__reactInternalMemoizedMergedChildContext=e,fi(hi),fi(vi),pi(vi,e)):fi(hi),pi(hi,n)}var Ti=o.unstable_runWithPriority,_i=o.unstable_scheduleCallback,Ci=o.unstable_cancelCallback,Ai=o.unstable_requestPaint,Oi=o.unstable_now,Pi=o.unstable_getCurrentPriorityLevel,Ni=o.unstable_ImmediatePriority,Ii=o.unstable_UserBlockingPriority,Ri=o.unstable_NormalPriority,Li=o.unstable_LowPriority,Bi=o.unstable_IdlePriority,Di={},Mi=o.unstable_shouldYield,Fi=void 0!==Ai?Ai:function(){},Ui=null,zi=null,ji=!1,$i=Oi(),Zi=1e4>$i?Oi:function(){return Oi()-$i};function Hi(){switch(Pi()){case Ni:return 99;case Ii:return 98;case Ri:return 97;case Li:return 96;case Bi:return 95;default:throw Error(a(332))}}function Gi(e){switch(e){case 99:return Ni;case 98:return Ii;case 97:return Ri;case 96:return Li;case 95:return Bi;default:throw Error(a(332))}}function Vi(e,t){return e=Gi(e),Ti(e,t)}function Wi(e,t,n){return e=Gi(e),_i(e,t,n)}function qi(e){return null===Ui?(Ui=[e],zi=_i(Ni,Ki)):Ui.push(e),Di}function Yi(){if(null!==zi){var e=zi;zi=null,Ci(e)}Ki()}function Ki(){if(!ji&&null!==Ui){ji=!0;var e=0;try{var t=Ui;Vi(99,(function(){for(;e=t&&(La=!0),e.firstContext=null)}function so(e,t){if(no!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(no=e,t=1073741823),t={context:e,observedBits:t,next:null},null===to){if(null===eo)throw Error(a(308));to=t,eo.dependencies={expirationTime:0,firstContext:t,responders:null}}else to=to.next=t;return e._currentValue}var co=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function uo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function fo(e,t){return(e={expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null}).next=e}function po(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function mo(e,t){var n=e.alternate;null!==n&&uo(n,e),null===(n=(e=e.updateQueue).baseQueue)?(e.baseQueue=t.next=t,t.next=t):(t.next=n.next,n.next=t)}function vo(e,t,n,r){var o=e.updateQueue;co=!1;var a=o.baseQueue,s=o.shared.pending;if(null!==s){if(null!==a){var c=a.next;a.next=s.next,s.next=c}a=s,o.shared.pending=null,null!==(c=e.alternate)&&(null!==(c=c.updateQueue)&&(c.baseQueue=s))}if(null!==a){c=a.next;var l=o.baseState,u=0,d=null,f=null,p=null;if(null!==c)for(var m=c;;){if((s=m.expirationTime)u&&(u=s)}else{null!==p&&(p=p.next={expirationTime:1073741823,suspenseConfig:m.suspenseConfig,tag:m.tag,payload:m.payload,callback:m.callback,next:null}),pc(s,m.suspenseConfig);e:{var h=e,g=m;switch(s=t,v=n,g.tag){case 1:if("function"==typeof(h=g.payload)){l=h.call(v,l,s);break e}l=h;break e;case 3:h.effectTag=-4097&h.effectTag|64;case 0:if(null==(s="function"==typeof(h=g.payload)?h.call(v,l,s):h))break e;l=i({},l,s);break e;case 2:co=!0}}null!==m.callback&&(e.effectTag|=32,null===(s=o.effects)?o.effects=[m]:s.push(m))}if(null===(m=m.next)||m===c){if(null===(s=o.shared.pending))break;m=a.next=s.next,s.next=c,o.baseQueue=a=s,o.shared.pending=null}}null===p?d=l:p.next=f,o.baseState=d,o.baseQueue=p,mc(u),e.expirationTime=u,e.memoizedState=l}}function ho(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;tv?(h=d,d=null):h=d.sibling;var g=p(i,d,s[v],c);if(null===g){null===d&&(d=h);break}e&&d&&null===g.alternate&&t(i,d),a=o(g,a,v),null===u?l=g:u.sibling=g,u=g,d=h}if(v===s.length)return n(i,d),l;if(null===d){for(;vh?(g=v,v=null):g=v.sibling;var y=p(i,v,b.value,l);if(null===y){null===v&&(v=g);break}e&&v&&null===y.alternate&&t(i,v),s=o(y,s,h),null===d?u=y:d.sibling=y,d=y,v=g}if(b.done)return n(i,v),u;if(null===v){for(;!b.done;h++,b=c.next())null!==(b=f(i,b.value,l))&&(s=o(b,s,h),null===d?u=b:d.sibling=b,d=b);return u}for(v=r(i,v);!b.done;h++,b=c.next())null!==(b=m(v,i,h,b.value,l))&&(e&&null!==b.alternate&&v.delete(null===b.key?h:b.key),s=o(b,s,h),null===d?u=b:d.sibling=b,d=b);return e&&v.forEach((function(e){return t(i,e)})),u}return function(e,r,o,c){var l="object"==typeof o&&null!==o&&o.type===ne&&null===o.key;l&&(o=o.props.children);var u="object"==typeof o&&null!==o;if(u)switch(o.$$typeof){case ee:e:{for(u=o.key,l=r;null!==l;){if(l.key===u){if(7===l.tag){if(o.type===ne){n(e,l.sibling),(r=i(l,o.props.children)).return=e,e=r;break e}}else if(l.elementType===o.type){n(e,l.sibling),(r=i(l,o.props)).ref=_o(e,l,o),r.return=e,e=r;break e}n(e,l);break}t(e,l),l=l.sibling}o.type===ne?((r=Dc(o.props.children,e.mode,c,o.key)).return=e,e=r):((c=Bc(o.type,o.key,o.props,null,e.mode,c)).ref=_o(e,r,o),c.return=e,e=c)}return s(e);case te:e:{for(l=o.key;null!==r;){if(r.key===l){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=i(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Fc(o,e.mode,c)).return=e,e=r}return s(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,o)).return=e,e=r):(n(e,r),(r=Mc(o,e.mode,c)).return=e,e=r),s(e);if(To(o))return v(e,r,o,c);if(ve(o))return h(e,r,o,c);if(u&&Co(e,o),void 0===o&&!l)switch(e.tag){case 1:case 0:throw e=e.type,Error(a(152,e.displayName||e.name||"Component"))}return n(e,r)}}var Oo=Ao(!0),Po=Ao(!1),No={},Io={current:No},Ro={current:No},Lo={current:No};function Bo(e){if(e===No)throw Error(a(174));return e}function Do(e,t){switch(pi(Lo,t),pi(Ro,e),pi(Io,No),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Me(null,"");break;default:t=Me(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}fi(Io),pi(Io,t)}function Mo(){fi(Io),fi(Ro),fi(Lo)}function Fo(e){Bo(Lo.current);var t=Bo(Io.current),n=Me(t,e.type);t!==n&&(pi(Ro,e),pi(Io,n))}function Uo(e){Ro.current===e&&(fi(Io),fi(Ro))}var zo={current:0};function jo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||n.data===gn||n.data===bn))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function $o(e,t){return{responder:e,props:t}}var Zo=K.ReactCurrentDispatcher,Ho=K.ReactCurrentBatchConfig,Go=0,Vo=null,Wo=null,qo=null,Yo=!1;function Ko(){throw Error(a(321))}function Xo(e,t){if(null===t)return!1;for(var n=0;no))throw Error(a(301));o+=1,qo=Wo=null,t.updateQueue=null,Zo.current=ka,e=n(r,i)}while(t.expirationTime===Go)}if(Zo.current=wa,t=null!==Wo&&null!==Wo.next,Go=0,qo=Wo=Vo=null,Yo=!1,t)throw Error(a(300));return e}function Jo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===qo?Vo.memoizedState=qo=e:qo=qo.next=e,qo}function ea(){if(null===Wo){var e=Vo.alternate;e=null!==e?e.memoizedState:null}else e=Wo.next;var t=null===qo?Vo.memoizedState:qo.next;if(null!==t)qo=t,Wo=e;else{if(null===e)throw Error(a(310));e={memoizedState:(Wo=e).memoizedState,baseState:Wo.baseState,baseQueue:Wo.baseQueue,queue:Wo.queue,next:null},null===qo?Vo.memoizedState=qo=e:qo=qo.next=e}return qo}function ta(e,t){return"function"==typeof t?t(e):t}function na(e){var t=ea(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=Wo,i=r.baseQueue,o=n.pending;if(null!==o){if(null!==i){var s=i.next;i.next=o.next,o.next=s}r.baseQueue=i=o,n.pending=null}if(null!==i){i=i.next,r=r.baseState;var c=s=o=null,l=i;do{var u=l.expirationTime;if(uVo.expirationTime&&(Vo.expirationTime=u,mc(u))}else null!==c&&(c=c.next={expirationTime:1073741823,suspenseConfig:l.suspenseConfig,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null}),pc(u,l.suspenseConfig),r=l.eagerReducer===e?l.eagerState:e(r,l.action);l=l.next}while(null!==l&&l!==i);null===c?o=r:c.next=s,jr(r,t.memoizedState)||(La=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=c,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function ra(e){var t=ea(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,o=t.memoizedState;if(null!==i){n.pending=null;var s=i=i.next;do{o=e(o,s.action),s=s.next}while(s!==i);jr(o,t.memoizedState)||(La=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function ia(e){var t=Jo();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ta,lastRenderedState:e}).dispatch=ya.bind(null,Vo,e),[t.memoizedState,e]}function oa(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Vo.updateQueue)?(t={lastEffect:null},Vo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function aa(){return ea().memoizedState}function sa(e,t,n,r){var i=Jo();Vo.effectTag|=e,i.memoizedState=oa(1|t,n,void 0,void 0===r?null:r)}function ca(e,t,n,r){var i=ea();r=void 0===r?null:r;var o=void 0;if(null!==Wo){var a=Wo.memoizedState;if(o=a.destroy,null!==r&&Xo(r,a.deps))return void oa(t,n,o,r)}Vo.effectTag|=e,i.memoizedState=oa(1|t,n,o,r)}function la(e,t){return sa(516,4,e,t)}function ua(e,t){return ca(516,4,e,t)}function da(e,t){return ca(4,2,e,t)}function fa(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function pa(e,t,n){return n=null!=n?n.concat([e]):null,ca(4,2,fa.bind(null,t,e),n)}function ma(){}function va(e,t){return Jo().memoizedState=[e,void 0===t?null:t],e}function ha(e,t){var n=ea();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Xo(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function ga(e,t){var n=ea();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Xo(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function ba(e,t,n){var r=Hi();Vi(98>r?98:r,(function(){e(!0)})),Vi(97<\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=c.createElement(o,{is:r.is}):(e=c.createElement(o),"select"===o&&(c=e,r.multiple?c.multiple=!0:r.size&&(c.size=r.size))):e=c.createElementNS(e,o),e[An]=t,e[On]=r,Ha(e,t),t.stateNode=e,c=sn(o,r),o){case"iframe":case"object":case"embed":qt("load",e),l=r;break;case"video":case"audio":for(l=0;lr.tailExpiration&&1t)&&Ks.set(e,t))}}function rc(e,t){e.expirationTime=(e=n>(e=e.nextKnownPendingLevel)?n:e)&&t!==e?0:e}function oc(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=qi(sc.bind(null,e));else{var t=ic(e),n=e.callbackNode;if(0===t)null!==n&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var r=ec();if(1073741823===t?r=99:1===t||2===t?r=95:r=0>=(r=10*(1073741821-t)-10*(1073741821-r))?99:250>=r?98:5250>=r?97:95,null!==n){var i=e.callbackPriority;if(e.callbackExpirationTime===t&&i>=r)return;n!==Di&&Ci(n)}e.callbackExpirationTime=t,e.callbackPriority=r,t=1073741823===t?qi(sc.bind(null,e)):Wi(r,ac.bind(null,e),{timeout:10*(1073741821-t)-Zi()}),e.callbackNode=t}}}function ac(e,t){if(Js=0,t)return Zc(e,t=ec()),oc(e),null;var n=ic(e);if(0!==n){if(t=e.callbackNode,0!=(48&Ns))throw Error(a(327));if(kc(),e===Is&&n===Ls||uc(e,n),null!==Rs){var r=Ns;Ns|=_s;for(var i=fc();;)try{hc();break}catch(c){dc(e,c)}if(ro(),Ns=r,xs.current=i,1===Bs)throw t=Ds,uc(e,n),jc(e,n),oc(e),t;if(null===Rs)switch(i=e.finishedWork=e.current.alternate,e.finishedExpirationTime=n,r=Bs,Is=null,r){case As:case 1:throw Error(a(345));case 2:Zc(e,2=n){e.lastPingedTime=n,uc(e,n);break}}if(0!==(o=ic(e))&&o!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}e.timeoutHandle=kn(wc.bind(null,e),i);break}wc(e);break;case Ps:if(jc(e,n),n===(r=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=yc(i)),js&&(0===(i=e.lastPingedTime)||i>=n)){e.lastPingedTime=n,uc(e,n);break}if(0!==(i=ic(e))&&i!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}if(1073741823!==Fs?r=10*(1073741821-Fs)-Zi():1073741823===Ms?r=0:(r=10*(1073741821-Ms)-5e3,0>(r=(i=Zi())-r)&&(r=0),(n=10*(1073741821-n)-i)<(r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ks(r/1960))-r)&&(r=n)),10=(r=0|s.busyMinDurationMs)?r=0:(i=0|s.busyDelayMs,r=(o=Zi()-(10*(1073741821-o)-(0|s.timeoutMs||5e3)))<=i?0:i+r-o),10 component higher in the tree to provide a loading indicator or placeholder to display."+ge(a))}5!==Bs&&(Bs=2),s=ns(s,a),d=o;do{switch(d.tag){case 3:c=s,d.effectTag|=4096,d.expirationTime=t,mo(d,ws(d,c,t));break e;case 1:c=s;var w=d.type,E=d.stateNode;if(0==(64&d.effectTag)&&("function"==typeof w.getDerivedStateFromError||null!==E&&"function"==typeof E.componentDidCatch&&(null===Vs||!Vs.has(E)))){d.effectTag|=4096,d.expirationTime=t,mo(d,Es(d,c,t));break e}}d=d.return}while(null!==d)}Rs=bc(Rs)}catch(S){t=S;continue}break}}function fc(){var e=xs.current;return xs.current=wa,null===e?wa:e}function pc(e,t){ezs&&(zs=e)}function vc(){for(;null!==Rs;)Rs=gc(Rs)}function hc(){for(;null!==Rs&&!Mi();)Rs=gc(Rs)}function gc(e){var t=Ss(e.alternate,e,Ls);return e.memoizedProps=e.pendingProps,null===t&&(t=bc(e)),Ts.current=null,t}function bc(e){Rs=e;do{var t=Rs.alternate;if(e=Rs.return,0==(2048&Rs.effectTag)){if(t=es(t,Rs,Ls),1===Ls||1!==Rs.childExpirationTime){for(var n=0,r=Rs.child;null!==r;){var i=r.expirationTime,o=r.childExpirationTime;i>n&&(n=i),o>n&&(n=o),r=r.sibling}Rs.childExpirationTime=n}if(null!==t)return t;null!==e&&0==(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=Rs.firstEffect),null!==Rs.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=Rs.firstEffect),e.lastEffect=Rs.lastEffect),1(e=e.childExpirationTime)?t:e}function wc(e){var t=Hi();return Vi(99,Ec.bind(null,e,t)),null}function Ec(e,t){do{kc()}while(null!==qs);if(0!=(48&Ns))throw Error(a(327));var n=e.finishedWork,r=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw Error(a(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var i=yc(n);if(e.firstPendingTime=i,r<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:r<=e.firstSuspendedTime&&(e.firstSuspendedTime=r-1),r<=e.lastPingedTime&&(e.lastPingedTime=0),r<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===Is&&(Rs=Is=null,Ls=0),1c&&(u=c,c=s,s=u),u=pn(w,s),d=pn(w,c),u&&d&&(1!==S.rangeCount||S.anchorNode!==u.node||S.anchorOffset!==u.offset||S.focusNode!==d.node||S.focusOffset!==d.offset)&&((E=E.createRange()).setStart(u.node,u.offset),S.removeAllRanges(),s>c?(S.addRange(E),S.extend(d.node,d.offset)):(E.setEnd(d.node,d.offset),S.addRange(E))))),E=[];for(S=w;S=S.parentNode;)1===S.nodeType&&E.push({element:S,left:S.scrollLeft,top:S.scrollTop});for("function"==typeof w.focus&&w.focus(),w=0;w=n?qa(e,t,n):(pi(zo,1&zo.current),null!==(t=Qa(e,t,n))?t.sibling:null);pi(zo,1&zo.current);break;case 19:if(r=t.childExpirationTime>=n,0!=(64&e.effectTag)){if(r)return Xa(e,t,n);t.effectTag|=64}if(null!==(i=t.memoizedState)&&(i.rendering=null,i.tail=null),pi(zo,zo.current),!r)return null}return Qa(e,t,n)}La=!1}}else La=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,i=bi(t,vi.current),ao(t,n),i=Qo(null,t,r,e,i,n),t.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,yi(r)){var o=!0;ki(t)}else o=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null,lo(t);var s=r.getDerivedStateFromProps;"function"==typeof s&&yo(t,r,s,e),i.updater=wo,t.stateNode=i,i._reactInternalFiber=t,xo(t,r,e,n),t=$a(null,t,r,!0,o,n)}else t.tag=0,Ba(null,t,i,n),t=t.child;return t;case 16:e:{if(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,function(e){if(-1===e._status){e._status=0;var t=e._ctor;t=t(),e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}}(i),1!==i._status)throw i._result;switch(i=i._result,t.type=i,o=t.tag=function(e){if("function"==typeof e)return Rc(e)?1:0;if(null!=e){if((e=e.$$typeof)===ce)return 11;if(e===de)return 14}return 2}(i),e=Qi(i,e),o){case 0:t=za(null,t,i,e,n);break e;case 1:t=ja(null,t,i,e,n);break e;case 11:t=Da(null,t,i,e,n);break e;case 14:t=Ma(null,t,i,Qi(i.type,e),r,n);break e}throw Error(a(306,i,""))}return t;case 0:return r=t.type,i=t.pendingProps,za(e,t,r,i=t.elementType===r?i:Qi(r,i),n);case 1:return r=t.type,i=t.pendingProps,ja(e,t,r,i=t.elementType===r?i:Qi(r,i),n);case 3:if(Za(t),r=t.updateQueue,null===e||null===r)throw Error(a(282));if(r=t.pendingProps,i=null!==(i=t.memoizedState)?i.element:null,uo(e,t),vo(t,r,null,n),(r=t.memoizedState.element)===i)Ia(),t=Qa(e,t,n);else{if((i=t.stateNode.hydrate)&&(Ta=Tn(t.stateNode.containerInfo.firstChild),xa=t,i=_a=!0),i)for(n=Po(t,null,r,n),t.child=n;n;)n.effectTag=-3&n.effectTag|1024,n=n.sibling;else Ba(e,t,r,n),Ia();t=t.child}return t;case 5:return Fo(t),null===e&&Oa(t),r=t.type,i=t.pendingProps,o=null!==e?e.memoizedProps:null,s=i.children,Sn(r,i)?s=null:null!==o&&Sn(r,o)&&(t.effectTag|=16),Ua(e,t),4&t.mode&&1!==n&&i.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(Ba(e,t,s,n),t=t.child),t;case 6:return null===e&&Oa(t),null;case 13:return qa(e,t,n);case 4:return Do(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Oo(t,null,r,n):Ba(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,Da(e,t,r,i=t.elementType===r?i:Qi(r,i),n);case 7:return Ba(e,t,t.pendingProps,n),t.child;case 8:case 12:return Ba(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,i=t.pendingProps,s=t.memoizedProps,o=i.value;var c=t.type._context;if(pi(Ji,c._currentValue),c._currentValue=o,null!==s)if(c=s.value,0===(o=jr(c,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(c,o):1073741823))){if(s.children===i.children&&!hi.current){t=Qa(e,t,n);break e}}else for(null!==(c=t.child)&&(c.return=t);null!==c;){var l=c.dependencies;if(null!==l){s=c.child;for(var u=l.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&o)){1===c.tag&&((u=fo(n,null)).tag=2,po(c,u)),c.expirationTime=t&&e<=t}function jc(e,t){var n=e.firstSuspendedTime,r=e.lastSuspendedTime;nt||0===n)&&(e.lastSuspendedTime=t),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function $c(e,t){t>e.firstPendingTime&&(e.firstPendingTime=t);var n=e.firstSuspendedTime;0!==n&&(t>=n?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t>=e.lastSuspendedTime&&(e.lastSuspendedTime=t+1),t>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=t))}function Zc(e,t){var n=e.lastExpiredTime;(0===n||n>t)&&(e.lastExpiredTime=t)}function Hc(e,t,n,r){var i=t.current,o=ec(),s=go.suspense;o=tc(o,i,s);e:if(n){t:{if(et(n=n._reactInternalFiber)!==n||1!==n.tag)throw Error(a(170));var c=n;do{switch(c.tag){case 3:c=c.stateNode.context;break t;case 1:if(yi(c.type)){c=c.stateNode.__reactInternalMemoizedMergedChildContext;break t}}c=c.return}while(null!==c);throw Error(a(171))}if(1===n.tag){var l=n.type;if(yi(l)){n=Si(n,l,c);break e}}n=c}else n=mi;return null===t.context?t.context=n:t.pendingContext=n,(t=fo(o,s)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),po(i,t),nc(i,o),o}function Gc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Vc(e,t){null!==(e=e.memoizedState)&&null!==e.dehydrated&&e.retryTime=0||(i[n]=e[n]);return i}var h={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},g={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(h).map((function(e){return h[e]})),E={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(E).reduce((function(e,t){return e[E[t]]=t,e}),{}),k=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=k(e,h.TITLE),n=k(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=k(e,"defaultTitle");return t||r||void 0},T=function(e){return k(e,"onChangeClientState")||function(){}},_=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return f({},e,t)}),{})},C=function(e,t){return t.filter((function(e){return void 0!==e[h.BASE]})).map((function(e){return e[h.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'")},B=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[E[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var i,o=((i={key:n})["data-rh"]=!0,i);return Object.keys(t).forEach((function(e){var n=E[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},F=function(e,t,n){switch(e){case h.TITLE:return{toComponent:function(){return n=t.titleAttributes,(i={key:e=t.title})["data-rh"]=!0,o=D(n,i),[r.createElement(h.TITLE,o,e)];var e,n,i,o},toString:function(){return function(e,t,n,r){var i=B(n),o=P(t);return i?"<"+e+' data-rh="true" '+i+">"+L(o,r)+"":"<"+e+' data-rh="true">'+L(o,r)+""}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return B(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var i=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var i=void 0===r[t]?t:t+'="'+L(r[t],n)+'"';return e?e+" "+i:i}),""),o=r.innerHTML||r.cssText||"",a=-1===R.indexOf(e);return t+"<"+e+' data-rh="true" '+i+(a?"/>":">"+o+"")}),"")}(e,t,n)}}}},U=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,i=e.htmlAttributes,o=e.noscriptTags,a=e.styleTags,s=e.title,c=void 0===s?"":s,l=e.titleAttributes,u=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,i=N(e.metaTags,y),o=N(t,g),a=N(n,b);return{priorityMethods:{toComponent:function(){return[].concat(M(h.META,i.priority),M(h.LINK,o.priority),M(h.SCRIPT,a.priority))},toString:function(){return F(h.META,i.priority,r)+" "+F(h.LINK,o.priority,r)+" "+F(h.SCRIPT,a.priority,r)}},metaTags:i.default,linkTags:o.default,scriptTags:a.default}}(e);p=m.priorityMethods,u=m.linkTags,d=m.metaTags,f=m.scriptTags}return{priority:p,base:F(h.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",i,r),link:F(h.LINK,u,r),meta:F(h.META,d,r),noscript:F(h.NOSCRIPT,o,r),script:F(h.SCRIPT,f,r),style:F(h.STYLE,a,r),title:F(h.TITLE,{title:c,titleAttributes:l},r)}},z=[],j=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=U({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),Z=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),H="undefined"!=typeof document,G=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new j(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);G.canUseDOM=H,G.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var V=function(e,t){var n,r=document.head||document.querySelector(h.HEAD),i=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(i),a=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&("innerHTML"===i?r.innerHTML=t.innerHTML:"cssText"===i?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(i,void 0===t[i]?"":t[i]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):a.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),a.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:a}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),i=r?r.split(","):[],o=[].concat(i),a=Object.keys(t),s=0;s=0;d-=1)n.removeAttribute(o[d]);i.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==a.join(",")&&n.setAttribute("data-rh",a.join(","))}},q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,i=e.linkTags,o=e.metaTags,a=e.noscriptTags,s=e.onChangeClientState,c=e.scriptTags,l=e.styleTags,u=e.title,d=e.titleAttributes;W(h.BODY,e.bodyAttributes),W(h.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=P(e)),W(h.TITLE,t)}(u,d);var f={baseTag:V(h.BASE,n),linkTags:V(h.LINK,i),metaTags:V(h.META,o),noscriptTags:V(h.NOSCRIPT,a),scriptTags:V(h.SCRIPT,c),styleTags:V(h.STYLE,l)},p={},m={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)})),t&&t(),s(e,p,m)},Y=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),i=0;i elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,i=e.newProps,o=e.newChildProps,a=e.nestedChildren;switch(r.type){case h.TITLE:return f({},i,((t={})[r.type]=a,t.titleAttributes=f({},o),t));case h.BODY:return f({},i,{bodyAttributes:f({},o)});case h.HTML:return f({},i,{htmlAttributes:f({},o)});default:return f({},i,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach((function(t){var r;n=f({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return l()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),l()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``} ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,i={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,a=v(r,X),s=Object.keys(a).reduce((function(e,t){return e[S[t]||t]=a[t],e}),{}),c=e.type;switch("symbol"==typeof c?c=c.toString():n.warnOnInvalidChildren(e,o),c){case h.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case h.LINK:case h.META:case h.NOSCRIPT:case h.SCRIPT:case h.STYLE:i=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:i,newChildProps:s,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(i,t)},n.render=function(){var e=this.props,t=e.children,n=v(e,Q),i=f({},n),o=n.helmetData;return t&&(i=this.mapChildrenToProps(t,i)),!o||o instanceof j||(o=new j(o.context,o.instances)),o?r.createElement(K,f({},i,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,f({},i,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},8356:function(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(){return a=Object.assign||function(e){for(var t=1;tP.length&&P.push(e)}function R(e,t,n,r){var i=typeof e;"undefined"!==i&&"boolean"!==i||(e=null);var s=!1;if(null===e)s=!0;else switch(i){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case o:case a:s=!0}}if(s)return n(r,e,""===t?"."+B(e,0):t),1;if(s=0,t=""===t?".":t+":",Array.isArray(e))for(var c=0;c=E},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125>>1,i=e[r];if(!(void 0!==i&&0C(a,n))void 0!==c&&0>C(c,a)?(e[r]=c,e[s]=n,r=s):(e[r]=a,e[o]=n,r=o);else{if(!(void 0!==c&&0>C(c,n)))break e;e[r]=c,e[s]=n,r=s}}}return t}return null}function C(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var A=[],O=[],P=1,N=null,I=3,R=!1,L=!1,B=!1;function D(e){for(var t=T(O);null!==t;){if(null===t.callback)_(O);else{if(!(t.startTime<=e))break;_(O),t.sortIndex=t.expirationTime,x(A,t)}t=T(O)}}function M(e){if(B=!1,D(e),!L)if(null!==T(A))L=!0,n(F);else{var t=T(O);null!==t&&r(M,t.startTime-e)}}function F(e,n){L=!1,B&&(B=!1,i()),R=!0;var a=I;try{for(D(n),N=T(A);null!==N&&(!(N.expirationTime>n)||e&&!o());){var s=N.callback;if(null!==s){N.callback=null,I=N.priorityLevel;var c=s(N.expirationTime<=n);n=t.unstable_now(),"function"==typeof c?N.callback=c:N===T(A)&&_(A),D(n)}else _(A);N=T(A)}if(null!==N)var l=!0;else{var u=T(O);null!==u&&r(M,u.startTime-n),l=!1}return l}finally{N=null,I=a,R=!1}}function U(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var z=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){L||R||(L=!0,n(F))},t.unstable_getCurrentPriorityLevel=function(){return I},t.unstable_getFirstCallbackNode=function(){return T(A)},t.unstable_next=function(e){switch(I){case 1:case 2:case 3:var t=3;break;default:t=I}var n=I;I=t;try{return e()}finally{I=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=z,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=I;I=e;try{return t()}finally{I=n}},t.unstable_scheduleCallback=function(e,o,a){var s=t.unstable_now();if("object"==typeof a&&null!==a){var c=a.delay;c="number"==typeof c&&0s?(e.sortIndex=c,x(O,e),null===T(A)&&e===T(O)&&(B?i():B=!0,r(M,c-s))):(e.sortIndex=a,x(A,e),L||R||(L=!0,n(F))),e},t.unstable_shouldYield=function(){var e=t.unstable_now();D(e);var n=T(A);return n!==N&&null!==N&&null!==n&&null!==n.callback&&n.startTime<=e&&n.expirationTime\nThe texts in this website are licensed under\n\nCC BY-SA 4.0\n\n\n\n.  Copyright \xa9 2022-2023 by TNO."},prism:{additionalLanguages:["handlebars","regex","bash"],theme:{plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},presets:[["@docusaurus/preset-classic",{docs:{sidebarPath:"/home/runner/work/tev2-specifications/tev2-specifications/sidebars.js",editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/",showLastUpdateAuthor:!0,showLastUpdateTime:!0,breadcrumbs:!1},theme:{customCss:"/home/runner/work/tev2-specifications/tev2-specifications/src/css/custom.css"}}]],baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onBrokenMarkdownLinks:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(i[n]=e[n]);return i}n.d(t,{Z:function(){return r}})},9611:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},6528:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{Z:function(){return a}});var i=n(9611);function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,i.Z)(e,t)}function a(){a=function(e,t){return new n(e,void 0,t)};var e=RegExp.prototype,t=new WeakMap;function n(e,r,o){var a=new RegExp(e,r);return t.set(a,o||t.get(e)),(0,i.Z)(a,n.prototype)}function s(e,n){var r=t.get(n);return Object.keys(r).reduce((function(t,n){return t[n]=e[r[n]],t}),Object.create(null))}return o(n,RegExp),n.prototype.exec=function(t){var n=e.exec.call(this,t);return n&&(n.groups=s(n,this)),n},n.prototype[Symbol.replace]=function(n,i){if("string"==typeof i){var o=t.get(this);return e[Symbol.replace].call(this,n,i.replace(/\$<([^>]+)>/g,(function(e,t){return"$"+o[t]})))}if("function"==typeof i){var a=this;return e[Symbol.replace].call(this,n,(function(){var e=arguments;return"object"!=r(e[e.length-1])&&(e=[].slice.call(e)).push(s(e,a)),i.apply(this,e)}))}return e[Symbol.replace].call(this,n,i)},a.apply(this,arguments)}},7529:function(e){"use strict";e.exports={}},6887:function(e){"use strict";e.exports=JSON.parse('{"/tev2-specifications/docs-e1b":{"__comp":"1be78505","__context":{"plugin":"4cbfba96"},"versionMetadata":"935f2afb"},"/tev2-specifications/docs/-8a9":{"__comp":"17896441","content":"23374ca6"},"/tev2-specifications/docs/manuals/author/author-overview-6c9":{"__comp":"17896441","content":"ade96904"},"/tev2-specifications/docs/manuals/contributor/contributor-overview-7db":{"__comp":"17896441","content":"feb0a068"},"/tev2-specifications/docs/manuals/contributor/contributors-LaTeX-1da":{"__comp":"17896441","content":"e963bf71"},"/tev2-specifications/docs/manuals/contributor/contributors-repo-b98":{"__comp":"17896441","content":"c5f202a2"},"/tev2-specifications/docs/manuals/contributor/contributors-wiki-b9a":{"__comp":"17896441","content":"d1ce265f"},"/tev2-specifications/docs/manuals/curator/curator-overview-cc4":{"__comp":"17896441","content":"5a2bb67b"},"/tev2-specifications/docs/manuals/curator/tev2-installation-aa2":{"__comp":"17896441","content":"bcb93ad0"},"/tev2-specifications/docs/manuals/man-overview-5eb":{"__comp":"17896441","content":"530622a1"},"/tev2-specifications/docs/miscellaneous/tool-development-8b3":{"__comp":"17896441","content":"1437a887"},"/tev2-specifications/docs/notations-and-conventions-887":{"__comp":"17896441","content":"79248420"},"/tev2-specifications/docs/overview/tev2-architecture-c08":{"__comp":"17896441","content":"db749810"},"/tev2-specifications/docs/overview/tev2-background-721":{"__comp":"17896441","content":"9c3f4df8"},"/tev2-specifications/docs/overview/tev2-common-understanding-d58":{"__comp":"17896441","content":"358bfd91"},"/tev2-specifications/docs/overview/tev2-design-principles-671":{"__comp":"17896441","content":"b09e837d"},"/tev2-specifications/docs/overview/tev2-purpose-990":{"__comp":"17896441","content":"9956d717"},"/tev2-specifications/docs/overview/tev2-terminology-curation-34e":{"__comp":"17896441","content":"4cd795c8"},"/tev2-specifications/docs/spec-files/ctext-b31":{"__comp":"17896441","content":"73517f78"},"/tev2-specifications/docs/spec-files/hrd-464":{"__comp":"17896441","content":"f27e77df"},"/tev2-specifications/docs/spec-files/hrg-b4d":{"__comp":"17896441","content":"6082c6f3"},"/tev2-specifications/docs/spec-files/mrd-af9":{"__comp":"17896441","content":"b139d961"},"/tev2-specifications/docs/spec-files/mrg-ca0":{"__comp":"17896441","content":"bc9a9474"},"/tev2-specifications/docs/spec-files/profile-templates-3ee":{"__comp":"17896441","content":"0b1184e8"},"/tev2-specifications/docs/spec-files/saf-3db":{"__comp":"17896441","content":"0d70a313"},"/tev2-specifications/docs/spec-syntax/form-phrase-syntax-2b3":{"__comp":"17896441","content":"dd8f50c9"},"/tev2-specifications/docs/spec-syntax/hrg-termselcrit-55c":{"__comp":"17896441","content":"eaf68872"},"/tev2-specifications/docs/spec-syntax/term-identifier-syntax-7de":{"__comp":"17896441","content":"66fdd2ef"},"/tev2-specifications/docs/spec-syntax/term-ref-syntax-7b3":{"__comp":"17896441","content":"d58fc793"},"/tev2-specifications/docs/spec-tools/hrdt-547":{"__comp":"17896441","content":"1a4b7b7c"},"/tev2-specifications/docs/spec-tools/hrgt-29e":{"__comp":"17896441","content":"5afb2393"},"/tev2-specifications/docs/spec-tools/hrgt-old-588":{"__comp":"17896441","content":"6b1e0334"},"/tev2-specifications/docs/spec-tools/ict-8ad":{"__comp":"17896441","content":"3bc993c5"},"/tev2-specifications/docs/spec-tools/mrdt-52d":{"__comp":"17896441","content":"9fed84d8"},"/tev2-specifications/docs/spec-tools/mrg-importer-2a8":{"__comp":"17896441","content":"0b24ef70"},"/tev2-specifications/docs/spec-tools/mrgt-b4e":{"__comp":"17896441","content":"205d9948"},"/tev2-specifications/docs/spec-tools/terminology-construction-e03":{"__comp":"17896441","content":"68543202"},"/tev2-specifications/docs/spec-tools/trrt-35e":{"__comp":"17896441","content":"83bd4574"},"/tev2-specifications/docs/terms/@-adf":{"__comp":"17896441","content":"83d6452b"},"/tev2-specifications/docs/terms/author-576":{"__comp":"17896441","content":"07990011"},"/tev2-specifications/docs/terms/body-1e1":{"__comp":"17896441","content":"d9735dd1"},"/tev2-specifications/docs/terms/concept-dde":{"__comp":"17896441","content":"cfcdc3ca"},"/tev2-specifications/docs/terms/conceptualization-766":{"__comp":"17896441","content":"9136c9f6"},"/tev2-specifications/docs/terms/converter-ae6":{"__comp":"17896441","content":"efbcea9d"},"/tev2-specifications/docs/terms/corpus-90b":{"__comp":"17896441","content":"5395b836"},"/tev2-specifications/docs/terms/curate-ddf":{"__comp":"17896441","content":"75cbb1e6"},"/tev2-specifications/docs/terms/curated-text-9dd":{"__comp":"17896441","content":"2f0ec223"},"/tev2-specifications/docs/terms/curatedir-114":{"__comp":"17896441","content":"5ea46faf"},"/tev2-specifications/docs/terms/curator-62d":{"__comp":"17896441","content":"79495b8c"},"/tev2-specifications/docs/terms/define-8f0":{"__comp":"17896441","content":"9976dba8"},"/tev2-specifications/docs/terms/definition-504":{"__comp":"17896441","content":"b5976878"},"/tev2-specifications/docs/terms/dictionary-877":{"__comp":"17896441","content":"8cadb544"},"/tev2-specifications/docs/terms/form-phrase-281":{"__comp":"17896441","content":"d061ed1e"},"/tev2-specifications/docs/terms/formatted-text-30b":{"__comp":"17896441","content":"37bf8d6e"},"/tev2-specifications/docs/terms/glossary-575":{"__comp":"17896441","content":"03b39aaa"},"/tev2-specifications/docs/terms/glossarydir-9df":{"__comp":"17896441","content":"f5824b3c"},"/tev2-specifications/docs/terms/grouptag-be9":{"__comp":"17896441","content":"9a3eaf08"},"/tev2-specifications/docs/terms/header-24b":{"__comp":"17896441","content":"1ebbe01d"},"/tev2-specifications/docs/terms/hrd-54e":{"__comp":"17896441","content":"17aedecb"},"/tev2-specifications/docs/terms/hrdt-b01":{"__comp":"17896441","content":"41daa8b4"},"/tev2-specifications/docs/terms/hrg-9f6":{"__comp":"17896441","content":"65f59a55"},"/tev2-specifications/docs/terms/hrg-entry-049":{"__comp":"17896441","content":"73053340"},"/tev2-specifications/docs/terms/hrgt-284":{"__comp":"17896441","content":"c5a98701"},"/tev2-specifications/docs/terms/ict-57a":{"__comp":"17896441","content":"c0bb789b"},"/tev2-specifications/docs/terms/identifier-2a6":{"__comp":"17896441","content":"e8dcf8cf"},"/tev2-specifications/docs/terms/identify-174":{"__comp":"17896441","content":"0243614c"},"/tev2-specifications/docs/terms/ingestion-4ba":{"__comp":"17896441","content":"d8ee5cce"},"/tev2-specifications/docs/terms/ingestion-profile-545":{"__comp":"17896441","content":"d71eb2ae"},"/tev2-specifications/docs/terms/interpreter-24f":{"__comp":"17896441","content":"8677fb48"},"/tev2-specifications/docs/terms/knowledge-artifact-0c8":{"__comp":"17896441","content":"797e5329"},"/tev2-specifications/docs/terms/mental-model-45b":{"__comp":"17896441","content":"2ff88f8b"},"/tev2-specifications/docs/terms/moustache-variable-6f4":{"__comp":"17896441","content":"e6a4b882"},"/tev2-specifications/docs/terms/mrd-98a":{"__comp":"17896441","content":"67283e50"},"/tev2-specifications/docs/terms/mrdt-34b":{"__comp":"17896441","content":"5003321a"},"/tev2-specifications/docs/terms/mrg-a43":{"__comp":"17896441","content":"e58d15ee"},"/tev2-specifications/docs/terms/mrg-entry-055":{"__comp":"17896441","content":"7567abf2"},"/tev2-specifications/docs/terms/mrg-importer-e1c":{"__comp":"17896441","content":"ee5834a7"},"/tev2-specifications/docs/terms/mrgt-fca":{"__comp":"17896441","content":"de8bc3ad"},"/tev2-specifications/docs/terms/patterns/pattern-terminology-fdf":{"__comp":"17896441","content":"073edd59"},"/tev2-specifications/docs/terms/property-c70":{"__comp":"17896441","content":"85bdfa30"},"/tev2-specifications/docs/terms/reader-7af":{"__comp":"17896441","content":"e129cf3c"},"/tev2-specifications/docs/terms/relation-6b8":{"__comp":"17896441","content":"49f969b0"},"/tev2-specifications/docs/terms/renderable-ref-374":{"__comp":"17896441","content":"8602ac2f"},"/tev2-specifications/docs/terms/saf-7ef":{"__comp":"17896441","content":"9f5dc2b0"},"/tev2-specifications/docs/terms/scope-fe5":{"__comp":"17896441","content":"156e271d"},"/tev2-specifications/docs/terms/scoped-term-c51":{"__comp":"17896441","content":"0cdee2ba"},"/tev2-specifications/docs/terms/scopedir-bd3":{"__comp":"17896441","content":"cf9aab87"},"/tev2-specifications/docs/terms/scopetag-ea4":{"__comp":"17896441","content":"6db347e8"},"/tev2-specifications/docs/terms/semantic-unit-569":{"__comp":"17896441","content":"59f1a610"},"/tev2-specifications/docs/terms/semantics-ac3":{"__comp":"17896441","content":"042aab58"},"/tev2-specifications/docs/terms/synonym-c5e":{"__comp":"17896441","content":"4e095fca"},"/tev2-specifications/docs/terms/tag-1ef":{"__comp":"17896441","content":"0fbf73e8"},"/tev2-specifications/docs/terms/term-17c":{"__comp":"17896441","content":"5049cc12"},"/tev2-specifications/docs/terms/term-identifier-c82":{"__comp":"17896441","content":"e768272c"},"/tev2-specifications/docs/terms/term-ref-6c0":{"__comp":"17896441","content":"afb8980b"},"/tev2-specifications/docs/terms/term-selection-criteria-0f0":{"__comp":"17896441","content":"f8438414"},"/tev2-specifications/docs/terms/term-syntax-a25":{"__comp":"17896441","content":"c2c4426a"},"/tev2-specifications/docs/terms/term-type-d4d":{"__comp":"17896441","content":"f24909cd"},"/tev2-specifications/docs/terms/terminological-artifact-5e5":{"__comp":"17896441","content":"dca8ef5b"},"/tev2-specifications/docs/terms/terminology-110":{"__comp":"17896441","content":"233866fe"},"/tev2-specifications/docs/terms/terminology-process-f8b":{"__comp":"17896441","content":"5f28d73f"},"/tev2-specifications/docs/terms/terminology-under-construction-32c":{"__comp":"17896441","content":"e0b00178"},"/tev2-specifications/docs/terms/terms-community-f30":{"__comp":"17896441","content":"a11550d3"},"/tev2-specifications/docs/terms/tev2-def":{"__comp":"17896441","content":"b9e2db8f"},"/tev2-specifications/docs/terms/tev2-tool-5c1":{"__comp":"17896441","content":"bb7c9df2"},"/tev2-specifications/docs/terms/tev2-toolbox-b92":{"__comp":"17896441","content":"fd7be43f"},"/tev2-specifications/docs/terms/trrt-94b":{"__comp":"17896441","content":"bf59d308"},"/tev2-specifications/docs/terms/versiontag-f96":{"__comp":"17896441","content":"b0474474"},"/tev2-specifications/docs/terms/vocabulary-abc":{"__comp":"17896441","content":"a7c030b4"},"/tev2-specifications/docs/tev2-glossary-ef0":{"__comp":"17896441","content":"a976b482"},"/tev2-specifications/docs/tev2-overview-2b6":{"__comp":"17896441","content":"cc3066cf"},"/tev2-specifications/docs/tev2-spec-files-42a":{"__comp":"17896441","content":"2ea3555a"},"/tev2-specifications/docs/tev2-syntax-05c":{"__comp":"17896441","content":"d791b17e"},"/tev2-specifications/docs/tev2-toolbox-cac":{"__comp":"17896441","content":"b1f7a5f8"},"/tev2-specifications/-e9f":{"__comp":"c4f5d8e4","__context":{"plugin":"33cdb9e8"},"config":"5e9f5e1a"}}')}},function(e){e.O(0,[532],(function(){return t=9383,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.ec6a2e1a.js.LICENSE.txt b/assets/js/main.4d8546a3.js.LICENSE.txt similarity index 100% rename from assets/js/main.ec6a2e1a.js.LICENSE.txt rename to assets/js/main.4d8546a3.js.LICENSE.txt diff --git a/assets/js/main.ec6a2e1a.js b/assets/js/main.ec6a2e1a.js deleted file mode 100644 index b4286e38e9..0000000000 --- a/assets/js/main.ec6a2e1a.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.ec6a2e1a.js.LICENSE.txt */ -(self.webpackChunktev2_specifications=self.webpackChunktev2_specifications||[]).push([[179],{723:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(7294),i=n(7462),o=n(8356),a=n.n(o),s=n(6887),c={"0243614c":[function(){return n.e(1277).then(n.bind(n,9807))},"@site/docs/terms/identify.md",9807],"03b39aaa":[function(){return n.e(5328).then(n.bind(n,6935))},"@site/docs/terms/glossary.md",6935],"042aab58":[function(){return n.e(6854).then(n.bind(n,5525))},"@site/docs/terms/semantics.md",5525],"073edd59":[function(){return n.e(1480).then(n.bind(n,2699))},"@site/docs/terms/patterns/pattern-terminology.md",2699],"07990011":[function(){return n.e(2595).then(n.bind(n,1643))},"@site/docs/terms/author.md",1643],"0b1184e8":[function(){return n.e(2174).then(n.bind(n,3894))},"@site/docs/spec-files/20-profile-templates.md",3894],"0b24ef70":[function(){return Promise.all([n.e(532),n.e(8136)]).then(n.bind(n,361))},"@site/docs/spec-tools/12-mrg-importer.md",361],"0cdee2ba":[function(){return n.e(6135).then(n.bind(n,2750))},"@site/docs/terms/scoped-term.md",2750],"0d70a313":[function(){return Promise.all([n.e(532),n.e(812)]).then(n.bind(n,1794))},"@site/docs/spec-files/11-saf.md",1794],"0fbf73e8":[function(){return n.e(9446).then(n.bind(n,1334))},"@site/docs/terms/tag.md",1334],"1437a887":[function(){return n.e(1536).then(n.bind(n,5577))},"@site/docs/miscellaneous/tool-development.md",5577],"156e271d":[function(){return n.e(7082).then(n.bind(n,3065))},"@site/docs/terms/scope.md",3065],17896441:[function(){return Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,2019))},"@theme/DocItem",2019],"17aedecb":[function(){return n.e(4510).then(n.bind(n,986))},"@site/docs/terms/hrd.md",986],"1a4b7b7c":[function(){return n.e(9545).then(n.bind(n,4345))},"@site/docs/spec-tools/32-hrdt.md",4345],"1be78505":[function(){return Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,9963))},"@theme/DocPage",9963],"1ebbe01d":[function(){return n.e(9901).then(n.bind(n,530))},"@site/docs/terms/header.md",530],"205d9948":[function(){return Promise.all([n.e(532),n.e(7523)]).then(n.bind(n,2219))},"@site/docs/spec-tools/21-mrgt.md",2219],"23374ca6":[function(){return n.e(8421).then(n.bind(n,6527))},"@site/docs/README.md",6527],"233866fe":[function(){return n.e(6551).then(n.bind(n,9866))},"@site/docs/terms/terminology.md",9866],"2ea3555a":[function(){return n.e(6063).then(n.bind(n,6911))},"@site/docs/tev2-spec-files.md",6911],"2f0ec223":[function(){return n.e(1062).then(n.bind(n,5549))},"@site/docs/terms/curated-text.md",5549],"2ff88f8b":[function(){return n.e(4193).then(n.bind(n,5457))},"@site/docs/terms/mental-model.md",5457],"33cdb9e8":[function(){return n.e(3943).then(n.t.bind(n,5745,19))},"/home/runner/work/tev2-specifications/tev2-specifications/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"358bfd91":[function(){return n.e(1351).then(n.bind(n,1443))},"@site/docs/overview/00-tev2-common-understanding.md",1443],"37bf8d6e":[function(){return n.e(2904).then(n.bind(n,9579))},"@site/docs/terms/formatted-text.md",9579],"3bc993c5":[function(){return Promise.all([n.e(532),n.e(4060)]).then(n.bind(n,6592))},"@site/docs/spec-tools/11-ict.md",6592],"41daa8b4":[function(){return n.e(1576).then(n.bind(n,443))},"@site/docs/terms/hrdt.md",443],"49f969b0":[function(){return n.e(3519).then(n.bind(n,1940))},"@site/docs/terms/relation.md",1940],"4cbfba96":[function(){return n.e(5587).then(n.t.bind(n,3769,19))},"/home/runner/work/tev2-specifications/tev2-specifications/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"4cd795c8":[function(){return n.e(2766).then(n.bind(n,3402))},"@site/docs/overview/40-tev2-terminology-curation.md",3402],"4e095fca":[function(){return n.e(5516).then(n.bind(n,2369))},"@site/docs/terms/synonym.md",2369],"5003321a":[function(){return n.e(4172).then(n.bind(n,1253))},"@site/docs/terms/mrdt.md",1253],"5049cc12":[function(){return n.e(4207).then(n.bind(n,6369))},"@site/docs/terms/term.md",6369],"530622a1":[function(){return n.e(5316).then(n.bind(n,7868))},"@site/docs/manuals/00-man-overview.md",7868],"5395b836":[function(){return n.e(2352).then(n.bind(n,2206))},"@site/docs/terms/corpus.md",2206],"59f1a610":[function(){return n.e(7644).then(n.bind(n,3416))},"@site/docs/terms/semantic-unit.md",3416],"5a2bb67b":[function(){return n.e(9381).then(n.bind(n,716))},"@site/docs/manuals/curator/00-curator-overview.md",716],"5afb2393":[function(){return Promise.all([n.e(532),n.e(7773)]).then(n.bind(n,5557))},"@site/docs/spec-tools/22-hrgt.md",5557],"5e9f5e1a":[function(){return Promise.resolve().then(n.bind(n,6809))},"@generated/docusaurus.config",6809],"5ea46faf":[function(){return n.e(3504).then(n.bind(n,6338))},"@site/docs/terms/curatedir.md",6338],"5f28d73f":[function(){return n.e(6752).then(n.bind(n,8435))},"@site/docs/terms/terminology-process.md",8435],"6082c6f3":[function(){return Promise.all([n.e(532),n.e(6214)]).then(n.bind(n,6286))},"@site/docs/spec-files/22-hrg.md",6286],"65f59a55":[function(){return n.e(328).then(n.bind(n,8768))},"@site/docs/terms/hrg.md",8768],"66fdd2ef":[function(){return n.e(8830).then(n.bind(n,9513))},"@site/docs/spec-syntax/12-term-identifier-syntax.md",9513],"67283e50":[function(){return n.e(991).then(n.bind(n,5620))},"@site/docs/terms/mrd.md",5620],68543202:[function(){return n.e(2938).then(n.bind(n,6273))},"@site/docs/spec-tools/20-terminology-construction.md",6273],"6b1e0334":[function(){return n.e(1521).then(n.bind(n,3305))},"@site/docs/spec-tools/22-hrgt-old.md",3305],"6db347e8":[function(){return n.e(3214).then(n.bind(n,7900))},"@site/docs/terms/scopetag.md",7900],73053340:[function(){return n.e(4988).then(n.bind(n,1540))},"@site/docs/terms/hrg-entry.md",1540],"73517f78":[function(){return n.e(2468).then(n.bind(n,1394))},"@site/docs/spec-files/00-ctext.md",1394],"7567abf2":[function(){return n.e(8948).then(n.bind(n,3916))},"@site/docs/terms/mrg-entry.md",3916],"75cbb1e6":[function(){return n.e(4658).then(n.bind(n,2147))},"@site/docs/terms/curate.md",2147],79248420:[function(){return n.e(1789).then(n.bind(n,5101))},"@site/docs/notations-and-conventions.md",5101],"79495b8c":[function(){return n.e(6122).then(n.bind(n,2913))},"@site/docs/terms/curator.md",2913],"797e5329":[function(){return n.e(6211).then(n.bind(n,5527))},"@site/docs/terms/knowledge-artifact.md",5527],"83bd4574":[function(){return Promise.all([n.e(532),n.e(3991)]).then(n.bind(n,9257))},"@site/docs/spec-tools/13-trrt.md",9257],"83d6452b":[function(){return n.e(1437).then(n.bind(n,7388))},"@site/docs/terms/@.md",7388],"85bdfa30":[function(){return n.e(3658).then(n.bind(n,8720))},"@site/docs/terms/property.md",8720],"8602ac2f":[function(){return n.e(4436).then(n.bind(n,3576))},"@site/docs/terms/renderable-ref.md",3576],"8677fb48":[function(){return n.e(7711).then(n.bind(n,6521))},"@site/docs/terms/interpreter.md",6521],"8cadb544":[function(){return n.e(2879).then(n.bind(n,6754))},"@site/docs/terms/dictionary.md",6754],"9136c9f6":[function(){return n.e(7247).then(n.bind(n,8174))},"@site/docs/terms/conceptualization.md",8174],"935f2afb":[function(){return n.e(53).then(n.t.bind(n,1109,19))},"~docs/default/version-current-metadata-prop-751.json",1109],"9956d717":[function(){return n.e(5107).then(n.bind(n,9e3))},"@site/docs/overview/10-tev2-purpose.md",9e3],"9976dba8":[function(){return n.e(1955).then(n.bind(n,7452))},"@site/docs/terms/define.md",7452],"9a3eaf08":[function(){return n.e(8675).then(n.bind(n,8353))},"@site/docs/terms/grouptag.md",8353],"9f5dc2b0":[function(){return n.e(2120).then(n.bind(n,9437))},"@site/docs/terms/saf.md",9437],"9fed84d8":[function(){return n.e(9617).then(n.bind(n,8004))},"@site/docs/spec-tools/31-mrdt.md",8004],a11550d3:[function(){return n.e(6202).then(n.bind(n,6783))},"@site/docs/terms/terms-community.md",6783],a7c030b4:[function(){return n.e(5260).then(n.bind(n,3162))},"@site/docs/terms/vocabulary.md",3162],a976b482:[function(){return n.e(612).then(n.bind(n,4029))},"@site/docs/tev2-glossary.md",4029],ade96904:[function(){return n.e(2166).then(n.bind(n,6365))},"@site/docs/manuals/author/00-author-overview.md",6365],afb8980b:[function(){return n.e(6098).then(n.bind(n,2565))},"@site/docs/terms/term-ref.md",2565],b0474474:[function(){return n.e(6571).then(n.bind(n,5480))},"@site/docs/terms/versiontag.md",5480],b09e837d:[function(){return n.e(5418).then(n.bind(n,9401))},"@site/docs/overview/20-tev2-design-principles.md",9401],b139d961:[function(){return n.e(4054).then(n.bind(n,5108))},"@site/docs/spec-files/51-mrd.md",5108],b1f7a5f8:[function(){return n.e(3360).then(n.bind(n,2868))},"@site/docs/tev2-toolbox.md",2868],b5976878:[function(){return n.e(925).then(n.bind(n,6572))},"@site/docs/terms/definition.md",6572],b9e2db8f:[function(){return n.e(1374).then(n.bind(n,4694))},"@site/docs/terms/tev2.md",4694],bb7c9df2:[function(){return n.e(9286).then(n.bind(n,5553))},"@site/docs/terms/tev2-tool.md",5553],bc9a9474:[function(){return Promise.all([n.e(532),n.e(8113)]).then(n.bind(n,3405))},"@site/docs/spec-files/21-mrg.md",3405],bcb93ad0:[function(){return n.e(4069).then(n.bind(n,7883))},"@site/docs/manuals/curator/10-curator-tev2-installation.md",7883],bf59d308:[function(){return n.e(8572).then(n.bind(n,9464))},"@site/docs/terms/trrt.md",9464],c0bb789b:[function(){return n.e(2184).then(n.bind(n,4920))},"@site/docs/terms/ict.md",4920],c2c4426a:[function(){return n.e(2040).then(n.bind(n,7260))},"@site/docs/terms/term-syntax.md",7260],c4f5d8e4:[function(){return Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,5239))},"@site/src/pages/index.js",5239],c5a98701:[function(){return n.e(2907).then(n.bind(n,2))},"@site/docs/terms/hrgt.md",2],c5f202a2:[function(){return n.e(2943).then(n.bind(n,5997))},"@site/docs/manuals/contributor/10-contributors-repo.md",5997],cc3066cf:[function(){return n.e(9975).then(n.bind(n,5056))},"@site/docs/tev2-overview.md",5056],cf9aab87:[function(){return n.e(3965).then(n.bind(n,1905))},"@site/docs/terms/scopedir.md",1905],cfcdc3ca:[function(){return n.e(7485).then(n.bind(n,3466))},"@site/docs/terms/concept.md",3466],d061ed1e:[function(){return n.e(3107).then(n.bind(n,7511))},"@site/docs/terms/formphrase.md",7511],d1ce265f:[function(){return n.e(9603).then(n.bind(n,3915))},"@site/docs/manuals/contributor/20-contributors-wiki.md",3915],d58fc793:[function(){return n.e(5446).then(n.bind(n,4348))},"@site/docs/spec-syntax/11-term-ref-syntax.md",4348],d71eb2ae:[function(){return n.e(5505).then(n.bind(n,798))},"@site/docs/terms/ingestion-profile.md",798],d791b17e:[function(){return n.e(8366).then(n.bind(n,5440))},"@site/docs/tev2-syntax.md",5440],d8ee5cce:[function(){return n.e(9359).then(n.bind(n,2385))},"@site/docs/terms/ingestion-process.md",2385],d9735dd1:[function(){return n.e(6903).then(n.bind(n,1120))},"@site/docs/terms/body.md",1120],db749810:[function(){return n.e(1408).then(n.bind(n,9052))},"@site/docs/overview/30-tev2-architecture.md",9052],dca8ef5b:[function(){return n.e(3379).then(n.bind(n,2897))},"@site/docs/terms/terminological-artifact.md",2897],dd8f50c9:[function(){return n.e(7513).then(n.bind(n,3505))},"@site/docs/spec-syntax/21-form-phrase-syntax.md",3505],de8bc3ad:[function(){return n.e(7142).then(n.bind(n,9615))},"@site/docs/terms/mrgt.md",9615],e0b00178:[function(){return n.e(879).then(n.bind(n,7926))},"@site/docs/terms/terminology-under-construction.md",7926],e129cf3c:[function(){return n.e(3743).then(n.bind(n,1897))},"@site/docs/terms/reader.md",1897],e58d15ee:[function(){return n.e(7053).then(n.bind(n,9809))},"@site/docs/terms/mrg.md",9809],e6a4b882:[function(){return n.e(7211).then(n.bind(n,9624))},"@site/docs/terms/moustache-variable.md",9624],e768272c:[function(){return n.e(8994).then(n.bind(n,3170))},"@site/docs/terms/term-identifier.md",3170],e8dcf8cf:[function(){return n.e(8488).then(n.bind(n,9497))},"@site/docs/terms/identifier.md",9497],e963bf71:[function(){return n.e(3271).then(n.bind(n,9565))},"@site/docs/manuals/contributor/40-contributors-latex.md",9565],eaf68872:[function(){return Promise.all([n.e(532),n.e(9825)]).then(n.bind(n,1056))},"@site/docs/spec-syntax/31-hrg-termselcrit.md",1056],ee5834a7:[function(){return n.e(4117).then(n.bind(n,8089))},"@site/docs/terms/mrg-importer.md",8089],efbcea9d:[function(){return n.e(1895).then(n.bind(n,6352))},"@site/docs/terms/converter.md",6352],f24909cd:[function(){return n.e(1482).then(n.bind(n,6166))},"@site/docs/terms/term-type.md",6166],f27e77df:[function(){return n.e(2999).then(n.bind(n,5013))},"@site/docs/spec-files/52-hrd.md",5013],f5824b3c:[function(){return n.e(2290).then(n.bind(n,732))},"@site/docs/terms/glossarydir.md",732],f8438414:[function(){return n.e(2214).then(n.bind(n,7182))},"@site/docs/terms/term-selection-criteria.md",7182],fd7be43f:[function(){return n.e(8260).then(n.bind(n,7375))},"@site/docs/terms/tev2-toolbox.md",7375],feb0a068:[function(){return n.e(1495).then(n.bind(n,9596))},"@site/docs/manuals/contributor/00-contributor-overview.md",9596]};function l(e){var t=e.error,n=e.retry,i=e.pastDelay;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):i?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(9670),d=n(226);function f(e,t){if("*"===e)return a()({loading:l,loader:function(){return n.e(4972).then(n.bind(n,4972))},modules:["@theme/NotFound"],webpack:function(){return[4972]},render:function(e,t){var n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});var o=s[e+"-"+t],f={},p=[],m=[],v=(0,u.Z)(o);return Object.entries(v).forEach((function(e){var t=e[0],n=e[1],r=c[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),a().Map({loading:l,loader:f,modules:p,webpack:function(){return m},render:function(t,n){var a=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((function(t){var n=t[0],r=t[1],i=r.default;if(!i)throw new Error("The page component at "+e+" doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.");"object"!=typeof i&&"function"!=typeof i||Object.keys(r).filter((function(e){return"default"!==e})).forEach((function(e){i[e]=r[e]}));var o=a,s=n.split(".");s.slice(0,-1).forEach((function(e){o=o[e]})),o[s[s.length-1]]=i}));var s=a.__comp;delete a.__comp;var c=a.__context;return delete a.__context,r.createElement(d.z,{value:c},r.createElement(s,(0,i.Z)({},a,n)))}})}var p=[{path:"/tev2-specifications/docs",component:f("/tev2-specifications/docs","6db"),routes:[{path:"/tev2-specifications/docs/",component:f("/tev2-specifications/docs/","8a9"),exact:!0},{path:"/tev2-specifications/docs/manuals/author/author-overview",component:f("/tev2-specifications/docs/manuals/author/author-overview","6c9"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/manuals/contributor/contributor-overview",component:f("/tev2-specifications/docs/manuals/contributor/contributor-overview","7db"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/manuals/contributor/contributors-LaTeX",component:f("/tev2-specifications/docs/manuals/contributor/contributors-LaTeX","1da"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/manuals/contributor/contributors-repo",component:f("/tev2-specifications/docs/manuals/contributor/contributors-repo","b98"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/manuals/contributor/contributors-wiki",component:f("/tev2-specifications/docs/manuals/contributor/contributors-wiki","b9a"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/manuals/curator/curator-overview",component:f("/tev2-specifications/docs/manuals/curator/curator-overview","cc4"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/manuals/curator/tev2-installation",component:f("/tev2-specifications/docs/manuals/curator/tev2-installation","aa2"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/manuals/man-overview",component:f("/tev2-specifications/docs/manuals/man-overview","5eb"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/miscellaneous/tool-development",component:f("/tev2-specifications/docs/miscellaneous/tool-development","8b3"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/notations-and-conventions",component:f("/tev2-specifications/docs/notations-and-conventions","887"),exact:!0},{path:"/tev2-specifications/docs/overview/tev2-architecture",component:f("/tev2-specifications/docs/overview/tev2-architecture","c08"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/overview/tev2-common-understanding",component:f("/tev2-specifications/docs/overview/tev2-common-understanding","d58"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/overview/tev2-design-principles",component:f("/tev2-specifications/docs/overview/tev2-design-principles","671"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/overview/tev2-purpose",component:f("/tev2-specifications/docs/overview/tev2-purpose","990"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/overview/tev2-terminology-curation",component:f("/tev2-specifications/docs/overview/tev2-terminology-curation","34e"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-files/ctext",component:f("/tev2-specifications/docs/spec-files/ctext","b31"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-files/hrd",component:f("/tev2-specifications/docs/spec-files/hrd","464"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-files/hrg",component:f("/tev2-specifications/docs/spec-files/hrg","b4d"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-files/mrd",component:f("/tev2-specifications/docs/spec-files/mrd","af9"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-files/mrg",component:f("/tev2-specifications/docs/spec-files/mrg","ca0"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-files/profile-templates",component:f("/tev2-specifications/docs/spec-files/profile-templates","3ee"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-files/saf",component:f("/tev2-specifications/docs/spec-files/saf","3db"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-syntax/form-phrase-syntax",component:f("/tev2-specifications/docs/spec-syntax/form-phrase-syntax","2b3"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-syntax/hrg-termselcrit",component:f("/tev2-specifications/docs/spec-syntax/hrg-termselcrit","55c"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-syntax/term-identifier-syntax",component:f("/tev2-specifications/docs/spec-syntax/term-identifier-syntax","7de"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-syntax/term-ref-syntax",component:f("/tev2-specifications/docs/spec-syntax/term-ref-syntax","7b3"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-tools/hrdt",component:f("/tev2-specifications/docs/spec-tools/hrdt","547"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-tools/hrgt",component:f("/tev2-specifications/docs/spec-tools/hrgt","29e"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-tools/hrgt-old",component:f("/tev2-specifications/docs/spec-tools/hrgt-old","588"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-tools/ict",component:f("/tev2-specifications/docs/spec-tools/ict","8ad"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-tools/mrdt",component:f("/tev2-specifications/docs/spec-tools/mrdt","52d"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-tools/mrg-importer",component:f("/tev2-specifications/docs/spec-tools/mrg-importer","2a8"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-tools/mrgt",component:f("/tev2-specifications/docs/spec-tools/mrgt","b4e"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-tools/terminology-construction",component:f("/tev2-specifications/docs/spec-tools/terminology-construction","e03"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/spec-tools/trrt",component:f("/tev2-specifications/docs/spec-tools/trrt","35e"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/@",component:f("/tev2-specifications/docs/terms/@","adf"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/author",component:f("/tev2-specifications/docs/terms/author","576"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/body",component:f("/tev2-specifications/docs/terms/body","1e1"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/concept",component:f("/tev2-specifications/docs/terms/concept","dde"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/conceptualization",component:f("/tev2-specifications/docs/terms/conceptualization","766"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/converter",component:f("/tev2-specifications/docs/terms/converter","ae6"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/corpus",component:f("/tev2-specifications/docs/terms/corpus","90b"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/curate",component:f("/tev2-specifications/docs/terms/curate","ddf"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/curated-text",component:f("/tev2-specifications/docs/terms/curated-text","9dd"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/curatedir",component:f("/tev2-specifications/docs/terms/curatedir","114"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/curator",component:f("/tev2-specifications/docs/terms/curator","62d"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/define",component:f("/tev2-specifications/docs/terms/define","8f0"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/definition",component:f("/tev2-specifications/docs/terms/definition","504"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/dictionary",component:f("/tev2-specifications/docs/terms/dictionary","877"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/form-phrase",component:f("/tev2-specifications/docs/terms/form-phrase","281"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/formatted-text",component:f("/tev2-specifications/docs/terms/formatted-text","30b"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/glossary",component:f("/tev2-specifications/docs/terms/glossary","575"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/glossarydir",component:f("/tev2-specifications/docs/terms/glossarydir","9df"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/grouptag",component:f("/tev2-specifications/docs/terms/grouptag","be9"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/header",component:f("/tev2-specifications/docs/terms/header","24b"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/hrd",component:f("/tev2-specifications/docs/terms/hrd","54e"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/hrdt",component:f("/tev2-specifications/docs/terms/hrdt","b01"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/hrg",component:f("/tev2-specifications/docs/terms/hrg","9f6"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/hrg-entry",component:f("/tev2-specifications/docs/terms/hrg-entry","049"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/hrgt",component:f("/tev2-specifications/docs/terms/hrgt","284"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/ict",component:f("/tev2-specifications/docs/terms/ict","57a"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/identifier",component:f("/tev2-specifications/docs/terms/identifier","2a6"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/identify",component:f("/tev2-specifications/docs/terms/identify","174"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/ingestion",component:f("/tev2-specifications/docs/terms/ingestion","4ba"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/ingestion-profile",component:f("/tev2-specifications/docs/terms/ingestion-profile","545"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/interpreter",component:f("/tev2-specifications/docs/terms/interpreter","24f"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/knowledge-artifact",component:f("/tev2-specifications/docs/terms/knowledge-artifact","0c8"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/mental-model",component:f("/tev2-specifications/docs/terms/mental-model","45b"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/moustache-variable",component:f("/tev2-specifications/docs/terms/moustache-variable","6f4"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/mrd",component:f("/tev2-specifications/docs/terms/mrd","98a"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/mrdt",component:f("/tev2-specifications/docs/terms/mrdt","34b"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/mrg",component:f("/tev2-specifications/docs/terms/mrg","a43"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/mrg-entry",component:f("/tev2-specifications/docs/terms/mrg-entry","055"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/mrg-importer",component:f("/tev2-specifications/docs/terms/mrg-importer","e1c"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/mrgt",component:f("/tev2-specifications/docs/terms/mrgt","fca"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/patterns/pattern-terminology",component:f("/tev2-specifications/docs/terms/patterns/pattern-terminology","fdf"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/property",component:f("/tev2-specifications/docs/terms/property","c70"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/reader",component:f("/tev2-specifications/docs/terms/reader","7af"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/relation",component:f("/tev2-specifications/docs/terms/relation","6b8"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/renderable-ref",component:f("/tev2-specifications/docs/terms/renderable-ref","374"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/saf",component:f("/tev2-specifications/docs/terms/saf","7ef"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/scope",component:f("/tev2-specifications/docs/terms/scope","fe5"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/scoped-term",component:f("/tev2-specifications/docs/terms/scoped-term","c51"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/scopedir",component:f("/tev2-specifications/docs/terms/scopedir","bd3"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/scopetag",component:f("/tev2-specifications/docs/terms/scopetag","ea4"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/semantic-unit",component:f("/tev2-specifications/docs/terms/semantic-unit","569"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/semantics",component:f("/tev2-specifications/docs/terms/semantics","ac3"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/synonym",component:f("/tev2-specifications/docs/terms/synonym","c5e"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/tag",component:f("/tev2-specifications/docs/terms/tag","1ef"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/term",component:f("/tev2-specifications/docs/terms/term","17c"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/term-identifier",component:f("/tev2-specifications/docs/terms/term-identifier","c82"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/term-ref",component:f("/tev2-specifications/docs/terms/term-ref","6c0"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/term-selection-criteria",component:f("/tev2-specifications/docs/terms/term-selection-criteria","0f0"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/term-syntax",component:f("/tev2-specifications/docs/terms/term-syntax","a25"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/term-type",component:f("/tev2-specifications/docs/terms/term-type","d4d"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/terminological-artifact",component:f("/tev2-specifications/docs/terms/terminological-artifact","5e5"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/terminology",component:f("/tev2-specifications/docs/terms/terminology","110"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/terminology-process",component:f("/tev2-specifications/docs/terms/terminology-process","f8b"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/terminology-under-construction",component:f("/tev2-specifications/docs/terms/terminology-under-construction","32c"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/terms-community",component:f("/tev2-specifications/docs/terms/terms-community","f30"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/tev2",component:f("/tev2-specifications/docs/terms/tev2","def"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/tev2-tool",component:f("/tev2-specifications/docs/terms/tev2-tool","5c1"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/tev2-toolbox",component:f("/tev2-specifications/docs/terms/tev2-toolbox","b92"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/trrt",component:f("/tev2-specifications/docs/terms/trrt","94b"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/versiontag",component:f("/tev2-specifications/docs/terms/versiontag","f96"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/terms/vocabulary",component:f("/tev2-specifications/docs/terms/vocabulary","abc"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/tev2-glossary",component:f("/tev2-specifications/docs/tev2-glossary","ef0"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/tev2-overview",component:f("/tev2-specifications/docs/tev2-overview","2b6"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/tev2-spec-files",component:f("/tev2-specifications/docs/tev2-spec-files","42a"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/tev2-syntax",component:f("/tev2-specifications/docs/tev2-syntax","05c"),exact:!0,sidebar:"tev2SideBar"},{path:"/tev2-specifications/docs/tev2-toolbox",component:f("/tev2-specifications/docs/tev2-toolbox","cac"),exact:!0,sidebar:"tev2SideBar"}]},{path:"/tev2-specifications/",component:f("/tev2-specifications/","e9f"),exact:!0},{path:"*",component:f("*")}]},8934:function(e,t,n){"use strict";n.d(t,{_:function(){return i},t:function(){return o}});var r=n(7294),i=r.createContext(!1);function o(e){var t=e.children,n=(0,r.useState)(!1),o=n[0],a=n[1];return(0,r.useEffect)((function(){a(!0)}),[]),r.createElement(i.Provider,{value:o},t)}},9383:function(e,t,n){"use strict";var r=n(7294),i=n(3935),o=n(3727),a=n(405),s=n(412),c=[n(2497),n(3310),n(8320),n(2295)],l=n(723),u=n(6775),d=n(8790);function f(e){var t=e.children;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(5742),v=n(2263),h=n(4996),g=n(6668),b=n(1944),y=n(4711),w=n(9727),E=n(3320),S=n(197);function k(){var e=(0,v.Z)().i18n,t=e.defaultLocale,n=e.localeConfigs,i=(0,y.l)();return r.createElement(m.Z,null,Object.entries(n).map((function(e){var t=e[0],n=e[1].htmlLang;return r.createElement("link",{key:t,rel:"alternate",href:i.createUrl({locale:t,fullyQualified:!0}),hrefLang:n})})),r.createElement("link",{rel:"alternate",href:i.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){var t=e.permalink,n=(0,v.Z)().siteConfig.url,i=function(){var e=(0,v.Z)().siteConfig.url,t=(0,u.TH)().pathname;return e+(0,h.Z)(t)}(),o=t?""+n+t:i;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function T(){var e=(0,v.Z)().i18n.currentLocale,t=(0,g.L)(),n=t.metadata,i=t.image;return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),i&&r.createElement(b.d,{image:i}),r.createElement(x,null),r.createElement(k,null),r.createElement(S.Z,{tag:E.HX,locale:e}),r.createElement(m.Z,null,n.map((function(e,t){return r.createElement("meta",(0,p.Z)({key:t},e))}))))}var _=new Map;function C(e){if(_.has(e.pathname))return Object.assign({},e,{pathname:_.get(e.pathname)});if((0,d.f)(l.Z,e.pathname).some((function(e){return!0===e.route.exact})))return _.set(e.pathname,e.pathname),e;var t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return _.set(e.pathname,t),Object.assign({},e,{pathname:t})}var A=n(8934),O=n(8940),P=n(4578);function N(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = '+e+" "+("/"===e?" (default value)":"")+'

\n

We suggest trying baseUrl =

\n\n'}(e)).replace(/0)&&(F.current.unobserve(e),F.current.disconnect(),null!=L&&window.docusaurus.prefetch(L))}))})),F.current.observe(e))},to:L},v&&{isActive:y,activeClassName:b}))}var v=o.forwardRef(m)},1875:function(e,t){"use strict";t.Z=function(){return null}},5999:function(e,t,n){"use strict";n.d(t,{Z:function(){return c},I:function(){return s}});var r=n(7294);function i(e,t){var n=e.split(/(\{\w+\})/).map((function(e,n){if(n%2==1){var r=null==t?void 0:t[e.slice(1,-1)];if(void 0!==r)return r}return e}));return n.some((function(e){return(0,r.isValidElement)(e)}))?n.map((function(e,t){return(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e})).filter((function(e){return""!==e})):n.join("")}var o=n(7529);function a(e){var t,n,r=e.id,i=e.message;if(void 0===r&&void 0===i)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=o[null!=r?r:i])?n:i)?t:r}function s(e,t){return i(a({message:e.message,id:e.id}),t)}function c(e){var t=e.children,n=e.id,o=e.values;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");var s=a({message:t,id:n});return r.createElement(r.Fragment,null,i(s,o))}},9935:function(e,t,n){"use strict";n.d(t,{m:function(){return r}});var r="default"},3919:function(e,t,n){"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function i(e){return void 0!==e&&!r(e)}n.d(t,{Z:function(){return i},b:function(){return r}})},4996:function(e,t,n){"use strict";n.d(t,{C:function(){return a},Z:function(){return s}});var r=n(7294),i=n(2263),o=n(3919);function a(){var e=(0,i.Z)().siteConfig,t=e.baseUrl,n=e.url,a=(0,r.useCallback)((function(e,r){return function(e,t,n,r){var i=void 0===r?{}:r,a=i.forcePrependBaseUrl,s=void 0!==a&&a,c=i.absolute,l=void 0!==c&&c;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(s)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;var u=n.startsWith(t)?n:t+n.replace(/^\//,"");return l?e+u:u}(n,t,e,r)}),[n,t]);return{withBaseUrl:a}}function s(e,t){return void 0===t&&(t={}),(0,a().withBaseUrl)(e,t)}},2263:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),i=n(8940);function o(){return(0,r.useContext)(i._)}},2389:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),i=n(8934);function o(){return(0,r.useContext)(i._)}},9670:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});function r(e){var t={};return function e(n,r){Object.entries(n).forEach((function(n){var i,o=n[0],a=n[1],s=r?r+"."+o:o;"object"==typeof(i=a)&&i&&Object.keys(i).length>0?e(a,s):t[s]=a}))}(e),t}},226:function(e,t,n){"use strict";n.d(t,{_:function(){return i},z:function(){return o}});var r=n(7294),i=r.createContext(null);function o(e){var t=e.children,n=e.value,o=r.useContext(i),a=(0,r.useMemo)((function(){return function(e){var t=e.parent,n=e.value;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}var r=Object.assign({},t.data,null==n?void 0:n.data);return{plugin:t.plugin,data:r}}({parent:o,value:n})}),[o,n]);return r.createElement(i.Provider,{value:a},t)}},143:function(e,t,n){"use strict";n.d(t,{Iw:function(){return v},gA:function(){return f},_r:function(){return u},Jo:function(){return h},zh:function(){return d},yW:function(){return m},gB:function(){return p}});var r=n(6775),i=n(2263),o=n(9935);function a(e,t){void 0===t&&(t={});var n=(0,i.Z)().globalData[e];if(!n&&t.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}var s=function(e){return e.versions.find((function(e){return e.isLast}))};function c(e,t){var n,i,o=function(e,t){var n=s(e);return[].concat(e.versions.filter((function(e){return e!==n})),[n]).find((function(e){return!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})}))}(e,t),a=null==o?void 0:o.docs.find((function(e){return!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})}));return{activeVersion:o,activeDoc:a,alternateDocVersions:a?(n=a.id,i={},e.versions.forEach((function(e){e.docs.forEach((function(t){t.id===n&&(i[e.name]=t)}))})),i):{}}}var l={},u=function(){var e;return null!=(e=a("docusaurus-plugin-content-docs"))?e:l},d=function(e){return function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});var r=a(e),i=null==r?void 0:r[t];if(!i&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return i}("docusaurus-plugin-content-docs",e,{failfast:!0})};function f(e){return void 0===e&&(e={}),function(e,t,n){void 0===n&&(n={});var i=Object.entries(e).sort((function(e,t){return t[1].path.localeCompare(e[1].path)})).find((function(e){var n=e[1];return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=i?{pluginId:i[0],pluginData:i[1]}:void 0;if(!o&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((function(e){return e.path})).join(", "));return o}(u(),(0,r.TH)().pathname,e)}function p(e){return d(e).versions}function m(e){var t=d(e);return s(t)}function v(e){return c(d(e),(0,r.TH)().pathname)}function h(e){return function(e,t){var n=s(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(d(e),(0,r.TH)().pathname)}},8320:function(e,t,n){"use strict";n.r(t);var r=n(4865),i=n.n(r);i().configure({showSpinner:!1});var o={onRouteUpdate:function(e){var t=e.location,n=e.previousLocation;if(n&&t.pathname!==n.pathname){var r=window.setTimeout((function(){i().start()}),200);return function(){return window.clearTimeout(r)}}},onRouteDidUpdate:function(){i().done()}};t.default=o},3310:function(e,t,n){"use strict";n.r(t);var r,i,o=n(7410),a=n(6809);r=o.Z,i=a.default.themeConfig.prism.additionalLanguages,globalThis.Prism=r,i.forEach((function(e){n(1357)("./prism-"+e)})),delete globalThis.Prism},9471:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),i="iconExternalLink_nPIU";function o(e){var t=e.width,n=void 0===t?13.5:t,o=e.height,a=void 0===o?13.5:o;return r.createElement("svg",{width:n,height:a,"aria-hidden":"true",viewBox:"0 0 24 24",className:i},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},7961:function(e,t,n){"use strict";n.d(t,{Z:function(){return Rt}});var r=n(7294),i=n(6010),o=n(4763),a=n(1944),s=n(7462),c=n(6775),l=n(5999),u=n(5936),d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){var e=(0,r.useRef)(null),t=(0,c.k6)().action,n=(0,r.useCallback)((function(e){e.preventDefault();var t,n=null!=(t=document.querySelector("main:first-of-type"))?t:document.getElementById(d);n&&f(n)}),[]);return(0,u.S)((function(n){var r=n.location;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}var m=(0,l.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function v(e){var t,n=null!=(t=e.children)?t:m,i=p(),o=i.containerRef,a=i.onClick;return r.createElement("div",{ref:o,role:"region","aria-label":m},r.createElement("a",(0,s.Z)({},e,{href:"#"+d,onClick:a}),n))}var h=n(5281),g=n(9727),b="skipToContent_fXgn";function y(){return r.createElement(v,{className:b})}var w=n(6668),E=n(9689),S=n(3366),k=["width","height","color","strokeWidth","className"];function x(e){var t=e.width,n=void 0===t?21:t,i=e.height,o=void 0===i?21:i,a=e.color,c=void 0===a?"currentColor":a,l=e.strokeWidth,u=void 0===l?1.2:l,d=(e.className,(0,S.Z)(e,k));return r.createElement("svg",(0,s.Z)({viewBox:"0 0 15 15",width:n,height:o},d),r.createElement("g",{stroke:c,strokeWidth:u},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}var T="closeButton_CVFx";function _(e){return r.createElement("button",(0,s.Z)({type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,i.Z)("clean-btn close",T,e.className)}),r.createElement(x,{width:14,height:14,strokeWidth:3.1}))}var C="content_knG7";function A(e){var t=(0,w.L)().announcementBar.content;return r.createElement("div",(0,s.Z)({},e,{className:(0,i.Z)(C,e.className),dangerouslySetInnerHTML:{__html:t}}))}var O="announcementBar_mb4j",P="announcementBarPlaceholder_vyr4",N="announcementBarClose_gvF7",I="announcementBarContent_xLdY";function R(){var e=(0,w.L)().announcementBar,t=(0,E.nT)(),n=t.isActive,i=t.close;if(!n)return null;var o=e.backgroundColor,a=e.textColor,s=e.isCloseable;return r.createElement("div",{className:O,style:{backgroundColor:o,color:a},role:"banner"},s&&r.createElement("div",{className:P}),r.createElement(A,{className:I}),s&&r.createElement(_,{onClick:i,className:N}))}var L=n(3163),B=n(2466);var D=n(9688),M=n(3102),F=r.createContext(null);function U(e){var t,n,i,o,a,s,c,l=e.children,u=(t=(0,L.e)(),n=(0,M.HY)(),i=(0,r.useState)(!1),o=i[0],a=i[1],s=null!==n.component,c=(0,D.D9)(s),(0,r.useEffect)((function(){s&&!c&&a(!0)}),[s,c]),(0,r.useEffect)((function(){s?t.shown||a(!0):a(!1)}),[t.shown,s]),(0,r.useMemo)((function(){return[o,a]}),[o]));return r.createElement(F.Provider,{value:u},l)}function z(e){if(e.component){var t=e.component;return r.createElement(t,e.props)}}function j(){var e=(0,r.useContext)(F);if(!e)throw new D.i6("NavbarSecondaryMenuDisplayProvider");var t=e[0],n=e[1],i=(0,r.useCallback)((function(){return n(!1)}),[n]),o=(0,M.HY)();return(0,r.useMemo)((function(){return{shown:t,hide:i,content:z(o)}}),[i,o,t])}function $(e){var t=e.header,n=e.primaryMenu,o=e.secondaryMenu,a=j().shown;return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,i.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var Z=n(2949),H=n(2389);function G(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function V(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}var W={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){var t=e.className,n=e.buttonClassName,o=e.value,a=e.onChange,s=(0,H.Z)(),c=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,i.Z)(W.toggle,t)},r.createElement("button",{className:(0,i.Z)("clean-btn",W.toggleButton,!s&&W.toggleButtonDisabled,n),type:"button",onClick:function(){return a("dark"===o?"light":"dark")},disabled:!s,title:c,"aria-label":c,"aria-live":"polite"},r.createElement(G,{className:(0,i.Z)(W.toggleIcon,W.lightToggleIcon)}),r.createElement(V,{className:(0,i.Z)(W.toggleIcon,W.darkToggleIcon)})))}var Y=r.memo(q),K="darkNavbarColorModeToggle_X3D1";function X(e){var t=e.className,n=(0,w.L)().navbar.style,i=(0,w.L)().colorMode.disableSwitch,o=(0,Z.I)(),a=o.colorMode,s=o.setColorMode;return i?null:r.createElement(Y,{className:t,buttonClassName:"dark"===n?K:void 0,value:a,onChange:s})}var Q=n(1327);function J(){return r.createElement(Q.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function ee(){var e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,l.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:function(){return e.toggle()}},r.createElement(x,{color:"var(--ifm-color-emphasis-600)"}))}function te(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(J,null),r.createElement(X,{className:"margin-right--md"}),r.createElement(ee,null))}var ne=n(9960),re=n(4996),ie=n(3919);function oe(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var ae=n(9471),se=["activeBasePath","activeBaseRegex","to","href","label","html","isDropdownLink","prependBaseUrlToHref"];function ce(e){var t=e.activeBasePath,n=e.activeBaseRegex,i=e.to,o=e.href,a=e.label,c=e.html,l=e.isDropdownLink,u=e.prependBaseUrlToHref,d=(0,S.Z)(e,se),f=(0,re.Z)(i),p=(0,re.Z)(t),m=(0,re.Z)(o,{forcePrependBaseUrl:!0}),v=a&&o&&!(0,ie.Z)(o),h=c?{dangerouslySetInnerHTML:{__html:c}}:{children:r.createElement(r.Fragment,null,a,v&&r.createElement(ae.Z,l&&{width:12,height:12}))};return o?r.createElement(ne.Z,(0,s.Z)({href:u?m:o},d,h)):r.createElement(ne.Z,(0,s.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:function(e,t){return n?oe(n,t.pathname):t.pathname.startsWith(p)}},d,h))}var le=["className","isDropdownItem"],ue=["className","isDropdownItem"],de=["mobile","position"];function fe(e){var t=e.className,n=e.isDropdownItem,o=void 0!==n&&n,a=(0,S.Z)(e,le),c=r.createElement(ce,(0,s.Z)({className:(0,i.Z)(o?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:o},a));return o?r.createElement("li",null,c):c}function pe(e){var t=e.className,n=(e.isDropdownItem,(0,S.Z)(e,ue));return r.createElement("li",{className:"menu__list-item"},r.createElement(ce,(0,s.Z)({className:(0,i.Z)("menu__link",t)},n)))}function me(e){var t,n=e.mobile,i=void 0!==n&&n,o=(e.position,(0,S.Z)(e,de)),a=i?pe:fe;return r.createElement(a,(0,s.Z)({},o,{activeClassName:null!=(t=o.activeClassName)?t:i?"menu__link--active":"navbar__link--active"}))}var ve=n(6043),he=n(8596),ge=n(2263);var be=["items","position","className","onClick"],ye=["items","className","position","onClick"],we=["mobile"];function Ee(e,t){return e.some((function(e){return function(e,t){return!!(0,he.Mg)(e.to,t)||!!oe(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)}))}function Se(e){var t,n=e.items,o=e.position,a=e.className,c=(e.onClick,(0,S.Z)(e,be)),l=(0,r.useRef)(null),u=(0,r.useState)(!1),d=u[0],f=u[1];return(0,r.useEffect)((function(){var e=function(e){l.current&&!l.current.contains(e.target)&&f(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),r.createElement("div",{ref:l,className:(0,i.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===o,"dropdown--show":d})},r.createElement(ce,(0,s.Z)({"aria-haspopup":"true","aria-expanded":d,role:"button",href:c.to?void 0:"#",className:(0,i.Z)("navbar__link",a)},c,{onClick:c.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),f(!d))}}),null!=(t=c.children)?t:c.label),r.createElement("ul",{className:"dropdown__menu"},n.map((function(e,t){return r.createElement(Ze,(0,s.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))}))))}function ke(e){var t,n,o=e.items,a=e.className,l=(e.position,e.onClick),u=(0,S.Z)(e,ye),d=(n=(0,ge.Z)().siteConfig.baseUrl,(0,c.TH)().pathname.replace(n,"/")),f=Ee(o,d),p=(0,ve.u)({initialState:function(){return!f}}),m=p.collapsed,v=p.toggleCollapsed,h=p.setCollapsed;return(0,r.useEffect)((function(){f&&h(!f)}),[d,f,h]),r.createElement("li",{className:(0,i.Z)("menu__list-item",{"menu__list-item--collapsed":m})},r.createElement(ce,(0,s.Z)({role:"button",className:(0,i.Z)("menu__link menu__link--sublist menu__link--sublist-caret",a)},u,{onClick:function(e){e.preventDefault(),v()}}),null!=(t=u.children)?t:u.label),r.createElement(ve.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:m},o.map((function(e,t){return r.createElement(Ze,(0,s.Z)({mobile:!0,isDropdownItem:!0,onClick:l,activeClassName:"menu__link--active"},e,{key:t}))}))))}function xe(e){var t=e.mobile,n=void 0!==t&&t,i=(0,S.Z)(e,we),o=n?ke:Se;return r.createElement(o,i)}var Te=n(4711),_e=["width","height"];function Ce(e){var t=e.width,n=void 0===t?20:t,i=e.height,o=void 0===i?20:i,a=(0,S.Z)(e,_e);return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:n,height:o,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}var Ae="iconLanguage_nlXk",Oe=["mobile","dropdownItemsBefore","dropdownItemsAfter"];var Pe=n(1875),Ne="searchBox_ZlJk";function Ie(e){var t=e.children,n=e.className;return r.createElement("div",{className:(0,i.Z)(n,Ne)},t)}var Re=n(143),Le=n(3791),Be=["docId","label","docsPluginId"];var De=["sidebarId","label","docsPluginId"];var Me=["label","to","docsPluginId"];var Fe=n(373),Ue=["mobile","docsPluginId","dropdownActiveClassDisabled","dropdownItemsBefore","dropdownItemsAfter"],ze=function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))};var je={default:me,localeDropdown:function(e){var t=e.mobile,n=e.dropdownItemsBefore,i=e.dropdownItemsAfter,o=(0,S.Z)(e,Oe),a=(0,ge.Z)().i18n,u=a.currentLocale,d=a.locales,f=a.localeConfigs,p=(0,Te.l)(),m=(0,c.TH)(),v=m.search,h=m.hash,g=d.map((function(e){var n=""+("pathname://"+p.createUrl({locale:e,fullyQualified:!1}))+v+h;return{label:f[e].label,lang:f[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===u?t?"menu__link--active":"dropdown__link--active":""}})),b=[].concat(n,g,i),y=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):f[u].label;return r.createElement(xe,(0,s.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(Ce,{className:Ae}),y),items:b}))},search:function(e){var t=e.mobile,n=e.className;return t?null:r.createElement(Ie,{className:n},r.createElement(Pe.Z,null))},dropdown:xe,html:function(e){var t=e.value,n=e.className,o=e.mobile,a=void 0!==o&&o,s=e.isDropdownItem,c=void 0!==s&&s,l=c?"li":"div";return r.createElement(l,{className:(0,i.Z)({navbar__item:!a&&!c,"menu__list-item":a},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){var t=e.docId,n=e.label,i=e.docsPluginId,o=(0,S.Z)(e,Be),a=(0,Re.Iw)(i).activeDoc,c=(0,Le.vY)(t,i);return null===c?null:r.createElement(me,(0,s.Z)({exact:!0},o,{isActive:function(){return(null==a?void 0:a.path)===c.path||!(null==a||!a.sidebar)&&a.sidebar===c.sidebar},label:null!=n?n:c.id,to:c.path}))},docSidebar:function(e){var t=e.sidebarId,n=e.label,i=e.docsPluginId,o=(0,S.Z)(e,De),a=(0,Re.Iw)(i).activeDoc,c=(0,Le.oz)(t,i).link;if(!c)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+t+"\" doesn't have anything to be linked to.");return r.createElement(me,(0,s.Z)({exact:!0},o,{isActive:function(){return(null==a?void 0:a.sidebar)===t},label:null!=n?n:c.label,to:c.path}))},docsVersion:function(e){var t=e.label,n=e.to,i=e.docsPluginId,o=(0,S.Z)(e,Me),a=(0,Le.lO)(i)[0],c=null!=t?t:a.label,l=null!=n?n:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(a).path;return r.createElement(me,(0,s.Z)({},o,{label:c,to:l}))},docsVersionDropdown:function(e){var t=e.mobile,n=e.docsPluginId,i=e.dropdownActiveClassDisabled,o=e.dropdownItemsBefore,a=e.dropdownItemsAfter,u=(0,S.Z)(e,Ue),d=(0,c.TH)(),f=d.search,p=d.hash,m=(0,Re.Iw)(n),v=(0,Re.gB)(n),h=(0,Fe.J)(n).savePreferredVersionName,g=v.map((function(e){var t,n=null!=(t=m.alternateDocVersions[e.name])?t:ze(e);return{label:e.label,to:""+n.path+f+p,isActive:function(){return e===m.activeVersion},onClick:function(){return h(e.name)}}})),b=[].concat(o,g,a),y=(0,Le.lO)(n)[0],w=t&&b.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):y.label,E=t&&b.length>1?void 0:ze(y).path;return b.length<=1?r.createElement(me,(0,s.Z)({},u,{mobile:t,label:w,to:E,isActive:i?function(){return!1}:void 0})):r.createElement(xe,(0,s.Z)({},u,{mobile:t,label:w,to:E,items:b,isActive:i?function(){return!1}:void 0}))}},$e=["type"];function Ze(e){var t=e.type,n=(0,S.Z)(e,$e),i=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=je[i];if(!o)throw new Error('No NavbarItem component found for type "'+t+'".');return r.createElement(o,n)}function He(){var e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map((function(t,n){return r.createElement(Ze,(0,s.Z)({mobile:!0},t,{onClick:function(){return e.toggle()},key:n}))})))}function Ge(e){return r.createElement("button",(0,s.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(l.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ve(){var e=0===(0,w.L)().navbar.items.length,t=j();return r.createElement(r.Fragment,null,!e&&r.createElement(Ge,{onClick:function(){return t.hide()}}),t.content)}function We(){var e,t=(0,L.e)();return void 0===(e=t.shown)&&(e=!0),(0,r.useEffect)((function(){return document.body.style.overflow=e?"hidden":"visible",function(){document.body.style.overflow="visible"}}),[e]),t.shouldRender?r.createElement($,{header:r.createElement(te,null),primaryMenu:r.createElement(He,null),secondaryMenu:r.createElement(Ve,null)}):null}var qe="navbarHideable_m1mJ",Ye="navbarHidden_jGov";function Ke(e){return r.createElement("div",(0,s.Z)({role:"presentation"},e,{className:(0,i.Z)("navbar-sidebar__backdrop",e.className)}))}function Xe(e){var t=e.children,n=(0,w.L)().navbar,o=n.hideOnScroll,a=n.style,s=(0,L.e)(),c=function(e){var t=(0,r.useState)(e),n=t[0],i=t[1],o=(0,r.useRef)(!1),a=(0,r.useRef)(0),s=(0,r.useCallback)((function(e){null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,B.RF)((function(t,n){var r=t.scrollY;if(e)if(r=s?i(!1):r+l0&&r.createElement(wt,{links:n}),logo:i&&r.createElement(xt,{logo:i}),copyright:t&&r.createElement(Tt,{copyright:t})})}var At=r.memo(Ct),Ot=(0,D.Qc)([Z.S,E.pl,B.OC,Fe.L5,a.VC,function(e){var t=e.children;return r.createElement(M.n2,null,r.createElement(L.M,null,r.createElement(U,null,t)))}]);function Pt(e){var t=e.children;return r.createElement(Ot,null,t)}function Nt(e){var t=e.error,n=e.tryAgain;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(tt,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(nt,{error:t})))))}var It="mainWrapper_z2l0";function Rt(e){var t=e.children,n=e.noFooter,s=e.wrapperClassName,c=e.title,l=e.description;return(0,g.t)(),r.createElement(Pt,null,r.createElement(a.d,{title:c,description:l}),r.createElement(y,null),r.createElement(R,null),r.createElement(dt,null),r.createElement("div",{id:d,className:(0,i.Z)(h.k.wrapper.main,It,s)},r.createElement(o.Z,{fallback:function(e){return r.createElement(Nt,e)}},t)),!n&&r.createElement(At,null))}},1327:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(7462),i=n(3366),o=n(7294),a=n(9960),s=n(4996),c=n(2263),l=n(6668),u=n(941),d=["imageClassName","titleClassName"];function f(e){var t=e.logo,n=e.alt,r=e.imageClassName,i={light:(0,s.Z)(t.src),dark:(0,s.Z)(t.srcDark||t.src)},a=o.createElement(u.Z,{className:t.className,sources:i,height:t.height,width:t.width,alt:n,style:t.style});return r?o.createElement("div",{className:r},a):a}function p(e){var t,n=(0,c.Z)().siteConfig.title,u=(0,l.L)().navbar,p=u.title,m=u.logo,v=e.imageClassName,h=e.titleClassName,g=(0,i.Z)(e,d),b=(0,s.Z)((null==m?void 0:m.href)||"/"),y=p?"":n,w=null!=(t=null==m?void 0:m.alt)?t:y;return o.createElement(a.Z,(0,r.Z)({to:b},g,(null==m?void 0:m.target)&&{target:m.target}),m&&o.createElement(f,{logo:m,alt:w,imageClassName:v}),null!=p&&o.createElement("b",{className:h},p))}},197:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),i=n(5742);function o(e){var t=e.locale,n=e.version,o=e.tag,a=t;return r.createElement(i.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),a&&r.createElement("meta",{name:"docsearch:language",content:a}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},941:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(7462),i=n(3366),o=n(7294),a=n(6010),s=n(2389),c=n(2949),l={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"},u=["sources","className","alt"];function d(e){var t=(0,s.Z)(),n=(0,c.I)().colorMode,d=e.sources,f=e.className,p=e.alt,m=(0,i.Z)(e,u),v=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,v.map((function(e){return o.createElement("img",(0,r.Z)({key:e,src:d[e],alt:p,className:(0,a.Z)(l.themedImage,l["themedImage--"+e],f)},m))})))}},6043:function(e,t,n){"use strict";n.d(t,{u:function(){return u},z:function(){return b}});var r=n(7462),i=n(3366),o=n(7294),a=n(412),s=n(1442),c=["collapsed"],l=["lazy"];function u(e){var t=e.initialState,n=(0,o.useState)(null!=t&&t),r=n[0],i=n[1],a=(0,o.useCallback)((function(){i((function(e){return!e}))}),[]);return{collapsed:r,setCollapsed:i,toggleCollapsed:a}}var d={display:"none",overflow:"hidden",height:"0px"},f={display:"block",overflow:"visible",height:"auto"};function p(e,t){var n=t?d:f;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function m(e){var t=e.collapsibleRef,n=e.collapsed,r=e.animation,i=(0,o.useRef)(!1);(0,o.useEffect)((function(){var e,o=t.current;function a(){var e,t,n=o.scrollHeight,i=null!=(e=null==r?void 0:r.duration)?e:function(e){if((0,s.n)())return 1;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}(n);return{transition:"height "+i+"ms "+(null!=(t=null==r?void 0:r.easing)?t:"ease-in-out"),height:n+"px"}}function c(){var e=a();o.style.transition=e.transition,o.style.height=e.height}if(!i.current)return p(o,n),void(i.current=!0);return o.style.willChange="height",e=requestAnimationFrame((function(){n?(c(),requestAnimationFrame((function(){o.style.height=d.height,o.style.overflow=d.overflow}))):(o.style.display="block",requestAnimationFrame((function(){c()})))})),function(){return cancelAnimationFrame(e)}}),[t,n,r])}function v(e){if(!a.Z.canUseDOM)return e?d:f}function h(e){var t=e.as,n=void 0===t?"div":t,r=e.collapsed,i=e.children,a=e.animation,s=e.onCollapseTransitionEnd,c=e.className,l=e.disableSSRStyle,u=(0,o.useRef)(null);return m({collapsibleRef:u,collapsed:r,animation:a}),o.createElement(n,{ref:u,style:l?void 0:v(r),onTransitionEnd:function(e){"height"===e.propertyName&&(p(u.current,r),null==s||s(r))},className:c},i)}function g(e){var t=e.collapsed,n=(0,i.Z)(e,c),a=(0,o.useState)(!t),s=a[0],l=a[1],u=(0,o.useState)(t),d=u[0],f=u[1];return(0,o.useLayoutEffect)((function(){t||l(!0)}),[t]),(0,o.useLayoutEffect)((function(){s&&f(t)}),[s,t]),s?o.createElement(h,(0,r.Z)({},n,{collapsed:d})):null}function b(e){var t=e.lazy,n=(0,i.Z)(e,l),r=t?g:h;return o.createElement(r,n)}},9689:function(e,t,n){"use strict";n.d(t,{nT:function(){return m},pl:function(){return p}});var r=n(7294),i=n(2389),o=n(12),a=n(9688),s=n(6668),c=(0,o.WA)("docusaurus.announcement.dismiss"),l=(0,o.WA)("docusaurus.announcement.id"),u=function(){return"true"===c.get()},d=function(e){return c.set(String(e))},f=r.createContext(null);function p(e){var t=e.children,n=function(){var e=(0,s.L)().announcementBar,t=(0,i.Z)(),n=(0,r.useState)((function(){return!!t&&u()})),o=n[0],a=n[1];(0,r.useEffect)((function(){a(u())}),[]);var c=(0,r.useCallback)((function(){d(!0),a(!0)}),[]);return(0,r.useEffect)((function(){if(e){var t=e.id,n=l.get();"annoucement-bar"===n&&(n="announcement-bar");var r=t!==n;l.set(t),r&&d(!1),!r&&u()||a(!1)}}),[e]),(0,r.useMemo)((function(){return{isActive:!!e&&!o,close:c}}),[e,o,c])}();return r.createElement(f.Provider,{value:n},t)}function m(){var e=(0,r.useContext)(f);if(!e)throw new a.i6("AnnouncementBarProvider");return e}},2949:function(e,t,n){"use strict";n.d(t,{I:function(){return h},S:function(){return v}});var r=n(7294),i=n(412),o=n(9688),a=n(12),s=n(6668),c=r.createContext(void 0),l="theme",u=(0,a.WA)(l),d="light",f="dark",p=function(e){return e===f?f:d};function m(){var e=(0,s.L)().colorMode,t=e.defaultMode,n=e.disableSwitch,o=e.respectPrefersColorScheme,a=(0,r.useState)(function(e){return i.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e)}(t)),c=a[0],m=a[1];(0,r.useEffect)((function(){n&&u.del()}),[n]);var v=(0,r.useCallback)((function(e,n){void 0===n&&(n={});var r=n.persist,i=void 0===r||r;e?(m(e),i&&function(e){u.set(p(e))}(e)):(m(o?window.matchMedia("(prefers-color-scheme: dark)").matches?f:d:t),u.del())}),[o,t]);(0,r.useEffect)((function(){document.documentElement.setAttribute("data-theme",p(c))}),[c]),(0,r.useEffect)((function(){if(!n){var e=function(e){if(e.key===l){var t=u.get();null!==t&&v(p(t))}};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}}),[n,v]);var h=(0,r.useRef)(!1);return(0,r.useEffect)((function(){if(!n||o){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=function(){window.matchMedia("print").matches||h.current?h.current=window.matchMedia("print").matches:v(null)};return e.addListener(t),function(){return e.removeListener(t)}}}),[v,n,o]),(0,r.useMemo)((function(){return{colorMode:c,setColorMode:v,get isDarkTheme(){return c===f},setLightTheme:function(){v(d)},setDarkTheme:function(){v(f)}}}),[c,v])}function v(e){var t=e.children,n=m();return r.createElement(c.Provider,{value:n},t)}function h(){var e=(0,r.useContext)(c);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:function(e,t,n){"use strict";n.d(t,{J:function(){return y},L5:function(){return g}});var r=n(7294),i=n(143),o=n(9935),a=n(6668),s=n(3791),c=n(9688),l=n(12),u=function(e){return"docs-preferred-version-"+e},d=function(e,t,n){(0,l.WA)(u(e),{persistence:t}).set(n)},f=function(e,t){return(0,l.WA)(u(e),{persistence:t}).get()},p=function(e,t){(0,l.WA)(u(e),{persistence:t}).del()};var m=r.createContext(null);function v(){var e=(0,i._r)(),t=(0,a.L)().docs.versionPersistence,n=(0,r.useMemo)((function(){return Object.keys(e)}),[e]),o=(0,r.useState)((function(){return function(e){return Object.fromEntries(e.map((function(e){return[e,{preferredVersionName:null}]})))}(n)})),s=o[0],c=o[1];return(0,r.useEffect)((function(){c(function(e){var t=e.pluginIds,n=e.versionPersistence,r=e.allDocsData;return Object.fromEntries(t.map((function(e){return[e,(t=e,i=f(t,n),r[t].versions.some((function(e){return e.name===i}))?{preferredVersionName:i}:(p(t,n),{preferredVersionName:null}))];var t,i})))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]),[s,(0,r.useMemo)((function(){return{savePreferredVersion:function(e,n){d(e,t,n),c((function(t){var r;return Object.assign({},t,((r={})[e]={preferredVersionName:n},r))}))}}}),[t])]}function h(e){var t=e.children,n=v();return r.createElement(m.Provider,{value:n},t)}function g(e){var t=e.children;return s.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){var e=(0,r.useContext)(m);if(!e)throw new c.i6("DocsPreferredVersionContextProvider");return e}function y(e){var t;void 0===e&&(e=o.m);var n=(0,i.zh)(e),a=b(),s=a[0],c=a[1],l=s[e].preferredVersionName;return{preferredVersion:null!=(t=n.versions.find((function(e){return e.name===l})))?t:null,savePreferredVersionName:(0,r.useCallback)((function(t){c.savePreferredVersion(e,t)}),[c,e])}}},1116:function(e,t,n){"use strict";n.d(t,{V:function(){return c},b:function(){return s}});var r=n(7294),i=n(9688),o=Symbol("EmptyContext"),a=r.createContext(o);function s(e){var t=e.children,n=e.name,i=e.items,o=(0,r.useMemo)((function(){return n&&i?{name:n,items:i}:null}),[n,i]);return r.createElement(a.Provider,{value:o},t)}function c(){var e=(0,r.useContext)(a);if(e===o)throw new i.i6("DocsSidebarProvider");return e}},3163:function(e,t,n){"use strict";n.d(t,{M:function(){return d},e:function(){return f}});var r=n(7294),i=n(3102),o=n(7524),a=n(1980),s=n(6668),c=n(9688),l=r.createContext(void 0);function u(){var e,t=(e=(0,i.HY)(),0===(0,s.L)().navbar.items.length&&!e.component),n=(0,o.i)(),c=!t&&"mobile"===n,l=(0,r.useState)(!1),u=l[0],d=l[1];(0,a.Rb)((function(){if(u)return d(!1),!1}));var f=(0,r.useCallback)((function(){d((function(e){return!e}))}),[]);return(0,r.useEffect)((function(){"desktop"===n&&d(!1)}),[n]),(0,r.useMemo)((function(){return{disabled:t,shouldRender:c,toggle:f,shown:u}}),[t,c,f,u])}function d(e){var t=e.children,n=u();return r.createElement(l.Provider,{value:n},t)}function f(){var e=r.useContext(l);if(void 0===e)throw new c.i6("NavbarMobileSidebarProvider");return e}},3102:function(e,t,n){"use strict";n.d(t,{HY:function(){return s},Zo:function(){return c},n2:function(){return a}});var r=n(7294),i=n(9688),o=r.createContext(null);function a(e){var t=e.children,n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function s(){var e=(0,r.useContext)(o);if(!e)throw new i.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){var t=e.component,n=e.props,a=(0,r.useContext)(o);if(!a)throw new i.i6("NavbarSecondaryMenuContentProvider");var s=a[1],c=(0,i.Ql)(n);return(0,r.useEffect)((function(){s({component:t,props:c})}),[s,t,c]),(0,r.useEffect)((function(){return function(){return s({component:null,props:null})}}),[s]),null}},9727:function(e,t,n){"use strict";n.d(t,{h:function(){return i},t:function(){return o}});var r=n(7294),i="navigation-with-keyboard";function o(){(0,r.useEffect)((function(){function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(i),"mousedown"===e.type&&document.body.classList.remove(i)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),function(){document.body.classList.remove(i),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:function(e,t,n){"use strict";n.d(t,{i:function(){return l}});var r=n(7294),i=n(412),o="desktop",a="mobile",s="ssr";function c(){return i.Z.canUseDOM?window.innerWidth>996?o:a:s}function l(){var e=(0,r.useState)((function(){return c()})),t=e[0],n=e[1];return(0,r.useEffect)((function(){function e(){n(c())}return window.addEventListener("resize",e),function(){window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),t}},5281:function(e,t,n){"use strict";n.d(t,{k:function(){return r}});var r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:function(e){return"theme-admonition-"+e}},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:function(e){return"theme-doc-sidebar-item-category-level-"+e},docSidebarItemLinkLevel:function(e){return"theme-doc-sidebar-item-link-level-"+e}},blog:{}}},1442:function(e,t,n){"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:function(){return r}})},3791:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Wl:function(){return m},_F:function(){return h},cE:function(){return p},hI:function(){return S},lO:function(){return y},vY:function(){return E},oz:function(){return w},s1:function(){return b}});var o=n(7294),a=n(6775),s=n(8790),c=n(143),l=n(373),u=n(1116),d=n(7392),f=n(8596),p=!!c._r;function m(e){if(e.href)return e.href;for(var t,n=i(e.items);!(t=n()).done;){var r=t.value;if("link"===r.type)return r.href;if("category"===r.type){var o=m(r);if(o)return o}}}var v=function(e,t){return void 0!==e&&(0,f.Mg)(e,t)};function h(e,t){return"link"===e.type?v(e.href,t):"category"===e.type&&(v(e.href,t)||function(e,t){return e.some((function(e){return h(e,t)}))}(e.items,t))}function g(e){var t=e.sidebarItems,n=e.pathname,r=e.onlyCategories,o=void 0!==r&&r,a=[];return function e(t){for(var r,s=i(t);!(r=s()).done;){var c=r.value;if("category"===c.type&&((0,f.Mg)(c.href,n)||e(c.items))||"link"===c.type&&(0,f.Mg)(c.href,n))return o&&"category"!==c.type||a.unshift(c),!0}return!1}(t),a}function b(){var e,t=(0,u.V)(),n=(0,a.TH)().pathname;return!1!==(null==(e=(0,c.gA)())?void 0:e.pluginData.breadcrumbs)&&t?g({sidebarItems:t.items,pathname:n}):null}function y(e){var t=(0,c.Iw)(e).activeVersion,n=(0,l.J)(e).preferredVersion,r=(0,c.yW)(e);return(0,o.useMemo)((function(){return(0,d.j)([t,n,r].filter(Boolean))}),[t,n,r])}function w(e,t){var n=y(t);return(0,o.useMemo)((function(){var t=n.flatMap((function(e){return e.sidebars?Object.entries(e.sidebars):[]})),r=t.find((function(t){return t[0]===e}));if(!r)throw new Error("Can't find any sidebar with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((function(e){return e.name})).join(", ")+'".\nAvailable sidebar ids are:\n- '+t.map((function(e){return e[0]})).join("\n- "));return r[1]}),[e,n])}function E(e,t){var n=y(t);return(0,o.useMemo)((function(){var t=n.flatMap((function(e){return e.docs})),r=t.find((function(t){return t.id===e}));if(!r){if(n.flatMap((function(e){return e.draftIds})).includes(e))return null;throw new Error("Couldn't find any doc with id \""+e+'" in version'+(n.length>1?"s":"")+' "'+n.map((function(e){return e.name})).join(", ")+'".\nAvailable doc ids are:\n- '+(0,d.j)(t.map((function(e){return e.id}))).join("\n- "))}return r}),[e,n])}function S(e){var t=e.route,n=e.versionMetadata,r=(0,a.TH)(),i=t.routes,o=i.find((function(e){return(0,a.LX)(r.pathname,e)}));if(!o)return null;var c=o.sidebar,l=c?n.docsSidebars[c]:void 0;return{docElement:(0,s.H)(i),sidebarName:c,sidebarItems:l}}},1980:function(e,t,n){"use strict";n.d(t,{Rb:function(){return s},_X:function(){return c}});var r=n(7294),i=n(6775),o=n(1688),a=n(9688);function s(e){!function(e){var t=(0,i.k6)(),n=(0,a.zX)(e);(0,r.useEffect)((function(){return t.block((function(e,t){return n(e,t)}))}),[t,n])}((function(t,n){if("POP"===n)return e(t,n)}))}function c(e){return t=function(t){return null===e?null:new URLSearchParams(t.location.search).get(e)},n=(0,i.k6)(),(0,o.useSyncExternalStore)(n.listen,(function(){return t(n)}),(function(){return t(n)}));var t,n}},7392:function(e,t,n){"use strict";function r(e,t){return void 0===t&&(t=function(e,t){return e===t}),e.filter((function(n,r){return e.findIndex((function(e){return t(e,n)}))!==r}))}function i(e){return Array.from(new Set(e))}n.d(t,{j:function(){return i},l:function(){return r}})},1944:function(e,t,n){"use strict";n.d(t,{FG:function(){return f},d:function(){return u},VC:function(){return p}});var r=n(7294),i=n(6010),o=n(5742),a=n(226);function s(){var e=r.useContext(a._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var c=n(4996),l=n(2263);function u(e){var t=e.title,n=e.description,i=e.keywords,a=e.image,s=e.children,u=function(e){var t=(0,l.Z)().siteConfig,n=t.title,r=t.titleDelimiter;return null!=e&&e.trim().length?e.trim()+" "+r+" "+n:n}(t),d=(0,c.C)().withBaseUrl,f=a?d(a,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),i&&r.createElement("meta",{name:"keywords",content:Array.isArray(i)?i.join(","):i}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),s)}var d=r.createContext(void 0);function f(e){var t=e.className,n=e.children,a=r.useContext(d),s=(0,i.Z)(a,t);return r.createElement(d.Provider,{value:s},r.createElement(o.Z,null,r.createElement("html",{className:s})),n)}function p(e){var t=e.children,n=s(),o="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,""),a="plugin-id-"+n.plugin.id;return r.createElement(f,{className:(0,i.Z)(o,a)},t)}},9688:function(e,t,n){"use strict";n.d(t,{i6:function(){return m},Qc:function(){return h},zX:function(){return f},D9:function(){return p},Ql:function(){return v}});var r=n(6528),i=n(4578);function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}var a=n(9611);function s(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function c(e,t,n){return c=s()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&(0,a.Z)(i,n.prototype),i},c.apply(null,arguments)}function l(e){var t="function"==typeof Map?new Map:void 0;return l=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return c(e,arguments,o(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,a.Z)(r,e)},l(e)}var u=n(7294),d=n(412).Z.canUseDOM?u.useLayoutEffect:u.useEffect;function f(e){var t=(0,u.useRef)(e);return d((function(){t.current=e}),[e]),(0,u.useCallback)((function(){return t.current.apply(t,arguments)}),[])}function p(e){var t=(0,u.useRef)();return d((function(){t.current=e})),t.current}var m=function(e){function t(t,n){var i,o,a,s,c;return(c=e.call(this)||this).name="ReactContextError",c.message="Hook "+(null!=(i=null==(o=c.stack)||null==(a=o.split("\n")[1])||null==(s=a.match((0,r.Z)(/at (?:\w+\.)?(\w+)/,{name:1})))?void 0:s.groups.name)?i:"")+" is called outside the <"+t+">. "+(null!=n?n:""),c}return(0,i.Z)(t,e),t}(l(Error));function v(e){var t=Object.entries(e);return t.sort((function(e,t){return e[0].localeCompare(t[0])})),(0,u.useMemo)((function(){return e}),t.flat())}function h(e){return function(t){var n=t.children;return u.createElement(u.Fragment,null,e.reduceRight((function(e,t){return u.createElement(t,null,e)}),n))}}},8596:function(e,t,n){"use strict";n.d(t,{Mg:function(){return a},Ns:function(){return s}});var r=n(7294),i=n(723),o=n(2263);function a(e,t){var n=function(e){var t;return null==(t=!e||e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function s(){var e=(0,o.Z)().siteConfig.baseUrl;return(0,r.useMemo)((function(){return function(e){var t=e.baseUrl;function n(e){return e.path===t&&!0===e.exact}function r(e){return e.path===t&&!e.exact}return function e(t){if(0!==t.length)return t.find(n)||e(t.filter(r).flatMap((function(e){var t;return null!=(t=e.routes)?t:[]})))}(e.routes)}({routes:i.Z,baseUrl:e})}),[e])}},2466:function(e,t,n){"use strict";n.d(t,{Ct:function(){return p},OC:function(){return c},RF:function(){return d},o5:function(){return f}});var r=n(7294),i=n(412),o=n(2389),a=n(9688);var s=r.createContext(void 0);function c(e){var t,n=e.children,i=(t=(0,r.useRef)(!0),(0,r.useMemo)((function(){return{scrollEventsEnabledRef:t,enableScrollEvents:function(){t.current=!0},disableScrollEvents:function(){t.current=!1}}}),[]));return r.createElement(s.Provider,{value:i},n)}function l(){var e=(0,r.useContext)(s);if(null==e)throw new a.i6("ScrollControllerProvider");return e}var u=function(){return i.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null};function d(e,t){void 0===t&&(t=[]);var n=l().scrollEventsEnabledRef,i=(0,r.useRef)(u()),o=(0,a.zX)(e);(0,r.useEffect)((function(){var e=function(){if(n.current){var e=u();o(e,i.current),i.current=e}},t={passive:!0};return e(),window.addEventListener("scroll",e,t),function(){return window.removeEventListener("scroll",e,t)}}),[o,n].concat(t))}function f(){var e,t,n,i=l(),o=(e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((function(t){e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((function(){var t=e.current,n=t.elem,r=t.top;if(!n)return{restored:!1};var i=n.getBoundingClientRect().top-r;return i&&window.scrollBy({left:0,top:i}),e.current={elem:null,top:0},{restored:0!==i}}),[]),(0,r.useMemo)((function(){return{save:t,restore:n}}),[n,t])),a=(0,r.useRef)(void 0),s=(0,r.useCallback)((function(e){o.save(e),i.disableScrollEvents(),a.current=function(){var e=o.restore().restored;if(a.current=void 0,e){window.addEventListener("scroll",(function e(){i.enableScrollEvents(),window.removeEventListener("scroll",e)}))}else i.enableScrollEvents()}}),[i,o]);return(0,r.useLayoutEffect)((function(){queueMicrotask((function(){return null==a.current?void 0:a.current()}))})),{blockElementScrollPositionUntilNextRender:s}}function p(){var e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:function(n){e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),function(){}}(n):function(e){var t=null,n=document.documentElement.scrollTop>e;return function r(){var i=document.documentElement.scrollTop;(n&&i>e||!n&&i=0;f--){var p=a[f];"."===p?o(a,f):".."===p?(o(a,f),d++):d&&(o(a,f),d--)}if(!l)for(;d--;d)a.unshift("..");!l||""===a[0]||a[0]&&i(a[0])||a.unshift("");var m=a.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m},s=n(2177);function c(e){return"/"===e.charAt(0)?e:"/"+e}function l(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,i=t||"/";return n&&"?"!==n&&(i+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(i+="#"===r.charAt(0)?r:"#"+r),i}function p(e,t,n,i){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",i=t.indexOf("#");-1!==i&&(r=t.substr(i),t=t.substr(0,i));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),i?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=a(o.pathname,i.pathname)):o.pathname=i.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,i){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,i):i(!0):i(!1!==o)}else i(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,i):n.push(i),d({action:r,location:i,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",i=p(e,t,v(),w.location);u.confirmTransitionTo(i,r,n,(function(e){e&&(w.entries[w.index]=i,d({action:r,location:i}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t
'};function i(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function a(e,t,n){var i;return(i="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,i}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=i(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),l=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),c(l,a(e,u,d)),1===e?(c(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){c(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*i(Math.random()*t,.1,.95)),t=i(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var i,a=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),l=document.querySelector(r.parent);return c(a,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(i=t.querySelector(r.spinnerSelector))&&p(i),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),c=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,i=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);i--;)if((r=e[i]+o)in n)return r;return t}function i(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=i(t),e.style[t]=n}return function(e,t){var n,r,i=arguments;if(2==i.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,i[1],i[2])}}();function l(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=f(e),r=n+t;l(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);l(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(i="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=i)},7418:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(i){return!1}}()?Object.assign:function(e,o){for(var a,s,c=i(e),l=1;l=d.reach);k+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof i)){var T,_=1;if(b){if(!(T=o(E,k,e,g))||T.index>=e.length)break;var C=T.index,A=T.index+T[0].length,O=k;for(O+=S.value.length;C>=O;)O+=(S=S.next).value.length;if(k=O-=S.value.length,S.value instanceof i)continue;for(var P=S;P!==t.tail&&(Od.reach&&(d.reach=L);var B=S.prev;if(I&&(B=c(t,B,I),k+=I.length),l(t,B,_),S=c(t,B,new i(f,h?r.tokenize(N,h):N,y,N)),R&&c(t,S,R),_>1){var D={cause:f+","+m,reach:L};a(e,t,n,S.prev,k,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function l(e,t,n){for(var r=t.next,i=0;i"+o.content+""},r}(),r=n;n.default=n,r.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},r.languages.markup.tag.inside["attr-value"].inside.entity=r.languages.markup.entity,r.languages.markup.doctype.inside["internal-subset"].inside=r.languages.markup,r.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(r.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:r.languages[t]},n.cdata=/^$/i;var i={"included-cdata":{pattern://i,inside:n}};i["language-"+t]={pattern:/[\s\S]+/,inside:r.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:i},r.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(r.languages.markup.tag,"addAttribute",{value:function(e,t){r.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:r.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),r.languages.html=r.languages.markup,r.languages.mathml=r.languages.markup,r.languages.svg=r.languages.markup,r.languages.xml=r.languages.extend("markup",{}),r.languages.ssml=r.languages.xml,r.languages.atom=r.languages.xml,r.languages.rss=r.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var i=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,a=0;a]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},r.languages.c=r.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),r.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),r.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},r.languages.c.string],char:r.languages.c.char,comment:r.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:r.languages.c}}}}),r.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete r.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(r),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(r),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},i={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:i,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:i})}(r),r.languages.javascript=r.languages.extend("clike",{"class-name":[r.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),r.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,r.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:r.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:r.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:r.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:r.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:r.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),r.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:r.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),r.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),r.languages.markup&&(r.languages.markup.tag.addInlined("script","javascript"),r.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),r.languages.js=r.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(r),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",i=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function a(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+i+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:a(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:a(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:a(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:a(o),lookbehind:!0,greedy:!0},number:{pattern:a(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(r),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,i=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+i+o+"(?:"+i+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+i+o+")(?:"+i+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+i+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+i+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},c=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(r),r.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:r.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},r.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var s=f(/^\{$/,/^\}$/);if(-1===s)continue;for(var c=n;c=0&&p(l,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,i=r.inside["interpolation-punctuation"],o=r.pattern.source;function a(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function c(t,n,r){var i={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",i),i.tokens=e.tokenize(i.code,i.grammar),e.hooks.run("after-tokenize",i),i.tokens}function l(t){var n={};n["interpolation-punctuation"]=i;var o=e.tokenize(t,n);if(3===o.length){var a=[1,1];a.push.apply(a,c(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,a)}return new e.Token("interpolation",o,r.alias,t)}function u(t,n,r){var i=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),a=0,u={},d=c(i.map((function(e){if("string"==typeof e)return e;for(var n,i=e.content;-1!==t.indexOf(n=s(a++,r)););return u[n]=i,n})).join(""),n,r),f=Object.keys(u);return a=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var i=f[a],o="string"==typeof r?r:r.content,s=o.indexOf(i);if(-1!==s){++a;var c=o.substring(0,s),d=l(u[i]),p=o.substring(s+i.length),m=[];if(c&&m.push(c),m.push(d),p){var v=[p];e(v),m.push.apply(m,v)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var h=r.content;Array.isArray(h)?e(h):e([h])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[a("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),a("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),a("svg",/\bsvg/.source),a("markdown",/\b(?:markdown|md)/.source),a("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),a("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,i=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(r),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return i})),RegExp(e,t)}i=o(i).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var a=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(a).join(""):""},s=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===a(i.content[0].content[1])&&n.pop():"/>"===i.content[i.content.length-1].content||n.push({tagName:a(i.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===i.type&&"{"===i.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===i.type&&"}"===i.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof i)&&n.length>0&&0===n[n.length-1].openedBraces){var c=a(i);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(c=a(t[r-1])+c,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",c,null,c)}i.content&&"string"!=typeof i.content&&s(i.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(r),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],i=[];/^\w+$/.test(n)||i.push(/\w+/.exec(n)[0]),"diff"===n&&i.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:i,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(r),r.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},r.languages.go=r.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),r.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete r.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,i,o){if(n.language===r){var a=n.tokenStack=[];n.code=n.code.replace(i,(function(e){if("function"==typeof o&&!o(e))return e;for(var i,s=a.length;-1!==n.code.indexOf(i=t(r,s));)++s;return a[s]=e,i})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var i=0,o=Object.keys(n.tokenStack);!function a(s){for(var c=0;c=o.length);c++){var l=s[c];if("string"==typeof l||l.content&&"string"==typeof l.content){var u=o[i],d=n.tokenStack[u],f="string"==typeof l?l:l.content,p=t(r,u),m=f.indexOf(p);if(m>-1){++i;var v=f.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),g=f.substring(m+p.length),b=[];v&&b.push.apply(b,a([v])),b.push(h),g&&b.push.apply(b,a([g])),"string"==typeof l?s.splice.apply(s,[c,1].concat(b)):l.content=b}}else l.content&&a(l.content)}return s}(n.tokens)}}}})}(r),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(r),r.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},r.languages.webmanifest=r.languages.json,r.languages.less=r.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),r.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),r.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},r.languages.objectivec=r.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete r.languages.objectivec["class-name"],r.languages.objc=r.languages.objectivec,r.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},r.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},r.languages.python["string-interpolation"].inside.interpolation.inside.rest=r.languages.python,r.languages.py=r.languages.python,r.languages.reason=r.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),r.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete r.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(r),r.languages.scss=r.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),r.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),r.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),r.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),r.languages.scss.atrule.inside.rest=r.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(r),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(r),r.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/},t.Z=r},7874:function(){!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var i=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,a=0;a@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars,e.languages.mustache=e.languages.handlebars}(Prism)},9299:function(){!function(e){var t={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,r="(?:[^\\\\-]|"+n.source+")",i=RegExp(r+"-"+r),o={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};e.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:i,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":t,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":t,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":o}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|t}return!1}(t,n,i,r)&&(n=null),r||null===i?function(e){return!!Z.call(G,e)||!Z.call(H,e)&&($.test(e)?G[e]=!0:(H[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):i.mustUseProperty?e[i.propertyName]=null===n?3!==i.type&&"":n:(t=i.attributeName,r=i.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(i=i.type)||4===i&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}K.hasOwnProperty("ReactCurrentDispatcher")||(K.ReactCurrentDispatcher={current:null}),K.hasOwnProperty("ReactCurrentBatchConfig")||(K.ReactCurrentBatchConfig={suspense:null});var Q=/^(.*)[\\\/]/,J="function"==typeof Symbol&&Symbol.for,ee=J?Symbol.for("react.element"):60103,te=J?Symbol.for("react.portal"):60106,ne=J?Symbol.for("react.fragment"):60107,re=J?Symbol.for("react.strict_mode"):60108,ie=J?Symbol.for("react.profiler"):60114,oe=J?Symbol.for("react.provider"):60109,ae=J?Symbol.for("react.context"):60110,se=J?Symbol.for("react.concurrent_mode"):60111,ce=J?Symbol.for("react.forward_ref"):60112,le=J?Symbol.for("react.suspense"):60113,ue=J?Symbol.for("react.suspense_list"):60120,de=J?Symbol.for("react.memo"):60115,fe=J?Symbol.for("react.lazy"):60116,pe=J?Symbol.for("react.block"):60121,me="function"==typeof Symbol&&Symbol.iterator;function ve(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=me&&e[me]||e["@@iterator"])?e:null}function he(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case ne:return"Fragment";case te:return"Portal";case ie:return"Profiler";case re:return"StrictMode";case le:return"Suspense";case ue:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case ae:return"Context.Consumer";case oe:return"Context.Provider";case ce:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case de:return he(e.type);case pe:return he(e.render);case fe:if(e=1===e._status?e._result:null)return he(e)}return null}function ge(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,i=e._debugSource,o=he(e.type);n=null,r&&(n=he(r.type)),r=o,o="",i?o=" (at "+i.fileName.replace(Q,"")+":"+i.lineNumber+")":n&&(o=" (created by "+n+")"),n="\n in "+(r||"Unknown")+o}t+=n,e=e.return}while(e);return t}function be(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function ye(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function we(e){e._valueTracker||(e._valueTracker=function(e){var t=ye(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Ee(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ye(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Se(e,t){var n=t.checked;return i({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ke(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=be(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function xe(e,t){null!=(t=t.checked)&&X(e,"checked",t,!1)}function Te(e,t){xe(e,t);var n=be(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?Ce(e,t.type,n):t.hasOwnProperty("defaultValue")&&Ce(e,t.type,be(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function _e(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function Ce(e,t,n){"number"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function Ae(e,t){return e=i({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function Oe(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i=n.length))throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:be(n)}}function Ie(e,t){var n=be(t.value),r=be(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function Re(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var Le="http://www.w3.org/1999/xhtml",Be="http://www.w3.org/2000/svg";function De(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Me(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?De(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var Fe,Ue,ze=(Ue=function(e,t){if(e.namespaceURI!==Be||"innerHTML"in e)e.innerHTML=t;else{for((Fe=Fe||document.createElement("div")).innerHTML=""+t.valueOf().toString()+"",t=Fe.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return Ue(e,t)}))}:Ue);function je(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function $e(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Ze={animationend:$e("Animation","AnimationEnd"),animationiteration:$e("Animation","AnimationIteration"),animationstart:$e("Animation","AnimationStart"),transitionend:$e("Transition","TransitionEnd")},He={},Ge={};function Ve(e){if(He[e])return He[e];if(!Ze[e])return e;var t,n=Ze[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ge)return He[e]=n[t];return e}C&&(Ge=document.createElement("div").style,"AnimationEvent"in window||(delete Ze.animationend.animation,delete Ze.animationiteration.animation,delete Ze.animationstart.animation),"TransitionEvent"in window||delete Ze.transitionend.transition);var We=Ve("animationend"),qe=Ve("animationiteration"),Ye=Ve("animationstart"),Ke=Ve("transitionend"),Xe="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Qe=new("function"==typeof WeakMap?WeakMap:Map);function Je(e){var t=Qe.get(e);return void 0===t&&(t=new Map,Qe.set(e,t)),t}function et(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).effectTag)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function tt(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function nt(e){if(et(e)!==e)throw Error(a(188))}function rt(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=et(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var i=n.return;if(null===i)break;var o=i.alternate;if(null===o){if(null!==(r=i.return)){n=r;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===n)return nt(i),e;if(o===r)return nt(i),t;o=o.sibling}throw Error(a(188))}if(n.return!==r.return)n=i,r=o;else{for(var s=!1,c=i.child;c;){if(c===n){s=!0,n=i,r=o;break}if(c===r){s=!0,r=i,n=o;break}c=c.sibling}if(!s){for(c=o.child;c;){if(c===n){s=!0,n=o,r=i;break}if(c===r){s=!0,r=o,n=i;break}c=c.sibling}if(!s)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function it(e,t){if(null==t)throw Error(a(30));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function ot(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var at=null;function st(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;rdt.length&&dt.push(e)}function pt(e,t,n,r){if(dt.length){var i=dt.pop();return i.topLevelType=e,i.eventSystemFlags=r,i.nativeEvent=t,i.targetInst=n,i}return{topLevelType:e,eventSystemFlags:r,nativeEvent:t,targetInst:n,ancestors:[]}}function mt(e){var t=e.targetInst,n=t;do{if(!n){e.ancestors.push(n);break}var r=n;if(3===r.tag)r=r.stateNode.containerInfo;else{for(;r.return;)r=r.return;r=3!==r.tag?null:r.stateNode.containerInfo}if(!r)break;5!==(t=n.tag)&&6!==t||e.ancestors.push(n),n=Nn(r)}while(n);for(n=0;n=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fn(r)}}function mn(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mn(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function vn(){for(var e=window,t=dn();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=dn((e=t.contentWindow).document)}return t}function hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var gn="$?",bn="$!",yn=null,wn=null;function En(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Sn(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var kn="function"==typeof setTimeout?setTimeout:void 0,xn="function"==typeof clearTimeout?clearTimeout:void 0;function Tn(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function _n(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||n===bn||n===gn){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Cn=Math.random().toString(36).slice(2),An="__reactInternalInstance$"+Cn,On="__reactEventHandlers$"+Cn,Pn="__reactContainere$"+Cn;function Nn(e){var t=e[An];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Pn]||n[An]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=_n(e);null!==e;){if(n=e[An])return n;e=_n(e)}return t}n=(e=n).parentNode}return null}function In(e){return!(e=e[An]||e[Pn])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function Rn(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function Ln(e){return e[On]||null}function Bn(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function Dn(e,t){var n=e.stateNode;if(!n)return null;var r=m(n);if(!r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(a(231,t,typeof n));return n}function Mn(e,t,n){(t=Dn(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=it(n._dispatchListeners,t),n._dispatchInstances=it(n._dispatchInstances,e))}function Fn(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var t=e._targetInst,n=[];t;)n.push(t),t=Bn(t);for(t=n.length;0this.eventPool.length&&this.eventPool.push(e)}function Xn(e){e.eventPool=[],e.getPooled=Yn,e.release=Kn}i(qn.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=Vn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Vn)},persist:function(){this.isPersistent=Vn},isPersistent:Wn,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=Wn,this._dispatchInstances=this._dispatchListeners=null}}),qn.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},qn.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var o=new t;return i(o,n.prototype),n.prototype=o,n.prototype.constructor=n,n.Interface=i({},r.Interface,e),n.extend=r.extend,Xn(n),n},Xn(qn);var Qn=qn.extend({data:null}),Jn=qn.extend({data:null}),er=[9,13,27,32],tr=C&&"CompositionEvent"in window,nr=null;C&&"documentMode"in document&&(nr=document.documentMode);var rr=C&&"TextEvent"in window&&!nr,ir=C&&(!tr||nr&&8=nr),or=String.fromCharCode(32),ar={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},sr=!1;function cr(e,t){switch(e){case"keyup":return-1!==er.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function lr(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var ur=!1;var dr={eventTypes:ar,extractEvents:function(e,t,n,r){var i;if(tr)e:{switch(e){case"compositionstart":var o=ar.compositionStart;break e;case"compositionend":o=ar.compositionEnd;break e;case"compositionupdate":o=ar.compositionUpdate;break e}o=void 0}else ur?cr(e,n)&&(o=ar.compositionEnd):"keydown"===e&&229===n.keyCode&&(o=ar.compositionStart);return o?(ir&&"ko"!==n.locale&&(ur||o!==ar.compositionStart?o===ar.compositionEnd&&ur&&(i=Gn()):(Zn="value"in($n=r)?$n.value:$n.textContent,ur=!0)),o=Qn.getPooled(o,t,n,r),i?o.data=i:null!==(i=lr(n))&&(o.data=i),jn(o),i=o):i=null,(e=rr?function(e,t){switch(e){case"compositionend":return lr(t);case"keypress":return 32!==t.which?null:(sr=!0,or);case"textInput":return(e=t.data)===or&&sr?null:e;default:return null}}(e,n):function(e,t){if(ur)return"compositionend"===e||!tr&&cr(e,t)?(e=Gn(),Hn=Zn=$n=null,ur=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=document.documentMode,Gr={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Vr=null,Wr=null,qr=null,Yr=!1;function Kr(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return Yr||null==Vr||Vr!==dn(n)?null:("selectionStart"in(n=Vr)&&hn(n)?n={start:n.selectionStart,end:n.selectionEnd}:n={anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},qr&&Zr(qr,n)?null:(qr=n,(e=qn.getPooled(Gr.select,Wr,e,t)).type="select",e.target=Vr,jn(e),e))}var Xr={eventTypes:Gr,extractEvents:function(e,t,n,r,i,o){if(!(o=!(i=o||(r.window===r?r.document:9===r.nodeType?r:r.ownerDocument)))){e:{i=Je(i),o=T.onSelect;for(var a=0;adi||(e.current=ui[di],ui[di]=null,di--)}function pi(e,t){di++,ui[di]=e.current,e.current=t}var mi={},vi={current:mi},hi={current:!1},gi=mi;function bi(e,t){var n=e.type.contextTypes;if(!n)return mi;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in n)o[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function yi(e){return null!=(e=e.childContextTypes)}function wi(){fi(hi),fi(vi)}function Ei(e,t,n){if(vi.current!==mi)throw Error(a(168));pi(vi,t),pi(hi,n)}function Si(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(a(108,he(t)||"Unknown",o));return i({},n,{},r)}function ki(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||mi,gi=vi.current,pi(vi,e),pi(hi,hi.current),!0}function xi(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=Si(e,t,gi),r.__reactInternalMemoizedMergedChildContext=e,fi(hi),fi(vi),pi(vi,e)):fi(hi),pi(hi,n)}var Ti=o.unstable_runWithPriority,_i=o.unstable_scheduleCallback,Ci=o.unstable_cancelCallback,Ai=o.unstable_requestPaint,Oi=o.unstable_now,Pi=o.unstable_getCurrentPriorityLevel,Ni=o.unstable_ImmediatePriority,Ii=o.unstable_UserBlockingPriority,Ri=o.unstable_NormalPriority,Li=o.unstable_LowPriority,Bi=o.unstable_IdlePriority,Di={},Mi=o.unstable_shouldYield,Fi=void 0!==Ai?Ai:function(){},Ui=null,zi=null,ji=!1,$i=Oi(),Zi=1e4>$i?Oi:function(){return Oi()-$i};function Hi(){switch(Pi()){case Ni:return 99;case Ii:return 98;case Ri:return 97;case Li:return 96;case Bi:return 95;default:throw Error(a(332))}}function Gi(e){switch(e){case 99:return Ni;case 98:return Ii;case 97:return Ri;case 96:return Li;case 95:return Bi;default:throw Error(a(332))}}function Vi(e,t){return e=Gi(e),Ti(e,t)}function Wi(e,t,n){return e=Gi(e),_i(e,t,n)}function qi(e){return null===Ui?(Ui=[e],zi=_i(Ni,Ki)):Ui.push(e),Di}function Yi(){if(null!==zi){var e=zi;zi=null,Ci(e)}Ki()}function Ki(){if(!ji&&null!==Ui){ji=!0;var e=0;try{var t=Ui;Vi(99,(function(){for(;e=t&&(La=!0),e.firstContext=null)}function so(e,t){if(no!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(no=e,t=1073741823),t={context:e,observedBits:t,next:null},null===to){if(null===eo)throw Error(a(308));to=t,eo.dependencies={expirationTime:0,firstContext:t,responders:null}}else to=to.next=t;return e._currentValue}var co=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function uo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function fo(e,t){return(e={expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null}).next=e}function po(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function mo(e,t){var n=e.alternate;null!==n&&uo(n,e),null===(n=(e=e.updateQueue).baseQueue)?(e.baseQueue=t.next=t,t.next=t):(t.next=n.next,n.next=t)}function vo(e,t,n,r){var o=e.updateQueue;co=!1;var a=o.baseQueue,s=o.shared.pending;if(null!==s){if(null!==a){var c=a.next;a.next=s.next,s.next=c}a=s,o.shared.pending=null,null!==(c=e.alternate)&&(null!==(c=c.updateQueue)&&(c.baseQueue=s))}if(null!==a){c=a.next;var l=o.baseState,u=0,d=null,f=null,p=null;if(null!==c)for(var m=c;;){if((s=m.expirationTime)u&&(u=s)}else{null!==p&&(p=p.next={expirationTime:1073741823,suspenseConfig:m.suspenseConfig,tag:m.tag,payload:m.payload,callback:m.callback,next:null}),pc(s,m.suspenseConfig);e:{var h=e,g=m;switch(s=t,v=n,g.tag){case 1:if("function"==typeof(h=g.payload)){l=h.call(v,l,s);break e}l=h;break e;case 3:h.effectTag=-4097&h.effectTag|64;case 0:if(null==(s="function"==typeof(h=g.payload)?h.call(v,l,s):h))break e;l=i({},l,s);break e;case 2:co=!0}}null!==m.callback&&(e.effectTag|=32,null===(s=o.effects)?o.effects=[m]:s.push(m))}if(null===(m=m.next)||m===c){if(null===(s=o.shared.pending))break;m=a.next=s.next,s.next=c,o.baseQueue=a=s,o.shared.pending=null}}null===p?d=l:p.next=f,o.baseState=d,o.baseQueue=p,mc(u),e.expirationTime=u,e.memoizedState=l}}function ho(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;tv?(h=d,d=null):h=d.sibling;var g=p(i,d,s[v],c);if(null===g){null===d&&(d=h);break}e&&d&&null===g.alternate&&t(i,d),a=o(g,a,v),null===u?l=g:u.sibling=g,u=g,d=h}if(v===s.length)return n(i,d),l;if(null===d){for(;vh?(g=v,v=null):g=v.sibling;var y=p(i,v,b.value,l);if(null===y){null===v&&(v=g);break}e&&v&&null===y.alternate&&t(i,v),s=o(y,s,h),null===d?u=y:d.sibling=y,d=y,v=g}if(b.done)return n(i,v),u;if(null===v){for(;!b.done;h++,b=c.next())null!==(b=f(i,b.value,l))&&(s=o(b,s,h),null===d?u=b:d.sibling=b,d=b);return u}for(v=r(i,v);!b.done;h++,b=c.next())null!==(b=m(v,i,h,b.value,l))&&(e&&null!==b.alternate&&v.delete(null===b.key?h:b.key),s=o(b,s,h),null===d?u=b:d.sibling=b,d=b);return e&&v.forEach((function(e){return t(i,e)})),u}return function(e,r,o,c){var l="object"==typeof o&&null!==o&&o.type===ne&&null===o.key;l&&(o=o.props.children);var u="object"==typeof o&&null!==o;if(u)switch(o.$$typeof){case ee:e:{for(u=o.key,l=r;null!==l;){if(l.key===u){if(7===l.tag){if(o.type===ne){n(e,l.sibling),(r=i(l,o.props.children)).return=e,e=r;break e}}else if(l.elementType===o.type){n(e,l.sibling),(r=i(l,o.props)).ref=_o(e,l,o),r.return=e,e=r;break e}n(e,l);break}t(e,l),l=l.sibling}o.type===ne?((r=Dc(o.props.children,e.mode,c,o.key)).return=e,e=r):((c=Bc(o.type,o.key,o.props,null,e.mode,c)).ref=_o(e,r,o),c.return=e,e=c)}return s(e);case te:e:{for(l=o.key;null!==r;){if(r.key===l){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=i(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Fc(o,e.mode,c)).return=e,e=r}return s(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,o)).return=e,e=r):(n(e,r),(r=Mc(o,e.mode,c)).return=e,e=r),s(e);if(To(o))return v(e,r,o,c);if(ve(o))return h(e,r,o,c);if(u&&Co(e,o),void 0===o&&!l)switch(e.tag){case 1:case 0:throw e=e.type,Error(a(152,e.displayName||e.name||"Component"))}return n(e,r)}}var Oo=Ao(!0),Po=Ao(!1),No={},Io={current:No},Ro={current:No},Lo={current:No};function Bo(e){if(e===No)throw Error(a(174));return e}function Do(e,t){switch(pi(Lo,t),pi(Ro,e),pi(Io,No),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Me(null,"");break;default:t=Me(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}fi(Io),pi(Io,t)}function Mo(){fi(Io),fi(Ro),fi(Lo)}function Fo(e){Bo(Lo.current);var t=Bo(Io.current),n=Me(t,e.type);t!==n&&(pi(Ro,e),pi(Io,n))}function Uo(e){Ro.current===e&&(fi(Io),fi(Ro))}var zo={current:0};function jo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||n.data===gn||n.data===bn))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function $o(e,t){return{responder:e,props:t}}var Zo=K.ReactCurrentDispatcher,Ho=K.ReactCurrentBatchConfig,Go=0,Vo=null,Wo=null,qo=null,Yo=!1;function Ko(){throw Error(a(321))}function Xo(e,t){if(null===t)return!1;for(var n=0;no))throw Error(a(301));o+=1,qo=Wo=null,t.updateQueue=null,Zo.current=ka,e=n(r,i)}while(t.expirationTime===Go)}if(Zo.current=wa,t=null!==Wo&&null!==Wo.next,Go=0,qo=Wo=Vo=null,Yo=!1,t)throw Error(a(300));return e}function Jo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===qo?Vo.memoizedState=qo=e:qo=qo.next=e,qo}function ea(){if(null===Wo){var e=Vo.alternate;e=null!==e?e.memoizedState:null}else e=Wo.next;var t=null===qo?Vo.memoizedState:qo.next;if(null!==t)qo=t,Wo=e;else{if(null===e)throw Error(a(310));e={memoizedState:(Wo=e).memoizedState,baseState:Wo.baseState,baseQueue:Wo.baseQueue,queue:Wo.queue,next:null},null===qo?Vo.memoizedState=qo=e:qo=qo.next=e}return qo}function ta(e,t){return"function"==typeof t?t(e):t}function na(e){var t=ea(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=Wo,i=r.baseQueue,o=n.pending;if(null!==o){if(null!==i){var s=i.next;i.next=o.next,o.next=s}r.baseQueue=i=o,n.pending=null}if(null!==i){i=i.next,r=r.baseState;var c=s=o=null,l=i;do{var u=l.expirationTime;if(uVo.expirationTime&&(Vo.expirationTime=u,mc(u))}else null!==c&&(c=c.next={expirationTime:1073741823,suspenseConfig:l.suspenseConfig,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null}),pc(u,l.suspenseConfig),r=l.eagerReducer===e?l.eagerState:e(r,l.action);l=l.next}while(null!==l&&l!==i);null===c?o=r:c.next=s,jr(r,t.memoizedState)||(La=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=c,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function ra(e){var t=ea(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,o=t.memoizedState;if(null!==i){n.pending=null;var s=i=i.next;do{o=e(o,s.action),s=s.next}while(s!==i);jr(o,t.memoizedState)||(La=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function ia(e){var t=Jo();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ta,lastRenderedState:e}).dispatch=ya.bind(null,Vo,e),[t.memoizedState,e]}function oa(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Vo.updateQueue)?(t={lastEffect:null},Vo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function aa(){return ea().memoizedState}function sa(e,t,n,r){var i=Jo();Vo.effectTag|=e,i.memoizedState=oa(1|t,n,void 0,void 0===r?null:r)}function ca(e,t,n,r){var i=ea();r=void 0===r?null:r;var o=void 0;if(null!==Wo){var a=Wo.memoizedState;if(o=a.destroy,null!==r&&Xo(r,a.deps))return void oa(t,n,o,r)}Vo.effectTag|=e,i.memoizedState=oa(1|t,n,o,r)}function la(e,t){return sa(516,4,e,t)}function ua(e,t){return ca(516,4,e,t)}function da(e,t){return ca(4,2,e,t)}function fa(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function pa(e,t,n){return n=null!=n?n.concat([e]):null,ca(4,2,fa.bind(null,t,e),n)}function ma(){}function va(e,t){return Jo().memoizedState=[e,void 0===t?null:t],e}function ha(e,t){var n=ea();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Xo(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function ga(e,t){var n=ea();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Xo(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function ba(e,t,n){var r=Hi();Vi(98>r?98:r,(function(){e(!0)})),Vi(97<\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=c.createElement(o,{is:r.is}):(e=c.createElement(o),"select"===o&&(c=e,r.multiple?c.multiple=!0:r.size&&(c.size=r.size))):e=c.createElementNS(e,o),e[An]=t,e[On]=r,Ha(e,t),t.stateNode=e,c=sn(o,r),o){case"iframe":case"object":case"embed":qt("load",e),l=r;break;case"video":case"audio":for(l=0;lr.tailExpiration&&1t)&&Ks.set(e,t))}}function rc(e,t){e.expirationTime=(e=n>(e=e.nextKnownPendingLevel)?n:e)&&t!==e?0:e}function oc(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=qi(sc.bind(null,e));else{var t=ic(e),n=e.callbackNode;if(0===t)null!==n&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var r=ec();if(1073741823===t?r=99:1===t||2===t?r=95:r=0>=(r=10*(1073741821-t)-10*(1073741821-r))?99:250>=r?98:5250>=r?97:95,null!==n){var i=e.callbackPriority;if(e.callbackExpirationTime===t&&i>=r)return;n!==Di&&Ci(n)}e.callbackExpirationTime=t,e.callbackPriority=r,t=1073741823===t?qi(sc.bind(null,e)):Wi(r,ac.bind(null,e),{timeout:10*(1073741821-t)-Zi()}),e.callbackNode=t}}}function ac(e,t){if(Js=0,t)return Zc(e,t=ec()),oc(e),null;var n=ic(e);if(0!==n){if(t=e.callbackNode,0!=(48&Ns))throw Error(a(327));if(kc(),e===Is&&n===Ls||uc(e,n),null!==Rs){var r=Ns;Ns|=_s;for(var i=fc();;)try{hc();break}catch(c){dc(e,c)}if(ro(),Ns=r,xs.current=i,1===Bs)throw t=Ds,uc(e,n),jc(e,n),oc(e),t;if(null===Rs)switch(i=e.finishedWork=e.current.alternate,e.finishedExpirationTime=n,r=Bs,Is=null,r){case As:case 1:throw Error(a(345));case 2:Zc(e,2=n){e.lastPingedTime=n,uc(e,n);break}}if(0!==(o=ic(e))&&o!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}e.timeoutHandle=kn(wc.bind(null,e),i);break}wc(e);break;case Ps:if(jc(e,n),n===(r=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=yc(i)),js&&(0===(i=e.lastPingedTime)||i>=n)){e.lastPingedTime=n,uc(e,n);break}if(0!==(i=ic(e))&&i!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}if(1073741823!==Fs?r=10*(1073741821-Fs)-Zi():1073741823===Ms?r=0:(r=10*(1073741821-Ms)-5e3,0>(r=(i=Zi())-r)&&(r=0),(n=10*(1073741821-n)-i)<(r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ks(r/1960))-r)&&(r=n)),10=(r=0|s.busyMinDurationMs)?r=0:(i=0|s.busyDelayMs,r=(o=Zi()-(10*(1073741821-o)-(0|s.timeoutMs||5e3)))<=i?0:i+r-o),10 component higher in the tree to provide a loading indicator or placeholder to display."+ge(a))}5!==Bs&&(Bs=2),s=ns(s,a),d=o;do{switch(d.tag){case 3:c=s,d.effectTag|=4096,d.expirationTime=t,mo(d,ws(d,c,t));break e;case 1:c=s;var w=d.type,E=d.stateNode;if(0==(64&d.effectTag)&&("function"==typeof w.getDerivedStateFromError||null!==E&&"function"==typeof E.componentDidCatch&&(null===Vs||!Vs.has(E)))){d.effectTag|=4096,d.expirationTime=t,mo(d,Es(d,c,t));break e}}d=d.return}while(null!==d)}Rs=bc(Rs)}catch(S){t=S;continue}break}}function fc(){var e=xs.current;return xs.current=wa,null===e?wa:e}function pc(e,t){ezs&&(zs=e)}function vc(){for(;null!==Rs;)Rs=gc(Rs)}function hc(){for(;null!==Rs&&!Mi();)Rs=gc(Rs)}function gc(e){var t=Ss(e.alternate,e,Ls);return e.memoizedProps=e.pendingProps,null===t&&(t=bc(e)),Ts.current=null,t}function bc(e){Rs=e;do{var t=Rs.alternate;if(e=Rs.return,0==(2048&Rs.effectTag)){if(t=es(t,Rs,Ls),1===Ls||1!==Rs.childExpirationTime){for(var n=0,r=Rs.child;null!==r;){var i=r.expirationTime,o=r.childExpirationTime;i>n&&(n=i),o>n&&(n=o),r=r.sibling}Rs.childExpirationTime=n}if(null!==t)return t;null!==e&&0==(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=Rs.firstEffect),null!==Rs.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=Rs.firstEffect),e.lastEffect=Rs.lastEffect),1(e=e.childExpirationTime)?t:e}function wc(e){var t=Hi();return Vi(99,Ec.bind(null,e,t)),null}function Ec(e,t){do{kc()}while(null!==qs);if(0!=(48&Ns))throw Error(a(327));var n=e.finishedWork,r=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw Error(a(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var i=yc(n);if(e.firstPendingTime=i,r<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:r<=e.firstSuspendedTime&&(e.firstSuspendedTime=r-1),r<=e.lastPingedTime&&(e.lastPingedTime=0),r<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===Is&&(Rs=Is=null,Ls=0),1c&&(u=c,c=s,s=u),u=pn(w,s),d=pn(w,c),u&&d&&(1!==S.rangeCount||S.anchorNode!==u.node||S.anchorOffset!==u.offset||S.focusNode!==d.node||S.focusOffset!==d.offset)&&((E=E.createRange()).setStart(u.node,u.offset),S.removeAllRanges(),s>c?(S.addRange(E),S.extend(d.node,d.offset)):(E.setEnd(d.node,d.offset),S.addRange(E))))),E=[];for(S=w;S=S.parentNode;)1===S.nodeType&&E.push({element:S,left:S.scrollLeft,top:S.scrollTop});for("function"==typeof w.focus&&w.focus(),w=0;w=n?qa(e,t,n):(pi(zo,1&zo.current),null!==(t=Qa(e,t,n))?t.sibling:null);pi(zo,1&zo.current);break;case 19:if(r=t.childExpirationTime>=n,0!=(64&e.effectTag)){if(r)return Xa(e,t,n);t.effectTag|=64}if(null!==(i=t.memoizedState)&&(i.rendering=null,i.tail=null),pi(zo,zo.current),!r)return null}return Qa(e,t,n)}La=!1}}else La=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,i=bi(t,vi.current),ao(t,n),i=Qo(null,t,r,e,i,n),t.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,yi(r)){var o=!0;ki(t)}else o=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null,lo(t);var s=r.getDerivedStateFromProps;"function"==typeof s&&yo(t,r,s,e),i.updater=wo,t.stateNode=i,i._reactInternalFiber=t,xo(t,r,e,n),t=$a(null,t,r,!0,o,n)}else t.tag=0,Ba(null,t,i,n),t=t.child;return t;case 16:e:{if(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,function(e){if(-1===e._status){e._status=0;var t=e._ctor;t=t(),e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}}(i),1!==i._status)throw i._result;switch(i=i._result,t.type=i,o=t.tag=function(e){if("function"==typeof e)return Rc(e)?1:0;if(null!=e){if((e=e.$$typeof)===ce)return 11;if(e===de)return 14}return 2}(i),e=Qi(i,e),o){case 0:t=za(null,t,i,e,n);break e;case 1:t=ja(null,t,i,e,n);break e;case 11:t=Da(null,t,i,e,n);break e;case 14:t=Ma(null,t,i,Qi(i.type,e),r,n);break e}throw Error(a(306,i,""))}return t;case 0:return r=t.type,i=t.pendingProps,za(e,t,r,i=t.elementType===r?i:Qi(r,i),n);case 1:return r=t.type,i=t.pendingProps,ja(e,t,r,i=t.elementType===r?i:Qi(r,i),n);case 3:if(Za(t),r=t.updateQueue,null===e||null===r)throw Error(a(282));if(r=t.pendingProps,i=null!==(i=t.memoizedState)?i.element:null,uo(e,t),vo(t,r,null,n),(r=t.memoizedState.element)===i)Ia(),t=Qa(e,t,n);else{if((i=t.stateNode.hydrate)&&(Ta=Tn(t.stateNode.containerInfo.firstChild),xa=t,i=_a=!0),i)for(n=Po(t,null,r,n),t.child=n;n;)n.effectTag=-3&n.effectTag|1024,n=n.sibling;else Ba(e,t,r,n),Ia();t=t.child}return t;case 5:return Fo(t),null===e&&Oa(t),r=t.type,i=t.pendingProps,o=null!==e?e.memoizedProps:null,s=i.children,Sn(r,i)?s=null:null!==o&&Sn(r,o)&&(t.effectTag|=16),Ua(e,t),4&t.mode&&1!==n&&i.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(Ba(e,t,s,n),t=t.child),t;case 6:return null===e&&Oa(t),null;case 13:return qa(e,t,n);case 4:return Do(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Oo(t,null,r,n):Ba(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,Da(e,t,r,i=t.elementType===r?i:Qi(r,i),n);case 7:return Ba(e,t,t.pendingProps,n),t.child;case 8:case 12:return Ba(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,i=t.pendingProps,s=t.memoizedProps,o=i.value;var c=t.type._context;if(pi(Ji,c._currentValue),c._currentValue=o,null!==s)if(c=s.value,0===(o=jr(c,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(c,o):1073741823))){if(s.children===i.children&&!hi.current){t=Qa(e,t,n);break e}}else for(null!==(c=t.child)&&(c.return=t);null!==c;){var l=c.dependencies;if(null!==l){s=c.child;for(var u=l.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&o)){1===c.tag&&((u=fo(n,null)).tag=2,po(c,u)),c.expirationTime=t&&e<=t}function jc(e,t){var n=e.firstSuspendedTime,r=e.lastSuspendedTime;nt||0===n)&&(e.lastSuspendedTime=t),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function $c(e,t){t>e.firstPendingTime&&(e.firstPendingTime=t);var n=e.firstSuspendedTime;0!==n&&(t>=n?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t>=e.lastSuspendedTime&&(e.lastSuspendedTime=t+1),t>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=t))}function Zc(e,t){var n=e.lastExpiredTime;(0===n||n>t)&&(e.lastExpiredTime=t)}function Hc(e,t,n,r){var i=t.current,o=ec(),s=go.suspense;o=tc(o,i,s);e:if(n){t:{if(et(n=n._reactInternalFiber)!==n||1!==n.tag)throw Error(a(170));var c=n;do{switch(c.tag){case 3:c=c.stateNode.context;break t;case 1:if(yi(c.type)){c=c.stateNode.__reactInternalMemoizedMergedChildContext;break t}}c=c.return}while(null!==c);throw Error(a(171))}if(1===n.tag){var l=n.type;if(yi(l)){n=Si(n,l,c);break e}}n=c}else n=mi;return null===t.context?t.context=n:t.pendingContext=n,(t=fo(o,s)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),po(i,t),nc(i,o),o}function Gc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Vc(e,t){null!==(e=e.memoizedState)&&null!==e.dehydrated&&e.retryTime=0||(i[n]=e[n]);return i}var h={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},g={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(h).map((function(e){return h[e]})),E={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(E).reduce((function(e,t){return e[E[t]]=t,e}),{}),k=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=k(e,h.TITLE),n=k(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=k(e,"defaultTitle");return t||r||void 0},T=function(e){return k(e,"onChangeClientState")||function(){}},_=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return f({},e,t)}),{})},C=function(e,t){return t.filter((function(e){return void 0!==e[h.BASE]})).map((function(e){return e[h.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'")},B=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[E[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var i,o=((i={key:n})["data-rh"]=!0,i);return Object.keys(t).forEach((function(e){var n=E[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},F=function(e,t,n){switch(e){case h.TITLE:return{toComponent:function(){return n=t.titleAttributes,(i={key:e=t.title})["data-rh"]=!0,o=D(n,i),[r.createElement(h.TITLE,o,e)];var e,n,i,o},toString:function(){return function(e,t,n,r){var i=B(n),o=P(t);return i?"<"+e+' data-rh="true" '+i+">"+L(o,r)+"":"<"+e+' data-rh="true">'+L(o,r)+""}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return B(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var i=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var i=void 0===r[t]?t:t+'="'+L(r[t],n)+'"';return e?e+" "+i:i}),""),o=r.innerHTML||r.cssText||"",a=-1===R.indexOf(e);return t+"<"+e+' data-rh="true" '+i+(a?"/>":">"+o+"")}),"")}(e,t,n)}}}},U=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,i=e.htmlAttributes,o=e.noscriptTags,a=e.styleTags,s=e.title,c=void 0===s?"":s,l=e.titleAttributes,u=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,i=N(e.metaTags,y),o=N(t,g),a=N(n,b);return{priorityMethods:{toComponent:function(){return[].concat(M(h.META,i.priority),M(h.LINK,o.priority),M(h.SCRIPT,a.priority))},toString:function(){return F(h.META,i.priority,r)+" "+F(h.LINK,o.priority,r)+" "+F(h.SCRIPT,a.priority,r)}},metaTags:i.default,linkTags:o.default,scriptTags:a.default}}(e);p=m.priorityMethods,u=m.linkTags,d=m.metaTags,f=m.scriptTags}return{priority:p,base:F(h.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",i,r),link:F(h.LINK,u,r),meta:F(h.META,d,r),noscript:F(h.NOSCRIPT,o,r),script:F(h.SCRIPT,f,r),style:F(h.STYLE,a,r),title:F(h.TITLE,{title:c,titleAttributes:l},r)}},z=[],j=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=U({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),Z=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),H="undefined"!=typeof document,G=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new j(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);G.canUseDOM=H,G.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var V=function(e,t){var n,r=document.head||document.querySelector(h.HEAD),i=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(i),a=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&("innerHTML"===i?r.innerHTML=t.innerHTML:"cssText"===i?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(i,void 0===t[i]?"":t[i]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):a.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),a.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:a}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),i=r?r.split(","):[],o=[].concat(i),a=Object.keys(t),s=0;s=0;d-=1)n.removeAttribute(o[d]);i.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==a.join(",")&&n.setAttribute("data-rh",a.join(","))}},q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,i=e.linkTags,o=e.metaTags,a=e.noscriptTags,s=e.onChangeClientState,c=e.scriptTags,l=e.styleTags,u=e.title,d=e.titleAttributes;W(h.BODY,e.bodyAttributes),W(h.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=P(e)),W(h.TITLE,t)}(u,d);var f={baseTag:V(h.BASE,n),linkTags:V(h.LINK,i),metaTags:V(h.META,o),noscriptTags:V(h.NOSCRIPT,a),scriptTags:V(h.SCRIPT,c),styleTags:V(h.STYLE,l)},p={},m={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)})),t&&t(),s(e,p,m)},Y=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),i=0;i elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,i=e.newProps,o=e.newChildProps,a=e.nestedChildren;switch(r.type){case h.TITLE:return f({},i,((t={})[r.type]=a,t.titleAttributes=f({},o),t));case h.BODY:return f({},i,{bodyAttributes:f({},o)});case h.HTML:return f({},i,{htmlAttributes:f({},o)});default:return f({},i,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach((function(t){var r;n=f({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return l()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),l()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``} ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,i={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,a=v(r,X),s=Object.keys(a).reduce((function(e,t){return e[S[t]||t]=a[t],e}),{}),c=e.type;switch("symbol"==typeof c?c=c.toString():n.warnOnInvalidChildren(e,o),c){case h.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case h.LINK:case h.META:case h.NOSCRIPT:case h.SCRIPT:case h.STYLE:i=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:i,newChildProps:s,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(i,t)},n.render=function(){var e=this.props,t=e.children,n=v(e,Q),i=f({},n),o=n.helmetData;return t&&(i=this.mapChildrenToProps(t,i)),!o||o instanceof j||(o=new j(o.context,o.instances)),o?r.createElement(K,f({},i,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,f({},i,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},8356:function(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(){return a=Object.assign||function(e){for(var t=1;tP.length&&P.push(e)}function R(e,t,n,r){var i=typeof e;"undefined"!==i&&"boolean"!==i||(e=null);var s=!1;if(null===e)s=!0;else switch(i){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case o:case a:s=!0}}if(s)return n(r,e,""===t?"."+B(e,0):t),1;if(s=0,t=""===t?".":t+":",Array.isArray(e))for(var c=0;c=E},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125>>1,i=e[r];if(!(void 0!==i&&0C(a,n))void 0!==c&&0>C(c,a)?(e[r]=c,e[s]=n,r=s):(e[r]=a,e[o]=n,r=o);else{if(!(void 0!==c&&0>C(c,n)))break e;e[r]=c,e[s]=n,r=s}}}return t}return null}function C(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var A=[],O=[],P=1,N=null,I=3,R=!1,L=!1,B=!1;function D(e){for(var t=T(O);null!==t;){if(null===t.callback)_(O);else{if(!(t.startTime<=e))break;_(O),t.sortIndex=t.expirationTime,x(A,t)}t=T(O)}}function M(e){if(B=!1,D(e),!L)if(null!==T(A))L=!0,n(F);else{var t=T(O);null!==t&&r(M,t.startTime-e)}}function F(e,n){L=!1,B&&(B=!1,i()),R=!0;var a=I;try{for(D(n),N=T(A);null!==N&&(!(N.expirationTime>n)||e&&!o());){var s=N.callback;if(null!==s){N.callback=null,I=N.priorityLevel;var c=s(N.expirationTime<=n);n=t.unstable_now(),"function"==typeof c?N.callback=c:N===T(A)&&_(A),D(n)}else _(A);N=T(A)}if(null!==N)var l=!0;else{var u=T(O);null!==u&&r(M,u.startTime-n),l=!1}return l}finally{N=null,I=a,R=!1}}function U(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var z=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){L||R||(L=!0,n(F))},t.unstable_getCurrentPriorityLevel=function(){return I},t.unstable_getFirstCallbackNode=function(){return T(A)},t.unstable_next=function(e){switch(I){case 1:case 2:case 3:var t=3;break;default:t=I}var n=I;I=t;try{return e()}finally{I=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=z,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=I;I=e;try{return t()}finally{I=n}},t.unstable_scheduleCallback=function(e,o,a){var s=t.unstable_now();if("object"==typeof a&&null!==a){var c=a.delay;c="number"==typeof c&&0s?(e.sortIndex=c,x(O,e),null===T(A)&&e===T(O)&&(B?i():B=!0,r(M,c-s))):(e.sortIndex=a,x(A,e),L||R||(L=!0,n(F))),e},t.unstable_shouldYield=function(){var e=t.unstable_now();D(e);var n=T(A);return n!==N&&null!==N&&null!==n&&null!==n.callback&&n.startTime<=e&&n.expirationTime\nThe texts in this website are licensed under\n\nCC BY-SA 4.0\n\n\n\n.  Copyright \xa9 2022-2023 by TNO."},prism:{additionalLanguages:["handlebars","regex","bash"],theme:{plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},presets:[["@docusaurus/preset-classic",{docs:{sidebarPath:"/home/runner/work/tev2-specifications/tev2-specifications/sidebars.js",editUrl:"https://github.com/tno-terminology-design/tev2-specifications/blob/master/",showLastUpdateAuthor:!0,showLastUpdateTime:!0,breadcrumbs:!1},theme:{customCss:"/home/runner/work/tev2-specifications/tev2-specifications/src/css/custom.css"}}]],baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onBrokenMarkdownLinks:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(i[n]=e[n]);return i}n.d(t,{Z:function(){return r}})},9611:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},6528:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{Z:function(){return a}});var i=n(9611);function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,i.Z)(e,t)}function a(){a=function(e,t){return new n(e,void 0,t)};var e=RegExp.prototype,t=new WeakMap;function n(e,r,o){var a=new RegExp(e,r);return t.set(a,o||t.get(e)),(0,i.Z)(a,n.prototype)}function s(e,n){var r=t.get(n);return Object.keys(r).reduce((function(t,n){return t[n]=e[r[n]],t}),Object.create(null))}return o(n,RegExp),n.prototype.exec=function(t){var n=e.exec.call(this,t);return n&&(n.groups=s(n,this)),n},n.prototype[Symbol.replace]=function(n,i){if("string"==typeof i){var o=t.get(this);return e[Symbol.replace].call(this,n,i.replace(/\$<([^>]+)>/g,(function(e,t){return"$"+o[t]})))}if("function"==typeof i){var a=this;return e[Symbol.replace].call(this,n,(function(){var e=arguments;return"object"!=r(e[e.length-1])&&(e=[].slice.call(e)).push(s(e,a)),i.apply(this,e)}))}return e[Symbol.replace].call(this,n,i)},a.apply(this,arguments)}},7529:function(e){"use strict";e.exports={}},6887:function(e){"use strict";e.exports=JSON.parse('{"/tev2-specifications/docs-6db":{"__comp":"1be78505","__context":{"plugin":"4cbfba96"},"versionMetadata":"935f2afb"},"/tev2-specifications/docs/-8a9":{"__comp":"17896441","content":"23374ca6"},"/tev2-specifications/docs/manuals/author/author-overview-6c9":{"__comp":"17896441","content":"ade96904"},"/tev2-specifications/docs/manuals/contributor/contributor-overview-7db":{"__comp":"17896441","content":"feb0a068"},"/tev2-specifications/docs/manuals/contributor/contributors-LaTeX-1da":{"__comp":"17896441","content":"e963bf71"},"/tev2-specifications/docs/manuals/contributor/contributors-repo-b98":{"__comp":"17896441","content":"c5f202a2"},"/tev2-specifications/docs/manuals/contributor/contributors-wiki-b9a":{"__comp":"17896441","content":"d1ce265f"},"/tev2-specifications/docs/manuals/curator/curator-overview-cc4":{"__comp":"17896441","content":"5a2bb67b"},"/tev2-specifications/docs/manuals/curator/tev2-installation-aa2":{"__comp":"17896441","content":"bcb93ad0"},"/tev2-specifications/docs/manuals/man-overview-5eb":{"__comp":"17896441","content":"530622a1"},"/tev2-specifications/docs/miscellaneous/tool-development-8b3":{"__comp":"17896441","content":"1437a887"},"/tev2-specifications/docs/notations-and-conventions-887":{"__comp":"17896441","content":"79248420"},"/tev2-specifications/docs/overview/tev2-architecture-c08":{"__comp":"17896441","content":"db749810"},"/tev2-specifications/docs/overview/tev2-common-understanding-d58":{"__comp":"17896441","content":"358bfd91"},"/tev2-specifications/docs/overview/tev2-design-principles-671":{"__comp":"17896441","content":"b09e837d"},"/tev2-specifications/docs/overview/tev2-purpose-990":{"__comp":"17896441","content":"9956d717"},"/tev2-specifications/docs/overview/tev2-terminology-curation-34e":{"__comp":"17896441","content":"4cd795c8"},"/tev2-specifications/docs/spec-files/ctext-b31":{"__comp":"17896441","content":"73517f78"},"/tev2-specifications/docs/spec-files/hrd-464":{"__comp":"17896441","content":"f27e77df"},"/tev2-specifications/docs/spec-files/hrg-b4d":{"__comp":"17896441","content":"6082c6f3"},"/tev2-specifications/docs/spec-files/mrd-af9":{"__comp":"17896441","content":"b139d961"},"/tev2-specifications/docs/spec-files/mrg-ca0":{"__comp":"17896441","content":"bc9a9474"},"/tev2-specifications/docs/spec-files/profile-templates-3ee":{"__comp":"17896441","content":"0b1184e8"},"/tev2-specifications/docs/spec-files/saf-3db":{"__comp":"17896441","content":"0d70a313"},"/tev2-specifications/docs/spec-syntax/form-phrase-syntax-2b3":{"__comp":"17896441","content":"dd8f50c9"},"/tev2-specifications/docs/spec-syntax/hrg-termselcrit-55c":{"__comp":"17896441","content":"eaf68872"},"/tev2-specifications/docs/spec-syntax/term-identifier-syntax-7de":{"__comp":"17896441","content":"66fdd2ef"},"/tev2-specifications/docs/spec-syntax/term-ref-syntax-7b3":{"__comp":"17896441","content":"d58fc793"},"/tev2-specifications/docs/spec-tools/hrdt-547":{"__comp":"17896441","content":"1a4b7b7c"},"/tev2-specifications/docs/spec-tools/hrgt-29e":{"__comp":"17896441","content":"5afb2393"},"/tev2-specifications/docs/spec-tools/hrgt-old-588":{"__comp":"17896441","content":"6b1e0334"},"/tev2-specifications/docs/spec-tools/ict-8ad":{"__comp":"17896441","content":"3bc993c5"},"/tev2-specifications/docs/spec-tools/mrdt-52d":{"__comp":"17896441","content":"9fed84d8"},"/tev2-specifications/docs/spec-tools/mrg-importer-2a8":{"__comp":"17896441","content":"0b24ef70"},"/tev2-specifications/docs/spec-tools/mrgt-b4e":{"__comp":"17896441","content":"205d9948"},"/tev2-specifications/docs/spec-tools/terminology-construction-e03":{"__comp":"17896441","content":"68543202"},"/tev2-specifications/docs/spec-tools/trrt-35e":{"__comp":"17896441","content":"83bd4574"},"/tev2-specifications/docs/terms/@-adf":{"__comp":"17896441","content":"83d6452b"},"/tev2-specifications/docs/terms/author-576":{"__comp":"17896441","content":"07990011"},"/tev2-specifications/docs/terms/body-1e1":{"__comp":"17896441","content":"d9735dd1"},"/tev2-specifications/docs/terms/concept-dde":{"__comp":"17896441","content":"cfcdc3ca"},"/tev2-specifications/docs/terms/conceptualization-766":{"__comp":"17896441","content":"9136c9f6"},"/tev2-specifications/docs/terms/converter-ae6":{"__comp":"17896441","content":"efbcea9d"},"/tev2-specifications/docs/terms/corpus-90b":{"__comp":"17896441","content":"5395b836"},"/tev2-specifications/docs/terms/curate-ddf":{"__comp":"17896441","content":"75cbb1e6"},"/tev2-specifications/docs/terms/curated-text-9dd":{"__comp":"17896441","content":"2f0ec223"},"/tev2-specifications/docs/terms/curatedir-114":{"__comp":"17896441","content":"5ea46faf"},"/tev2-specifications/docs/terms/curator-62d":{"__comp":"17896441","content":"79495b8c"},"/tev2-specifications/docs/terms/define-8f0":{"__comp":"17896441","content":"9976dba8"},"/tev2-specifications/docs/terms/definition-504":{"__comp":"17896441","content":"b5976878"},"/tev2-specifications/docs/terms/dictionary-877":{"__comp":"17896441","content":"8cadb544"},"/tev2-specifications/docs/terms/form-phrase-281":{"__comp":"17896441","content":"d061ed1e"},"/tev2-specifications/docs/terms/formatted-text-30b":{"__comp":"17896441","content":"37bf8d6e"},"/tev2-specifications/docs/terms/glossary-575":{"__comp":"17896441","content":"03b39aaa"},"/tev2-specifications/docs/terms/glossarydir-9df":{"__comp":"17896441","content":"f5824b3c"},"/tev2-specifications/docs/terms/grouptag-be9":{"__comp":"17896441","content":"9a3eaf08"},"/tev2-specifications/docs/terms/header-24b":{"__comp":"17896441","content":"1ebbe01d"},"/tev2-specifications/docs/terms/hrd-54e":{"__comp":"17896441","content":"17aedecb"},"/tev2-specifications/docs/terms/hrdt-b01":{"__comp":"17896441","content":"41daa8b4"},"/tev2-specifications/docs/terms/hrg-9f6":{"__comp":"17896441","content":"65f59a55"},"/tev2-specifications/docs/terms/hrg-entry-049":{"__comp":"17896441","content":"73053340"},"/tev2-specifications/docs/terms/hrgt-284":{"__comp":"17896441","content":"c5a98701"},"/tev2-specifications/docs/terms/ict-57a":{"__comp":"17896441","content":"c0bb789b"},"/tev2-specifications/docs/terms/identifier-2a6":{"__comp":"17896441","content":"e8dcf8cf"},"/tev2-specifications/docs/terms/identify-174":{"__comp":"17896441","content":"0243614c"},"/tev2-specifications/docs/terms/ingestion-4ba":{"__comp":"17896441","content":"d8ee5cce"},"/tev2-specifications/docs/terms/ingestion-profile-545":{"__comp":"17896441","content":"d71eb2ae"},"/tev2-specifications/docs/terms/interpreter-24f":{"__comp":"17896441","content":"8677fb48"},"/tev2-specifications/docs/terms/knowledge-artifact-0c8":{"__comp":"17896441","content":"797e5329"},"/tev2-specifications/docs/terms/mental-model-45b":{"__comp":"17896441","content":"2ff88f8b"},"/tev2-specifications/docs/terms/moustache-variable-6f4":{"__comp":"17896441","content":"e6a4b882"},"/tev2-specifications/docs/terms/mrd-98a":{"__comp":"17896441","content":"67283e50"},"/tev2-specifications/docs/terms/mrdt-34b":{"__comp":"17896441","content":"5003321a"},"/tev2-specifications/docs/terms/mrg-a43":{"__comp":"17896441","content":"e58d15ee"},"/tev2-specifications/docs/terms/mrg-entry-055":{"__comp":"17896441","content":"7567abf2"},"/tev2-specifications/docs/terms/mrg-importer-e1c":{"__comp":"17896441","content":"ee5834a7"},"/tev2-specifications/docs/terms/mrgt-fca":{"__comp":"17896441","content":"de8bc3ad"},"/tev2-specifications/docs/terms/patterns/pattern-terminology-fdf":{"__comp":"17896441","content":"073edd59"},"/tev2-specifications/docs/terms/property-c70":{"__comp":"17896441","content":"85bdfa30"},"/tev2-specifications/docs/terms/reader-7af":{"__comp":"17896441","content":"e129cf3c"},"/tev2-specifications/docs/terms/relation-6b8":{"__comp":"17896441","content":"49f969b0"},"/tev2-specifications/docs/terms/renderable-ref-374":{"__comp":"17896441","content":"8602ac2f"},"/tev2-specifications/docs/terms/saf-7ef":{"__comp":"17896441","content":"9f5dc2b0"},"/tev2-specifications/docs/terms/scope-fe5":{"__comp":"17896441","content":"156e271d"},"/tev2-specifications/docs/terms/scoped-term-c51":{"__comp":"17896441","content":"0cdee2ba"},"/tev2-specifications/docs/terms/scopedir-bd3":{"__comp":"17896441","content":"cf9aab87"},"/tev2-specifications/docs/terms/scopetag-ea4":{"__comp":"17896441","content":"6db347e8"},"/tev2-specifications/docs/terms/semantic-unit-569":{"__comp":"17896441","content":"59f1a610"},"/tev2-specifications/docs/terms/semantics-ac3":{"__comp":"17896441","content":"042aab58"},"/tev2-specifications/docs/terms/synonym-c5e":{"__comp":"17896441","content":"4e095fca"},"/tev2-specifications/docs/terms/tag-1ef":{"__comp":"17896441","content":"0fbf73e8"},"/tev2-specifications/docs/terms/term-17c":{"__comp":"17896441","content":"5049cc12"},"/tev2-specifications/docs/terms/term-identifier-c82":{"__comp":"17896441","content":"e768272c"},"/tev2-specifications/docs/terms/term-ref-6c0":{"__comp":"17896441","content":"afb8980b"},"/tev2-specifications/docs/terms/term-selection-criteria-0f0":{"__comp":"17896441","content":"f8438414"},"/tev2-specifications/docs/terms/term-syntax-a25":{"__comp":"17896441","content":"c2c4426a"},"/tev2-specifications/docs/terms/term-type-d4d":{"__comp":"17896441","content":"f24909cd"},"/tev2-specifications/docs/terms/terminological-artifact-5e5":{"__comp":"17896441","content":"dca8ef5b"},"/tev2-specifications/docs/terms/terminology-110":{"__comp":"17896441","content":"233866fe"},"/tev2-specifications/docs/terms/terminology-process-f8b":{"__comp":"17896441","content":"5f28d73f"},"/tev2-specifications/docs/terms/terminology-under-construction-32c":{"__comp":"17896441","content":"e0b00178"},"/tev2-specifications/docs/terms/terms-community-f30":{"__comp":"17896441","content":"a11550d3"},"/tev2-specifications/docs/terms/tev2-def":{"__comp":"17896441","content":"b9e2db8f"},"/tev2-specifications/docs/terms/tev2-tool-5c1":{"__comp":"17896441","content":"bb7c9df2"},"/tev2-specifications/docs/terms/tev2-toolbox-b92":{"__comp":"17896441","content":"fd7be43f"},"/tev2-specifications/docs/terms/trrt-94b":{"__comp":"17896441","content":"bf59d308"},"/tev2-specifications/docs/terms/versiontag-f96":{"__comp":"17896441","content":"b0474474"},"/tev2-specifications/docs/terms/vocabulary-abc":{"__comp":"17896441","content":"a7c030b4"},"/tev2-specifications/docs/tev2-glossary-ef0":{"__comp":"17896441","content":"a976b482"},"/tev2-specifications/docs/tev2-overview-2b6":{"__comp":"17896441","content":"cc3066cf"},"/tev2-specifications/docs/tev2-spec-files-42a":{"__comp":"17896441","content":"2ea3555a"},"/tev2-specifications/docs/tev2-syntax-05c":{"__comp":"17896441","content":"d791b17e"},"/tev2-specifications/docs/tev2-toolbox-cac":{"__comp":"17896441","content":"b1f7a5f8"},"/tev2-specifications/-e9f":{"__comp":"c4f5d8e4","__context":{"plugin":"33cdb9e8"},"config":"5e9f5e1a"}}')}},function(e){e.O(0,[532],(function(){return t=9383,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/runtime~main.8c521635.js b/assets/js/runtime~main.8c521635.js new file mode 100644 index 0000000000..e95d65b480 --- /dev/null +++ b/assets/js/runtime~main.8c521635.js @@ -0,0 +1 @@ +!function(){"use strict";var e,f,c,b,a,d={},t={};function n(e){var f=t[e];if(void 0!==f)return f.exports;var c=t[e]={exports:{}};return d[e].call(c.exports,c,c.exports,n),c.exports}n.m=d,e=[],n.O=function(f,c,b,a){if(!c){var d=1/0;for(i=0;i=a)&&Object.keys(n.O).every((function(e){return n.O[e](c[r])}))?c.splice(r--,1):(t=!1,a0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[c,b,a]},n.n=function(e){var f=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(f,{a:f}),f},c=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},n.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var a=Object.create(null);n.r(a);var d={};f=f||[null,c({}),c([]),c(c)];for(var t=2&b&&e;"object"==typeof t&&!~f.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((function(f){d[f]=function(){return e[f]}}));return d.default=function(){return e},n.d(a,d),a},n.d=function(e,f){for(var c in f)n.o(f,c)&&!n.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:f[c]})},n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(f,c){return n.f[c](e,f),f}),[]))},n.u=function(e){return"assets/js/"+({53:"935f2afb",328:"65f59a55",612:"a976b482",812:"0d70a313",879:"e0b00178",925:"b5976878",991:"67283e50",1062:"2f0ec223",1277:"0243614c",1351:"358bfd91",1374:"b9e2db8f",1408:"db749810",1437:"83d6452b",1480:"073edd59",1482:"f24909cd",1495:"feb0a068",1521:"6b1e0334",1536:"1437a887",1576:"41daa8b4",1789:"79248420",1895:"efbcea9d",1955:"9976dba8",2040:"c2c4426a",2120:"9f5dc2b0",2166:"ade96904",2174:"0b1184e8",2184:"c0bb789b",2214:"f8438414",2290:"f5824b3c",2352:"5395b836",2468:"73517f78",2595:"07990011",2766:"4cd795c8",2879:"8cadb544",2904:"37bf8d6e",2907:"c5a98701",2938:"68543202",2943:"c5f202a2",2999:"f27e77df",3107:"d061ed1e",3214:"6db347e8",3271:"e963bf71",3360:"b1f7a5f8",3379:"dca8ef5b",3504:"5ea46faf",3519:"49f969b0",3658:"85bdfa30",3743:"e129cf3c",3943:"33cdb9e8",3965:"cf9aab87",3991:"83bd4574",4054:"b139d961",4060:"3bc993c5",4069:"bcb93ad0",4117:"ee5834a7",4172:"5003321a",4193:"2ff88f8b",4195:"c4f5d8e4",4207:"5049cc12",4436:"8602ac2f",4510:"17aedecb",4658:"75cbb1e6",4988:"73053340",5107:"9956d717",5260:"a7c030b4",5316:"530622a1",5328:"03b39aaa",5418:"b09e837d",5446:"d58fc793",5505:"d71eb2ae",5516:"4e095fca",5587:"4cbfba96",6063:"2ea3555a",6098:"afb8980b",6122:"79495b8c",6135:"0cdee2ba",6202:"a11550d3",6211:"797e5329",6214:"6082c6f3",6551:"233866fe",6571:"b0474474",6752:"5f28d73f",6854:"042aab58",6903:"d9735dd1",7053:"e58d15ee",7082:"156e271d",7142:"de8bc3ad",7211:"e6a4b882",7247:"9136c9f6",7485:"cfcdc3ca",7513:"dd8f50c9",7523:"205d9948",7644:"59f1a610",7711:"8677fb48",7773:"5afb2393",7833:"9c3f4df8",7918:"17896441",8113:"bc9a9474",8136:"0b24ef70",8260:"fd7be43f",8366:"d791b17e",8421:"23374ca6",8488:"e8dcf8cf",8572:"bf59d308",8675:"9a3eaf08",8830:"66fdd2ef",8948:"7567abf2",8994:"e768272c",9286:"bb7c9df2",9359:"d8ee5cce",9381:"5a2bb67b",9446:"0fbf73e8",9514:"1be78505",9545:"1a4b7b7c",9603:"d1ce265f",9617:"9fed84d8",9825:"eaf68872",9901:"1ebbe01d",9975:"cc3066cf"}[e]||e)+"."+{53:"d93e5db5",328:"b3f37b35",612:"ca9ba5f6",812:"d0d18de9",879:"fd0961df",925:"7cc019a9",991:"655d369b",1062:"71d007c5",1277:"f3950ee7",1351:"38206c50",1374:"d99021da",1408:"0c91b90c",1437:"b0cc2a55",1480:"416cb159",1482:"64e55287",1495:"b3b09a05",1521:"51903e77",1536:"5da109d9",1576:"4a092cf4",1789:"c2de4324",1895:"6ef6546e",1955:"3104359d",2040:"d6b727e5",2120:"5be90595",2166:"97d1039d",2174:"6dbb7c00",2184:"2d1d64eb",2214:"7264d55b",2290:"bdca46fe",2352:"b648ee1c",2468:"6f8097ef",2595:"af20132e",2766:"4f03fa2c",2879:"17f72f9c",2904:"c19d84fd",2907:"781fdbe4",2938:"146bce41",2943:"ae5d69ad",2999:"71e6dbb6",3107:"022b6262",3214:"684dab9d",3271:"838b2927",3360:"d0c9f41d",3379:"b921a17d",3504:"d3d1c863",3519:"ef6e8d17",3658:"8f78e4cb",3743:"2340d278",3943:"17d97ae6",3965:"34e62111",3991:"a8ef940c",4054:"22a00ac4",4060:"e075a358",4069:"3b212a63",4117:"3192fb11",4172:"e8dd5539",4193:"eb5c1d64",4195:"6165fc87",4207:"82e981f6",4436:"c235284b",4510:"d864f86d",4658:"457568be",4972:"867f29b5",4988:"141307a2",5107:"d54dc3d4",5260:"698749c4",5316:"7cd4ab05",5328:"275ad108",5418:"28bd354d",5446:"ae816828",5505:"207cb21b",5516:"8944bb54",5587:"8b845f31",6063:"f2d18f94",6098:"d39a41d5",6122:"bd9623bc",6135:"81161ae3",6202:"e1e8c54d",6211:"f880e2fa",6214:"ffee8da3",6551:"b1c24578",6571:"47b81ba9",6752:"e46470ca",6854:"5293d0a7",6903:"c2f23e86",7053:"5d9b306c",7082:"bc2d3d77",7142:"43cbeb05",7211:"d60ac9d7",7247:"c6a0e6c3",7485:"5ca6b0fa",7513:"99b27a71",7523:"c0abfca2",7644:"92a07f22",7711:"14dcd971",7773:"29f3f221",7833:"470cdac5",7918:"0a968261",8113:"0fb8ef23",8136:"3f28445a",8260:"a5fb542f",8366:"04c5ed62",8421:"f9a6d72b",8488:"ef12d303",8572:"99cbf2df",8675:"f5114574",8830:"554d50fd",8948:"4cc77f7b",8994:"75ec53ce",9286:"85aac46f",9359:"981524cf",9381:"670f3d20",9446:"f3f72a3f",9514:"a0285027",9545:"2de99198",9603:"19ebd237",9617:"766029ac",9825:"8b8e2c63",9901:"49669cf9",9975:"83d36e5d"}[e]+".js"},n.miniCssF=function(e){},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,f){return Object.prototype.hasOwnProperty.call(e,f)},b={},a="tev2-specifications:",n.l=function(e,f,c,d){if(b[e])b[e].push(f);else{var t,r;if(void 0!==c)for(var o=document.getElementsByTagName("script"),i=0;i=a)&&Object.keys(n.O).every((function(e){return n.O[e](c[r])}))?c.splice(r--,1):(t=!1,a0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[c,b,a]},n.n=function(e){var f=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(f,{a:f}),f},c=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},n.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var a=Object.create(null);n.r(a);var d={};f=f||[null,c({}),c([]),c(c)];for(var t=2&b&&e;"object"==typeof t&&!~f.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((function(f){d[f]=function(){return e[f]}}));return d.default=function(){return e},n.d(a,d),a},n.d=function(e,f){for(var c in f)n.o(f,c)&&!n.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:f[c]})},n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(f,c){return n.f[c](e,f),f}),[]))},n.u=function(e){return"assets/js/"+({53:"935f2afb",328:"65f59a55",612:"a976b482",812:"0d70a313",879:"e0b00178",925:"b5976878",991:"67283e50",1062:"2f0ec223",1277:"0243614c",1351:"358bfd91",1374:"b9e2db8f",1408:"db749810",1437:"83d6452b",1480:"073edd59",1482:"f24909cd",1495:"feb0a068",1521:"6b1e0334",1536:"1437a887",1576:"41daa8b4",1789:"79248420",1895:"efbcea9d",1955:"9976dba8",2040:"c2c4426a",2120:"9f5dc2b0",2166:"ade96904",2174:"0b1184e8",2184:"c0bb789b",2214:"f8438414",2290:"f5824b3c",2352:"5395b836",2468:"73517f78",2595:"07990011",2766:"4cd795c8",2879:"8cadb544",2904:"37bf8d6e",2907:"c5a98701",2938:"68543202",2943:"c5f202a2",2999:"f27e77df",3107:"d061ed1e",3214:"6db347e8",3271:"e963bf71",3360:"b1f7a5f8",3379:"dca8ef5b",3504:"5ea46faf",3519:"49f969b0",3658:"85bdfa30",3743:"e129cf3c",3943:"33cdb9e8",3965:"cf9aab87",3991:"83bd4574",4054:"b139d961",4060:"3bc993c5",4069:"bcb93ad0",4117:"ee5834a7",4172:"5003321a",4193:"2ff88f8b",4195:"c4f5d8e4",4207:"5049cc12",4436:"8602ac2f",4510:"17aedecb",4658:"75cbb1e6",4988:"73053340",5107:"9956d717",5260:"a7c030b4",5316:"530622a1",5328:"03b39aaa",5418:"b09e837d",5446:"d58fc793",5505:"d71eb2ae",5516:"4e095fca",5587:"4cbfba96",6063:"2ea3555a",6098:"afb8980b",6122:"79495b8c",6135:"0cdee2ba",6202:"a11550d3",6211:"797e5329",6214:"6082c6f3",6551:"233866fe",6571:"b0474474",6752:"5f28d73f",6854:"042aab58",6903:"d9735dd1",7053:"e58d15ee",7082:"156e271d",7142:"de8bc3ad",7211:"e6a4b882",7247:"9136c9f6",7485:"cfcdc3ca",7513:"dd8f50c9",7523:"205d9948",7644:"59f1a610",7711:"8677fb48",7773:"5afb2393",7918:"17896441",8113:"bc9a9474",8136:"0b24ef70",8260:"fd7be43f",8366:"d791b17e",8421:"23374ca6",8488:"e8dcf8cf",8572:"bf59d308",8675:"9a3eaf08",8830:"66fdd2ef",8948:"7567abf2",8994:"e768272c",9286:"bb7c9df2",9359:"d8ee5cce",9381:"5a2bb67b",9446:"0fbf73e8",9514:"1be78505",9545:"1a4b7b7c",9603:"d1ce265f",9617:"9fed84d8",9825:"eaf68872",9901:"1ebbe01d",9975:"cc3066cf"}[e]||e)+"."+{53:"5bc52433",328:"f5a73650",612:"aa85f85a",812:"ac95537e",879:"03039cfb",925:"8af95d4e",991:"e19a24e5",1062:"5feb3a34",1277:"a47f416d",1351:"e154229b",1374:"8daa30ff",1408:"e9fac07c",1437:"0ee1da4a",1480:"22a539b3",1482:"b7148a4c",1495:"f5bf6b15",1521:"947013ff",1536:"d389a4e8",1576:"d32f3474",1789:"1893b6c6",1895:"f955d5ba",1955:"8b3f98a8",2040:"bef1be0c",2120:"c5b833e6",2166:"9e2eeb19",2174:"a0682da6",2184:"b41989be",2214:"565d426f",2290:"54c0d56b",2352:"ca9a8787",2468:"c13fac26",2595:"5070025a",2766:"16e6d977",2879:"d05aca9a",2904:"c074b3a5",2907:"8e3d8593",2938:"c526f010",2943:"feacd685",2999:"3628d4fb",3107:"e2d49b88",3214:"da7f7d7e",3271:"1a1872d8",3360:"65e58358",3379:"9ba6fbbc",3504:"dff9cc44",3519:"f0b77f4e",3658:"50822f6c",3743:"ebac3e77",3943:"17d97ae6",3965:"1db38a73",3991:"da9a494f",4054:"63a19f0d",4060:"91d07a38",4069:"92743b72",4117:"08e208ae",4172:"ea78a41e",4193:"af99d410",4195:"6165fc87",4207:"cd69ce85",4436:"2fbb318d",4510:"fd670cd8",4658:"ff8f30cd",4972:"867f29b5",4988:"9429362d",5107:"14f66aae",5260:"6e8033b5",5316:"0f337f1d",5328:"06065eab",5418:"1786ff7b",5446:"9aba0b23",5505:"dd3e0d2c",5516:"5222a5a2",5587:"8b845f31",6063:"c9acbd18",6098:"a54e1100",6122:"89f3324f",6135:"fa76eaa9",6202:"d65350db",6211:"64e799b1",6214:"51552160",6551:"9bafb2c4",6571:"1bb48e4d",6752:"04e588dd",6854:"5fca3199",6903:"477491e0",7053:"06930a7b",7082:"5378f3e1",7142:"3c592585",7211:"96ee7924",7247:"c23f1f61",7485:"ab732075",7513:"65cc64c2",7523:"36637199",7644:"55acace7",7711:"8481ccc7",7773:"866df98f",7918:"0a968261",8113:"766741f6",8136:"f85ee913",8260:"c4e56667",8366:"5320150a",8421:"2fad5b54",8488:"194028a5",8572:"52b23bec",8675:"4e8f92bc",8830:"d42b7015",8948:"6b9f80d9",8994:"60a2384c",9286:"cf43e7f9",9359:"85d92d5a",9381:"11c3310d",9446:"9409e85b",9514:"a0285027",9545:"acaa0bc0",9603:"8c93bb21",9617:"78b8e9cb",9825:"a3f3182f",9901:"946c1b06",9975:"f8efdb33"}[e]+".js"},n.miniCssF=function(e){},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,f){return Object.prototype.hasOwnProperty.call(e,f)},b={},a="tev2-specifications:",n.l=function(e,f,c,d){if(b[e])b[e].push(f);else{var t,r;if(void 0!==c)for(var o=document.getElementsByTagName("script"),i=0;i Contributing to TEv2 Tools | TNO Terminology Design - - + +
-

Contributing to TEv2 Tools

Editor's note

This documentation is based on the ToIP TT-Tools Proposal memo, which we currently keep as a reference.

The 'Terminology Engine v2 (TEv2)' consists of two parts:

  1. The Terminology Toolbox is a set of (extendable) command-line tools that can be used for generic purposes, such as resolving TermReferences, and creating glossaries.
  2. The use of these, and other tools (in our case: Docusaurus, and github CI/CD), for facilitating the curation of terminologies by terms communities.

We are seeking parties that can contribute to the development of these (extendable) command-line tools, and do so in close collaboration with the eSSIF-Lab consortium. Please express your interest as an issue in the eSSIF-Lab repo.