From 434ec7d9405643c2fb925e8fd936345507701fab Mon Sep 17 00:00:00 2001 From: Vincent Kelleher Date: Tue, 24 Dec 2024 11:01:33 +0100 Subject: [PATCH] add Linked Open Vocabularies recommended ontology metadata Signed-off-by: Vincent Kelleher --- .gitignore | 2 + linkml_model/annotations.py | 2 +- linkml_model/datasets.py | 2 +- linkml_model/excel/meta.xlsx | Bin 29107 -> 31571 bytes linkml_model/extensions.py | 2 +- linkml_model/graphql/meta.graphql | 109 +- linkml_model/jsonld/meta.context.jsonld | 63 +- linkml_model/jsonld/meta.jsonld | 748 +- linkml_model/jsonschema/meta.schema.json | 4534 +++++++----- linkml_model/mappings.py | 2 +- linkml_model/meta.py | 587 +- linkml_model/model/schema/meta.yaml | 150 +- linkml_model/owl/meta.owl.ttl | 3017 ++++---- linkml_model/prefixmap/meta.yaml | 2 + linkml_model/protobuf/meta.proto | 109 +- linkml_model/shacl/meta.shacl.ttl | 8238 ++++++++++++---------- linkml_model/shex/meta.shex | 141 +- linkml_model/sqlschema/meta.sql | 127 +- linkml_model/types.py | 2 +- linkml_model/units.py | 2 +- linkml_model/validation.py | 2 +- tests/input/meta.yaml | 10 + 22 files changed, 10677 insertions(+), 7174 deletions(-) diff --git a/.gitignore b/.gitignore index 0f3e52db..a9d0318f 100644 --- a/.gitignore +++ b/.gitignore @@ -158,3 +158,5 @@ cython_debug/ # Apple stuff .DS_Store + +tmp/ \ No newline at end of file diff --git a/linkml_model/annotations.py b/linkml_model/annotations.py index bc5c1cd2..2bb49521 100644 --- a/linkml_model/annotations.py +++ b/linkml_model/annotations.py @@ -1,5 +1,5 @@ # Auto generated from annotations.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-02-07T17:29:22 +# Generation date: 2024-12-24T10:53:56 # Schema: annotations # # id: https://w3id.org/linkml/annotations diff --git a/linkml_model/datasets.py b/linkml_model/datasets.py index b05a6941..710289a0 100644 --- a/linkml_model/datasets.py +++ b/linkml_model/datasets.py @@ -1,5 +1,5 @@ # Auto generated from datasets.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-02-07T17:29:27 +# Generation date: 2024-12-24T10:53:59 # Schema: datasets # # id: https://w3id.org/linkml/datasets diff --git a/linkml_model/excel/meta.xlsx b/linkml_model/excel/meta.xlsx index 4b28e8fbd6c7d0d158ee4683f5ab4184fdf81c07..6e6818604b5754d4fc88a4afe4ebc459a16a5e6c 100644 GIT binary patch delta 12634 zcmaia1yqz<)HdBEozg8O-QC^Y-Q6*SARs-Igmg(a(nv{5BP}5f4h@3*Blumv>;2aH zXRUeTyw5(p&$G`yyM7aL`VtaNMIIUk8v+6X0b*M#T{jV}0`TjuQM;6J3{D+^gn)Pk zzFRn(tGGG4xU-l$yIC^(I69;xDk}G~qC`9l&-fouEhR+O8Hr?xh?!wV>L>f?OP=NR zm9BJ^FzIu{;KhM{T-R38VHF`F=BP)em-e*p8XnYhxT+IJ=EHpY7Ob>mM|OvCEasLG zVZA6m1NbI>@(jkDdp)6Hw$Kzi)s+jEwurO-Wl*sfrVjK%zPK`hPyg4Cm^5h*4(Um6 z58c_-4d*pi+%_U&dD;a9I~7LKVkZhadh)gAWPmE_G8aCo0+*Gc<@tPLKbdn4QLv~; zD4n9+Pg~pD)`YMdP0TdiRHJ88SB5Y2UV?;LgDB69UokIO&EHLY`jP^AQHpbS+kA`s z?{2DJgcO8>`PEVNL>sD^-^s5lG8F5h6q6NGrWXS zaG_*PTkxE1MuY3d;@E{`Zs{bmsS&nYa^sH+5;=Q*1S<<+-KkTTPvpKbex3**h9k(D z7O%My&kxeXMp~Lv{w@rHh|oT_Md*|Ch4U@tQy8M2SX&Mkhg(~c+sUA9E6zav_)Jaw zNka4;K&?!HJHx6&PegBPfZl3Q3u~L866yOfI~D#Gm^&T}k?L7P!ED!cAYy0a=jxH$ zy^*6YF$$7G1U!W~@7^qDa=j|QJ8jZWqy3<2B5GbGKAA)6f;9K-eJTA~d}HdBD*MgZ znd3!u35?1Qy_9v1g^A+c`_{XT7ks<3HXsV(RX}&G`ou}*wOrm}g&7Yv+m%=S)D8LT z!q9=87lvkqClM512RzD==!1gF&uh=M81A9Xl+ePmq9KB#bF)0arR#a>qB+-5nh^87RE|8^m@qO~bWncmZe5t{1H`gh#5Z)5uKxy7y z?Dpx;3Cfyc^-r~U@ut9=cyktNFZk#A!@4OSf41>381c%C?T%d~h6zWrk`Z=o4r~Ma z8V08H^gqR{NJ{&kYFuj-UL%QhAJ&qVWGwjZ zW3{9{VX@RH~exuDkn$3W%91ZuF-IuvMWQS=9Lv`F6NUXrhFszc-bapKO zEnlPBgi^cBOy9u`y2;5vl&ZJriNv&WenL4S^IJ$fr;w8Fkv3NQ8AU7p8i#O3BYJQ) z$%=BIa6XtO-(3)`L2?Z|(d?-LN(&vDV zv^Dok9*n^UoCs@W*O&98z@B$K5md`xYUTGEI`E{r7w2@ylrUY-*4B^)ZJ7&-+*tx; z3&SU>w5Eb|UrU#v`JtP%lQ!C%_pK348^MM!U#YO)D>Z#y2Ucouvh!%Ri8LeW%!)T6 zFb{5`i;nqhD)+87X-%tmNqvW#8=eLj8nRz-K$FK~J$w`2?~j`M6cBqWvk^43+z%rw?EXVBe?4@HS*v^j7?O#5mcfmWcIW0pFBu*J3m6>8tOB#giHv1#c zXttXU2N^}^s0|`he{s=K8FvHjef{t-`FQ@c1~USUBrVs4&Uvzox= zXq}qNIlS?Pt*5Qri0Ey%lxxJP?{22}*-XBnizDl)`-m&sMg7(p4PY$ECz<+e*6rx{dN^9xL$OE^wy{xv7faC%gOb#lVk!;g z9eZo1Vm-0r-pZKGv$3Rp7dU5>+ZlD1w~MX&c}1(e`~qGxpSum*upUYCMpxcv$6i7Y)@dG0$IH= zso<0P19Qo!fB*{E`XREoC!TNM*1!}2tF{Uctni|d`*D^(0})>P_~|%PcPK* z9laQ3UhB;zbkTw=w^&C<5&{T50pf!8RIoLB4NB#-gKI8+nn~3?!?JT(tn!Y?q5CwA zvsLdI`U=fiEVQPliep`K!Q_t$t;J$sd;Lm_Y#bATcK=7E3G9$^Tp5mmR9deCbu5nyA+5u#p|)Ab$PkL)N0Vpz6D}K$H1At4q zU1#_v%jA`Y3dd)MN+>WYben7+18!~*<#Z0kCX*^p5%CJBw8jTY>*}QfRv(meQ2na4 z;es|UO;xz_cQ(t@pSd~8GTG~sPsd{#mKRTYVVVCVWeYk{6F z@<+hcTxP&yeoL-3bDAQ~Nvwr^mZTr@oxk#(S$gTWud6P8vzVrwje_Kj6v3L(CJUVI|#v$_8c z@a}z=C=e5%FCQp;x>+Kw%;E3P$4_v73tD-7wM^^iD(t;5>gp`6JWDX{I6Xz}GjZ$1 z!F-L;Ixl6}a*|n#cHC+d|BkSU=qQTv_45+WeTyXKPNj+C=%vB(gYv-<$4)~jcL>4^C z4auL)tsJEC8@ZT50gNe)i(ZTF62~i^Z;}364}rtfRFLfTC)E2;kL>BazfDgC0|7zt z>`}#pncx6mOFC&0Y_OGV^50en#JCH!L>PYN)2}GX|vT20<i-GJ8;<<7YP;CS$Z0!;V@n8lJtv!H!_|~oGgPxl4oE^<|l`Gu&d*il1 zVDDsXs)kHw&18igHS(T&){y)M%Fn#7n|ctkpbb@2Z-%RaOQh)1Hf3C;u-1eXOOi1L_x#U~6 zUR2Q#J~x0o;abrs?-HKUSVHSLY^P6`lT%|+P|@9S9z7*F?AHck;1~XVODeH$?y{J} zVqVA496N+cN8dZMh?ZPyipN#8%|pH&Q094@5e_YPLeIEY#HqQO%|IWg$#IN4VAg%6 z0x4M+=T%(0<&{upH;_j!fX*2zfLT=WmP91Zjtjew@W%3`q>ltD3yavaWTnFQc6~~bDFLDX&0U$8~ z_zpS%68vmLJGxb1)#P|O>3Qv)=`!Ku+6((@sQQ+gD%_cYgxUy}m;v#Ld{D%)HoF#R z@KUDNy5eh!i;(kv-D^u&Bu+%&u1FtI@M|jwbHlAr40=_s7sG1TUwV|9}b;ap^zZ=`WGy8tI*@k|?#%`2( z)R*CB*2HHq>Dbd)MI_t{q+JAkaEW%Ge}}uV*XO|Auv+I9LT~TR^K3p^t;vh2ke&Pr5=Tals-`g9f=Km_-bJj zD5o}q_BK$llYc$yYUcY6gD|?D2>9<0MLqYIK3JWw0svfs2dIB9E;-0qU!>q5AZ$o} zEhYdq&R;Cw@mAk`i3=nAAv$8>-KR^AG|;DvXY@s`dV^IgvP*a<5@MKk7$y*`Nk0zS z$hPHQ`tJ%{$Wj!BjhKPHLS#8)cOerMZP;iN5h>Lx#*7X55D&+`xAfU2wA@QeIctnL z-<{w5>_c6yq>%{%ef^s0%G5Yk46HhwQU=gg#Y*XW?n&oW+V7pXTP|O6@DD#nsyg?> zY6}H)dDq3C^tlX7ma6wSW){rS zEcs%(pZxNDOc|Oi>6%7fjI5@rcIUDE*gHMN;hiF`$*!smM(i29Q#Ng?M$(#W`LLKp4z6>{>={=zc_{{P zmXrlIIJPlps-G>?hx^F%%Db8j5QG7DS*tg4zFxW3tocMkj6xLs*&F$%L@{!bhSQ9d z0tL4u#Sut;j+PpteLo_Qhj^3Z3M@@vauT{7nU+4h`Pz=-)E~)gn!9AV8Koe!dNwSa zd)is0dEROvq0JMbEp>!I60=Ka1!OE@yE2mrfTmqUA9DKYfr@&XN%D%gB!;@T$x|V(T(SL&_tT}-)^@YC|)d#Ljfzk=u(TSob zRb7lvc<8ehYgqE-@TZ2avXm`C~l|Vys}pXG}j*C?u!Q+Xkx54jPQt56ZHAy*OXcU^ZO?~;Z&9O z+N=s-5LfA6Ehbtc56QTi$+%lC>2-6FPp2(v+1MoP83j6Wb_I@;jdw7RJe$yJN5kx( z=`HS(oj&D5xafQ}Ym$0JNFFAG7B(%GJHNP}@h$g&q2!fH^|q4^VvkZefQ?~-28qf) zvXjYNewr3;3*)3AdZ9%m|Dctvbw*W1ulhWWeHdfIP$DVe&T`1lA<|t=)iyMDQq9j@ zF7oUoIh1psck9MT;f?E1Mmh0RKsB+!Pu^Fpi<42Z$y3vIG_?4<)fwXNg}088{XSj2 zMhOx{r|-&x)n>$gDdVw-47hw5XAH)BYJrGE!88J!-t_!M|M)W0L8f>{Ng@bS#%-^| zq5zFeNlL^GD$<2-Cy|ly!$ppH&;dzT1lb3ESpEWxe<0~&w=ceuJTkZcj@Fqo6L*Cx- zFezeIR7RU2*@&BL2?@d4Hs7b%k|^9Fj<3$BD_ErpyU2k4=1mC{k)t+mlYPP`Y{{UH zWRd>R!zJ)sbNp{l0ns?3`1XuqZ79*=mXIM?GE}!q21@WB6rxT9V2Sf8f?d$6E-Gpn z-~t+1Jw|P){io>2^25|ZQPA27$@6oPY#X|ch!VB&Ju^X{$_GBxF>W)2-@&DD#W~DR zm8R{7>zp{PUrXE&a0`*W4kqP!i;J-rcn(+S9(nErO^_`19^lPQf_+NPCecRiz1b9| z_vxz0+pR@c=6b4p#=3SZW|kQ99T#gI!Uz}NT>3cq2I-F~yt5!Mg(@c-&oT_L-6L=KJ-a+RZ$&wZVKR=_a4($w=!{O; zD_h^M#Yh*~GXXSxvhJ^^H?Difur4{y01TIih6m~Z1p%KPss z(pO%f2^o&!!Q*k0;%aZ~Z(K=o5eP@qY@Ymx8%UanQ?}Y&zwe6OzEpR04GQvduTL)t zF<=o|As#(FXIuV3iX`>`cWQ9UdDE1r%9v5xtL8+9fWO2xG}j_(-noJ=2#>)`yDIg^r6yPQZqa$>Kj zx=9ydWQYMU4MO2QnS2z?$9_B0RFRLUo?Ysipi5~X;e>! ztC^WQ>HW>`?b_bGGweU&i#Y^Tl$7ff)}AN|oD79eTV1$ad|zLD&j0Rt^3sJ#oQL?G zDMrY0YP=WW5>T1znnJBj_sFPoacwkdFC{)zY43|?qP081SFW{od#>^~huFODd6!sE z&%&99J~+r3+ypp#UU1lH33UarK3M5NfKE&>4dJeaxRxEY)+(bT^w{|TooFS^9>QhS zIR*ia3l8&aS<&g%ZHDtV6zKFUdO6yA5d{LxFEO2g$XRpLZ;)?9b=QzDVl*9 zG0RZg8(t^M5*=`=&5jpp#7;8gpX7yYn$Cr5C3c9`O^(FvWsoLFd42Rdh{w_EZFu#wqaP`=)duV7mY-(&AQZ*pIpLj#Qp{QKv4IGKS7CcX- zTEg;G(xl?{P2l6FqX`OGGMirO@vBlw<(Ir>%<{1|#2V73QJakyAlwX8Ibrl@p~-kQjRmP3`85Yk`F_k$CkUYgTw2fi!ld z>tznTKL>QeG_O4;q(p-w!_fTPYFXrhsGRV$;uo#9gwja`5wnT&Y>Xn(XZ#3Gcy^ms z61IGij!|0%=~Oj2fQ02HQsN5&y9|^heX-bBYx{F|cX&kR>$fBLns7ai?dT3F#m8jz zL~@=D(9v87cAG7J#hUQpHC7`^v6=|mG^9*!rF*V$d82uV@9i;$>!NQXMDgeIUVnvj zeQ`M9S`#xpXL1sYVX zR`kZ0l(l2qOiG>dkK8RWVXzrL%4aW2A2+vs4rjf;S7wEMN`y}mI%5tm{a}rkwl*$@ zmp6BlaOjpA!x^v26Yn{jtDwCt_EQ^#VL_+pPP3EF(Jek@UQ@p_+%e}s_ zFg!rG&m{GAKY+8fp^vv3%~}x-kp+HXIWoL74*uB#>pQt?L8^8S%qb?cu~6`OhaSs8 z?h=P_=4N$TI*vvmLUpd6T#7GwxHuSO}jJ|=rq3%k#JO$AJoPF-j>+bRXZL@}N zLAQ=UK|p*5_6Sk{FQ{?q&-uEcP=6gWr5~O$wtzpq117Q)0cS;?0UxO00dfRkjt(er z4*poYLye7gKVJT*``En3TNF%VY*KC4_VfPa?tCJadw1RxR^&@1C$qvSj;g;3cAim) zrYX9<%iRQ2hi0E)*9)-&QBFY%MUWkbpSn(wp%BTH`A!huKwONM%W?f@-SWE?a{Oh5 z)B6B!m%KE_efa3T7ESpU7(lBX!MYPDciIM-*~a7T>wc=7Bhu0FCK=&vy?^L*@*(;r5hfEdD|lB4W9*DlB`<07ch$>rS$E#RHu zJI)%F>^$VKc#29-sL`kq%d?xZ0~0?PV5>H>;PNI(z?EH{;wC7N$S1p@$tDH|VyM4T z@n4Z*4#|$3L`hNptno=bidqp4vs;>1I>@Dw!Ul7OmJNj~efXdr=KD`kBpzTeAyW=Z zQ929s)lw4;!A^OfjW!^n3P}WU*B})4x#I`UT9`}47)$;0_G!y4to3jhxWj;KzPXVQ zOM>lG5`SZ;AIxx2bSa4GCROjcLK;oP120(L*6c5(smO)zj`SHkwd9%Ee8 z6?#%(G4YDs%@k>{(~09OLq7aE>wOzGO{;HgTzeItSWXP>?G3Zh)VOti4iQf2;i6SA z&i%4k0iK>gfz3gPu(qL_XMTzQ_8h&)`T4a_+OFrR?5KpbaW9Fs+L*9P51x%Sq2ow~ zPIESW*9@}-94=1<=c4~efBf2<=n|Ug(!4JYX5LXIV-;!7AmZHv)J<>wK_A~?9#!^F z*ndxSV66xxuvZ+j{+meC(-{gdSDXr1Cq-4iE1v&5B~FS8cuY+MToXsEpOZ>|(t~6+ zviI^}->o{>cMJaH2wR^is|oq2A_Om9g(-kP>HPWx$MHzBV6QGgJ-58T6N292P)X^x z`H-TdZgpIvQ98-dc+unKykSSe?u@`jO;O(&=05_5+k8+iAe@HxG0??Dq6{vq_U z`@R&T%Cbzl;!UZ_b;8|ZQ$X`9u|LIP=wqvBt&av!3=L`|0l@k~v-`qy#t&+Ec}&oS!$0&wQ=cE@;|;-F z2IjU-p2@OMu|Yv?`tf%O|JDiIHrJYZ^6XiP$HKyI*>pN&@?D#ZqdN+VO+ z*xv73VQ~R|mW;uPe=Z8a8~vH&oN5KBJUgg>y)DvNS$dHLXo57Du_@1p=;uO=LR!gL z!C+wUv}EljV~B2opU%F0$)(Jm%!l*W{& ze2YaLc*1hCF)ks?&G0$jaUW7E+2c*4k)3ONe%%?ef}@*veue)w7rjXGg^#56uIH^< zYB{#>)#m>>r3Xhzion)wt08xJ&;Vo}(p(VhYPizoQDn#;%{^mz2 zW6VZ)$!Gi2Iyjd#u!HRG=UUIa@ADBV;b+eiIQz>dcNI-jyly;};|*{3@cCaZ_7qKs zSy!HB0*!=-0Fz1uOf9*Sme0Qd1DXJ={A(2VEX{;-Uv>H4l$T*>*SgOsoT{QAq0C@A z(*3-PpnRI*f=^T2*WdbQp)$mvb{T}U&9R60i0n`13BvU9@y|F_%3n=Yt8>HzvS;5^JL&)!+NxD1?97qkQCO1q5YOduH64)^WixRx z7ZP8=o-Q&CLl`j@Jd~!FzyMx=T$Gnkkr4MgB z_Al=PWwv#y)kfn()JLO;$Nbe{eFoFYHwXKMt5js1u1eh|l8;T*Lkv`6OWbJ& z2O;so-|vWTR=#+ejh*WVDgEv8Bl5i){k6QSfhQ~hIC{wk_*NMco}KOKd@oCu2zSo0 zfZA17fbZw?l9h{)l0{mf!9lNjpt3wZK^h_06e@GJ*cB+XBh#gHo;p|3E6S#;g9HZ4 z;{c>hiZWB-L~wOW2z8)4ycO0p-gz)M_Q1w6gH(1lT=_ENWAZk{#YversL<*~mj|{Q zhb0LGLqd}BUu{gFzvxac?NjPR&)-<)c*(L^aCgQkytGsbfy|N9n$LxYPEnSt#V^iy zXuQrkee`7mNTF%*{72uQ>6?leQHLS$n(ItmImBM|0SjmNdq(asRc#c)(5cAV2WikS z=XY3tA-TxR)^Bo7fmzn)nBMor0R@IKC^Hprm5#sEl8(hAnsP5&g-O`FuG!8Ei-)~4 zqMV|S8sWc}>i=u^io0kwk^}C)0%%~ZK50FPcG+((9M*X}r_piv{cfyB1<6q_j6nKC ztApz4EBfQrCBbl#$&eZy%SdgQ>QJmH!@<>3{7J$s#By|a)LA9!zfc($0n z(=R1^RCUO3(0)>Vx;#rlcf9)cIY(UM0K;*uZI0V?Q+|ZLIyzFr#1}W;RQ-fynT|((a3=86@wFsA5M5T?Un*FUvtEqcYU$H?_Xkxxq~RObdc%q zyi#JvY(3y$Koqc=4=DlnEQ{t^FD-X zUK%+EzCIJjUhtn+c;+iHc3Q6u1%GJBF1izJ3;iBW&mgSEhaHnr<^_eT>a>Y!4@+k@byEp_z^s^ zVt>)PQ(V3Pi`k_Aaoc$+PV$=Mi)$lj+F0R_g$68`b?|CxuR`5AA}!aXwdIeO6Tj1e z-Ync9ro_d+?2JswQSm}JyTp*YqPWb~A8D3WD=1_!J0J>4GcqZ31;k9{^xqa(`Op)G zsovJ>0P_6I;jNck1b8+Kgzj+EZoE-hCq`lB^x@x#rVQ}A!&EnWdF~X_mWFIg zHIK-);Sby9jZvI`3bJ@RZ)SG=+XlAt(i%o`1*=U84g>@t1W?447%;ZLANP?JJN#>< zgb~De$2VRI4UPs%E(}<43}5<78F2^_3i`<~J9>8VW5lh~=P=-a$6)h>ddG)M2|H2PRnqCXwA==wLZ+Nz-`xA>}eHL91EHiWff>rG_K zAIX}@Rz8|EldXQtZ6;g$xZX^*{*kPO?CVF97P5_xxh-UyAJ+jb`J2P*PnWo$ZUSO$ z4}<^T#e28K++{g$Gp@(=bsRt3;L0vt`0qy&zT?$>pUCFn*VdoSVEPJvU&ChEG4Bj>j2lW2JBV* zH;@Gt2<2;7&{@pNOt{ov%DE(t@1oltG{)t!kJExQvk3f^(z&~e^e*?d>f`L!n@<}s2 zVgTIIFGzob9JwEJJN}*9ABXbaKs&xiAg9Aq{r+(${U^sfp+{iAZ{R=9rT+knL?3~@ z4!_4g(SZ;uSpuAf14MMheC*GQG+KmaaJ>cpBOE6E2vl*ze40?Cj)YLI;GG0mIPJIa zKim2L46&x-BXIS9ge$?q^Gc6t)J{(&|FfO{kFcJ~Bal=H4&y%q$?rr6wWj*`z5aJb zd%c$mzYG}5|72tj_A`L1d;1&s#|!Xx*Pm(p0^+{p`DJYWr%ViILZ}<<$E+fqF-d=E z`#(FY|8(1Vk_#U2v-8s!{%zC#nc7E&U|oNjI)4nezpLeD{J0<(x%?i#ci@W1nEpy* zWBv$OsG)wo}b`-gD)p#VX+xJ_lxsd6ey2DuWJ?QcU==ka$qQw9`jI5Hx3hqjDa4UE-7?B z9LRKnqFC|^H(}TQ1aKfUDr!bSG`yolfwFODEew%zVPS(num_B0In{4 zgG-315}`|Yj|5iJC!FQ(%m{QZUmw4(v3>DuCF`Fg4Rwc!+np#k)*l1JP;|D?5$6-n zz%3@le!sm^!tAB8+M3yC@AYKeV`O7G5+YdK7|Wt|!J9HSk9F64pmqrWsUv&%6LG_z zKY;uO&_AsNfx-zRBi`BxLXP?z4*T}3)IG;21px#)!~r`IlK@X|jT8}U?+E3^ZEFZk z!BNRXI0^X0OO?GjSuj0l{(5`{m)pJM!=5;uvU`bgL;4b}lymk{j8wenBk!fFj}?Ng zZb>*GooO$kgK7~fZ1#Bi1O%_7Z!K`}S3_+}JZfCq3D0QzrxCr!E}cA1)ECRJj$iQ{ z8)oz{MXuQe0AU)-1HMTP6>|&DhN3@q1=+T*1Jq?8x>!Cq+5wcv@HrDxeM7o9)KKC) z#H(tDZw=%1NuRCTWiZ+PR6PJ5eea}ylT>%GGj1h)iMFWCaUrz}i9 z&f%c_gaU!b9r^=bO^?X;lnkQ7a;)Te$MKlSFS46Svt3_}oyNZP65BRIQR?vgEn#3w z4u%`iZ#%oXddM+iy)@pHT{LmsR;-Oz69SSY`XTq~#^_m0im*8k@`c6H9L{6R_q5#1;G^VR%t(G4EOdN1iflb7KToqskuZhU4>{n3JFQp7JueW50nX7Au7tI zf}F`og1Rb8-Sjk@bSd5wC{kG#hGqNLDOOvlg4S^<59>4yFwq&p!?H<9b|W0sAM?_& zzAb=6nhG>!WvNLuP3x4=ho=EWKq-3tEEg_`>7mmSja(0Pn%K}NIo*OPq^gpjMF4?e z`zhIA8jGkw7W&F~A-15l8$I%RrXat4mXU*+YT-NCkT}S+fR~+->R=fpzOT1{VUuLY z%1Ob^3!{=@_Xw5jZTC=UsEDs48UfvFIZ8l&O-th#(ZS^mk44V6Keu)(R!4Q#lX1fW zlJ<)%uR+dW+d)7AP=TLp;k7?cN zz0IGelNk1o{2Nw4s`K*UJ7y(zDt1y|8-n$jlxucVg4z04G#q=&UNQ#Hu9s$`h%F1I zWLNbjUnvk+#D{fN1vAl!1g6!K$K%y zv45h&hxj3u!(~F7Wn)u>FSFkVMnb(dc)vQ5=i~+1fa@Mb%)BZazj zm8n+V;oiCmbH>wxNKC!!@a9pHp=RVzQQJ%Xz0aN)$oZ2X`=Adzb|hd!WgLmKBkG1U zcd6CcL=x|7IN*_3uM9>X&EqL;zLN3M8%|ioUkx3m^{iAj(AlPCZ=!m;gj0s4Sxw#M z(eoLwddVHAo`rhc%eA2JMwt0q<=1A$^cZ$8GbTf(H>f`Jsq+_Df>J-mB>5^D$yg zkJ0yi>^DP}K{J~%fyR|}WYGz0XO%?E5{0a}7VntM&+{e6@~lgzo8v+P)w|!3QQZ*U zkN`oCg4=T$=CBpCx2bhBobwGT8H06HTeY!AoOD#XyIW=nm-P1E9Htvc2<<=4{o zB?UyA!}88FqFvLU5!kC^6{RJP>8zI#jxpp_uR`-83YDVWvbWff-$&I4$?WLoQKp&u z;bBL-n3df7H9~PCqzMGl)0KZY&sw<94gp$Uot(RQJUzdpVQ=C$LSd?L2KxjlsrwyhZCzE zi$m1FO7tzeBJ9jrMBhm9n`P|K^1;S6hvMPZ8hu~AahEdkY(*GRr#&~(&&GIL4j=C0 zNME+G3gfG{Me8Mo)DK3dox1FqEBD|UjA>>wLS(IOB9r!({vtE@6C*8Hm>w0J&4&-^ zXY9Kt>-CZe2`Y@NLAba40yw$uf^{6!1s1HufOk!+3JjLkH8<27qQ|ACoL1>wrsPRhfs1vyi9H;LYgv4?*)Z&o8d%6Ql#Q$%rM|&Ml&{ARuqC6J)yV| z_FKn^d5mn9fOg24X4DDgI#nFx2#)n((hc$$Tx8t_p$2@_NJkR+O+RlR!dPVg+27zo|SZ4!BxN4>Dg_a+&wu-K<&k9tJ zM4@-QiFh^5pey%n@kp;jIFL=C6hnHBd@U-plg~p>q)eiUT!!g59^`mU6erL06i766 zmclnd+dIMJuY}*#@%pILDR0W0`!4EQtnqYpWs~FD$zc?G@gsTtPXaB3hXuRjbkROp z(ajXcW%_c8%SsFWgMw%P0wfqZ;@`=g+Km;$h_%~ za!A{}L260O6z%Y#taP}_76TiDSpma)qC}GZIvWV%?m?Vw{ zQs)fnzW1m$dX>;VLC@avuYtHl|01(X2>C!8o>V_TOoVq*`tKF;Kc6=L6zsN-1V~ zsM_!aXt>+4zCosxP&MMhYRQQ z_zH~Y81c4$tMRv0*(zh~e>e3Y(Q|`l_Feazc(=P3Eq}_YkTXzN3|StjXjwSF_80MW zbrotzVBek1(Ea_Pt)t6!acQ;wI=k_><4j__tXZ5%XP#KbQS@c7?S*+o!+zGfk2>+L z;xwC~gP4X%6UJ{p3#SI*nYZQ_%RtEbUyfwM>lGCbG6-}=e(y54Z(T;+SE%bGKYqv! z!N+f0bnABPL)6_SRM66dF8Yk=?J((a_|ngG+EEx=#tkyT29pA!70MTgynfY>UJHH+ zAzR&T(#wsrw>4|Bu8%DC<|BUVQeZ=3R4J`{Zn5siN@I9FLd9*=0Sne#UfzC}J}UC| zhXX}5p4&3dfidayg6b1pt4+Og!_;tS;>we=rUKwFr8*@MK+lVl@BYt0j=CjJH=Y(gwu`wTy15=#7+j8 z=exXLmFp<5x{l~HWr1Pdh(Y@!H)C~0XZ%vbGHD-Ei-O>w7mBi?n4JhZR7Eb<*u*d4 z^PjSXj@kx)eVmmQx#2iin)kAZHn6i;>)vrl*c;+d`v`68ca6vMmEbN z8+gGf=sp$}8sg1{O;{ZSn7HW{CIPmHl@S(XrA)sl|=}ksYrC!l;^R zt%1#`z!m<0SZRA%RZKUO^p2RpxTLip(VrhqUIXKn{D!ZmFECUG#xQxz>Sg|}lqTieD+rw~3j^yDe5wI#!DYQ^?_&nq{sowFm|TDHeJtH!V;7Xl=f ztJ(o>2ClT+?p32%2c776?|(}aF_V%dt5eh8Oa+gahm5wORc|8?sk5S-6fVlNlYE|B7v_>B6nimcfj!z8LPZk&*n#EsvXt$ml6X!5rsrmrc11?GSU~R z)^>UcqS1Y{UCED5Op{Q2urnL4D&$=&;Zy1d9zIiQ%@4vL5Mt?{>Z@eyV~D`mLe>`Z z)qV?ZR1g074HdtCar#guR-mLH7@Iu_Q2gLLx9SRylzb9#mCh9+?yLS?N*1SVeLotZ zxT?Y#Kx}!b0v*&Ns!1^wV6gLf&sOIkR;rkim-%6Vq)Q83n8Mv$eF2TzHIrdUuH#$3 zLdw_ld~#^%qbEUVO#+^=ga`9*h6<$0&MgwZ^{QdT2R48t*+q ztn1-fC6U@7o*I!(Yhyax*ZEFwH!|_kpsfI zRO(0#0vzeVBQNw3hfHOZ<<~4n7r-x}31e1nzjaL;h>laoIzDMKFNfR%LVGv6c!77J zK+Z>=OMKFqc3df_hA@j#vtdl6t14ycigjN&D^w`Q%jdFT6=e0hR9d^&)Du z1JF|5@V;mR7ys1 z3tNk7yQ$sjrcm@r@Js2}CA6ELnxND&2{geq{2&!)(xi`27piz8P0cN2Vnx5ehhEo~ zA5FQNE9O;N7z5TVt=vYmiHK%3(u?b->{l$uOe=m$_WD#}ODQZ`{Q}PL$RAZKcOA_C zj1b1;7R~WU=pdgXTx)6u&1!vIKJq}MWIcb}=&wJ@ZfrQi(tgnfsBx*c|p4cVj%e# zS8+dWTqf<$Xs2LM(I&Nc|Hl4dpvIVO#75$WV%eYQ{iikoxrY2x7~^DE^2ss^ul)Oo zAE9j)h;r+(*N?nF2Pult!ueF-EvzE;P$Xtn`wtg=N*v!7E%2xTrlGw{x>Ht{efjFm z2@kxsRz4y9t|MjLv-vp3$O|_`E>6Bhi@zTx$ijOaF{~zuF*;eI0^Ls{NVYqC;C`DCe2U-CCLQJ8-@`@kHYPo6scg)D8(yMq1 zeQJyJhNt(M>j!);Xk^g)ST=yk3d&czb8VdhUSq`R z3u*nFGNzqJFNwA?dU!`BT2&9j379qQ6~83%YilZ=dWX&R$R=Cnfzf>NpQ|Tz*D>J4 zZ7g8RxclVrzB*p@rjy9~RN(kK1gpJf;abG>Q_G3q)~5(nbH=k>?hz>s?y;kFSW{H@1 ztayc(#;2$EiQSM0K3_fzmkx0$G)9BTz)%pbw0?mSPbw~kD{@ZnG%oj&xCto%LDPCCZ1;0NLBJ>feT~2B+tDB!pZ55L5v!xDBDoqr!JRg? zE4Oe8lI^)c%TxfOb$0QbqcVBv;>=-Aj{VCp4*rmHKA{tq+tAa-=>^s70YZcRwWm0T zvLaB?I77S7{+$KE?p~w43pPy6np=rHU_X2?JOYmtR?Ej(C&X4sMy2JkAe(D^o~S;k z&>7etfxkfxiC@Asn@msXz|(uQ(ZD^p(CIZgPMFVC^a4=)n1{mGz*3~pL$J_{CV1(? zWQ$=necxg{%>X`cqWQX@ejq!gHf1Z4vzoJPd!Y;E$1-W}CoduG#k3_F zsc*5odAb{7e~WKO&PYV%;^1W_K3AhP$$lA%Yx4uzPFKXm8J~JU5|4hS`cf7gh`1-) z`C%L7FR)XVix zrL$Jh$2Ar<>y%6N2^mU@z!}M#H1>|=nqBc0v7}F>ne8f=@V%r8Q2QEywsNw}&S1tB z5%Oh!y4MHt($XO!?_%KX$~0h8PW+}2vzF?@uwEC4#}Yh#eTnP&)=yh~^=#PuJbNqJ zK7aagOLwrn2$_VG?++|wVo53WQc|+5cqmLvVdq?9t&@t2JpPrkZjR6RGDF<7-v0q|&+1+>K_eL6X&mQI#e- zuA;D!c|Vd*Qtd;ofk|zrzD%7%B8@$i()@yQcU6|l-WX#mqNfP1qomt)%Nrez7`gT# zMcWuH=pXt|dgzE!<`xnCMP;rJw*-qn`F^*~2L6hclUatem9U8(ay!w%qvCjwG0E~j zsoBpmwBT0B2jC(;bV$EU{-0Jrjuu=dLknq>i@WDaG$&P_JS;h@4t7={gL?{juc!-m z7kNoo-UcbaZs^?I;DVql>;1{qTB*>&aYG_h4E|hitKNoeJTk^{ND>CM!%$GJx-%j`p{7Y`djnQM9ZtuG}phv3PIkm}$!n@HkeQ#kyR17#0YsW8#>dPl*34Uu#ta31>++V8E>1JYHm zO;(s8)UuB4>onc^)hD;rVTD2@f>Bonbk0%+{OsYL?eav3^%)uDQ0eYeDwsoGt2PU$ zX-Q9#)^`$5?|R0Pedgx~_?JrsGxCx0&g%+=4QRaI92c<9I-_Mn#~jADXSlu$e9l21 zzmR$9UlcFu9kFzH(tEl831noP2~VC@HG)+(bon}&r%0nNRemb5@wtj)@)xfR;6;zz z$As=SD@zLsvH?2fVYXN6q0c_ro=9@N5n{qvAZYei73~)Nw894?Rt>Qcyiha;MyGX! z9F+{-piq+D1d6o?O38Hfr<6!KIf0Oj7mXsJaj7j3jg0Y!oXhc;v;pb@tA21cQvI|! z%4uYF9A$-lc#R(d@SW)4c=YO7f#{dL%Z6&@T(Y9Zw9++FYx$tu#XZe8Umk70WM)F! zk~p#uI!auZT6#FghlV+RAy`%rOJhp1tR-x#3SWaq0ml-J7H3l5;P>V!VRogpZoWio zg6czNLrV?eaC$qVo9rI!=lwB(MBOv(eDaXF%-*(wxCaNX73)?F!RwT1+(2%jnYA3J zsEiWl6Nk5#bTcGDaINiC3?q-aKW%gB4BKb>`8{maQLSbEXfsv7u)xzWwa=@0%BV1W zKuY0lc>GpmT{-$NsbOi8n`n6|M=Y$~R$523mzCEiw}n_r6X$a4sAEl1_O!D=J%C|- z->0yDb15P&>{orTFPmLFkRta6r@v5bLW`t0Tu|FT)36E#s&A&e`=z$+6cy^W*C!5;kh^2 zADLM)kv?5nP3dOFetn&Sx;Af0<%Nk}zv*{gEoaL36Gni?omH-q(;{2!BAPWefB4Ok z5%D(ZK(%?w6;4+fq1Q4g=*Lokn!(!Axeeuna?Oi2*2UED8+>20zVrZX&p6zKFrxWp z=@;{!n;AD>KCwjiOMKwV8SQwgTiIIc&!bgKvRzfnUhvr^$-JqNMu%N)_%&sd-yGT4 zsaO3OfvXYlB;Nuw`b%)OZ|&?E;u*Z@LH|bW8A}F=Z5&SN0Q2XG+1KQvh24r>W zS+4J9%TyY9x4yZyH78Q7ydQU^rxBv&f5PA9u-K>!29(eS86OAk473}S#*(=GgJnCCO`*PnOW3cXcSugIa19x&T)E~|S1fg|;CLt~ z>44yEN<}Bb^Ar=KuVA_6>oCJI*OnjMFM9$KF8PsOPuu-%@!@^2}gyfKILNJ zirvqt8Vo(TN|LGSF6v^{p)(LI_L?sd3Jq0@Hw7|l1&ZRN$9wmp59=$9Tr|= zPrZv5SWzM5vf~_^^tyI%cj=rVhms{f`M66+mz~j5Tv~M8G*8aOV1FnMb-OXxkSEj- zh3{zzq%t8firlwkxO$Skk2{tW{Y_#v>H3w|@$OX_@XYAuFWxov7Gk_Gg|TGfAqYeY z0?+x713lwCp}#orgXi@bt3X4p3%ep~O%e+vi5VnJ~av$L_%Du$v~~g@tFi{TE{hq#{1c z6)N1v0X;tKUUG80GN$Lv9-=#~p})!VqX0+%yM}}vQuN()S!`X;6KAun0`iKW*9PW; z%Df%dm7LSp4D`h}h8Zduh*H?0JN-;C& zJ;0X@mCV9aWVhq0WJRsuXlH#F#2&9 zUgfiG4z(#F{{S*He0tyJkLIux1CIpM2B7&2gFz>+s{T}6Sum&2~8I6?X zZ^d#b>0Z{sBp1O7WB-)SgasBiCj`?ukirK@ z-?fo@+>idB)jLene?F4A>>bd|<4@-XSmzZvu(Ki=_=m^66&cO9l$2mo!{A??trc!N z6WkSe{-v6tCn@}n;+=GU&wDl2n@$vNS1lI*lH{X&2L%2A|FaYLmm%O)?|`j;fTZR- z`^_+E>i+_6!geY!t6+KE4^24vvg;dc==6Wh?-i{(poZ5U3y64=!q@8D(Kz8x=l}I4 z|1_Vf-W?FOHv9Lx>4pjVs(*K%(feMDL8N_YHJG|GFmV6$N&HU diff --git a/linkml_model/extensions.py b/linkml_model/extensions.py index 9b1ecf26..46f206ac 100644 --- a/linkml_model/extensions.py +++ b/linkml_model/extensions.py @@ -1,5 +1,5 @@ # Auto generated from extensions.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-02-07T17:29:29 +# Generation date: 2024-12-24T10:54:02 # Schema: extensions # # id: https://w3id.org/linkml/extensions diff --git a/linkml_model/graphql/meta.graphql b/linkml_model/graphql/meta.graphql index 761e079b..1658e7be 100644 --- a/linkml_model/graphql/meta.graphql +++ b/linkml_model/graphql/meta.graphql @@ -156,8 +156,10 @@ type AnonymousSlotExpression implements SlotExpression range: Element rangeExpression: AnonymousClassExpression enumRange: EnumExpression + bindings: [EnumBinding] required: Boolean recommended: Boolean + multivalued: Boolean inlined: Boolean inlinedAsList: Boolean minimumValue: Anything @@ -180,6 +182,7 @@ type AnonymousSlotExpression implements SlotExpression exactlyOneOf: [AnonymousSlotExpression] anyOf: [AnonymousSlotExpression] allOf: [AnonymousSlotExpression] + array: ArrayExpression } type AnonymousTypeExpression implements TypeExpression @@ -212,7 +215,6 @@ type ArrayExpression implements Extensible, Annotatable, CommonMetadata exactNumberDimensions: Integer minimumNumberDimensions: Integer maximumNumberDimensions: Anything - hasExtraDimensions: Boolean dimensions: [DimensionExpression] extensions: [Extension] annotations: [Annotation] @@ -315,6 +317,7 @@ type ClassDefinition implements ClassExpression representsRelationship: Boolean disjointWith: [ClassDefinition] childrenAreMutuallyDisjoint: Boolean + extraSlots: ExtraSlotsExpression isA: ClassDefinition mixins: [ClassDefinition] applyTo: [ClassDefinition] @@ -564,6 +567,49 @@ type Element implements Extensible, Annotatable, CommonMetadata keywords: [String] } +type EnumBinding implements Extensible, Annotatable, CommonMetadata + { + range: EnumDefinition + obligationLevel: ObligationLevelEnum + bindsValueOf: String + pvFormula: PvFormulaOptions + extensions: [Extension] + annotations: [Annotation] + description: String + altDescriptions: [AltDescription] + title: String + deprecated: String + todos: [String] + notes: [String] + comments: [String] + examples: [Example] + inSubset: [SubsetDefinition] + fromSchema: Uri + importedFrom: String + source: Uriorcurie + inLanguage: String + seeAlso: [Uriorcurie] + deprecatedElementHasExactReplacement: Uriorcurie + deprecatedElementHasPossibleReplacement: Uriorcurie + aliases: [String] + structuredAliases: [StructuredAlias] + mappings: [Uriorcurie] + exactMappings: [Uriorcurie] + closeMappings: [Uriorcurie] + relatedMappings: [Uriorcurie] + narrowMappings: [Uriorcurie] + broadMappings: [Uriorcurie] + createdBy: Uriorcurie + contributors: [Uriorcurie] + createdOn: Datetime + lastUpdatedOn: Datetime + modifiedBy: Uriorcurie + status: Uriorcurie + rank: Integer + categories: [Uriorcurie] + keywords: [String] + } + type EnumDefinition implements EnumExpression { name: String! @@ -668,6 +714,12 @@ type Extension extensions: [Extension] } +type ExtraSlotsExpression implements Expression + { + allowed: Boolean + rangeExpression: AnonymousClassExpression + } + type ImportExpression implements Extensible, Annotatable, CommonMetadata { importFrom: Uriorcurie! @@ -817,6 +869,8 @@ type PermissibleValue implements Extensible, Annotatable, CommonMetadata description: String meaning: Uriorcurie unit: UnitOfMeasure + instantiates: [Uriorcurie] + implements: [Uriorcurie] isA: PermissibleValue mixins: [PermissibleValue] extensions: [Extension] @@ -936,6 +990,7 @@ type SchemaDefinition generationDate: Datetime slotNamesUnique: Boolean settings: [Setting] + bindings: [EnumBinding] name: Ncname! } @@ -997,8 +1052,6 @@ type SlotDefinition implements SlotExpression singularName: String domain: ClassDefinition slotUri: Uriorcurie - multivalued: Boolean - array: ArrayExpression inherited: Boolean readonly: String ifabsent: String @@ -1032,14 +1085,17 @@ type SlotDefinition implements SlotExpression disjointWith: [SlotDefinition] childrenAreMutuallyDisjoint: Boolean unionOf: [SlotDefinition] + typeMappings: [TypeMapping] isA: SlotDefinition mixins: [SlotDefinition] applyTo: [SlotDefinition] range: Element rangeExpression: AnonymousClassExpression enumRange: EnumExpression + bindings: [EnumBinding] required: Boolean recommended: Boolean + multivalued: Boolean inlined: Boolean inlinedAsList: Boolean minimumValue: Anything @@ -1062,6 +1118,7 @@ type SlotDefinition implements SlotExpression exactlyOneOf: [AnonymousSlotExpression] anyOf: [AnonymousSlotExpression] allOf: [AnonymousSlotExpression] + array: ArrayExpression } interface SlotExpression @@ -1069,8 +1126,10 @@ interface SlotExpression range: Element rangeExpression: AnonymousClassExpression enumRange: EnumExpression + bindings: [EnumBinding] required: Boolean recommended: Boolean + multivalued: Boolean inlined: Boolean inlinedAsList: Boolean minimumValue: Anything @@ -1093,6 +1152,7 @@ interface SlotExpression exactlyOneOf: [AnonymousSlotExpression] anyOf: [AnonymousSlotExpression] allOf: [AnonymousSlotExpression] + array: ArrayExpression } type StructuredAlias implements Expression, Extensible, Annotatable, CommonMetadata @@ -1100,6 +1160,7 @@ type StructuredAlias implements Expression, Extensible, Annotatable, CommonMetad literalForm: String! predicate: AliasPredicateEnum categories: [Uriorcurie] + contexts: [Uri] extensions: [Extension] annotations: [Annotation] description: String @@ -1265,6 +1326,48 @@ interface TypeExpression allOf: [AnonymousTypeExpression] } +type TypeMapping implements Extensible, Annotatable, CommonMetadata + { + framework: String! + type: TypeDefinition + stringSerialization: String + extensions: [Extension] + annotations: [Annotation] + description: String + altDescriptions: [AltDescription] + title: String + deprecated: String + todos: [String] + notes: [String] + comments: [String] + examples: [Example] + inSubset: [SubsetDefinition] + fromSchema: Uri + importedFrom: String + source: Uriorcurie + inLanguage: String + seeAlso: [Uriorcurie] + deprecatedElementHasExactReplacement: Uriorcurie + deprecatedElementHasPossibleReplacement: Uriorcurie + aliases: [String] + structuredAliases: [StructuredAlias] + mappings: [Uriorcurie] + exactMappings: [Uriorcurie] + closeMappings: [Uriorcurie] + relatedMappings: [Uriorcurie] + narrowMappings: [Uriorcurie] + broadMappings: [Uriorcurie] + createdBy: Uriorcurie + contributors: [Uriorcurie] + createdOn: Datetime + lastUpdatedOn: Datetime + modifiedBy: Uriorcurie + status: Uriorcurie + rank: Integer + categories: [Uriorcurie] + keywords: [String] + } + type UniqueKey implements Extensible, Annotatable, CommonMetadata { uniqueKeyName: String! diff --git a/linkml_model/jsonld/meta.context.jsonld b/linkml_model/jsonld/meta.context.jsonld index 802ef6ed..a15c571d 100644 --- a/linkml_model/jsonld/meta.context.jsonld +++ b/linkml_model/jsonld/meta.context.jsonld @@ -1,7 +1,7 @@ { "comments": { "description": "Auto generated by LinkML jsonld context generator", - "generation_date": "2024-02-07T17:29:49", + "generation_date": "2024-12-24T10:54:21", "source": "meta.yaml" }, "@context": { @@ -16,7 +16,9 @@ "@prefix": true }, "bibo": "http://purl.org/ontology/bibo/", + "cc": "http://creativecommons.org/ns#", "cdisc": "http://rdf.cdisc.org/mms#", + "dc": "http://purl.org/dc/terms/", "dcterms": "http://purl.org/dc/terms/", "linkml": "https://w3id.org/linkml/", "oslc": "http://open-services.net/ns/core#", @@ -44,6 +46,9 @@ "alias": { "@id": "skos:prefLabel" }, + "contexts": { + "@type": "@id" + }, "predicate": { "@context": { "@vocab": "@null", @@ -62,6 +67,9 @@ "all_of": { "@type": "@id" }, + "allowed": { + "@type": "xsd:boolean" + }, "alt_descriptions": { "@type": "@id" }, @@ -86,6 +94,9 @@ "bidirectional": { "@type": "xsd:boolean" }, + "bindings": { + "@type": "@id" + }, "boolean_slot": { "@type": "@id" }, @@ -128,6 +139,9 @@ "consider_nulls_inequal": { "@type": "xsd:boolean" }, + "contributor": { + "@id": "dc:contributor" + }, "contributors": { "@type": "@id", "@id": "dcterms:contributor" @@ -140,6 +154,9 @@ "@type": "xsd:dateTime", "@id": "pav:createdOn" }, + "creator": { + "@id": "dc:creator" + }, "deactivated": { "@type": "xsd:boolean", "@id": "sh:deactivated" @@ -223,6 +240,9 @@ "extensions": { "@type": "@id" }, + "extra_slots": { + "@type": "@id" + }, "followed_by": { "@type": "@id" }, @@ -233,9 +253,6 @@ "generation_date": { "@type": "xsd:dateTime" }, - "has_extra_dimensions": { - "@type": "xsd:boolean" - }, "has_member": { "@type": "@id" }, @@ -326,6 +343,10 @@ "is_usage_slot": { "@type": "xsd:boolean" }, + "issued": { + "@type": "xsd:date", + "@id": "dcterms:issued" + }, "key": { "@type": "xsd:boolean" }, @@ -336,6 +357,9 @@ "@type": "xsd:dateTime", "@id": "pav:lastUpdatedOn" }, + "licence": { + "@id": "cc:licence" + }, "license": { "@id": "dcterms:license" }, @@ -357,6 +381,9 @@ "locally_reflexive": { "@type": "xsd:boolean" }, + "type": { + "@type": "@id" + }, "mappings": { "@type": "@id", "@id": "skos:mappingRelation" @@ -394,6 +421,10 @@ "mixins": { "@type": "@id" }, + "modified": { + "@type": "xsd:date", + "@id": "dcterms:modified" + }, "modified_by": { "@type": "@id", "@id": "oslc:modifiedBy" @@ -412,6 +443,14 @@ "notes": { "@id": "skos:editorialNote" }, + "obligation_level": { + "@context": { + "@vocab": "@null", + "text": "skos:notation", + "description": "skos:prefLabel", + "meaning": "@id" + } + }, "open_world": { "@type": "xsd:boolean" }, @@ -437,6 +476,13 @@ "@type": "@id", "@id": "sh:condition" }, + "preferredNamespacePrefix": { + "@id": "vann:preferredNamespacePrefix" + }, + "preferredNamespaceUri": { + "@type": "@id", + "@id": "vann:preferredNamespaceU" + }, "prefix_prefix": { "@id": "sh:prefix" }, @@ -449,8 +495,7 @@ "@id": "sh:declare" }, "publisher": { - "@type": "@id", - "@id": "dcterms:publisher" + "@id": "dc:publisher" }, "pv_formula": { "@context": { @@ -509,6 +554,9 @@ "reversed": { "@type": "xsd:boolean" }, + "rights": { + "@id": "dcterms:rights" + }, "rules": { "@type": "@id", "@id": "sh:rule" @@ -607,6 +655,9 @@ "tree_root": { "@type": "xsd:boolean" }, + "type_mappings": { + "@type": "@id" + }, "uri": { "@type": "@id" }, diff --git a/linkml_model/jsonld/meta.jsonld b/linkml_model/jsonld/meta.jsonld index fcdd35ee..715d2a59 100644 --- a/linkml_model/jsonld/meta.jsonld +++ b/linkml_model/jsonld/meta.jsonld @@ -83,6 +83,10 @@ { "prefix_prefix": "SIO", "prefix_reference": "http://semanticscience.org/resource/SIO_" + }, + { + "prefix_prefix": "cc", + "prefix_reference": "http://creativecommons.org/ns#" } ], "emit_prefixes": [ @@ -585,6 +589,41 @@ "meaning": "skos:narrowerMatch" } ] + }, + { + "name": "obligation_level_enum", + "definition_uri": "https://w3id.org/linkml/ObligationLevelEnum", + "description": "The level of obligation or recommendation strength for a metadata element", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 10, + "permissible_values": [ + { + "text": "REQUIRED", + "description": "The metadata element is required to be present in the model" + }, + { + "text": "RECOMMENDED", + "description": "The metadata element is recommended to be present in the model", + "aliases": [ + "ENCOURAGED" + ] + }, + { + "text": "OPTIONAL", + "description": "The metadata element is optional to be present in the model" + }, + { + "text": "EXAMPLE", + "description": "The metadata element is an example of how to use the model" + }, + { + "text": "DISCOURAGED", + "description": "The metadata element is allowed but discouraged to be present in the model" + } + ] } ], "slots": [ @@ -682,9 +721,10 @@ "domain": "Element", "slot_uri": "https://w3id.org/linkml/implements", "multivalued": true, - "owner": "Element", + "owner": "PermissibleValue", "domain_of": [ - "Element" + "Element", + "PermissibleValue" ], "range": "uriorcurie", "@type": "SlotDefinition" @@ -697,9 +737,10 @@ "domain": "Element", "slot_uri": "https://w3id.org/linkml/instantiates", "multivalued": true, - "owner": "Element", + "owner": "PermissibleValue", "domain_of": [ - "Element" + "Element", + "PermissibleValue" ], "range": "uriorcurie", "@type": "SlotDefinition" @@ -1267,6 +1308,22 @@ "recommended": true, "@type": "SlotDefinition" }, + { + "name": "alias_contexts", + "definition_uri": "https://w3id.org/linkml/alias_contexts", + "description": "The context in which an alias should be applied", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "StructuredAlias", + "slot_uri": "https://w3id.org/linkml/contexts", + "multivalued": true, + "alias": "contexts", + "owner": "StructuredAlias", + "domain_of": [ + "StructuredAlias" + ], + "range": "uri", + "@type": "SlotDefinition" + }, { "name": "in_language", "definition_uri": "https://w3id.org/linkml/in_language", @@ -1318,23 +1375,6 @@ "range": "uriorcurie", "@type": "SlotDefinition" }, - { - "name": "publisher", - "definition_uri": "https://w3id.org/linkml/publisher", - "description": "An entity responsible for making the resource available", - "in_subset": [ - "BasicSubset" - ], - "from_schema": "https://w3id.org/linkml/meta", - "mappings": [ - "http://purl.org/dc/terms/publisher" - ], - "domain": "Element", - "slot_uri": "http://purl.org/dc/terms/publisher", - "owner": "publisher", - "range": "uriorcurie", - "@type": "SlotDefinition" - }, { "name": "is_a", "definition_uri": "https://w3id.org/linkml/is_a", @@ -1348,12 +1388,12 @@ "from_schema": "https://w3id.org/linkml/meta", "rank": 11, "abstract": true, - "domain": "Definition", "slot_uri": "https://w3id.org/linkml/is_a", - "owner": "AnonymousClassExpression", + "owner": "PermissibleValue", "domain_of": [ "Definition", - "AnonymousClassExpression" + "AnonymousClassExpression", + "PermissibleValue" ], "range": "Definition", "@type": "SlotDefinition" @@ -1423,12 +1463,12 @@ "traits" ], "rank": 13, - "domain": "Definition", "slot_uri": "https://w3id.org/linkml/mixins", "multivalued": true, - "owner": "Definition", + "owner": "PermissibleValue", "domain_of": [ - "Definition" + "Definition", + "PermissibleValue" ], "range": "Definition", "@type": "SlotDefinition" @@ -1536,11 +1576,11 @@ "BasicSubset" ], "from_schema": "https://w3id.org/linkml/meta", - "domain": "EnumExpression", "slot_uri": "https://w3id.org/linkml/pv_formula", - "owner": "EnumExpression", + "owner": "EnumBinding", "domain_of": [ - "EnumExpression" + "EnumExpression", + "EnumBinding" ], "range": "pv_formula_options", "@type": "SlotDefinition" @@ -1948,14 +1988,16 @@ "definition_uri": "https://w3id.org/linkml/version", "description": "particular version of schema", "in_subset": [ - "BasicSubset" + "BasicSubset", + "OwlProfile" ], "from_schema": "https://w3id.org/linkml/meta", "mappings": [ "http://purl.org/pav/version" ], "exact_mappings": [ - "http://schema.org/schemaVersion" + "http://schema.org/schemaVersion", + "http://www.w3.org/2002/07/owl#versionInfo" ], "domain": "SchemaDefinition", "slot_uri": "http://purl.org/pav/version", @@ -2371,10 +2413,11 @@ "status": "testing", "domain": "SlotExpression", "slot_uri": "https://w3id.org/linkml/range_expression", - "owner": "SlotExpression", + "owner": "ExtraSlotsExpression", "domain_of": [ "PathExpression", - "SlotExpression" + "SlotExpression", + "ExtraSlotsExpression" ], "range": "AnonymousClassExpression", "inlined": true, @@ -2979,6 +3022,85 @@ "range": "boolean", "@type": "SlotDefinition" }, + { + "name": "extra_slots", + "definition_uri": "https://w3id.org/linkml/extra_slots", + "description": "How a class instance handles extra data not specified in the class definition.\nNote that this does *not* define the constraints that are placed on additional slots defined by inheriting classes.\n\nPossible values:\n- `allowed: true` - allow all additional data\n- `allowed: false` (or `allowed:` or `allowed: null` while `range_expression` is `null`) - \n forbid all additional data (default) \n- `range_expression: ...` - allow additional data if it matches the slot expression (see examples)\n", + "examples": [ + { + "value": "JsonObj(allowed=True)", + "description": "Allow all additional data", + "@type": "Example" + }, + { + "value": "JsonObj(allowed=False)", + "description": "Forbid any additional data", + "@type": "Example" + }, + { + "value": "JsonObj(range_expression=JsonObj(range='string'))", + "description": "Allow additional data that are strings", + "@type": "Example" + }, + { + "value": "JsonObj(range_expression=JsonObj(range='AClassDefinition'))", + "description": "Allow additional data if they are instances of the class definition \"AClassDefinition\"", + "@type": "Example" + }, + { + "value": "JsonObj(range_expression=JsonObj(any_of=[{'range': 'string'}, {'range': 'integer'}]))", + "description": "allow additional data if they are either strings or integers", + "@type": "Example" + }, + { + "value": "JsonObj(range_expression=JsonObj(range='integer', multivalued=True, maximum_cardinality=5))", + "description": "Allow additional data if they are lists of integers of at most length 5.\nNote that this does *not* mean that a maximum of 5 extra slots are allowed.\n", + "@type": "Example" + }, + { + "value": "JsonObj(range_expression=JsonObj(range='integer', required=True))", + "description": "Allow additional data if they are integers. \n`required` is meaningless in this context and ignored, since by definition all \"extra\" slots are optional.\n", + "@type": "Example" + }, + { + "value": "JsonObj(allowed=False, range_expression=JsonObj(range='string'))", + "description": "A semantically *invalid* use of `extra_slots`, as extra slots will be forbidden and the \n`anonymous_slot_expression` will be ignored.\n", + "@type": "Example" + } + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/extra_slots", + "ifabsent": "False", + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "range": "ExtraSlotsExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "allowed", + "definition_uri": "https://w3id.org/linkml/allowed", + "description": "Whether or not something is allowed. Usage defined by context.", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "slot_uri": "https://w3id.org/linkml/allowed", + "owner": "ExtraSlotsExpression", + "domain_of": [ + "ExtraSlotsExpression" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, { "name": "domain", "definition_uri": "https://w3id.org/linkml/domain", @@ -3002,7 +3124,8 @@ "definition_uri": "https://w3id.org/linkml/range", "description": "defines the type of the object of the slot. Given the following slot definition\n S1:\n domain: C1\n range: C2\nthe declaration\n X:\n S1: Y\n\nimplicitly asserts Y is an instance of C2\n", "comments": [ - "range is underspecified, as not all elements can appear as the range of a slot." + "range is underspecified, as not all elements can appear as the range of a slot.", + "to use a URI or CURIE as the range, create a class with the URI or curie as the class_uri" ], "in_subset": [ "SpecificationSubset", @@ -3021,6 +3144,7 @@ "ifabsent": "default_range", "owner": "range", "domain_of": [ + "EnumBinding", "SlotExpression" ], "range": "Element", @@ -3031,7 +3155,8 @@ "definition_uri": "https://w3id.org/linkml/slot_uri", "description": "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas.", "comments": [ - "Assigning slot_uris can provide additional hooks for interoperation, indicating a common conceptual model" + "Assigning slot_uris can provide additional hooks for interoperation, indicating a common conceptual model", + "To use a URI or CURIE as a range, create a class with the URI or CURIE as the class_uri" ], "in_subset": [ "SpecificationSubset", @@ -3071,9 +3196,9 @@ "domain": "SlotDefinition", "slot_uri": "https://w3id.org/linkml/multivalued", "inherited": true, - "owner": "SlotDefinition", + "owner": "multivalued", "domain_of": [ - "SlotDefinition" + "SlotExpression" ], "range": "boolean", "@type": "SlotDefinition" @@ -3087,9 +3212,9 @@ "domain": "SlotDefinition", "slot_uri": "https://w3id.org/linkml/array", "inherited": true, - "owner": "SlotDefinition", + "owner": "array", "domain_of": [ - "SlotDefinition" + "SlotExpression" ], "range": "ArrayExpression", "inlined": true, @@ -3181,21 +3306,6 @@ "range": "integer", "@type": "SlotDefinition" }, - { - "name": "has_extra_dimensions", - "definition_uri": "https://w3id.org/linkml/has_extra_dimensions", - "description": "If this is set to true", - "from_schema": "https://w3id.org/linkml/meta", - "status": "testing", - "domain": "ArrayExpression", - "slot_uri": "https://w3id.org/linkml/has_extra_dimensions", - "owner": "ArrayExpression", - "domain_of": [ - "ArrayExpression" - ], - "range": "boolean", - "@type": "SlotDefinition" - }, { "name": "inherited", "definition_uri": "https://w3id.org/linkml/inherited", @@ -3239,7 +3349,7 @@ { "name": "ifabsent", "definition_uri": "https://w3id.org/linkml/ifabsent", - "description": "function that provides a default value for the slot. Possible values for this slot are defined in linkml.utils.ifabsent_functions.default_library:\n * [Tt]rue -- boolean True\n * [Ff]alse -- boolean False\n * bnode -- blank node identifier\n * class_curie -- CURIE for the containing class\n * class_uri -- URI for the containing class\n * default_ns -- schema default namespace\n * default_range -- schema default range\n * int(value) -- integer value\n * slot_uri -- URI for the slot\n * slot_curie -- CURIE for the slot\n * string(value) -- string value", + "description": "function that provides a default value for the slot.\n * [Tt]rue -- boolean True\n * [Ff]alse -- boolean False\n * bnode -- blank node identifier\n * class_curie -- CURIE for the containing class\n * class_uri -- URI for the containing class\n * default_ns -- schema default namespace\n * default_range -- schema default range\n * int(value) -- integer value\n * slot_uri -- URI for the slot\n * slot_curie -- CURIE for the slot\n * string(value) -- string value\n * EnumName(PermissibleValue) -- enum value", "in_subset": [ "SpecificationSubset" ], @@ -3304,7 +3414,7 @@ { "name": "value_presence", "definition_uri": "https://w3id.org/linkml/value_presence", - "description": "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)", + "description": "if PRESENT then a value must be present (for lists there must be at least one value). If ABSENT then a value must be absent (for lists, must be empty)", "comments": [ "if set to true this has the same effect as required=true. In contrast, required=false allows a value to be present" ], @@ -4389,13 +4499,112 @@ ], "domain": "Definition", "slot_uri": "https://w3id.org/linkml/string_serialization", - "owner": "Definition", + "owner": "TypeMapping", "domain_of": [ - "Definition" + "Definition", + "TypeMapping" ], "range": "string", "@type": "SlotDefinition" }, + { + "name": "bindings", + "definition_uri": "https://w3id.org/linkml/bindings", + "description": "A collection of enum bindings that specify how a slot can be bound to a permissible value from an enumeration.\nLinkML provides enums to allow string values to be restricted to one of a set of permissible values (specified statically or dynamically).\nEnum bindings allow enums to be bound to any object, including complex nested objects. For example, given a (generic) class Concept with slots id and label, it may be desirable to restrict the values the id takes on in a given context. For example, a HumanSample class may have a slot for representing sample site, with a range of concept, but the values of that slot may be restricted to concepts from a particular branch of an anatomy ontology.", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "domain": "Element", + "slot_uri": "https://w3id.org/linkml/bindings", + "multivalued": true, + "owner": "bindings", + "domain_of": [ + "SchemaDefinition", + "SlotExpression" + ], + "range": "EnumBinding", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "binds_value_of", + "definition_uri": "https://w3id.org/linkml/binds_value_of", + "description": "A path to a slot that is being bound to a permissible value from an enumeration.", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "EnumBinding", + "slot_uri": "https://w3id.org/linkml/binds_value_of", + "owner": "EnumBinding", + "domain_of": [ + "EnumBinding" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "obligation_level", + "definition_uri": "https://w3id.org/linkml/obligation_level", + "description": "The level of obligation or recommendation strength for a metadata element", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "slot_uri": "https://w3id.org/linkml/obligation_level", + "owner": "EnumBinding", + "domain_of": [ + "EnumBinding" + ], + "range": "obligation_level_enum", + "@type": "SlotDefinition" + }, + { + "name": "type_mappings", + "definition_uri": "https://w3id.org/linkml/type_mappings", + "description": "A collection of type mappings that specify how a slot's range should be mapped or serialized in different frameworks", + "from_schema": "https://w3id.org/linkml/meta", + "slot_uri": "https://w3id.org/linkml/type_mappings", + "multivalued": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "TypeMapping", + "@type": "SlotDefinition" + }, + { + "name": "framework_key", + "definition_uri": "https://w3id.org/linkml/framework_key", + "description": "The name of a format that can be used to serialize LinkML data. The string value should be a code from the LinkML frameworks vocabulary, but this is not strictly enforced", + "from_schema": "https://w3id.org/linkml/meta", + "slot_uri": "https://w3id.org/linkml/framework", + "key": true, + "alias": "framework", + "owner": "TypeMapping", + "domain_of": [ + "TypeMapping" + ], + "range": "string", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "mapped_type", + "definition_uri": "https://w3id.org/linkml/mapped_type", + "description": "type to coerce to", + "from_schema": "https://w3id.org/linkml/meta", + "slot_uri": "https://w3id.org/linkml/type", + "alias": "type", + "owner": "TypeMapping", + "domain_of": [ + "TypeMapping" + ], + "range": "TypeDefinition", + "@type": "SlotDefinition" + }, { "name": "typeof", "definition_uri": "https://w3id.org/linkml/typeof", @@ -5020,6 +5229,231 @@ "range": "relational_role_enum", "@type": "SlotDefinition" }, + { + "name": "issued", + "definition_uri": "https://w3id.org/linkml/issued", + "description": "Date of the first vocabulary publication.", + "in_subset": [ + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/issued", + "https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf" + ], + "mappings": [ + "http://purl.org/dc/terms/issued" + ], + "exact_mappings": [ + "http://purl.org/dc/terms/issued" + ], + "domain": "SchemaDefinition", + "slot_uri": "http://purl.org/dc/terms/issued", + "inherited": true, + "owner": "issued", + "range": "date", + "@type": "SlotDefinition" + }, + { + "name": "modified", + "definition_uri": "https://w3id.org/linkml/modified", + "description": "Last vocabulary modification date.", + "in_subset": [ + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/modified", + "https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf" + ], + "mappings": [ + "http://purl.org/dc/terms/modified" + ], + "exact_mappings": [ + "http://purl.org/dc/terms/modified" + ], + "domain": "SchemaDefinition", + "slot_uri": "http://purl.org/dc/terms/modified", + "inherited": true, + "owner": "modified", + "range": "date", + "@type": "SlotDefinition" + }, + { + "name": "rights", + "definition_uri": "https://w3id.org/linkml/rights", + "description": "Property rights of the vocabulary.", + "in_subset": [ + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/rights", + "https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf" + ], + "mappings": [ + "http://purl.org/dc/terms/rights" + ], + "exact_mappings": [ + "http://purl.org/dc/terms/rights" + ], + "domain": "SchemaDefinition", + "slot_uri": "http://purl.org/dc/terms/rights", + "inherited": true, + "owner": "rights", + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "licence", + "definition_uri": "https://w3id.org/linkml/licence", + "description": "Licence of the vocabulary. Recommended practice is to refer to a rights statement with a URI. If this is not possible or feasible, a literal value (name, label, or short text) may be provided.", + "in_subset": [ + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://creativecommons.org/ns", + "https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf" + ], + "mappings": [ + "http://creativecommons.org/ns#licence" + ], + "exact_mappings": [ + "http://creativecommons.org/ns#licence" + ], + "domain": "SchemaDefinition", + "slot_uri": "http://creativecommons.org/ns#licence", + "inherited": true, + "owner": "licence", + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "creator", + "definition_uri": "https://w3id.org/linkml/creator", + "description": "Creator(s) of the vocabulary. Recommended practice is to identify the creator with a URI. If this is not possible or feasible, a literal value that identifies the creator may be provided.", + "in_subset": [ + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/creator", + "https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf" + ], + "mappings": [ + "http://purl.org/dc/terms/creator" + ], + "exact_mappings": [ + "http://purl.org/dc/terms/creator" + ], + "domain": "SchemaDefinition", + "slot_uri": "http://purl.org/dc/terms/creator", + "inherited": true, + "owner": "creator", + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "contributor", + "definition_uri": "https://w3id.org/linkml/contributor", + "description": "Contributor(s) of the vocabulary. Recommended practice is to identify the contributor with a URI. If this is not possible or feasible, a literal value that identifies the contributor may be provided.", + "in_subset": [ + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/contributor", + "https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf" + ], + "mappings": [ + "http://purl.org/dc/terms/contributor" + ], + "exact_mappings": [ + "http://purl.org/dc/terms/contributor" + ], + "domain": "SchemaDefinition", + "slot_uri": "http://purl.org/dc/terms/contributor", + "inherited": true, + "owner": "contributor", + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "publisher", + "definition_uri": "https://w3id.org/linkml/publisher", + "description": "Publisher(s) of the vocabulary. Recommended practice is to identify the contributor with a URI. If this is not possible or feasible, a literal value that identifies the publisher may be provided.", + "in_subset": [ + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/publisher", + "https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf" + ], + "mappings": [ + "http://purl.org/dc/terms/publisher" + ], + "exact_mappings": [ + "http://purl.org/dc/terms/publisher" + ], + "domain": "SchemaDefinition", + "slot_uri": "http://purl.org/dc/terms/publisher", + "inherited": true, + "owner": "publisher", + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "preferredNamespacePrefix", + "definition_uri": "https://w3id.org/linkml/preferredNamespacePrefix", + "description": "Indication of the prefix to be used when referring the vocabulary namespace. A prefix should be as short as possible (usually less than 5 characters) and avoid conflicts with existing ones.", + "in_subset": [ + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://vocab.org/vann/", + "https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf" + ], + "mappings": [ + "https://vocab.org/vann/preferredNamespacePrefix" + ], + "exact_mappings": [ + "https://vocab.org/vann/preferredNamespacePrefix" + ], + "domain": "SchemaDefinition", + "slot_uri": "https://vocab.org/vann/preferredNamespacePrefix", + "inherited": true, + "owner": "preferredNamespacePrefix", + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "preferredNamespaceUri", + "definition_uri": "https://w3id.org/linkml/preferredNamespaceUri", + "description": "Indication of the preferred namespace URI to be used for this vocabulary.", + "in_subset": [ + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://vocab.org/vann/", + "https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf" + ], + "mappings": [ + "https://vocab.org/vann/preferredNamespaceU" + ], + "exact_mappings": [ + "https://vocab.org/vann/preferredNamespaceU" + ], + "domain": "SchemaDefinition", + "slot_uri": "https://vocab.org/vann/preferredNamespaceU", + "inherited": true, + "owner": "preferredNamespaceUri", + "range": "uri", + "@type": "SlotDefinition" + }, { "name": "mappings", "definition_uri": "https://w3id.org/linkml/mappings", @@ -5576,6 +6010,40 @@ "range": "TypeDefinition", "@type": "SlotDefinition" }, + { + "name": "enum_binding_range", + "definition_uri": "https://w3id.org/linkml/range", + "description": "defines the type of the object of the slot. Given the following slot definition\n S1:\n domain: C1\n range: C2\nthe declaration\n X:\n S1: Y\n\nimplicitly asserts Y is an instance of C2\n", + "comments": [ + "range is underspecified, as not all elements can appear as the range of a slot.", + "to use a URI or CURIE as the range, create a class with the URI or curie as the class_uri" + ], + "in_subset": [ + "SpecificationSubset", + "MinimalSubset", + "BasicSubset", + "RelationalModelProfile", + "ObjectOrientedProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "value domain" + ], + "is_a": "range", + "domain": "EnumBinding", + "slot_uri": "https://w3id.org/linkml/range", + "inherited": true, + "ifabsent": "default_range", + "alias": "range", + "owner": "EnumBinding", + "domain_of": [ + "EnumBinding" + ], + "is_usage_slot": true, + "usage_slot_name": "range", + "range": "EnumDefinition", + "@type": "SlotDefinition" + }, { "name": "structured_alias_categories", "definition_uri": "https://w3id.org/linkml/categories", @@ -6587,6 +7055,7 @@ "generation_date", "slot_names_unique", "settings", + "bindings", "schema_definition_name" ], "slot_usage": {}, @@ -7011,6 +7480,64 @@ "class_uri": "https://w3id.org/linkml/EnumDefinition", "@type": "ClassDefinition" }, + { + "name": "EnumBinding", + "definition_uri": "https://w3id.org/linkml/EnumBinding", + "description": "A binding of a slot or a class to a permissible value from an enumeration.", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mixins": [ + "Extensible", + "Annotatable", + "CommonMetadata" + ], + "slots": [ + "enum_binding_range", + "obligation_level", + "binds_value_of", + "pv_formula", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/EnumBinding", + "@type": "ClassDefinition" + }, { "name": "MatchQuery", "definition_uri": "https://w3id.org/linkml/MatchQuery", @@ -7065,6 +7592,7 @@ "literal_form", "alias_predicate", "structured_alias_categories", + "alias_contexts", "extensions", "annotations", "description", @@ -7242,8 +7770,10 @@ "range", "range_expression", "enum_range", + "bindings", "required", "recommended", + "multivalued", "inlined", "inlined_as_list", "minimum_value", @@ -7265,7 +7795,8 @@ "slot_expression_none_of", "slot_expression_exactly_one_of", "slot_expression_any_of", - "slot_expression_all_of" + "slot_expression_all_of", + "array" ], "slot_usage": {}, "class_uri": "https://w3id.org/linkml/SlotExpression", @@ -7318,8 +7849,10 @@ "range", "range_expression", "enum_range", + "bindings", "required", "recommended", + "multivalued", "inlined", "inlined_as_list", "minimum_value", @@ -7341,7 +7874,8 @@ "slot_expression_none_of", "slot_expression_exactly_one_of", "slot_expression_any_of", - "slot_expression_all_of" + "slot_expression_all_of", + "array" ], "slot_usage": {}, "class_uri": "https://w3id.org/linkml/AnonymousSlotExpression", @@ -7426,8 +7960,6 @@ "singular_name", "domain", "slot_uri", - "multivalued", - "array", "inherited", "readonly", "ifabsent", @@ -7461,14 +7993,17 @@ "slot_definition_disjoint_with", "children_are_mutually_disjoint", "slot_definition_union_of", + "type_mappings", "slot_definition_is_a", "slot_definition_mixins", "slot_definition_apply_to", "range", "range_expression", "enum_range", + "bindings", "required", "recommended", + "multivalued", "inlined", "inlined_as_list", "minimum_value", @@ -7490,7 +8025,8 @@ "slot_expression_none_of", "slot_expression_exactly_one_of", "slot_expression_any_of", - "slot_expression_all_of" + "slot_expression_all_of", + "array" ], "slot_usage": {}, "class_uri": "https://w3id.org/linkml/SlotDefinition", @@ -7659,6 +8195,7 @@ "represents_relationship", "class_definition_disjoint_with", "children_are_mutually_disjoint", + "extra_slots", "class_definition_is_a", "class_definition_mixins", "class_definition_apply_to", @@ -7765,7 +8302,6 @@ "exact_number_dimensions", "minimum_number_dimensions", "maximum_number_dimensions", - "has_extra_dimensions", "dimensions", "extensions", "annotations", @@ -8081,6 +8617,8 @@ "description", "meaning", "unit", + "instantiates", + "implements", "permissible_value_is_a", "permissible_value_mixins", "extensions", @@ -8182,6 +8720,80 @@ "class_uri": "https://w3id.org/linkml/UniqueKey", "@type": "ClassDefinition" }, + { + "name": "TypeMapping", + "definition_uri": "https://w3id.org/linkml/TypeMapping", + "description": "Represents how a slot or type can be serialized to a format.", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 21, + "mixins": [ + "Extensible", + "Annotatable", + "CommonMetadata" + ], + "slots": [ + "framework_key", + "mapped_type", + "string_serialization", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/TypeMapping", + "@type": "ClassDefinition" + }, + { + "name": "ExtraSlotsExpression", + "definition_uri": "https://w3id.org/linkml/ExtraSlotsExpression", + "description": "An expression that defines how to handle additional data in an instance of class\nbeyond the slots/attributes defined for that class. \nSee `extra_slots` for usage examples.\n", + "from_schema": "https://w3id.org/linkml/meta", + "mixins": [ + "Expression" + ], + "slots": [ + "allowed", + "range_expression" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/ExtraSlotsExpression", + "@type": "ClassDefinition" + }, { "name": "AnyValue", "definition_uri": "https://w3id.org/linkml/AnyValue", @@ -8325,9 +8937,9 @@ ], "metamodel_version": "1.7.0", "source_file": "meta.yaml", - "source_file_date": "2024-02-07T17:29:17", - "source_file_size": 93289, - "generation_date": "2024-02-07T17:29:51", + "source_file_date": "2024-12-24T10:44:39", + "source_file_size": 104373, + "generation_date": "2024-12-24T10:54:25", "@type": "SchemaDefinition", "@context": [ "staging/jsonld/meta.context.jsonld", diff --git a/linkml_model/jsonschema/meta.schema.json b/linkml_model/jsonschema/meta.schema.json index 9d968840..8c41e693 100644 --- a/linkml_model/jsonschema/meta.schema.json +++ b/linkml_model/jsonschema/meta.schema.json @@ -562,6 +562,17 @@ }, "type": "array" }, + "array": { + "$ref": "#/$defs/ArrayExpression", + "description": "coerces the value of the slot into an array and defines the dimensions of that array" + }, + "bindings": { + "description": "A collection of enum bindings that specify how a slot can be bound to a permissible value from an enumeration.\nLinkML provides enums to allow string values to be restricted to one of a set of permissible values (specified statically or dynamically).\nEnum bindings allow enums to be bound to any object, including complex nested objects. For example, given a (generic) class Concept with slots id and label, it may be desirable to restrict the values the id takes on in a given context. For example, a HumanSample class may have a slot for representing sample site, with a range of concept, but the values of that slot may be restricted to concepts from a particular branch of an anatomy ontology.", + "items": { + "$ref": "#/$defs/EnumBinding" + }, + "type": "array" + }, "broad_mappings": { "description": "A list of terms from different schemas or terminology systems that have broader meaning.", "items": { @@ -759,6 +770,10 @@ "description": "agent that modified the element", "type": "string" }, + "multivalued": { + "description": "true means that slot can have more than one value and should be represented using a list or collection structure.", + "type": "boolean" + }, "narrow_mappings": { "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", "items": { @@ -854,7 +869,7 @@ }, "value_presence": { "$ref": "#/$defs/PresenceEnum", - "description": "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" + "description": "if PRESENT then a value must be present (for lists there must be at least one value). If ABSENT then a value must be absent (for lists, must be empty)" } }, "title": "AnonymousSlotExpression", @@ -1104,10 +1119,6 @@ "description": "id of the schema that defined the element", "type": "string" }, - "has_extra_dimensions": { - "description": "If this is set to true", - "type": "boolean" - }, "imported_from": { "description": "the imports entry that this element was derived from. Empty means primary source", "type": "string" @@ -1437,6 +1448,10 @@ "description": "a tag/text tuple attached to an arbitrary element", "type": "object" }, + "extra_slots": { + "$ref": "#/$defs/ExtraSlotsExpression", + "description": "How a class instance handles extra data not specified in the class definition.\nNote that this does *not* define the constraints that are placed on additional slots defined by inheriting classes.\n\nPossible values:\n- `allowed: true` - allow all additional data\n- `allowed: false` (or `allowed:` or `allowed: null` while `range_expression` is `null`) - \n forbid all additional data (default) \n- `range_expression: ...` - allow additional data if it matches the slot expression (see examples)\n" + }, "from_schema": { "description": "id of the schema that defined the element", "type": "string" @@ -1916,6 +1931,10 @@ "description": "a tag/text tuple attached to an arbitrary element", "type": "object" }, + "extra_slots": { + "$ref": "#/$defs/ExtraSlotsExpression", + "description": "How a class instance handles extra data not specified in the class definition.\nNote that this does *not* define the constraints that are placed on additional slots defined by inheriting classes.\n\nPossible values:\n- `allowed: true` - allow all additional data\n- `allowed: false` (or `allowed:` or `allowed: null` while `range_expression` is `null`) - \n forbid all additional data (default) \n- `range_expression: ...` - allow additional data if it matches the slot expression (see examples)\n" + }, "from_schema": { "description": "id of the schema that defined the element", "type": "string" @@ -2688,14 +2707,10 @@ "title": "DimensionExpression", "type": "object" }, - "EnumDefinition": { + "EnumBinding": { "additionalProperties": false, - "description": "an element whose instances must be drawn from a specified set of permissible values", + "description": "A binding of a slot or a class to a permissible value from an enumeration.", "properties": { - "abstract": { - "description": "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes.", - "type": "boolean" - }, "aliases": { "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", "items": { @@ -2733,12 +2748,9 @@ "description": "a collection of tag/text tuples with the semantics of OWL Annotation", "type": "object" }, - "apply_to": { - "description": "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.", - "items": { - "type": "string" - }, - "type": "array" + "binds_value_of": { + "description": "A path to a slot that is being bound to a permissible value from an enumeration.", + "type": "string" }, "broad_mappings": { "description": "A list of terms from different schemas or terminology systems that have broader meaning.", @@ -2761,18 +2773,6 @@ }, "type": "array" }, - "code_set": { - "description": "the identifier of an enumeration code set.", - "type": "string" - }, - "code_set_tag": { - "description": "the version tag of the enumeration code set", - "type": "string" - }, - "code_set_version": { - "description": "the version identifier of the enumeration code set", - "type": "string" - }, "comments": { "description": "notes and comments about an element intended primarily for external consumption", "items": { @@ -2780,17 +2780,6 @@ }, "type": "array" }, - "concepts": { - "description": "A list of identifiers that are used to construct a set of permissible values", - "items": { - "type": "string" - }, - "type": "array" - }, - "conforms_to": { - "description": "An established standard to which the element conforms.", - "type": "string" - }, "contributors": { "description": "agent that contributed to the element", "items": { @@ -2807,10 +2796,6 @@ "format": "date-time", "type": "string" }, - "definition_uri": { - "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri", - "type": "string" - }, "deprecated": { "description": "Description of why and when this element will no longer be used", "type": "string" @@ -2827,10 +2812,6 @@ "description": "a textual description of the element's purpose and use", "type": "string" }, - "enum_uri": { - "description": "URI of the enum that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas", - "type": "string" - }, "exact_mappings": { "description": "A list of terms from different schemas or terminology systems that have identical meaning.", "items": { @@ -2864,24 +2845,6 @@ "description": "id of the schema that defined the element", "type": "string" }, - "id_prefixes": { - "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix", - "items": { - "type": "string" - }, - "type": "array" - }, - "id_prefixes_are_closed": { - "description": "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation.", - "type": "boolean" - }, - "implements": { - "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.", - "items": { - "type": "string" - }, - "type": "array" - }, "imported_from": { "description": "the imports entry that this element was derived from. Empty means primary source", "type": "string" @@ -2897,31 +2860,6 @@ }, "type": "array" }, - "include": { - "description": "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set", - "items": { - "$ref": "#/$defs/AnonymousEnumExpression" - }, - "type": "array" - }, - "inherits": { - "description": "An enum definition that is used as the basis to create a new enum", - "items": { - "type": "string" - }, - "type": "array" - }, - "instantiates": { - "description": "An element in another schema which this element instantiates.", - "items": { - "type": "string" - }, - "type": "array" - }, - "is_a": { - "description": "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded", - "type": "string" - }, "keywords": { "description": "Keywords or tags used to describe the element", "items": { @@ -2934,20 +2872,6 @@ "format": "date-time", "type": "string" }, - "local_names": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/LocalName__identifier_optional" - }, - { - "description": "a name assigned to an element in a given ontology", - "type": "string" - } - ] - }, - "type": "object" - }, "mappings": { "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.", "items": { @@ -2955,36 +2879,10 @@ }, "type": "array" }, - "matches": { - "$ref": "#/$defs/MatchQuery", - "description": "Specifies a match query that is used to calculate the list of permissible values" - }, - "minus": { - "description": "An enum expression that yields a list of permissible values that are to be subtracted from the enum", - "items": { - "$ref": "#/$defs/AnonymousEnumExpression" - }, - "type": "array" - }, - "mixin": { - "description": "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins.", - "type": "boolean" - }, - "mixins": { - "description": "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from.", - "items": { - "type": "string" - }, - "type": "array" - }, "modified_by": { "description": "agent that modified the element", "type": "string" }, - "name": { - "description": "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class.", - "type": "string" - }, "narrow_mappings": { "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", "items": { @@ -2999,32 +2897,22 @@ }, "type": "array" }, - "permissible_values": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/PermissibleValue__identifier_optional" - }, - { - "type": "null" - } - ] - }, - "description": "A list of possible values for a slot range", - "type": "object" + "obligation_level": { + "$ref": "#/$defs/ObligationLevelEnum", + "description": "The level of obligation or recommendation strength for a metadata element" }, "pv_formula": { "$ref": "#/$defs/PvFormulaOptions", "description": "Defines the specific formula to be used to generate the permissible values." }, + "range": { + "description": "defines the type of the object of the slot. Given the following slot definition\n S1:\n domain: C1\n range: C2\nthe declaration\n X:\n S1: Y\n\nimplicitly asserts Y is an instance of C2\n", + "type": "string" + }, "rank": { "description": "the relative order in which the element occurs, lower values are given precedence", "type": "integer" }, - "reachable_from": { - "$ref": "#/$defs/ReachabilityQuery", - "description": "Specifies a query for obtaining a list of permissible values based on graph reachability" - }, "related_mappings": { "description": "A list of terms from different schemas or terminology systems that have related meaning.", "items": { @@ -3047,10 +2935,6 @@ "description": "status of the element", "type": "string" }, - "string_serialization": { - "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm", - "type": "string" - }, "structured_aliases": { "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.", "items": { @@ -3068,22 +2952,12 @@ "type": "string" }, "type": "array" - }, - "values_from": { - "description": "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.", - "items": { - "type": "string" - }, - "type": "array" } }, - "required": [ - "name" - ], - "title": "EnumDefinition", + "title": "EnumBinding", "type": "object" }, - "EnumDefinition__identifier_optional": { + "EnumDefinition": { "additionalProperties": false, "description": "an element whose instances must be drawn from a specified set of permissible values", "properties": { @@ -3472,214 +3346,64 @@ "type": "array" } }, - "required": [], + "required": [ + "name" + ], "title": "EnumDefinition", "type": "object" }, - "EnumExpression": { + "EnumDefinition__identifier_optional": { "additionalProperties": false, - "description": "An expression that constrains the range of a slot", + "description": "an element whose instances must be drawn from a specified set of permissible values", "properties": { - "code_set": { - "description": "the identifier of an enumeration code set.", - "type": "string" - }, - "code_set_tag": { - "description": "the version tag of the enumeration code set", - "type": "string" - }, - "code_set_version": { - "description": "the version identifier of the enumeration code set", - "type": "string" - }, - "concepts": { - "description": "A list of identifiers that are used to construct a set of permissible values", - "items": { - "type": "string" - }, - "type": "array" - }, - "include": { - "description": "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set", - "items": { - "$ref": "#/$defs/AnonymousEnumExpression" - }, - "type": "array" + "abstract": { + "description": "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes.", + "type": "boolean" }, - "inherits": { - "description": "An enum definition that is used as the basis to create a new enum", + "aliases": { + "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", "items": { "type": "string" }, "type": "array" }, - "matches": { - "$ref": "#/$defs/MatchQuery", - "description": "Specifies a match query that is used to calculate the list of permissible values" - }, - "minus": { - "description": "An enum expression that yields a list of permissible values that are to be subtracted from the enum", - "items": { - "$ref": "#/$defs/AnonymousEnumExpression" + "alt_descriptions": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, - "type": "array" + "description": "A sourced alternative description for an element", + "type": "object" }, - "permissible_values": { + "annotations": { "additionalProperties": { "anyOf": [ { - "$ref": "#/$defs/PermissibleValue__identifier_optional" + "$ref": "#/$defs/Annotation__identifier_optional" }, { - "type": "null" + "$ref": "#/$defs/AnyValue", + "description": "the actual annotation" } ] }, - "description": "A list of possible values for a slot range", + "description": "a collection of tag/text tuples with the semantics of OWL Annotation", "type": "object" }, - "pv_formula": { - "$ref": "#/$defs/PvFormulaOptions", - "description": "Defines the specific formula to be used to generate the permissible values." - }, - "reachable_from": { - "$ref": "#/$defs/ReachabilityQuery", - "description": "Specifies a query for obtaining a list of permissible values based on graph reachability" - } - }, - "title": "EnumExpression", - "type": "object" - }, - "Example": { - "additionalProperties": false, - "description": "usage example and description", - "properties": { - "description": { - "description": "description of what the value is doing", - "type": "string" - }, - "object": { - "$ref": "#/$defs/Anything", - "description": "direct object representation of the example" - }, - "value": { - "description": "example value", - "type": "string" - } - }, - "title": "Example", - "type": "object" - }, - "Extension": { - "additionalProperties": false, - "description": "a tag/value pair used to add non-model information to an entry", - "properties": { - "extensions": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/Extension__identifier_optional" - }, - { - "$ref": "#/$defs/AnyValue", - "description": "the actual annotation" - } - ] - }, - "description": "a tag/text tuple attached to an arbitrary element", - "type": "object" - }, - "tag": { - "description": "a tag associated with an extension", - "type": "string" - }, - "value": { - "$ref": "#/$defs/AnyValue", - "description": "the actual annotation" - } - }, - "required": [ - "tag", - "value" - ], - "title": "Extension", - "type": "object" - }, - "Extension__identifier_optional": { - "additionalProperties": false, - "description": "a tag/value pair used to add non-model information to an entry", - "properties": { - "extensions": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/Extension__identifier_optional" - }, - { - "$ref": "#/$defs/AnyValue", - "description": "the actual annotation" - } - ] - }, - "description": "a tag/text tuple attached to an arbitrary element", - "type": "object" - }, - "tag": { - "description": "a tag associated with an extension", - "type": "string" - }, - "value": { - "$ref": "#/$defs/AnyValue", - "description": "the actual annotation" - } - }, - "required": [ - "value" - ], - "title": "Extension", - "type": "object" - }, - "ImportExpression": { - "additionalProperties": false, - "description": "an expression describing an import", - "properties": { - "aliases": { - "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", + "apply_to": { + "description": "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.", "items": { "type": "string" }, "type": "array" }, - "alt_descriptions": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/AltDescription__identifier_optional" - }, - { - "description": "text of an attributed description", - "type": "string" - } - ] - }, - "description": "A sourced alternative description for an element", - "type": "object" - }, - "annotations": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/Annotation__identifier_optional" - }, - { - "$ref": "#/$defs/AnyValue", - "description": "the actual annotation" - } - ] - }, - "description": "a collection of tag/text tuples with the semantics of OWL Annotation", - "type": "object" - }, "broad_mappings": { "description": "A list of terms from different schemas or terminology systems that have broader meaning.", "items": { @@ -3701,6 +3425,18 @@ }, "type": "array" }, + "code_set": { + "description": "the identifier of an enumeration code set.", + "type": "string" + }, + "code_set_tag": { + "description": "the version tag of the enumeration code set", + "type": "string" + }, + "code_set_version": { + "description": "the version identifier of the enumeration code set", + "type": "string" + }, "comments": { "description": "notes and comments about an element intended primarily for external consumption", "items": { @@ -3708,6 +3444,17 @@ }, "type": "array" }, + "concepts": { + "description": "A list of identifiers that are used to construct a set of permissible values", + "items": { + "type": "string" + }, + "type": "array" + }, + "conforms_to": { + "description": "An established standard to which the element conforms.", + "type": "string" + }, "contributors": { "description": "agent that contributed to the element", "items": { @@ -3724,6 +3471,10 @@ "format": "date-time", "type": "string" }, + "definition_uri": { + "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri", + "type": "string" + }, "deprecated": { "description": "Description of why and when this element will no longer be used", "type": "string" @@ -3740,6 +3491,10 @@ "description": "a textual description of the element's purpose and use", "type": "string" }, + "enum_uri": { + "description": "URI of the enum that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas", + "type": "string" + }, "exact_mappings": { "description": "A list of terms from different schemas or terminology systems that have identical meaning.", "items": { @@ -3773,25 +3528,23 @@ "description": "id of the schema that defined the element", "type": "string" }, - "import_as": { - "type": "string" + "id_prefixes": { + "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix", + "items": { + "type": "string" + }, + "type": "array" }, - "import_from": { - "type": "string" + "id_prefixes_are_closed": { + "description": "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation.", + "type": "boolean" }, - "import_map": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/Setting__identifier_optional" - }, - { - "description": "The value assigned for a setting", - "type": "string" - } - ] + "implements": { + "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.", + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, "imported_from": { "description": "the imports entry that this element was derived from. Empty means primary source", @@ -3808,6 +3561,31 @@ }, "type": "array" }, + "include": { + "description": "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set", + "items": { + "$ref": "#/$defs/AnonymousEnumExpression" + }, + "type": "array" + }, + "inherits": { + "description": "An enum definition that is used as the basis to create a new enum", + "items": { + "type": "string" + }, + "type": "array" + }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, + "is_a": { + "description": "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded", + "type": "string" + }, "keywords": { "description": "Keywords or tags used to describe the element", "items": { @@ -3820,6 +3598,20 @@ "format": "date-time", "type": "string" }, + "local_names": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] + }, + "type": "object" + }, "mappings": { "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.", "items": { @@ -3827,28 +3619,76 @@ }, "type": "array" }, - "modified_by": { - "description": "agent that modified the element", - "type": "string" + "matches": { + "$ref": "#/$defs/MatchQuery", + "description": "Specifies a match query that is used to calculate the list of permissible values" }, - "narrow_mappings": { - "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", + "minus": { + "description": "An enum expression that yields a list of permissible values that are to be subtracted from the enum", "items": { - "type": "string" + "$ref": "#/$defs/AnonymousEnumExpression" }, "type": "array" }, - "notes": { - "description": "editorial notes about an element intended primarily for internal consumption", + "mixin": { + "description": "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins.", + "type": "boolean" + }, + "mixins": { + "description": "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from.", "items": { "type": "string" }, "type": "array" }, - "rank": { + "modified_by": { + "description": "agent that modified the element", + "type": "string" + }, + "name": { + "description": "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class.", + "type": "string" + }, + "narrow_mappings": { + "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "notes": { + "description": "editorial notes about an element intended primarily for internal consumption", + "items": { + "type": "string" + }, + "type": "array" + }, + "permissible_values": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/PermissibleValue__identifier_optional" + }, + { + "type": "null" + } + ] + }, + "description": "A list of possible values for a slot range", + "type": "object" + }, + "pv_formula": { + "$ref": "#/$defs/PvFormulaOptions", + "description": "Defines the specific formula to be used to generate the permissible values." + }, + "rank": { "description": "the relative order in which the element occurs, lower values are given precedence", "type": "integer" }, + "reachable_from": { + "$ref": "#/$defs/ReachabilityQuery", + "description": "Specifies a query for obtaining a list of permissible values based on graph reachability" + }, "related_mappings": { "description": "A list of terms from different schemas or terminology systems that have related meaning.", "items": { @@ -3871,6 +3711,10 @@ "description": "status of the element", "type": "string" }, + "string_serialization": { + "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm", + "type": "string" + }, "structured_aliases": { "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.", "items": { @@ -3888,72 +3732,201 @@ "type": "string" }, "type": "array" + }, + "values_from": { + "description": "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.", + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "import_from" - ], - "title": "ImportExpression", + "required": [], + "title": "EnumDefinition", "type": "object" }, - "LocalName": { + "EnumExpression": { "additionalProperties": false, - "description": "an attributed label", + "description": "An expression that constrains the range of a slot", "properties": { - "local_name_source": { - "description": "the ncname of the source of the name", + "code_set": { + "description": "the identifier of an enumeration code set.", "type": "string" }, - "local_name_value": { - "description": "a name assigned to an element in a given ontology", + "code_set_tag": { + "description": "the version tag of the enumeration code set", + "type": "string" + }, + "code_set_version": { + "description": "the version identifier of the enumeration code set", + "type": "string" + }, + "concepts": { + "description": "A list of identifiers that are used to construct a set of permissible values", + "items": { + "type": "string" + }, + "type": "array" + }, + "include": { + "description": "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set", + "items": { + "$ref": "#/$defs/AnonymousEnumExpression" + }, + "type": "array" + }, + "inherits": { + "description": "An enum definition that is used as the basis to create a new enum", + "items": { + "type": "string" + }, + "type": "array" + }, + "matches": { + "$ref": "#/$defs/MatchQuery", + "description": "Specifies a match query that is used to calculate the list of permissible values" + }, + "minus": { + "description": "An enum expression that yields a list of permissible values that are to be subtracted from the enum", + "items": { + "$ref": "#/$defs/AnonymousEnumExpression" + }, + "type": "array" + }, + "permissible_values": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/PermissibleValue__identifier_optional" + }, + { + "type": "null" + } + ] + }, + "description": "A list of possible values for a slot range", + "type": "object" + }, + "pv_formula": { + "$ref": "#/$defs/PvFormulaOptions", + "description": "Defines the specific formula to be used to generate the permissible values." + }, + "reachable_from": { + "$ref": "#/$defs/ReachabilityQuery", + "description": "Specifies a query for obtaining a list of permissible values based on graph reachability" + } + }, + "title": "EnumExpression", + "type": "object" + }, + "Example": { + "additionalProperties": false, + "description": "usage example and description", + "properties": { + "description": { + "description": "description of what the value is doing", + "type": "string" + }, + "object": { + "$ref": "#/$defs/Anything", + "description": "direct object representation of the example" + }, + "value": { + "description": "example value", + "type": "string" + } + }, + "title": "Example", + "type": "object" + }, + "Extension": { + "additionalProperties": false, + "description": "a tag/value pair used to add non-model information to an entry", + "properties": { + "extensions": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/Extension__identifier_optional" + }, + { + "$ref": "#/$defs/AnyValue", + "description": "the actual annotation" + } + ] + }, + "description": "a tag/text tuple attached to an arbitrary element", + "type": "object" + }, + "tag": { + "description": "a tag associated with an extension", "type": "string" + }, + "value": { + "$ref": "#/$defs/AnyValue", + "description": "the actual annotation" } }, "required": [ - "local_name_source", - "local_name_value" + "tag", + "value" ], - "title": "LocalName", + "title": "Extension", "type": "object" }, - "LocalName__identifier_optional": { + "Extension__identifier_optional": { "additionalProperties": false, - "description": "an attributed label", + "description": "a tag/value pair used to add non-model information to an entry", "properties": { - "local_name_source": { - "description": "the ncname of the source of the name", - "type": "string" + "extensions": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/Extension__identifier_optional" + }, + { + "$ref": "#/$defs/AnyValue", + "description": "the actual annotation" + } + ] + }, + "description": "a tag/text tuple attached to an arbitrary element", + "type": "object" }, - "local_name_value": { - "description": "a name assigned to an element in a given ontology", + "tag": { + "description": "a tag associated with an extension", "type": "string" + }, + "value": { + "$ref": "#/$defs/AnyValue", + "description": "the actual annotation" } }, "required": [ - "local_name_value" + "value" ], - "title": "LocalName", + "title": "Extension", "type": "object" }, - "MatchQuery": { + "ExtraSlotsExpression": { "additionalProperties": false, - "description": "A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts.", + "description": "An expression that defines how to handle additional data in an instance of class\nbeyond the slots/attributes defined for that class. \nSee `extra_slots` for usage examples.", "properties": { - "identifier_pattern": { - "description": "A regular expression that is used to obtain a set of identifiers from a source_ontology to construct a set of permissible values", - "type": "string" + "allowed": { + "description": "Whether or not something is allowed. Usage defined by context.", + "type": "boolean" }, - "source_ontology": { - "description": "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values", - "type": "string" + "range_expression": { + "$ref": "#/$defs/AnonymousClassExpression", + "description": "A range that is described as a boolean expression combining existing ranges" } }, - "title": "MatchQuery", + "title": "ExtraSlotsExpression", "type": "object" }, - "PathExpression": { + "ImportExpression": { "additionalProperties": false, - "description": "An expression that describes an abstract path from an object to another through a sequence of slot lookups", + "description": "an expression describing an import", "properties": { "aliases": { "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", @@ -3962,13 +3935,6 @@ }, "type": "array" }, - "all_of": { - "description": "holds if all of the expressions hold", - "items": { - "$ref": "#/$defs/PathExpression" - }, - "type": "array" - }, "alt_descriptions": { "additionalProperties": { "anyOf": [ @@ -3999,13 +3965,6 @@ "description": "a collection of tag/text tuples with the semantics of OWL Annotation", "type": "object" }, - "any_of": { - "description": "holds if at least one of the expressions hold", - "items": { - "$ref": "#/$defs/PathExpression" - }, - "type": "array" - }, "broad_mappings": { "description": "A list of terms from different schemas or terminology systems that have broader meaning.", "items": { @@ -4073,13 +4032,6 @@ }, "type": "array" }, - "exactly_one_of": { - "description": "holds if only one of the expressions hold", - "items": { - "$ref": "#/$defs/PathExpression" - }, - "type": "array" - }, "examples": { "description": "example usages of an element", "items": { @@ -4102,14 +4054,30 @@ "description": "a tag/text tuple attached to an arbitrary element", "type": "object" }, - "followed_by": { - "$ref": "#/$defs/PathExpression", - "description": "in a sequential list, this indicates the next member" - }, "from_schema": { "description": "id of the schema that defined the element", "type": "string" }, + "import_as": { + "type": "string" + }, + "import_from": { + "type": "string" + }, + "import_map": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/Setting__identifier_optional" + }, + { + "description": "The value assigned for a setting", + "type": "string" + } + ] + }, + "type": "object" + }, "imported_from": { "description": "the imports entry that this element was derived from. Empty means primary source", "type": "string" @@ -4155,13 +4123,6 @@ }, "type": "array" }, - "none_of": { - "description": "holds if none of the expressions hold", - "items": { - "$ref": "#/$defs/PathExpression" - }, - "type": "array" - }, "notes": { "description": "editorial notes about an element intended primarily for internal consumption", "items": { @@ -4169,10 +4130,6 @@ }, "type": "array" }, - "range_expression": { - "$ref": "#/$defs/AnonymousClassExpression", - "description": "A range that is described as a boolean expression combining existing ranges" - }, "rank": { "description": "the relative order in which the element occurs, lower values are given precedence", "type": "integer" @@ -4184,10 +4141,6 @@ }, "type": "array" }, - "reversed": { - "description": "true if the slot is to be inversed", - "type": "boolean" - }, "see_also": { "description": "A list of related entities or URLs that may be of relevance", "items": { @@ -4220,18 +4173,84 @@ "type": "string" }, "type": "array" + } + }, + "required": [ + "import_from" + ], + "title": "ImportExpression", + "type": "object" + }, + "LocalName": { + "additionalProperties": false, + "description": "an attributed label", + "properties": { + "local_name_source": { + "description": "the ncname of the source of the name", + "type": "string" }, - "traverse": { - "description": "the slot to traverse", + "local_name_value": { + "description": "a name assigned to an element in a given ontology", "type": "string" } }, - "title": "PathExpression", + "required": [ + "local_name_source", + "local_name_value" + ], + "title": "LocalName", "type": "object" }, - "PatternExpression": { + "LocalName__identifier_optional": { "additionalProperties": false, - "description": "a regular expression pattern used to evaluate conformance of a string", + "description": "an attributed label", + "properties": { + "local_name_source": { + "description": "the ncname of the source of the name", + "type": "string" + }, + "local_name_value": { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + }, + "required": [ + "local_name_value" + ], + "title": "LocalName", + "type": "object" + }, + "MatchQuery": { + "additionalProperties": false, + "description": "A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts.", + "properties": { + "identifier_pattern": { + "description": "A regular expression that is used to obtain a set of identifiers from a source_ontology to construct a set of permissible values", + "type": "string" + }, + "source_ontology": { + "description": "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values", + "type": "string" + } + }, + "title": "MatchQuery", + "type": "object" + }, + "ObligationLevelEnum": { + "description": "The level of obligation or recommendation strength for a metadata element", + "enum": [ + "REQUIRED", + "RECOMMENDED", + "OPTIONAL", + "EXAMPLE", + "DISCOURAGED" + ], + "title": "ObligationLevelEnum", + "type": "string" + }, + "PathExpression": { + "additionalProperties": false, + "description": "An expression that describes an abstract path from an object to another through a sequence of slot lookups", "properties": { "aliases": { "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", @@ -4240,6 +4259,13 @@ }, "type": "array" }, + "all_of": { + "description": "holds if all of the expressions hold", + "items": { + "$ref": "#/$defs/PathExpression" + }, + "type": "array" + }, "alt_descriptions": { "additionalProperties": { "anyOf": [ @@ -4270,6 +4296,13 @@ "description": "a collection of tag/text tuples with the semantics of OWL Annotation", "type": "object" }, + "any_of": { + "description": "holds if at least one of the expressions hold", + "items": { + "$ref": "#/$defs/PathExpression" + }, + "type": "array" + }, "broad_mappings": { "description": "A list of terms from different schemas or terminology systems that have broader meaning.", "items": { @@ -4337,6 +4370,13 @@ }, "type": "array" }, + "exactly_one_of": { + "description": "holds if only one of the expressions hold", + "items": { + "$ref": "#/$defs/PathExpression" + }, + "type": "array" + }, "examples": { "description": "example usages of an element", "items": { @@ -4359,6 +4399,10 @@ "description": "a tag/text tuple attached to an arbitrary element", "type": "object" }, + "followed_by": { + "$ref": "#/$defs/PathExpression", + "description": "in a sequential list, this indicates the next member" + }, "from_schema": { "description": "id of the schema that defined the element", "type": "string" @@ -4378,10 +4422,6 @@ }, "type": "array" }, - "interpolated": { - "description": "if true then the pattern is first string interpolated", - "type": "boolean" - }, "keywords": { "description": "Keywords or tags used to describe the element", "items": { @@ -4412,6 +4452,13 @@ }, "type": "array" }, + "none_of": { + "description": "holds if none of the expressions hold", + "items": { + "$ref": "#/$defs/PathExpression" + }, + "type": "array" + }, "notes": { "description": "editorial notes about an element intended primarily for internal consumption", "items": { @@ -4419,9 +4466,9 @@ }, "type": "array" }, - "partial_match": { - "description": "if not true then the pattern must match the whole string, as if enclosed in ^...$", - "type": "boolean" + "range_expression": { + "$ref": "#/$defs/AnonymousClassExpression", + "description": "A range that is described as a boolean expression combining existing ranges" }, "rank": { "description": "the relative order in which the element occurs, lower values are given precedence", @@ -4434,6 +4481,10 @@ }, "type": "array" }, + "reversed": { + "description": "true if the slot is to be inversed", + "type": "boolean" + }, "see_also": { "description": "A list of related entities or URLs that may be of relevance", "items": { @@ -4456,10 +4507,6 @@ }, "type": "array" }, - "syntax": { - "description": "the string value of the slot must conform to this regular expression expressed in the string. May be interpolated.", - "type": "string" - }, "title": { "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.", "type": "string" @@ -4470,14 +4517,18 @@ "type": "string" }, "type": "array" + }, + "traverse": { + "description": "the slot to traverse", + "type": "string" } }, - "title": "PatternExpression", + "title": "PathExpression", "type": "object" }, - "PermissibleValue": { + "PatternExpression": { "additionalProperties": false, - "description": "a permissible value, accompanied by intended text and an optional mapping to a concept URI", + "description": "a regular expression pattern used to evaluate conformance of a string", "properties": { "aliases": { "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", @@ -4624,6 +4675,10 @@ }, "type": "array" }, + "interpolated": { + "description": "if true then the pattern is first string interpolated", + "type": "boolean" + }, "keywords": { "description": "Keywords or tags used to describe the element", "items": { @@ -4643,10 +4698,6 @@ }, "type": "array" }, - "meaning": { - "description": "the value meaning of a permissible value", - "type": "string" - }, "modified_by": { "description": "agent that modified the element", "type": "string" @@ -4665,6 +4716,10 @@ }, "type": "array" }, + "partial_match": { + "description": "if not true then the pattern must match the whole string, as if enclosed in ^...$", + "type": "boolean" + }, "rank": { "description": "the relative order in which the element occurs, lower values are given precedence", "type": "integer" @@ -4698,8 +4753,8 @@ }, "type": "array" }, - "text": { - "description": "The actual permissible value itself", + "syntax": { + "description": "the string value of the slot must conform to this regular expression expressed in the string. May be interpolated.", "type": "string" }, "title": { @@ -4712,19 +4767,12 @@ "type": "string" }, "type": "array" - }, - "unit": { - "$ref": "#/$defs/UnitOfMeasure", - "description": "an encoding of a unit" } }, - "required": [ - "text" - ], - "title": "PermissibleValue", + "title": "PatternExpression", "type": "object" }, - "PermissibleValue__identifier_optional": { + "PermissibleValue": { "additionalProperties": false, "description": "a permissible value, accompanied by intended text and an optional mapping to a concept URI", "properties": { @@ -4858,6 +4906,13 @@ "description": "id of the schema that defined the element", "type": "string" }, + "implements": { + "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.", + "items": { + "type": "string" + }, + "type": "array" + }, "imported_from": { "description": "the imports entry that this element was derived from. Empty means primary source", "type": "string" @@ -4873,6 +4928,17 @@ }, "type": "array" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, + "is_a": { + "description": "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded", + "type": "string" + }, "keywords": { "description": "Keywords or tags used to describe the element", "items": { @@ -4896,6 +4962,13 @@ "description": "the value meaning of a permissible value", "type": "string" }, + "mixins": { + "description": "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from.", + "items": { + "type": "string" + }, + "type": "array" + }, "modified_by": { "description": "agent that modified the element", "type": "string" @@ -4967,124 +5040,15 @@ "description": "an encoding of a unit" } }, - "required": [], - "title": "PermissibleValue", - "type": "object" - }, - "Prefix": { - "additionalProperties": false, - "description": "prefix URI tuple", - "properties": { - "prefix_prefix": { - "description": "The prefix components of a prefix expansions. This is the part that appears before the colon in a CURIE.", - "type": "string" - }, - "prefix_reference": { - "description": "The namespace to which a prefix expands to.", - "type": "string" - } - }, "required": [ - "prefix_prefix", - "prefix_reference" + "text" ], - "title": "Prefix", + "title": "PermissibleValue", "type": "object" }, - "Prefix__identifier_optional": { + "PermissibleValue__identifier_optional": { "additionalProperties": false, - "description": "prefix URI tuple", - "properties": { - "prefix_prefix": { - "description": "The prefix components of a prefix expansions. This is the part that appears before the colon in a CURIE.", - "type": "string" - }, - "prefix_reference": { - "description": "The namespace to which a prefix expands to.", - "type": "string" - } - }, - "required": [ - "prefix_reference" - ], - "title": "Prefix", - "type": "object" - }, - "PresenceEnum": { - "description": "enumeration of conditions by which a slot value should be set", - "enum": [ - "UNCOMMITTED", - "PRESENT", - "ABSENT" - ], - "title": "PresenceEnum", - "type": "string" - }, - "PvFormulaOptions": { - "description": "The formula used to generate the set of permissible values from the code_set values", - "enum": [ - "CODE", - "CURIE", - "URI", - "FHIR_CODING", - "LABEL" - ], - "title": "PvFormulaOptions", - "type": "string" - }, - "ReachabilityQuery": { - "additionalProperties": false, - "description": "A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types.", - "properties": { - "include_self": { - "description": "True if the query is reflexive", - "type": "boolean" - }, - "is_direct": { - "description": "True if the reachability query should only include directly related nodes, if False then include also transitively connected", - "type": "boolean" - }, - "relationship_types": { - "description": "A list of relationship types (properties) that are used in a reachability query", - "items": { - "type": "string" - }, - "type": "array" - }, - "source_nodes": { - "description": "A list of nodes that are used in the reachability query", - "items": { - "type": "string" - }, - "type": "array" - }, - "source_ontology": { - "description": "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values", - "type": "string" - }, - "traverse_up": { - "description": "True if the direction of the reachability query is reversed and ancestors are retrieved", - "type": "boolean" - } - }, - "title": "ReachabilityQuery", - "type": "object" - }, - "RelationalRoleEnum": { - "description": "enumeration of roles a slot on a relationship class can play", - "enum": [ - "SUBJECT", - "OBJECT", - "PREDICATE", - "NODE", - "OTHER_ROLE" - ], - "title": "RelationalRoleEnum", - "type": "string" - }, - "SchemaDefinition": { - "additionalProperties": false, - "description": "A collection of definitions that make up a schema or a data model.", + "description": "a permissible value, accompanied by intended text and an optional mapping to a concept URI", "properties": { "aliases": { "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", @@ -5137,20 +5101,6 @@ }, "type": "array" }, - "classes": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/ClassDefinition__identifier_optional" - }, - { - "type": "null" - } - ] - }, - "description": "An index to the collection of all class definitions in the schema", - "type": "object" - }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -5165,10 +5115,6 @@ }, "type": "array" }, - "conforms_to": { - "description": "An established standard to which the element conforms.", - "type": "string" - }, "contributors": { "description": "agent that contributed to the element", "items": { @@ -5185,25 +5131,6 @@ "format": "date-time", "type": "string" }, - "default_curi_maps": { - "description": "ordered list of prefixcommon biocontexts to be fetched to resolve id prefixes and inline prefix variables", - "items": { - "type": "string" - }, - "type": "array" - }, - "default_prefix": { - "description": "The prefix that is used for all elements within a schema", - "type": "string" - }, - "default_range": { - "description": "default slot range to be used if range element is omitted from a slot definition", - "type": "string" - }, - "definition_uri": { - "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri", - "type": "string" - }, "deprecated": { "description": "Description of why and when this element will no longer be used", "type": "string" @@ -5220,27 +5147,6 @@ "description": "a textual description of the element's purpose and use", "type": "string" }, - "emit_prefixes": { - "description": "a list of Curie prefixes that are used in the representation of instances of the model. All prefixes in this list are added to the prefix sections of the target models.", - "items": { - "type": "string" - }, - "type": "array" - }, - "enums": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/EnumDefinition__identifier_optional" - }, - { - "type": "null" - } - ] - }, - "description": "An index to the collection of all enum definitions in the schema", - "type": "object" - }, "exact_mappings": { "description": "A list of terms from different schemas or terminology systems that have identical meaning.", "items": { @@ -5274,26 +5180,6 @@ "description": "id of the schema that defined the element", "type": "string" }, - "generation_date": { - "description": "date and time that the schema was loaded/generated", - "format": "date-time", - "type": "string" - }, - "id": { - "description": "The official schema URI", - "type": "string" - }, - "id_prefixes": { - "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix", - "items": { - "type": "string" - }, - "type": "array" - }, - "id_prefixes_are_closed": { - "description": "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation.", - "type": "boolean" - }, "implements": { "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.", "items": { @@ -5305,13 +5191,6 @@ "description": "the imports entry that this element was derived from. Empty means primary source", "type": "string" }, - "imports": { - "description": "A list of schemas that are to be included in this schema", - "items": { - "type": "string" - }, - "type": "array" - }, "in_language": { "description": "the primary language used in the sources", "type": "string" @@ -5330,6 +5209,10 @@ }, "type": "array" }, + "is_a": { + "description": "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded", + "type": "string" + }, "keywords": { "description": "Keywords or tags used to describe the element", "items": { @@ -5342,24 +5225,6 @@ "format": "date-time", "type": "string" }, - "license": { - "description": "license for the schema", - "type": "string" - }, - "local_names": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/LocalName__identifier_optional" - }, - { - "description": "a name assigned to an element in a given ontology", - "type": "string" - } - ] - }, - "type": "object" - }, "mappings": { "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.", "items": { @@ -5367,18 +5232,21 @@ }, "type": "array" }, - "metamodel_version": { - "description": "Version of the metamodel used to load the schema", + "meaning": { + "description": "the value meaning of a permissible value", "type": "string" }, + "mixins": { + "description": "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from.", + "items": { + "type": "string" + }, + "type": "array" + }, "modified_by": { "description": "agent that modified the element", "type": "string" }, - "name": { - "description": "a unique name for the schema that is both human-readable and consists of only characters from the NCName set", - "type": "string" - }, "narrow_mappings": { "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", "items": { @@ -5393,21 +5261,6 @@ }, "type": "array" }, - "prefixes": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/Prefix__identifier_optional" - }, - { - "description": "The namespace to which a prefix expands to.", - "type": "string" - } - ] - }, - "description": "A collection of prefix expansions that specify how CURIEs can be expanded to URIs", - "type": "object" - }, "rank": { "description": "the relative order in which the element occurs, lower values are given precedence", "type": "integer" @@ -5426,56 +5279,10 @@ }, "type": "array" }, - "settings": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/Setting__identifier_optional" - }, - { - "description": "The value assigned for a setting", - "type": "string" - } - ] - }, - "description": "A collection of global variable settings", - "type": "object" - }, - "slot_names_unique": { - "description": "if true then induced/mangled slot names are not created for class_usage and attributes", - "type": "boolean" - }, - "slots": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/SlotDefinition__identifier_optional" - }, - { - "type": "null" - } - ] - }, - "description": "An index to the collection of all slot definitions in the schema", - "type": "object" - }, "source": { "description": "A related resource from which the element is derived.", "type": "string" }, - "source_file": { - "description": "name, uri or description of the source of the schema", - "type": "string" - }, - "source_file_date": { - "description": "modification date of the source of the schema", - "format": "date-time", - "type": "string" - }, - "source_file_size": { - "description": "size in bytes of the source of the schema", - "type": "integer" - }, "status": { "description": "status of the element", "type": "string" @@ -5487,19 +5294,9 @@ }, "type": "array" }, - "subsets": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/SubsetDefinition__identifier_optional" - }, - { - "type": "null" - } - ] - }, - "description": "An index to the collection of all subset definitions in the schema", - "type": "object" + "text": { + "description": "The actual permissible value itself", + "type": "string" }, "title": { "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.", @@ -5512,83 +5309,130 @@ }, "type": "array" }, - "types": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/TypeDefinition__identifier_optional" - }, - { - "type": "null" - } - ] - }, - "description": "An index to the collection of all type definitions in the schema", - "type": "object" - }, - "version": { - "description": "particular version of schema", - "type": "string" + "unit": { + "$ref": "#/$defs/UnitOfMeasure", + "description": "an encoding of a unit" } }, - "required": [ - "id", - "name" - ], - "title": "SchemaDefinition", + "required": [], + "title": "PermissibleValue", "type": "object" }, - "Setting": { + "Prefix": { "additionalProperties": false, - "description": "assignment of a key to a value", + "description": "prefix URI tuple", "properties": { - "setting_key": { - "description": "the variable name for a setting", + "prefix_prefix": { + "description": "The prefix components of a prefix expansions. This is the part that appears before the colon in a CURIE.", "type": "string" }, - "setting_value": { - "description": "The value assigned for a setting", + "prefix_reference": { + "description": "The namespace to which a prefix expands to.", "type": "string" } }, "required": [ - "setting_key", - "setting_value" + "prefix_prefix", + "prefix_reference" ], - "title": "Setting", + "title": "Prefix", "type": "object" }, - "Setting__identifier_optional": { + "Prefix__identifier_optional": { "additionalProperties": false, - "description": "assignment of a key to a value", + "description": "prefix URI tuple", "properties": { - "setting_key": { - "description": "the variable name for a setting", + "prefix_prefix": { + "description": "The prefix components of a prefix expansions. This is the part that appears before the colon in a CURIE.", "type": "string" }, - "setting_value": { - "description": "The value assigned for a setting", + "prefix_reference": { + "description": "The namespace to which a prefix expands to.", "type": "string" } }, "required": [ - "setting_value" + "prefix_reference" ], - "title": "Setting", + "title": "Prefix", "type": "object" }, - "SlotDefinition": { + "PresenceEnum": { + "description": "enumeration of conditions by which a slot value should be set", + "enum": [ + "UNCOMMITTED", + "PRESENT", + "ABSENT" + ], + "title": "PresenceEnum", + "type": "string" + }, + "PvFormulaOptions": { + "description": "The formula used to generate the set of permissible values from the code_set values", + "enum": [ + "CODE", + "CURIE", + "URI", + "FHIR_CODING", + "LABEL" + ], + "title": "PvFormulaOptions", + "type": "string" + }, + "ReachabilityQuery": { "additionalProperties": false, - "description": "an element that describes how instances are related to other instances", + "description": "A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types.", "properties": { - "abstract": { - "description": "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes.", + "include_self": { + "description": "True if the query is reflexive", "type": "boolean" }, - "alias": { - "description": "the name used for a slot in the context of its owning class. If present, this is used instead of the actual slot name.", + "is_direct": { + "description": "True if the reachability query should only include directly related nodes, if False then include also transitively connected", + "type": "boolean" + }, + "relationship_types": { + "description": "A list of relationship types (properties) that are used in a reachability query", + "items": { + "type": "string" + }, + "type": "array" + }, + "source_nodes": { + "description": "A list of nodes that are used in the reachability query", + "items": { + "type": "string" + }, + "type": "array" + }, + "source_ontology": { + "description": "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values", "type": "string" }, + "traverse_up": { + "description": "True if the direction of the reachability query is reversed and ancestors are retrieved", + "type": "boolean" + } + }, + "title": "ReachabilityQuery", + "type": "object" + }, + "RelationalRoleEnum": { + "description": "enumeration of roles a slot on a relationship class can play", + "enum": [ + "SUBJECT", + "OBJECT", + "PREDICATE", + "NODE", + "OTHER_ROLE" + ], + "title": "RelationalRoleEnum", + "type": "string" + }, + "SchemaDefinition": { + "additionalProperties": false, + "description": "A collection of definitions that make up a schema or a data model.", + "properties": { "aliases": { "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", "items": { @@ -5596,14 +5440,1763 @@ }, "type": "array" }, - "all_members": { - "$ref": "#/$defs/AnonymousSlotExpression", - "description": "the value of the slot is multivalued with all members satisfying the condition" + "alt_descriptions": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] + }, + "description": "A sourced alternative description for an element", + "type": "object" }, - "all_of": { - "description": "holds if all of the expressions hold", + "annotations": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/Annotation__identifier_optional" + }, + { + "$ref": "#/$defs/AnyValue", + "description": "the actual annotation" + } + ] + }, + "description": "a collection of tag/text tuples with the semantics of OWL Annotation", + "type": "object" + }, + "bindings": { + "description": "A collection of enum bindings that specify how a slot can be bound to a permissible value from an enumeration.\nLinkML provides enums to allow string values to be restricted to one of a set of permissible values (specified statically or dynamically).\nEnum bindings allow enums to be bound to any object, including complex nested objects. For example, given a (generic) class Concept with slots id and label, it may be desirable to restrict the values the id takes on in a given context. For example, a HumanSample class may have a slot for representing sample site, with a range of concept, but the values of that slot may be restricted to concepts from a particular branch of an anatomy ontology.", + "items": { + "$ref": "#/$defs/EnumBinding" + }, + "type": "array" + }, + "broad_mappings": { + "description": "A list of terms from different schemas or terminology systems that have broader meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, + "classes": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/ClassDefinition__identifier_optional" + }, + { + "type": "null" + } + ] + }, + "description": "An index to the collection of all class definitions in the schema", + "type": "object" + }, + "close_mappings": { + "description": "A list of terms from different schemas or terminology systems that have close meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "comments": { + "description": "notes and comments about an element intended primarily for external consumption", + "items": { + "type": "string" + }, + "type": "array" + }, + "conforms_to": { + "description": "An established standard to which the element conforms.", + "type": "string" + }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, + "created_by": { + "description": "agent that created the element", + "type": "string" + }, + "created_on": { + "description": "time at which the element was created", + "format": "date-time", + "type": "string" + }, + "default_curi_maps": { + "description": "ordered list of prefixcommon biocontexts to be fetched to resolve id prefixes and inline prefix variables", + "items": { + "type": "string" + }, + "type": "array" + }, + "default_prefix": { + "description": "The prefix that is used for all elements within a schema", + "type": "string" + }, + "default_range": { + "description": "default slot range to be used if range element is omitted from a slot definition", + "type": "string" + }, + "definition_uri": { + "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri", + "type": "string" + }, + "deprecated": { + "description": "Description of why and when this element will no longer be used", + "type": "string" + }, + "deprecated_element_has_exact_replacement": { + "description": "When an element is deprecated, it can be automatically replaced by this uri or curie", + "type": "string" + }, + "deprecated_element_has_possible_replacement": { + "description": "When an element is deprecated, it can be potentially replaced by this uri or curie", + "type": "string" + }, + "description": { + "description": "a textual description of the element's purpose and use", + "type": "string" + }, + "emit_prefixes": { + "description": "a list of Curie prefixes that are used in the representation of instances of the model. All prefixes in this list are added to the prefix sections of the target models.", + "items": { + "type": "string" + }, + "type": "array" + }, + "enums": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/EnumDefinition__identifier_optional" + }, + { + "type": "null" + } + ] + }, + "description": "An index to the collection of all enum definitions in the schema", + "type": "object" + }, + "exact_mappings": { + "description": "A list of terms from different schemas or terminology systems that have identical meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "examples": { + "description": "example usages of an element", + "items": { + "$ref": "#/$defs/Example" + }, + "type": "array" + }, + "extensions": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/Extension__identifier_optional" + }, + { + "$ref": "#/$defs/AnyValue", + "description": "the actual annotation" + } + ] + }, + "description": "a tag/text tuple attached to an arbitrary element", + "type": "object" + }, + "from_schema": { + "description": "id of the schema that defined the element", + "type": "string" + }, + "generation_date": { + "description": "date and time that the schema was loaded/generated", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "The official schema URI", + "type": "string" + }, + "id_prefixes": { + "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix", + "items": { + "type": "string" + }, + "type": "array" + }, + "id_prefixes_are_closed": { + "description": "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation.", + "type": "boolean" + }, + "implements": { + "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.", + "items": { + "type": "string" + }, + "type": "array" + }, + "imported_from": { + "description": "the imports entry that this element was derived from. Empty means primary source", + "type": "string" + }, + "imports": { + "description": "A list of schemas that are to be included in this schema", + "items": { + "type": "string" + }, + "type": "array" + }, + "in_language": { + "description": "the primary language used in the sources", + "type": "string" + }, + "in_subset": { + "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.", + "items": { + "type": "string" + }, + "type": "array" + }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, + "last_updated_on": { + "description": "time at which the element was last updated", + "format": "date-time", + "type": "string" + }, + "license": { + "description": "license for the schema", + "type": "string" + }, + "local_names": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] + }, + "type": "object" + }, + "mappings": { + "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.", + "items": { + "type": "string" + }, + "type": "array" + }, + "metamodel_version": { + "description": "Version of the metamodel used to load the schema", + "type": "string" + }, + "modified_by": { + "description": "agent that modified the element", + "type": "string" + }, + "name": { + "description": "a unique name for the schema that is both human-readable and consists of only characters from the NCName set", + "type": "string" + }, + "narrow_mappings": { + "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "notes": { + "description": "editorial notes about an element intended primarily for internal consumption", + "items": { + "type": "string" + }, + "type": "array" + }, + "prefixes": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/Prefix__identifier_optional" + }, + { + "description": "The namespace to which a prefix expands to.", + "type": "string" + } + ] + }, + "description": "A collection of prefix expansions that specify how CURIEs can be expanded to URIs", + "type": "object" + }, + "rank": { + "description": "the relative order in which the element occurs, lower values are given precedence", + "type": "integer" + }, + "related_mappings": { + "description": "A list of terms from different schemas or terminology systems that have related meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "see_also": { + "description": "A list of related entities or URLs that may be of relevance", + "items": { + "type": "string" + }, + "type": "array" + }, + "settings": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/Setting__identifier_optional" + }, + { + "description": "The value assigned for a setting", + "type": "string" + } + ] + }, + "description": "A collection of global variable settings", + "type": "object" + }, + "slot_names_unique": { + "description": "if true then induced/mangled slot names are not created for class_usage and attributes", + "type": "boolean" + }, + "slots": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/SlotDefinition__identifier_optional" + }, + { + "type": "null" + } + ] + }, + "description": "An index to the collection of all slot definitions in the schema", + "type": "object" + }, + "source": { + "description": "A related resource from which the element is derived.", + "type": "string" + }, + "source_file": { + "description": "name, uri or description of the source of the schema", + "type": "string" + }, + "source_file_date": { + "description": "modification date of the source of the schema", + "format": "date-time", + "type": "string" + }, + "source_file_size": { + "description": "size in bytes of the source of the schema", + "type": "integer" + }, + "status": { + "description": "status of the element", + "type": "string" + }, + "structured_aliases": { + "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.", + "items": { + "$ref": "#/$defs/StructuredAlias" + }, + "type": "array" + }, + "subsets": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/SubsetDefinition__identifier_optional" + }, + { + "type": "null" + } + ] + }, + "description": "An index to the collection of all subset definitions in the schema", + "type": "object" + }, + "title": { + "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.", + "type": "string" + }, + "todos": { + "description": "Outstanding issues that needs resolution", + "items": { + "type": "string" + }, + "type": "array" + }, + "types": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/TypeDefinition__identifier_optional" + }, + { + "type": "null" + } + ] + }, + "description": "An index to the collection of all type definitions in the schema", + "type": "object" + }, + "version": { + "description": "particular version of schema", + "type": "string" + } + }, + "required": [ + "id", + "name" + ], + "title": "SchemaDefinition", + "type": "object" + }, + "Setting": { + "additionalProperties": false, + "description": "assignment of a key to a value", + "properties": { + "setting_key": { + "description": "the variable name for a setting", + "type": "string" + }, + "setting_value": { + "description": "The value assigned for a setting", + "type": "string" + } + }, + "required": [ + "setting_key", + "setting_value" + ], + "title": "Setting", + "type": "object" + }, + "Setting__identifier_optional": { + "additionalProperties": false, + "description": "assignment of a key to a value", + "properties": { + "setting_key": { + "description": "the variable name for a setting", + "type": "string" + }, + "setting_value": { + "description": "The value assigned for a setting", + "type": "string" + } + }, + "required": [ + "setting_value" + ], + "title": "Setting", + "type": "object" + }, + "SlotDefinition": { + "additionalProperties": false, + "description": "an element that describes how instances are related to other instances", + "properties": { + "abstract": { + "description": "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes.", + "type": "boolean" + }, + "alias": { + "description": "the name used for a slot in the context of its owning class. If present, this is used instead of the actual slot name.", + "type": "string" + }, + "aliases": { + "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", + "items": { + "type": "string" + }, + "type": "array" + }, + "all_members": { + "$ref": "#/$defs/AnonymousSlotExpression", + "description": "the value of the slot is multivalued with all members satisfying the condition" + }, + "all_of": { + "description": "holds if all of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousSlotExpression" + }, + "type": "array" + }, + "alt_descriptions": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] + }, + "description": "A sourced alternative description for an element", + "type": "object" + }, + "annotations": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/Annotation__identifier_optional" + }, + { + "$ref": "#/$defs/AnyValue", + "description": "the actual annotation" + } + ] + }, + "description": "a collection of tag/text tuples with the semantics of OWL Annotation", + "type": "object" + }, + "any_of": { + "description": "holds if at least one of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousSlotExpression" + }, + "type": "array" + }, + "apply_to": { + "description": "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.", + "items": { + "type": "string" + }, + "type": "array" + }, + "array": { + "$ref": "#/$defs/ArrayExpression", + "description": "coerces the value of the slot into an array and defines the dimensions of that array" + }, + "asymmetric": { + "description": "If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i", + "type": "boolean" + }, + "bindings": { + "description": "A collection of enum bindings that specify how a slot can be bound to a permissible value from an enumeration.\nLinkML provides enums to allow string values to be restricted to one of a set of permissible values (specified statically or dynamically).\nEnum bindings allow enums to be bound to any object, including complex nested objects. For example, given a (generic) class Concept with slots id and label, it may be desirable to restrict the values the id takes on in a given context. For example, a HumanSample class may have a slot for representing sample site, with a range of concept, but the values of that slot may be restricted to concepts from a particular branch of an anatomy ontology.", + "items": { + "$ref": "#/$defs/EnumBinding" + }, + "type": "array" + }, + "broad_mappings": { + "description": "A list of terms from different schemas or terminology systems that have broader meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, + "children_are_mutually_disjoint": { + "description": "If true then all direct is_a children are mutually disjoint and share no instances in common", + "type": "boolean" + }, + "close_mappings": { + "description": "A list of terms from different schemas or terminology systems that have close meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "comments": { + "description": "notes and comments about an element intended primarily for external consumption", + "items": { + "type": "string" + }, + "type": "array" + }, + "conforms_to": { + "description": "An established standard to which the element conforms.", + "type": "string" + }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, + "created_by": { + "description": "agent that created the element", + "type": "string" + }, + "created_on": { + "description": "time at which the element was created", + "format": "date-time", + "type": "string" + }, + "definition_uri": { + "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri", + "type": "string" + }, + "deprecated": { + "description": "Description of why and when this element will no longer be used", + "type": "string" + }, + "deprecated_element_has_exact_replacement": { + "description": "When an element is deprecated, it can be automatically replaced by this uri or curie", + "type": "string" + }, + "deprecated_element_has_possible_replacement": { + "description": "When an element is deprecated, it can be potentially replaced by this uri or curie", + "type": "string" + }, + "description": { + "description": "a textual description of the element's purpose and use", + "type": "string" + }, + "designates_type": { + "description": "True means that the key slot(s) is used to determine the instantiation (types) relation between objects and a ClassDefinition", + "type": "boolean" + }, + "disjoint_with": { + "description": "Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances", + "items": { + "type": "string" + }, + "type": "array" + }, + "domain": { + "description": "defines the type of the subject of the slot. Given the following slot definition\n S1:\n domain: C1\n range: C2\nthe declaration\n X:\n S1: Y\n\nimplicitly asserts that X is an instance of C1\n", + "type": "string" + }, + "domain_of": { + "description": "the class(es) that reference the slot in a \"slots\" or \"slot_usage\" context", + "items": { + "type": "string" + }, + "type": "array" + }, + "enum_range": { + "$ref": "#/$defs/EnumExpression", + "description": "An inlined enumeration" + }, + "equals_expression": { + "description": "the value of the slot must equal the value of the evaluated expression", + "type": "string" + }, + "equals_number": { + "description": "the slot must have range of a number and the value of the slot must equal the specified value", + "type": "integer" + }, + "equals_string": { + "description": "the slot must have range string and the value of the slot must equal the specified value", + "type": "string" + }, + "equals_string_in": { + "description": "the slot must have range string and the value of the slot must equal one of the specified values", + "items": { + "type": "string" + }, + "type": "array" + }, + "exact_cardinality": { + "description": "the exact number of entries for a multivalued slot", + "type": "integer" + }, + "exact_mappings": { + "description": "A list of terms from different schemas or terminology systems that have identical meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "exactly_one_of": { + "description": "holds if only one of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousSlotExpression" + }, + "type": "array" + }, + "examples": { + "description": "example usages of an element", + "items": { + "$ref": "#/$defs/Example" + }, + "type": "array" + }, + "extensions": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/Extension__identifier_optional" + }, + { + "$ref": "#/$defs/AnyValue", + "description": "the actual annotation" + } + ] + }, + "description": "a tag/text tuple attached to an arbitrary element", + "type": "object" + }, + "from_schema": { + "description": "id of the schema that defined the element", + "type": "string" + }, + "has_member": { + "$ref": "#/$defs/AnonymousSlotExpression", + "description": "the value of the slot is multivalued with at least one member satisfying the condition" + }, + "id_prefixes": { + "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix", + "items": { + "type": "string" + }, + "type": "array" + }, + "id_prefixes_are_closed": { + "description": "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation.", + "type": "boolean" + }, + "identifier": { + "description": "True means that the key slot(s) uniquely identifies the elements. There can be at most one identifier or key per container", + "type": "boolean" + }, + "ifabsent": { + "description": "function that provides a default value for the slot.\n * [Tt]rue -- boolean True\n * [Ff]alse -- boolean False\n * bnode -- blank node identifier\n * class_curie -- CURIE for the containing class\n * class_uri -- URI for the containing class\n * default_ns -- schema default namespace\n * default_range -- schema default range\n * int(value) -- integer value\n * slot_uri -- URI for the slot\n * slot_curie -- CURIE for the slot\n * string(value) -- string value\n * EnumName(PermissibleValue) -- enum value", + "type": "string" + }, + "implements": { + "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.", + "items": { + "type": "string" + }, + "type": "array" + }, + "implicit_prefix": { + "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string", + "type": "string" + }, + "imported_from": { + "description": "the imports entry that this element was derived from. Empty means primary source", + "type": "string" + }, + "in_language": { + "description": "the primary language used in the sources", + "type": "string" + }, + "in_subset": { + "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.", + "items": { + "type": "string" + }, + "type": "array" + }, + "inherited": { + "description": "true means that the *value* of a slot is inherited by subclasses", + "type": "boolean" + }, + "inlined": { + "description": "True means that keyed or identified slot appears in an outer structure by value. False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere.", + "type": "boolean" + }, + "inlined_as_list": { + "description": "True means that an inlined slot is represented as a list of range instances. False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance.", + "type": "boolean" + }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, + "inverse": { + "description": "indicates that any instance of d s r implies that there is also an instance of r s' d", + "type": "string" + }, + "irreflexive": { + "description": "If s is irreflexive, then there exists no i such i.s=i", + "type": "boolean" + }, + "is_a": { + "description": "A primary parent slot from which inheritable metaslots are propagated", + "type": "string" + }, + "is_class_field": { + "description": "indicates that for any instance, i, the domain of this slot will include an assertion of i s range", + "type": "boolean" + }, + "is_grouping_slot": { + "description": "true if this slot is a grouping slot", + "type": "boolean" + }, + "is_usage_slot": { + "description": "True means that this slot was defined in a slot_usage situation", + "type": "boolean" + }, + "key": { + "description": "True means that the key slot(s) uniquely identify the elements within a single container", + "type": "boolean" + }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, + "last_updated_on": { + "description": "time at which the element was last updated", + "format": "date-time", + "type": "string" + }, + "list_elements_ordered": { + "description": "If True, then the order of elements of a multivalued slot is guaranteed to be preserved. If False, the order may still be preserved but this is not guaranteed", + "type": "boolean" + }, + "list_elements_unique": { + "description": "If True, then there must be no duplicates in the elements of a multivalued slot", + "type": "boolean" + }, + "local_names": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] + }, + "type": "object" + }, + "locally_reflexive": { + "description": "If s is locally_reflexive, then i.s=i for all instances i where s is a class slot for the type of i", + "type": "boolean" + }, + "mappings": { + "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.", + "items": { + "type": "string" + }, + "type": "array" + }, + "maximum_cardinality": { + "description": "the maximum number of entries for a multivalued slot", + "type": "integer" + }, + "maximum_value": { + "$ref": "#/$defs/Anything", + "description": "For ordinal ranges, the value must be equal to or lower than this" + }, + "minimum_cardinality": { + "description": "the minimum number of entries for a multivalued slot", + "type": "integer" + }, + "minimum_value": { + "$ref": "#/$defs/Anything", + "description": "For ordinal ranges, the value must be equal to or higher than this" + }, + "mixin": { + "description": "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins.", + "type": "boolean" + }, + "mixins": { + "description": "A collection of secondary parent mixin slots from which inheritable metaslots are propagated", + "items": { + "type": "string" + }, + "type": "array" + }, + "modified_by": { + "description": "agent that modified the element", + "type": "string" + }, + "multivalued": { + "description": "true means that slot can have more than one value and should be represented using a list or collection structure.", + "type": "boolean" + }, + "name": { + "description": "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class.", + "type": "string" + }, + "narrow_mappings": { + "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "none_of": { + "description": "holds if none of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousSlotExpression" + }, + "type": "array" + }, + "notes": { + "description": "editorial notes about an element intended primarily for internal consumption", + "items": { + "type": "string" + }, + "type": "array" + }, + "owner": { + "description": "the \"owner\" of the slot. It is the class if it appears in the slots list, otherwise the declaring slot", + "type": "string" + }, + "path_rule": { + "$ref": "#/$defs/PathExpression", + "description": "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments" + }, + "pattern": { + "description": "the string value of the slot must conform to this regular expression expressed in the string", + "type": "string" + }, + "range": { + "description": "defines the type of the object of the slot. Given the following slot definition\n S1:\n domain: C1\n range: C2\nthe declaration\n X:\n S1: Y\n\nimplicitly asserts Y is an instance of C2\n", + "type": "string" + }, + "range_expression": { + "$ref": "#/$defs/AnonymousClassExpression", + "description": "A range that is described as a boolean expression combining existing ranges" + }, + "rank": { + "description": "the relative order in which the element occurs, lower values are given precedence", + "type": "integer" + }, + "readonly": { + "description": "If present, slot is read only. Text explains why", + "type": "string" + }, + "recommended": { + "description": "true means that the slot should be present in instances of the class definition, but this is not required", + "type": "boolean" + }, + "reflexive": { + "description": "If s is reflexive, then i.s=i for all instances i", + "type": "boolean" + }, + "reflexive_transitive_form_of": { + "description": "transitive_form_of including the reflexive case", + "type": "string" + }, + "related_mappings": { + "description": "A list of terms from different schemas or terminology systems that have related meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "relational_role": { + "$ref": "#/$defs/RelationalRoleEnum", + "description": "the role a slot on a relationship class plays, for example, the subject, object or predicate roles" + }, + "required": { + "description": "true means that the slot must be present in instances of the class definition", + "type": "boolean" + }, + "role": { + "description": "a textual descriptor that indicates the role played by the slot range", + "type": "string" + }, + "see_also": { + "description": "A list of related entities or URLs that may be of relevance", + "items": { + "type": "string" + }, + "type": "array" + }, + "shared": { + "description": "If True, then the relationship between the slot domain and range is many to one or many to many", + "type": "boolean" + }, + "singular_name": { + "description": "a name that is used in the singular form", + "type": "string" + }, + "slot_group": { + "description": "allows for grouping of related slots into a grouping slot that serves the role of a group", + "type": "string" + }, + "slot_uri": { + "description": "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas.", + "type": "string" + }, + "source": { + "description": "A related resource from which the element is derived.", + "type": "string" + }, + "status": { + "description": "status of the element", + "type": "string" + }, + "string_serialization": { + "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm", + "type": "string" + }, + "structured_aliases": { + "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.", + "items": { + "$ref": "#/$defs/StructuredAlias" + }, + "type": "array" + }, + "structured_pattern": { + "$ref": "#/$defs/PatternExpression", + "description": "the string value of the slot must conform to the regular expression in the pattern expression" + }, + "subproperty_of": { + "description": "Ontology property which this slot is a subproperty of. Note: setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.", + "type": "string" + }, + "symmetric": { + "description": "If s is symmetric, and i.s=v, then v.s=i", + "type": "boolean" + }, + "title": { + "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.", + "type": "string" + }, + "todos": { + "description": "Outstanding issues that needs resolution", + "items": { + "type": "string" + }, + "type": "array" + }, + "transitive": { + "description": "If s is transitive, and i.s=z, and s.s=j, then i.s=j", + "type": "boolean" + }, + "transitive_form_of": { + "description": "If s transitive_form_of d, then (1) s holds whenever d holds (2) s is transitive (3) d holds whenever s holds and there are no intermediates, and s is not reflexive", + "type": "string" + }, + "type_mappings": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/TypeMapping__identifier_optional" + }, + { + "type": "null" + } + ] + }, + "description": "A collection of type mappings that specify how a slot's range should be mapped or serialized in different frameworks", + "type": "object" + }, + "union_of": { + "description": "indicates that the domain element consists exactly of the members of the element in the range.", + "items": { + "type": "string" + }, + "type": "array" + }, + "unit": { + "$ref": "#/$defs/UnitOfMeasure", + "description": "an encoding of a unit" + }, + "usage_slot_name": { + "description": "The name of the slot referenced in the slot_usage", + "type": "string" + }, + "value_presence": { + "$ref": "#/$defs/PresenceEnum", + "description": "if PRESENT then a value must be present (for lists there must be at least one value). If ABSENT then a value must be absent (for lists, must be empty)" + }, + "values_from": { + "description": "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "title": "SlotDefinition", + "type": "object" + }, + "SlotDefinition__identifier_optional": { + "additionalProperties": false, + "description": "an element that describes how instances are related to other instances", + "properties": { + "abstract": { + "description": "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes.", + "type": "boolean" + }, + "alias": { + "description": "the name used for a slot in the context of its owning class. If present, this is used instead of the actual slot name.", + "type": "string" + }, + "aliases": { + "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", + "items": { + "type": "string" + }, + "type": "array" + }, + "all_members": { + "$ref": "#/$defs/AnonymousSlotExpression", + "description": "the value of the slot is multivalued with all members satisfying the condition" + }, + "all_of": { + "description": "holds if all of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousSlotExpression" + }, + "type": "array" + }, + "alt_descriptions": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] + }, + "description": "A sourced alternative description for an element", + "type": "object" + }, + "annotations": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/Annotation__identifier_optional" + }, + { + "$ref": "#/$defs/AnyValue", + "description": "the actual annotation" + } + ] + }, + "description": "a collection of tag/text tuples with the semantics of OWL Annotation", + "type": "object" + }, + "any_of": { + "description": "holds if at least one of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousSlotExpression" + }, + "type": "array" + }, + "apply_to": { + "description": "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.", + "items": { + "type": "string" + }, + "type": "array" + }, + "array": { + "$ref": "#/$defs/ArrayExpression", + "description": "coerces the value of the slot into an array and defines the dimensions of that array" + }, + "asymmetric": { + "description": "If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i", + "type": "boolean" + }, + "bindings": { + "description": "A collection of enum bindings that specify how a slot can be bound to a permissible value from an enumeration.\nLinkML provides enums to allow string values to be restricted to one of a set of permissible values (specified statically or dynamically).\nEnum bindings allow enums to be bound to any object, including complex nested objects. For example, given a (generic) class Concept with slots id and label, it may be desirable to restrict the values the id takes on in a given context. For example, a HumanSample class may have a slot for representing sample site, with a range of concept, but the values of that slot may be restricted to concepts from a particular branch of an anatomy ontology.", + "items": { + "$ref": "#/$defs/EnumBinding" + }, + "type": "array" + }, + "broad_mappings": { + "description": "A list of terms from different schemas or terminology systems that have broader meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, + "children_are_mutually_disjoint": { + "description": "If true then all direct is_a children are mutually disjoint and share no instances in common", + "type": "boolean" + }, + "close_mappings": { + "description": "A list of terms from different schemas or terminology systems that have close meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "comments": { + "description": "notes and comments about an element intended primarily for external consumption", + "items": { + "type": "string" + }, + "type": "array" + }, + "conforms_to": { + "description": "An established standard to which the element conforms.", + "type": "string" + }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, + "created_by": { + "description": "agent that created the element", + "type": "string" + }, + "created_on": { + "description": "time at which the element was created", + "format": "date-time", + "type": "string" + }, + "definition_uri": { + "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri", + "type": "string" + }, + "deprecated": { + "description": "Description of why and when this element will no longer be used", + "type": "string" + }, + "deprecated_element_has_exact_replacement": { + "description": "When an element is deprecated, it can be automatically replaced by this uri or curie", + "type": "string" + }, + "deprecated_element_has_possible_replacement": { + "description": "When an element is deprecated, it can be potentially replaced by this uri or curie", + "type": "string" + }, + "description": { + "description": "a textual description of the element's purpose and use", + "type": "string" + }, + "designates_type": { + "description": "True means that the key slot(s) is used to determine the instantiation (types) relation between objects and a ClassDefinition", + "type": "boolean" + }, + "disjoint_with": { + "description": "Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances", + "items": { + "type": "string" + }, + "type": "array" + }, + "domain": { + "description": "defines the type of the subject of the slot. Given the following slot definition\n S1:\n domain: C1\n range: C2\nthe declaration\n X:\n S1: Y\n\nimplicitly asserts that X is an instance of C1\n", + "type": "string" + }, + "domain_of": { + "description": "the class(es) that reference the slot in a \"slots\" or \"slot_usage\" context", + "items": { + "type": "string" + }, + "type": "array" + }, + "enum_range": { + "$ref": "#/$defs/EnumExpression", + "description": "An inlined enumeration" + }, + "equals_expression": { + "description": "the value of the slot must equal the value of the evaluated expression", + "type": "string" + }, + "equals_number": { + "description": "the slot must have range of a number and the value of the slot must equal the specified value", + "type": "integer" + }, + "equals_string": { + "description": "the slot must have range string and the value of the slot must equal the specified value", + "type": "string" + }, + "equals_string_in": { + "description": "the slot must have range string and the value of the slot must equal one of the specified values", + "items": { + "type": "string" + }, + "type": "array" + }, + "exact_cardinality": { + "description": "the exact number of entries for a multivalued slot", + "type": "integer" + }, + "exact_mappings": { + "description": "A list of terms from different schemas or terminology systems that have identical meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "exactly_one_of": { + "description": "holds if only one of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousSlotExpression" + }, + "type": "array" + }, + "examples": { + "description": "example usages of an element", + "items": { + "$ref": "#/$defs/Example" + }, + "type": "array" + }, + "extensions": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/Extension__identifier_optional" + }, + { + "$ref": "#/$defs/AnyValue", + "description": "the actual annotation" + } + ] + }, + "description": "a tag/text tuple attached to an arbitrary element", + "type": "object" + }, + "from_schema": { + "description": "id of the schema that defined the element", + "type": "string" + }, + "has_member": { + "$ref": "#/$defs/AnonymousSlotExpression", + "description": "the value of the slot is multivalued with at least one member satisfying the condition" + }, + "id_prefixes": { + "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix", + "items": { + "type": "string" + }, + "type": "array" + }, + "id_prefixes_are_closed": { + "description": "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation.", + "type": "boolean" + }, + "identifier": { + "description": "True means that the key slot(s) uniquely identifies the elements. There can be at most one identifier or key per container", + "type": "boolean" + }, + "ifabsent": { + "description": "function that provides a default value for the slot.\n * [Tt]rue -- boolean True\n * [Ff]alse -- boolean False\n * bnode -- blank node identifier\n * class_curie -- CURIE for the containing class\n * class_uri -- URI for the containing class\n * default_ns -- schema default namespace\n * default_range -- schema default range\n * int(value) -- integer value\n * slot_uri -- URI for the slot\n * slot_curie -- CURIE for the slot\n * string(value) -- string value\n * EnumName(PermissibleValue) -- enum value", + "type": "string" + }, + "implements": { + "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.", + "items": { + "type": "string" + }, + "type": "array" + }, + "implicit_prefix": { + "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string", + "type": "string" + }, + "imported_from": { + "description": "the imports entry that this element was derived from. Empty means primary source", + "type": "string" + }, + "in_language": { + "description": "the primary language used in the sources", + "type": "string" + }, + "in_subset": { + "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.", + "items": { + "type": "string" + }, + "type": "array" + }, + "inherited": { + "description": "true means that the *value* of a slot is inherited by subclasses", + "type": "boolean" + }, + "inlined": { + "description": "True means that keyed or identified slot appears in an outer structure by value. False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere.", + "type": "boolean" + }, + "inlined_as_list": { + "description": "True means that an inlined slot is represented as a list of range instances. False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance.", + "type": "boolean" + }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, + "inverse": { + "description": "indicates that any instance of d s r implies that there is also an instance of r s' d", + "type": "string" + }, + "irreflexive": { + "description": "If s is irreflexive, then there exists no i such i.s=i", + "type": "boolean" + }, + "is_a": { + "description": "A primary parent slot from which inheritable metaslots are propagated", + "type": "string" + }, + "is_class_field": { + "description": "indicates that for any instance, i, the domain of this slot will include an assertion of i s range", + "type": "boolean" + }, + "is_grouping_slot": { + "description": "true if this slot is a grouping slot", + "type": "boolean" + }, + "is_usage_slot": { + "description": "True means that this slot was defined in a slot_usage situation", + "type": "boolean" + }, + "key": { + "description": "True means that the key slot(s) uniquely identify the elements within a single container", + "type": "boolean" + }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, + "last_updated_on": { + "description": "time at which the element was last updated", + "format": "date-time", + "type": "string" + }, + "list_elements_ordered": { + "description": "If True, then the order of elements of a multivalued slot is guaranteed to be preserved. If False, the order may still be preserved but this is not guaranteed", + "type": "boolean" + }, + "list_elements_unique": { + "description": "If True, then there must be no duplicates in the elements of a multivalued slot", + "type": "boolean" + }, + "local_names": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] + }, + "type": "object" + }, + "locally_reflexive": { + "description": "If s is locally_reflexive, then i.s=i for all instances i where s is a class slot for the type of i", + "type": "boolean" + }, + "mappings": { + "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.", + "items": { + "type": "string" + }, + "type": "array" + }, + "maximum_cardinality": { + "description": "the maximum number of entries for a multivalued slot", + "type": "integer" + }, + "maximum_value": { + "$ref": "#/$defs/Anything", + "description": "For ordinal ranges, the value must be equal to or lower than this" + }, + "minimum_cardinality": { + "description": "the minimum number of entries for a multivalued slot", + "type": "integer" + }, + "minimum_value": { + "$ref": "#/$defs/Anything", + "description": "For ordinal ranges, the value must be equal to or higher than this" + }, + "mixin": { + "description": "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins.", + "type": "boolean" + }, + "mixins": { + "description": "A collection of secondary parent mixin slots from which inheritable metaslots are propagated", + "items": { + "type": "string" + }, + "type": "array" + }, + "modified_by": { + "description": "agent that modified the element", + "type": "string" + }, + "multivalued": { + "description": "true means that slot can have more than one value and should be represented using a list or collection structure.", + "type": "boolean" + }, + "name": { + "description": "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class.", + "type": "string" + }, + "narrow_mappings": { + "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "none_of": { + "description": "holds if none of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousSlotExpression" + }, + "type": "array" + }, + "notes": { + "description": "editorial notes about an element intended primarily for internal consumption", + "items": { + "type": "string" + }, + "type": "array" + }, + "owner": { + "description": "the \"owner\" of the slot. It is the class if it appears in the slots list, otherwise the declaring slot", + "type": "string" + }, + "path_rule": { + "$ref": "#/$defs/PathExpression", + "description": "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments" + }, + "pattern": { + "description": "the string value of the slot must conform to this regular expression expressed in the string", + "type": "string" + }, + "range": { + "description": "defines the type of the object of the slot. Given the following slot definition\n S1:\n domain: C1\n range: C2\nthe declaration\n X:\n S1: Y\n\nimplicitly asserts Y is an instance of C2\n", + "type": "string" + }, + "range_expression": { + "$ref": "#/$defs/AnonymousClassExpression", + "description": "A range that is described as a boolean expression combining existing ranges" + }, + "rank": { + "description": "the relative order in which the element occurs, lower values are given precedence", + "type": "integer" + }, + "readonly": { + "description": "If present, slot is read only. Text explains why", + "type": "string" + }, + "recommended": { + "description": "true means that the slot should be present in instances of the class definition, but this is not required", + "type": "boolean" + }, + "reflexive": { + "description": "If s is reflexive, then i.s=i for all instances i", + "type": "boolean" + }, + "reflexive_transitive_form_of": { + "description": "transitive_form_of including the reflexive case", + "type": "string" + }, + "related_mappings": { + "description": "A list of terms from different schemas or terminology systems that have related meaning.", + "items": { + "type": "string" + }, + "type": "array" + }, + "relational_role": { + "$ref": "#/$defs/RelationalRoleEnum", + "description": "the role a slot on a relationship class plays, for example, the subject, object or predicate roles" + }, + "required": { + "description": "true means that the slot must be present in instances of the class definition", + "type": "boolean" + }, + "role": { + "description": "a textual descriptor that indicates the role played by the slot range", + "type": "string" + }, + "see_also": { + "description": "A list of related entities or URLs that may be of relevance", + "items": { + "type": "string" + }, + "type": "array" + }, + "shared": { + "description": "If True, then the relationship between the slot domain and range is many to one or many to many", + "type": "boolean" + }, + "singular_name": { + "description": "a name that is used in the singular form", + "type": "string" + }, + "slot_group": { + "description": "allows for grouping of related slots into a grouping slot that serves the role of a group", + "type": "string" + }, + "slot_uri": { + "description": "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas.", + "type": "string" + }, + "source": { + "description": "A related resource from which the element is derived.", + "type": "string" + }, + "status": { + "description": "status of the element", + "type": "string" + }, + "string_serialization": { + "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm", + "type": "string" + }, + "structured_aliases": { + "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.", + "items": { + "$ref": "#/$defs/StructuredAlias" + }, + "type": "array" + }, + "structured_pattern": { + "$ref": "#/$defs/PatternExpression", + "description": "the string value of the slot must conform to the regular expression in the pattern expression" + }, + "subproperty_of": { + "description": "Ontology property which this slot is a subproperty of. Note: setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.", + "type": "string" + }, + "symmetric": { + "description": "If s is symmetric, and i.s=v, then v.s=i", + "type": "boolean" + }, + "title": { + "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.", + "type": "string" + }, + "todos": { + "description": "Outstanding issues that needs resolution", + "items": { + "type": "string" + }, + "type": "array" + }, + "transitive": { + "description": "If s is transitive, and i.s=z, and s.s=j, then i.s=j", + "type": "boolean" + }, + "transitive_form_of": { + "description": "If s transitive_form_of d, then (1) s holds whenever d holds (2) s is transitive (3) d holds whenever s holds and there are no intermediates, and s is not reflexive", + "type": "string" + }, + "type_mappings": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/TypeMapping__identifier_optional" + }, + { + "type": "null" + } + ] + }, + "description": "A collection of type mappings that specify how a slot's range should be mapped or serialized in different frameworks", + "type": "object" + }, + "union_of": { + "description": "indicates that the domain element consists exactly of the members of the element in the range.", + "items": { + "type": "string" + }, + "type": "array" + }, + "unit": { + "$ref": "#/$defs/UnitOfMeasure", + "description": "an encoding of a unit" + }, + "usage_slot_name": { + "description": "The name of the slot referenced in the slot_usage", + "type": "string" + }, + "value_presence": { + "$ref": "#/$defs/PresenceEnum", + "description": "if PRESENT then a value must be present (for lists there must be at least one value). If ABSENT then a value must be absent (for lists, must be empty)" + }, + "values_from": { + "description": "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [], + "title": "SlotDefinition", + "type": "object" + }, + "StructuredAlias": { + "additionalProperties": false, + "description": "object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.)", + "properties": { + "aliases": { + "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", "items": { - "$ref": "#/$defs/AnonymousSlotExpression" + "type": "string" }, "type": "array" }, @@ -5637,28 +7230,6 @@ "description": "a collection of tag/text tuples with the semantics of OWL Annotation", "type": "object" }, - "any_of": { - "description": "holds if at least one of the expressions hold", - "items": { - "$ref": "#/$defs/AnonymousSlotExpression" - }, - "type": "array" - }, - "apply_to": { - "description": "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.", - "items": { - "type": "string" - }, - "type": "array" - }, - "array": { - "$ref": "#/$defs/ArrayExpression", - "description": "coerces the value of the slot into an array and defines the dimensions of that array" - }, - "asymmetric": { - "description": "If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i", - "type": "boolean" - }, "broad_mappings": { "description": "A list of terms from different schemas or terminology systems that have broader meaning.", "items": { @@ -5667,16 +7238,12 @@ "type": "array" }, "categories": { - "description": "Controlled terms used to categorize an element.", + "description": "The category or categories of an alias. This can be drawn from any relevant vocabulary", "items": { "type": "string" }, "type": "array" }, - "children_are_mutually_disjoint": { - "description": "If true then all direct is_a children are mutually disjoint and share no instances in common", - "type": "boolean" - }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -5691,9 +7258,12 @@ }, "type": "array" }, - "conforms_to": { - "description": "An established standard to which the element conforms.", - "type": "string" + "contexts": { + "description": "The context in which an alias should be applied", + "items": { + "type": "string" + }, + "type": "array" }, "contributors": { "description": "agent that contributed to the element", @@ -5711,10 +7281,6 @@ "format": "date-time", "type": "string" }, - "definition_uri": { - "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri", - "type": "string" - }, "deprecated": { "description": "Description of why and when this element will no longer be used", "type": "string" @@ -5731,55 +7297,6 @@ "description": "a textual description of the element's purpose and use", "type": "string" }, - "designates_type": { - "description": "True means that the key slot(s) is used to determine the instantiation (types) relation between objects and a ClassDefinition", - "type": "boolean" - }, - "disjoint_with": { - "description": "Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances", - "items": { - "type": "string" - }, - "type": "array" - }, - "domain": { - "description": "defines the type of the subject of the slot. Given the following slot definition\n S1:\n domain: C1\n range: C2\nthe declaration\n X:\n S1: Y\n\nimplicitly asserts that X is an instance of C1\n", - "type": "string" - }, - "domain_of": { - "description": "the class(es) that reference the slot in a \"slots\" or \"slot_usage\" context", - "items": { - "type": "string" - }, - "type": "array" - }, - "enum_range": { - "$ref": "#/$defs/EnumExpression", - "description": "An inlined enumeration" - }, - "equals_expression": { - "description": "the value of the slot must equal the value of the evaluated expression", - "type": "string" - }, - "equals_number": { - "description": "the slot must have range of a number and the value of the slot must equal the specified value", - "type": "integer" - }, - "equals_string": { - "description": "the slot must have range string and the value of the slot must equal the specified value", - "type": "string" - }, - "equals_string_in": { - "description": "the slot must have range string and the value of the slot must equal one of the specified values", - "items": { - "type": "string" - }, - "type": "array" - }, - "exact_cardinality": { - "description": "the exact number of entries for a multivalued slot", - "type": "integer" - }, "exact_mappings": { "description": "A list of terms from different schemas or terminology systems that have identical meaning.", "items": { @@ -5787,13 +7304,6 @@ }, "type": "array" }, - "exactly_one_of": { - "description": "holds if only one of the expressions hold", - "items": { - "$ref": "#/$defs/AnonymousSlotExpression" - }, - "type": "array" - }, "examples": { "description": "example usages of an element", "items": { @@ -5820,40 +7330,6 @@ "description": "id of the schema that defined the element", "type": "string" }, - "has_member": { - "$ref": "#/$defs/AnonymousSlotExpression", - "description": "the value of the slot is multivalued with at least one member satisfying the condition" - }, - "id_prefixes": { - "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix", - "items": { - "type": "string" - }, - "type": "array" - }, - "id_prefixes_are_closed": { - "description": "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation.", - "type": "boolean" - }, - "identifier": { - "description": "True means that the key slot(s) uniquely identifies the elements. There can be at most one identifier or key per container", - "type": "boolean" - }, - "ifabsent": { - "description": "function that provides a default value for the slot. Possible values for this slot are defined in linkml.utils.ifabsent_functions.default_library:\n * [Tt]rue -- boolean True\n * [Ff]alse -- boolean False\n * bnode -- blank node identifier\n * class_curie -- CURIE for the containing class\n * class_uri -- URI for the containing class\n * default_ns -- schema default namespace\n * default_range -- schema default range\n * int(value) -- integer value\n * slot_uri -- URI for the slot\n * slot_curie -- CURIE for the slot\n * string(value) -- string value", - "type": "string" - }, - "implements": { - "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.", - "items": { - "type": "string" - }, - "type": "array" - }, - "implicit_prefix": { - "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string", - "type": "string" - }, "imported_from": { "description": "the imports entry that this element was derived from. Empty means primary source", "type": "string" @@ -5869,53 +7345,6 @@ }, "type": "array" }, - "inherited": { - "description": "true means that the *value* of a slot is inherited by subclasses", - "type": "boolean" - }, - "inlined": { - "description": "True means that keyed or identified slot appears in an outer structure by value. False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere.", - "type": "boolean" - }, - "inlined_as_list": { - "description": "True means that an inlined slot is represented as a list of range instances. False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance.", - "type": "boolean" - }, - "instantiates": { - "description": "An element in another schema which this element instantiates.", - "items": { - "type": "string" - }, - "type": "array" - }, - "inverse": { - "description": "indicates that any instance of d s r implies that there is also an instance of r s' d", - "type": "string" - }, - "irreflexive": { - "description": "If s is irreflexive, then there exists no i such i.s=i", - "type": "boolean" - }, - "is_a": { - "description": "A primary parent slot from which inheritable metaslots are propagated", - "type": "string" - }, - "is_class_field": { - "description": "indicates that for any instance, i, the domain of this slot will include an assertion of i s range", - "type": "boolean" - }, - "is_grouping_slot": { - "description": "true if this slot is a grouping slot", - "type": "boolean" - }, - "is_usage_slot": { - "description": "True means that this slot was defined in a slot_usage situation", - "type": "boolean" - }, - "key": { - "description": "True means that the key slot(s) uniquely identify the elements within a single container", - "type": "boolean" - }, "keywords": { "description": "Keywords or tags used to describe the element", "items": { @@ -5928,31 +7357,9 @@ "format": "date-time", "type": "string" }, - "list_elements_ordered": { - "description": "If True, then the order of elements of a multivalued slot is guaranteed to be preserved. If False, the order may still be preserved but this is not guaranteed", - "type": "boolean" - }, - "list_elements_unique": { - "description": "If True, then there must be no duplicates in the elements of a multivalued slot", - "type": "boolean" - }, - "local_names": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/LocalName__identifier_optional" - }, - { - "description": "a name assigned to an element in a given ontology", - "type": "string" - } - ] - }, - "type": "object" - }, - "locally_reflexive": { - "description": "If s is locally_reflexive, then i.s=i for all instances i where s is a class slot for the type of i", - "type": "boolean" + "literal_form": { + "description": "The literal lexical form of a structured alias; i.e the actual alias value.", + "type": "string" }, "mappings": { "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.", @@ -5961,56 +7368,14 @@ }, "type": "array" }, - "maximum_cardinality": { - "description": "the maximum number of entries for a multivalued slot", - "type": "integer" - }, - "maximum_value": { - "$ref": "#/$defs/Anything", - "description": "For ordinal ranges, the value must be equal to or lower than this" - }, - "minimum_cardinality": { - "description": "the minimum number of entries for a multivalued slot", - "type": "integer" - }, - "minimum_value": { - "$ref": "#/$defs/Anything", - "description": "For ordinal ranges, the value must be equal to or higher than this" - }, - "mixin": { - "description": "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins.", - "type": "boolean" - }, - "mixins": { - "description": "A collection of secondary parent mixin slots from which inheritable metaslots are propagated", - "items": { - "type": "string" - }, - "type": "array" - }, "modified_by": { "description": "agent that modified the element", "type": "string" }, - "multivalued": { - "description": "true means that slot can have more than one value and should be represented using a list or collection structure.", - "type": "boolean" - }, - "name": { - "description": "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class.", - "type": "string" - }, - "narrow_mappings": { - "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", - "items": { - "type": "string" - }, - "type": "array" - }, - "none_of": { - "description": "holds if none of the expressions hold", + "narrow_mappings": { + "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", "items": { - "$ref": "#/$defs/AnonymousSlotExpression" + "type": "string" }, "type": "array" }, @@ -6021,46 +7386,14 @@ }, "type": "array" }, - "owner": { - "description": "the \"owner\" of the slot. It is the class if it appears in the slots list, otherwise the declaring slot", - "type": "string" - }, - "path_rule": { - "$ref": "#/$defs/PathExpression", - "description": "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments" - }, - "pattern": { - "description": "the string value of the slot must conform to this regular expression expressed in the string", - "type": "string" - }, - "range": { - "description": "defines the type of the object of the slot. Given the following slot definition\n S1:\n domain: C1\n range: C2\nthe declaration\n X:\n S1: Y\n\nimplicitly asserts Y is an instance of C2\n", - "type": "string" - }, - "range_expression": { - "$ref": "#/$defs/AnonymousClassExpression", - "description": "A range that is described as a boolean expression combining existing ranges" + "predicate": { + "$ref": "#/$defs/AliasPredicateEnum", + "description": "The relationship between an element and its alias." }, "rank": { "description": "the relative order in which the element occurs, lower values are given precedence", "type": "integer" }, - "readonly": { - "description": "If present, slot is read only. Text explains why", - "type": "string" - }, - "recommended": { - "description": "true means that the slot should be present in instances of the class definition, but this is not required", - "type": "boolean" - }, - "reflexive": { - "description": "If s is reflexive, then i.s=i for all instances i", - "type": "boolean" - }, - "reflexive_transitive_form_of": { - "description": "transitive_form_of including the reflexive case", - "type": "string" - }, "related_mappings": { "description": "A list of terms from different schemas or terminology systems that have related meaning.", "items": { @@ -6068,18 +7401,6 @@ }, "type": "array" }, - "relational_role": { - "$ref": "#/$defs/RelationalRoleEnum", - "description": "the role a slot on a relationship class plays, for example, the subject, object or predicate roles" - }, - "required": { - "description": "true means that the slot must be present in instances of the class definition", - "type": "boolean" - }, - "role": { - "description": "a textual descriptor that indicates the role played by the slot range", - "type": "string" - }, "see_also": { "description": "A list of related entities or URLs that may be of relevance", "items": { @@ -6087,22 +7408,6 @@ }, "type": "array" }, - "shared": { - "description": "If True, then the relationship between the slot domain and range is many to one or many to many", - "type": "boolean" - }, - "singular_name": { - "description": "a name that is used in the singular form", - "type": "string" - }, - "slot_group": { - "description": "allows for grouping of related slots into a grouping slot that serves the role of a group", - "type": "string" - }, - "slot_uri": { - "description": "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas.", - "type": "string" - }, "source": { "description": "A related resource from which the element is derived.", "type": "string" @@ -6111,10 +7416,6 @@ "description": "status of the element", "type": "string" }, - "string_serialization": { - "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm", - "type": "string" - }, "structured_aliases": { "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.", "items": { @@ -6122,18 +7423,6 @@ }, "type": "array" }, - "structured_pattern": { - "$ref": "#/$defs/PatternExpression", - "description": "the string value of the slot must conform to the regular expression in the pattern expression" - }, - "subproperty_of": { - "description": "Ontology property which this slot is a subproperty of. Note: setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.", - "type": "string" - }, - "symmetric": { - "description": "If s is symmetric, and i.s=v, then v.s=i", - "type": "boolean" - }, "title": { "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.", "type": "string" @@ -6144,60 +7433,18 @@ "type": "string" }, "type": "array" - }, - "transitive": { - "description": "If s is transitive, and i.s=z, and s.s=j, then i.s=j", - "type": "boolean" - }, - "transitive_form_of": { - "description": "If s transitive_form_of d, then (1) s holds whenever d holds (2) s is transitive (3) d holds whenever s holds and there are no intermediates, and s is not reflexive", - "type": "string" - }, - "union_of": { - "description": "indicates that the domain element consists exactly of the members of the element in the range.", - "items": { - "type": "string" - }, - "type": "array" - }, - "unit": { - "$ref": "#/$defs/UnitOfMeasure", - "description": "an encoding of a unit" - }, - "usage_slot_name": { - "description": "The name of the slot referenced in the slot_usage", - "type": "string" - }, - "value_presence": { - "$ref": "#/$defs/PresenceEnum", - "description": "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" - }, - "values_from": { - "description": "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.", - "items": { - "type": "string" - }, - "type": "array" } }, "required": [ - "name" + "literal_form" ], - "title": "SlotDefinition", + "title": "StructuredAlias", "type": "object" }, - "SlotDefinition__identifier_optional": { + "SubsetDefinition": { "additionalProperties": false, - "description": "an element that describes how instances are related to other instances", + "description": "an element that can be used to group other metamodel elements", "properties": { - "abstract": { - "description": "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes.", - "type": "boolean" - }, - "alias": { - "description": "the name used for a slot in the context of its owning class. If present, this is used instead of the actual slot name.", - "type": "string" - }, "aliases": { "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", "items": { @@ -6205,17 +7452,6 @@ }, "type": "array" }, - "all_members": { - "$ref": "#/$defs/AnonymousSlotExpression", - "description": "the value of the slot is multivalued with all members satisfying the condition" - }, - "all_of": { - "description": "holds if all of the expressions hold", - "items": { - "$ref": "#/$defs/AnonymousSlotExpression" - }, - "type": "array" - }, "alt_descriptions": { "additionalProperties": { "anyOf": [ @@ -6246,28 +7482,6 @@ "description": "a collection of tag/text tuples with the semantics of OWL Annotation", "type": "object" }, - "any_of": { - "description": "holds if at least one of the expressions hold", - "items": { - "$ref": "#/$defs/AnonymousSlotExpression" - }, - "type": "array" - }, - "apply_to": { - "description": "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.", - "items": { - "type": "string" - }, - "type": "array" - }, - "array": { - "$ref": "#/$defs/ArrayExpression", - "description": "coerces the value of the slot into an array and defines the dimensions of that array" - }, - "asymmetric": { - "description": "If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i", - "type": "boolean" - }, "broad_mappings": { "description": "A list of terms from different schemas or terminology systems that have broader meaning.", "items": { @@ -6282,10 +7496,6 @@ }, "type": "array" }, - "children_are_mutually_disjoint": { - "description": "If true then all direct is_a children are mutually disjoint and share no instances in common", - "type": "boolean" - }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -6340,55 +7550,6 @@ "description": "a textual description of the element's purpose and use", "type": "string" }, - "designates_type": { - "description": "True means that the key slot(s) is used to determine the instantiation (types) relation between objects and a ClassDefinition", - "type": "boolean" - }, - "disjoint_with": { - "description": "Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances", - "items": { - "type": "string" - }, - "type": "array" - }, - "domain": { - "description": "defines the type of the subject of the slot. Given the following slot definition\n S1:\n domain: C1\n range: C2\nthe declaration\n X:\n S1: Y\n\nimplicitly asserts that X is an instance of C1\n", - "type": "string" - }, - "domain_of": { - "description": "the class(es) that reference the slot in a \"slots\" or \"slot_usage\" context", - "items": { - "type": "string" - }, - "type": "array" - }, - "enum_range": { - "$ref": "#/$defs/EnumExpression", - "description": "An inlined enumeration" - }, - "equals_expression": { - "description": "the value of the slot must equal the value of the evaluated expression", - "type": "string" - }, - "equals_number": { - "description": "the slot must have range of a number and the value of the slot must equal the specified value", - "type": "integer" - }, - "equals_string": { - "description": "the slot must have range string and the value of the slot must equal the specified value", - "type": "string" - }, - "equals_string_in": { - "description": "the slot must have range string and the value of the slot must equal one of the specified values", - "items": { - "type": "string" - }, - "type": "array" - }, - "exact_cardinality": { - "description": "the exact number of entries for a multivalued slot", - "type": "integer" - }, "exact_mappings": { "description": "A list of terms from different schemas or terminology systems that have identical meaning.", "items": { @@ -6396,13 +7557,6 @@ }, "type": "array" }, - "exactly_one_of": { - "description": "holds if only one of the expressions hold", - "items": { - "$ref": "#/$defs/AnonymousSlotExpression" - }, - "type": "array" - }, "examples": { "description": "example usages of an element", "items": { @@ -6429,10 +7583,6 @@ "description": "id of the schema that defined the element", "type": "string" }, - "has_member": { - "$ref": "#/$defs/AnonymousSlotExpression", - "description": "the value of the slot is multivalued with at least one member satisfying the condition" - }, "id_prefixes": { "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix", "items": { @@ -6444,14 +7594,6 @@ "description": "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation.", "type": "boolean" }, - "identifier": { - "description": "True means that the key slot(s) uniquely identifies the elements. There can be at most one identifier or key per container", - "type": "boolean" - }, - "ifabsent": { - "description": "function that provides a default value for the slot. Possible values for this slot are defined in linkml.utils.ifabsent_functions.default_library:\n * [Tt]rue -- boolean True\n * [Ff]alse -- boolean False\n * bnode -- blank node identifier\n * class_curie -- CURIE for the containing class\n * class_uri -- URI for the containing class\n * default_ns -- schema default namespace\n * default_range -- schema default range\n * int(value) -- integer value\n * slot_uri -- URI for the slot\n * slot_curie -- CURIE for the slot\n * string(value) -- string value", - "type": "string" - }, "implements": { "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.", "items": { @@ -6459,10 +7601,6 @@ }, "type": "array" }, - "implicit_prefix": { - "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string", - "type": "string" - }, "imported_from": { "description": "the imports entry that this element was derived from. Empty means primary source", "type": "string" @@ -6476,19 +7614,7 @@ "items": { "type": "string" }, - "type": "array" - }, - "inherited": { - "description": "true means that the *value* of a slot is inherited by subclasses", - "type": "boolean" - }, - "inlined": { - "description": "True means that keyed or identified slot appears in an outer structure by value. False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere.", - "type": "boolean" - }, - "inlined_as_list": { - "description": "True means that an inlined slot is represented as a list of range instances. False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance.", - "type": "boolean" + "type": "array" }, "instantiates": { "description": "An element in another schema which this element instantiates.", @@ -6497,34 +7623,6 @@ }, "type": "array" }, - "inverse": { - "description": "indicates that any instance of d s r implies that there is also an instance of r s' d", - "type": "string" - }, - "irreflexive": { - "description": "If s is irreflexive, then there exists no i such i.s=i", - "type": "boolean" - }, - "is_a": { - "description": "A primary parent slot from which inheritable metaslots are propagated", - "type": "string" - }, - "is_class_field": { - "description": "indicates that for any instance, i, the domain of this slot will include an assertion of i s range", - "type": "boolean" - }, - "is_grouping_slot": { - "description": "true if this slot is a grouping slot", - "type": "boolean" - }, - "is_usage_slot": { - "description": "True means that this slot was defined in a slot_usage situation", - "type": "boolean" - }, - "key": { - "description": "True means that the key slot(s) uniquely identify the elements within a single container", - "type": "boolean" - }, "keywords": { "description": "Keywords or tags used to describe the element", "items": { @@ -6537,14 +7635,6 @@ "format": "date-time", "type": "string" }, - "list_elements_ordered": { - "description": "If True, then the order of elements of a multivalued slot is guaranteed to be preserved. If False, the order may still be preserved but this is not guaranteed", - "type": "boolean" - }, - "list_elements_unique": { - "description": "If True, then there must be no duplicates in the elements of a multivalued slot", - "type": "boolean" - }, "local_names": { "additionalProperties": { "anyOf": [ @@ -6559,10 +7649,6 @@ }, "type": "object" }, - "locally_reflexive": { - "description": "If s is locally_reflexive, then i.s=i for all instances i where s is a class slot for the type of i", - "type": "boolean" - }, "mappings": { "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.", "items": { @@ -6570,41 +7656,10 @@ }, "type": "array" }, - "maximum_cardinality": { - "description": "the maximum number of entries for a multivalued slot", - "type": "integer" - }, - "maximum_value": { - "$ref": "#/$defs/Anything", - "description": "For ordinal ranges, the value must be equal to or lower than this" - }, - "minimum_cardinality": { - "description": "the minimum number of entries for a multivalued slot", - "type": "integer" - }, - "minimum_value": { - "$ref": "#/$defs/Anything", - "description": "For ordinal ranges, the value must be equal to or higher than this" - }, - "mixin": { - "description": "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins.", - "type": "boolean" - }, - "mixins": { - "description": "A collection of secondary parent mixin slots from which inheritable metaslots are propagated", - "items": { - "type": "string" - }, - "type": "array" - }, "modified_by": { "description": "agent that modified the element", "type": "string" }, - "multivalued": { - "description": "true means that slot can have more than one value and should be represented using a list or collection structure.", - "type": "boolean" - }, "name": { "description": "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class.", "type": "string" @@ -6616,13 +7671,6 @@ }, "type": "array" }, - "none_of": { - "description": "holds if none of the expressions hold", - "items": { - "$ref": "#/$defs/AnonymousSlotExpression" - }, - "type": "array" - }, "notes": { "description": "editorial notes about an element intended primarily for internal consumption", "items": { @@ -6630,46 +7678,10 @@ }, "type": "array" }, - "owner": { - "description": "the \"owner\" of the slot. It is the class if it appears in the slots list, otherwise the declaring slot", - "type": "string" - }, - "path_rule": { - "$ref": "#/$defs/PathExpression", - "description": "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments" - }, - "pattern": { - "description": "the string value of the slot must conform to this regular expression expressed in the string", - "type": "string" - }, - "range": { - "description": "defines the type of the object of the slot. Given the following slot definition\n S1:\n domain: C1\n range: C2\nthe declaration\n X:\n S1: Y\n\nimplicitly asserts Y is an instance of C2\n", - "type": "string" - }, - "range_expression": { - "$ref": "#/$defs/AnonymousClassExpression", - "description": "A range that is described as a boolean expression combining existing ranges" - }, "rank": { "description": "the relative order in which the element occurs, lower values are given precedence", "type": "integer" }, - "readonly": { - "description": "If present, slot is read only. Text explains why", - "type": "string" - }, - "recommended": { - "description": "true means that the slot should be present in instances of the class definition, but this is not required", - "type": "boolean" - }, - "reflexive": { - "description": "If s is reflexive, then i.s=i for all instances i", - "type": "boolean" - }, - "reflexive_transitive_form_of": { - "description": "transitive_form_of including the reflexive case", - "type": "string" - }, "related_mappings": { "description": "A list of terms from different schemas or terminology systems that have related meaning.", "items": { @@ -6677,18 +7689,6 @@ }, "type": "array" }, - "relational_role": { - "$ref": "#/$defs/RelationalRoleEnum", - "description": "the role a slot on a relationship class plays, for example, the subject, object or predicate roles" - }, - "required": { - "description": "true means that the slot must be present in instances of the class definition", - "type": "boolean" - }, - "role": { - "description": "a textual descriptor that indicates the role played by the slot range", - "type": "string" - }, "see_also": { "description": "A list of related entities or URLs that may be of relevance", "items": { @@ -6696,22 +7696,6 @@ }, "type": "array" }, - "shared": { - "description": "If True, then the relationship between the slot domain and range is many to one or many to many", - "type": "boolean" - }, - "singular_name": { - "description": "a name that is used in the singular form", - "type": "string" - }, - "slot_group": { - "description": "allows for grouping of related slots into a grouping slot that serves the role of a group", - "type": "string" - }, - "slot_uri": { - "description": "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas.", - "type": "string" - }, "source": { "description": "A related resource from which the element is derived.", "type": "string" @@ -6720,10 +7704,6 @@ "description": "status of the element", "type": "string" }, - "string_serialization": { - "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm", - "type": "string" - }, "structured_aliases": { "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.", "items": { @@ -6731,18 +7711,6 @@ }, "type": "array" }, - "structured_pattern": { - "$ref": "#/$defs/PatternExpression", - "description": "the string value of the slot must conform to the regular expression in the pattern expression" - }, - "subproperty_of": { - "description": "Ontology property which this slot is a subproperty of. Note: setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.", - "type": "string" - }, - "symmetric": { - "description": "If s is symmetric, and i.s=v, then v.s=i", - "type": "boolean" - }, "title": { "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.", "type": "string" @@ -6753,49 +7721,17 @@ "type": "string" }, "type": "array" - }, - "transitive": { - "description": "If s is transitive, and i.s=z, and s.s=j, then i.s=j", - "type": "boolean" - }, - "transitive_form_of": { - "description": "If s transitive_form_of d, then (1) s holds whenever d holds (2) s is transitive (3) d holds whenever s holds and there are no intermediates, and s is not reflexive", - "type": "string" - }, - "union_of": { - "description": "indicates that the domain element consists exactly of the members of the element in the range.", - "items": { - "type": "string" - }, - "type": "array" - }, - "unit": { - "$ref": "#/$defs/UnitOfMeasure", - "description": "an encoding of a unit" - }, - "usage_slot_name": { - "description": "The name of the slot referenced in the slot_usage", - "type": "string" - }, - "value_presence": { - "$ref": "#/$defs/PresenceEnum", - "description": "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" - }, - "values_from": { - "description": "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.", - "items": { - "type": "string" - }, - "type": "array" } }, - "required": [], - "title": "SlotDefinition", + "required": [ + "name" + ], + "title": "SubsetDefinition", "type": "object" }, - "StructuredAlias": { + "SubsetDefinition__identifier_optional": { "additionalProperties": false, - "description": "object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.)", + "description": "an element that can be used to group other metamodel elements", "properties": { "aliases": { "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", @@ -6842,7 +7778,7 @@ "type": "array" }, "categories": { - "description": "The category or categories of an alias. This can be drawn from any relevant vocabulary", + "description": "Controlled terms used to categorize an element.", "items": { "type": "string" }, @@ -6862,6 +7798,10 @@ }, "type": "array" }, + "conforms_to": { + "description": "An established standard to which the element conforms.", + "type": "string" + }, "contributors": { "description": "agent that contributed to the element", "items": { @@ -6878,6 +7818,10 @@ "format": "date-time", "type": "string" }, + "definition_uri": { + "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri", + "type": "string" + }, "deprecated": { "description": "Description of why and when this element will no longer be used", "type": "string" @@ -6927,6 +7871,24 @@ "description": "id of the schema that defined the element", "type": "string" }, + "id_prefixes": { + "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix", + "items": { + "type": "string" + }, + "type": "array" + }, + "id_prefixes_are_closed": { + "description": "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation.", + "type": "boolean" + }, + "implements": { + "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.", + "items": { + "type": "string" + }, + "type": "array" + }, "imported_from": { "description": "the imports entry that this element was derived from. Empty means primary source", "type": "string" @@ -6942,6 +7904,13 @@ }, "type": "array" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, "keywords": { "description": "Keywords or tags used to describe the element", "items": { @@ -6954,9 +7923,19 @@ "format": "date-time", "type": "string" }, - "literal_form": { - "description": "The literal lexical form of a structured alias; i.e the actual alias value.", - "type": "string" + "local_names": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] + }, + "type": "object" }, "mappings": { "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.", @@ -6969,6 +7948,10 @@ "description": "agent that modified the element", "type": "string" }, + "name": { + "description": "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class.", + "type": "string" + }, "narrow_mappings": { "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", "items": { @@ -6983,10 +7966,6 @@ }, "type": "array" }, - "predicate": { - "$ref": "#/$defs/AliasPredicateEnum", - "description": "The relationship between an element and its alias." - }, "rank": { "description": "the relative order in which the element occurs, lower values are given precedence", "type": "integer" @@ -7032,15 +8011,13 @@ "type": "array" } }, - "required": [ - "literal_form" - ], - "title": "StructuredAlias", + "required": [], + "title": "SubsetDefinition", "type": "object" }, - "SubsetDefinition": { + "TypeDefinition": { "additionalProperties": false, - "description": "an element that can be used to group other metamodel elements", + "description": "an element that whose instances are atomic scalar values that can be mapped to primitive types", "properties": { "aliases": { "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", @@ -7049,6 +8026,13 @@ }, "type": "array" }, + "all_of": { + "description": "holds if all of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousTypeExpression" + }, + "type": "array" + }, "alt_descriptions": { "additionalProperties": { "anyOf": [ @@ -7079,6 +8063,17 @@ "description": "a collection of tag/text tuples with the semantics of OWL Annotation", "type": "object" }, + "any_of": { + "description": "holds if at least one of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousTypeExpression" + }, + "type": "array" + }, + "base": { + "description": "python base type in the LinkML runtime that implements this type definition", + "type": "string" + }, "broad_mappings": { "description": "A list of terms from different schemas or terminology systems that have broader meaning.", "items": { @@ -7147,6 +8142,21 @@ "description": "a textual description of the element's purpose and use", "type": "string" }, + "equals_number": { + "description": "the slot must have range of a number and the value of the slot must equal the specified value", + "type": "integer" + }, + "equals_string": { + "description": "the slot must have range string and the value of the slot must equal the specified value", + "type": "string" + }, + "equals_string_in": { + "description": "the slot must have range string and the value of the slot must equal one of the specified values", + "items": { + "type": "string" + }, + "type": "array" + }, "exact_mappings": { "description": "A list of terms from different schemas or terminology systems that have identical meaning.", "items": { @@ -7154,6 +8164,13 @@ }, "type": "array" }, + "exactly_one_of": { + "description": "holds if only one of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousTypeExpression" + }, + "type": "array" + }, "examples": { "description": "example usages of an element", "items": { @@ -7198,6 +8215,10 @@ }, "type": "array" }, + "implicit_prefix": { + "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string", + "type": "string" + }, "imported_from": { "description": "the imports entry that this element was derived from. Empty means primary source", "type": "string" @@ -7253,6 +8274,14 @@ }, "type": "array" }, + "maximum_value": { + "$ref": "#/$defs/Anything", + "description": "For ordinal ranges, the value must be equal to or lower than this" + }, + "minimum_value": { + "$ref": "#/$defs/Anything", + "description": "For ordinal ranges, the value must be equal to or higher than this" + }, "modified_by": { "description": "agent that modified the element", "type": "string" @@ -7268,6 +8297,13 @@ }, "type": "array" }, + "none_of": { + "description": "holds if none of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousTypeExpression" + }, + "type": "array" + }, "notes": { "description": "editorial notes about an element intended primarily for internal consumption", "items": { @@ -7275,6 +8311,10 @@ }, "type": "array" }, + "pattern": { + "description": "the string value of the slot must conform to this regular expression expressed in the string", + "type": "string" + }, "rank": { "description": "the relative order in which the element occurs, lower values are given precedence", "type": "integer" @@ -7286,6 +8326,10 @@ }, "type": "array" }, + "repr": { + "description": "the name of the python object that implements this type definition", + "type": "string" + }, "see_also": { "description": "A list of related entities or URLs that may be of relevance", "items": { @@ -7308,6 +8352,10 @@ }, "type": "array" }, + "structured_pattern": { + "$ref": "#/$defs/PatternExpression", + "description": "the string value of the slot must conform to the regular expression in the pattern expression" + }, "title": { "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.", "type": "string" @@ -7318,17 +8366,36 @@ "type": "string" }, "type": "array" + }, + "typeof": { + "description": "A parent type from which type properties are inherited", + "type": "string" + }, + "union_of": { + "description": "indicates that the domain element consists exactly of the members of the element in the range.", + "items": { + "type": "string" + }, + "type": "array" + }, + "unit": { + "$ref": "#/$defs/UnitOfMeasure", + "description": "an encoding of a unit" + }, + "uri": { + "description": "The uri that defines the possible values for the type definition", + "type": "string" } }, "required": [ "name" ], - "title": "SubsetDefinition", + "title": "TypeDefinition", "type": "object" }, - "SubsetDefinition__identifier_optional": { + "TypeDefinition__identifier_optional": { "additionalProperties": false, - "description": "an element that can be used to group other metamodel elements", + "description": "an element that whose instances are atomic scalar values that can be mapped to primitive types", "properties": { "aliases": { "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", @@ -7337,6 +8404,13 @@ }, "type": "array" }, + "all_of": { + "description": "holds if all of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousTypeExpression" + }, + "type": "array" + }, "alt_descriptions": { "additionalProperties": { "anyOf": [ @@ -7367,6 +8441,17 @@ "description": "a collection of tag/text tuples with the semantics of OWL Annotation", "type": "object" }, + "any_of": { + "description": "holds if at least one of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousTypeExpression" + }, + "type": "array" + }, + "base": { + "description": "python base type in the LinkML runtime that implements this type definition", + "type": "string" + }, "broad_mappings": { "description": "A list of terms from different schemas or terminology systems that have broader meaning.", "items": { @@ -7435,6 +8520,21 @@ "description": "a textual description of the element's purpose and use", "type": "string" }, + "equals_number": { + "description": "the slot must have range of a number and the value of the slot must equal the specified value", + "type": "integer" + }, + "equals_string": { + "description": "the slot must have range string and the value of the slot must equal the specified value", + "type": "string" + }, + "equals_string_in": { + "description": "the slot must have range string and the value of the slot must equal one of the specified values", + "items": { + "type": "string" + }, + "type": "array" + }, "exact_mappings": { "description": "A list of terms from different schemas or terminology systems that have identical meaning.", "items": { @@ -7442,6 +8542,13 @@ }, "type": "array" }, + "exactly_one_of": { + "description": "holds if only one of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousTypeExpression" + }, + "type": "array" + }, "examples": { "description": "example usages of an element", "items": { @@ -7486,6 +8593,10 @@ }, "type": "array" }, + "implicit_prefix": { + "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string", + "type": "string" + }, "imported_from": { "description": "the imports entry that this element was derived from. Empty means primary source", "type": "string" @@ -7541,6 +8652,14 @@ }, "type": "array" }, + "maximum_value": { + "$ref": "#/$defs/Anything", + "description": "For ordinal ranges, the value must be equal to or lower than this" + }, + "minimum_value": { + "$ref": "#/$defs/Anything", + "description": "For ordinal ranges, the value must be equal to or higher than this" + }, "modified_by": { "description": "agent that modified the element", "type": "string" @@ -7556,6 +8675,13 @@ }, "type": "array" }, + "none_of": { + "description": "holds if none of the expressions hold", + "items": { + "$ref": "#/$defs/AnonymousTypeExpression" + }, + "type": "array" + }, "notes": { "description": "editorial notes about an element intended primarily for internal consumption", "items": { @@ -7563,6 +8689,10 @@ }, "type": "array" }, + "pattern": { + "description": "the string value of the slot must conform to this regular expression expressed in the string", + "type": "string" + }, "rank": { "description": "the relative order in which the element occurs, lower values are given precedence", "type": "integer" @@ -7574,6 +8704,10 @@ }, "type": "array" }, + "repr": { + "description": "the name of the python object that implements this type definition", + "type": "string" + }, "see_also": { "description": "A list of related entities or URLs that may be of relevance", "items": { @@ -7596,6 +8730,10 @@ }, "type": "array" }, + "structured_pattern": { + "$ref": "#/$defs/PatternExpression", + "description": "the string value of the slot must conform to the regular expression in the pattern expression" + }, "title": { "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.", "type": "string" @@ -7606,15 +8744,34 @@ "type": "string" }, "type": "array" + }, + "typeof": { + "description": "A parent type from which type properties are inherited", + "type": "string" + }, + "union_of": { + "description": "indicates that the domain element consists exactly of the members of the element in the range.", + "items": { + "type": "string" + }, + "type": "array" + }, + "unit": { + "$ref": "#/$defs/UnitOfMeasure", + "description": "an encoding of a unit" + }, + "uri": { + "description": "The uri that defines the possible values for the type definition", + "type": "string" } }, "required": [], - "title": "SubsetDefinition", + "title": "TypeDefinition", "type": "object" }, - "TypeDefinition": { + "TypeMapping": { "additionalProperties": false, - "description": "an element that whose instances are atomic scalar values that can be mapped to primitive types", + "description": "Represents how a slot or type can be serialized to a format.", "properties": { "aliases": { "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", @@ -7623,13 +8780,6 @@ }, "type": "array" }, - "all_of": { - "description": "holds if all of the expressions hold", - "items": { - "$ref": "#/$defs/AnonymousTypeExpression" - }, - "type": "array" - }, "alt_descriptions": { "additionalProperties": { "anyOf": [ @@ -7660,17 +8810,6 @@ "description": "a collection of tag/text tuples with the semantics of OWL Annotation", "type": "object" }, - "any_of": { - "description": "holds if at least one of the expressions hold", - "items": { - "$ref": "#/$defs/AnonymousTypeExpression" - }, - "type": "array" - }, - "base": { - "description": "python base type in the LinkML runtime that implements this type definition", - "type": "string" - }, "broad_mappings": { "description": "A list of terms from different schemas or terminology systems that have broader meaning.", "items": { @@ -7699,10 +8838,6 @@ }, "type": "array" }, - "conforms_to": { - "description": "An established standard to which the element conforms.", - "type": "string" - }, "contributors": { "description": "agent that contributed to the element", "items": { @@ -7719,10 +8854,6 @@ "format": "date-time", "type": "string" }, - "definition_uri": { - "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri", - "type": "string" - }, "deprecated": { "description": "Description of why and when this element will no longer be used", "type": "string" @@ -7738,33 +8869,11 @@ "description": { "description": "a textual description of the element's purpose and use", "type": "string" - }, - "equals_number": { - "description": "the slot must have range of a number and the value of the slot must equal the specified value", - "type": "integer" - }, - "equals_string": { - "description": "the slot must have range string and the value of the slot must equal the specified value", - "type": "string" - }, - "equals_string_in": { - "description": "the slot must have range string and the value of the slot must equal one of the specified values", - "items": { - "type": "string" - }, - "type": "array" - }, - "exact_mappings": { - "description": "A list of terms from different schemas or terminology systems that have identical meaning.", - "items": { - "type": "string" - }, - "type": "array" - }, - "exactly_one_of": { - "description": "holds if only one of the expressions hold", + }, + "exact_mappings": { + "description": "A list of terms from different schemas or terminology systems that have identical meaning.", "items": { - "$ref": "#/$defs/AnonymousTypeExpression" + "type": "string" }, "type": "array" }, @@ -7790,30 +8899,12 @@ "description": "a tag/text tuple attached to an arbitrary element", "type": "object" }, - "from_schema": { - "description": "id of the schema that defined the element", + "framework": { + "description": "The name of a format that can be used to serialize LinkML data. The string value should be a code from the LinkML frameworks vocabulary, but this is not strictly enforced", "type": "string" }, - "id_prefixes": { - "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix", - "items": { - "type": "string" - }, - "type": "array" - }, - "id_prefixes_are_closed": { - "description": "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation.", - "type": "boolean" - }, - "implements": { - "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.", - "items": { - "type": "string" - }, - "type": "array" - }, - "implicit_prefix": { - "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string", + "from_schema": { + "description": "id of the schema that defined the element", "type": "string" }, "imported_from": { @@ -7831,13 +8922,6 @@ }, "type": "array" }, - "instantiates": { - "description": "An element in another schema which this element instantiates.", - "items": { - "type": "string" - }, - "type": "array" - }, "keywords": { "description": "Keywords or tags used to describe the element", "items": { @@ -7850,20 +8934,6 @@ "format": "date-time", "type": "string" }, - "local_names": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/LocalName__identifier_optional" - }, - { - "description": "a name assigned to an element in a given ontology", - "type": "string" - } - ] - }, - "type": "object" - }, "mappings": { "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.", "items": { @@ -7871,22 +8941,10 @@ }, "type": "array" }, - "maximum_value": { - "$ref": "#/$defs/Anything", - "description": "For ordinal ranges, the value must be equal to or lower than this" - }, - "minimum_value": { - "$ref": "#/$defs/Anything", - "description": "For ordinal ranges, the value must be equal to or higher than this" - }, "modified_by": { "description": "agent that modified the element", "type": "string" }, - "name": { - "description": "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class.", - "type": "string" - }, "narrow_mappings": { "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", "items": { @@ -7894,13 +8952,6 @@ }, "type": "array" }, - "none_of": { - "description": "holds if none of the expressions hold", - "items": { - "$ref": "#/$defs/AnonymousTypeExpression" - }, - "type": "array" - }, "notes": { "description": "editorial notes about an element intended primarily for internal consumption", "items": { @@ -7908,10 +8959,6 @@ }, "type": "array" }, - "pattern": { - "description": "the string value of the slot must conform to this regular expression expressed in the string", - "type": "string" - }, "rank": { "description": "the relative order in which the element occurs, lower values are given precedence", "type": "integer" @@ -7923,10 +8970,6 @@ }, "type": "array" }, - "repr": { - "description": "the name of the python object that implements this type definition", - "type": "string" - }, "see_also": { "description": "A list of related entities or URLs that may be of relevance", "items": { @@ -7942,6 +8985,10 @@ "description": "status of the element", "type": "string" }, + "string_serialization": { + "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm", + "type": "string" + }, "structured_aliases": { "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.", "items": { @@ -7949,10 +8996,6 @@ }, "type": "array" }, - "structured_pattern": { - "$ref": "#/$defs/PatternExpression", - "description": "the string value of the slot must conform to the regular expression in the pattern expression" - }, "title": { "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.", "type": "string" @@ -7964,35 +9007,20 @@ }, "type": "array" }, - "typeof": { - "description": "A parent type from which type properties are inherited", - "type": "string" - }, - "union_of": { - "description": "indicates that the domain element consists exactly of the members of the element in the range.", - "items": { - "type": "string" - }, - "type": "array" - }, - "unit": { - "$ref": "#/$defs/UnitOfMeasure", - "description": "an encoding of a unit" - }, - "uri": { - "description": "The uri that defines the possible values for the type definition", + "type": { + "description": "type to coerce to", "type": "string" } }, "required": [ - "name" + "framework" ], - "title": "TypeDefinition", + "title": "TypeMapping", "type": "object" }, - "TypeDefinition__identifier_optional": { + "TypeMapping__identifier_optional": { "additionalProperties": false, - "description": "an element that whose instances are atomic scalar values that can be mapped to primitive types", + "description": "Represents how a slot or type can be serialized to a format.", "properties": { "aliases": { "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", @@ -8001,13 +9029,6 @@ }, "type": "array" }, - "all_of": { - "description": "holds if all of the expressions hold", - "items": { - "$ref": "#/$defs/AnonymousTypeExpression" - }, - "type": "array" - }, "alt_descriptions": { "additionalProperties": { "anyOf": [ @@ -8038,17 +9059,6 @@ "description": "a collection of tag/text tuples with the semantics of OWL Annotation", "type": "object" }, - "any_of": { - "description": "holds if at least one of the expressions hold", - "items": { - "$ref": "#/$defs/AnonymousTypeExpression" - }, - "type": "array" - }, - "base": { - "description": "python base type in the LinkML runtime that implements this type definition", - "type": "string" - }, "broad_mappings": { "description": "A list of terms from different schemas or terminology systems that have broader meaning.", "items": { @@ -8077,10 +9087,6 @@ }, "type": "array" }, - "conforms_to": { - "description": "An established standard to which the element conforms.", - "type": "string" - }, "contributors": { "description": "agent that contributed to the element", "items": { @@ -8097,10 +9103,6 @@ "format": "date-time", "type": "string" }, - "definition_uri": { - "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri", - "type": "string" - }, "deprecated": { "description": "Description of why and when this element will no longer be used", "type": "string" @@ -8117,21 +9119,6 @@ "description": "a textual description of the element's purpose and use", "type": "string" }, - "equals_number": { - "description": "the slot must have range of a number and the value of the slot must equal the specified value", - "type": "integer" - }, - "equals_string": { - "description": "the slot must have range string and the value of the slot must equal the specified value", - "type": "string" - }, - "equals_string_in": { - "description": "the slot must have range string and the value of the slot must equal one of the specified values", - "items": { - "type": "string" - }, - "type": "array" - }, "exact_mappings": { "description": "A list of terms from different schemas or terminology systems that have identical meaning.", "items": { @@ -8139,13 +9126,6 @@ }, "type": "array" }, - "exactly_one_of": { - "description": "holds if only one of the expressions hold", - "items": { - "$ref": "#/$defs/AnonymousTypeExpression" - }, - "type": "array" - }, "examples": { "description": "example usages of an element", "items": { @@ -8168,30 +9148,12 @@ "description": "a tag/text tuple attached to an arbitrary element", "type": "object" }, - "from_schema": { - "description": "id of the schema that defined the element", + "framework": { + "description": "The name of a format that can be used to serialize LinkML data. The string value should be a code from the LinkML frameworks vocabulary, but this is not strictly enforced", "type": "string" }, - "id_prefixes": { - "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix", - "items": { - "type": "string" - }, - "type": "array" - }, - "id_prefixes_are_closed": { - "description": "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation.", - "type": "boolean" - }, - "implements": { - "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.", - "items": { - "type": "string" - }, - "type": "array" - }, - "implicit_prefix": { - "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string", + "from_schema": { + "description": "id of the schema that defined the element", "type": "string" }, "imported_from": { @@ -8209,13 +9171,6 @@ }, "type": "array" }, - "instantiates": { - "description": "An element in another schema which this element instantiates.", - "items": { - "type": "string" - }, - "type": "array" - }, "keywords": { "description": "Keywords or tags used to describe the element", "items": { @@ -8228,20 +9183,6 @@ "format": "date-time", "type": "string" }, - "local_names": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/LocalName__identifier_optional" - }, - { - "description": "a name assigned to an element in a given ontology", - "type": "string" - } - ] - }, - "type": "object" - }, "mappings": { "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.", "items": { @@ -8249,22 +9190,10 @@ }, "type": "array" }, - "maximum_value": { - "$ref": "#/$defs/Anything", - "description": "For ordinal ranges, the value must be equal to or lower than this" - }, - "minimum_value": { - "$ref": "#/$defs/Anything", - "description": "For ordinal ranges, the value must be equal to or higher than this" - }, "modified_by": { "description": "agent that modified the element", "type": "string" }, - "name": { - "description": "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class.", - "type": "string" - }, "narrow_mappings": { "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", "items": { @@ -8272,13 +9201,6 @@ }, "type": "array" }, - "none_of": { - "description": "holds if none of the expressions hold", - "items": { - "$ref": "#/$defs/AnonymousTypeExpression" - }, - "type": "array" - }, "notes": { "description": "editorial notes about an element intended primarily for internal consumption", "items": { @@ -8286,10 +9208,6 @@ }, "type": "array" }, - "pattern": { - "description": "the string value of the slot must conform to this regular expression expressed in the string", - "type": "string" - }, "rank": { "description": "the relative order in which the element occurs, lower values are given precedence", "type": "integer" @@ -8301,10 +9219,6 @@ }, "type": "array" }, - "repr": { - "description": "the name of the python object that implements this type definition", - "type": "string" - }, "see_also": { "description": "A list of related entities or URLs that may be of relevance", "items": { @@ -8320,6 +9234,10 @@ "description": "status of the element", "type": "string" }, + "string_serialization": { + "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm", + "type": "string" + }, "structured_aliases": { "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.", "items": { @@ -8327,10 +9245,6 @@ }, "type": "array" }, - "structured_pattern": { - "$ref": "#/$defs/PatternExpression", - "description": "the string value of the slot must conform to the regular expression in the pattern expression" - }, "title": { "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.", "type": "string" @@ -8342,28 +9256,13 @@ }, "type": "array" }, - "typeof": { - "description": "A parent type from which type properties are inherited", - "type": "string" - }, - "union_of": { - "description": "indicates that the domain element consists exactly of the members of the element in the range.", - "items": { - "type": "string" - }, - "type": "array" - }, - "unit": { - "$ref": "#/$defs/UnitOfMeasure", - "description": "an encoding of a unit" - }, - "uri": { - "description": "The uri that defines the possible values for the type definition", + "type": { + "description": "type to coerce to", "type": "string" } }, "required": [], - "title": "TypeDefinition", + "title": "TypeMapping", "type": "object" }, "UniqueKey": { @@ -8957,6 +9856,13 @@ "description": "a collection of tag/text tuples with the semantics of OWL Annotation", "type": "object" }, + "bindings": { + "description": "A collection of enum bindings that specify how a slot can be bound to a permissible value from an enumeration.\nLinkML provides enums to allow string values to be restricted to one of a set of permissible values (specified statically or dynamically).\nEnum bindings allow enums to be bound to any object, including complex nested objects. For example, given a (generic) class Concept with slots id and label, it may be desirable to restrict the values the id takes on in a given context. For example, a HumanSample class may have a slot for representing sample site, with a range of concept, but the values of that slot may be restricted to concepts from a particular branch of an anatomy ontology.", + "items": { + "$ref": "#/$defs/EnumBinding" + }, + "type": "array" + }, "broad_mappings": { "description": "A list of terms from different schemas or terminology systems that have broader meaning.", "items": { diff --git a/linkml_model/mappings.py b/linkml_model/mappings.py index e8a146ca..d827a0ad 100644 --- a/linkml_model/mappings.py +++ b/linkml_model/mappings.py @@ -1,5 +1,5 @@ # Auto generated from mappings.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-02-07T17:29:35 +# Generation date: 2024-12-24T10:54:03 # Schema: mappings # # id: https://w3id.org/linkml/mappings diff --git a/linkml_model/meta.py b/linkml_model/meta.py index 9edd8d13..b4fe6bcb 100644 --- a/linkml_model/meta.py +++ b/linkml_model/meta.py @@ -1,5 +1,5 @@ # Auto generated from meta.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-02-07T17:29:36 +# Generation date: 2024-12-24T10:54:05 # Schema: meta # # id: https://w3id.org/linkml/meta @@ -46,9 +46,9 @@ from linkml_runtime.utils.curienamespace import CurieNamespace from .annotations import Annotation, AnnotationTag from .extensions import Extension, ExtensionTag -from .types import Boolean, Datetime, Integer, Ncname, String, Uri, Uriorcurie +from .types import Boolean, Date, Datetime, Integer, Ncname, String, Uri, Uriorcurie from .units import UnitOfMeasure -from linkml_runtime.utils.metamodelcore import Bool, NCName, URI, URIorCURIE, XSDDateTime +from linkml_runtime.utils.metamodelcore import Bool, NCName, URI, URIorCURIE, XSDDate, XSDDateTime metamodel_version = "1.7.0" version = None @@ -62,7 +62,9 @@ OIO = CurieNamespace('OIO', 'http://www.geneontology.org/formats/oboInOwl#') SIO = CurieNamespace('SIO', 'http://semanticscience.org/resource/SIO_') BIBO = CurieNamespace('bibo', 'http://purl.org/ontology/bibo/') +CC = CurieNamespace('cc', 'http://creativecommons.org/ns#') CDISC = CurieNamespace('cdisc', 'http://rdf.cdisc.org/mms#') +DC = CurieNamespace('dc', 'http://purl.org/dc/terms/') DCTERMS = CurieNamespace('dcterms', 'http://purl.org/dc/terms/') LINKML = CurieNamespace('linkml', 'https://w3id.org/linkml/') OSLC = CurieNamespace('oslc', 'http://open-services.net/ns/core#') @@ -142,6 +144,10 @@ class UniqueKeyUniqueKeyName(extended_str): pass +class TypeMappingFramework(extended_str): + pass + + Anything = Any @dataclass @@ -546,6 +552,7 @@ class SchemaDefinition(Element): generation_date: Optional[Union[str, XSDDateTime]] = None slot_names_unique: Optional[Union[bool, Bool]] = None settings: Optional[Union[Dict[Union[str, SettingSettingKey], Union[dict, "Setting"]], List[Union[dict, "Setting"]]]] = empty_dict() + bindings: Optional[Union[Union[dict, "EnumBinding"], List[Union[dict, "EnumBinding"]]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.default_prefix is None: @@ -616,6 +623,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self._normalize_inlined_as_dict(slot_name="settings", slot_type=Setting, key_name="setting_key", keyed=True) + if not isinstance(self.bindings, list): + self.bindings = [self.bindings] if self.bindings is not None else [] + self.bindings = [v if isinstance(v, EnumBinding) else EnumBinding(**as_dict(v)) for v in self.bindings] + super().__post_init__(**kwargs) @@ -992,6 +1003,191 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): super().__post_init__(**kwargs) +@dataclass +class EnumBinding(YAMLRoot): + """ + A binding of a slot or a class to a permissible value from an enumeration. + """ + _inherited_slots: ClassVar[List[str]] = ["range"] + + class_class_uri: ClassVar[URIRef] = LINKML["EnumBinding"] + class_class_curie: ClassVar[str] = "linkml:EnumBinding" + class_name: ClassVar[str] = "enum_binding" + class_model_uri: ClassVar[URIRef] = LINKML.EnumBinding + + range: Optional[Union[str, EnumDefinitionName]] = None + obligation_level: Optional[Union[str, "ObligationLevelEnum"]] = None + binds_value_of: Optional[str] = None + pv_formula: Optional[Union[str, "PvFormulaOptions"]] = None + extensions: Optional[Union[Dict[Union[str, ExtensionTag], Union[dict, Extension]], List[Union[dict, Extension]]]] = empty_dict() + annotations: Optional[Union[Dict[Union[str, AnnotationTag], Union[dict, Annotation]], List[Union[dict, Annotation]]]] = empty_dict() + description: Optional[str] = None + alt_descriptions: Optional[Union[Dict[Union[str, AltDescriptionSource], Union[dict, "AltDescription"]], List[Union[dict, "AltDescription"]]]] = empty_dict() + title: Optional[str] = None + deprecated: Optional[str] = None + todos: Optional[Union[str, List[str]]] = empty_list() + notes: Optional[Union[str, List[str]]] = empty_list() + comments: Optional[Union[str, List[str]]] = empty_list() + examples: Optional[Union[Union[dict, "Example"], List[Union[dict, "Example"]]]] = empty_list() + in_subset: Optional[Union[Union[str, SubsetDefinitionName], List[Union[str, SubsetDefinitionName]]]] = empty_list() + from_schema: Optional[Union[str, URI]] = None + imported_from: Optional[str] = None + source: Optional[Union[str, URIorCURIE]] = None + in_language: Optional[str] = None + see_also: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + deprecated_element_has_exact_replacement: Optional[Union[str, URIorCURIE]] = None + deprecated_element_has_possible_replacement: Optional[Union[str, URIorCURIE]] = None + aliases: Optional[Union[str, List[str]]] = empty_list() + structured_aliases: Optional[Union[Union[dict, "StructuredAlias"], List[Union[dict, "StructuredAlias"]]]] = empty_list() + mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + exact_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + close_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + related_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + narrow_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + broad_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + created_by: Optional[Union[str, URIorCURIE]] = None + contributors: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + created_on: Optional[Union[str, XSDDateTime]] = None + last_updated_on: Optional[Union[str, XSDDateTime]] = None + modified_by: Optional[Union[str, URIorCURIE]] = None + status: Optional[Union[str, URIorCURIE]] = None + rank: Optional[int] = None + categories: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + keywords: Optional[Union[str, List[str]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.range is not None and not isinstance(self.range, EnumDefinitionName): + self.range = EnumDefinitionName(self.range) + + if self.obligation_level is not None and not isinstance(self.obligation_level, ObligationLevelEnum): + self.obligation_level = ObligationLevelEnum(self.obligation_level) + + if self.binds_value_of is not None and not isinstance(self.binds_value_of, str): + self.binds_value_of = str(self.binds_value_of) + + if self.pv_formula is not None and not isinstance(self.pv_formula, PvFormulaOptions): + self.pv_formula = PvFormulaOptions(self.pv_formula) + + self._normalize_inlined_as_dict(slot_name="extensions", slot_type=Extension, key_name="tag", keyed=True) + + self._normalize_inlined_as_dict(slot_name="annotations", slot_type=Annotation, key_name="tag", keyed=True) + + if self.description is not None and not isinstance(self.description, str): + self.description = str(self.description) + + self._normalize_inlined_as_dict(slot_name="alt_descriptions", slot_type=AltDescription, key_name="source", keyed=True) + + if self.title is not None and not isinstance(self.title, str): + self.title = str(self.title) + + if self.deprecated is not None and not isinstance(self.deprecated, str): + self.deprecated = str(self.deprecated) + + if not isinstance(self.todos, list): + self.todos = [self.todos] if self.todos is not None else [] + self.todos = [v if isinstance(v, str) else str(v) for v in self.todos] + + if not isinstance(self.notes, list): + self.notes = [self.notes] if self.notes is not None else [] + self.notes = [v if isinstance(v, str) else str(v) for v in self.notes] + + if not isinstance(self.comments, list): + self.comments = [self.comments] if self.comments is not None else [] + self.comments = [v if isinstance(v, str) else str(v) for v in self.comments] + + if not isinstance(self.examples, list): + self.examples = [self.examples] if self.examples is not None else [] + self.examples = [v if isinstance(v, Example) else Example(**as_dict(v)) for v in self.examples] + + if not isinstance(self.in_subset, list): + self.in_subset = [self.in_subset] if self.in_subset is not None else [] + self.in_subset = [v if isinstance(v, SubsetDefinitionName) else SubsetDefinitionName(v) for v in self.in_subset] + + if self.from_schema is not None and not isinstance(self.from_schema, URI): + self.from_schema = URI(self.from_schema) + + if self.imported_from is not None and not isinstance(self.imported_from, str): + self.imported_from = str(self.imported_from) + + if self.source is not None and not isinstance(self.source, URIorCURIE): + self.source = URIorCURIE(self.source) + + if self.in_language is not None and not isinstance(self.in_language, str): + self.in_language = str(self.in_language) + + if not isinstance(self.see_also, list): + self.see_also = [self.see_also] if self.see_also is not None else [] + self.see_also = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.see_also] + + if self.deprecated_element_has_exact_replacement is not None and not isinstance(self.deprecated_element_has_exact_replacement, URIorCURIE): + self.deprecated_element_has_exact_replacement = URIorCURIE(self.deprecated_element_has_exact_replacement) + + if self.deprecated_element_has_possible_replacement is not None and not isinstance(self.deprecated_element_has_possible_replacement, URIorCURIE): + self.deprecated_element_has_possible_replacement = URIorCURIE(self.deprecated_element_has_possible_replacement) + + if not isinstance(self.aliases, list): + self.aliases = [self.aliases] if self.aliases is not None else [] + self.aliases = [v if isinstance(v, str) else str(v) for v in self.aliases] + + self._normalize_inlined_as_dict(slot_name="structured_aliases", slot_type=StructuredAlias, key_name="literal_form", keyed=False) + + if not isinstance(self.mappings, list): + self.mappings = [self.mappings] if self.mappings is not None else [] + self.mappings = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.mappings] + + if not isinstance(self.exact_mappings, list): + self.exact_mappings = [self.exact_mappings] if self.exact_mappings is not None else [] + self.exact_mappings = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.exact_mappings] + + if not isinstance(self.close_mappings, list): + self.close_mappings = [self.close_mappings] if self.close_mappings is not None else [] + self.close_mappings = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.close_mappings] + + if not isinstance(self.related_mappings, list): + self.related_mappings = [self.related_mappings] if self.related_mappings is not None else [] + self.related_mappings = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.related_mappings] + + if not isinstance(self.narrow_mappings, list): + self.narrow_mappings = [self.narrow_mappings] if self.narrow_mappings is not None else [] + self.narrow_mappings = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.narrow_mappings] + + if not isinstance(self.broad_mappings, list): + self.broad_mappings = [self.broad_mappings] if self.broad_mappings is not None else [] + self.broad_mappings = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.broad_mappings] + + if self.created_by is not None and not isinstance(self.created_by, URIorCURIE): + self.created_by = URIorCURIE(self.created_by) + + if not isinstance(self.contributors, list): + self.contributors = [self.contributors] if self.contributors is not None else [] + self.contributors = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.contributors] + + if self.created_on is not None and not isinstance(self.created_on, XSDDateTime): + self.created_on = XSDDateTime(self.created_on) + + if self.last_updated_on is not None and not isinstance(self.last_updated_on, XSDDateTime): + self.last_updated_on = XSDDateTime(self.last_updated_on) + + if self.modified_by is not None and not isinstance(self.modified_by, URIorCURIE): + self.modified_by = URIorCURIE(self.modified_by) + + if self.status is not None and not isinstance(self.status, URIorCURIE): + self.status = URIorCURIE(self.status) + + if self.rank is not None and not isinstance(self.rank, int): + self.rank = int(self.rank) + + if not isinstance(self.categories, list): + self.categories = [self.categories] if self.categories is not None else [] + self.categories = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.categories] + + if not isinstance(self.keywords, list): + self.keywords = [self.keywords] if self.keywords is not None else [] + self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] + + super().__post_init__(**kwargs) + + @dataclass class MatchQuery(YAMLRoot): """ @@ -1078,6 +1274,7 @@ class StructuredAlias(YAMLRoot): literal_form: str = None predicate: Optional[Union[str, "AliasPredicateEnum"]] = None categories: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + contexts: Optional[Union[Union[str, URI], List[Union[str, URI]]]] = empty_list() extensions: Optional[Union[Dict[Union[str, ExtensionTag], Union[dict, Extension]], List[Union[dict, Extension]]]] = empty_dict() annotations: Optional[Union[Dict[Union[str, AnnotationTag], Union[dict, Annotation]], List[Union[dict, Annotation]]]] = empty_dict() description: Optional[str] = None @@ -1126,6 +1323,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self.categories = [self.categories] if self.categories is not None else [] self.categories = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.categories] + if not isinstance(self.contexts, list): + self.contexts = [self.contexts] if self.contexts is not None else [] + self.contexts = [v if isinstance(v, URI) else URI(v) for v in self.contexts] + self._normalize_inlined_as_dict(slot_name="extensions", slot_type=Extension, key_name="tag", keyed=True) self._normalize_inlined_as_dict(slot_name="annotations", slot_type=Annotation, key_name="tag", keyed=True) @@ -1765,7 +1966,7 @@ class SlotExpression(Expression): """ an expression that constrains the range of values a slot can take """ - _inherited_slots: ClassVar[List[str]] = ["range", "required", "recommended", "inlined", "inlined_as_list", "minimum_value", "maximum_value", "pattern", "structured_pattern", "value_presence", "equals_string", "equals_string_in", "equals_number", "equals_expression", "exact_cardinality", "minimum_cardinality", "maximum_cardinality"] + _inherited_slots: ClassVar[List[str]] = ["range", "required", "recommended", "multivalued", "inlined", "inlined_as_list", "minimum_value", "maximum_value", "pattern", "structured_pattern", "value_presence", "equals_string", "equals_string_in", "equals_number", "equals_expression", "exact_cardinality", "minimum_cardinality", "maximum_cardinality", "array"] class_class_uri: ClassVar[URIRef] = LINKML["SlotExpression"] class_class_curie: ClassVar[str] = "linkml:SlotExpression" @@ -1775,8 +1976,10 @@ class SlotExpression(Expression): range: Optional[Union[str, ElementName]] = None range_expression: Optional[Union[dict, "AnonymousClassExpression"]] = None enum_range: Optional[Union[dict, EnumExpression]] = None + bindings: Optional[Union[Union[dict, EnumBinding], List[Union[dict, EnumBinding]]]] = empty_list() required: Optional[Union[bool, Bool]] = None recommended: Optional[Union[bool, Bool]] = None + multivalued: Optional[Union[bool, Bool]] = None inlined: Optional[Union[bool, Bool]] = None inlined_as_list: Optional[Union[bool, Bool]] = None minimum_value: Optional[Union[dict, Anything]] = None @@ -1799,6 +2002,7 @@ class SlotExpression(Expression): exactly_one_of: Optional[Union[Union[dict, "AnonymousSlotExpression"], List[Union[dict, "AnonymousSlotExpression"]]]] = empty_list() any_of: Optional[Union[Union[dict, "AnonymousSlotExpression"], List[Union[dict, "AnonymousSlotExpression"]]]] = empty_list() all_of: Optional[Union[Union[dict, "AnonymousSlotExpression"], List[Union[dict, "AnonymousSlotExpression"]]]] = empty_list() + array: Optional[Union[dict, "ArrayExpression"]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.range is not None and not isinstance(self.range, ElementName): @@ -1810,12 +2014,19 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.enum_range is not None and not isinstance(self.enum_range, EnumExpression): self.enum_range = EnumExpression(**as_dict(self.enum_range)) + if not isinstance(self.bindings, list): + self.bindings = [self.bindings] if self.bindings is not None else [] + self.bindings = [v if isinstance(v, EnumBinding) else EnumBinding(**as_dict(v)) for v in self.bindings] + if self.required is not None and not isinstance(self.required, Bool): self.required = Bool(self.required) if self.recommended is not None and not isinstance(self.recommended, Bool): self.recommended = Bool(self.recommended) + if self.multivalued is not None and not isinstance(self.multivalued, Bool): + self.multivalued = Bool(self.multivalued) + if self.inlined is not None and not isinstance(self.inlined, Bool): self.inlined = Bool(self.inlined) @@ -1881,12 +2092,15 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self.all_of = [self.all_of] if self.all_of is not None else [] self.all_of = [v if isinstance(v, AnonymousSlotExpression) else AnonymousSlotExpression(**as_dict(v)) for v in self.all_of] + if self.array is not None and not isinstance(self.array, ArrayExpression): + self.array = ArrayExpression(**as_dict(self.array)) + super().__post_init__(**kwargs) @dataclass class AnonymousSlotExpression(AnonymousExpression): - _inherited_slots: ClassVar[List[str]] = ["range", "required", "recommended", "inlined", "inlined_as_list", "minimum_value", "maximum_value", "pattern", "structured_pattern", "value_presence", "equals_string", "equals_string_in", "equals_number", "equals_expression", "exact_cardinality", "minimum_cardinality", "maximum_cardinality"] + _inherited_slots: ClassVar[List[str]] = ["range", "required", "recommended", "multivalued", "inlined", "inlined_as_list", "minimum_value", "maximum_value", "pattern", "structured_pattern", "value_presence", "equals_string", "equals_string_in", "equals_number", "equals_expression", "exact_cardinality", "minimum_cardinality", "maximum_cardinality", "array"] class_class_uri: ClassVar[URIRef] = LINKML["AnonymousSlotExpression"] class_class_curie: ClassVar[str] = "linkml:AnonymousSlotExpression" @@ -1896,8 +2110,10 @@ class AnonymousSlotExpression(AnonymousExpression): range: Optional[Union[str, ElementName]] = None range_expression: Optional[Union[dict, "AnonymousClassExpression"]] = None enum_range: Optional[Union[dict, EnumExpression]] = None + bindings: Optional[Union[Union[dict, EnumBinding], List[Union[dict, EnumBinding]]]] = empty_list() required: Optional[Union[bool, Bool]] = None recommended: Optional[Union[bool, Bool]] = None + multivalued: Optional[Union[bool, Bool]] = None inlined: Optional[Union[bool, Bool]] = None inlined_as_list: Optional[Union[bool, Bool]] = None minimum_value: Optional[Union[dict, Anything]] = None @@ -1920,6 +2136,7 @@ class AnonymousSlotExpression(AnonymousExpression): exactly_one_of: Optional[Union[Union[dict, "AnonymousSlotExpression"], List[Union[dict, "AnonymousSlotExpression"]]]] = empty_list() any_of: Optional[Union[Union[dict, "AnonymousSlotExpression"], List[Union[dict, "AnonymousSlotExpression"]]]] = empty_list() all_of: Optional[Union[Union[dict, "AnonymousSlotExpression"], List[Union[dict, "AnonymousSlotExpression"]]]] = empty_list() + array: Optional[Union[dict, "ArrayExpression"]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.range is not None and not isinstance(self.range, ElementName): @@ -1931,12 +2148,19 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.enum_range is not None and not isinstance(self.enum_range, EnumExpression): self.enum_range = EnumExpression(**as_dict(self.enum_range)) + if not isinstance(self.bindings, list): + self.bindings = [self.bindings] if self.bindings is not None else [] + self.bindings = [v if isinstance(v, EnumBinding) else EnumBinding(**as_dict(v)) for v in self.bindings] + if self.required is not None and not isinstance(self.required, Bool): self.required = Bool(self.required) if self.recommended is not None and not isinstance(self.recommended, Bool): self.recommended = Bool(self.recommended) + if self.multivalued is not None and not isinstance(self.multivalued, Bool): + self.multivalued = Bool(self.multivalued) + if self.inlined is not None and not isinstance(self.inlined, Bool): self.inlined = Bool(self.inlined) @@ -2002,6 +2226,9 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self.all_of = [self.all_of] if self.all_of is not None else [] self.all_of = [v if isinstance(v, AnonymousSlotExpression) else AnonymousSlotExpression(**as_dict(v)) for v in self.all_of] + if self.array is not None and not isinstance(self.array, ArrayExpression): + self.array = ArrayExpression(**as_dict(self.array)) + super().__post_init__(**kwargs) @@ -2010,7 +2237,7 @@ class SlotDefinition(Definition): """ an element that describes how instances are related to other instances """ - _inherited_slots: ClassVar[List[str]] = ["domain", "multivalued", "array", "inherited", "readonly", "ifabsent", "list_elements_unique", "list_elements_ordered", "shared", "key", "identifier", "designates_type", "role", "relational_role", "range", "required", "recommended", "inlined", "inlined_as_list", "minimum_value", "maximum_value", "pattern", "structured_pattern", "value_presence", "equals_string", "equals_string_in", "equals_number", "equals_expression", "exact_cardinality", "minimum_cardinality", "maximum_cardinality"] + _inherited_slots: ClassVar[List[str]] = ["domain", "inherited", "readonly", "ifabsent", "list_elements_unique", "list_elements_ordered", "shared", "key", "identifier", "designates_type", "role", "relational_role", "range", "required", "recommended", "multivalued", "inlined", "inlined_as_list", "minimum_value", "maximum_value", "pattern", "structured_pattern", "value_presence", "equals_string", "equals_string_in", "equals_number", "equals_expression", "exact_cardinality", "minimum_cardinality", "maximum_cardinality", "array"] class_class_uri: ClassVar[URIRef] = LINKML["SlotDefinition"] class_class_curie: ClassVar[str] = "linkml:SlotDefinition" @@ -2021,8 +2248,6 @@ class SlotDefinition(Definition): singular_name: Optional[str] = None domain: Optional[Union[str, ClassDefinitionName]] = None slot_uri: Optional[Union[str, URIorCURIE]] = None - multivalued: Optional[Union[bool, Bool]] = None - array: Optional[Union[dict, "ArrayExpression"]] = None inherited: Optional[Union[bool, Bool]] = None readonly: Optional[str] = None ifabsent: Optional[str] = None @@ -2056,14 +2281,17 @@ class SlotDefinition(Definition): disjoint_with: Optional[Union[Union[str, SlotDefinitionName], List[Union[str, SlotDefinitionName]]]] = empty_list() children_are_mutually_disjoint: Optional[Union[bool, Bool]] = None union_of: Optional[Union[Union[str, SlotDefinitionName], List[Union[str, SlotDefinitionName]]]] = empty_list() + type_mappings: Optional[Union[Union[str, TypeMappingFramework], List[Union[str, TypeMappingFramework]]]] = empty_list() is_a: Optional[Union[str, SlotDefinitionName]] = None mixins: Optional[Union[Union[str, SlotDefinitionName], List[Union[str, SlotDefinitionName]]]] = empty_list() apply_to: Optional[Union[Union[str, SlotDefinitionName], List[Union[str, SlotDefinitionName]]]] = empty_list() range: Optional[Union[str, ElementName]] = None range_expression: Optional[Union[dict, "AnonymousClassExpression"]] = None enum_range: Optional[Union[dict, EnumExpression]] = None + bindings: Optional[Union[Union[dict, EnumBinding], List[Union[dict, EnumBinding]]]] = empty_list() required: Optional[Union[bool, Bool]] = None recommended: Optional[Union[bool, Bool]] = None + multivalued: Optional[Union[bool, Bool]] = None inlined: Optional[Union[bool, Bool]] = None inlined_as_list: Optional[Union[bool, Bool]] = None minimum_value: Optional[Union[dict, Anything]] = None @@ -2086,6 +2314,7 @@ class SlotDefinition(Definition): exactly_one_of: Optional[Union[Union[dict, AnonymousSlotExpression], List[Union[dict, AnonymousSlotExpression]]]] = empty_list() any_of: Optional[Union[Union[dict, AnonymousSlotExpression], List[Union[dict, AnonymousSlotExpression]]]] = empty_list() all_of: Optional[Union[Union[dict, AnonymousSlotExpression], List[Union[dict, AnonymousSlotExpression]]]] = empty_list() + array: Optional[Union[dict, "ArrayExpression"]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.name): @@ -2102,12 +2331,6 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.slot_uri is not None and not isinstance(self.slot_uri, URIorCURIE): self.slot_uri = URIorCURIE(self.slot_uri) - if self.multivalued is not None and not isinstance(self.multivalued, Bool): - self.multivalued = Bool(self.multivalued) - - if self.array is not None and not isinstance(self.array, ArrayExpression): - self.array = ArrayExpression(**as_dict(self.array)) - if self.inherited is not None and not isinstance(self.inherited, Bool): self.inherited = Bool(self.inherited) @@ -2210,6 +2433,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self.union_of = [self.union_of] if self.union_of is not None else [] self.union_of = [v if isinstance(v, SlotDefinitionName) else SlotDefinitionName(v) for v in self.union_of] + if not isinstance(self.type_mappings, list): + self.type_mappings = [self.type_mappings] if self.type_mappings is not None else [] + self.type_mappings = [v if isinstance(v, TypeMappingFramework) else TypeMappingFramework(v) for v in self.type_mappings] + if self.is_a is not None and not isinstance(self.is_a, SlotDefinitionName): self.is_a = SlotDefinitionName(self.is_a) @@ -2230,12 +2457,19 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.enum_range is not None and not isinstance(self.enum_range, EnumExpression): self.enum_range = EnumExpression(**as_dict(self.enum_range)) + if not isinstance(self.bindings, list): + self.bindings = [self.bindings] if self.bindings is not None else [] + self.bindings = [v if isinstance(v, EnumBinding) else EnumBinding(**as_dict(v)) for v in self.bindings] + if self.required is not None and not isinstance(self.required, Bool): self.required = Bool(self.required) if self.recommended is not None and not isinstance(self.recommended, Bool): self.recommended = Bool(self.recommended) + if self.multivalued is not None and not isinstance(self.multivalued, Bool): + self.multivalued = Bool(self.multivalued) + if self.inlined is not None and not isinstance(self.inlined, Bool): self.inlined = Bool(self.inlined) @@ -2301,6 +2535,9 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self.all_of = [self.all_of] if self.all_of is not None else [] self.all_of = [v if isinstance(v, AnonymousSlotExpression) else AnonymousSlotExpression(**as_dict(v)) for v in self.all_of] + if self.array is not None and not isinstance(self.array, ArrayExpression): + self.array = ArrayExpression(**as_dict(self.array)) + super().__post_init__(**kwargs) @@ -2413,6 +2650,7 @@ class ClassDefinition(Definition): represents_relationship: Optional[Union[bool, Bool]] = None disjoint_with: Optional[Union[Union[str, ClassDefinitionName], List[Union[str, ClassDefinitionName]]]] = empty_list() children_are_mutually_disjoint: Optional[Union[bool, Bool]] = None + extra_slots: Optional[Union[dict, "ExtraSlotsExpression"]] = False is_a: Optional[Union[str, ClassDefinitionName]] = None mixins: Optional[Union[Union[str, ClassDefinitionName], List[Union[str, ClassDefinitionName]]]] = empty_list() apply_to: Optional[Union[Union[str, ClassDefinitionName], List[Union[str, ClassDefinitionName]]]] = empty_list() @@ -2476,6 +2714,9 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.children_are_mutually_disjoint is not None and not isinstance(self.children_are_mutually_disjoint, Bool): self.children_are_mutually_disjoint = Bool(self.children_are_mutually_disjoint) + if self.extra_slots is not None and not isinstance(self.extra_slots, ExtraSlotsExpression): + self.extra_slots = ExtraSlotsExpression(**as_dict(self.extra_slots)) + if self.is_a is not None and not isinstance(self.is_a, ClassDefinitionName): self.is_a = ClassDefinitionName(self.is_a) @@ -2728,7 +2969,6 @@ class ArrayExpression(YAMLRoot): exact_number_dimensions: Optional[int] = None minimum_number_dimensions: Optional[int] = None maximum_number_dimensions: Optional[Union[dict, Anything]] = None - has_extra_dimensions: Optional[Union[bool, Bool]] = None dimensions: Optional[Union[Union[dict, "DimensionExpression"], List[Union[dict, "DimensionExpression"]]]] = empty_list() extensions: Optional[Union[Dict[Union[str, ExtensionTag], Union[dict, Extension]], List[Union[dict, Extension]]]] = empty_dict() annotations: Optional[Union[Dict[Union[str, AnnotationTag], Union[dict, Annotation]], List[Union[dict, Annotation]]]] = empty_dict() @@ -2773,9 +3013,6 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.minimum_number_dimensions is not None and not isinstance(self.minimum_number_dimensions, int): self.minimum_number_dimensions = int(self.minimum_number_dimensions) - if self.has_extra_dimensions is not None and not isinstance(self.has_extra_dimensions, Bool): - self.has_extra_dimensions = Bool(self.has_extra_dimensions) - if not isinstance(self.dimensions, list): self.dimensions = [self.dimensions] if self.dimensions is not None else [] self.dimensions = [v if isinstance(v, DimensionExpression) else DimensionExpression(**as_dict(v)) for v in self.dimensions] @@ -3606,6 +3843,8 @@ class PermissibleValue(YAMLRoot): description: Optional[str] = None meaning: Optional[Union[str, URIorCURIE]] = None unit: Optional[Union[dict, UnitOfMeasure]] = None + instantiates: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + implements: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() is_a: Optional[Union[str, PermissibleValueText]] = None mixins: Optional[Union[Union[str, PermissibleValueText], List[Union[str, PermissibleValueText]]]] = empty_list() extensions: Optional[Union[Dict[Union[str, ExtensionTag], Union[dict, Extension]], List[Union[dict, Extension]]]] = empty_dict() @@ -3658,6 +3897,14 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.unit is not None and not isinstance(self.unit, UnitOfMeasure): self.unit = UnitOfMeasure(**as_dict(self.unit)) + if not isinstance(self.instantiates, list): + self.instantiates = [self.instantiates] if self.instantiates is not None else [] + self.instantiates = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.instantiates] + + if not isinstance(self.implements, list): + self.implements = [self.implements] if self.implements is not None else [] + self.implements = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.implements] + if self.is_a is not None and not isinstance(self.is_a, PermissibleValueText): self.is_a = PermissibleValueText(self.is_a) @@ -3968,6 +4215,216 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): super().__post_init__(**kwargs) +@dataclass +class TypeMapping(YAMLRoot): + """ + Represents how a slot or type can be serialized to a format. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML["TypeMapping"] + class_class_curie: ClassVar[str] = "linkml:TypeMapping" + class_name: ClassVar[str] = "type_mapping" + class_model_uri: ClassVar[URIRef] = LINKML.TypeMapping + + framework: Union[str, TypeMappingFramework] = None + type: Optional[Union[str, TypeDefinitionName]] = None + string_serialization: Optional[str] = None + extensions: Optional[Union[Dict[Union[str, ExtensionTag], Union[dict, Extension]], List[Union[dict, Extension]]]] = empty_dict() + annotations: Optional[Union[Dict[Union[str, AnnotationTag], Union[dict, Annotation]], List[Union[dict, Annotation]]]] = empty_dict() + description: Optional[str] = None + alt_descriptions: Optional[Union[Dict[Union[str, AltDescriptionSource], Union[dict, AltDescription]], List[Union[dict, AltDescription]]]] = empty_dict() + title: Optional[str] = None + deprecated: Optional[str] = None + todos: Optional[Union[str, List[str]]] = empty_list() + notes: Optional[Union[str, List[str]]] = empty_list() + comments: Optional[Union[str, List[str]]] = empty_list() + examples: Optional[Union[Union[dict, Example], List[Union[dict, Example]]]] = empty_list() + in_subset: Optional[Union[Union[str, SubsetDefinitionName], List[Union[str, SubsetDefinitionName]]]] = empty_list() + from_schema: Optional[Union[str, URI]] = None + imported_from: Optional[str] = None + source: Optional[Union[str, URIorCURIE]] = None + in_language: Optional[str] = None + see_also: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + deprecated_element_has_exact_replacement: Optional[Union[str, URIorCURIE]] = None + deprecated_element_has_possible_replacement: Optional[Union[str, URIorCURIE]] = None + aliases: Optional[Union[str, List[str]]] = empty_list() + structured_aliases: Optional[Union[Union[dict, StructuredAlias], List[Union[dict, StructuredAlias]]]] = empty_list() + mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + exact_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + close_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + related_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + narrow_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + broad_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + created_by: Optional[Union[str, URIorCURIE]] = None + contributors: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + created_on: Optional[Union[str, XSDDateTime]] = None + last_updated_on: Optional[Union[str, XSDDateTime]] = None + modified_by: Optional[Union[str, URIorCURIE]] = None + status: Optional[Union[str, URIorCURIE]] = None + rank: Optional[int] = None + categories: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + keywords: Optional[Union[str, List[str]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.framework): + self.MissingRequiredField("framework") + if not isinstance(self.framework, TypeMappingFramework): + self.framework = TypeMappingFramework(self.framework) + + if self.type is not None and not isinstance(self.type, TypeDefinitionName): + self.type = TypeDefinitionName(self.type) + + if self.string_serialization is not None and not isinstance(self.string_serialization, str): + self.string_serialization = str(self.string_serialization) + + self._normalize_inlined_as_dict(slot_name="extensions", slot_type=Extension, key_name="tag", keyed=True) + + self._normalize_inlined_as_dict(slot_name="annotations", slot_type=Annotation, key_name="tag", keyed=True) + + if self.description is not None and not isinstance(self.description, str): + self.description = str(self.description) + + self._normalize_inlined_as_dict(slot_name="alt_descriptions", slot_type=AltDescription, key_name="source", keyed=True) + + if self.title is not None and not isinstance(self.title, str): + self.title = str(self.title) + + if self.deprecated is not None and not isinstance(self.deprecated, str): + self.deprecated = str(self.deprecated) + + if not isinstance(self.todos, list): + self.todos = [self.todos] if self.todos is not None else [] + self.todos = [v if isinstance(v, str) else str(v) for v in self.todos] + + if not isinstance(self.notes, list): + self.notes = [self.notes] if self.notes is not None else [] + self.notes = [v if isinstance(v, str) else str(v) for v in self.notes] + + if not isinstance(self.comments, list): + self.comments = [self.comments] if self.comments is not None else [] + self.comments = [v if isinstance(v, str) else str(v) for v in self.comments] + + if not isinstance(self.examples, list): + self.examples = [self.examples] if self.examples is not None else [] + self.examples = [v if isinstance(v, Example) else Example(**as_dict(v)) for v in self.examples] + + if not isinstance(self.in_subset, list): + self.in_subset = [self.in_subset] if self.in_subset is not None else [] + self.in_subset = [v if isinstance(v, SubsetDefinitionName) else SubsetDefinitionName(v) for v in self.in_subset] + + if self.from_schema is not None and not isinstance(self.from_schema, URI): + self.from_schema = URI(self.from_schema) + + if self.imported_from is not None and not isinstance(self.imported_from, str): + self.imported_from = str(self.imported_from) + + if self.source is not None and not isinstance(self.source, URIorCURIE): + self.source = URIorCURIE(self.source) + + if self.in_language is not None and not isinstance(self.in_language, str): + self.in_language = str(self.in_language) + + if not isinstance(self.see_also, list): + self.see_also = [self.see_also] if self.see_also is not None else [] + self.see_also = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.see_also] + + if self.deprecated_element_has_exact_replacement is not None and not isinstance(self.deprecated_element_has_exact_replacement, URIorCURIE): + self.deprecated_element_has_exact_replacement = URIorCURIE(self.deprecated_element_has_exact_replacement) + + if self.deprecated_element_has_possible_replacement is not None and not isinstance(self.deprecated_element_has_possible_replacement, URIorCURIE): + self.deprecated_element_has_possible_replacement = URIorCURIE(self.deprecated_element_has_possible_replacement) + + if not isinstance(self.aliases, list): + self.aliases = [self.aliases] if self.aliases is not None else [] + self.aliases = [v if isinstance(v, str) else str(v) for v in self.aliases] + + self._normalize_inlined_as_dict(slot_name="structured_aliases", slot_type=StructuredAlias, key_name="literal_form", keyed=False) + + if not isinstance(self.mappings, list): + self.mappings = [self.mappings] if self.mappings is not None else [] + self.mappings = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.mappings] + + if not isinstance(self.exact_mappings, list): + self.exact_mappings = [self.exact_mappings] if self.exact_mappings is not None else [] + self.exact_mappings = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.exact_mappings] + + if not isinstance(self.close_mappings, list): + self.close_mappings = [self.close_mappings] if self.close_mappings is not None else [] + self.close_mappings = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.close_mappings] + + if not isinstance(self.related_mappings, list): + self.related_mappings = [self.related_mappings] if self.related_mappings is not None else [] + self.related_mappings = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.related_mappings] + + if not isinstance(self.narrow_mappings, list): + self.narrow_mappings = [self.narrow_mappings] if self.narrow_mappings is not None else [] + self.narrow_mappings = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.narrow_mappings] + + if not isinstance(self.broad_mappings, list): + self.broad_mappings = [self.broad_mappings] if self.broad_mappings is not None else [] + self.broad_mappings = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.broad_mappings] + + if self.created_by is not None and not isinstance(self.created_by, URIorCURIE): + self.created_by = URIorCURIE(self.created_by) + + if not isinstance(self.contributors, list): + self.contributors = [self.contributors] if self.contributors is not None else [] + self.contributors = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.contributors] + + if self.created_on is not None and not isinstance(self.created_on, XSDDateTime): + self.created_on = XSDDateTime(self.created_on) + + if self.last_updated_on is not None and not isinstance(self.last_updated_on, XSDDateTime): + self.last_updated_on = XSDDateTime(self.last_updated_on) + + if self.modified_by is not None and not isinstance(self.modified_by, URIorCURIE): + self.modified_by = URIorCURIE(self.modified_by) + + if self.status is not None and not isinstance(self.status, URIorCURIE): + self.status = URIorCURIE(self.status) + + if self.rank is not None and not isinstance(self.rank, int): + self.rank = int(self.rank) + + if not isinstance(self.categories, list): + self.categories = [self.categories] if self.categories is not None else [] + self.categories = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.categories] + + if not isinstance(self.keywords, list): + self.keywords = [self.keywords] if self.keywords is not None else [] + self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] + + super().__post_init__(**kwargs) + + +@dataclass +class ExtraSlotsExpression(YAMLRoot): + """ + An expression that defines how to handle additional data in an instance of class + beyond the slots/attributes defined for that class. + See `extra_slots` for usage examples. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML["ExtraSlotsExpression"] + class_class_curie: ClassVar[str] = "linkml:ExtraSlotsExpression" + class_name: ClassVar[str] = "extra_slots_expression" + class_model_uri: ClassVar[URIRef] = LINKML.ExtraSlotsExpression + + allowed: Optional[Union[bool, Bool]] = None + range_expression: Optional[Union[dict, AnonymousClassExpression]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.allowed is not None and not isinstance(self.allowed, Bool): + self.allowed = Bool(self.allowed) + + if self.range_expression is not None and not isinstance(self.range_expression, AnonymousClassExpression): + self.range_expression = AnonymousClassExpression(**as_dict(self.range_expression)) + + super().__post_init__(**kwargs) + + # Enumerations class PvFormulaOptions(EnumDefinitionImpl): """ @@ -4057,6 +4514,31 @@ class AliasPredicateEnum(EnumDefinitionImpl): description="permissible values for the relationship between an element and an alias", ) +class ObligationLevelEnum(EnumDefinitionImpl): + """ + The level of obligation or recommendation strength for a metadata element + """ + REQUIRED = PermissibleValue( + text="REQUIRED", + description="The metadata element is required to be present in the model") + RECOMMENDED = PermissibleValue( + text="RECOMMENDED", + description="The metadata element is recommended to be present in the model") + OPTIONAL = PermissibleValue( + text="OPTIONAL", + description="The metadata element is optional to be present in the model") + EXAMPLE = PermissibleValue( + text="EXAMPLE", + description="The metadata element is an example of how to use the model") + DISCOURAGED = PermissibleValue( + text="DISCOURAGED", + description="The metadata element is allowed but discouraged to be present in the model") + + _defn = EnumDefinition( + name="ObligationLevelEnum", + description="The level of obligation or recommendation strength for a metadata element", + ) + # Slots class slots: pass @@ -4151,17 +4633,17 @@ class slots: slots.alias_predicate = Slot(uri=RDF.predicate, name="alias_predicate", curie=RDF.curie('predicate'), model_uri=LINKML.alias_predicate, domain=StructuredAlias, range=Optional[Union[str, "AliasPredicateEnum"]]) +slots.alias_contexts = Slot(uri=LINKML.contexts, name="alias_contexts", curie=LINKML.curie('contexts'), + model_uri=LINKML.alias_contexts, domain=StructuredAlias, range=Optional[Union[Union[str, URI], List[Union[str, URI]]]]) + slots.in_language = Slot(uri=SCHEMA.inLanguage, name="in_language", curie=SCHEMA.curie('inLanguage'), model_uri=LINKML.in_language, domain=None, range=Optional[str]) slots.source = Slot(uri=DCTERMS.source, name="source", curie=DCTERMS.curie('source'), model_uri=LINKML.source, domain=Element, range=Optional[Union[str, URIorCURIE]]) -slots.publisher = Slot(uri=DCTERMS.publisher, name="publisher", curie=DCTERMS.curie('publisher'), - model_uri=LINKML.publisher, domain=Element, range=Optional[Union[str, URIorCURIE]]) - slots.is_a = Slot(uri=LINKML.is_a, name="is_a", curie=LINKML.curie('is_a'), - model_uri=LINKML.is_a, domain=Definition, range=Optional[Union[str, DefinitionName]]) + model_uri=LINKML.is_a, domain=None, range=Optional[Union[str, DefinitionName]]) slots.abstract = Slot(uri=LINKML.abstract, name="abstract", curie=LINKML.curie('abstract'), model_uri=LINKML.abstract, domain=Definition, range=Optional[Union[bool, Bool]]) @@ -4170,7 +4652,7 @@ class slots: model_uri=LINKML.mixin, domain=Definition, range=Optional[Union[bool, Bool]]) slots.mixins = Slot(uri=LINKML.mixins, name="mixins", curie=LINKML.curie('mixins'), - model_uri=LINKML.mixins, domain=Definition, range=Optional[Union[Union[str, DefinitionName], List[Union[str, DefinitionName]]]]) + model_uri=LINKML.mixins, domain=None, range=Optional[Union[Union[str, DefinitionName], List[Union[str, DefinitionName]]]]) slots.apply_to = Slot(uri=LINKML.apply_to, name="apply_to", curie=LINKML.curie('apply_to'), model_uri=LINKML.apply_to, domain=Definition, range=Optional[Union[Union[str, DefinitionName], List[Union[str, DefinitionName]]]]) @@ -4188,7 +4670,7 @@ class slots: model_uri=LINKML.code_set_tag, domain=EnumExpression, range=Optional[str]) slots.pv_formula = Slot(uri=LINKML.pv_formula, name="pv_formula", curie=LINKML.curie('pv_formula'), - model_uri=LINKML.pv_formula, domain=EnumExpression, range=Optional[Union[str, "PvFormulaOptions"]]) + model_uri=LINKML.pv_formula, domain=None, range=Optional[Union[str, "PvFormulaOptions"]]) slots.permissible_values = Slot(uri=LINKML.permissible_values, name="permissible_values", curie=LINKML.curie('permissible_values'), model_uri=LINKML.permissible_values, domain=EnumExpression, range=Optional[Union[Dict[Union[str, PermissibleValueText], Union[dict, "PermissibleValue"]], List[Union[dict, "PermissibleValue"]]]]) @@ -4388,6 +4870,12 @@ class slots: slots.slot_names_unique = Slot(uri=LINKML.slot_names_unique, name="slot_names_unique", curie=LINKML.curie('slot_names_unique'), model_uri=LINKML.slot_names_unique, domain=Definition, range=Optional[Union[bool, Bool]]) +slots.extra_slots = Slot(uri=LINKML.extra_slots, name="extra_slots", curie=LINKML.curie('extra_slots'), + model_uri=LINKML.extra_slots, domain=ClassDefinition, range=Optional[Union[dict, "ExtraSlotsExpression"]]) + +slots.allowed = Slot(uri=LINKML.allowed, name="allowed", curie=LINKML.curie('allowed'), + model_uri=LINKML.allowed, domain=None, range=Optional[Union[bool, Bool]]) + slots.domain = Slot(uri=LINKML.domain, name="domain", curie=LINKML.curie('domain'), model_uri=LINKML.domain, domain=SlotDefinition, range=Optional[Union[str, ClassDefinitionName]]) @@ -4415,9 +4903,6 @@ class slots: slots.exact_number_dimensions = Slot(uri=LINKML.exact_number_dimensions, name="exact_number_dimensions", curie=LINKML.curie('exact_number_dimensions'), model_uri=LINKML.exact_number_dimensions, domain=ArrayExpression, range=Optional[int]) -slots.has_extra_dimensions = Slot(uri=LINKML.has_extra_dimensions, name="has_extra_dimensions", curie=LINKML.curie('has_extra_dimensions'), - model_uri=LINKML.has_extra_dimensions, domain=ArrayExpression, range=Optional[Union[bool, Bool]]) - slots.inherited = Slot(uri=LINKML.inherited, name="inherited", curie=LINKML.curie('inherited'), model_uri=LINKML.inherited, domain=SlotDefinition, range=Optional[Union[bool, Bool]]) @@ -4592,6 +5077,24 @@ class slots: slots.string_serialization = Slot(uri=LINKML.string_serialization, name="string_serialization", curie=LINKML.curie('string_serialization'), model_uri=LINKML.string_serialization, domain=Definition, range=Optional[str]) +slots.bindings = Slot(uri=LINKML.bindings, name="bindings", curie=LINKML.curie('bindings'), + model_uri=LINKML.bindings, domain=Element, range=Optional[Union[Union[dict, "EnumBinding"], List[Union[dict, "EnumBinding"]]]]) + +slots.binds_value_of = Slot(uri=LINKML.binds_value_of, name="binds_value_of", curie=LINKML.curie('binds_value_of'), + model_uri=LINKML.binds_value_of, domain=EnumBinding, range=Optional[str]) + +slots.obligation_level = Slot(uri=LINKML.obligation_level, name="obligation_level", curie=LINKML.curie('obligation_level'), + model_uri=LINKML.obligation_level, domain=None, range=Optional[Union[str, "ObligationLevelEnum"]]) + +slots.type_mappings = Slot(uri=LINKML.type_mappings, name="type_mappings", curie=LINKML.curie('type_mappings'), + model_uri=LINKML.type_mappings, domain=None, range=Optional[Union[Union[str, TypeMappingFramework], List[Union[str, TypeMappingFramework]]]]) + +slots.framework_key = Slot(uri=LINKML.framework, name="framework_key", curie=LINKML.curie('framework'), + model_uri=LINKML.framework_key, domain=None, range=URIRef) + +slots.mapped_type = Slot(uri=LINKML.type, name="mapped_type", curie=LINKML.curie('type'), + model_uri=LINKML.mapped_type, domain=None, range=Optional[Union[str, TypeDefinitionName]]) + slots.typeof = Slot(uri=LINKML.typeof, name="typeof", curie=LINKML.curie('typeof'), model_uri=LINKML.typeof, domain=TypeDefinition, range=Optional[Union[str, TypeDefinitionName]]) @@ -4685,6 +5188,33 @@ class slots: slots.relational_role = Slot(uri=LINKML.relational_role, name="relational_role", curie=LINKML.curie('relational_role'), model_uri=LINKML.relational_role, domain=SlotDefinition, range=Optional[Union[str, "RelationalRoleEnum"]]) +slots.issued = Slot(uri=DCTERMS.issued, name="issued", curie=DCTERMS.curie('issued'), + model_uri=LINKML.issued, domain=SchemaDefinition, range=Optional[Union[str, XSDDate]]) + +slots.modified = Slot(uri=DCTERMS.modified, name="modified", curie=DCTERMS.curie('modified'), + model_uri=LINKML.modified, domain=SchemaDefinition, range=Optional[Union[str, XSDDate]]) + +slots.rights = Slot(uri=DCTERMS.rights, name="rights", curie=DCTERMS.curie('rights'), + model_uri=LINKML.rights, domain=SchemaDefinition, range=Optional[str]) + +slots.licence = Slot(uri=CC.licence, name="licence", curie=CC.curie('licence'), + model_uri=LINKML.licence, domain=SchemaDefinition, range=Optional[str]) + +slots.creator = Slot(uri=DC.creator, name="creator", curie=DC.curie('creator'), + model_uri=LINKML.creator, domain=SchemaDefinition, range=Optional[str]) + +slots.contributor = Slot(uri=DC.contributor, name="contributor", curie=DC.curie('contributor'), + model_uri=LINKML.contributor, domain=SchemaDefinition, range=Optional[str]) + +slots.publisher = Slot(uri=DC.publisher, name="publisher", curie=DC.curie('publisher'), + model_uri=LINKML.publisher, domain=SchemaDefinition, range=Optional[str]) + +slots.preferredNamespacePrefix = Slot(uri=VANN.preferredNamespacePrefix, name="preferredNamespacePrefix", curie=VANN.curie('preferredNamespacePrefix'), + model_uri=LINKML.preferredNamespacePrefix, domain=SchemaDefinition, range=Optional[str]) + +slots.preferredNamespaceUri = Slot(uri=VANN.preferredNamespaceU, name="preferredNamespaceUri", curie=VANN.curie('preferredNamespaceU'), + model_uri=LINKML.preferredNamespaceUri, domain=SchemaDefinition, range=Optional[Union[str, URI]]) + slots.schema_definition_name = Slot(uri=RDFS.label, name="schema_definition_name", curie=RDFS.curie('label'), model_uri=LINKML.schema_definition_name, domain=SchemaDefinition, range=Union[str, SchemaDefinitionName]) @@ -4703,6 +5233,9 @@ class slots: slots.type_definition_union_of = Slot(uri=LINKML.union_of, name="type_definition_union_of", curie=LINKML.curie('union_of'), model_uri=LINKML.type_definition_union_of, domain=TypeDefinition, range=Optional[Union[Union[str, TypeDefinitionName], List[Union[str, TypeDefinitionName]]]]) +slots.enum_binding_range = Slot(uri=LINKML.range, name="enum_binding_range", curie=LINKML.curie('range'), + model_uri=LINKML.enum_binding_range, domain=EnumBinding, range=Optional[Union[str, EnumDefinitionName]]) + slots.structured_alias_categories = Slot(uri=DCTERMS.subject, name="structured_alias_categories", curie=DCTERMS.curie('subject'), model_uri=LINKML.structured_alias_categories, domain=StructuredAlias, range=Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]]) diff --git a/linkml_model/model/schema/meta.yaml b/linkml_model/model/schema/meta.yaml index 01abb135..e3cdd876 100644 --- a/linkml_model/model/schema/meta.yaml +++ b/linkml_model/model/schema/meta.yaml @@ -49,6 +49,7 @@ prefixes: qudt: http://qudt.org/schema/qudt/ cdisc: http://rdf.cdisc.org/mms# SIO: http://semanticscience.org/resource/SIO_ + cc: http://creativecommons.org/ns# default_prefix: linkml default_range: string @@ -497,14 +498,6 @@ slots: in_subset: - BasicSubset - publisher: - domain: element - range: uriorcurie - description: An entity responsible for making the resource available - slot_uri: dcterms:publisher - in_subset: - - BasicSubset - # -------------------------------------------------------------- # Slots that are common to slot definition and class definition # -------------------------------------------------------------- @@ -838,8 +831,10 @@ slots: slot_uri: pav:version exact_mappings: - schema:schemaVersion + - owl:versionInfo in_subset: - BasicSubset + - OwlProfile imports: rank: 21 @@ -2541,6 +2536,145 @@ slots: - in the context of RDF, this should be used for slots that can be modeled using the RDF reification vocabulary - in the context of property graphs, this should be used on edge classes to indicate which slots represent the input and output nodes + issued: + description: Date of the first vocabulary publication. + domain: schema_definition + range: date + inherited: true + slot_uri: dcterms:issued + in_subset: + - OwlProfile + exact_mappings: + - dcterms:issued + see_also: + - https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/issued + - https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf + + modified: + description: Last vocabulary modification date. + domain: schema_definition + range: date + inherited: true + slot_uri: dcterms:modified + in_subset: + - OwlProfile + exact_mappings: + - dcterms:modified + see_also: + - https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/modified + - https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf + + rights: + description: Property rights of the vocabulary. + domain: schema_definition + range: string + inherited: true + slot_uri: dcterms:rights + in_subset: + - OwlProfile + exact_mappings: + - dcterms:rights + see_also: + - https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/rights + - https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf + + licence: + description: >- + Licence of the vocabulary. + Recommended practice is to refer to a rights statement with a URI. + If this is not possible or feasible, a literal value (name, label, or short text) may be provided. + domain: schema_definition + range: string + inherited: true + slot_uri: cc:licence + in_subset: + - OwlProfile + exact_mappings: + - cc:licence + see_also: + - https://creativecommons.org/ns + - https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf + + creator: + description: >- + Creator(s) of the vocabulary. + Recommended practice is to identify the creator with a URI. + If this is not possible or feasible, a literal value that identifies the creator may be provided. + domain: schema_definition + range: string + inherited: true + slot_uri: dcterms:creator + in_subset: + - OwlProfile + exact_mappings: + - dcterms:creator + see_also: + - https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/creator + - https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf + + contributor: + description: >- + Contributor(s) of the vocabulary. + Recommended practice is to identify the contributor with a URI. + If this is not possible or feasible, a literal value that identifies the contributor may be provided. + domain: schema_definition + range: string + inherited: true + slot_uri: dc:contributor + in_subset: + - OwlProfile + exact_mappings: + - dc:contributor + see_also: + - https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/contributor + - https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf + + publisher: + description: >- + Publisher(s) of the vocabulary. + Recommended practice is to identify the contributor with a URI. + If this is not possible or feasible, a literal value that identifies the publisher may be provided. + domain: schema_definition + range: string + inherited: true + slot_uri: dc:publisher + in_subset: + - OwlProfile + exact_mappings: + - dc:publisher + see_also: + - https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/publisher + - https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf + + preferred_namespace_prefix: + description: >- + Indication of the prefix to be used when referring the vocabulary namespace. + A prefix should be as short as possible (usually less than 5 characters) and avoid conflicts with existing ones. + domain: schema_definition + range: string + inherited: true + slot_uri: vann:preferredNamespacePrefix + in_subset: + - OwlProfile + exact_mappings: + - vann:preferredNamespacePrefix + see_also: + - https://vocab.org/vann/ + - https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf + + preferred_namespace_uri: + description: Indication of the preferred namespace URI to be used for this vocabulary. + domain: schema_definition + range: uri + inherited: true + slot_uri: vann:preferredNamespaceUri + in_subset: + - OwlProfile + exact_mappings: + - vann:preferredNamespaceUri + see_also: + - https://vocab.org/vann/ + - https://lov.linkeddata.es/Recommendations_Vocabulary_Design.pdf # ================================== # Classes # diff --git a/linkml_model/owl/meta.owl.ttl b/linkml_model/owl/meta.owl.ttl index 7e7e1261..a811e7b6 100644 --- a/linkml_model/owl/meta.owl.ttl +++ b/linkml_model/owl/meta.owl.ttl @@ -3,6 +3,7 @@ @prefix OIO: . @prefix SIO: . @prefix bibo: . +@prefix cc: . @prefix cdisc: . @prefix dcterms: . @prefix linkml: . @@ -20,6 +21,28 @@ @prefix vann1: . @prefix xsd: . +linkml:contributor a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "contributor" ; + rdfs:domain linkml:SchemaDefinition ; + rdfs:range linkml:String ; + rdfs:seeAlso , + ; + skos:definition "Contributor(s) of the vocabulary. Recommended practice is to identify the contributor with a URI. If this is not possible or feasible, a literal value that identifies the contributor may be provided." ; + skos:exactMatch dcterms:contributor ; + skos:inScheme linkml:meta . + +linkml:creator a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "creator" ; + rdfs:domain linkml:SchemaDefinition ; + rdfs:range linkml:String ; + rdfs:seeAlso , + ; + skos:definition "Creator(s) of the vocabulary. Recommended practice is to identify the creator with a URI. If this is not possible or feasible, a literal value that identifies the creator may be provided." ; + skos:exactMatch dcterms:creator ; + skos:inScheme linkml:meta . + linkml:equals_number_in a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "equals_number_in" ; @@ -49,6 +72,39 @@ linkml:inlined_as_simple_dict a owl:ObjectProperty, skos:inScheme linkml:meta ; sh:order 28 . +linkml:issued a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "issued" ; + rdfs:domain linkml:SchemaDefinition ; + rdfs:range linkml:Date ; + rdfs:seeAlso , + ; + skos:definition "Date of the first vocabulary publication." ; + skos:exactMatch dcterms:issued ; + skos:inScheme linkml:meta . + +linkml:licence a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "licence" ; + rdfs:domain linkml:SchemaDefinition ; + rdfs:range linkml:String ; + rdfs:seeAlso , + ; + skos:definition "Licence of the vocabulary. Recommended practice is to refer to a rights statement with a URI. If this is not possible or feasible, a literal value (name, label, or short text) may be provided." ; + skos:exactMatch cc:licence ; + skos:inScheme linkml:meta . + +linkml:modified a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "modified" ; + rdfs:domain linkml:SchemaDefinition ; + rdfs:range linkml:Date ; + rdfs:seeAlso , + ; + skos:definition "Last vocabulary modification date." ; + skos:exactMatch dcterms:modified ; + skos:inScheme linkml:meta . + linkml:owned_by a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "owned_by" ; @@ -60,12 +116,48 @@ linkml:owned_by a owl:ObjectProperty, skos:definition "agent that owns or is the steward of the element" ; skos:inScheme linkml:meta . +linkml:preferredNamespacePrefix a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "preferredNamespacePrefix" ; + rdfs:domain linkml:SchemaDefinition ; + rdfs:range linkml:String ; + rdfs:seeAlso , + vann1: ; + skos:definition "Indication of the prefix to be used when referring the vocabulary namespace. A prefix should be as short as possible (usually less than 5 characters) and avoid conflicts with existing ones." ; + skos:exactMatch vann1:preferredNamespacePrefix ; + skos:inScheme linkml:meta . + +linkml:preferredNamespaceUri a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "preferredNamespaceUri" ; + rdfs:domain linkml:SchemaDefinition ; + rdfs:range linkml:Uri ; + rdfs:seeAlso , + vann1: ; + skos:definition "Indication of the preferred namespace URI to be used for this vocabulary." ; + skos:exactMatch vann1:preferredNamespaceU ; + skos:inScheme linkml:meta . + linkml:publisher a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "publisher" ; - rdfs:domain linkml:Element ; - rdfs:range linkml:Uriorcurie ; - skos:definition "An entity responsible for making the resource available" ; + rdfs:domain linkml:SchemaDefinition ; + rdfs:range linkml:String ; + rdfs:seeAlso , + ; + skos:definition "Publisher(s) of the vocabulary. Recommended practice is to identify the contributor with a URI. If this is not possible or feasible, a literal value that identifies the publisher may be provided." ; + skos:exactMatch dcterms:publisher ; + skos:inScheme linkml:meta . + +linkml:rights a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "rights" ; + rdfs:domain linkml:SchemaDefinition ; + rdfs:range linkml:String ; + rdfs:seeAlso , + ; + skos:definition "Property rights of the vocabulary." ; + skos:exactMatch dcterms:rights ; skos:inScheme linkml:meta . linkml:structured_imports a owl:ObjectProperty, @@ -146,68 +238,68 @@ linkml:ClassRule a owl:Class, linkml:ClassDefinition ; rdfs:label "class_rule" ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:Integer ; + owl:onProperty linkml:rank ], + [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:bidirectional ], + owl:onProperty linkml:preconditions ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:open_world ], + owl:onProperty linkml:rank ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:postconditions ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:elseconditions ], + owl:onProperty linkml:bidirectional ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty linkml:deactivated ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:onProperty linkml:preconditions ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:open_world ], + owl:onProperty linkml:elseconditions ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:elseconditions ], + owl:onProperty linkml:open_world ], [ a owl:Restriction ; owl:allValuesFrom linkml:Boolean ; owl:onProperty linkml:bidirectional ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:maxCardinality 1 ; owl:onProperty linkml:postconditions ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:Boolean ; owl:onProperty linkml:deactivated ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:rank ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; + owl:minCardinality 0 ; owl:onProperty linkml:open_world ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty linkml:rank ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty linkml:preconditions ], [ a owl:Restriction ; owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:deactivated ], + owl:onProperty linkml:open_world ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:AnonymousClassExpression ; owl:onProperty linkml:elseconditions ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:rank ], + owl:onProperty linkml:bidirectional ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:onProperty linkml:postconditions ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:postconditions ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:preconditions ], + owl:minCardinality 0 ; + owl:onProperty linkml:deactivated ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:bidirectional ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty linkml:rank ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:preconditions ], + owl:onProperty linkml:elseconditions ], linkml:Annotatable, linkml:ClassLevelRule, linkml:CommonMetadata, @@ -223,47 +315,100 @@ linkml:DimensionExpression a owl:Class, rdfs:label "dimension_expression" ; bibo:status ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:alias ], + [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; owl:onProperty linkml:minimum_cardinality ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty linkml:alias ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty linkml:minimum_cardinality ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; + owl:maxCardinality 1 ; owl:onProperty linkml:exact_cardinality ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:Integer ; owl:onProperty linkml:maximum_cardinality ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:Integer ; owl:onProperty linkml:exact_cardinality ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty linkml:maximum_cardinality ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:exact_cardinality ], + owl:onProperty linkml:maximum_cardinality ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:alias ], + owl:minCardinality 0 ; + owl:onProperty linkml:exact_cardinality ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:alias ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty linkml:maximum_cardinality ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:minimum_cardinality ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:alias ], + owl:onProperty linkml:minimum_cardinality ], linkml:Annotatable, linkml:CommonMetadata, linkml:Extensible ; skos:definition "defines one of the dimensions of an array" ; skos:inScheme linkml:meta . +linkml:ExtraSlotsExpression a owl:Class, + linkml:ClassDefinition ; + rdfs:label "extra_slots_expression" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:allowed ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:allowed ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:allowed ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:range_expression ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:onProperty linkml:range_expression ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:range_expression ], + linkml:Expression ; + skos:definition """An expression that defines how to handle additional data in an instance of class +beyond the slots/attributes defined for that class. +See `extra_slots` for usage examples. +""" ; + skos:inScheme linkml:meta . + + a owl:Class, + linkml:ObligationLevelEnum ; + rdfs:label "DISCOURAGED" ; + rdfs:subClassOf linkml:ObligationLevelEnum . + + a owl:Class, + linkml:ObligationLevelEnum ; + rdfs:label "EXAMPLE" ; + rdfs:subClassOf linkml:ObligationLevelEnum . + + a owl:Class, + linkml:ObligationLevelEnum ; + rdfs:label "OPTIONAL" ; + rdfs:subClassOf linkml:ObligationLevelEnum . + + a owl:Class, + linkml:ObligationLevelEnum ; + rdfs:label "RECOMMENDED" ; + rdfs:subClassOf linkml:ObligationLevelEnum . + + a owl:Class, + linkml:ObligationLevelEnum ; + rdfs:label "REQUIRED" ; + rdfs:subClassOf linkml:ObligationLevelEnum . + a owl:Class, linkml:PresenceEnum ; rdfs:label "ABSENT" ; @@ -319,127 +464,173 @@ linkml:TypeExpression a owl:Class, rdfs:label "type_expression" ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:equals_string ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:equals_number ], + owl:onProperty linkml:minimum_value ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:maximum_value ], + owl:onProperty linkml:none_of ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:exactly_one_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:implicit_prefix ], + owl:onProperty linkml:maximum_value ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:any_of ], + owl:onProperty linkml:none_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:UnitOfMeasure ; owl:onProperty linkml:unit ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:equals_string ], + owl:maxCardinality 1 ; + owl:onProperty linkml:implicit_prefix ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:pattern ], + owl:maxCardinality 1 ; + owl:onProperty linkml:equals_number ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:pattern ], + owl:onProperty linkml:any_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty linkml:equals_number ], + owl:maxCardinality 1 ; + owl:onProperty linkml:none_of ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:equals_number ], + owl:onProperty linkml:all_of ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:structured_pattern ], + owl:onProperty linkml:pattern ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty linkml:equals_string_in ], + owl:onProperty linkml:pattern ], [ a owl:Restriction ; - owl:allValuesFrom linkml:PatternExpression ; - owl:onProperty linkml:structured_pattern ], + owl:maxCardinality 1 ; + owl:onProperty linkml:unit ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Integer ; + owl:onProperty linkml:equals_number ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:equals_string ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:all_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:pattern ], + owl:allValuesFrom linkml:PatternExpression ; + owl:onProperty linkml:structured_pattern ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:any_of ], + owl:onProperty linkml:minimum_value ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:implicit_prefix ], + owl:onProperty linkml:equals_string ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:any_of ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:equals_string_in ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:none_of ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:minimum_value ], + owl:onProperty linkml:equals_number ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:all_of ], + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:String ; owl:onProperty linkml:implicit_prefix ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:minimum_value ], + owl:maxCardinality 1 ; + owl:onProperty linkml:pattern ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:Anything ; owl:onProperty linkml:maximum_value ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:maximum_value ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:structured_pattern ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:structured_pattern ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:any_of ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:exactly_one_of ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:all_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:exactly_one_of ], + owl:onProperty linkml:any_of ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:none_of ], + owl:onProperty linkml:equals_string ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:all_of ], + owl:onProperty linkml:implicit_prefix ], [ a owl:Restriction ; owl:allValuesFrom linkml:Anything ; owl:onProperty linkml:minimum_value ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:unit ], + owl:onProperty linkml:equals_string_in ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:equals_string_in ], + owl:onProperty linkml:unit ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:none_of ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:maximum_value ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:unit ], + owl:onProperty linkml:all_of ], linkml:Expression ; skos:definition "An abstract class grouping named types and anonymous type expressions" ; skos:inScheme linkml:meta . -linkml:alt_descriptions a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "alt_descriptions" ; - rdfs:domain linkml:Element ; - rdfs:range linkml:AltDescription ; +linkml:TypeMapping a owl:Class, + linkml:ClassDefinition ; + rdfs:label "type_mapping" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:mapped_type ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:string_serialization ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:framework_key ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:framework_key ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:mapped_type ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:string_serialization ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:string_serialization ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty linkml:framework_key ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:TypeDefinition ; + owl:onProperty linkml:mapped_type ], + linkml:Annotatable, + linkml:CommonMetadata, + linkml:Extensible ; + skos:definition "Represents how a slot or type can be serialized to a format." ; + skos:inScheme linkml:meta ; + sh:order 21 . + +linkml:alias_contexts a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "alias_contexts" ; + rdfs:domain linkml:StructuredAlias ; + rdfs:range linkml:Uri ; + skos:definition "The context in which an alias should be applied" ; + skos:inScheme linkml:meta ; + skos:prefLabel "contexts" . + +linkml:alt_descriptions a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "alt_descriptions" ; + rdfs:domain linkml:Element ; + rdfs:range linkml:AltDescription ; skos:altLabel "alternate definitions" ; skos:definition "A sourced alternative description for an element" ; skos:inScheme linkml:meta . @@ -627,14 +818,6 @@ linkml:inherits a owl:ObjectProperty, skos:inScheme linkml:meta ; skos:note "All permissible values for all inherited enums are copied to form the initial seed set" . -linkml:instantiates a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "instantiates" ; - rdfs:domain linkml:Element ; - rdfs:range linkml:Uriorcurie ; - skos:definition "An element in another schema which this element instantiates." ; - skos:inScheme linkml:meta . - linkml:keywords a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "keywords" ; @@ -811,6 +994,13 @@ linkml:todos a owl:ObjectProperty, skos:definition "Outstanding issues that needs resolution" ; skos:inScheme linkml:meta . +linkml:type_mappings a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "type_mappings" ; + rdfs:range linkml:TypeMapping ; + skos:definition "A collection of type mappings that specify how a slot's range should be mapped or serialized in different frameworks" ; + skos:inScheme linkml:meta . + linkml:types a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "types" ; @@ -841,10 +1031,10 @@ linkml:Annotation a owl:Class, linkml:ClassDefinition ; rdfs:label "annotation" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Annotation ; + owl:minCardinality 0 ; owl:onProperty linkml:annotations ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:Annotation ; owl:onProperty linkml:annotations ], linkml:Annotatable, linkml:Extension ; @@ -855,47 +1045,47 @@ linkml:ClassExpression a owl:Class, linkml:ClassDefinition ; rdfs:label "class_expression" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:AnonymousClassExpression ; owl:onProperty linkml:any_of ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:exactly_one_of ], + owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:onProperty linkml:none_of ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:slot_conditions ], + owl:maxCardinality 1 ; + owl:onProperty linkml:any_of ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:none_of ], + owl:onProperty linkml:all_of ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:all_of ], + owl:onProperty linkml:none_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:all_of ], + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:all_of ], + owl:minCardinality 0 ; + owl:onProperty linkml:any_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:none_of ], + owl:onProperty linkml:all_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:any_of ], + owl:maxCardinality 1 ; + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:SlotDefinition ; owl:onProperty linkml:slot_conditions ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:exactly_one_of ], + owl:minCardinality 0 ; + owl:onProperty linkml:slot_conditions ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:exactly_one_of ], + owl:minCardinality 0 ; + owl:onProperty linkml:all_of ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:none_of ], + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:any_of ] ; + owl:onProperty linkml:none_of ] ; skos:definition "A boolean expression that can be used to dynamically determine membership of a class" ; skos:inScheme linkml:meta . @@ -905,20 +1095,20 @@ linkml:MatchQuery a owl:Class, rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:identifier_pattern ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:identifier_pattern ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:identifier_pattern ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty linkml:source_ontology ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty linkml:source_ontology ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty linkml:identifier_pattern ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:identifier_pattern ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty linkml:source_ontology ] ; skos:definition "A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts." ; skos:inScheme linkml:meta . @@ -969,6 +1159,13 @@ linkml:all_members a owl:ObjectProperty, skos:definition "the value of the slot is multivalued with all members satisfying the condition" ; skos:inScheme linkml:meta . +linkml:allowed a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "allowed" ; + rdfs:range linkml:Boolean ; + skos:definition "Whether or not something is allowed. Usage defined by context." ; + skos:inScheme linkml:meta . + linkml:alt_description_source a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "alt_description_source" ; @@ -1024,6 +1221,14 @@ linkml:bidirectional a owl:ObjectProperty, skos:definition "in addition to preconditions entailing postconditions, the postconditions entail the preconditions" ; skos:inScheme linkml:meta . +linkml:binds_value_of a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "binds_value_of" ; + rdfs:domain linkml:EnumBinding ; + rdfs:range linkml:String ; + skos:definition "A path to a slot that is being bound to a permissible value from an enumeration." ; + skos:inScheme linkml:meta . + linkml:code_set a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "code_set" ; @@ -1228,6 +1433,22 @@ linkml:extension_value a owl:ObjectProperty, skos:inScheme linkml:extensions ; skos:prefLabel "value" . +linkml:extra_slots a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "extra_slots" ; + rdfs:domain linkml:ClassDefinition ; + rdfs:range linkml:ExtraSlotsExpression ; + skos:definition """How a class instance handles extra data not specified in the class definition. +Note that this does *not* define the constraints that are placed on additional slots defined by inheriting classes. + +Possible values: +- `allowed: true` - allow all additional data +- `allowed: false` (or `allowed:` or `allowed: null` while `range_expression` is `null`) - + forbid all additional data (default) +- `range_expression: ...` - allow additional data if it matches the slot expression (see examples) +""" ; + skos:inScheme linkml:meta . + linkml:followed_by a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "followed_by" ; @@ -1235,6 +1456,14 @@ linkml:followed_by a owl:ObjectProperty, skos:definition "in a sequential list, this indicates the next member" ; skos:inScheme linkml:meta . +linkml:framework_key a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "framework_key" ; + rdfs:range linkml:String ; + skos:definition "The name of a format that can be used to serialize LinkML data. The string value should be a code from the LinkML frameworks vocabulary, but this is not strictly enforced" ; + skos:inScheme linkml:meta ; + skos:prefLabel "framework" . + linkml:from_schema a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "from_schema" ; @@ -1252,15 +1481,6 @@ linkml:generation_date a owl:ObjectProperty, skos:definition "date and time that the schema was loaded/generated" ; skos:inScheme linkml:meta . -linkml:has_extra_dimensions a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "has_extra_dimensions" ; - bibo:status ; - rdfs:domain linkml:ArrayExpression ; - rdfs:range linkml:Boolean ; - skos:definition "If this is set to true" ; - skos:inScheme linkml:meta . - linkml:has_member a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "has_member" ; @@ -1329,7 +1549,7 @@ linkml:ifabsent a owl:ObjectProperty, rdfs:range linkml:String ; rdfs:seeAlso linkml:equals_expression ; skos:closeMatch sh:defaultValue ; - skos:definition """function that provides a default value for the slot. Possible values for this slot are defined in linkml.utils.ifabsent_functions.default_library: + skos:definition """function that provides a default value for the slot. * [Tt]rue -- boolean True * [Ff]alse -- boolean False * bnode -- blank node identifier @@ -1340,15 +1560,8 @@ linkml:ifabsent a owl:ObjectProperty, * int(value) -- integer value * slot_uri -- URI for the slot * slot_curie -- CURIE for the slot - * string(value) -- string value""" ; - skos:inScheme linkml:meta . - -linkml:implements a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "implements" ; - rdfs:domain linkml:Element ; - rdfs:range linkml:Uriorcurie ; - skos:definition "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + * string(value) -- string value + * EnumName(PermissibleValue) -- enum value""" ; skos:inScheme linkml:meta . linkml:import_as a owl:ObjectProperty, @@ -1571,6 +1784,14 @@ linkml:locally_reflexive a owl:ObjectProperty, skos:definition "If s is locally_reflexive, then i.s=i for all instances i where s is a class slot for the type of i" ; skos:inScheme linkml:meta . +linkml:mapped_type a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "mapped_type" ; + rdfs:range linkml:TypeDefinition ; + skos:definition "type to coerce to" ; + skos:inScheme linkml:meta ; + skos:prefLabel "type" . + linkml:matches a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "matches" ; @@ -1646,6 +1867,13 @@ linkml:multivalued a owl:ObjectProperty, skos:inScheme linkml:meta ; sh:order 7 . +linkml:obligation_level a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "obligation_level" ; + rdfs:range linkml:ObligationLevelEnum ; + skos:definition "The level of obligation or recommendation strength for a metadata element" ; + skos:inScheme linkml:meta . + linkml:open_world a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "open_world" ; @@ -1721,35 +1949,6 @@ linkml:prefix_reference a owl:ObjectProperty, skos:inScheme linkml:meta ; sh:order 2 . -linkml:pv_formula a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "pv_formula" ; - rdfs:domain linkml:EnumExpression ; - rdfs:range linkml:PvFormulaOptions ; - skos:definition "Defines the specific formula to be used to generate the permissible values." ; - skos:inScheme linkml:meta ; - skos:note "code_set must be supplied for this to be valid", - "you cannot have BOTH the permissible_values and permissible_value_formula tag" . - -linkml:range a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "range" ; - rdfs:domain linkml:SlotDefinition ; - rdfs:range linkml:Element ; - skos:altLabel "value domain" ; - skos:definition """defines the type of the object of the slot. Given the following slot definition - S1: - domain: C1 - range: C2 -the declaration - X: - S1: Y - -implicitly asserts Y is an instance of C2 -""" ; - skos:inScheme linkml:meta ; - skos:note "range is underspecified, as not all elements can appear as the range of a slot." . - linkml:reachable_from a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "reachable_from" ; @@ -1948,18 +2147,6 @@ linkml:status a owl:ObjectProperty, skos:definition "status of the element" ; skos:inScheme linkml:meta . -linkml:string_serialization a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "string_serialization" ; - rdfs:domain linkml:Definition ; - rdfs:range linkml:String ; - rdfs:seeAlso ; - skos:definition """Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots. -We call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion. -Implementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects -For example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm""" ; - skos:inScheme linkml:meta . - linkml:subclass_of a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "subclass_of" ; @@ -2119,7 +2306,7 @@ linkml:value_presence a owl:ObjectProperty, rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:PresenceEnum ; rdfs:subPropertyOf linkml:list_value_specification_constant ; - skos:definition "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" ; + skos:definition "if PRESENT then a value must be present (for lists there must be at least one value). If ABSENT then a value must be absent (for lists, must be empty)" ; skos:inScheme linkml:meta ; skos:note "if set to true this has the same effect as required=true. In contrast, required=false allows a value to be present" . @@ -2128,29 +2315,30 @@ linkml:version a owl:ObjectProperty, rdfs:label "version" ; rdfs:domain linkml:SchemaDefinition ; skos:definition "particular version of schema" ; - skos:exactMatch schema1:schemaVersion ; + skos:exactMatch schema1:schemaVersion, + owl:versionInfo ; skos:inScheme linkml:meta . linkml:AltDescription a owl:Class, linkml:ClassDefinition ; rdfs:label "alt_description" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 1 ; owl:onProperty linkml:alt_description_source ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; owl:onProperty linkml:alt_description_source ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; owl:onProperty linkml:alt_description_text ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 1 ; owl:onProperty linkml:alt_description_text ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:alt_description_text ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom linkml:String ; owl:onProperty linkml:alt_description_source ] ; skos:altLabel "structured description" ; skos:definition "an attributed description" ; @@ -2170,34 +2358,79 @@ linkml:AnonymousTypeExpression a owl:Class, skos:definition "A type expression that is not a top-level named type definition. Used for nesting." ; skos:inScheme linkml:meta . +linkml:EnumBinding a owl:Class, + linkml:ClassDefinition ; + rdfs:label "enum_binding" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:range ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:binds_value_of ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:range ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:ObligationLevelEnum ; + owl:onProperty linkml:obligation_level ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:obligation_level ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:obligation_level ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:EnumDefinition ; + owl:onProperty linkml:range ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:pv_formula ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:pv_formula ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:binds_value_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:binds_value_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:PvFormulaOptions ; + owl:onProperty linkml:pv_formula ], + linkml:Annotatable, + linkml:CommonMetadata, + linkml:Extensible ; + skos:definition "A binding of a slot or a class to a permissible value from an enumeration." ; + skos:inScheme linkml:meta . + linkml:ImportExpression a owl:Class, linkml:ClassDefinition ; rdfs:label "import_expression" ; bibo:status ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:import_as ], - [ a owl:Restriction ; owl:allValuesFrom linkml:Setting ; owl:onProperty linkml:import_map ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Ncname ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:import_from ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:import_map ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty linkml:import_as ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:import_as ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:import_from ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty linkml:import_from ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Ncname ; + owl:onProperty linkml:import_as ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:import_from ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:import_map ], linkml:Annotatable, linkml:CommonMetadata, linkml:Extensible ; @@ -2208,7 +2441,7 @@ linkml:LocalName a owl:Class, linkml:ClassDefinition ; rdfs:label "local_name" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 1 ; owl:onProperty linkml:local_name_source ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; @@ -2216,15 +2449,15 @@ linkml:LocalName a owl:Class, [ a owl:Restriction ; owl:allValuesFrom linkml:Ncname ; owl:onProperty linkml:local_name_source ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:local_name_source ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty linkml:local_name_value ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:local_name_value ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty linkml:local_name_source ] ; + owl:onProperty linkml:local_name_value ] ; skos:definition "an attributed label" ; skos:inScheme linkml:meta . @@ -2233,22 +2466,22 @@ linkml:Prefix a owl:Class, rdfs:label "prefix" ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty linkml:prefix_reference ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:prefix_reference ], + owl:onProperty linkml:prefix_prefix ], [ a owl:Restriction ; owl:allValuesFrom linkml:Ncname ; owl:onProperty linkml:prefix_prefix ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:prefix_prefix ], [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty linkml:prefix_prefix ], + owl:onProperty linkml:prefix_reference ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:prefix_reference ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uri ; - owl:onProperty linkml:prefix_reference ] ; + owl:onProperty linkml:prefix_reference ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:prefix_prefix ] ; skos:definition "prefix URI tuple" ; skos:inScheme linkml:meta ; sh:order 12 . @@ -2257,188 +2490,188 @@ linkml:SlotExpression a owl:Class, linkml:ClassDefinition ; rdfs:label "slot_expression" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty linkml:exact_cardinality ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:implicit_prefix ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:minimum_cardinality ], + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:all_members ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:enum_range ], + owl:onProperty linkml:range_expression ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:pattern ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:equals_expression ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:recommended ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:any_of ], + owl:onProperty linkml:maximum_cardinality ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:equals_number ], + owl:onProperty linkml:inlined ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:any_of ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:value_presence ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:equals_string ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:equals_expression ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:pattern ], + owl:onProperty linkml:minimum_value ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:implicit_prefix ], + owl:onProperty linkml:range_expression ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:equals_string ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty linkml:exact_cardinality ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:recommended ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:pattern ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:inlined_as_list ], + owl:onProperty linkml:range ], [ a owl:Restriction ; - owl:allValuesFrom linkml:UnitOfMeasure ; + owl:maxCardinality 1 ; owl:onProperty linkml:unit ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:inlined_as_list ], + owl:onProperty linkml:array ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:exact_cardinality ], + owl:maxCardinality 1 ; + owl:onProperty linkml:maximum_cardinality ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:unit ], + owl:onProperty linkml:all_members ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:inlined ], + owl:minCardinality 0 ; + owl:onProperty linkml:all_members ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:has_member ], + owl:minCardinality 0 ; + owl:onProperty linkml:multivalued ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:pattern ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:recommended ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:all_of ], + owl:onProperty linkml:implicit_prefix ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:equals_string_in ], + owl:allValuesFrom linkml:PatternExpression ; + owl:onProperty linkml:structured_pattern ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:range_expression ], + owl:maxCardinality 1 ; + owl:onProperty linkml:structured_pattern ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:exactly_one_of ], + owl:onProperty linkml:array ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:unit ], + owl:onProperty linkml:minimum_value ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:has_member ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:EnumBinding ; + owl:onProperty linkml:bindings ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:inlined ], + owl:onProperty linkml:equals_number ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; owl:onProperty linkml:implicit_prefix ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Anything ; - owl:onProperty linkml:maximum_value ], + owl:maxCardinality 1 ; + owl:onProperty linkml:inlined ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty linkml:maximum_cardinality ], + owl:allValuesFrom linkml:Element ; + owl:onProperty linkml:range ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:all_members ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:inlined_as_list ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:required ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:PatternExpression ; - owl:onProperty linkml:structured_pattern ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:maximum_cardinality ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:equals_string ], + owl:onProperty linkml:bindings ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:equals_string_in ], + owl:onProperty linkml:value_presence ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:range_expression ], + owl:onProperty linkml:has_member ], [ a owl:Restriction ; owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:required ], + owl:onProperty linkml:inlined ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:range ], + owl:onProperty linkml:minimum_cardinality ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:unit ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:minimum_value ], + owl:onProperty linkml:maximum_value ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:all_members ], + owl:minCardinality 0 ; + owl:onProperty linkml:structured_pattern ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty linkml:equals_number ], + owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:onProperty linkml:range_expression ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:maximum_value ], + owl:onProperty linkml:any_of ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:EnumExpression ; owl:onProperty linkml:enum_range ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Integer ; + owl:onProperty linkml:maximum_cardinality ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:recommended ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:inlined ], + owl:onProperty linkml:equals_expression ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:all_of ], + owl:allValuesFrom linkml:Anything ; + owl:onProperty linkml:maximum_value ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:structured_pattern ], + owl:onProperty linkml:equals_string_in ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:equals_number ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:none_of ], + owl:onProperty linkml:required ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:any_of ], + owl:onProperty linkml:equals_string ], [ a owl:Restriction ; - owl:allValuesFrom linkml:EnumExpression ; + owl:minCardinality 0 ; owl:onProperty linkml:enum_range ], [ a owl:Restriction ; - owl:allValuesFrom linkml:PresenceEnum ; - owl:onProperty linkml:value_presence ], + owl:maxCardinality 1 ; + owl:onProperty linkml:multivalued ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:recommended ], + owl:maxCardinality 1 ; + owl:onProperty linkml:none_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:range_expression ], + owl:minCardinality 0 ; + owl:onProperty linkml:inlined_as_list ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty linkml:has_member ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:all_of ], + owl:onProperty linkml:pattern ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Element ; - owl:onProperty linkml:range ], + owl:allValuesFrom linkml:UnitOfMeasure ; + owl:onProperty linkml:unit ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:exact_cardinality ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:minimum_value ], + owl:onProperty linkml:all_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:equals_expression ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:has_member ], + owl:onProperty linkml:range ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousSlotExpression ; owl:onProperty linkml:none_of ], @@ -2446,93 +2679,82 @@ linkml:SlotExpression a owl:Class, owl:minCardinality 0 ; owl:onProperty linkml:minimum_cardinality ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:range ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:maximum_cardinality ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty linkml:equals_number ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:equals_expression ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:required ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:equals_string ], + owl:onProperty linkml:all_of ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:exact_cardinality ], + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:all_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:inlined_as_list ], + owl:minCardinality 0 ; + owl:onProperty linkml:exactly_one_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:any_of ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:none_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Anything ; - owl:onProperty linkml:minimum_value ], + owl:minCardinality 0 ; + owl:onProperty linkml:recommended ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:all_members ], + owl:onProperty linkml:enum_range ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:equals_number ], + owl:onProperty linkml:equals_string ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:value_presence ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:structured_pattern ], + owl:onProperty linkml:inlined_as_list ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:exactly_one_of ], + owl:allValuesFrom linkml:Anything ; + owl:onProperty linkml:minimum_value ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:maximum_value ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:multivalued ], [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; owl:onProperty linkml:minimum_cardinality ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:maximum_value ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:equals_string_in ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty linkml:exactly_one_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:implicit_prefix ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty linkml:required ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:exactly_one_of ], - linkml:Expression ; - skos:definition "an expression that constrains the range of values a slot can take" ; - skos:inScheme linkml:meta . - -linkml:StructuredAlias a owl:Class, - linkml:ClassDefinition ; - rdfs:label "structured_alias" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:categories ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:alias_predicate ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:categories ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:literal_form ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:literal_form ], + owl:onProperty linkml:exact_cardinality ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty linkml:literal_form ], + owl:allValuesFrom linkml:PresenceEnum ; + owl:onProperty linkml:value_presence ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AliasPredicateEnum ; - owl:onProperty linkml:alias_predicate ], + owl:allValuesFrom linkml:ArrayExpression ; + owl:onProperty linkml:array ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:alias_predicate ], - linkml:Annotatable, - linkml:CommonMetadata, - linkml:Expression, - linkml:Extensible ; - skos:definition "object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.)" ; - skos:exactMatch skosxl:Label ; + owl:minCardinality 0 ; + owl:onProperty linkml:pattern ], + linkml:Expression ; + skos:definition "an expression that constrains the range of values a slot can take" ; skos:inScheme linkml:meta . linkml:SubsetDefinition a owl:Class, @@ -2543,6 +2765,17 @@ linkml:SubsetDefinition a owl:Class, skos:inScheme linkml:meta ; sh:order 6 . +linkml:bindings a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "bindings" ; + bibo:status ; + rdfs:domain linkml:Element ; + rdfs:range linkml:EnumBinding ; + skos:definition """A collection of enum bindings that specify how a slot can be bound to a permissible value from an enumeration. +LinkML provides enums to allow string values to be restricted to one of a set of permissible values (specified statically or dynamically). +Enum bindings allow enums to be bound to any object, including complex nested objects. For example, given a (generic) class Concept with slots id and label, it may be desirable to restrict the values the id takes on in a given context. For example, a HumanSample class may have a slot for representing sample site, with a range of concept, but the values of that slot may be restricted to concepts from a particular branch of an anatomy ontology.""" ; + skos:inScheme linkml:meta . + linkml:boolean_slot a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "boolean_slot" ; @@ -2604,6 +2837,14 @@ linkml:iec61360code a owl:ObjectProperty, rdfs:label "iec61360code" ; skos:inScheme linkml:units . +linkml:instantiates a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "instantiates" ; + rdfs:domain linkml:Element ; + rdfs:range linkml:Uriorcurie ; + skos:definition "An element in another schema which this element instantiates." ; + skos:inScheme linkml:meta . + linkml:slot_uri a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "slot_uri" ; @@ -2614,7 +2855,8 @@ linkml:slot_uri a owl:ObjectProperty, skos:altLabel "public ID" ; skos:definition "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas." ; skos:inScheme linkml:meta ; - skos:note "Assigning slot_uris can provide additional hooks for interoperation, indicating a common conceptual model" ; + skos:note "Assigning slot_uris can provide additional hooks for interoperation, indicating a common conceptual model", + "To use a URI or CURIE as a range, create a class with the URI or CURIE as the class_uri" ; sh:order 2 . linkml:symbol a owl:ObjectProperty, @@ -2653,62 +2895,103 @@ linkml:Example a owl:Class, linkml:ClassDefinition ; rdfs:label "example" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:value_description ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 0 ; owl:onProperty linkml:value ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:Anything ; + owl:onProperty linkml:value_object ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; owl:onProperty linkml:value_description ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:value_object ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Anything ; - owl:onProperty linkml:value_object ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty linkml:value_description ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:value_description ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; owl:onProperty linkml:value ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:value_object ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:value_description ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty linkml:value ] ; skos:definition "usage example and description" ; skos:inScheme linkml:meta . -linkml:UniqueKey a owl:Class, +linkml:StructuredAlias a owl:Class, linkml:ClassDefinition ; - rdfs:label "unique_key" ; + rdfs:label "structured_alias" ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:consider_nulls_inequal ], + owl:onProperty linkml:literal_form ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty linkml:unique_key_name ], + owl:onProperty linkml:literal_form ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:alias_predicate ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:categories ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty linkml:literal_form ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:alias_predicate ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:alias_contexts ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AliasPredicateEnum ; + owl:onProperty linkml:alias_predicate ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uri ; + owl:onProperty linkml:alias_contexts ], [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:categories ], + linkml:Annotatable, + linkml:CommonMetadata, + linkml:Expression, + linkml:Extensible ; + skos:definition "object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.)" ; + skos:exactMatch skosxl:Label ; + skos:inScheme linkml:meta . + +linkml:UniqueKey a owl:Class, + linkml:ClassDefinition ; + rdfs:label "unique_key" ; + rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty linkml:unique_key_name ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty linkml:unique_key_slots ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:consider_nulls_inequal ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:unique_key_name ], + owl:onProperty linkml:consider_nulls_inequal ], [ a owl:Restriction ; owl:allValuesFrom linkml:SlotDefinition ; owl:onProperty linkml:unique_key_slots ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty linkml:unique_key_slots ], + owl:maxCardinality 1 ; + owl:onProperty linkml:unique_key_name ], [ a owl:Restriction ; owl:allValuesFrom linkml:Boolean ; owl:onProperty linkml:consider_nulls_inequal ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:unique_key_name ], linkml:Annotatable, linkml:CommonMetadata, linkml:Extensible ; @@ -2721,82 +3004,82 @@ linkml:UnitOfMeasure a owl:Class, rdfs:label "UnitOfMeasure" ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:ucum_code ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:symbol ], + owl:onProperty linkml:abbreviation ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:derivation ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:has_quantity_kind ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:abbreviation ], + owl:minCardinality 0 ; + owl:onProperty linkml:exact_mappings ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 0 ; owl:onProperty linkml:ucum_code ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:has_quantity_kind ], + owl:onProperty linkml:exact_mappings ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty linkml:abbreviation ], - [ owl:unionOf ( [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:ucum_code ] [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:iec61360code ] [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:symbol ] [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:exact_mappings ] ) ], + owl:onProperty linkml:ucum_code ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:symbol ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:exact_mappings ], + owl:onProperty linkml:derivation ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:iec61360code ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:has_quantity_kind ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:descriptive_name ], + owl:onProperty linkml:derivation ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:iec61360code ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:derivation ], + owl:onProperty linkml:descriptive_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:abbreviation ], + owl:onProperty linkml:symbol ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; owl:onProperty linkml:iec61360code ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:ucum_code ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:has_quantity_kind ], + owl:onProperty linkml:abbreviation ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:symbol ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:descriptive_name ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:derivation ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:iec61360code ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:descriptive_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:symbol ], + owl:onProperty linkml:descriptive_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:iec61360code ], + owl:onProperty linkml:has_quantity_kind ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:exact_mappings ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:derivation ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:ucum_code ] ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:abbreviation ], + [ owl:unionOf ( [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:ucum_code ] [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:iec61360code ] [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:symbol ] [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:exact_mappings ] ) ] ; skos:definition "A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension)." ; skos:exactMatch qudt:Unit ; skos:inScheme linkml:units . @@ -2820,66 +3103,118 @@ linkml:exact_mappings a owl:ObjectProperty, skos:definition "A list of terms from different schemas or terminology systems that have identical meaning." ; skos:inScheme linkml:mappings . -linkml:Extension a owl:Class, +linkml:implements a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "implements" ; + rdfs:domain linkml:Element ; + rdfs:range linkml:Uriorcurie ; + skos:definition "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + skos:inScheme linkml:meta . + +linkml:ArrayExpression a owl:Class, linkml:ClassDefinition ; - rdfs:label "extension" ; + rdfs:label "array_expression" ; + bibo:status ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:DimensionExpression ; + owl:onProperty linkml:dimensions ], + [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:extension_value ], + owl:onProperty linkml:exact_number_dimensions ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty linkml:extension_tag ], + owl:maxCardinality 1 ; + owl:onProperty linkml:minimum_number_dimensions ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnyValue ; - owl:onProperty linkml:extension_value ], + owl:minCardinality 0 ; + owl:onProperty linkml:exact_number_dimensions ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Extension ; - owl:onProperty linkml:extensions ], + owl:minCardinality 0 ; + owl:onProperty linkml:minimum_number_dimensions ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:extension_tag ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:extension_tag ], + owl:onProperty linkml:maximum_number_dimensions ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty linkml:extension_value ], + owl:allValuesFrom [ owl:intersectionOf ( [ a rdfs:Datatype ; + owl:unionOf ( linkml:Integer linkml:Boolean ) ] linkml:Anything ) ] ; + owl:onProperty linkml:maximum_number_dimensions ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:extensions ] ; - skos:definition "a tag/value pair used to add non-model information to an entry" ; - skos:inScheme linkml:extensions . - -linkml:PatternExpression a owl:Class, + owl:onProperty linkml:dimensions ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Integer ; + owl:onProperty linkml:exact_number_dimensions ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Integer ; + owl:onProperty linkml:minimum_number_dimensions ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:maximum_number_dimensions ], + linkml:Annotatable, + linkml:CommonMetadata, + linkml:Extensible ; + skos:definition "defines the dimensions of an array" ; + skos:inScheme linkml:meta . + +linkml:Extension a owl:Class, + linkml:ClassDefinition ; + rdfs:label "extension" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty linkml:extension_value ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:extension_value ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty linkml:extension_tag ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:extension_tag ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnyValue ; + owl:onProperty linkml:extension_value ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:extensions ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Extension ; + owl:onProperty linkml:extensions ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:extension_tag ] ; + skos:definition "a tag/value pair used to add non-model information to an entry" ; + skos:inScheme linkml:extensions . + +linkml:PatternExpression a owl:Class, linkml:ClassDefinition ; rdfs:label "pattern_expression" ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:interpolated ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty linkml:partial_match ], [ a owl:Restriction ; owl:allValuesFrom linkml:Boolean ; owl:onProperty linkml:partial_match ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:interpolated ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:syntax ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:syntax ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:syntax ], + owl:onProperty linkml:interpolated ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:syntax ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:interpolated ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:partial_match ], + owl:onProperty linkml:syntax ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:interpolated ], + owl:minCardinality 0 ; + owl:onProperty linkml:partial_match ], linkml:Annotatable, linkml:CommonMetadata, linkml:Extensible ; @@ -2890,56 +3225,68 @@ linkml:PermissibleValue a owl:Class, linkml:ClassDefinition ; rdfs:label "permissible_value" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:description ], - [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:description ], + owl:onProperty linkml:is_a ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:meaning ], + owl:onProperty linkml:is_a ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:mixins ], + owl:maxCardinality 1 ; + owl:onProperty linkml:meaning ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty linkml:description ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty linkml:unit ], [ a owl:Restriction ; owl:allValuesFrom linkml:PermissibleValue ; owl:onProperty linkml:is_a ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:implements ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:text ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:meaning ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:mixins ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:description ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:meaning ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:is_a ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:instantiates ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:is_a ], + owl:onProperty linkml:implements ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:description ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty linkml:text ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:description ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:meaning ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty linkml:unit ], [ a owl:Restriction ; owl:allValuesFrom linkml:UnitOfMeasure ; owl:onProperty linkml:unit ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:text ], + owl:minCardinality 0 ; + owl:onProperty linkml:instantiates ], [ a owl:Restriction ; owl:allValuesFrom linkml:PermissibleValue ; owl:onProperty linkml:mixins ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:text ], linkml:Annotatable, linkml:CommonMetadata, linkml:Extensible ; @@ -2953,23 +3300,23 @@ linkml:Setting a owl:Class, linkml:ClassDefinition ; rdfs:label "setting" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:setting_value ], - [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:setting_value ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Ncname ; + owl:minCardinality 1 ; owl:onProperty linkml:setting_key ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty linkml:setting_value ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:setting_key ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty linkml:setting_value ], + owl:allValuesFrom linkml:Ncname ; + owl:onProperty linkml:setting_key ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty linkml:setting_key ] ; + owl:maxCardinality 1 ; + owl:onProperty linkml:setting_value ] ; skos:definition "assignment of a key to a value" ; skos:inScheme linkml:meta . @@ -3107,15 +3454,34 @@ linkml:pattern a owl:ObjectProperty, skos:inScheme linkml:meta ; sh:order 35 . -linkml:range_expression a owl:ObjectProperty, +linkml:pv_formula a owl:ObjectProperty, linkml:SlotDefinition ; - rdfs:label "range_expression" ; - bibo:status ; - rdfs:domain linkml:SlotExpression ; - rdfs:range linkml:AnonymousClassExpression ; - skos:definition "A range that is described as a boolean expression combining existing ranges" ; + rdfs:label "pv_formula" ; + rdfs:range linkml:PvFormulaOptions ; + skos:definition "Defines the specific formula to be used to generate the permissible values." ; skos:inScheme linkml:meta ; - skos:note "one use for this is being able to describe a range using any_of expressions, for example to combine two enums" . + skos:note "code_set must be supplied for this to be valid", + "you cannot have BOTH the permissible_values and permissible_value_formula tag" . + +linkml:range a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "range" ; + rdfs:domain linkml:SlotDefinition ; + rdfs:range linkml:Element ; + skos:altLabel "value domain" ; + skos:definition """defines the type of the object of the slot. Given the following slot definition + S1: + domain: C1 + range: C2 +the declaration + X: + S1: Y + +implicitly asserts Y is an instance of C2 +""" ; + skos:inScheme linkml:meta ; + skos:note "range is underspecified, as not all elements can appear as the range of a slot.", + "to use a URI or CURIE as the range, create a class with the URI or curie as the class_uri" . linkml:rank a owl:ObjectProperty, linkml:SlotDefinition ; @@ -3159,6 +3525,18 @@ linkml:source_ontology a owl:ObjectProperty, skos:note "examples include schema.org, wikidata, or an OBO ontology", "for obo ontologies we recommend CURIEs of the form obo:cl, obo:envo, etc" . +linkml:string_serialization a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "string_serialization" ; + rdfs:domain linkml:Definition ; + rdfs:range linkml:String ; + rdfs:seeAlso ; + skos:definition """Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots. +We call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion. +Implementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects +For example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm""" ; + skos:inScheme linkml:meta . + linkml:structured_pattern a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "structured_pattern" ; @@ -3177,134 +3555,81 @@ linkml:union_of a owl:ObjectProperty, skos:editorialNote "this only applies in the OWL generation" ; skos:inScheme linkml:meta . -linkml:ArrayExpression a owl:Class, +linkml:PathExpression a owl:Class, linkml:ClassDefinition ; - rdfs:label "array_expression" ; - bibo:status ; + rdfs:label "path_expression" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:exact_number_dimensions ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:exact_number_dimensions ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:DimensionExpression ; - owl:onProperty linkml:dimensions ], - [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:maximum_number_dimensions ], + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:has_extra_dimensions ], + owl:onProperty linkml:traverse ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:has_extra_dimensions ], + owl:maxCardinality 1 ; + owl:onProperty linkml:any_of ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:has_extra_dimensions ], + owl:onProperty linkml:followed_by ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty linkml:exact_number_dimensions ], + owl:allValuesFrom linkml:PathExpression ; + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:minimum_number_dimensions ], + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty linkml:minimum_number_dimensions ], + owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:onProperty linkml:range_expression ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:maximum_number_dimensions ], + owl:onProperty linkml:all_of ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:minimum_number_dimensions ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:traverse ], [ a owl:Restriction ; - owl:allValuesFrom [ owl:intersectionOf ( [ a rdfs:Datatype ; - owl:unionOf ( linkml:Integer linkml:Boolean ) ] linkml:Anything ) ] ; - owl:onProperty linkml:maximum_number_dimensions ], + owl:allValuesFrom linkml:PathExpression ; + owl:onProperty linkml:any_of ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:dimensions ], - linkml:Annotatable, - linkml:CommonMetadata, - linkml:Extensible ; - skos:definition "defines the dimensions of an array" ; - skos:inScheme linkml:meta . - -linkml:PathExpression a owl:Class, - linkml:ClassDefinition ; - rdfs:label "path_expression" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:followed_by ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:reversed ], [ a owl:Restriction ; owl:allValuesFrom linkml:PathExpression ; - owl:onProperty linkml:followed_by ], + owl:onProperty linkml:none_of ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:none_of ], + owl:onProperty linkml:any_of ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:all_of ], + owl:onProperty linkml:reversed ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:range_expression ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:reversed ], [ a owl:Restriction ; owl:allValuesFrom linkml:PathExpression ; - owl:onProperty linkml:exactly_one_of ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty linkml:followed_by ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:reversed ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:traverse ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:any_of ], + owl:onProperty linkml:all_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:range_expression ], + owl:maxCardinality 1 ; + owl:onProperty linkml:none_of ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:reversed ], + owl:maxCardinality 1 ; + owl:onProperty linkml:range_expression ], [ a owl:Restriction ; owl:allValuesFrom linkml:PathExpression ; owl:onProperty linkml:all_of ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:all_of ], + owl:onProperty linkml:followed_by ], [ a owl:Restriction ; - owl:allValuesFrom linkml:PathExpression ; + owl:minCardinality 0 ; owl:onProperty linkml:none_of ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:any_of ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:range_expression ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:exactly_one_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:PathExpression ; - owl:onProperty linkml:any_of ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:exactly_one_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:traverse ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:traverse ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:none_of ], + owl:onProperty linkml:reversed ], linkml:Annotatable, linkml:CommonMetadata, linkml:Expression, @@ -3316,53 +3641,53 @@ linkml:ReachabilityQuery a owl:Class, linkml:ClassDefinition ; rdfs:label "reachability_query" ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:is_direct ], + [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty linkml:source_nodes ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:traverse_up ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:relationship_types ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:source_nodes ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:is_direct ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:traverse_up ], + owl:onProperty linkml:source_ontology ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:relationship_types ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:include_self ], + owl:onProperty linkml:is_direct ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty linkml:source_ontology ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:include_self ], + owl:onProperty linkml:is_direct ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:include_self ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:is_direct ], + owl:onProperty linkml:source_nodes ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:include_self ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:relationship_types ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:source_ontology ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:is_direct ], + owl:onProperty linkml:traverse_up ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:source_ontology ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:traverse_up ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:traverse_up ] ; + owl:onProperty linkml:include_self ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:relationship_types ] ; skos:definition "A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types." ; skos:inScheme linkml:meta . @@ -3392,7 +3717,6 @@ linkml:PresenceEnum a owl:Class, linkml:mixins a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "mixins" ; - rdfs:domain linkml:Definition ; rdfs:range linkml:Definition ; rdfs:seeAlso ; skos:altLabel "traits" ; @@ -3401,17 +3725,48 @@ linkml:mixins a owl:ObjectProperty, skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" ; sh:order 13 . +linkml:range_expression a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "range_expression" ; + bibo:status ; + rdfs:domain linkml:SlotExpression ; + rdfs:range linkml:AnonymousClassExpression ; + skos:definition "A range that is described as a boolean expression combining existing ranges" ; + skos:inScheme linkml:meta ; + skos:note "one use for this is being able to describe a range using any_of expressions, for example to combine two enums" . + +linkml:unit a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "unit" ; + rdfs:range linkml:UnitOfMeasure ; + skos:definition "an encoding of a unit" ; + skos:inScheme linkml:units . + +linkml:AliasPredicateEnum a owl:Class, + linkml:EnumDefinition ; + owl:unionOf ( skos:exactMatch skos:relatedMatch skos:broaderMatch skos:narrowerMatch ) ; + linkml:permissible_values skos:broaderMatch, + skos:exactMatch, + skos:narrowerMatch, + skos:relatedMatch . + +linkml:Anything a owl:Class, + linkml:ClassDefinition ; + rdfs:label "Anything" ; + skos:exactMatch linkml:Any ; + skos:inScheme linkml:meta . + linkml:EnumDefinition a owl:Class, linkml:ClassDefinition ; rdfs:label "enum_definition" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; + owl:maxCardinality 1 ; owl:onProperty linkml:enum_uri ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty linkml:enum_uri ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty linkml:enum_uri ], linkml:Definition, linkml:EnumExpression ; @@ -3433,303 +3788,380 @@ linkml:EnumDefinition a owl:Class, skos:inScheme linkml:meta ; sh:order 5 . -linkml:unit a owl:ObjectProperty, +linkml:extensions a owl:ObjectProperty, linkml:SlotDefinition ; - rdfs:label "unit" ; - rdfs:range linkml:UnitOfMeasure ; - skos:definition "an encoding of a unit" ; - skos:inScheme linkml:units . + rdfs:label "extensions" ; + rdfs:domain linkml:Extensible ; + rdfs:range linkml:Extension ; + skos:definition "a tag/text tuple attached to an arbitrary element" ; + skos:inScheme linkml:extensions . -linkml:AliasPredicateEnum a owl:Class, +linkml:list_value_specification_constant a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "list_value_specification_constant" ; + bibo:status ; + skos:definition "Grouping for metamodel slots that constrain members of a multivalued slot value to equal a specified constant" ; + skos:inScheme linkml:meta . + +linkml:ObligationLevelEnum a owl:Class, linkml:EnumDefinition ; - owl:unionOf ( skos:exactMatch skos:relatedMatch skos:broaderMatch skos:narrowerMatch ) ; - linkml:permissible_values skos:broaderMatch, - skos:exactMatch, - skos:narrowerMatch, - skos:relatedMatch . + owl:unionOf ( ) ; + linkml:permissible_values , + , + , + , + . -linkml:Anything a owl:Class, - linkml:ClassDefinition ; - rdfs:label "Anything" ; - skos:exactMatch linkml:Any ; - skos:inScheme linkml:meta . +linkml:RelationalRoleEnum a owl:Class, + linkml:EnumDefinition ; + owl:unionOf ( rdf:subject rdf:object rdf:predicate ) ; + linkml:permissible_values rdf:object, + rdf:predicate, + rdf:subject, + , + . + +linkml:all_of a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "all_of" ; + rdfs:range linkml:Expression ; + rdfs:seeAlso ; + rdfs:subPropertyOf linkml:boolean_slot ; + skos:definition "holds if all of the expressions hold" ; + skos:exactMatch sh:and ; + skos:inScheme linkml:meta ; + sh:order 107 . + +linkml:any_of a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "any_of" ; + rdfs:range linkml:Expression ; + rdfs:seeAlso ; + rdfs:subPropertyOf linkml:boolean_slot ; + skos:definition "holds if at least one of the expressions hold" ; + skos:exactMatch sh:or ; + skos:inScheme linkml:meta ; + sh:order 101 . + +linkml:exactly_one_of a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "exactly_one_of" ; + rdfs:range linkml:Expression ; + rdfs:seeAlso ; + rdfs:subPropertyOf linkml:boolean_slot ; + skos:definition "holds if only one of the expressions hold" ; + skos:exactMatch sh:xone ; + skos:inScheme linkml:meta ; + sh:order 103 . + +linkml:none_of a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "none_of" ; + rdfs:range linkml:Expression ; + rdfs:seeAlso ; + rdfs:subPropertyOf linkml:boolean_slot ; + skos:definition "holds if none of the expressions hold" ; + skos:exactMatch sh:not ; + skos:inScheme linkml:meta ; + sh:order 105 . linkml:CommonMetadata a owl:Class, linkml:ClassDefinition ; rdfs:label "common_metadata" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Example ; - owl:onProperty linkml:examples ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:created_by ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:deprecated ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:in_language ], + owl:minCardinality 0 ; + owl:onProperty linkml:last_updated_on ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:source ], + owl:minCardinality 0 ; + owl:onProperty linkml:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:title ], + owl:onProperty linkml:status ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:imported_from ], + owl:onProperty linkml:close_mappings ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uri ; - owl:onProperty linkml:from_schema ], + owl:maxCardinality 1 ; + owl:onProperty linkml:modified_by ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AltDescription ; - owl:onProperty linkml:alt_descriptions ], + owl:minCardinality 0 ; + owl:onProperty linkml:exact_mappings ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:deprecated ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:categories ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:mappings ], + owl:maxCardinality 1 ; + owl:onProperty linkml:in_language ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:status ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:description ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_exact_replacement ], + owl:maxCardinality 1 ; + owl:onProperty linkml:deprecated_element_has_possible_replacement ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:aliases ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:see_also ], + owl:onProperty linkml:created_by ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:deprecated_element_has_exact_replacement ], + owl:onProperty linkml:from_schema ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:contributors ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:deprecated_element_has_possible_replacement ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:narrow_mappings ], + owl:onProperty linkml:deprecated_element_has_exact_replacement ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:deprecated ], + owl:onProperty linkml:structured_aliases ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:related_mappings ], + owl:onProperty linkml:source ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:status ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:aliases ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:see_also ], + owl:maxCardinality 1 ; + owl:onProperty linkml:deprecated_element_has_exact_replacement ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:created_on ], + owl:onProperty linkml:created_by ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:modified_by ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty linkml:rank ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:broad_mappings ], + owl:minCardinality 0 ; + owl:onProperty linkml:related_mappings ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:in_language ], + owl:onProperty linkml:title ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:keywords ], + owl:allValuesFrom linkml:Uri ; + owl:onProperty linkml:from_schema ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:comments ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:todos ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:title ], + owl:onProperty linkml:last_updated_on ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:categories ], + owl:minCardinality 0 ; + owl:onProperty linkml:created_on ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:broad_mappings ], + owl:onProperty linkml:imported_from ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:exact_mappings ], + owl:minCardinality 0 ; + owl:onProperty linkml:in_subset ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:alt_descriptions ], + owl:onProperty linkml:narrow_mappings ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Example ; + owl:onProperty linkml:examples ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:in_language ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:description ], + owl:onProperty linkml:see_also ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:modified_by ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:status ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:in_subset ], + owl:onProperty linkml:in_language ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:description ], + owl:allValuesFrom linkml:AltDescription ; + owl:onProperty linkml:alt_descriptions ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:contributors ], + owl:onProperty linkml:see_also ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:comments ], + owl:maxCardinality 1 ; + owl:onProperty linkml:title ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:notes ], + owl:onProperty linkml:keywords ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:from_schema ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:title ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:todos ], + owl:onProperty linkml:notes ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:rank ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:SubsetDefinition ; - owl:onProperty linkml:in_subset ], + owl:onProperty linkml:status ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:last_updated_on ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Datetime ; - owl:onProperty linkml:last_updated_on ], + owl:onProperty linkml:description ], [ a owl:Restriction ; owl:allValuesFrom linkml:Datetime ; owl:onProperty linkml:created_on ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:last_updated_on ], + owl:onProperty linkml:examples ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:from_schema ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:deprecated_element_has_exact_replacement ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:keywords ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:related_mappings ], + owl:onProperty linkml:broad_mappings ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:mappings ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:imported_from ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:narrow_mappings ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:mappings ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:close_mappings ], [ a owl:Restriction ; owl:allValuesFrom linkml:StructuredAlias ; owl:onProperty linkml:structured_aliases ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:exact_mappings ], + owl:onProperty linkml:categories ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:close_mappings ], + owl:maxCardinality 1 ; + owl:onProperty linkml:source ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:modified_by ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:imported_from ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:source ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:comments ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:contributors ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:deprecated_element_has_possible_replacement ], + owl:onProperty linkml:created_on ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:mappings ], + owl:onProperty linkml:deprecated ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_possible_replacement ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:title ], + owl:onProperty linkml:categories ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:created_by ], + owl:minCardinality 0 ; + owl:onProperty linkml:broad_mappings ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:deprecated ], + owl:allValuesFrom linkml:Datetime ; + owl:onProperty linkml:last_updated_on ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:deprecated_element_has_possible_replacement ], + owl:onProperty linkml:alt_descriptions ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; + owl:minCardinality 0 ; owl:onProperty linkml:rank ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:description ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:notes ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:structured_aliases ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:narrow_mappings ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:created_on ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:modified_by ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:aliases ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:status ], + owl:onProperty linkml:exact_mappings ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty linkml:rank ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:keywords ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:source ], + owl:onProperty linkml:deprecated_element_has_possible_replacement ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:source ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:from_schema ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:examples ], + owl:onProperty linkml:related_mappings ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:todos ], + owl:allValuesFrom linkml:SubsetDefinition ; + owl:onProperty linkml:in_subset ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:close_mappings ], + owl:onProperty linkml:created_by ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:created_by ] ; + owl:onProperty linkml:contributors ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:todos ] ; skos:definition "Generic metadata shared across definitions" ; skos:inScheme linkml:meta . +linkml:Expression a owl:Class, + linkml:ClassDefinition ; + rdfs:label "expression" ; + skos:definition "general mixin for any class that can represent some form of expression" ; + skos:inScheme linkml:meta . + +linkml:PvFormulaOptions a owl:Class, + linkml:EnumDefinition ; + owl:unionOf ( ) ; + linkml:permissible_values , + , + , + , + . + linkml:TypeDefinition a owl:Class, linkml:ClassDefinition ; rdfs:label "type_definition" ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:union_of ], + owl:onProperty linkml:type_uri ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:String ; owl:onProperty linkml:repr ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:type_uri ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:repr ], + owl:onProperty linkml:base ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:base ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 0 ; owl:onProperty linkml:repr ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:base ], + owl:maxCardinality 1 ; + owl:onProperty linkml:repr ], [ a owl:Restriction ; owl:allValuesFrom linkml:TypeDefinition ; owl:onProperty linkml:union_of ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:type_uri ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:union_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:TypeDefinition ; owl:onProperty linkml:typeof ], @@ -3737,16 +4169,10 @@ linkml:TypeDefinition a owl:Class, owl:allValuesFrom linkml:String ; owl:onProperty linkml:base ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:type_uri ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty linkml:typeof ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:type_uri ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty linkml:typeof ], linkml:Element, linkml:TypeExpression ; @@ -3754,224 +4180,124 @@ linkml:TypeDefinition a owl:Class, skos:inScheme linkml:meta ; sh:order 4 . -linkml:extensions a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "extensions" ; - rdfs:domain linkml:Extensible ; - rdfs:range linkml:Extension ; - skos:definition "a tag/text tuple attached to an arbitrary element" ; - skos:inScheme linkml:extensions . - -linkml:list_value_specification_constant a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "list_value_specification_constant" ; - bibo:status ; - skos:definition "Grouping for metamodel slots that constrain members of a multivalued slot value to equal a specified constant" ; - skos:inScheme linkml:meta . - -linkml:Expression a owl:Class, - linkml:ClassDefinition ; - rdfs:label "expression" ; - skos:definition "general mixin for any class that can represent some form of expression" ; - skos:inScheme linkml:meta . - -linkml:Extensible a owl:Class, +linkml:EnumExpression a owl:Class, linkml:ClassDefinition ; - rdfs:label "extensible" ; + rdfs:label "enum_expression" ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:extensions ], + owl:onProperty linkml:minus ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Extension ; - owl:onProperty linkml:extensions ] ; - skos:definition "mixin for classes that support extension" ; - skos:inScheme linkml:extensions . - -linkml:PvFormulaOptions a owl:Class, - linkml:EnumDefinition ; - owl:unionOf ( ) ; - linkml:permissible_values , - , - , - , - . - -linkml:RelationalRoleEnum a owl:Class, - linkml:EnumDefinition ; - owl:unionOf ( rdf:subject rdf:object rdf:predicate ) ; - linkml:permissible_values rdf:object, - rdf:predicate, - rdf:subject, - , - . - -linkml:all_of a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "all_of" ; - rdfs:range linkml:Expression ; - rdfs:seeAlso ; - rdfs:subPropertyOf linkml:boolean_slot ; - skos:definition "holds if all of the expressions hold" ; - skos:exactMatch sh:and ; - skos:inScheme linkml:meta ; - sh:order 107 . - -linkml:any_of a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "any_of" ; - rdfs:range linkml:Expression ; - rdfs:seeAlso ; - rdfs:subPropertyOf linkml:boolean_slot ; - skos:definition "holds if at least one of the expressions hold" ; - skos:exactMatch sh:or ; - skos:inScheme linkml:meta ; - sh:order 101 . - -linkml:exactly_one_of a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "exactly_one_of" ; - rdfs:range linkml:Expression ; - rdfs:seeAlso ; - rdfs:subPropertyOf linkml:boolean_slot ; - skos:definition "holds if only one of the expressions hold" ; - skos:exactMatch sh:xone ; - skos:inScheme linkml:meta ; - sh:order 103 . - -linkml:none_of a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "none_of" ; - rdfs:range linkml:Expression ; - rdfs:seeAlso ; - rdfs:subPropertyOf linkml:boolean_slot ; - skos:definition "holds if none of the expressions hold" ; - skos:exactMatch sh:not ; - skos:inScheme linkml:meta ; - sh:order 105 . - -linkml:Annotatable a owl:Class, - linkml:ClassDefinition ; - rdfs:label "annotatable" ; - rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:annotations ], + owl:onProperty linkml:code_set_version ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Annotation ; - owl:onProperty linkml:annotations ] ; - skos:definition "mixin for classes that support annotations" ; - skos:inScheme linkml:annotations . - -linkml:AnonymousClassExpression a owl:Class, - linkml:ClassDefinition ; - rdfs:label "anonymous_class_expression" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:is_a ], + owl:allValuesFrom linkml:PermissibleValue ; + owl:onProperty linkml:permissible_values ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:is_a ], + owl:minCardinality 0 ; + owl:onProperty linkml:code_set_tag ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Definition ; - owl:onProperty linkml:is_a ], - linkml:AnonymousExpression, - linkml:ClassExpression ; - skos:inScheme linkml:meta . - -linkml:EnumExpression a owl:Class, - linkml:ClassDefinition ; - rdfs:label "enum_expression" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:MatchQuery ; - owl:onProperty linkml:matches ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:code_set_version ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:ReachabilityQuery ; owl:onProperty linkml:reachable_from ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:matches ], + owl:onProperty linkml:inherits ], [ a owl:Restriction ; owl:allValuesFrom linkml:EnumDefinition ; owl:onProperty linkml:inherits ], [ a owl:Restriction ; - owl:allValuesFrom linkml:PermissibleValue ; - owl:onProperty linkml:permissible_values ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty linkml:code_set ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:code_set ], + owl:onProperty linkml:include ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:code_set_version ], + owl:allValuesFrom linkml:PvFormulaOptions ; + owl:onProperty linkml:pv_formula ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty linkml:matches ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:permissible_values ], + owl:onProperty linkml:code_set ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:reachable_from ], + owl:allValuesFrom linkml:MatchQuery ; + owl:onProperty linkml:matches ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:code_set_tag ], + owl:allValuesFrom linkml:AnonymousEnumExpression ; + owl:onProperty linkml:include ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:code_set_tag ], + owl:onProperty linkml:code_set ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:pv_formula ], + owl:onProperty linkml:concepts ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:code_set_version ], + owl:allValuesFrom linkml:AnonymousEnumExpression ; + owl:onProperty linkml:minus ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:code_set ], + owl:maxCardinality 1 ; + owl:onProperty linkml:reachable_from ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:include ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:ReachabilityQuery ; owl:onProperty linkml:reachable_from ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:code_set_tag ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:PvFormulaOptions ; - owl:onProperty linkml:pv_formula ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:concepts ], + owl:onProperty linkml:pv_formula ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousEnumExpression ; - owl:onProperty linkml:include ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:code_set_tag ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousEnumExpression ; - owl:onProperty linkml:minus ], + owl:maxCardinality 1 ; + owl:onProperty linkml:code_set_version ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:inherits ], + owl:onProperty linkml:permissible_values ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:pv_formula ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:minus ], + owl:onProperty linkml:matches ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty linkml:concepts ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:code_set_version ], + owl:maxCardinality 1 ; + owl:onProperty linkml:code_set_tag ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:pv_formula ], linkml:Expression ; skos:definition "An expression that constrains the range of a slot" ; skos:inScheme linkml:meta . +linkml:Extensible a owl:Class, + linkml:ClassDefinition ; + rdfs:label "extensible" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:Extension ; + owl:onProperty linkml:extensions ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:extensions ] ; + skos:definition "mixin for classes that support extension" ; + skos:inScheme linkml:extensions . + +linkml:Annotatable a owl:Class, + linkml:ClassDefinition ; + rdfs:label "annotatable" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:annotations ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Annotation ; + owl:onProperty linkml:annotations ] ; + skos:definition "mixin for classes that support annotations" ; + skos:inScheme linkml:annotations . + linkml:is_a a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "is_a" ; - rdfs:domain linkml:Definition ; rdfs:range linkml:Definition ; skos:definition "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded" ; skos:inScheme linkml:meta ; @@ -3988,317 +4314,339 @@ linkml:mappings a owl:ObjectProperty, skos:definition "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; skos:inScheme linkml:mappings . -linkml:SchemaDefinition a owl:Class, +linkml:AnonymousClassExpression a owl:Class, linkml:ClassDefinition ; - rdfs:label "schema_definition" ; - rdfs:seeAlso ; + rdfs:label "anonymous_class_expression" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Datetime ; - owl:onProperty linkml:generation_date ], + owl:maxCardinality 1 ; + owl:onProperty linkml:is_a ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:generation_date ], + owl:onProperty linkml:is_a ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SubsetDefinition ; - owl:onProperty linkml:subsets ], + owl:allValuesFrom linkml:Definition ; + owl:onProperty linkml:is_a ], + linkml:AnonymousExpression, + linkml:ClassExpression ; + skos:inScheme linkml:meta . + +linkml:Definition a owl:Class, + linkml:ClassDefinition ; + rdfs:label "definition" ; + rdfs:seeAlso ; + rdfs:subClassOf [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:string_serialization ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:slot_names_unique ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:string_serialization ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:mixin ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:imports ], + owl:onProperty linkml:values_from ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:default_prefix ], + owl:onProperty linkml:is_a ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:source_file_date ], + owl:allValuesFrom linkml:Definition ; + owl:onProperty linkml:is_a ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:slot_names_unique ], + owl:onProperty linkml:string_serialization ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uri ; - owl:onProperty linkml:id ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:values_from ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:metamodel_version ], + owl:allValuesFrom linkml:Definition ; + owl:onProperty linkml:mixins ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:slot_definitions ], + owl:onProperty linkml:is_a ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:source_file_size ], + owl:minCardinality 0 ; + owl:onProperty linkml:abstract ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:classes ], + owl:onProperty linkml:mixin ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:source_file_date ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:mixin ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:license ], + owl:minCardinality 0 ; + owl:onProperty linkml:apply_to ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Ncname ; - owl:onProperty linkml:emit_prefixes ], + owl:allValuesFrom linkml:Definition ; + owl:onProperty linkml:apply_to ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:imports ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:abstract ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:enums ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:metamodel_version ], + owl:onProperty linkml:mixins ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:id ], + owl:onProperty linkml:abstract ], + linkml:Element ; + skos:definition "abstract base class for core metaclasses" ; + skos:inScheme linkml:meta . + +linkml:SchemaDefinition a owl:Class, + linkml:ClassDefinition ; + rdfs:label "schema_definition" ; + rdfs:seeAlso ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:EnumDefinition ; + owl:onProperty linkml:enums ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty linkml:default_curi_maps ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; owl:onProperty linkml:source_file ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:TypeDefinition ; + owl:onProperty linkml:types ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:id ], [ a owl:Restriction ; owl:allValuesFrom linkml:Ncname ; owl:onProperty linkml:name ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:version ], + owl:maxCardinality 1 ; + owl:onProperty linkml:name ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty linkml:source_file_size ], + owl:allValuesFrom linkml:Datetime ; + owl:onProperty linkml:source_file_date ], [ a owl:Restriction ; - owl:allValuesFrom linkml:TypeDefinition ; - owl:onProperty linkml:default_range ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:slot_definitions ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:name ], + owl:allValuesFrom linkml:Datetime ; + owl:onProperty linkml:generation_date ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:prefixes ], + owl:onProperty linkml:source_file_size ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:imports ], [ a owl:Restriction ; owl:allValuesFrom linkml:Setting ; owl:onProperty linkml:settings ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:metamodel_version ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:default_range ], + owl:allValuesFrom linkml:Uri ; + owl:onProperty linkml:id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:emit_prefixes ], + owl:onProperty linkml:classes ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Datetime ; + owl:maxCardinality 1 ; owl:onProperty linkml:source_file_date ], [ a owl:Restriction ; - owl:allValuesFrom linkml:TypeDefinition ; - owl:onProperty linkml:types ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty linkml:source_file_size ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:settings ], + owl:onProperty linkml:default_range ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Ncname ; + owl:onProperty linkml:emit_prefixes ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:types ], + owl:onProperty linkml:default_prefix ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:version ], + owl:onProperty linkml:bindings ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty linkml:name ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:default_curi_maps ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:source_file ], + owl:onProperty linkml:generation_date ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Prefix ; + owl:onProperty linkml:prefixes ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:license ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:license ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:source_file_size ], + owl:onProperty linkml:generation_date ], [ a owl:Restriction ; - owl:allValuesFrom linkml:EnumDefinition ; - owl:onProperty linkml:enums ], + owl:allValuesFrom linkml:SubsetDefinition ; + owl:onProperty linkml:subsets ], [ a owl:Restriction ; - owl:allValuesFrom linkml:ClassDefinition ; - owl:onProperty linkml:classes ], + owl:maxCardinality 1 ; + owl:onProperty linkml:source_file ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:default_prefix ], + owl:maxCardinality 1 ; + owl:onProperty linkml:slot_names_unique ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty linkml:default_curi_maps ], + owl:onProperty linkml:license ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:default_prefix ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:default_curi_maps ], + owl:onProperty linkml:emit_prefixes ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:source_file ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:slot_names_unique ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:default_prefix ], + owl:minCardinality 0 ; + owl:onProperty linkml:slot_names_unique ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty linkml:id ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:generation_date ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:default_range ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty linkml:license ], + owl:onProperty linkml:metamodel_version ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:subsets ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:slot_definitions ], + owl:onProperty linkml:source_file ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:slot_names_unique ], + owl:minCardinality 0 ; + owl:onProperty linkml:types ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:String ; owl:onProperty linkml:version ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Prefix ; - owl:onProperty linkml:prefixes ], - linkml:Element ; - skos:altLabel "data dictionary", - "data model", - "information model", - "logical model", - "model", - "schema" ; - skos:closeMatch qb:ComponentSet, - owl:Ontology ; - skos:definition "A collection of definitions that make up a schema or a data model." ; - skos:inScheme linkml:meta ; - sh:order 1 . - -linkml:Definition a owl:Class, - linkml:ClassDefinition ; - rdfs:label "definition" ; - rdfs:seeAlso ; - rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:mixin ], + owl:onProperty linkml:metamodel_version ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:string_serialization ], + owl:minCardinality 1 ; + owl:onProperty linkml:name ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Definition ; - owl:onProperty linkml:is_a ], + owl:minCardinality 0 ; + owl:onProperty linkml:settings ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:mixin ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:string_serialization ], + owl:onProperty linkml:source_file_size ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:is_a ], + owl:onProperty linkml:version ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:abstract ], + owl:onProperty linkml:version ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:string_serialization ], + owl:onProperty linkml:metamodel_version ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Definition ; - owl:onProperty linkml:mixins ], + owl:allValuesFrom linkml:EnumBinding ; + owl:onProperty linkml:bindings ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:mixins ], + owl:onProperty linkml:subsets ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:mixin ], + owl:allValuesFrom linkml:ClassDefinition ; + owl:onProperty linkml:classes ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:abstract ], + owl:minCardinality 0 ; + owl:onProperty linkml:enums ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:values_from ], + owl:onProperty linkml:slot_definitions ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:TypeDefinition ; + owl:onProperty linkml:default_range ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:default_prefix ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:is_a ], + owl:onProperty linkml:default_range ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:apply_to ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:values_from ], + owl:onProperty linkml:prefixes ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:abstract ], + owl:onProperty linkml:source_file_date ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Definition ; - owl:onProperty linkml:apply_to ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:imports ], linkml:Element ; - skos:definition "abstract base class for core metaclasses" ; - skos:inScheme linkml:meta . + skos:altLabel "data dictionary", + "data model", + "information model", + "logical model", + "model", + "schema" ; + skos:closeMatch qb:ComponentSet, + owl:Ontology ; + skos:definition "A collection of definitions that make up a schema or a data model." ; + skos:inScheme linkml:meta ; + sh:order 1 . linkml:Element a owl:Class, linkml:ClassDefinition ; rdfs:label "element" ; rdfs:seeAlso ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:id_prefixes ], + owl:maxCardinality 1 ; + owl:onProperty linkml:id_prefixes_are_closed ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:conforms_to ], [ a owl:Restriction ; - owl:allValuesFrom linkml:LocalName ; - owl:onProperty linkml:local_names ], - [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; owl:onProperty linkml:name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:instantiates ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:conforms_to ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:local_names ], + owl:onProperty linkml:definition_uri ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty linkml:instantiates ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:implements ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:id_prefixes_are_closed ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:id_prefixes_are_closed ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:definition_uri ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:conforms_to ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:definition_uri ], + owl:minCardinality 1 ; + owl:onProperty linkml:name ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:implements ], [ a owl:Restriction ; owl:allValuesFrom linkml:Ncname ; owl:onProperty linkml:id_prefixes ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:implements ], + owl:onProperty linkml:id_prefixes_are_closed ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:definition_uri ], + owl:onProperty linkml:id_prefixes ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:Boolean ; owl:onProperty linkml:id_prefixes_are_closed ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:conforms_to ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:LocalName ; + owl:onProperty linkml:local_names ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:local_names ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:name ], + owl:onProperty linkml:conforms_to ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:instantiates ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:name ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:definition_uri ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:definition_uri ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:implements ], linkml:Annotatable, linkml:CommonMetadata, linkml:Extensible ; @@ -4312,31 +4660,49 @@ linkml:ClassDefinition a owl:Class, rdfs:label "class_definition" ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:slot_names_unique ], + owl:onProperty linkml:slots ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:tree_root ], + owl:onProperty linkml:children_are_mutually_disjoint ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:slot_usage ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:children_are_mutually_disjoint ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:class_uri ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:slot_names_unique ], [ a owl:Restriction ; - owl:allValuesFrom linkml:ClassRule ; - owl:onProperty linkml:rules ], + owl:allValuesFrom linkml:ClassDefinition ; + owl:onProperty linkml:apply_to ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:apply_to ], [ a owl:Restriction ; - owl:allValuesFrom linkml:UniqueKey ; - owl:onProperty linkml:unique_keys ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:subclass_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:attributes ], + owl:maxCardinality 1 ; + owl:onProperty linkml:slot_names_unique ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:extra_slots ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:ExtraSlotsExpression ; + owl:onProperty linkml:extra_slots ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:attributes ], + owl:onProperty linkml:defining_slots ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:slot_usage ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:tree_root ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:subclass_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:represents_relationship ], [ a owl:Restriction ; owl:allValuesFrom linkml:ClassDefinition ; owl:onProperty linkml:disjoint_with ], @@ -4344,14 +4710,14 @@ linkml:ClassDefinition a owl:Class, owl:allValuesFrom linkml:AnonymousClassExpression ; owl:onProperty linkml:classification_rules ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:children_are_mutually_disjoint ], + owl:minCardinality 0 ; + owl:onProperty linkml:class_uri ], [ a owl:Restriction ; - owl:allValuesFrom linkml:ClassDefinition ; - owl:onProperty linkml:apply_to ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:slots ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:classification_rules ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:class_uri ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:mixins ], @@ -4359,86 +4725,77 @@ linkml:ClassDefinition a owl:Class, owl:minCardinality 0 ; owl:onProperty linkml:rules ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty linkml:represents_relationship ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:slots ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:is_a ], + owl:onProperty linkml:union_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:class_uri ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:defining_slots ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:represents_relationship ], + owl:allValuesFrom linkml:UniqueKey ; + owl:onProperty linkml:unique_keys ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:tree_root ], + owl:onProperty linkml:class_uri ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:tree_root ], + owl:minCardinality 0 ; + owl:onProperty linkml:subclass_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:slot_names_unique ], + owl:allValuesFrom linkml:ClassDefinition ; + owl:onProperty linkml:mixins ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:slot_usage ], + owl:onProperty linkml:classification_rules ], [ a owl:Restriction ; owl:allValuesFrom linkml:ClassDefinition ; - owl:onProperty linkml:is_a ], + owl:onProperty linkml:union_of ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:slot_names_unique ], [ a owl:Restriction ; owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:slots ], + owl:onProperty linkml:attributes ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:slot_names_unique ], + owl:onProperty linkml:children_are_mutually_disjoint ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:defining_slots ], + owl:onProperty linkml:tree_root ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:subclass_of ], + owl:allValuesFrom linkml:ClassRule ; + owl:onProperty linkml:rules ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:represents_relationship ], + owl:maxCardinality 1 ; + owl:onProperty linkml:is_a ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:unique_keys ], + owl:onProperty linkml:attributes ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:subclass_of ], + owl:minCardinality 0 ; + owl:onProperty linkml:is_a ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:defining_slots ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:tree_root ], [ a owl:Restriction ; owl:allValuesFrom linkml:ClassDefinition ; - owl:onProperty linkml:union_of ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:children_are_mutually_disjoint ], + owl:onProperty linkml:is_a ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:class_uri ], + owl:onProperty linkml:unique_keys ], [ a owl:Restriction ; - owl:allValuesFrom linkml:ClassDefinition ; - owl:onProperty linkml:mixins ], + owl:maxCardinality 1 ; + owl:onProperty linkml:represents_relationship ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:is_a ], + owl:onProperty linkml:extra_slots ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:disjoint_with ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:children_are_mutually_disjoint ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:subclass_of ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:union_of ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:slot_usage ], linkml:ClassExpression, linkml:Definition ; skos:altLabel "message", @@ -4485,359 +4842,347 @@ linkml:SlotDefinition a owl:Class, linkml:ClassDefinition ; rdfs:label "slot_definition" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:multivalued ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:singular_name ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:union_of ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:relational_role ], + owl:onProperty linkml:is_class_field ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:apply_to ], + owl:onProperty linkml:locally_reflexive ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:role ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:subproperty_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty linkml:ifabsent ], + owl:onProperty linkml:reflexive_transitive_form_of ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:usage_slot_name ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:mixins ], + owl:onProperty linkml:list_elements_ordered ], [ a owl:Restriction ; - owl:allValuesFrom linkml:ClassDefinition ; - owl:onProperty linkml:domain_of ], + owl:maxCardinality 1 ; + owl:onProperty linkml:transitive_form_of ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:list_elements_unique ], + owl:onProperty linkml:alias ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:usage_slot_name ], + owl:maxCardinality 1 ; + owl:onProperty linkml:inverse ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:is_a ], + owl:maxCardinality 1 ; + owl:onProperty linkml:owner ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; owl:onProperty linkml:singular_name ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:transitive ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:role ], + owl:onProperty linkml:inherited ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:locally_reflexive ], + owl:onProperty linkml:is_usage_slot ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:apply_to ], + owl:maxCardinality 1 ; + owl:onProperty linkml:role ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:domain ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:mixins ], + owl:onProperty linkml:list_elements_unique ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:reflexive ], + owl:maxCardinality 1 ; + owl:onProperty linkml:transitive ], [ a owl:Restriction ; owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:is_usage_slot ], + owl:onProperty linkml:inherited ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:shared ], + owl:onProperty linkml:relational_role ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:symmetric ], + owl:onProperty linkml:usage_slot_name ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:list_elements_ordered ], + owl:allValuesFrom linkml:ClassDefinition ; + owl:onProperty linkml:domain_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:designates_type ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:reflexive ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:designates_type ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:asymmetric ], + owl:onProperty linkml:reflexive ], [ a owl:Restriction ; owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:is_a ], + owl:onProperty linkml:apply_to ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:inverse ], + owl:onProperty linkml:asymmetric ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:identifier ], + owl:minCardinality 0 ; + owl:onProperty linkml:transitive ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:is_class_field ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:usage_slot_name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:designates_type ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:symmetric ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:disjoint_with ], + owl:onProperty linkml:children_are_mutually_disjoint ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:is_usage_slot ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:union_of ], + owl:onProperty linkml:alias ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:domain ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:is_usage_slot ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:readonly ], + owl:onProperty linkml:identifier ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:alias ], + owl:onProperty linkml:slot_uri ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:transitive ], + owl:onProperty linkml:path_rule ], [ a owl:Restriction ; owl:allValuesFrom linkml:SlotDefinition ; owl:onProperty linkml:disjoint_with ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:list_elements_unique ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:key ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:readonly ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:array ], + owl:onProperty linkml:is_grouping_slot ], [ a owl:Restriction ; owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:inherited ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:slot_group ], + owl:onProperty linkml:key ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:path_rule ], + owl:onProperty linkml:list_elements_unique ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty linkml:key ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:slot_group ], + owl:onProperty linkml:is_a ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:irreflexive ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:ifabsent ], + owl:onProperty linkml:readonly ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:role ], + owl:onProperty linkml:symmetric ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty linkml:is_class_field ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:reflexive ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:locally_reflexive ], + owl:onProperty linkml:slot_group ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:shared ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:slot_group ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:designates_type ], + owl:onProperty linkml:irreflexive ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:symmetric ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:transitive_form_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:PathExpression ; + owl:onProperty linkml:path_rule ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:asymmetric ], + owl:onProperty linkml:union_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:children_are_mutually_disjoint ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:role ], [ a owl:Restriction ; owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:is_grouping_slot ], + owl:onProperty linkml:children_are_mutually_disjoint ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:usage_slot_name ], + owl:onProperty linkml:reflexive_transitive_form_of ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:list_elements_ordered ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty linkml:key ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:irreflexive ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:children_are_mutually_disjoint ], + owl:onProperty linkml:disjoint_with ], [ a owl:Restriction ; - owl:allValuesFrom linkml:ClassDefinition ; - owl:onProperty linkml:domain ], + owl:minCardinality 0 ; + owl:onProperty linkml:identifier ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:slot_group ], + owl:onProperty linkml:locally_reflexive ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:inverse ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Boolean ; owl:onProperty linkml:is_grouping_slot ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:path_rule ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:domain_of ], + owl:onProperty linkml:ifabsent ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:transitive ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:path_rule ], + owl:onProperty linkml:domain_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:multivalued ], + owl:onProperty linkml:list_elements_unique ], [ a owl:Restriction ; owl:allValuesFrom linkml:Boolean ; - owl:onProperty linkml:shared ], + owl:onProperty linkml:designates_type ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:reflexive_transitive_form_of ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:locally_reflexive ], + owl:onProperty linkml:shared ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:alias ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:slot_uri ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:RelationalRoleEnum ; - owl:onProperty linkml:relational_role ], + owl:onProperty linkml:inverse ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:transitive ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:is_a ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:owner ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:slot_uri ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:reflexive_transitive_form_of ], + owl:onProperty linkml:is_usage_slot ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:relational_role ], + owl:onProperty linkml:subproperty_of ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:is_grouping_slot ], + owl:onProperty linkml:slot_uri ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:domain ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:identifier ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:transitive_form_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; owl:onProperty linkml:asymmetric ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:owner ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:list_elements_ordered ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:reflexive ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:mixins ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:irreflexive ], + owl:allValuesFrom linkml:ClassDefinition ; + owl:onProperty linkml:domain ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:reflexive_transitive_form_of ], + owl:onProperty linkml:ifabsent ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty linkml:list_elements_unique ], + owl:allValuesFrom linkml:Definition ; + owl:onProperty linkml:owner ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:list_elements_ordered ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:identifier ], + owl:onProperty linkml:is_a ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Definition ; - owl:onProperty linkml:owner ], + owl:maxCardinality 1 ; + owl:onProperty linkml:designates_type ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:asymmetric ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:union_of ], + owl:onProperty linkml:owner ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:inherited ], + owl:onProperty linkml:apply_to ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:subproperty_of ], + owl:minCardinality 0 ; + owl:onProperty linkml:domain ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:readonly ], + owl:onProperty linkml:slot_group ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:irreflexive ], + owl:minCardinality 0 ; + owl:onProperty linkml:type_mappings ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:identifier ], + owl:onProperty linkml:usage_slot_name ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty linkml:symmetric ], + owl:onProperty linkml:readonly ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:is_class_field ], + owl:minCardinality 0 ; + owl:onProperty linkml:reflexive_transitive_form_of ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty linkml:inherited ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:is_a ], + owl:minCardinality 0 ; + owl:onProperty linkml:mixins ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:array ], + owl:allValuesFrom linkml:TypeMapping ; + owl:onProperty linkml:type_mappings ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:children_are_mutually_disjoint ], + owl:onProperty linkml:subproperty_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:transitive_form_of ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:alias ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:transitive_form_of ], + owl:onProperty linkml:singular_name ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:subproperty_of ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:slot_uri ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty linkml:singular_name ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:shared ], [ a owl:Restriction ; - owl:allValuesFrom linkml:ArrayExpression ; - owl:onProperty linkml:array ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:ifabsent ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:inverse ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:locally_reflexive ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:singular_name ], + owl:onProperty linkml:readonly ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:subproperty_of ], + owl:onProperty linkml:irreflexive ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:multivalued ], + owl:onProperty linkml:transitive_form_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:PathExpression ; - owl:onProperty linkml:path_rule ], + owl:maxCardinality 1 ; + owl:onProperty linkml:children_are_mutually_disjoint ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:slot_uri ], + owl:minCardinality 0 ; + owl:onProperty linkml:symmetric ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:alias ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty linkml:is_class_field ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:is_usage_slot ], + owl:onProperty linkml:reflexive ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty linkml:inverse ], + owl:onProperty linkml:is_grouping_slot ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty linkml:ifabsent ], + owl:onProperty linkml:role ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty linkml:shared ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty linkml:relational_role ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:RelationalRoleEnum ; + owl:onProperty linkml:relational_role ], linkml:Definition, linkml:SlotExpression ; skos:altLabel "attribute", diff --git a/linkml_model/prefixmap/meta.yaml b/linkml_model/prefixmap/meta.yaml index fab7ffee..0e7bf6d1 100644 --- a/linkml_model/prefixmap/meta.yaml +++ b/linkml_model/prefixmap/meta.yaml @@ -4,7 +4,9 @@ "OIO": "http://www.geneontology.org/formats/oboInOwl#", "SIO": "http://semanticscience.org/resource/SIO_", "bibo": "http://purl.org/ontology/bibo/", + "cc": "http://creativecommons.org/ns#", "cdisc": "http://rdf.cdisc.org/mms#", + "dc": "http://purl.org/dc/terms/", "dcterms": "http://purl.org/dc/terms/", "linkml": "https://w3id.org/linkml/", "oslc": "http://open-services.net/ns/core#", diff --git a/linkml_model/protobuf/meta.proto b/linkml_model/protobuf/meta.proto index 454e6ed5..cc75e01e 100644 --- a/linkml_model/protobuf/meta.proto +++ b/linkml_model/protobuf/meta.proto @@ -111,8 +111,10 @@ message AnonymousSlotExpression element range = 0 anonymousClassExpression rangeExpression = 0 enumExpression enumRange = 0 + repeated enumBinding bindings = 0 boolean required = 8 boolean recommended = 9 + boolean multivalued = 7 boolean inlined = 25 boolean inlinedAsList = 27 anything minimumValue = 0 @@ -135,6 +137,7 @@ message AnonymousSlotExpression repeated anonymousSlotExpression exactlyOneOf = 103 repeated anonymousSlotExpression anyOf = 101 repeated anonymousSlotExpression allOf = 107 + arrayExpression array = 0 } // A type expression that is not a top-level named type definition. Used for nesting. message AnonymousTypeExpression @@ -159,7 +162,6 @@ message ArrayExpression integer exactNumberDimensions = 0 integer minimumNumberDimensions = 0 anything maximumNumberDimensions = 0 - boolean hasExtraDimensions = 0 repeated dimensionExpression dimensions = 0 repeated extension extensions = 0 repeated annotation annotations = 0 @@ -262,6 +264,7 @@ message ClassDefinition boolean representsRelationship = 0 repeated classDefinition disjointWith = 0 boolean childrenAreMutuallyDisjoint = 0 + extraSlotsExpression extraSlots = 0 classDefinition isA = 11 repeated classDefinition mixins = 13 repeated classDefinition applyTo = 0 @@ -359,6 +362,49 @@ message DimensionExpression repeated uriorcurie categories = 0 repeated string keywords = 0 } +// A binding of a slot or a class to a permissible value from an enumeration. +message EnumBinding + { + enumDefinition range = 0 + obligationLevelEnum obligationLevel = 0 + string bindsValueOf = 0 + pvFormulaOptions pvFormula = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + } // an element whose instances must be drawn from a specified set of permissible values message EnumDefinition { @@ -454,6 +500,15 @@ message Extension anyValue value = 0 repeated extension extensions = 0 } +// An expression that defines how to handle additional data in an instance of class +// beyond the slots/attributes defined for that class. +// See `extra_slots` for usage examples. +// +message ExtraSlotsExpression + { + boolean allowed = 0 + anonymousClassExpression rangeExpression = 0 + } // an expression describing an import message ImportExpression { @@ -604,6 +659,8 @@ message PermissibleValue string description = 5 uriorcurie meaning = 23 unitOfMeasure unit = 0 + repeated uriorcurie instantiates = 0 + repeated uriorcurie implements = 0 permissibleValue isA = 11 repeated permissibleValue mixins = 13 repeated extension extensions = 0 @@ -723,6 +780,7 @@ message SchemaDefinition datetime generationDate = 0 boolean slotNamesUnique = 0 repeated setting settings = 20 + repeated enumBinding bindings = 0 ncname name = 1 } // assignment of a key to a value @@ -784,8 +842,6 @@ message SlotDefinition string singularName = 0 classDefinition domain = 0 uriorcurie slotUri = 2 - boolean multivalued = 7 - arrayExpression array = 0 boolean inherited = 0 string readonly = 0 string ifabsent = 0 @@ -819,14 +875,17 @@ message SlotDefinition repeated slotDefinition disjointWith = 0 boolean childrenAreMutuallyDisjoint = 0 repeated slotDefinition unionOf = 0 + repeated typeMapping typeMappings = 0 slotDefinition isA = 11 repeated slotDefinition mixins = 13 repeated slotDefinition applyTo = 0 element range = 0 anonymousClassExpression rangeExpression = 0 enumExpression enumRange = 0 + repeated enumBinding bindings = 0 boolean required = 8 boolean recommended = 9 + boolean multivalued = 7 boolean inlined = 25 boolean inlinedAsList = 27 anything minimumValue = 0 @@ -849,6 +908,7 @@ message SlotDefinition repeated anonymousSlotExpression exactlyOneOf = 103 repeated anonymousSlotExpression anyOf = 101 repeated anonymousSlotExpression allOf = 107 + arrayExpression array = 0 } // object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.) message StructuredAlias @@ -856,6 +916,7 @@ message StructuredAlias string literalForm = 0 aliasPredicateEnum predicate = 0 repeated uriorcurie categories = 0 + repeated uri contexts = 0 repeated extension extensions = 0 repeated annotation annotations = 0 string description = 5 @@ -1003,6 +1064,48 @@ message TypeDefinition repeated anonymousTypeExpression anyOf = 101 repeated anonymousTypeExpression allOf = 107 } +// Represents how a slot or type can be serialized to a format. +message TypeMapping + { + string framework = 0 + typeDefinition type = 0 + string stringSerialization = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + } // a collection of slots whose values uniquely identify an instance of a class message UniqueKey { diff --git a/linkml_model/shacl/meta.shacl.ttl b/linkml_model/shacl/meta.shacl.ttl index 370a098e..ea0be044 100644 --- a/linkml_model/shacl/meta.shacl.ttl +++ b/linkml_model/shacl/meta.shacl.ttl @@ -29,119 +29,133 @@ linkml:AnonymousExpression a sh:NodeShape ; sh:closed false ; sh:description "An abstract parent class for any nested expression" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 8 ; - sh:path skos:note ], + sh:property [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 23 ; + sh:path skos:relatedMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 22 ; + sh:path skos:closeMatch ], + [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path skos:definition ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path oslc:modifiedBy ], + [ sh:datatype xsd:string ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path dcterms:title ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path linkml:deprecated_element_has_exact_replacement ], [ sh:datatype xsd:anyURI ; sh:description "id of the schema that defined the element" ; sh:maxCount 1 ; sh:order 11 ; sh:path skos:inScheme ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 21 ; - sh:path skos:exactMatch ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 3 ; - sh:path linkml:alt_descriptions ], - [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; - sh:maxCount 1 ; - sh:order 12 ; - sh:path linkml:imported_from ], - [ sh:description "status of the element" ; - sh:maxCount 1 ; - sh:order 31 ; - sh:path bibo:status ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 20 ; - sh:path skos:mappingRelation ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; - sh:nodeKind sh:BlankNode ; - sh:order 19 ; - sh:path skosxl:altLabel ], - [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 34 ; - sh:path schema1:keywords ], [ sh:datatype xsd:string ; sh:description "editorial notes about an element intended primarily for internal consumption" ; sh:order 7 ; sh:path skos:editorialNote ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 15 ; + sh:path rdfs:seeAlso ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 28 ; + sh:path pav:createdOn ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 26 ; + sh:path pav:createdBy ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 32 ; + sh:path sh:order ], [ sh:datatype xsd:string ; sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; sh:order 5 ; sh:path linkml:deprecated ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 20 ; + sh:path skos:mappingRelation ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:alt_descriptions ], [ sh:description "agent that contributed to the element" ; sh:order 27 ; sh:path dcterms:contributor ], - [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path skos:definition ], - [ sh:description "agent that created the element" ; - sh:maxCount 1 ; - sh:order 26 ; - sh:path pav:createdBy ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 16 ; - sh:path linkml:deprecated_element_has_exact_replacement ], - [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 6 ; - sh:path linkml:todos ], [ sh:class linkml:Extension ; sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; sh:order 0 ; sh:path linkml:extensions ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:annotations ], + [ sh:datatype xsd:string ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path linkml:imported_from ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path bibo:status ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 9 ; + sh:path linkml:examples ], [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; sh:order 25 ; sh:path skos:broadMatch ], - [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; - sh:maxCount 1 ; - sh:order 32 ; - sh:path sh:order ], + [ sh:datatype xsd:string ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 6 ; + sh:path linkml:todos ], [ sh:class linkml:SubsetDefinition ; sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; sh:nodeKind sh:IRI ; sh:order 10 ; sh:path OIO:inSubset ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 21 ; + sh:path skos:exactMatch ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 19 ; + sh:path skosxl:altLabel ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 28 ; - sh:path pav:createdOn ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 15 ; - sh:path rdfs:seeAlso ], + sh:order 17 ; + sh:path linkml:deprecated_element_has_possible_replacement ], [ sh:datatype xsd:string ; sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; sh:order 18 ; sh:path skos:altLabel ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 33 ; - sh:path dcterms:subject ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; - sh:nodeKind sh:BlankNode ; - sh:order 1 ; - sh:path linkml:annotations ], - [ sh:description "agent that modified the element" ; - sh:maxCount 1 ; - sh:order 30 ; - sh:path oslc:modifiedBy ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; sh:maxCount 1 ; - sh:order 17 ; - sh:path linkml:deprecated_element_has_possible_replacement ], + sh:order 29 ; + sh:path pav:lastUpdatedOn ], + [ sh:datatype xsd:string ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 8 ; + sh:path skos:note ], [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; sh:order 24 ; sh:path skos:narrowMatch ], @@ -149,32 +163,18 @@ linkml:AnonymousExpression a sh:NodeShape ; sh:maxCount 1 ; sh:order 13 ; sh:path dcterms:source ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; - sh:maxCount 1 ; - sh:order 29 ; - sh:path pav:lastUpdatedOn ], - [ sh:class linkml:Example ; - sh:description "example usages of an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 9 ; - sh:path linkml:examples ], [ sh:datatype xsd:string ; sh:description "the primary language used in the sources" ; sh:maxCount 1 ; sh:order 14 ; sh:path schema1:inLanguage ], [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path dcterms:title ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 22 ; - sh:path skos:closeMatch ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 23 ; - sh:path skos:relatedMatch ] ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 34 ; + sh:path schema1:keywords ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 33 ; + sh:path dcterms:subject ] ; sh:targetClass linkml:AnonymousExpression . linkml:ClassExpression a sh:NodeShape ; @@ -182,6 +182,11 @@ linkml:ClassExpression a sh:NodeShape ; sh:description "A boolean expression that can be used to dynamically determine membership of a class" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:all_of ], + [ sh:class linkml:AnonymousClassExpression ; sh:description "holds if none of the expressions hold" ; sh:nodeKind sh:BlankNode ; sh:order 2 ; @@ -191,21 +196,16 @@ linkml:ClassExpression a sh:NodeShape ; sh:nodeKind sh:BlankNode ; sh:order 0 ; sh:path linkml:any_of ], - [ sh:class linkml:AnonymousClassExpression ; - sh:description "holds if only one of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 1 ; - sh:path linkml:exactly_one_of ], [ sh:class linkml:SlotDefinition ; sh:description "expresses constraints on a group of slots for a class expression" ; sh:nodeKind sh:IRI ; sh:order 4 ; sh:path linkml:slot_conditions ], [ sh:class linkml:AnonymousClassExpression ; - sh:description "holds if all of the expressions hold" ; + sh:description "holds if only one of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 3 ; - sh:path linkml:all_of ] ; + sh:order 1 ; + sh:path linkml:exactly_one_of ] ; sh:targetClass linkml:ClassExpression . linkml:ClassLevelRule a sh:NodeShape ; @@ -218,142 +218,142 @@ linkml:CommonMetadata a sh:NodeShape ; sh:closed false ; sh:description "Generic metadata shared across definitions" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; - sh:maxCount 1 ; - sh:order 30 ; - sh:path sh:order ], + sh:property [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 7 ; + sh:path linkml:examples ], [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; sh:order 23 ; sh:path skos:broadMatch ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 1 ; - sh:path linkml:alt_descriptions ], - [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 4 ; - sh:path linkml:todos ], - [ sh:description "agent that contributed to the element" ; - sh:order 25 ; - sh:path dcterms:contributor ], - [ sh:description "agent that created the element" ; - sh:maxCount 1 ; - sh:order 24 ; - sh:path pav:createdBy ], [ sh:class linkml:SubsetDefinition ; sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; sh:nodeKind sh:IRI ; sh:order 8 ; sh:path OIO:inSubset ], - [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:deprecated ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 21 ; - sh:path skos:relatedMatch ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 22 ; - sh:path skos:narrowMatch ], - [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 32 ; - sh:path schema1:keywords ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 31 ; - sh:path dcterms:subject ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; - sh:nodeKind sh:BlankNode ; - sh:order 17 ; - sh:path skosxl:altLabel ], - [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; + sh:order 15 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "A related resource from which the element is derived." ; sh:maxCount 1 ; - sh:order 0 ; - sh:path skos:definition ], - [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 6 ; - sh:path skos:note ], + sh:order 11 ; + sh:path dcterms:source ], + [ sh:description "agent that contributed to the element" ; + sh:order 25 ; + sh:path dcterms:contributor ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path sh:order ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 28 ; + sh:path oslc:modifiedBy ], [ sh:datatype xsd:dateTime ; sh:description "time at which the element was last updated" ; sh:maxCount 1 ; sh:order 27 ; sh:path pav:lastUpdatedOn ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 15 ; - sh:path linkml:deprecated_element_has_possible_replacement ], [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 16 ; - sh:path skos:altLabel ], - [ sh:description "A related resource from which the element is derived." ; + sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; - sh:order 11 ; - sh:path dcterms:source ], + sh:order 3 ; + sh:path linkml:deprecated ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 21 ; + sh:path skos:relatedMatch ], + [ sh:datatype xsd:string ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 5 ; + sh:path skos:editorialNote ], [ sh:datatype xsd:dateTime ; sh:description "time at which the element was created" ; sh:maxCount 1 ; sh:order 26 ; sh:path pav:createdOn ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; - sh:maxCount 1 ; - sh:order 9 ; - sh:path skos:inScheme ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 18 ; - sh:path skos:mappingRelation ], - [ sh:description "agent that modified the element" ; - sh:maxCount 1 ; - sh:order 28 ; - sh:path oslc:modifiedBy ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 13 ; - sh:path rdfs:seeAlso ], [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; - sh:order 12 ; - sh:path schema1:inLanguage ], + sh:order 2 ; + sh:path dcterms:title ], [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; sh:order 19 ; sh:path skos:exactMatch ], [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 16 ; + sh:path skos:altLabel ], + [ sh:datatype xsd:string ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 2 ; - sh:path dcterms:title ], + sh:order 10 ; + sh:path linkml:imported_from ], [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; sh:maxCount 1 ; sh:order 14 ; sh:path linkml:deprecated_element_has_exact_replacement ], [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 4 ; + sh:path linkml:todos ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:alt_descriptions ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 17 ; + sh:path skosxl:altLabel ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; sh:maxCount 1 ; - sh:order 10 ; - sh:path linkml:imported_from ], + sh:order 9 ; + sh:path skos:inScheme ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 13 ; + sh:path rdfs:seeAlso ], [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 5 ; - sh:path skos:editorialNote ], - [ sh:class linkml:Example ; - sh:description "example usages of an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 7 ; - sh:path linkml:examples ], + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 6 ; + sh:path skos:note ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 22 ; + sh:path skos:narrowMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 18 ; + sh:path skos:mappingRelation ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 20 ; + sh:path skos:closeMatch ], [ sh:description "status of the element" ; sh:maxCount 1 ; sh:order 29 ; sh:path bibo:status ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 20 ; - sh:path skos:closeMatch ] ; + [ sh:datatype xsd:string ; + sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path schema1:inLanguage ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 24 ; + sh:path pav:createdBy ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 32 ; + sh:path schema1:keywords ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 31 ; + sh:path dcterms:subject ], + [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path skos:definition ] ; sh:targetClass linkml:CommonMetadata . linkml:Expression a sh:NodeShape ; @@ -377,252 +377,304 @@ linkml:ImportExpression a sh:NodeShape ; sh:closed true ; sh:description "an expression describing an import" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 24 ; - sh:path skos:exactMatch ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; sh:order 21 ; sh:path skos:altLabel ], - [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 11 ; - sh:path skos:note ], - [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; - sh:maxCount 1 ; - sh:order 17 ; - sh:path schema1:inLanguage ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 19 ; - sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path linkml:annotations ], [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; sh:order 20 ; sh:path linkml:deprecated_element_has_possible_replacement ], - [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; - sh:maxCount 1 ; - sh:order 15 ; - sh:path linkml:imported_from ], - [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 9 ; - sh:path linkml:todos ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; - sh:maxCount 1 ; - sh:order 32 ; - sh:path pav:lastUpdatedOn ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 24 ; + sh:path skos:exactMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 27 ; + sh:path skos:narrowMatch ], [ sh:class skosxl:Label ; sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; sh:nodeKind sh:BlankNode ; sh:order 22 ; sh:path skosxl:altLabel ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 6 ; - sh:path linkml:alt_descriptions ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 25 ; - sh:path skos:closeMatch ], - [ sh:class linkml:Example ; - sh:description "example usages of an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 12 ; - sh:path linkml:examples ], - [ sh:description "A related resource from which the element is derived." ; + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 28 ; + sh:path skos:broadMatch ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 18 ; + sh:path rdfs:seeAlso ], + [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; - sh:order 16 ; - sh:path dcterms:source ], + sh:order 5 ; + sh:path skos:definition ], [ sh:class linkml:SubsetDefinition ; sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; sh:nodeKind sh:IRI ; sh:order 13 ; sh:path OIO:inSubset ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; - sh:maxCount 1 ; - sh:order 14 ; - sh:path skos:inScheme ], [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; sh:order 23 ; sh:path skos:mappingRelation ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 28 ; - sh:path skos:broadMatch ], - [ sh:description "agent that contributed to the element" ; - sh:order 30 ; - sh:path dcterms:contributor ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 32 ; + sh:path pav:lastUpdatedOn ], [ sh:datatype xsd:string ; sh:description "editorial notes about an element intended primarily for internal consumption" ; sh:order 10 ; sh:path skos:editorialNote ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:import_as ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 33 ; + sh:path oslc:modifiedBy ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path bibo:status ], + [ sh:datatype xsd:string ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 9 ; + sh:path linkml:todos ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:deprecated_element_has_exact_replacement ], [ sh:datatype xsd:string ; sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; sh:order 8 ; sh:path linkml:deprecated ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 37 ; + sh:path schema1:keywords ], [ sh:class linkml:Extension ; sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; sh:order 3 ; sh:path linkml:extensions ], - [ sh:description "agent that created the element" ; - sh:maxCount 1 ; - sh:order 29 ; - sh:path pav:createdBy ], - [ sh:description "status of the element" ; + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; sh:maxCount 1 ; - sh:order 34 ; - sh:path bibo:status ], - [ sh:description "agent that modified the element" ; - sh:maxCount 1 ; - sh:order 33 ; - sh:path oslc:modifiedBy ], - [ sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 0 ; - sh:path linkml:import_from ], - [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path skos:definition ], - [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 37 ; - sh:path schema1:keywords ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 26 ; - sh:path skos:relatedMatch ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 18 ; - sh:path rdfs:seeAlso ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 27 ; - sh:path skos:narrowMatch ], + sh:order 14 ; + sh:path skos:inScheme ], [ sh:datatype xsd:integer ; sh:description "the relative order in which the element occurs, lower values are given precedence" ; sh:maxCount 1 ; sh:order 35 ; sh:path sh:order ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 36 ; + sh:path dcterms:subject ], + [ sh:datatype xsd:string ; + sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path schema1:inLanguage ], [ sh:datatype xsd:string ; sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; sh:order 7 ; sh:path dcterms:title ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; - sh:maxCount 1 ; - sh:order 31 ; - sh:path pav:createdOn ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; sh:nodeKind sh:BlankNode ; - sh:order 4 ; - sh:path linkml:annotations ], + sh:order 6 ; + sh:path linkml:alt_descriptions ], + [ sh:description "agent that contributed to the element" ; + sh:order 30 ; + sh:path dcterms:contributor ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 25 ; + sh:path skos:closeMatch ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path dcterms:source ], + [ sh:datatype xsd:string ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path linkml:imported_from ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 26 ; + sh:path skos:relatedMatch ], [ sh:class linkml:Setting ; sh:nodeKind sh:BlankNode ; sh:order 2 ; sh:path linkml:import_map ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 36 ; - sh:path dcterms:subject ], [ sh:datatype xsd:string ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 11 ; + sh:path skos:note ], + [ sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path linkml:import_from ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 12 ; + sh:path linkml:examples ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; sh:maxCount 1 ; - sh:order 1 ; - sh:path linkml:import_as ] ; + sh:order 31 ; + sh:path pav:createdOn ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path pav:createdBy ] ; sh:targetClass linkml:ImportExpression . linkml:SchemaDefinition a sh:NodeShape ; sh:closed true ; sh:description "A collection of definitions that make up a schema or a data model." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "status of the element" ; + sh:property [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 40 ; + sh:path OIO:inSubset ], + [ sh:class linkml:LocalName ; + sh:nodeKind sh:BlankNode ; + sh:order 26 ; + sh:path linkml:local_names ], + [ sh:datatype xsd:string ; + sh:description "Version of the metamodel used to load the schema" ; sh:maxCount 1 ; - sh:order 60 ; - sh:path bibo:status ], + sh:order 14 ; + sh:path linkml:metamodel_version ], + [ sh:datatype xsd:dateTime ; + sh:description "date and time that the schema was loaded/generated" ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path linkml:generation_date ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 46 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 45 ; + sh:path rdfs:seeAlso ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 31 ; + sh:path linkml:annotations ], [ sh:datatype xsd:string ; - sh:description "license for the schema" ; + sh:description "the primary language used in the sources" ; sh:maxCount 1 ; - sh:order 3 ; - sh:path dcterms:license ], + sh:order 44 ; + sh:path schema1:inLanguage ], [ sh:datatype xsd:string ; - sh:description "The prefix that is used for all elements within a schema" ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 48 ; + sh:path skos:altLabel ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 51 ; + sh:path skos:exactMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 53 ; + sh:path skos:relatedMatch ], + [ sh:datatype xsd:string ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 38 ; + sh:path skos:note ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 64 ; + sh:path schema1:keywords ], + [ sh:datatype xsd:string ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 37 ; + sh:path skos:editorialNote ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 55 ; + sh:path skos:broadMatch ], + [ sh:datatype xsd:string ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 7 ; - sh:path linkml:default_prefix ], + sh:order 42 ; + sh:path linkml:imported_from ], [ sh:datatype xsd:string ; sh:description "particular version of schema" ; sh:maxCount 1 ; sh:order 1 ; sh:path pav:version ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; + [ sh:datatype xsd:string ; + sh:description "The prefix that is used for all elements within a schema" ; sh:maxCount 1 ; - sh:order 58 ; - sh:path pav:lastUpdatedOn ], - [ sh:class linkml:Setting ; - sh:description "A collection of global variable settings" ; - sh:nodeKind sh:BlankNode ; - sh:order 20 ; - sh:path linkml:settings ], - [ sh:class linkml:LocalName ; + sh:order 7 ; + sh:path linkml:default_prefix ], + [ sh:class linkml:TypeDefinition ; + sh:description "An index to the collection of all type definitions in the schema" ; + sh:nodeKind sh:IRI ; + sh:order 10 ; + sh:path linkml:types ], + [ sh:datatype xsd:boolean ; + sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; + sh:maxCount 1 ; + sh:order 24 ; + sh:path linkml:id_prefixes_are_closed ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 47 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:class linkml:Prefix ; + sh:description "A collection of prefix expansions that specify how CURIEs can be expanded to URIs" ; sh:nodeKind sh:BlankNode ; - sh:order 25 ; - sh:path linkml:local_names ], + sh:order 4 ; + sh:path sh:declare ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 52 ; + sh:path skos:closeMatch ], [ sh:datatype xsd:string ; - sh:description "a unique name for the schema that is both human-readable and consists of only characters from the NCName set" ; + sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 21 ; - sh:path rdfs:label ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 32 ; - sh:path linkml:alt_descriptions ], - [ sh:class linkml:Example ; - sh:description "example usages of an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 38 ; - sh:path linkml:examples ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 62 ; - sh:path dcterms:subject ], + sh:order 35 ; + sh:path linkml:deprecated ], + [ sh:datatype xsd:string ; + sh:description "ordered list of prefixcommon biocontexts to be fetched to resolve id prefixes and inline prefix variables" ; + sh:order 6 ; + sh:path linkml:default_curi_maps ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 60 ; + sh:path oslc:modifiedBy ], + [ sh:datatype xsd:string ; + sh:description "name, uri or description of the source of the schema" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path linkml:source_file ], [ sh:class linkml:Extension ; sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; - sh:order 29 ; + sh:order 30 ; sh:path linkml:extensions ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 45 ; - sh:path linkml:deprecated_element_has_exact_replacement ], [ sh:datatype xsd:dateTime ; sh:description "modification date of the source of the schema" ; sh:maxCount 1 ; sh:order 16 ; sh:path linkml:source_file_date ], - [ sh:description "agent that contributed to the element" ; - sh:order 56 ; - sh:path dcterms:contributor ], - [ sh:description "An element in another schema which this element instantiates." ; - sh:order 28 ; - sh:path linkml:instantiates ], - [ sh:datatype xsd:boolean ; - sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; - sh:maxCount 1 ; - sh:order 23 ; - sh:path linkml:id_prefixes_are_closed ], [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; + sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 23 ; + sh:path linkml:id_prefixes ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; sh:maxCount 1 ; - sh:order 34 ; - sh:path linkml:deprecated ], + sh:order 25 ; + sh:path linkml:definition_uri ], [ sh:datatype xsd:integer ; sh:description "size in bytes of the source of the schema" ; sh:maxCount 1 ; @@ -630,77 +682,16 @@ linkml:SchemaDefinition a sh:NodeShape ; sh:path linkml:source_file_size ], [ sh:description "agent that created the element" ; sh:maxCount 1 ; - sh:order 55 ; + sh:order 56 ; sh:path pav:createdBy ], - [ sh:description "agent that modified the element" ; - sh:maxCount 1 ; - sh:order 59 ; - sh:path oslc:modifiedBy ], - [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; - sh:maxCount 1 ; - sh:order 41 ; - sh:path linkml:imported_from ], - [ sh:datatype xsd:string ; - sh:description "An established standard to which the element conforms." ; - sh:maxCount 1 ; - sh:order 26 ; - sh:path dcterms:conformsTo ], - [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; - sh:order 27 ; - sh:path linkml:implements ], - [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; - sh:maxCount 1 ; - sh:order 24 ; - sh:path linkml:definition_uri ], - [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; - sh:maxCount 1 ; - sh:order 43 ; - sh:path schema1:inLanguage ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 49 ; - sh:path skos:mappingRelation ], - [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 63 ; - sh:path schema1:keywords ], [ sh:datatype xsd:anyURI ; sh:description "id of the schema that defined the element" ; sh:maxCount 1 ; - sh:order 40 ; + sh:order 41 ; sh:path skos:inScheme ], - [ sh:datatype xsd:string ; - sh:description "Version of the metamodel used to load the schema" ; - sh:maxCount 1 ; - sh:order 14 ; - sh:path linkml:metamodel_version ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; - sh:nodeKind sh:BlankNode ; - sh:order 48 ; - sh:path skosxl:altLabel ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 51 ; - sh:path skos:closeMatch ], - [ sh:class linkml:TypeDefinition ; - sh:description "An index to the collection of all type definitions in the schema" ; - sh:nodeKind sh:IRI ; - sh:order 10 ; - sh:path linkml:types ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 54 ; - sh:path skos:broadMatch ], - [ sh:class linkml:ClassDefinition ; - sh:description "An index to the collection of all class definitions in the schema" ; - sh:nodeKind sh:IRI ; - sh:order 13 ; - sh:path linkml:classes ], - [ sh:class linkml:SubsetDefinition ; - sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; - sh:nodeKind sh:IRI ; - sh:order 39 ; - sh:path OIO:inSubset ], + [ sh:description "agent that contributed to the element" ; + sh:order 57 ; + sh:path dcterms:contributor ], [ sh:class linkml:SlotDefinition ; sh:description "An index to the collection of all slot definitions in the schema" ; sh:nodeKind sh:IRI ; @@ -709,121 +700,137 @@ linkml:SchemaDefinition a sh:NodeShape ; [ sh:datatype xsd:dateTime ; sh:description "time at which the element was created" ; sh:maxCount 1 ; - sh:order 57 ; + sh:order 58 ; sh:path pav:createdOn ], - [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 47 ; - sh:path skos:altLabel ], - [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 36 ; - sh:path skos:editorialNote ], + [ sh:class linkml:EnumBinding ; + sh:description """A collection of enum bindings that specify how a slot can be bound to a permissible value from an enumeration. +LinkML provides enums to allow string values to be restricted to one of a set of permissible values (specified statically or dynamically). +Enum bindings allow enums to be bound to any object, including complex nested objects. For example, given a (generic) class Concept with slots id and label, it may be desirable to restrict the values the id takes on in a given context. For example, a HumanSample class may have a slot for representing sample site, with a range of concept, but the values of that slot may be restricted to concepts from a particular branch of an anatomy ontology.""" ; + sh:nodeKind sh:BlankNode ; + sh:order 21 ; + sh:path linkml:bindings ], [ sh:datatype xsd:anyURI ; sh:description "The official schema URI" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 0 ; sh:path linkml:id ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; - sh:order 46 ; - sh:path linkml:deprecated_element_has_possible_replacement ], - [ sh:class linkml:TypeDefinition ; - sh:description "default slot range to be used if range element is omitted from a slot definition" ; + sh:order 32 ; + sh:path skos:definition ], + [ sh:datatype xsd:boolean ; + sh:description "if true then induced/mangled slot names are not created for class_usage and attributes" ; sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:slot_names_unique ], + [ sh:class linkml:ClassDefinition ; + sh:description "An index to the collection of all class definitions in the schema" ; sh:nodeKind sh:IRI ; - sh:order 8 ; - sh:path linkml:default_range ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 44 ; - sh:path rdfs:seeAlso ], - [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 35 ; - sh:path linkml:todos ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 53 ; - sh:path skos:narrowMatch ], + sh:order 13 ; + sh:path linkml:classes ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 33 ; + sh:path linkml:alt_descriptions ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 62 ; + sh:path sh:order ], [ sh:description "A list of schemas that are to be included in this schema" ; sh:order 2 ; sh:path linkml:imports ], [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 36 ; + sh:path linkml:todos ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 28 ; + sh:path linkml:implements ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 39 ; + sh:path linkml:examples ], + [ sh:class linkml:TypeDefinition ; + sh:description "default slot range to be used if range element is omitted from a slot definition" ; sh:maxCount 1 ; - sh:order 31 ; - sh:path skos:definition ], - [ sh:datatype xsd:string ; - sh:description "a list of Curie prefixes that are used in the representation of instances of the model. All prefixes in this list are added to the prefix sections of the target models." ; - sh:order 5 ; - sh:path linkml:emit_prefixes ], - [ sh:class linkml:SubsetDefinition ; - sh:description "An index to the collection of all subset definitions in the schema" ; sh:nodeKind sh:IRI ; - sh:order 9 ; - sh:path linkml:subsets ], - [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 37 ; - sh:path skos:note ], + sh:order 8 ; + sh:path linkml:default_range ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 43 ; + sh:path dcterms:source ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 61 ; + sh:path bibo:status ], [ sh:class linkml:EnumDefinition ; sh:description "An index to the collection of all enum definitions in the schema" ; sh:nodeKind sh:IRI ; sh:order 11 ; sh:path linkml:enums ], - [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; + [ sh:datatype xsd:string ; + sh:description "An established standard to which the element conforms." ; sh:maxCount 1 ; - sh:order 61 ; - sh:path sh:order ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 27 ; + sh:path dcterms:conformsTo ], + [ sh:class linkml:SubsetDefinition ; + sh:description "An index to the collection of all subset definitions in the schema" ; + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path linkml:subsets ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 54 ; + sh:path skos:narrowMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; sh:order 50 ; - sh:path skos:exactMatch ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; - sh:nodeKind sh:BlankNode ; - sh:order 30 ; - sh:path linkml:annotations ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 52 ; - sh:path skos:relatedMatch ], - [ sh:datatype xsd:boolean ; - sh:description "if true then induced/mangled slot names are not created for class_usage and attributes" ; - sh:maxCount 1 ; - sh:order 19 ; - sh:path linkml:slot_names_unique ], + sh:path skos:mappingRelation ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 63 ; + sh:path dcterms:subject ], [ sh:datatype xsd:string ; - sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:description "a unique name for the schema that is both human-readable and consists of only characters from the NCName set" ; + sh:maxCount 1 ; + sh:minCount 1 ; sh:order 22 ; - sh:path linkml:id_prefixes ], - [ sh:class linkml:Prefix ; - sh:description "A collection of prefix expansions that specify how CURIEs can be expanded to URIs" ; - sh:nodeKind sh:BlankNode ; - sh:order 4 ; - sh:path sh:declare ], + sh:path rdfs:label ], [ sh:datatype xsd:string ; - sh:description "ordered list of prefixcommon biocontexts to be fetched to resolve id prefixes and inline prefix variables" ; - sh:order 6 ; - sh:path linkml:default_curi_maps ], + sh:description "a list of Curie prefixes that are used in the representation of instances of the model. All prefixes in this list are added to the prefix sections of the target models." ; + sh:order 5 ; + sh:path linkml:emit_prefixes ], [ sh:datatype xsd:string ; - sh:description "name, uri or description of the source of the schema" ; + sh:description "license for the schema" ; sh:maxCount 1 ; - sh:order 15 ; - sh:path linkml:source_file ], + sh:order 3 ; + sh:path dcterms:license ], [ sh:datatype xsd:dateTime ; - sh:description "date and time that the schema was loaded/generated" ; - sh:maxCount 1 ; - sh:order 18 ; - sh:path linkml:generation_date ], - [ sh:description "A related resource from which the element is derived." ; + sh:description "time at which the element was last updated" ; sh:maxCount 1 ; - sh:order 42 ; - sh:path dcterms:source ], + sh:order 59 ; + sh:path pav:lastUpdatedOn ], [ sh:datatype xsd:string ; sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; - sh:order 33 ; - sh:path dcterms:title ] ; + sh:order 34 ; + sh:path dcterms:title ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 49 ; + sh:path skosxl:altLabel ], + [ sh:class linkml:Setting ; + sh:description "A collection of global variable settings" ; + sh:nodeKind sh:BlankNode ; + sh:order 20 ; + sh:path linkml:settings ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 29 ; + sh:path linkml:instantiates ] ; sh:targetClass linkml:SchemaDefinition . linkml:SlotExpression a sh:NodeShape ; @@ -831,120 +838,74 @@ linkml:SlotExpression a sh:NodeShape ; sh:description "an expression that constrains the range of values a slot can take" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "the slot must have range string and the value of the slot must equal the specified value" ; - sh:maxCount 1 ; - sh:order 14 ; - sh:path linkml:equals_string ], - [ sh:class linkml:Element ; - sh:description """defines the type of the object of the slot. Given the following slot definition - S1: - domain: C1 - range: C2 -the declaration - X: - S1: Y - -implicitly asserts Y is an instance of C2 -""" ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path linkml:range ], - [ sh:class linkml:Any ; - sh:description "For ordinal ranges, the value must be equal to or lower than this" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 8 ; - sh:path linkml:maximum_value ], + sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; + sh:order 17 ; + sh:path linkml:equals_string_in ], [ sh:class linkml:AnonymousSlotExpression ; - sh:description "the value of the slot is multivalued with all members satisfying the condition" ; - sh:maxCount 1 ; + sh:description "holds if all of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 22 ; - sh:path linkml:all_members ], + sh:order 28 ; + sh:path linkml:all_of ], + [ sh:class linkml:EnumBinding ; + sh:description """A collection of enum bindings that specify how a slot can be bound to a permissible value from an enumeration. +LinkML provides enums to allow string values to be restricted to one of a set of permissible values (specified statically or dynamically). +Enum bindings allow enums to be bound to any object, including complex nested objects. For example, given a (generic) class Concept with slots id and label, it may be desirable to restrict the values the id takes on in a given context. For example, a HumanSample class may have a slot for representing sample site, with a range of concept, but the values of that slot may be restricted to concepts from a particular branch of an anatomy ontology.""" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:bindings ], [ sh:class linkml:AnonymousSlotExpression ; sh:description "holds if at least one of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 25 ; + sh:order 27 ; sh:path linkml:any_of ], - [ sh:datatype xsd:integer ; - sh:description "the maximum number of entries for a multivalued slot" ; - sh:maxCount 1 ; - sh:order 20 ; - sh:path linkml:maximum_cardinality ], - [ sh:class linkml:EnumExpression ; - sh:description "An inlined enumeration" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 2 ; - sh:path linkml:enum_range ], - [ sh:class linkml:AnonymousSlotExpression ; - sh:description "the value of the slot is multivalued with at least one member satisfying the condition" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 21 ; - sh:path linkml:has_member ], - [ sh:datatype xsd:integer ; - sh:description "the exact number of entries for a multivalued slot" ; - sh:maxCount 1 ; - sh:order 18 ; - sh:path linkml:exact_cardinality ], [ sh:datatype xsd:string ; sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; sh:maxCount 1 ; - sh:order 12 ; + sh:order 14 ; sh:path linkml:implicit_prefix ], - [ sh:class linkml:AnonymousSlotExpression ; - sh:description "holds if none of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 23 ; - sh:path linkml:none_of ], [ sh:datatype xsd:string ; - sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + sh:description "the slot must have range string and the value of the slot must equal the specified value" ; sh:maxCount 1 ; - sh:order 9 ; - sh:path linkml:pattern ], + sh:order 16 ; + sh:path linkml:equals_string ], [ sh:datatype xsd:boolean ; - sh:description "True means that keyed or identified slot appears in an outer structure by value. False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere." ; + sh:description "true means that the slot must be present in instances of the class definition" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path linkml:inlined ], - [ sh:datatype xsd:integer ; - sh:description "the minimum number of entries for a multivalued slot" ; + sh:order 4 ; + sh:path linkml:required ], + [ sh:description "if PRESENT then a value must be present (for lists there must be at least one value). If ABSENT then a value must be absent (for lists, must be empty)" ; + sh:in ( "UNCOMMITTED" "PRESENT" "ABSENT" ) ; sh:maxCount 1 ; - sh:order 19 ; - sh:path linkml:minimum_cardinality ], - [ sh:class linkml:AnonymousSlotExpression ; - sh:description "holds if only one of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 24 ; - sh:path linkml:exactly_one_of ], + sh:order 15 ; + sh:path linkml:value_presence ], [ sh:class qudt:Unit ; sh:description "an encoding of a unit" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; - sh:order 11 ; + sh:order 13 ; sh:path qudt:unit ], - [ sh:datatype xsd:boolean ; - sh:description "true means that the slot must be present in instances of the class definition" ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:required ], - [ sh:datatype xsd:string ; - sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; - sh:order 15 ; - sh:path linkml:equals_string_in ], - [ sh:datatype xsd:string ; - sh:description "the value of the slot must equal the value of the evaluated expression" ; - sh:maxCount 1 ; - sh:order 17 ; - sh:path linkml:equals_expression ], [ sh:class linkml:PatternExpression ; sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; - sh:order 10 ; + sh:order 12 ; sh:path linkml:structured_pattern ], + [ sh:datatype xsd:integer ; + sh:description "the minimum number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path linkml:minimum_cardinality ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 25 ; + sh:path linkml:none_of ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "the value of the slot is multivalued with all members satisfying the condition" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 24 ; + sh:path linkml:all_members ], [ sh:class linkml:AnonymousClassExpression ; sh:description "A range that is described as a boolean expression combining existing ranges" ; sh:maxCount 1 ; @@ -952,446 +913,334 @@ implicitly asserts Y is an instance of C2 sh:order 1 ; sh:path linkml:range_expression ], [ sh:class linkml:AnonymousSlotExpression ; - sh:description "holds if all of the expressions hold" ; + sh:description "holds if only one of the expressions hold" ; sh:nodeKind sh:BlankNode ; sh:order 26 ; - sh:path linkml:all_of ], + sh:path linkml:exactly_one_of ], + [ sh:datatype xsd:integer ; + sh:description "the maximum number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 22 ; + sh:path linkml:maximum_cardinality ], + [ sh:datatype xsd:boolean ; + sh:description "True means that keyed or identified slot appears in an outer structure by value. False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere." ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path linkml:inlined ], [ sh:datatype xsd:boolean ; sh:description "true means that the slot should be present in instances of the class definition, but this is not required" ; sh:maxCount 1 ; - sh:order 4 ; + sh:order 5 ; sh:path linkml:recommended ], - [ sh:description "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" ; - sh:in ( "UNCOMMITTED" "PRESENT" "ABSENT" ) ; - sh:maxCount 1 ; - sh:order 13 ; - sh:path linkml:value_presence ], [ sh:datatype xsd:boolean ; sh:description "True means that an inlined slot is represented as a list of range instances. False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance." ; sh:maxCount 1 ; - sh:order 6 ; + sh:order 8 ; sh:path linkml:inlined_as_list ], + [ sh:class linkml:Element ; + sh:description """defines the type of the object of the slot. Given the following slot definition + S1: + domain: C1 + range: C2 +the declaration + X: + S1: Y + +implicitly asserts Y is an instance of C2 +""" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path linkml:range ], [ sh:datatype xsd:integer ; sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; sh:maxCount 1 ; - sh:order 16 ; + sh:order 18 ; sh:path linkml:equals_number ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "the value of the slot is multivalued with at least one member satisfying the condition" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 23 ; + sh:path linkml:has_member ], + [ sh:datatype xsd:string ; + sh:description "the value of the slot must equal the value of the evaluated expression" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:equals_expression ], + [ sh:datatype xsd:string ; + sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path linkml:pattern ], + [ sh:datatype xsd:boolean ; + sh:description "true means that slot can have more than one value and should be represented using a list or collection structure." ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path linkml:multivalued ], + [ sh:class linkml:EnumExpression ; + sh:description "An inlined enumeration" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path linkml:enum_range ], + [ sh:class linkml:Any ; + sh:description "For ordinal ranges, the value must be equal to or lower than this" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:maximum_value ], + [ sh:class linkml:ArrayExpression ; + sh:description "coerces the value of the slot into an array and defines the dimensions of that array" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 29 ; + sh:path linkml:array ], [ sh:class linkml:Any ; sh:description "For ordinal ranges, the value must be equal to or higher than this" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; - sh:order 7 ; - sh:path linkml:minimum_value ] ; + sh:order 9 ; + sh:path linkml:minimum_value ], + [ sh:datatype xsd:integer ; + sh:description "the exact number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path linkml:exact_cardinality ] ; sh:targetClass linkml:SlotExpression . linkml:TypeExpression a sh:NodeShape ; sh:closed false ; sh:description "An abstract class grouping named types and anonymous type expressions" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class qudt:Unit ; - sh:description "an encoding of a unit" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 2 ; - sh:path qudt:unit ], - [ sh:datatype xsd:integer ; - sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path linkml:equals_number ], - [ sh:datatype xsd:string ; - sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:implicit_prefix ], - [ sh:datatype xsd:string ; - sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; - sh:order 5 ; - sh:path linkml:equals_string_in ], - [ sh:class linkml:Any ; + sh:property [ sh:class linkml:Any ; sh:description "For ordinal ranges, the value must be equal to or lower than this" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; sh:order 8 ; sh:path linkml:maximum_value ], [ sh:datatype xsd:string ; - sh:description "the slot must have range string and the value of the slot must equal the specified value" ; + sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; sh:maxCount 1 ; - sh:order 4 ; - sh:path linkml:equals_string ], + sh:order 3 ; + sh:path linkml:implicit_prefix ], [ sh:class linkml:Any ; sh:description "For ordinal ranges, the value must be equal to or higher than this" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; sh:order 7 ; sh:path linkml:minimum_value ], - [ sh:class linkml:AnonymousTypeExpression ; - sh:description "holds if all of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 12 ; - sh:path linkml:all_of ], - [ sh:datatype xsd:string ; - sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + [ sh:datatype xsd:integer ; + sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; sh:maxCount 1 ; - sh:order 0 ; - sh:path linkml:pattern ], + sh:order 6 ; + sh:path linkml:equals_number ], [ sh:class linkml:AnonymousTypeExpression ; sh:description "holds if none of the expressions hold" ; sh:nodeKind sh:BlankNode ; sh:order 9 ; sh:path linkml:none_of ], [ sh:class linkml:AnonymousTypeExpression ; - sh:description "holds if only one of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 10 ; - sh:path linkml:exactly_one_of ], - [ sh:class linkml:PatternExpression ; - sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; - sh:maxCount 1 ; + sh:description "holds if all of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 1 ; - sh:path linkml:structured_pattern ], + sh:order 12 ; + sh:path linkml:all_of ], [ sh:class linkml:AnonymousTypeExpression ; sh:description "holds if at least one of the expressions hold" ; sh:nodeKind sh:BlankNode ; sh:order 11 ; - sh:path linkml:any_of ] ; - sh:targetClass linkml:TypeExpression . - -linkml:ArrayExpression a sh:NodeShape ; - sh:closed true ; - sh:description "defines the dimensions of an array" ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 12 ; - sh:path skos:editorialNote ], - [ sh:description "A related resource from which the element is derived." ; - sh:maxCount 1 ; - sh:order 18 ; - sh:path dcterms:source ], - [ sh:datatype xsd:boolean ; - sh:description "If this is set to true" ; + sh:path linkml:any_of ], + [ sh:class qudt:Unit ; + sh:description "an encoding of a unit" ; sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:has_extra_dimensions ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; sh:nodeKind sh:BlankNode ; - sh:order 6 ; - sh:path linkml:annotations ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 29 ; - sh:path skos:narrowMatch ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 38 ; - sh:path dcterms:subject ], - [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; - sh:maxCount 1 ; - sh:order 19 ; - sh:path schema1:inLanguage ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 20 ; - sh:path rdfs:seeAlso ], + sh:order 2 ; + sh:path qudt:unit ], [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 13 ; - sh:path skos:note ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; + sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; + sh:order 5 ; + sh:path linkml:equals_string_in ], + [ sh:class linkml:PatternExpression ; + sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; sh:maxCount 1 ; - sh:order 34 ; - sh:path pav:lastUpdatedOn ], + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:structured_pattern ], [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; + sh:description "the slot must have range string and the value of the slot must equal the specified value" ; sh:maxCount 1 ; - sh:order 10 ; - sh:path linkml:deprecated ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 25 ; - sh:path skos:mappingRelation ], - [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 11 ; - sh:path linkml:todos ], + sh:order 4 ; + sh:path linkml:equals_string ], [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 39 ; - sh:path schema1:keywords ], - [ sh:class linkml:Example ; - sh:description "example usages of an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 14 ; - sh:path linkml:examples ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 8 ; - sh:path linkml:alt_descriptions ], - [ sh:description "agent that contributed to the element" ; - sh:order 32 ; - sh:path dcterms:contributor ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 21 ; - sh:path linkml:deprecated_element_has_exact_replacement ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 30 ; - sh:path skos:broadMatch ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 22 ; - sh:path linkml:deprecated_element_has_possible_replacement ], - [ sh:class linkml:Any ; - sh:description "maximum number of dimensions in the array, or False if explicitly no maximum. If this is unset, and an explicit list of dimensions are passed using dimensions, then this is interpreted as a closed list and the maximum_number_dimensions is the length of the dimensions list, unless this value is set to False" ; + sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; sh:maxCount 1 ; + sh:order 0 ; + sh:path linkml:pattern ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if only one of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 2 ; - sh:path linkml:maximum_number_dimensions ], - [ sh:datatype xsd:integer ; + sh:order 10 ; + sh:path linkml:exactly_one_of ] ; + sh:targetClass linkml:TypeExpression . + +linkml:ClassRule a sh:NodeShape ; + sh:closed true ; + sh:description "A rule that applies to instances of a class" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:datatype xsd:integer ; sh:description "the relative order in which the element occurs, lower values are given precedence" ; sh:maxCount 1 ; - sh:order 37 ; + sh:order 5 ; sh:path sh:order ], - [ sh:description "agent that created the element" ; - sh:maxCount 1 ; - sh:order 31 ; - sh:path pav:createdBy ], - [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 23 ; - sh:path skos:altLabel ], - [ sh:datatype xsd:integer ; - sh:description "exact number of dimensions in the array" ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path linkml:exact_number_dimensions ], - [ sh:datatype xsd:integer ; - sh:description "minimum number of dimensions in the array" ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path linkml:minimum_number_dimensions ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 27 ; - sh:path skos:closeMatch ], - [ sh:description "status of the element" ; - sh:maxCount 1 ; - sh:order 36 ; - sh:path bibo:status ], [ sh:datatype xsd:string ; sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 17 ; + sh:order 19 ; sh:path linkml:imported_from ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 26 ; - sh:path skos:exactMatch ], - [ sh:description "agent that modified the element" ; + [ sh:description "agent that created the element" ; sh:maxCount 1 ; - sh:order 35 ; - sh:path oslc:modifiedBy ], - [ sh:class linkml:DimensionExpression ; - sh:description "definitions of each axis in the array" ; - sh:nodeKind sh:BlankNode ; - sh:order 4 ; - sh:path linkml:dimensions ], - [ sh:class linkml:SubsetDefinition ; - sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; - sh:nodeKind sh:IRI ; - sh:order 15 ; - sh:path OIO:inSubset ], + sh:order 33 ; + sh:path pav:createdBy ], [ sh:datatype xsd:string ; sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; - sh:order 7 ; - sh:path skos:definition ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; - sh:nodeKind sh:BlankNode ; - sh:order 24 ; - sh:path skosxl:altLabel ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; - sh:maxCount 1 ; - sh:order 16 ; - sh:path skos:inScheme ], - [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; - sh:maxCount 1 ; sh:order 9 ; - sh:path dcterms:title ], + sh:path skos:definition ], [ sh:class linkml:Extension ; sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; - sh:order 5 ; + sh:order 7 ; sh:path linkml:extensions ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; - sh:maxCount 1 ; - sh:order 33 ; - sh:path pav:createdOn ], [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 28 ; - sh:path skos:relatedMatch ] ; - sh:targetClass linkml:ArrayExpression . - -linkml:ClassRule a sh:NodeShape ; - sh:closed true ; - sh:description "A rule that applies to instances of a class" ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 23 ; - sh:path linkml:deprecated_element_has_exact_replacement ], - [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 25 ; - sh:path skos:altLabel ], - [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; - sh:maxCount 1 ; - sh:order 11 ; - sh:path dcterms:title ], + sh:order 30 ; + sh:path skos:relatedMatch ], [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 15 ; + sh:path skos:note ], + [ sh:datatype xsd:boolean ; + sh:description "if true, the the postconditions may be omitted in instance data, but it is valid for an inference engine to add these" ; sh:maxCount 1 ; - sh:order 9 ; - sh:path skos:definition ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 32 ; - sh:path skos:broadMatch ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; - sh:nodeKind sh:BlankNode ; - sh:order 26 ; - sh:path skosxl:altLabel ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 27 ; - sh:path skos:mappingRelation ], + sh:order 4 ; + sh:path linkml:open_world ], [ sh:description "Controlled terms used to categorize an element." ; sh:order 39 ; sh:path dcterms:subject ], - [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 14 ; - sh:path skos:editorialNote ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 29 ; - sh:path skos:closeMatch ], - [ sh:description "agent that contributed to the element" ; - sh:order 34 ; - sh:path dcterms:contributor ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:alt_descriptions ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 28 ; + sh:path skos:exactMatch ], [ sh:class linkml:Example ; sh:description "example usages of an element" ; sh:nodeKind sh:BlankNode ; sh:order 16 ; sh:path linkml:examples ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 28 ; - sh:path skos:exactMatch ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 17 ; + sh:path OIO:inSubset ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 32 ; + sh:path skos:broadMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 29 ; + sh:path skos:closeMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 27 ; + sh:path skos:mappingRelation ], [ sh:class linkml:AnonymousClassExpression ; sh:description "an expression that must hold in order for the rule to be applicable to an instance" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; sh:order 0 ; sh:path sh:condition ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path dcterms:source ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 23 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path bibo:status ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 40 ; + sh:path schema1:keywords ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 37 ; + sh:path oslc:modifiedBy ], + [ sh:datatype xsd:string ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 14 ; + sh:path skos:editorialNote ], + [ sh:datatype xsd:string ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 25 ; + sh:path skos:altLabel ], + [ sh:description "agent that contributed to the element" ; + sh:order 34 ; + sh:path dcterms:contributor ], [ sh:class linkml:Annotation ; sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; sh:nodeKind sh:BlankNode ; sh:order 8 ; sh:path linkml:annotations ], - [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; - sh:maxCount 1 ; - sh:order 19 ; - sh:path linkml:imported_from ], - [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; + [ sh:datatype xsd:boolean ; + sh:description "a deactivated rule is not executed by the rules engine" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path sh:order ], + sh:order 6 ; + sh:path sh:deactivated ], [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; sh:order 24 ; sh:path linkml:deprecated_element_has_possible_replacement ], - [ sh:description "agent that modified the element" ; - sh:maxCount 1 ; - sh:order 37 ; - sh:path oslc:modifiedBy ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 22 ; - sh:path rdfs:seeAlso ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 31 ; - sh:path skos:narrowMatch ], - [ sh:description "status of the element" ; - sh:maxCount 1 ; - sh:order 38 ; - sh:path bibo:status ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; - sh:maxCount 1 ; - sh:order 36 ; - sh:path pav:lastUpdatedOn ], - [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; - sh:maxCount 1 ; - sh:order 12 ; - sh:path linkml:deprecated ], [ sh:datatype xsd:string ; sh:description "Outstanding issues that needs resolution" ; sh:order 13 ; sh:path linkml:todos ], - [ sh:description "A related resource from which the element is derived." ; - sh:maxCount 1 ; - sh:order 20 ; - sh:path dcterms:source ], - [ sh:description "agent that created the element" ; - sh:maxCount 1 ; - sh:order 33 ; - sh:path pav:createdBy ], - [ sh:class linkml:SubsetDefinition ; - sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; - sh:nodeKind sh:IRI ; - sh:order 17 ; - sh:path OIO:inSubset ], [ sh:datatype xsd:boolean ; - sh:description "if true, the the postconditions may be omitted in instance data, but it is valid for an inference engine to add these" ; + sh:description "in addition to preconditions entailing postconditions, the postconditions entail the preconditions" ; sh:maxCount 1 ; - sh:order 4 ; - sh:path linkml:open_world ], + sh:order 3 ; + sh:path linkml:bidirectional ], [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 40 ; - sh:path schema1:keywords ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 30 ; - sh:path skos:relatedMatch ], + sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path linkml:deprecated ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 36 ; + sh:path pav:lastUpdatedOn ], [ sh:datatype xsd:anyURI ; sh:description "id of the schema that defined the element" ; sh:maxCount 1 ; sh:order 18 ; sh:path skos:inScheme ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 26 ; + sh:path skosxl:altLabel ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 31 ; + sh:path skos:narrowMatch ], [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; - sh:maxCount 1 ; - sh:order 21 ; - sh:path schema1:inLanguage ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; - sh:maxCount 1 ; - sh:order 35 ; - sh:path pav:createdOn ], - [ sh:datatype xsd:boolean ; - sh:description "a deactivated rule is not executed by the rules engine" ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; - sh:order 6 ; - sh:path sh:deactivated ], - [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 15 ; - sh:path skos:note ], + sh:order 11 ; + sh:path dcterms:title ], [ sh:class linkml:AnonymousClassExpression ; sh:description "an expression that must hold for an instance of the class, if the preconditions hold" ; sh:maxCount 1 ; @@ -1404,3100 +1253,3439 @@ linkml:ClassRule a sh:NodeShape ; sh:nodeKind sh:BlankNode ; sh:order 2 ; sh:path linkml:elseconditions ], - [ sh:datatype xsd:boolean ; - sh:description "in addition to preconditions entailing postconditions, the postconditions entail the preconditions" ; + [ sh:datatype xsd:string ; + sh:description "the primary language used in the sources" ; sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:bidirectional ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; - sh:nodeKind sh:BlankNode ; - sh:order 7 ; - sh:path linkml:extensions ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 10 ; - sh:path linkml:alt_descriptions ] ; + sh:order 21 ; + sh:path schema1:inLanguage ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path pav:createdOn ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 22 ; + sh:path rdfs:seeAlso ] ; sh:targetClass linkml:ClassRule . linkml:DimensionExpression a sh:NodeShape ; sh:closed true ; sh:description "defines one of the dimensions of an array" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; - sh:maxCount 1 ; - sh:order 36 ; - sh:path sh:order ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; - sh:nodeKind sh:BlankNode ; - sh:order 4 ; - sh:path linkml:extensions ], - [ sh:datatype xsd:integer ; - sh:description "the exact number of entries for a multivalued slot" ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:exact_cardinality ], - [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path skos:definition ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 25 ; - sh:path skos:exactMatch ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 37 ; - sh:path dcterms:subject ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; sh:order 9 ; sh:path linkml:deprecated ], + [ sh:datatype xsd:string ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 11 ; + sh:path skos:editorialNote ], [ sh:datatype xsd:dateTime ; sh:description "time at which the element was created" ; sh:maxCount 1 ; sh:order 32 ; sh:path pav:createdOn ], [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 22 ; + sh:path skos:altLabel ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 29 ; + sh:path skos:broadMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 27 ; + sh:path skos:relatedMatch ], + [ sh:datatype xsd:string ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 8 ; - sh:path dcterms:title ], - [ sh:class linkml:SubsetDefinition ; - sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; - sh:nodeKind sh:IRI ; - sh:order 14 ; - sh:path OIO:inSubset ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; - sh:nodeKind sh:BlankNode ; - sh:order 5 ; - sh:path linkml:annotations ], + sh:order 16 ; + sh:path linkml:imported_from ], [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; sh:maxCount 1 ; sh:order 20 ; sh:path linkml:deprecated_element_has_exact_replacement ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; - sh:maxCount 1 ; - sh:order 15 ; - sh:path skos:inScheme ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 19 ; - sh:path rdfs:seeAlso ], [ sh:datatype xsd:integer ; sh:description "the maximum number of entries for a multivalued slot" ; sh:maxCount 1 ; sh:order 1 ; sh:path linkml:maximum_cardinality ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; - sh:nodeKind sh:BlankNode ; - sh:order 23 ; - sh:path skosxl:altLabel ], - [ sh:description "agent that modified the element" ; - sh:maxCount 1 ; - sh:order 34 ; - sh:path oslc:modifiedBy ], [ sh:class linkml:AltDescription ; sh:description "A sourced alternative description for an element" ; sh:nodeKind sh:BlankNode ; sh:order 7 ; sh:path linkml:alt_descriptions ], - [ sh:description "status of the element" ; - sh:maxCount 1 ; - sh:order 35 ; - sh:path bibo:status ], [ sh:datatype xsd:dateTime ; sh:description "time at which the element was last updated" ; sh:maxCount 1 ; sh:order 33 ; sh:path pav:lastUpdatedOn ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path skos:inScheme ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 28 ; + sh:path skos:narrowMatch ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 38 ; + sh:path schema1:keywords ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 37 ; + sh:path dcterms:subject ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 19 ; + sh:path rdfs:seeAlso ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path pav:createdBy ], [ sh:datatype xsd:integer ; sh:description "the minimum number of entries for a multivalued slot" ; sh:maxCount 1 ; sh:order 2 ; sh:path linkml:minimum_cardinality ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 21 ; - sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 26 ; + sh:path skos:closeMatch ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path linkml:extensions ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 25 ; + sh:path skos:exactMatch ], [ sh:datatype xsd:string ; sh:description "the primary language used in the sources" ; sh:maxCount 1 ; sh:order 18 ; sh:path schema1:inLanguage ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 23 ; + sh:path skosxl:altLabel ], + [ sh:datatype xsd:string ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 12 ; + sh:path skos:note ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 5 ; + sh:path linkml:annotations ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 13 ; + sh:path linkml:examples ], + [ sh:datatype xsd:integer ; + sh:description "the exact number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:exact_cardinality ], + [ sh:datatype xsd:string ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path dcterms:title ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 14 ; + sh:path OIO:inSubset ], + [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path skos:definition ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path linkml:deprecated_element_has_possible_replacement ], [ sh:description "agent that contributed to the element" ; sh:order 31 ; sh:path dcterms:contributor ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path oslc:modifiedBy ], [ sh:datatype xsd:string ; sh:description "the name used for a slot in the context of its owning class. If present, this is used instead of the actual slot name." ; sh:maxCount 1 ; sh:order 0 ; sh:path skos:prefLabel ], - [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 10 ; - sh:path linkml:todos ], - [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 11 ; - sh:path skos:editorialNote ], - [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 22 ; - sh:path skos:altLabel ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 36 ; + sh:path sh:order ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path bibo:status ], [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; sh:order 24 ; sh:path skos:mappingRelation ], [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 12 ; - sh:path skos:note ], - [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 38 ; - sh:path schema1:keywords ], + sh:description "Outstanding issues that needs resolution" ; + sh:order 10 ; + sh:path linkml:todos ], [ sh:description "A related resource from which the element is derived." ; sh:maxCount 1 ; sh:order 17 ; - sh:path dcterms:source ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 27 ; - sh:path skos:relatedMatch ], - [ sh:description "agent that created the element" ; - sh:maxCount 1 ; - sh:order 30 ; - sh:path pav:createdBy ], - [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; - sh:maxCount 1 ; - sh:order 16 ; - sh:path linkml:imported_from ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 29 ; - sh:path skos:broadMatch ], - [ sh:class linkml:Example ; - sh:description "example usages of an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 13 ; - sh:path linkml:examples ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 26 ; - sh:path skos:closeMatch ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 28 ; - sh:path skos:narrowMatch ] ; + sh:path dcterms:source ] ; sh:targetClass linkml:DimensionExpression . -linkml:Prefix a sh:NodeShape ; +linkml:ExtraSlotsExpression a sh:NodeShape ; sh:closed true ; - sh:description "prefix URI tuple" ; + sh:description """An expression that defines how to handle additional data in an instance of class +beyond the slots/attributes defined for that class. +See `extra_slots` for usage examples. +""" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:anyURI ; - sh:description "The namespace to which a prefix expands to." ; + sh:property [ sh:class linkml:AnonymousClassExpression ; + sh:description "A range that is described as a boolean expression combining existing ranges" ; sh:maxCount 1 ; - sh:minCount 1 ; + sh:nodeKind sh:BlankNode ; sh:order 1 ; - sh:path sh:namespace ], - [ sh:datatype xsd:string ; - sh:description "The prefix components of a prefix expansions. This is the part that appears before the colon in a CURIE." ; + sh:path linkml:range_expression ], + [ sh:datatype xsd:boolean ; + sh:description "Whether or not something is allowed. Usage defined by context." ; sh:maxCount 1 ; - sh:minCount 1 ; sh:order 0 ; - sh:path sh:prefix ] ; - sh:targetClass linkml:Prefix . + sh:path linkml:allowed ] ; + sh:targetClass linkml:ExtraSlotsExpression . -linkml:UniqueKey a sh:NodeShape ; +linkml:Prefix a sh:NodeShape ; sh:closed true ; - sh:description "a collection of slots whose values uniquely identify an instance of a class" ; + sh:description "prefix URI tuple" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 37 ; - sh:path schema1:keywords ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; - sh:nodeKind sh:BlankNode ; - sh:order 22 ; - sh:path skosxl:altLabel ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; - sh:maxCount 1 ; - sh:order 14 ; - sh:path skos:inScheme ], - [ sh:datatype xsd:string ; - sh:description "name of the unique key" ; + sh:description "The prefix components of a prefix expansions. This is the part that appears before the colon in a CURIE." ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 0 ; - sh:path linkml:unique_key_name ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 28 ; - sh:path skos:broadMatch ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 36 ; - sh:path dcterms:subject ], - [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; + sh:path sh:prefix ], + [ sh:datatype xsd:anyURI ; + sh:description "The namespace to which a prefix expands to." ; sh:maxCount 1 ; - sh:order 17 ; - sh:path schema1:inLanguage ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 25 ; - sh:path skos:closeMatch ], + sh:minCount 1 ; + sh:order 1 ; + sh:path sh:namespace ] ; + sh:targetClass linkml:Prefix . + +linkml:TypeMapping a sh:NodeShape ; + sh:closed true ; + sh:description "Represents how a slot or type can be serialized to a format." ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path OIO:inSubset ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path pav:createdOn ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:extensions ], [ sh:datatype xsd:integer ; sh:description "the relative order in which the element occurs, lower values are given precedence" ; sh:maxCount 1 ; sh:order 35 ; sh:path sh:order ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 23 ; - sh:path skos:mappingRelation ], - [ sh:description "agent that modified the element" ; - sh:maxCount 1 ; - sh:order 33 ; - sh:path oslc:modifiedBy ], + [ sh:description "agent that contributed to the element" ; + sh:order 30 ; + sh:path dcterms:contributor ], [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:description """Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots. +We call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion. +Implementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects +For example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm""" ; sh:maxCount 1 ; - sh:order 15 ; - sh:path linkml:imported_from ], + sh:order 2 ; + sh:path linkml:string_serialization ], [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 11 ; - sh:path skos:note ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; - sh:nodeKind sh:BlankNode ; - sh:order 3 ; - sh:path linkml:extensions ], + sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path linkml:deprecated ], [ sh:datatype xsd:dateTime ; sh:description "time at which the element was last updated" ; sh:maxCount 1 ; sh:order 32 ; sh:path pav:lastUpdatedOn ], - [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 10 ; - sh:path skos:editorialNote ], - [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 21 ; - sh:path skos:altLabel ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; - sh:maxCount 1 ; - sh:order 31 ; - sh:path pav:createdOn ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 26 ; - sh:path skos:relatedMatch ], - [ sh:description "status of the element" ; + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 34 ; - sh:path bibo:status ], - [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 9 ; - sh:path linkml:todos ], - [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; + sh:order 19 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "agent that modified the element" ; sh:maxCount 1 ; - sh:order 8 ; - sh:path linkml:deprecated ], + sh:order 33 ; + sh:path oslc:modifiedBy ], [ sh:class linkml:AltDescription ; sh:description "A sourced alternative description for an element" ; sh:nodeKind sh:BlankNode ; sh:order 6 ; sh:path linkml:alt_descriptions ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 19 ; - sh:path linkml:deprecated_element_has_exact_replacement ], - [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path skos:definition ], [ sh:class linkml:Example ; sh:description "example usages of an element" ; sh:nodeKind sh:BlankNode ; sh:order 12 ; sh:path linkml:examples ], - [ sh:description "agent that created the element" ; + [ sh:datatype xsd:string ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; - sh:order 29 ; - sh:path pav:createdBy ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 18 ; - sh:path rdfs:seeAlso ], - [ sh:class linkml:SubsetDefinition ; - sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; - sh:nodeKind sh:IRI ; - sh:order 13 ; - sh:path OIO:inSubset ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 27 ; - sh:path skos:narrowMatch ], + sh:order 7 ; + sh:path dcterms:title ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path skos:inScheme ], + [ sh:datatype xsd:string ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path linkml:imported_from ], + [ sh:datatype xsd:string ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 10 ; + sh:path skos:editorialNote ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path dcterms:source ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 26 ; + sh:path skos:relatedMatch ], [ sh:class linkml:Annotation ; sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; sh:nodeKind sh:BlankNode ; sh:order 4 ; sh:path linkml:annotations ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + [ sh:datatype xsd:string ; + sh:description "The name of a format that can be used to serialize LinkML data. The string value should be a code from the LinkML frameworks vocabulary, but this is not strictly enforced" ; sh:maxCount 1 ; - sh:order 20 ; - sh:path linkml:deprecated_element_has_possible_replacement ], - [ sh:description "A related resource from which the element is derived." ; + sh:minCount 1 ; + sh:order 0 ; + sh:path linkml:framework_key ], + [ sh:description "agent that created the element" ; sh:maxCount 1 ; - sh:order 16 ; - sh:path dcterms:source ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 24 ; - sh:path skos:exactMatch ], - [ sh:datatype xsd:boolean ; - sh:description "By default, None values are considered equal for the purposes of comparisons in determining uniqueness. Set this to true to treat missing values as per ANSI-SQL NULLs, i.e NULL=NULL is always False." ; + sh:order 29 ; + sh:path pav:createdBy ], + [ sh:datatype xsd:string ; + sh:description "the primary language used in the sources" ; sh:maxCount 1 ; - sh:order 2 ; - sh:path linkml:consider_nulls_inequal ], - [ sh:description "agent that contributed to the element" ; - sh:order 30 ; - sh:path dcterms:contributor ], + sh:order 17 ; + sh:path schema1:inLanguage ], [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 9 ; + sh:path linkml:todos ], + [ sh:class linkml:TypeDefinition ; + sh:description "type to coerce to" ; sh:maxCount 1 ; - sh:order 7 ; - sh:path dcterms:title ], - [ sh:class linkml:SlotDefinition ; - sh:description "list of slot names that form a key. The tuple formed from the values of all these slots should be unique." ; - sh:minCount 1 ; sh:nodeKind sh:IRI ; sh:order 1 ; - sh:path linkml:unique_key_slots ] ; - sh:targetClass linkml:UniqueKey . - -linkml:Setting a sh:NodeShape ; - sh:closed true ; - sh:description "assignment of a key to a value" ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "The value assigned for a setting" ; + sh:path linkml:mapped_type ], + [ sh:description "status of the element" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 1 ; - sh:path linkml:setting_value ], + sh:order 34 ; + sh:path bibo:status ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 25 ; + sh:path skos:closeMatch ], [ sh:datatype xsd:string ; - sh:description "the variable name for a setting" ; + sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 0 ; - sh:path linkml:setting_key ] ; - sh:targetClass linkml:Setting . + sh:order 5 ; + sh:path skos:definition ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 24 ; + sh:path skos:exactMatch ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 22 ; + sh:path skosxl:altLabel ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 36 ; + sh:path dcterms:subject ], + [ sh:datatype xsd:string ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 11 ; + sh:path skos:note ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 23 ; + sh:path skos:mappingRelation ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 18 ; + sh:path rdfs:seeAlso ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 27 ; + sh:path skos:narrowMatch ], + [ sh:datatype xsd:string ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 21 ; + sh:path skos:altLabel ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 28 ; + sh:path skos:broadMatch ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 37 ; + sh:path schema1:keywords ] ; + sh:targetClass linkml:TypeMapping . -linkml:Element a sh:NodeShape ; - sh:closed false ; - sh:description "A named element in the model" ; +linkml:UniqueKey a sh:NodeShape ; + sh:closed true ; + sh:description "a collection of slots whose values uniquely identify an instance of a class" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; sh:description "Keywords or tags used to describe the element" ; - sh:order 42 ; + sh:order 37 ; sh:path schema1:keywords ], + [ sh:class linkml:SlotDefinition ; + sh:description "list of slot names that form a key. The tuple formed from the values of all these slots should be unique." ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path linkml:unique_key_slots ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 18 ; + sh:path rdfs:seeAlso ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path dcterms:source ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 26 ; + sh:path skos:relatedMatch ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path pav:createdBy ], [ sh:datatype xsd:string ; sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 16 ; + sh:order 11 ; sh:path skos:note ], - [ sh:description "A related resource from which the element is derived." ; + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 21 ; - sh:path dcterms:source ], + sh:order 19 ; + sh:path linkml:deprecated_element_has_exact_replacement ], [ sh:datatype xsd:string ; - sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; + sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path schema1:inLanguage ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path skos:inScheme ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 27 ; + sh:path skos:narrowMatch ], + [ sh:datatype xsd:string ; + sh:description "name of the unique key" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 0 ; - sh:path rdfs:label ], + sh:path linkml:unique_key_name ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 24 ; + sh:path skos:exactMatch ], [ sh:datatype xsd:string ; - sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; - sh:order 1 ; - sh:path linkml:id_prefixes ], - [ sh:datatype xsd:boolean ; - sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path linkml:id_prefixes_are_closed ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 41 ; - sh:path dcterms:subject ], + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 10 ; + sh:path skos:editorialNote ], [ sh:datatype xsd:string ; sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; - sh:order 12 ; + sh:order 7 ; sh:path dcterms:title ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 28 ; - sh:path skos:mappingRelation ], [ sh:description "status of the element" ; sh:maxCount 1 ; - sh:order 39 ; + sh:order 34 ; sh:path bibo:status ], - [ sh:class linkml:SubsetDefinition ; - sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; - sh:nodeKind sh:IRI ; - sh:order 18 ; - sh:path OIO:inSubset ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 31 ; - sh:path skos:relatedMatch ], - [ sh:datatype xsd:string ; - sh:description "An established standard to which the element conforms." ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path dcterms:conformsTo ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; sh:nodeKind sh:BlankNode ; - sh:order 27 ; - sh:path skosxl:altLabel ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; + sh:order 6 ; + sh:path linkml:alt_descriptions ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 37 ; - sh:path pav:lastUpdatedOn ], + sh:order 20 ; + sh:path linkml:deprecated_element_has_possible_replacement ], [ sh:class linkml:Annotation ; sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; sh:nodeKind sh:BlankNode ; - sh:order 9 ; + sh:order 4 ; sh:path linkml:annotations ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; - sh:nodeKind sh:BlankNode ; - sh:order 8 ; - sh:path linkml:extensions ], - [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; - sh:maxCount 1 ; - sh:order 13 ; - sh:path linkml:deprecated ], - [ sh:class linkml:Example ; - sh:description "example usages of an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 17 ; - sh:path linkml:examples ], [ sh:datatype xsd:string ; sh:description "Outstanding issues that needs resolution" ; - sh:order 14 ; + sh:order 9 ; sh:path linkml:todos ], - [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 25 ; + sh:path skos:closeMatch ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; sh:maxCount 1 ; + sh:order 35 ; + sh:path sh:order ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; sh:order 3 ; - sh:path linkml:definition_uri ], + sh:path linkml:extensions ], [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; - sh:maxCount 1 ; - sh:order 20 ; - sh:path linkml:imported_from ], - [ sh:class linkml:LocalName ; - sh:nodeKind sh:BlankNode ; - sh:order 4 ; - sh:path linkml:local_names ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 33 ; - sh:path skos:broadMatch ], - [ sh:description "agent that contributed to the element" ; - sh:order 35 ; - sh:path dcterms:contributor ], - [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; - sh:order 6 ; - sh:path linkml:implements ], - [ sh:description "agent that created the element" ; - sh:maxCount 1 ; - sh:order 34 ; - sh:path pav:createdBy ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; + sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; - sh:order 36 ; - sh:path pav:createdOn ], - [ sh:description "An element in another schema which this element instantiates." ; - sh:order 7 ; - sh:path linkml:instantiates ], - [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; + sh:order 8 ; + sh:path linkml:deprecated ], + [ sh:datatype xsd:boolean ; + sh:description "By default, None values are considered equal for the purposes of comparisons in determining uniqueness. Set this to true to treat missing values as per ANSI-SQL NULLs, i.e NULL=NULL is always False." ; sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:consider_nulls_inequal ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; sh:order 22 ; - sh:path schema1:inLanguage ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 30 ; - sh:path skos:closeMatch ], - [ sh:description "agent that modified the element" ; + sh:path skosxl:altLabel ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; sh:maxCount 1 ; - sh:order 38 ; - sh:path oslc:modifiedBy ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 11 ; - sh:path linkml:alt_descriptions ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; sh:order 32 ; - sh:path skos:narrowMatch ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 24 ; - sh:path linkml:deprecated_element_has_exact_replacement ], + sh:path pav:lastUpdatedOn ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 23 ; + sh:path skos:mappingRelation ], [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 15 ; - sh:path skos:editorialNote ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 25 ; - sh:path linkml:deprecated_element_has_possible_replacement ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 19 ; - sh:path skos:inScheme ], + sh:order 15 ; + sh:path linkml:imported_from ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 36 ; + sh:path dcterms:subject ], [ sh:datatype xsd:string ; sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 26 ; + sh:order 21 ; sh:path skos:altLabel ], - [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; + [ sh:description "agent that modified the element" ; sh:maxCount 1 ; - sh:order 40 ; - sh:path sh:order ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 29 ; - sh:path skos:exactMatch ], + sh:order 33 ; + sh:path oslc:modifiedBy ], [ sh:datatype xsd:string ; sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; - sh:order 10 ; - sh:path skos:definition ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 23 ; - sh:path rdfs:seeAlso ] ; - sh:targetClass linkml:Element . - -linkml:EnumExpression a sh:NodeShape ; - sh:closed true ; - sh:description "An expression that constrains the range of a slot" ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "the identifier of an enumeration code set." ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path linkml:code_set ], - [ sh:class linkml:EnumDefinition ; - sh:description "An enum definition that is used as the basis to create a new enum" ; - sh:nodeKind sh:IRI ; - sh:order 7 ; - sh:path linkml:inherits ], - [ sh:class linkml:AnonymousEnumExpression ; - sh:description "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set" ; - sh:nodeKind sh:BlankNode ; sh:order 5 ; - sh:path linkml:include ], - [ sh:description "A list of identifiers that are used to construct a set of permissible values" ; - sh:order 10 ; - sh:path linkml:concepts ], - [ sh:class linkml:AnonymousEnumExpression ; - sh:description "An enum expression that yields a list of permissible values that are to be subtracted from the enum" ; - sh:nodeKind sh:BlankNode ; - sh:order 6 ; - sh:path linkml:minus ], - [ sh:datatype xsd:string ; - sh:description "the version identifier of the enumeration code set" ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path linkml:code_set_version ], - [ sh:class linkml:MatchQuery ; - sh:description "Specifies a match query that is used to calculate the list of permissible values" ; + sh:path skos:definition ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 28 ; + sh:path skos:broadMatch ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; sh:maxCount 1 ; + sh:order 31 ; + sh:path pav:createdOn ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; sh:nodeKind sh:BlankNode ; - sh:order 9 ; - sh:path linkml:matches ], - [ sh:class linkml:PermissibleValue ; - sh:description "A list of possible values for a slot range" ; + sh:order 12 ; + sh:path linkml:examples ], + [ sh:description "agent that contributed to the element" ; + sh:order 30 ; + sh:path dcterms:contributor ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; sh:nodeKind sh:IRI ; - sh:order 4 ; - sh:path linkml:permissible_values ], - [ sh:description "Defines the specific formula to be used to generate the permissible values." ; - sh:in ( "CODE" "CURIE" "URI" "FHIR_CODING" "LABEL" ) ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:pv_formula ], - [ sh:class linkml:ReachabilityQuery ; - sh:description "Specifies a query for obtaining a list of permissible values based on graph reachability" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 8 ; - sh:path linkml:reachable_from ], - [ sh:datatype xsd:string ; - sh:description "the version tag of the enumeration code set" ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path linkml:code_set_tag ] ; - sh:targetClass linkml:EnumExpression . + sh:order 13 ; + sh:path OIO:inSubset ] ; + sh:targetClass linkml:UniqueKey . -linkml:MatchQuery a sh:NodeShape ; +linkml:Setting a sh:NodeShape ; sh:closed true ; - sh:description "A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts." ; + sh:description "assignment of a key to a value" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values" ; + sh:property [ sh:datatype xsd:string ; + sh:description "the variable name for a setting" ; sh:maxCount 1 ; - sh:order 1 ; - sh:path linkml:source_ontology ], + sh:minCount 1 ; + sh:order 0 ; + sh:path linkml:setting_key ], [ sh:datatype xsd:string ; - sh:description "A regular expression that is used to obtain a set of identifiers from a source_ontology to construct a set of permissible values" ; + sh:description "The value assigned for a setting" ; sh:maxCount 1 ; - sh:order 0 ; - sh:path linkml:identifier_pattern ] ; - sh:targetClass linkml:MatchQuery . + sh:minCount 1 ; + sh:order 1 ; + sh:path linkml:setting_value ] ; + sh:targetClass linkml:Setting . -linkml:PermissibleValue a sh:NodeShape ; +linkml:ArrayExpression a sh:NodeShape ; sh:closed true ; - sh:description "a permissible value, accompanied by intended text and an optional mapping to a concept URI" ; + sh:description "defines the dimensions of an array" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 10 ; - sh:path skos:editorialNote ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 36 ; - sh:path dcterms:subject ], - [ sh:description "agent that created the element" ; + sh:property [ sh:description "agent that contributed to the element" ; + sh:order 31 ; + sh:path dcterms:contributor ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 29 ; - sh:path pav:createdBy ], - [ sh:description "agent that modified the element" ; + sh:order 20 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 33 ; - sh:path oslc:modifiedBy ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 21 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; sh:order 25 ; - sh:path skos:closeMatch ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:path skos:exactMatch ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; - sh:order 5 ; - sh:path linkml:annotations ], - [ sh:description "the value meaning of a permissible value" ; + sh:order 4 ; + sh:path linkml:extensions ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 19 ; + sh:path rdfs:seeAlso ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; sh:maxCount 1 ; - sh:order 2 ; - sh:path linkml:meaning ], + sh:order 32 ; + sh:path pav:createdOn ], [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; - sh:maxCount 1 ; - sh:order 7 ; - sh:path dcterms:title ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 27 ; - sh:path skos:narrowMatch ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; - sh:nodeKind sh:BlankNode ; - sh:order 4 ; - sh:path linkml:extensions ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; - sh:nodeKind sh:BlankNode ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; sh:order 22 ; - sh:path skosxl:altLabel ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:path skos:altLabel ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 14 ; + sh:path OIO:inSubset ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; sh:maxCount 1 ; - sh:order 20 ; - sh:path linkml:deprecated_element_has_possible_replacement ], + sh:order 33 ; + sh:path pav:lastUpdatedOn ], [ sh:datatype xsd:string ; sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 15 ; + sh:order 16 ; sh:path linkml:imported_from ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; - sh:maxCount 1 ; - sh:order 31 ; - sh:path pav:createdOn ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 24 ; - sh:path skos:exactMatch ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 18 ; - sh:path rdfs:seeAlso ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 28 ; - sh:path skos:broadMatch ], - [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; - sh:maxCount 1 ; - sh:order 35 ; - sh:path sh:order ], - [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path skos:definition ], [ sh:datatype xsd:string ; sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 11 ; - sh:path skos:note ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 6 ; - sh:path linkml:alt_descriptions ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 26 ; - sh:path skos:relatedMatch ], - [ sh:class linkml:Example ; - sh:description "example usages of an element" ; - sh:nodeKind sh:BlankNode ; sh:order 12 ; - sh:path linkml:examples ], + sh:path skos:note ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path pav:createdBy ], [ sh:description "A related resource from which the element is derived." ; sh:maxCount 1 ; - sh:order 16 ; + sh:order 17 ; sh:path dcterms:source ], - [ sh:description "agent that contributed to the element" ; - sh:order 30 ; - sh:path dcterms:contributor ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 26 ; + sh:path skos:closeMatch ], [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 10 ; + sh:path linkml:todos ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 24 ; + sh:path skos:mappingRelation ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 23 ; + sh:path skosxl:altLabel ], + [ sh:datatype xsd:string ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; sh:order 8 ; - sh:path linkml:deprecated ], + sh:path dcterms:title ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 29 ; + sh:path skos:broadMatch ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 13 ; + sh:path linkml:examples ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 37 ; + sh:path dcterms:subject ], [ sh:datatype xsd:anyURI ; sh:description "id of the schema that defined the element" ; sh:maxCount 1 ; - sh:order 14 ; + sh:order 15 ; sh:path skos:inScheme ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 7 ; + sh:path linkml:alt_descriptions ], [ sh:datatype xsd:string ; - sh:description "The actual permissible value itself" ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 11 ; + sh:path skos:editorialNote ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 0 ; - sh:path linkml:text ], + sh:order 36 ; + sh:path sh:order ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 5 ; + sh:path linkml:annotations ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path oslc:modifiedBy ], [ sh:datatype xsd:string ; sh:description "Keywords or tags used to describe the element" ; - sh:order 37 ; + sh:order 38 ; sh:path schema1:keywords ], - [ sh:class qudt:Unit ; - sh:description "an encoding of a unit" ; + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 27 ; + sh:path skos:relatedMatch ], + [ sh:datatype xsd:integer ; + sh:description "exact number of dimensions in the array" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path linkml:exact_number_dimensions ], + [ sh:class linkml:Any ; + sh:description "maximum number of dimensions in the array, or False if explicitly no maximum. If this is unset, and an explicit list of dimensions are passed using dimensions, then this is interpreted as a closed list and the maximum_number_dimensions is the length of the dimensions list, unless this value is set to False" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; - sh:order 3 ; - sh:path qudt:unit ], - [ sh:description "status of the element" ; + sh:order 2 ; + sh:path linkml:maximum_number_dimensions ], + [ sh:datatype xsd:integer ; + sh:description "minimum number of dimensions in the array" ; sh:maxCount 1 ; - sh:order 34 ; - sh:path bibo:status ], - [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 9 ; - sh:path linkml:todos ], + sh:order 1 ; + sh:path linkml:minimum_number_dimensions ], [ sh:datatype xsd:string ; sh:description "the primary language used in the sources" ; sh:maxCount 1 ; - sh:order 17 ; + sh:order 18 ; sh:path schema1:inLanguage ], - [ sh:class linkml:SubsetDefinition ; - sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; - sh:nodeKind sh:IRI ; - sh:order 13 ; - sh:path OIO:inSubset ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 23 ; - sh:path skos:mappingRelation ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + [ sh:class linkml:DimensionExpression ; + sh:description "definitions of each axis in the array" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:dimensions ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 28 ; + sh:path skos:narrowMatch ], + [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; - sh:order 19 ; - sh:path linkml:deprecated_element_has_exact_replacement ], + sh:order 6 ; + sh:path skos:definition ], [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 21 ; - sh:path skos:altLabel ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; + sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; - sh:order 32 ; - sh:path pav:lastUpdatedOn ] ; - sh:targetClass linkml:PermissibleValue . + sh:order 9 ; + sh:path linkml:deprecated ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path bibo:status ] ; + sh:targetClass linkml:ArrayExpression . -linkml:ReachabilityQuery a sh:NodeShape ; - sh:closed true ; - sh:description "A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types." ; +linkml:Element a sh:NodeShape ; + sh:closed false ; + sh:description "A named element in the model" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:boolean ; - sh:description "True if the query is reflexive" ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path linkml:include_self ], - [ sh:description "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values" ; + sh:property [ sh:datatype xsd:string ; + sh:description "An established standard to which the element conforms." ; sh:maxCount 1 ; - sh:order 0 ; - sh:path linkml:source_ontology ], - [ sh:description "A list of relationship types (properties) that are used in a reachability query" ; - sh:order 2 ; - sh:path linkml:relationship_types ], - [ sh:datatype xsd:boolean ; - sh:description "True if the reachability query should only include directly related nodes, if False then include also transitively connected" ; + sh:order 5 ; + sh:path dcterms:conformsTo ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 28 ; + sh:path skos:mappingRelation ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 6 ; + sh:path linkml:implements ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 29 ; + sh:path skos:exactMatch ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 42 ; + sh:path schema1:keywords ], + [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:is_direct ], - [ sh:description "A list of nodes that are used in the reachability query" ; + sh:order 10 ; + sh:path skos:definition ], + [ sh:datatype xsd:string ; + sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; sh:order 1 ; - sh:path linkml:source_nodes ], - [ sh:datatype xsd:boolean ; - sh:description "True if the direction of the reachability query is reversed and ancestors are retrieved" ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path linkml:traverse_up ] ; - sh:targetClass linkml:ReachabilityQuery . - -linkml:EnumDefinition a sh:NodeShape ; - sh:closed true ; - sh:description "an element whose instances must be drawn from a specified set of permissible values" ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "status of the element" ; + sh:path linkml:id_prefixes ], + [ sh:description "agent that contributed to the element" ; + sh:order 35 ; + sh:path dcterms:contributor ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 30 ; + sh:path skos:closeMatch ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 27 ; + sh:path skosxl:altLabel ], + [ sh:description "agent that created the element" ; sh:maxCount 1 ; - sh:order 58 ; - sh:path bibo:status ], - [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; sh:order 34 ; - sh:path skos:editorialNote ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 44 ; - sh:path linkml:deprecated_element_has_possible_replacement ], + sh:path pav:createdBy ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 7 ; + sh:path linkml:instantiates ], [ sh:class linkml:Example ; sh:description "example usages of an element" ; sh:nodeKind sh:BlankNode ; - sh:order 36 ; + sh:order 17 ; sh:path linkml:examples ], - [ sh:class linkml:Definition ; - sh:description "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class." ; - sh:nodeKind sh:IRI ; - sh:order 16 ; - sh:path linkml:apply_to ], - [ sh:description "Defines the specific formula to be used to generate the permissible values." ; - sh:in ( "CODE" "CURIE" "URI" "FHIR_CODING" "LABEL" ) ; + [ sh:description "A related resource from which the element is derived." ; sh:maxCount 1 ; - sh:order 4 ; - sh:path linkml:pv_formula ], - [ sh:class linkml:PermissibleValue ; - sh:description "A list of possible values for a slot range" ; - sh:nodeKind sh:IRI ; - sh:order 5 ; - sh:path linkml:permissible_values ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:order 21 ; + sh:path dcterms:source ], + [ sh:description "agent that modified the element" ; sh:maxCount 1 ; - sh:order 43 ; - sh:path linkml:deprecated_element_has_exact_replacement ], + sh:order 38 ; + sh:path oslc:modifiedBy ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 36 ; + sh:path pav:createdOn ], + [ sh:class linkml:LocalName ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path linkml:local_names ], [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 61 ; - sh:path schema1:keywords ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 60 ; - sh:path dcterms:subject ], - [ sh:datatype xsd:boolean ; - sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 26 ; + sh:path skos:altLabel ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 21 ; - sh:path linkml:id_prefixes_are_closed ], + sh:order 25 ; + sh:path linkml:deprecated_element_has_possible_replacement ], [ sh:datatype xsd:string ; - sh:description "the version identifier of the enumeration code set" ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 15 ; + sh:path skos:editorialNote ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; sh:maxCount 1 ; sh:order 3 ; - sh:path linkml:code_set_version ], - [ sh:description "An element in another schema which this element instantiates." ; - sh:order 26 ; - sh:path linkml:instantiates ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 52 ; - sh:path skos:broadMatch ], - [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; - sh:maxCount 1 ; - sh:order 59 ; - sh:path sh:order ], + sh:path linkml:definition_uri ], [ sh:datatype xsd:string ; sh:description "Outstanding issues that needs resolution" ; - sh:order 33 ; - sh:path linkml:todos ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 50 ; - sh:path skos:relatedMatch ], - [ sh:datatype xsd:boolean ; - sh:description "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins." ; - sh:maxCount 1 ; sh:order 14 ; - sh:path linkml:mixin ], - [ sh:description "agent that contributed to the element" ; - sh:order 54 ; - sh:path dcterms:contributor ], - [ sh:datatype xsd:string ; - sh:description """Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots. -We call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion. -Implementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects -For example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm""" ; - sh:maxCount 1 ; - sh:order 18 ; - sh:path linkml:string_serialization ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:path linkml:todos ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; - sh:order 46 ; - sh:path skosxl:altLabel ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 42 ; - sh:path rdfs:seeAlso ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:order 8 ; + sh:path linkml:extensions ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 41 ; + sh:path dcterms:subject ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; sh:nodeKind sh:BlankNode ; - sh:order 28 ; - sh:path linkml:annotations ], - [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; - sh:maxCount 1 ; - sh:order 39 ; - sh:path linkml:imported_from ], + sh:order 11 ; + sh:path linkml:alt_descriptions ], [ sh:datatype xsd:string ; - sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; - sh:order 20 ; - sh:path linkml:id_prefixes ], - [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:description "the primary language used in the sources" ; sh:maxCount 1 ; sh:order 22 ; - sh:path linkml:definition_uri ], - [ sh:description "agent that modified the element" ; - sh:maxCount 1 ; - sh:order 57 ; - sh:path oslc:modifiedBy ], + sh:path schema1:inLanguage ], [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 29 ; - sh:path skos:definition ], + sh:order 20 ; + sh:path linkml:imported_from ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 39 ; + sh:path bibo:status ], [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; sh:maxCount 1 ; - sh:order 31 ; - sh:path dcterms:title ], + sh:minCount 1 ; + sh:order 0 ; + sh:path rdfs:label ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 23 ; + sh:path rdfs:seeAlso ], [ sh:datatype xsd:string ; sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; - sh:order 32 ; - sh:path linkml:deprecated ], - [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; - sh:order 25 ; - sh:path linkml:implements ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 30 ; - sh:path linkml:alt_descriptions ], - [ sh:class linkml:Definition ; - sh:description "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from." ; - sh:nodeKind sh:IRI ; - sh:order 15 ; - sh:path linkml:mixins ], - [ sh:datatype xsd:boolean ; - sh:description "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes." ; - sh:maxCount 1 ; sh:order 13 ; - sh:path linkml:abstract ], + sh:path linkml:deprecated ], [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 51 ; + sh:order 32 ; sh:path skos:narrowMatch ], [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; - sh:maxCount 1 ; - sh:order 41 ; - sh:path schema1:inLanguage ], - [ sh:class linkml:AnonymousEnumExpression ; - sh:description "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set" ; - sh:nodeKind sh:BlankNode ; - sh:order 6 ; - sh:path linkml:include ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 49 ; - sh:path skos:closeMatch ], - [ sh:class linkml:Definition ; - sh:description "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded" ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 16 ; + sh:path skos:note ], + [ sh:datatype xsd:string ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; sh:order 12 ; - sh:path linkml:is_a ], - [ sh:description "URI of the enum that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas" ; + sh:path dcterms:title ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; sh:maxCount 1 ; - sh:order 0 ; - sh:path linkml:enum_uri ], - [ sh:description "A list of identifiers that are used to construct a set of permissible values" ; - sh:order 11 ; - sh:path linkml:concepts ], - [ sh:class linkml:AnonymousEnumExpression ; - sh:description "An enum expression that yields a list of permissible values that are to be subtracted from the enum" ; - sh:nodeKind sh:BlankNode ; - sh:order 7 ; - sh:path linkml:minus ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:order 40 ; + sh:path sh:order ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; sh:nodeKind sh:BlankNode ; - sh:order 27 ; - sh:path linkml:extensions ], - [ sh:datatype xsd:string ; - sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; + sh:order 9 ; + sh:path linkml:annotations ], + [ sh:datatype xsd:boolean ; + sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 19 ; - sh:path rdfs:label ], - [ sh:class linkml:EnumDefinition ; - sh:description "An enum definition that is used as the basis to create a new enum" ; - sh:nodeKind sh:IRI ; - sh:order 8 ; - sh:path linkml:inherits ], + sh:order 2 ; + sh:path linkml:id_prefixes_are_closed ], [ sh:datatype xsd:dateTime ; sh:description "time at which the element was last updated" ; sh:maxCount 1 ; - sh:order 56 ; + sh:order 37 ; sh:path pav:lastUpdatedOn ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 48 ; - sh:path skos:exactMatch ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 47 ; - sh:path skos:mappingRelation ], - [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 45 ; - sh:path skos:altLabel ], - [ sh:datatype xsd:string ; - sh:description "An established standard to which the element conforms." ; - sh:maxCount 1 ; - sh:order 24 ; - sh:path dcterms:conformsTo ], - [ sh:description "the identifier of an enumeration code set." ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path linkml:code_set ], - [ sh:description "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model." ; - sh:order 17 ; - sh:path linkml:values_from ], - [ sh:datatype xsd:string ; - sh:description "the version tag of the enumeration code set" ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path linkml:code_set_tag ], - [ sh:description "A related resource from which the element is derived." ; - sh:maxCount 1 ; - sh:order 40 ; - sh:path dcterms:source ], - [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 35 ; - sh:path skos:note ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 33 ; + sh:path skos:broadMatch ], [ sh:class linkml:SubsetDefinition ; sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; sh:nodeKind sh:IRI ; - sh:order 37 ; + sh:order 18 ; sh:path OIO:inSubset ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 31 ; + sh:path skos:relatedMatch ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 24 ; + sh:path linkml:deprecated_element_has_exact_replacement ], [ sh:datatype xsd:anyURI ; sh:description "id of the schema that defined the element" ; sh:maxCount 1 ; - sh:order 38 ; - sh:path skos:inScheme ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; + sh:order 19 ; + sh:path skos:inScheme ] ; + sh:targetClass linkml:Element . + +linkml:EnumExpression a sh:NodeShape ; + sh:closed true ; + sh:description "An expression that constrains the range of a slot" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:AnonymousEnumExpression ; + sh:description "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set" ; + sh:nodeKind sh:BlankNode ; + sh:order 5 ; + sh:path linkml:include ], + [ sh:description "Defines the specific formula to be used to generate the permissible values." ; + sh:in ( "CODE" "CURIE" "URI" "FHIR_CODING" "LABEL" ) ; sh:maxCount 1 ; - sh:order 55 ; - sh:path pav:createdOn ], + sh:order 3 ; + sh:path linkml:pv_formula ], [ sh:class linkml:MatchQuery ; sh:description "Specifies a match query that is used to calculate the list of permissible values" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; - sh:order 10 ; + sh:order 9 ; sh:path linkml:matches ], - [ sh:class linkml:ReachabilityQuery ; - sh:description "Specifies a query for obtaining a list of permissible values based on graph reachability" ; + [ sh:datatype xsd:string ; + sh:description "the version tag of the enumeration code set" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:code_set_tag ], + [ sh:datatype xsd:string ; + sh:description "the version identifier of the enumeration code set" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:code_set_version ], + [ sh:class linkml:EnumDefinition ; + sh:description "An enum definition that is used as the basis to create a new enum" ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path linkml:inherits ], + [ sh:class linkml:PermissibleValue ; + sh:description "A list of possible values for a slot range" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path linkml:permissible_values ], + [ sh:description "the identifier of an enumeration code set." ; sh:maxCount 1 ; + sh:order 0 ; + sh:path linkml:code_set ], + [ sh:class linkml:AnonymousEnumExpression ; + sh:description "An enum expression that yields a list of permissible values that are to be subtracted from the enum" ; sh:nodeKind sh:BlankNode ; - sh:order 9 ; - sh:path linkml:reachable_from ], - [ sh:description "agent that created the element" ; + sh:order 6 ; + sh:path linkml:minus ], + [ sh:description "A list of identifiers that are used to construct a set of permissible values" ; + sh:order 10 ; + sh:path linkml:concepts ], + [ sh:class linkml:ReachabilityQuery ; + sh:description "Specifies a query for obtaining a list of permissible values based on graph reachability" ; sh:maxCount 1 ; - sh:order 53 ; - sh:path pav:createdBy ], - [ sh:class linkml:LocalName ; sh:nodeKind sh:BlankNode ; - sh:order 23 ; - sh:path linkml:local_names ] ; - sh:targetClass linkml:EnumDefinition . + sh:order 8 ; + sh:path linkml:reachable_from ] ; + sh:targetClass linkml:EnumExpression . -linkml:TypeDefinition a sh:NodeShape ; +linkml:MatchQuery a sh:NodeShape ; sh:closed true ; - sh:description "an element that whose instances are atomic scalar values that can be mapped to primitive types" ; + sh:description "A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts." ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 60 ; - sh:path schema1:keywords ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; - sh:nodeKind sh:BlankNode ; - sh:order 26 ; - sh:path linkml:extensions ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; - sh:nodeKind sh:BlankNode ; - sh:order 45 ; - sh:path skosxl:altLabel ], - [ sh:datatype xsd:string ; - sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; - sh:order 10 ; - sh:path linkml:equals_string_in ], - [ sh:description "agent that created the element" ; + sh:description "A regular expression that is used to obtain a set of identifiers from a source_ontology to construct a set of permissible values" ; sh:maxCount 1 ; - sh:order 52 ; - sh:path pav:createdBy ], - [ sh:datatype xsd:string ; - sh:description "An established standard to which the element conforms." ; + sh:order 0 ; + sh:path linkml:identifier_pattern ], + [ sh:description "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values" ; sh:maxCount 1 ; - sh:order 23 ; - sh:path dcterms:conformsTo ], - [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; + sh:order 1 ; + sh:path linkml:source_ontology ] ; + sh:targetClass linkml:MatchQuery . + +linkml:ReachabilityQuery a sh:NodeShape ; + sh:closed true ; + sh:description "A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types." ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:datatype xsd:boolean ; + sh:description "True if the reachability query should only include directly related nodes, if False then include also transitively connected" ; sh:maxCount 1 ; - sh:order 40 ; - sh:path schema1:inLanguage ], - [ sh:description "A related resource from which the element is derived." ; + sh:order 3 ; + sh:path linkml:is_direct ], + [ sh:description "A list of nodes that are used in the reachability query" ; + sh:order 1 ; + sh:path linkml:source_nodes ], + [ sh:description "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values" ; sh:maxCount 1 ; - sh:order 39 ; - sh:path dcterms:source ], - [ sh:class linkml:TypeDefinition ; - sh:description "indicates that the domain element consists exactly of the members of the element in the range." ; - sh:nodeKind sh:IRI ; - sh:order 4 ; - sh:path linkml:union_of ], - [ sh:datatype xsd:string ; - sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + sh:order 0 ; + sh:path linkml:source_ontology ], + [ sh:datatype xsd:boolean ; + sh:description "True if the direction of the reachability query is reversed and ancestors are retrieved" ; sh:maxCount 1 ; sh:order 5 ; - sh:path linkml:pattern ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 50 ; - sh:path skos:narrowMatch ], + sh:path linkml:traverse_up ], + [ sh:description "A list of relationship types (properties) that are used in a reachability query" ; + sh:order 2 ; + sh:path linkml:relationship_types ], + [ sh:datatype xsd:boolean ; + sh:description "True if the query is reflexive" ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path linkml:include_self ] ; + sh:targetClass linkml:ReachabilityQuery . + +linkml:EnumBinding a sh:NodeShape ; + sh:closed true ; + sh:description "A binding of a slot or a class to a permissible value from an enumeration." ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:datatype xsd:string ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 22 ; + sh:path skos:altLabel ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 14 ; + sh:path OIO:inSubset ], [ sh:datatype xsd:string ; sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; - sh:order 31 ; + sh:order 9 ; sh:path linkml:deprecated ], - [ sh:description "agent that modified the element" ; - sh:maxCount 1 ; - sh:order 56 ; - sh:path oslc:modifiedBy ], - [ sh:class linkml:LocalName ; - sh:nodeKind sh:BlankNode ; - sh:order 22 ; - sh:path linkml:local_names ], - [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; - sh:maxCount 1 ; - sh:order 21 ; - sh:path linkml:definition_uri ], [ sh:datatype xsd:string ; - sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 8 ; - sh:path linkml:implicit_prefix ], + sh:order 16 ; + sh:path linkml:imported_from ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 19 ; + sh:path rdfs:seeAlso ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path linkml:deprecated_element_has_exact_replacement ], [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 47 ; + sh:order 25 ; sh:path skos:exactMatch ], - [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; - sh:order 24 ; - sh:path linkml:implements ], - [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + [ sh:description "The level of obligation or recommendation strength for a metadata element" ; + sh:in ( "REQUIRED" "RECOMMENDED" "OPTIONAL" "EXAMPLE" "DISCOURAGED" ) ; sh:maxCount 1 ; - sh:order 30 ; - sh:path dcterms:title ], - [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 32 ; - sh:path linkml:todos ], - [ sh:class linkml:Any ; - sh:description "For ordinal ranges, the value must be equal to or higher than this" ; + sh:order 1 ; + sh:path linkml:obligation_level ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 12 ; - sh:path linkml:minimum_value ], + sh:order 15 ; + sh:path skos:inScheme ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path pav:createdBy ], [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 49 ; + sh:order 27 ; sh:path skos:relatedMatch ], - [ sh:class linkml:PatternExpression ; - sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 7 ; + sh:path linkml:alt_descriptions ], + [ sh:datatype xsd:string ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 12 ; + sh:path skos:note ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path oslc:modifiedBy ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path dcterms:source ], + [ sh:description "agent that contributed to the element" ; + sh:order 31 ; + sh:path dcterms:contributor ], + [ sh:description "status of the element" ; sh:maxCount 1 ; + sh:order 35 ; + sh:path bibo:status ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 29 ; + sh:path skos:broadMatch ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 38 ; + sh:path schema1:keywords ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; - sh:order 6 ; - sh:path linkml:structured_pattern ], - [ sh:class linkml:AnonymousTypeExpression ; - sh:description "holds if none of the expressions hold" ; + sh:order 4 ; + sh:path linkml:extensions ], + [ sh:datatype xsd:string ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 11 ; + sh:path skos:editorialNote ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; sh:nodeKind sh:BlankNode ; - sh:order 14 ; - sh:path linkml:none_of ], - [ sh:class linkml:SubsetDefinition ; - sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:order 13 ; + sh:path linkml:examples ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 5 ; + sh:path linkml:annotations ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:class linkml:EnumDefinition ; + sh:description """defines the type of the object of the slot. Given the following slot definition + S1: + domain: C1 + range: C2 +the declaration + X: + S1: Y + +implicitly asserts Y is an instance of C2 +""" ; + sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 36 ; - sh:path OIO:inSubset ], + sh:order 0 ; + sh:path linkml:range ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 33 ; + sh:path pav:lastUpdatedOn ], [ sh:datatype xsd:integer ; - sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; sh:maxCount 1 ; - sh:order 11 ; - sh:path linkml:equals_number ], + sh:order 36 ; + sh:path sh:order ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 23 ; + sh:path skosxl:altLabel ], + [ sh:datatype xsd:string ; + sh:description "A path to a slot that is being bound to a permissible value from an enumeration." ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:binds_value_of ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 26 ; + sh:path skos:closeMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 24 ; + sh:path skos:mappingRelation ], [ sh:description "Controlled terms used to categorize an element." ; - sh:order 59 ; + sh:order 37 ; sh:path dcterms:subject ], + [ sh:description "Defines the specific formula to be used to generate the permissible values." ; + sh:in ( "CODE" "CURIE" "URI" "FHIR_CODING" "LABEL" ) ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:pv_formula ], [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; + sh:order 8 ; + sh:path dcterms:title ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; sh:order 28 ; - sh:path skos:definition ], + sh:path skos:narrowMatch ], [ sh:datatype xsd:string ; - sh:description "the slot must have range string and the value of the slot must equal the specified value" ; + sh:description "the primary language used in the sources" ; sh:maxCount 1 ; - sh:order 9 ; - sh:path linkml:equals_string ], - [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 44 ; - sh:path skos:altLabel ], - [ sh:class linkml:AnonymousTypeExpression ; - sh:description "holds if at least one of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 16 ; - sh:path linkml:any_of ], + sh:order 18 ; + sh:path schema1:inLanguage ], [ sh:datatype xsd:string ; - sh:description "the name of the python object that implements this type definition" ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 10 ; + sh:path linkml:todos ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:repr ], + sh:order 32 ; + sh:path pav:createdOn ], [ sh:datatype xsd:string ; - sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; + sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 18 ; - sh:path rdfs:label ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 48 ; - sh:path skos:closeMatch ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:order 6 ; + sh:path skos:definition ] ; + sh:targetClass linkml:EnumBinding . + +linkml:EnumDefinition a sh:NodeShape ; + sh:closed true ; + sh:description "an element whose instances must be drawn from a specified set of permissible values" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:MatchQuery ; + sh:description "Specifies a match query that is used to calculate the list of permissible values" ; sh:maxCount 1 ; - sh:order 43 ; - sh:path linkml:deprecated_element_has_possible_replacement ], - [ sh:class linkml:AnonymousTypeExpression ; - sh:description "holds if all of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 17 ; - sh:path linkml:all_of ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; - sh:maxCount 1 ; - sh:order 37 ; - sh:path skos:inScheme ], - [ sh:class linkml:AnonymousTypeExpression ; - sh:description "holds if only one of the expressions hold" ; + sh:order 10 ; + sh:path linkml:matches ], + [ sh:class linkml:LocalName ; sh:nodeKind sh:BlankNode ; - sh:order 15 ; - sh:path linkml:exactly_one_of ], - [ sh:description "An element in another schema which this element instantiates." ; - sh:order 25 ; - sh:path linkml:instantiates ], - [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; - sh:maxCount 1 ; - sh:order 38 ; - sh:path linkml:imported_from ], + sh:order 23 ; + sh:path linkml:local_names ], [ sh:class linkml:AltDescription ; sh:description "A sourced alternative description for an element" ; sh:nodeKind sh:BlankNode ; - sh:order 29 ; + sh:order 30 ; sh:path linkml:alt_descriptions ], [ sh:class linkml:Annotation ; sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; sh:nodeKind sh:BlankNode ; - sh:order 27 ; + sh:order 28 ; sh:path linkml:annotations ], - [ sh:class linkml:Example ; - sh:description "example usages of an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 35 ; - sh:path linkml:examples ], - [ sh:description "The uri that defines the possible values for the type definition" ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path linkml:type_uri ], - [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; - sh:maxCount 1 ; - sh:order 58 ; - sh:path sh:order ], - [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 34 ; - sh:path skos:note ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 46 ; - sh:path skos:mappingRelation ], - [ sh:description "status of the element" ; - sh:maxCount 1 ; - sh:order 57 ; - sh:path bibo:status ], [ sh:datatype xsd:string ; - sh:description "python base type in the LinkML runtime that implements this type definition" ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 61 ; + sh:path schema1:keywords ], + [ sh:description "the identifier of an enumeration code set." ; sh:maxCount 1 ; sh:order 1 ; - sh:path linkml:base ], - [ sh:class linkml:Any ; - sh:description "For ordinal ranges, the value must be equal to or lower than this" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 13 ; - sh:path linkml:maximum_value ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; + sh:path linkml:code_set ], + [ sh:datatype xsd:string ; + sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; - sh:order 54 ; - sh:path pav:createdOn ], + sh:order 32 ; + sh:path linkml:deprecated ], [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 51 ; + sh:order 52 ; sh:path skos:broadMatch ], - [ sh:datatype xsd:boolean ; - sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; + [ sh:datatype xsd:string ; + sh:description """Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots. +We call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion. +Implementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects +For example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm""" ; sh:maxCount 1 ; - sh:order 20 ; - sh:path linkml:id_prefixes_are_closed ], - [ sh:class qudt:Unit ; - sh:description "an encoding of a unit" ; + sh:order 18 ; + sh:path linkml:string_serialization ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 7 ; - sh:path qudt:unit ], + sh:order 56 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 51 ; + sh:path skos:narrowMatch ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 26 ; + sh:path linkml:instantiates ], [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 33 ; - sh:path skos:editorialNote ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:description "the version tag of the enumeration code set" ; sh:maxCount 1 ; - sh:order 42 ; - sh:path linkml:deprecated_element_has_exact_replacement ], - [ sh:datatype xsd:string ; - sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; - sh:order 19 ; - sh:path linkml:id_prefixes ], + sh:order 2 ; + sh:path linkml:code_set_tag ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 50 ; + sh:path skos:relatedMatch ], [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 41 ; + sh:order 42 ; sh:path rdfs:seeAlso ], - [ sh:class linkml:TypeDefinition ; - sh:description "A parent type from which type properties are inherited" ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path linkml:typeof ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 46 ; + sh:path skosxl:altLabel ], [ sh:description "agent that contributed to the element" ; - sh:order 53 ; + sh:order 54 ; sh:path dcterms:contributor ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; - sh:maxCount 1 ; - sh:order 55 ; - sh:path pav:lastUpdatedOn ] ; - sh:targetClass linkml:TypeDefinition . - -linkml:AnonymousEnumExpression a sh:NodeShape ; - sh:closed true ; - sh:description "An enum_expression that is not named" ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "the version identifier of the enumeration code set" ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path linkml:code_set_version ], - [ sh:description "Defines the specific formula to be used to generate the permissible values." ; - sh:in ( "CODE" "CURIE" "URI" "FHIR_CODING" "LABEL" ) ; + [ sh:class linkml:Definition ; + sh:description "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class." ; + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path linkml:apply_to ], + [ sh:datatype xsd:boolean ; + sh:description "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes." ; sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:pv_formula ], - [ sh:description "A list of identifiers that are used to construct a set of permissible values" ; - sh:order 10 ; - sh:path linkml:concepts ], - [ sh:class linkml:ReachabilityQuery ; - sh:description "Specifies a query for obtaining a list of permissible values based on graph reachability" ; + sh:order 13 ; + sh:path linkml:abstract ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 47 ; + sh:path skos:mappingRelation ], + [ sh:description "status of the element" ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 8 ; - sh:path linkml:reachable_from ], + sh:order 58 ; + sh:path bibo:status ], [ sh:class linkml:PermissibleValue ; sh:description "A list of possible values for a slot range" ; sh:nodeKind sh:IRI ; - sh:order 4 ; - sh:path linkml:permissible_values ], - [ sh:class linkml:AnonymousEnumExpression ; - sh:description "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set" ; - sh:nodeKind sh:BlankNode ; sh:order 5 ; - sh:path linkml:include ], - [ sh:description "the identifier of an enumeration code set." ; + sh:path linkml:permissible_values ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; sh:maxCount 1 ; - sh:order 0 ; - sh:path linkml:code_set ], - [ sh:datatype xsd:string ; - sh:description "the version tag of the enumeration code set" ; + sh:order 38 ; + sh:path skos:inScheme ], + [ sh:description "agent that modified the element" ; sh:maxCount 1 ; - sh:order 1 ; - sh:path linkml:code_set_tag ], + sh:order 57 ; + sh:path oslc:modifiedBy ], [ sh:class linkml:AnonymousEnumExpression ; sh:description "An enum expression that yields a list of permissible values that are to be subtracted from the enum" ; sh:nodeKind sh:BlankNode ; - sh:order 6 ; - sh:path linkml:minus ], - [ sh:class linkml:EnumDefinition ; - sh:description "An enum definition that is used as the basis to create a new enum" ; - sh:nodeKind sh:IRI ; sh:order 7 ; - sh:path linkml:inherits ], - [ sh:class linkml:MatchQuery ; - sh:description "Specifies a match query that is used to calculate the list of permissible values" ; + sh:path linkml:minus ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:maxCount 1 ; + sh:order 22 ; + sh:path linkml:definition_uri ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 40 ; + sh:path dcterms:source ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 55 ; + sh:path pav:createdOn ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 48 ; + sh:path skos:exactMatch ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 60 ; + sh:path dcterms:subject ], + [ sh:class linkml:ReachabilityQuery ; + sh:description "Specifies a query for obtaining a list of permissible values based on graph reachability" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; sh:order 9 ; - sh:path linkml:matches ] ; - sh:targetClass linkml:AnonymousEnumExpression . - -linkml:PathExpression a sh:NodeShape ; - sh:closed true ; - sh:description "An expression that describes an abstract path from an object to another through a sequence of slot lookups" ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 26 ; - sh:path skos:altLabel ], - [ sh:class linkml:PathExpression ; - sh:description "holds if all of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 3 ; - sh:path linkml:all_of ], - [ sh:class linkml:PathExpression ; - sh:description "holds if only one of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 4 ; - sh:path linkml:exactly_one_of ], + sh:path linkml:reachable_from ], [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; - sh:maxCount 1 ; - sh:order 22 ; - sh:path schema1:inLanguage ], - [ sh:class linkml:SlotDefinition ; - sh:description "the slot to traverse" ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 6 ; - sh:path linkml:traverse ], - [ sh:description "agent that contributed to the element" ; + sh:description "notes and comments about an element intended primarily for external consumption" ; sh:order 35 ; - sh:path dcterms:contributor ], + sh:path skos:note ], [ sh:class linkml:Example ; sh:description "example usages of an element" ; sh:nodeKind sh:BlankNode ; - sh:order 17 ; + sh:order 36 ; sh:path linkml:examples ], - [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 42 ; - sh:path schema1:keywords ], - [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; + [ sh:description "URI of the enum that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas" ; sh:maxCount 1 ; - sh:order 40 ; - sh:path sh:order ], + sh:order 0 ; + sh:path linkml:enum_uri ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 53 ; + sh:path pav:createdBy ], [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:description "the version identifier of the enumeration code set" ; sh:maxCount 1 ; - sh:order 12 ; - sh:path dcterms:title ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 33 ; - sh:path skos:broadMatch ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; + sh:order 3 ; + sh:path linkml:code_set_version ], + [ sh:class linkml:EnumDefinition ; + sh:description "An enum definition that is used as the basis to create a new enum" ; + sh:nodeKind sh:IRI ; + sh:order 8 ; + sh:path linkml:inherits ], + [ sh:datatype xsd:string ; + sh:description "An established standard to which the element conforms." ; sh:maxCount 1 ; - sh:order 37 ; - sh:path pav:lastUpdatedOn ], + sh:order 24 ; + sh:path dcterms:conformsTo ], [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 25 ; + sh:order 44 ; sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:datatype xsd:string ; + sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 41 ; + sh:path schema1:inLanguage ], [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 30 ; + sh:order 49 ; sh:path skos:closeMatch ], + [ sh:datatype xsd:string ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 34 ; + sh:path skos:editorialNote ], [ sh:datatype xsd:string ; sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 20 ; + sh:order 39 ; sh:path linkml:imported_from ], [ sh:datatype xsd:boolean ; - sh:description "true if the slot is to be inversed" ; + sh:description "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins." ; sh:maxCount 1 ; - sh:order 5 ; - sh:path linkml:reversed ], - [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; sh:order 14 ; - sh:path linkml:todos ], - [ sh:description "status of the element" ; + sh:path linkml:mixin ], + [ sh:class linkml:Definition ; + sh:description "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded" ; sh:maxCount 1 ; - sh:order 39 ; - sh:path bibo:status ], + sh:nodeKind sh:IRI ; + sh:order 12 ; + sh:path linkml:is_a ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 25 ; + sh:path linkml:implements ], [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; - sh:order 10 ; - sh:path skos:definition ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 29 ; - sh:path skos:exactMatch ], - [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 16 ; - sh:path skos:note ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; + sh:order 31 ; + sh:path dcterms:title ], + [ sh:datatype xsd:boolean ; + sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; sh:maxCount 1 ; - sh:order 36 ; - sh:path pav:createdOn ], + sh:order 21 ; + sh:path linkml:id_prefixes_are_closed ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 59 ; + sh:path sh:order ], [ sh:class linkml:Extension ; sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; - sh:order 8 ; + sh:order 27 ; sh:path linkml:extensions ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 43 ; + sh:path linkml:deprecated_element_has_exact_replacement ], [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; + sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; - sh:order 13 ; - sh:path linkml:deprecated ], + sh:order 29 ; + sh:path skos:definition ], + [ sh:class linkml:Definition ; + sh:description "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from." ; + sh:nodeKind sh:IRI ; + sh:order 15 ; + sh:path linkml:mixins ], + [ sh:datatype xsd:string ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 45 ; + sh:path skos:altLabel ], + [ sh:description "A list of identifiers that are used to construct a set of permissible values" ; + sh:order 11 ; + sh:path linkml:concepts ], + [ sh:description "Defines the specific formula to be used to generate the permissible values." ; + sh:in ( "CODE" "CURIE" "URI" "FHIR_CODING" "LABEL" ) ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path linkml:pv_formula ], [ sh:class linkml:SubsetDefinition ; sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; sh:nodeKind sh:IRI ; - sh:order 18 ; + sh:order 37 ; sh:path OIO:inSubset ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 31 ; - sh:path skos:relatedMatch ], - [ sh:description "A related resource from which the element is derived." ; - sh:maxCount 1 ; - sh:order 21 ; - sh:path dcterms:source ], - [ sh:description "agent that created the element" ; - sh:maxCount 1 ; - sh:order 34 ; - sh:path pav:createdBy ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 32 ; - sh:path skos:narrowMatch ], - [ sh:class linkml:PathExpression ; - sh:description "holds if none of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 1 ; - sh:path linkml:none_of ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; - sh:nodeKind sh:BlankNode ; - sh:order 27 ; - sh:path skosxl:altLabel ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 11 ; - sh:path linkml:alt_descriptions ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; - sh:nodeKind sh:BlankNode ; - sh:order 9 ; - sh:path linkml:annotations ], - [ sh:class linkml:PathExpression ; - sh:description "holds if at least one of the expressions hold" ; + [ sh:class linkml:AnonymousEnumExpression ; + sh:description "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set" ; sh:nodeKind sh:BlankNode ; - sh:order 2 ; - sh:path linkml:any_of ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; + sh:order 6 ; + sh:path linkml:include ], + [ sh:datatype xsd:string ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 33 ; + sh:path linkml:todos ], + [ sh:description "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model." ; + sh:order 17 ; + sh:path linkml:values_from ], + [ sh:datatype xsd:string ; + sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; sh:maxCount 1 ; + sh:minCount 1 ; sh:order 19 ; - sh:path skos:inScheme ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 41 ; - sh:path dcterms:subject ], - [ sh:class linkml:AnonymousClassExpression ; - sh:description "A range that is described as a boolean expression combining existing ranges" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 7 ; - sh:path linkml:range_expression ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 24 ; - sh:path linkml:deprecated_element_has_exact_replacement ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 28 ; - sh:path skos:mappingRelation ], - [ sh:description "agent that modified the element" ; - sh:maxCount 1 ; - sh:order 38 ; - sh:path oslc:modifiedBy ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 23 ; - sh:path rdfs:seeAlso ], + sh:path rdfs:label ], [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 15 ; - sh:path skos:editorialNote ], - [ sh:class linkml:PathExpression ; - sh:description "in a sequential list, this indicates the next member" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 0 ; - sh:path linkml:followed_by ] ; - sh:targetClass linkml:PathExpression . + sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 20 ; + sh:path linkml:id_prefixes ] ; + sh:targetClass linkml:EnumDefinition . -linkml:PatternExpression a sh:NodeShape ; +linkml:PermissibleValue a sh:NodeShape ; sh:closed true ; - sh:description "a regular expression pattern used to evaluate conformance of a string" ; + sh:description "a permissible value, accompanied by intended text and an optional mapping to a concept URI" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 18 ; - sh:path rdfs:seeAlso ], - [ sh:datatype xsd:boolean ; - sh:description "if true then the pattern is first string interpolated" ; + sh:property [ sh:datatype xsd:string ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 14 ; + sh:path skos:editorialNote ], + [ sh:description "agent that modified the element" ; sh:maxCount 1 ; - sh:order 1 ; - sh:path linkml:interpolated ], + sh:order 37 ; + sh:path oslc:modifiedBy ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 24 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:datatype xsd:string ; + sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path schema1:inLanguage ], [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; + sh:description "time at which the element was last updated" ; sh:maxCount 1 ; - sh:order 31 ; - sh:path pav:createdOn ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 28 ; - sh:path skos:broadMatch ], + sh:order 36 ; + sh:path pav:lastUpdatedOn ], [ sh:class linkml:Example ; sh:description "example usages of an element" ; sh:nodeKind sh:BlankNode ; - sh:order 12 ; + sh:order 16 ; sh:path linkml:examples ], - [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; - sh:maxCount 1 ; - sh:order 8 ; - sh:path linkml:deprecated ], - [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + [ sh:class linkml:PermissibleValue ; + sh:description "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded" ; sh:maxCount 1 ; - sh:order 7 ; - sh:path dcterms:title ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; - sh:nodeKind sh:BlankNode ; + sh:nodeKind sh:IRI ; sh:order 6 ; - sh:path linkml:alt_descriptions ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 25 ; - sh:path skos:closeMatch ], - [ sh:description "agent that contributed to the element" ; - sh:order 30 ; - sh:path dcterms:contributor ], - [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 21 ; - sh:path skos:altLabel ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:path linkml:is_a ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; sh:nodeKind sh:BlankNode ; - sh:order 22 ; - sh:path skosxl:altLabel ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 36 ; - sh:path dcterms:subject ], - [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 10 ; - sh:path skos:editorialNote ], - [ sh:description "status of the element" ; - sh:maxCount 1 ; - sh:order 34 ; - sh:path bibo:status ], + sh:order 9 ; + sh:path linkml:annotations ], [ sh:class linkml:SubsetDefinition ; sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; sh:nodeKind sh:IRI ; - sh:order 13 ; + sh:order 17 ; sh:path OIO:inSubset ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 20 ; - sh:path linkml:deprecated_element_has_possible_replacement ], - [ sh:description "A related resource from which the element is derived." ; + [ sh:datatype xsd:string ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 15 ; + sh:path skos:note ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 40 ; + sh:path dcterms:subject ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 27 ; + sh:path skos:mappingRelation ], + [ sh:class linkml:PermissibleValue ; + sh:description "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from." ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path linkml:mixins ], + [ sh:datatype xsd:string ; + sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; - sh:order 16 ; - sh:path dcterms:source ], + sh:order 12 ; + sh:path linkml:deprecated ], [ sh:class linkml:Extension ; sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; - sh:order 3 ; + sh:order 8 ; sh:path linkml:extensions ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 23 ; - sh:path skos:mappingRelation ], - [ sh:datatype xsd:string ; - sh:description "the string value of the slot must conform to this regular expression expressed in the string. May be interpolated." ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path linkml:syntax ], - [ sh:description "agent that created the element" ; + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:alt_descriptions ], + [ sh:description "A related resource from which the element is derived." ; sh:maxCount 1 ; - sh:order 29 ; - sh:path pav:createdBy ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 24 ; - sh:path skos:exactMatch ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:order 20 ; + sh:path dcterms:source ], + [ sh:class qudt:Unit ; + sh:description "an encoding of a unit" ; sh:maxCount 1 ; - sh:order 19 ; - sh:path linkml:deprecated_element_has_exact_replacement ], - [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 37 ; - sh:path schema1:keywords ], - [ sh:description "agent that modified the element" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path qudt:unit ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; sh:maxCount 1 ; - sh:order 33 ; - sh:path oslc:modifiedBy ], - [ sh:datatype xsd:boolean ; - sh:description "if not true then the pattern must match the whole string, as if enclosed in ^...$" ; + sh:order 35 ; + sh:path pav:createdOn ], + [ sh:description "the value meaning of a permissible value" ; sh:maxCount 1 ; sh:order 2 ; - sh:path linkml:partial_match ], - [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 9 ; - sh:path linkml:todos ], - [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; + sh:path linkml:meaning ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 30 ; + sh:path skos:relatedMatch ], + [ sh:description "agent that contributed to the element" ; + sh:order 34 ; + sh:path dcterms:contributor ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path skos:definition ], + sh:order 23 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 26 ; + sh:path skosxl:altLabel ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 29 ; + sh:path skos:closeMatch ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 39 ; + sh:path sh:order ], [ sh:datatype xsd:string ; sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 15 ; + sh:order 19 ; sh:path linkml:imported_from ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 27 ; - sh:path skos:narrowMatch ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; - sh:nodeKind sh:BlankNode ; - sh:order 4 ; - sh:path linkml:annotations ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 32 ; + sh:path skos:broadMatch ], + [ sh:datatype xsd:string ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 25 ; + sh:path skos:altLabel ], [ sh:datatype xsd:anyURI ; sh:description "id of the schema that defined the element" ; sh:maxCount 1 ; - sh:order 14 ; + sh:order 18 ; sh:path skos:inScheme ], [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 11 ; - sh:path skos:note ], + sh:description "Outstanding issues that needs resolution" ; + sh:order 13 ; + sh:path linkml:todos ], [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; - sh:maxCount 1 ; - sh:order 17 ; - sh:path schema1:inLanguage ], - [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; - sh:maxCount 1 ; - sh:order 35 ; - sh:path sh:order ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; - sh:maxCount 1 ; - sh:order 32 ; - sh:path pav:lastUpdatedOn ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 26 ; - sh:path skos:relatedMatch ] ; - sh:targetClass linkml:PatternExpression . - -qudt:Unit a sh:NodeShape ; - sh:closed true ; - sh:description "A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension)." ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "An abbreviation for a unit is a short ASCII string that is used in place of the full name for the unit in contexts where non-ASCII characters would be problematic, or where using the abbreviation will enhance readability. When a power of a base unit needs to be expressed, such as squares this can be done using abbreviations rather than symbols (source: qudt)" ; + sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; sh:order 1 ; - sh:path qudt:abbreviation ], + sh:path skos:definition ], [ sh:datatype xsd:string ; - sh:description "the spelled out name of the unit, for example, meter" ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path rdfs:label ], + sh:description "Keywords or tags used to describe the element" ; + sh:order 41 ; + sh:path schema1:keywords ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 31 ; + sh:path skos:narrowMatch ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 5 ; + sh:path linkml:implements ], [ sh:datatype xsd:string ; - sh:description "Expression for deriving this unit from other units" ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; - sh:order 5 ; - sh:path linkml:derivation ], - [ sh:description "Concept in a vocabulary or ontology that denotes the kind of quantity being measured, e.g. length" ; + sh:order 11 ; + sh:path dcterms:title ], + [ sh:description "agent that created the element" ; sh:maxCount 1 ; - sh:order 6 ; - sh:path qudt:hasQuantityKind ], + sh:order 33 ; + sh:path pav:createdBy ], [ sh:datatype xsd:string ; - sh:description "name of the unit encoded as a symbol" ; + sh:description "The actual permissible value itself" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:order 0 ; - sh:path qudt:symbol ], - [ sh:datatype xsd:string ; - sh:description "associates a QUDT unit with its UCUM code (case-sensitive)." ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path qudt:ucumCode ], - [ sh:description "Used to link a unit to equivalent concepts in ontologies such as UO, SNOMED, OEM, OBOE, NCIT" ; - sh:order 3 ; + sh:path linkml:text ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 28 ; sh:path skos:exactMatch ], - [ sh:datatype xsd:string ; + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 4 ; + sh:path linkml:instantiates ], + [ sh:description "status of the element" ; sh:maxCount 1 ; - sh:order 7 ; - sh:path qudt:iec61360Code ] ; - sh:targetClass qudt:Unit . + sh:order 38 ; + sh:path bibo:status ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 22 ; + sh:path rdfs:seeAlso ] ; + sh:targetClass linkml:PermissibleValue . -linkml:ClassDefinition a sh:NodeShape ; +linkml:TypeDefinition a sh:NodeShape ; sh:closed true ; - sh:description "an element whose instances are complex objects that may have slot-value assignments" ; + sh:description "an element that whose instances are atomic scalar values that can be mapped to primitive types" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 58 ; - sh:path skos:relatedMatch ], - [ sh:datatype xsd:boolean ; - sh:description "if true then induced/mangled slot names are not created for class_usage and attributes" ; - sh:maxCount 1 ; - sh:order 11 ; - sh:path linkml:slot_names_unique ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:property [ sh:class linkml:Example ; + sh:description "example usages of an element" ; sh:nodeKind sh:BlankNode ; - sh:order 54 ; - sh:path skosxl:altLabel ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 55 ; - sh:path skos:mappingRelation ], - [ sh:description "agent that created the element" ; - sh:maxCount 1 ; - sh:order 61 ; - sh:path pav:createdBy ], - [ sh:datatype xsd:boolean ; - sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; + sh:order 35 ; + sh:path linkml:examples ], + [ sh:description "The uri that defines the possible values for the type definition" ; sh:maxCount 1 ; - sh:order 29 ; - sh:path linkml:id_prefixes_are_closed ], - [ sh:class linkml:SlotDefinition ; - sh:description "Inline definition of slots" ; - sh:nodeKind sh:IRI ; sh:order 2 ; - sh:path linkml:attributes ], - [ sh:datatype xsd:boolean ; - sh:description "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins." ; - sh:maxCount 1 ; - sh:order 22 ; - sh:path linkml:mixin ], - [ sh:class linkml:AnonymousClassExpression ; - sh:description "holds if all of the expressions hold" ; + sh:path linkml:type_uri ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; - sh:order 18 ; - sh:path linkml:all_of ], + sh:order 26 ; + sh:path linkml:extensions ], [ sh:datatype xsd:string ; - sh:description "An established standard to which the element conforms." ; - sh:maxCount 1 ; + sh:description "Outstanding issues that needs resolution" ; sh:order 32 ; - sh:path dcterms:conformsTo ], + sh:path linkml:todos ], + [ sh:datatype xsd:string ; + sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path linkml:deprecated ], [ sh:datatype xsd:dateTime ; sh:description "time at which the element was created" ; sh:maxCount 1 ; - sh:order 63 ; + sh:order 54 ; sh:path pav:createdOn ], - [ sh:class linkml:ClassDefinition ; - sh:description "A collection of secondary parent mixin classes from which inheritable metaslots are propagated" ; - sh:nodeKind sh:IRI ; - sh:order 23 ; - sh:path linkml:mixins ], - [ sh:class linkml:SlotDefinition ; - sh:description "the refinement of a slot in the context of the containing class definition." ; - sh:nodeKind sh:IRI ; - sh:order 1 ; - sh:path linkml:slot_usage ], - [ sh:datatype xsd:boolean ; - sh:description "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes." ; - sh:maxCount 1 ; - sh:order 21 ; - sh:path linkml:abstract ], [ sh:datatype xsd:string ; - sh:description """Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots. -We call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion. -Implementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects -For example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm""" ; + sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; - sh:order 26 ; - sh:path linkml:string_serialization ], - [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:order 28 ; + sh:path skos:definition ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 67 ; - sh:path sh:order ], - [ sh:class linkml:AnonymousClassExpression ; - sh:description "holds if only one of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 16 ; - sh:path linkml:exactly_one_of ], - [ sh:class linkml:ClassDefinition ; - sh:description "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class." ; - sh:nodeKind sh:IRI ; - sh:order 24 ; - sh:path linkml:apply_to ], - [ sh:datatype xsd:boolean ; - sh:description "Indicates that this is the Container class which forms the root of the serialized document structure in tree serializations" ; + sh:order 42 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:class qudt:Unit ; + sh:description "an encoding of a unit" ; sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; sh:order 7 ; - sh:path linkml:tree_root ], + sh:path qudt:unit ], + [ sh:class linkml:LocalName ; + sh:nodeKind sh:BlankNode ; + sh:order 22 ; + sh:path linkml:local_names ], [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 69 ; - sh:path schema1:keywords ], - [ sh:description "agent that modified the element" ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 44 ; + sh:path skos:altLabel ], + [ sh:datatype xsd:string ; + sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; sh:maxCount 1 ; - sh:order 65 ; - sh:path oslc:modifiedBy ], - [ sh:class linkml:ClassDefinition ; + sh:minCount 1 ; + sh:order 18 ; + sh:path rdfs:label ], + [ sh:class linkml:TypeDefinition ; sh:description "indicates that the domain element consists exactly of the members of the element in the range." ; sh:nodeKind sh:IRI ; - sh:order 5 ; + sh:order 4 ; sh:path linkml:union_of ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; + [ sh:class linkml:PatternExpression ; + sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; sh:maxCount 1 ; - sh:order 46 ; - sh:path skos:inScheme ], + sh:nodeKind sh:BlankNode ; + sh:order 6 ; + sh:path linkml:structured_pattern ], [ sh:class linkml:AltDescription ; sh:description "A sourced alternative description for an element" ; sh:nodeKind sh:BlankNode ; - sh:order 38 ; + sh:order 29 ; sh:path linkml:alt_descriptions ], - [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; - sh:order 33 ; - sh:path linkml:implements ], - [ sh:class linkml:SlotDefinition ; - sh:description "collection of slot names that are applicable to a class" ; - sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path linkml:slots ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; + [ sh:description "agent that modified the element" ; sh:maxCount 1 ; - sh:order 64 ; - sh:path pav:lastUpdatedOn ], - [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 42 ; - sh:path skos:editorialNote ], + sh:order 56 ; + sh:path oslc:modifiedBy ], [ sh:description "A related resource from which the element is derived." ; sh:maxCount 1 ; - sh:order 48 ; + sh:order 39 ; sh:path dcterms:source ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 68 ; - sh:path dcterms:subject ], [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 34 ; + sh:path skos:note ], + [ sh:datatype xsd:string ; + sh:description "An established standard to which the element conforms." ; sh:maxCount 1 ; - sh:order 39 ; - sh:path dcterms:title ], - [ sh:class linkml:ClassRule ; - sh:description "the collection of rules that apply to all members of this class" ; - sh:nodeKind sh:BlankNode ; - sh:order 9 ; - sh:path sh:rule ], - [ sh:class linkml:UniqueKey ; - sh:description "A collection of named unique keys for this class. Unique keys may be singular or compound." ; - sh:nodeKind sh:BlankNode ; - sh:order 8 ; - sh:path linkml:unique_keys ], + sh:order 23 ; + sh:path dcterms:conformsTo ], [ sh:datatype xsd:string ; - sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; + sh:description "the name of the python object that implements this type definition" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 27 ; - sh:path rdfs:label ], - [ sh:class linkml:AnonymousClassExpression ; - sh:description "holds if none of the expressions hold" ; + sh:order 3 ; + sh:path linkml:repr ], + [ sh:datatype xsd:boolean ; + sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path linkml:id_prefixes_are_closed ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 47 ; + sh:path skos:exactMatch ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 24 ; + sh:path linkml:implements ], + [ sh:datatype xsd:string ; + sh:description "python base type in the LinkML runtime that implements this type definition" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:base ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 15 ; + sh:path linkml:exactly_one_of ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 48 ; + sh:path skos:closeMatch ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if all of the expressions hold" ; sh:nodeKind sh:BlankNode ; sh:order 17 ; - sh:path linkml:none_of ], + sh:path linkml:all_of ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path linkml:definition_uri ], [ sh:datatype xsd:string ; - sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; - sh:order 28 ; - sh:path linkml:id_prefixes ], - [ sh:datatype xsd:boolean ; - sh:description "If true then all direct is_a children are mutually disjoint and share no instances in common" ; + sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 40 ; + sh:path schema1:inLanguage ], + [ sh:datatype xsd:string ; + sh:description "the slot must have range string and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path linkml:equals_string ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 58 ; + sh:path sh:order ], + [ sh:class linkml:Any ; + sh:description "For ordinal ranges, the value must be equal to or lower than this" ; sh:maxCount 1 ; - sh:order 14 ; - sh:path linkml:children_are_mutually_disjoint ], - [ sh:class linkml:ClassDefinition ; - sh:description "Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances" ; - sh:nodeKind sh:IRI ; - sh:order 13 ; - sh:path linkml:disjoint_with ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; - sh:order 35 ; - sh:path linkml:extensions ], + sh:order 13 ; + sh:path linkml:maximum_value ], [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 43 ; - sh:path skos:note ], + sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; + sh:order 10 ; + sh:path linkml:equals_string_in ], + [ sh:datatype xsd:string ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 33 ; + sh:path skos:editorialNote ], [ sh:description "agent that contributed to the element" ; - sh:order 62 ; + sh:order 53 ; sh:path dcterms:contributor ], [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; - sh:maxCount 1 ; - sh:order 49 ; - sh:path schema1:inLanguage ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 19 ; + sh:path linkml:id_prefixes ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; sh:nodeKind sh:BlankNode ; - sh:order 36 ; - sh:path linkml:annotations ], - [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:order 45 ; + sh:path skosxl:altLabel ], + [ sh:description "agent that created the element" ; sh:maxCount 1 ; - sh:order 30 ; - sh:path linkml:definition_uri ], - [ sh:description "DEPRECATED -- rdfs:subClassOf to be emitted in OWL generation" ; + sh:order 52 ; + sh:path pav:createdBy ], + [ sh:datatype xsd:string ; + sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; sh:maxCount 1 ; - sh:order 4 ; - sh:path linkml:subclass_of ], - [ sh:description "URI of the class that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas" ; + sh:order 8 ; + sh:path linkml:implicit_prefix ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:class_uri ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 55 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 50 ; + sh:path skos:narrowMatch ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; sh:order 60 ; - sh:path skos:broadMatch ], + sh:path schema1:keywords ], + [ sh:datatype xsd:integer ; + sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path linkml:equals_number ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 37 ; + sh:path skos:inScheme ], [ sh:datatype xsd:string ; sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 47 ; + sh:order 38 ; sh:path linkml:imported_from ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 57 ; - sh:path skos:closeMatch ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 52 ; - sh:path linkml:deprecated_element_has_possible_replacement ], - [ sh:class linkml:ClassDefinition ; - sh:description "A primary parent class from which inheritable metaslots are propagated" ; + [ sh:class linkml:TypeDefinition ; + sh:description "A parent type from which type properties are inherited" ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 20 ; - sh:path linkml:is_a ], - [ sh:class linkml:Example ; - sh:description "example usages of an element" ; + sh:order 0 ; + sh:path linkml:typeof ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 49 ; + sh:path skos:relatedMatch ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 57 ; + sh:path bibo:status ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 46 ; + sh:path skos:mappingRelation ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if at least one of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 44 ; - sh:path linkml:examples ], + sh:order 16 ; + sh:path linkml:any_of ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 14 ; + sh:path linkml:none_of ], [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 50 ; + sh:order 41 ; sh:path rdfs:seeAlso ], [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; - sh:order 40 ; - sh:path linkml:deprecated ], + sh:order 30 ; + sh:path dcterms:title ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 43 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 27 ; + sh:path linkml:annotations ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 51 ; + sh:path skos:broadMatch ], [ sh:class linkml:SubsetDefinition ; sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; sh:nodeKind sh:IRI ; - sh:order 45 ; + sh:order 36 ; sh:path OIO:inSubset ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 56 ; - sh:path skos:exactMatch ], - [ sh:class linkml:AnonymousClassExpression ; - sh:description "holds if at least one of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 15 ; - sh:path linkml:any_of ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 59 ; + sh:path dcterms:subject ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 25 ; + sh:path linkml:instantiates ], [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; + sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path linkml:pattern ], + [ sh:class linkml:Any ; + sh:description "For ordinal ranges, the value must be equal to or higher than this" ; sh:maxCount 1 ; - sh:order 37 ; - sh:path skos:definition ], - [ sh:class linkml:SlotDefinition ; - sh:description "expresses constraints on a group of slots for a class expression" ; - sh:nodeKind sh:IRI ; - sh:order 19 ; - sh:path linkml:slot_conditions ], - [ sh:class linkml:AnonymousClassExpression ; - sh:description "The collection of classification rules that apply to all members of this class. Classification rules allow for automatically assigning the instantiated type of an instance." ; sh:nodeKind sh:BlankNode ; - sh:order 10 ; - sh:path linkml:classification_rules ], - [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 53 ; - sh:path skos:altLabel ], - [ sh:description "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model." ; - sh:order 25 ; - sh:path linkml:values_from ], - [ sh:class linkml:SlotDefinition ; - sh:description "The combination of is a plus defining slots form a genus-differentia definition, or the set of necessary and sufficient conditions that can be transformed into an OWL equivalence axiom" ; + sh:order 12 ; + sh:path linkml:minimum_value ] ; + sh:targetClass linkml:TypeDefinition . + +linkml:AnonymousEnumExpression a sh:NodeShape ; + sh:closed true ; + sh:description "An enum_expression that is not named" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:EnumDefinition ; + sh:description "An enum definition that is used as the basis to create a new enum" ; sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path linkml:inherits ], + [ sh:class linkml:AnonymousEnumExpression ; + sh:description "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set" ; + sh:nodeKind sh:BlankNode ; + sh:order 5 ; + sh:path linkml:include ], + [ sh:class linkml:AnonymousEnumExpression ; + sh:description "An enum expression that yields a list of permissible values that are to be subtracted from the enum" ; + sh:nodeKind sh:BlankNode ; sh:order 6 ; - sh:path linkml:defining_slots ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:path linkml:minus ], + [ sh:class linkml:PermissibleValue ; + sh:description "A list of possible values for a slot range" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path linkml:permissible_values ], + [ sh:datatype xsd:string ; + sh:description "the version tag of the enumeration code set" ; sh:maxCount 1 ; - sh:order 51 ; - sh:path linkml:deprecated_element_has_exact_replacement ], - [ sh:datatype xsd:boolean ; - sh:description "true if this class represents a relationship rather than an entity" ; + sh:order 1 ; + sh:path linkml:code_set_tag ], + [ sh:description "the identifier of an enumeration code set." ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path linkml:code_set ], + [ sh:description "A list of identifiers that are used to construct a set of permissible values" ; + sh:order 10 ; + sh:path linkml:concepts ], + [ sh:class linkml:ReachabilityQuery ; + sh:description "Specifies a query for obtaining a list of permissible values based on graph reachability" ; sh:maxCount 1 ; - sh:order 12 ; - sh:path linkml:represents_relationship ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 59 ; - sh:path skos:narrowMatch ], - [ sh:class linkml:LocalName ; sh:nodeKind sh:BlankNode ; - sh:order 31 ; - sh:path linkml:local_names ], - [ sh:description "An element in another schema which this element instantiates." ; - sh:order 34 ; - sh:path linkml:instantiates ], - [ sh:description "status of the element" ; + sh:order 8 ; + sh:path linkml:reachable_from ], + [ sh:description "Defines the specific formula to be used to generate the permissible values." ; + sh:in ( "CODE" "CURIE" "URI" "FHIR_CODING" "LABEL" ) ; sh:maxCount 1 ; - sh:order 66 ; - sh:path bibo:status ], + sh:order 3 ; + sh:path linkml:pv_formula ], + [ sh:class linkml:MatchQuery ; + sh:description "Specifies a match query that is used to calculate the list of permissible values" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 9 ; + sh:path linkml:matches ], [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 41 ; - sh:path linkml:todos ] ; - sh:targetClass linkml:ClassDefinition . + sh:description "the version identifier of the enumeration code set" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:code_set_version ] ; + sh:targetClass linkml:AnonymousEnumExpression . -linkml:Definition a sh:NodeShape ; - sh:closed false ; - sh:description "abstract base class for core metaclasses" ; +linkml:PathExpression a sh:NodeShape ; + sh:closed true ; + sh:description "An expression that describes an abstract path from an object to another through a sequence of slot lookups" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class linkml:Definition ; - sh:description "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded" ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path linkml:is_a ], - [ sh:class linkml:Definition ; - sh:description "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from." ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path linkml:mixins ], - [ sh:description "agent that modified the element" ; - sh:maxCount 1 ; - sh:order 45 ; - sh:path oslc:modifiedBy ], - [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:property [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; sh:order 10 ; - sh:path linkml:definition_uri ], + sh:path skos:definition ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path pav:createdBy ], [ sh:datatype xsd:string ; sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 23 ; + sh:order 16 ; sh:path skos:note ], - [ sh:datatype xsd:boolean ; - sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; + [ sh:class linkml:SlotDefinition ; + sh:description "the slot to traverse" ; sh:maxCount 1 ; - sh:order 9 ; - sh:path linkml:id_prefixes_are_closed ], - [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 33 ; - sh:path skos:altLabel ], - [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 22 ; - sh:path skos:editorialNote ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 40 ; - sh:path skos:broadMatch ], + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path linkml:traverse ], + [ sh:class linkml:PathExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:all_of ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path skos:inScheme ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path oslc:modifiedBy ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 28 ; + sh:path skos:mappingRelation ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 27 ; + sh:path skosxl:altLabel ], [ sh:class linkml:Example ; sh:description "example usages of an element" ; sh:nodeKind sh:BlankNode ; - sh:order 24 ; + sh:order 17 ; sh:path linkml:examples ], [ sh:datatype xsd:string ; - sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; - sh:order 8 ; - sh:path linkml:id_prefixes ], - [ sh:description "agent that created the element" ; - sh:maxCount 1 ; - sh:order 41 ; - sh:path pav:createdBy ], + sh:description "Keywords or tags used to describe the element" ; + sh:order 42 ; + sh:path schema1:keywords ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 29 ; + sh:path skos:exactMatch ], [ sh:datatype xsd:string ; sh:description "Outstanding issues that needs resolution" ; - sh:order 21 ; + sh:order 14 ; sh:path linkml:todos ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 33 ; + sh:path skos:broadMatch ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 9 ; + sh:path linkml:annotations ], + [ sh:datatype xsd:string ; + sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 22 ; + sh:path schema1:inLanguage ], + [ sh:class linkml:PathExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path linkml:exactly_one_of ], [ sh:datatype xsd:dateTime ; sh:description "time at which the element was created" ; sh:maxCount 1 ; - sh:order 43 ; + sh:order 36 ; sh:path pav:createdOn ], - [ sh:class linkml:LocalName ; + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 30 ; + sh:path skos:closeMatch ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "A range that is described as a boolean expression combining existing ranges" ; + sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; - sh:order 11 ; - sh:path linkml:local_names ], - [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 49 ; - sh:path schema1:keywords ], + sh:order 7 ; + sh:path linkml:range_expression ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 31 ; + sh:path skos:relatedMatch ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path dcterms:source ], [ sh:datatype xsd:integer ; sh:description "the relative order in which the element occurs, lower values are given precedence" ; sh:maxCount 1 ; - sh:order 47 ; + sh:order 40 ; sh:path sh:order ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 48 ; - sh:path dcterms:subject ], - [ sh:datatype xsd:boolean ; - sh:description "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes." ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path linkml:abstract ], - [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; - sh:maxCount 1 ; - sh:order 19 ; - sh:path dcterms:title ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; - sh:nodeKind sh:BlankNode ; - sh:order 16 ; - sh:path linkml:annotations ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 35 ; - sh:path skos:mappingRelation ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 36 ; - sh:path skos:exactMatch ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; - sh:maxCount 1 ; - sh:order 26 ; - sh:path skos:inScheme ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; - sh:nodeKind sh:BlankNode ; - sh:order 34 ; - sh:path skosxl:altLabel ], [ sh:datatype xsd:string ; sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 27 ; + sh:order 20 ; sh:path linkml:imported_from ], + [ sh:class linkml:PathExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path linkml:any_of ], [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; - sh:maxCount 1 ; - sh:order 20 ; - sh:path linkml:deprecated ], + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 15 ; + sh:path skos:editorialNote ], [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 39 ; + sh:order 32 ; sh:path skos:narrowMatch ], - [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; - sh:order 13 ; - sh:path linkml:implements ], - [ sh:description "An element in another schema which this element instantiates." ; - sh:order 14 ; - sh:path linkml:instantiates ], - [ sh:description "agent that contributed to the element" ; - sh:order 42 ; - sh:path dcterms:contributor ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 11 ; + sh:path linkml:alt_descriptions ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 8 ; + sh:path linkml:extensions ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 44 ; - sh:path pav:lastUpdatedOn ], + sh:order 25 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 23 ; + sh:path rdfs:seeAlso ], + [ sh:class linkml:PathExpression ; + sh:description "in a sequential list, this indicates the next member" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 0 ; + sh:path linkml:followed_by ], [ sh:description "status of the element" ; sh:maxCount 1 ; - sh:order 46 ; + sh:order 39 ; sh:path bibo:status ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + [ sh:class linkml:PathExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:none_of ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; sh:maxCount 1 ; - sh:order 31 ; - sh:path linkml:deprecated_element_has_exact_replacement ], + sh:order 37 ; + sh:path pav:lastUpdatedOn ], + [ sh:datatype xsd:boolean ; + sh:description "true if the slot is to be inversed" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path linkml:reversed ], [ sh:class linkml:SubsetDefinition ; sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; sh:nodeKind sh:IRI ; - sh:order 25 ; - sh:path OIO:inSubset ], - [ sh:class linkml:Definition ; - sh:description "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class." ; - sh:nodeKind sh:IRI ; - sh:order 4 ; - sh:path linkml:apply_to ], - [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; - sh:maxCount 1 ; - sh:order 17 ; - sh:path skos:definition ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; - sh:nodeKind sh:BlankNode ; sh:order 18 ; - sh:path linkml:alt_descriptions ], + sh:path OIO:inSubset ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 41 ; + sh:path dcterms:subject ], [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; - sh:maxCount 1 ; - sh:order 29 ; - sh:path schema1:inLanguage ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; - sh:nodeKind sh:BlankNode ; - sh:order 15 ; - sh:path linkml:extensions ], - [ sh:description "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model." ; - sh:order 5 ; - sh:path linkml:values_from ], + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 26 ; + sh:path skos:altLabel ], [ sh:datatype xsd:string ; - sh:description "An established standard to which the element conforms." ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; sh:order 12 ; - sh:path dcterms:conformsTo ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 37 ; - sh:path skos:closeMatch ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 38 ; - sh:path skos:relatedMatch ], - [ sh:datatype xsd:string ; - sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 7 ; - sh:path rdfs:label ], - [ sh:description "A related resource from which the element is derived." ; - sh:maxCount 1 ; - sh:order 28 ; - sh:path dcterms:source ], + sh:path dcterms:title ], + [ sh:description "agent that contributed to the element" ; + sh:order 35 ; + sh:path dcterms:contributor ], [ sh:datatype xsd:string ; - sh:description """Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots. -We call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion. -Implementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects -For example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm""" ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path linkml:string_serialization ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 30 ; - sh:path rdfs:seeAlso ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; - sh:order 32 ; - sh:path linkml:deprecated_element_has_possible_replacement ], - [ sh:datatype xsd:boolean ; - sh:description "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins." ; + sh:order 13 ; + sh:path linkml:deprecated ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 2 ; - sh:path linkml:mixin ] ; - sh:targetClass linkml:Definition . + sh:order 24 ; + sh:path linkml:deprecated_element_has_exact_replacement ] ; + sh:targetClass linkml:PathExpression . -linkml:LocalName a sh:NodeShape ; +linkml:PatternExpression a sh:NodeShape ; sh:closed true ; - sh:description "an attributed label" ; + sh:description "a regular expression pattern used to evaluate conformance of a string" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "a name assigned to an element in a given ontology" ; + sh:property [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 1 ; - sh:path skos:altLabel ], + sh:order 35 ; + sh:path sh:order ], [ sh:datatype xsd:string ; - sh:description "the ncname of the source of the name" ; + sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 0 ; - sh:path linkml:local_name_source ] ; - sh:targetClass linkml:LocalName . - -linkml:AnonymousTypeExpression a sh:NodeShape ; - sh:closed true ; - sh:description "A type expression that is not a top-level named type definition. Used for nesting." ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; + sh:order 8 ; + sh:path linkml:deprecated ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; sh:maxCount 1 ; - sh:order 6 ; - sh:path linkml:equals_number ], + sh:order 31 ; + sh:path pav:createdOn ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 23 ; + sh:path skos:mappingRelation ], [ sh:datatype xsd:string ; - sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; - sh:order 5 ; - sh:path linkml:equals_string_in ], - [ sh:class linkml:PatternExpression ; - sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; + sh:description "the primary language used in the sources" ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 1 ; - sh:path linkml:structured_pattern ], - [ sh:class linkml:Any ; - sh:description "For ordinal ranges, the value must be equal to or higher than this" ; + sh:order 17 ; + sh:path schema1:inLanguage ], + [ sh:datatype xsd:string ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; sh:order 7 ; - sh:path linkml:minimum_value ], - [ sh:datatype xsd:string ; - sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + sh:path dcterms:title ], + [ sh:datatype xsd:boolean ; + sh:description "if true then the pattern is first string interpolated" ; sh:maxCount 1 ; - sh:order 0 ; - sh:path linkml:pattern ], - [ sh:class linkml:AnonymousTypeExpression ; - sh:description "holds if none of the expressions hold" ; + sh:order 1 ; + sh:path linkml:interpolated ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; sh:nodeKind sh:BlankNode ; - sh:order 9 ; - sh:path linkml:none_of ], - [ sh:datatype xsd:string ; - sh:description "the slot must have range string and the value of the slot must equal the specified value" ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path linkml:equals_string ], - [ sh:class linkml:Any ; - sh:description "For ordinal ranges, the value must be equal to or lower than this" ; - sh:maxCount 1 ; + sh:order 12 ; + sh:path linkml:examples ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 24 ; + sh:path skos:exactMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 25 ; + sh:path skos:closeMatch ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; sh:nodeKind sh:BlankNode ; - sh:order 8 ; - sh:path linkml:maximum_value ], + sh:order 22 ; + sh:path skosxl:altLabel ], [ sh:datatype xsd:string ; - sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:implicit_prefix ], - [ sh:class linkml:AnonymousTypeExpression ; - sh:description "holds if only one of the expressions hold" ; - sh:nodeKind sh:BlankNode ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; sh:order 10 ; - sh:path linkml:exactly_one_of ], - [ sh:class qudt:Unit ; - sh:description "an encoding of a unit" ; + sh:path skos:editorialNote ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 26 ; + sh:path skos:relatedMatch ], + [ sh:description "agent that modified the element" ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 2 ; - sh:path qudt:unit ], - [ sh:class linkml:AnonymousTypeExpression ; - sh:description "holds if all of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 12 ; - sh:path linkml:all_of ], - [ sh:class linkml:AnonymousTypeExpression ; - sh:description "holds if at least one of the expressions hold" ; - sh:nodeKind sh:BlankNode ; + sh:order 33 ; + sh:path oslc:modifiedBy ], + [ sh:datatype xsd:string ; + sh:description "notes and comments about an element intended primarily for external consumption" ; sh:order 11 ; - sh:path linkml:any_of ] ; - sh:targetClass linkml:AnonymousTypeExpression . - -linkml:Any a sh:NodeShape ; - sh:closed true ; - sh:ignoredProperties ( rdf:type ), - ( rdf:type ) ; - sh:targetClass linkml:Any . - -linkml:AnonymousSlotExpression a sh:NodeShape ; - sh:closed true ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "Controlled terms used to categorize an element." ; - sh:order 60 ; - sh:path dcterms:subject ], - [ sh:class linkml:Element ; - sh:description """defines the type of the object of the slot. Given the following slot definition - S1: - domain: C1 - range: C2 -the declaration - X: - S1: Y - -implicitly asserts Y is an instance of C2 -""" ; + sh:path skos:note ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 18 ; + sh:path rdfs:seeAlso ], + [ sh:datatype xsd:string ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 21 ; + sh:path skos:altLabel ], + [ sh:datatype xsd:string ; + sh:description "the string value of the slot must conform to this regular expression expressed in the string. May be interpolated." ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; sh:order 0 ; - sh:path linkml:range ], - [ sh:class linkml:EnumExpression ; - sh:description "An inlined enumeration" ; + sh:path linkml:syntax ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 2 ; - sh:path linkml:enum_range ], - [ sh:class linkml:PatternExpression ; - sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; + sh:order 32 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 36 ; + sh:path dcterms:subject ], + [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path skos:definition ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path dcterms:source ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; sh:maxCount 1 ; + sh:order 14 ; + sh:path skos:inScheme ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; sh:nodeKind sh:BlankNode ; - sh:order 10 ; - sh:path linkml:structured_pattern ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 49 ; - sh:path skos:closeMatch ], + sh:order 6 ; + sh:path linkml:alt_descriptions ], [ sh:datatype xsd:string ; sh:description "Keywords or tags used to describe the element" ; - sh:order 61 ; + sh:order 37 ; sh:path schema1:keywords ], - [ sh:class linkml:AnonymousSlotExpression ; - sh:description "the value of the slot is multivalued with all members satisfying the condition" ; + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 28 ; + sh:path skos:broadMatch ], + [ sh:description "agent that contributed to the element" ; + sh:order 30 ; + sh:path dcterms:contributor ], + [ sh:datatype xsd:string ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path linkml:imported_from ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path bibo:status ], + [ sh:datatype xsd:boolean ; + sh:description "if not true then the pattern must match the whole string, as if enclosed in ^...$" ; sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:partial_match ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; - sh:order 22 ; - sh:path linkml:all_members ], - [ sh:class linkml:AnonymousSlotExpression ; - sh:description "holds if none of the expressions hold" ; + sh:order 3 ; + sh:path linkml:extensions ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path OIO:inSubset ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path pav:createdBy ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; sh:nodeKind sh:BlankNode ; - sh:order 23 ; - sh:path linkml:none_of ], - [ sh:datatype xsd:integer ; - sh:description "the maximum number of entries for a multivalued slot" ; + sh:order 4 ; + sh:path linkml:annotations ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; sh:order 20 ; - sh:path linkml:maximum_cardinality ], + sh:path linkml:deprecated_element_has_possible_replacement ], [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 51 ; + sh:order 27 ; sh:path skos:narrowMatch ], - [ sh:datatype xsd:boolean ; - sh:description "True means that keyed or identified slot appears in an outer structure by value. False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere." ; + [ sh:datatype xsd:string ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 9 ; + sh:path linkml:todos ] ; + sh:targetClass linkml:PatternExpression . + +qudt:Unit a sh:NodeShape ; + sh:closed true ; + sh:description "A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension)." ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "Concept in a vocabulary or ontology that denotes the kind of quantity being measured, e.g. length" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path linkml:inlined ], - [ sh:description "agent that contributed to the element" ; - sh:order 54 ; - sh:path dcterms:contributor ], - [ sh:class linkml:AnonymousSlotExpression ; - sh:description "holds if only one of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 24 ; - sh:path linkml:exactly_one_of ], - [ sh:class linkml:AnonymousSlotExpression ; - sh:description "holds if at least one of the expressions hold" ; + sh:order 6 ; + sh:path qudt:hasQuantityKind ], + [ sh:datatype xsd:string ; + sh:description "An abbreviation for a unit is a short ASCII string that is used in place of the full name for the unit in contexts where non-ASCII characters would be problematic, or where using the abbreviation will enhance readability. When a power of a base unit needs to be expressed, such as squares this can be done using abbreviations rather than symbols (source: qudt)" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path qudt:abbreviation ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path qudt:iec61360Code ], + [ sh:datatype xsd:string ; + sh:description "name of the unit encoded as a symbol" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path qudt:symbol ], + [ sh:datatype xsd:string ; + sh:description "the spelled out name of the unit, for example, meter" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path rdfs:label ], + [ sh:datatype xsd:string ; + sh:description "Expression for deriving this unit from other units" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path linkml:derivation ], + [ sh:datatype xsd:string ; + sh:description "associates a QUDT unit with its UCUM code (case-sensitive)." ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path qudt:ucumCode ], + [ sh:description "Used to link a unit to equivalent concepts in ontologies such as UO, SNOMED, OEM, OBOE, NCIT" ; + sh:order 3 ; + sh:path skos:exactMatch ] ; + sh:targetClass qudt:Unit . + +linkml:ClassDefinition a sh:NodeShape ; + sh:closed true ; + sh:description "an element whose instances are complex objects that may have slot-value assignments" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path linkml:definition_uri ], + [ sh:class linkml:ClassDefinition ; + sh:description "A primary parent class from which inheritable metaslots are propagated" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 21 ; + sh:path linkml:is_a ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 56 ; + sh:path skos:mappingRelation ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 34 ; + sh:path linkml:implements ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 60 ; + sh:path skos:narrowMatch ], + [ sh:datatype xsd:string ; + sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 29 ; + sh:path linkml:id_prefixes ], + [ sh:datatype xsd:string ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 42 ; + sh:path linkml:todos ], + [ sh:class linkml:ClassDefinition ; + sh:description "A collection of secondary parent mixin classes from which inheritable metaslots are propagated" ; + sh:nodeKind sh:IRI ; + sh:order 24 ; + sh:path linkml:mixins ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 17 ; + sh:path linkml:exactly_one_of ], + [ sh:datatype xsd:string ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 54 ; + sh:path skos:altLabel ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 35 ; + sh:path linkml:instantiates ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 64 ; + sh:path pav:createdOn ], + [ sh:datatype xsd:boolean ; + sh:description "If true then all direct is_a children are mutually disjoint and share no instances in common" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path linkml:children_are_mutually_disjoint ], + [ sh:class linkml:LocalName ; + sh:nodeKind sh:BlankNode ; + sh:order 32 ; + sh:path linkml:local_names ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 55 ; + sh:path skosxl:altLabel ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 69 ; + sh:path dcterms:subject ], + [ sh:datatype xsd:string ; + sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 28 ; + sh:path rdfs:label ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 37 ; + sh:path linkml:annotations ], + [ sh:class linkml:ExtraSlotsExpression ; + sh:description """How a class instance handles extra data not specified in the class definition. +Note that this does *not* define the constraints that are placed on additional slots defined by inheriting classes. + +Possible values: +- `allowed: true` - allow all additional data +- `allowed: false` (or `allowed:` or `allowed: null` while `range_expression` is `null`) - + forbid all additional data (default) +- `range_expression: ...` - allow additional data if it matches the slot expression (see examples) +""" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 15 ; + sh:path linkml:extra_slots ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 70 ; + sh:path schema1:keywords ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 45 ; + sh:path linkml:examples ], + [ sh:description "DEPRECATED -- rdfs:subClassOf to be emitted in OWL generation" ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path linkml:subclass_of ], + [ sh:class linkml:ClassDefinition ; + sh:description "indicates that the domain element consists exactly of the members of the element in the range." ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path linkml:union_of ], + [ sh:datatype xsd:boolean ; + sh:description "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins." ; + sh:maxCount 1 ; + sh:order 23 ; + sh:path linkml:mixin ], + [ sh:datatype xsd:boolean ; + sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path linkml:id_prefixes_are_closed ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 59 ; + sh:path skos:relatedMatch ], + [ sh:datatype xsd:string ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 43 ; + sh:path skos:editorialNote ], + [ sh:class linkml:SlotDefinition ; + sh:description "the refinement of a slot in the context of the containing class definition." ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path linkml:slot_usage ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 58 ; + sh:path skos:closeMatch ], + [ sh:datatype xsd:boolean ; + sh:description "true if this class represents a relationship rather than an entity" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path linkml:represents_relationship ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 18 ; + sh:path linkml:none_of ], + [ sh:class linkml:SlotDefinition ; + sh:description "Inline definition of slots" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path linkml:attributes ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 57 ; + sh:path skos:exactMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 61 ; + sh:path skos:broadMatch ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 67 ; + sh:path bibo:status ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 53 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:datatype xsd:string ; + sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 50 ; + sh:path schema1:inLanguage ], + [ sh:datatype xsd:string ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 48 ; + sh:path linkml:imported_from ], + [ sh:datatype xsd:string ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 44 ; + sh:path skos:note ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 49 ; + sh:path dcterms:source ], + [ sh:datatype xsd:string ; + sh:description """Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots. +We call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion. +Implementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects +For example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm""" ; + sh:maxCount 1 ; + sh:order 27 ; + sh:path linkml:string_serialization ], + [ sh:class linkml:SlotDefinition ; + sh:description "collection of slot names that are applicable to a class" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path linkml:slots ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 19 ; + sh:path linkml:all_of ], + [ sh:datatype xsd:boolean ; + sh:description "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes." ; + sh:maxCount 1 ; + sh:order 22 ; + sh:path linkml:abstract ], + [ sh:class linkml:UniqueKey ; + sh:description "A collection of named unique keys for this class. Unique keys may be singular or compound." ; + sh:nodeKind sh:BlankNode ; + sh:order 8 ; + sh:path linkml:unique_keys ], + [ sh:datatype xsd:string ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 40 ; + sh:path dcterms:title ], + [ sh:datatype xsd:boolean ; + sh:description "if true then induced/mangled slot names are not created for class_usage and attributes" ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path linkml:slot_names_unique ], + [ sh:datatype xsd:string ; + sh:description "An established standard to which the element conforms." ; + sh:maxCount 1 ; + sh:order 33 ; + sh:path dcterms:conformsTo ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 47 ; + sh:path skos:inScheme ], + [ sh:description "agent that contributed to the element" ; + sh:order 63 ; + sh:path dcterms:contributor ], + [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path skos:definition ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 62 ; + sh:path pav:createdBy ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 66 ; + sh:path oslc:modifiedBy ], + [ sh:class linkml:ClassRule ; + sh:description "the collection of rules that apply to all members of this class" ; + sh:nodeKind sh:BlankNode ; + sh:order 9 ; + sh:path sh:rule ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 68 ; + sh:path sh:order ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 51 ; + sh:path rdfs:seeAlso ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; + sh:order 36 ; + sh:path linkml:extensions ], + [ sh:description "URI of the class that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:class_uri ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 39 ; + sh:path linkml:alt_descriptions ], + [ sh:class linkml:ClassDefinition ; + sh:description "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class." ; + sh:nodeKind sh:IRI ; sh:order 25 ; + sh:path linkml:apply_to ], + [ sh:datatype xsd:string ; + sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 41 ; + sh:path linkml:deprecated ], + [ sh:class linkml:ClassDefinition ; + sh:description "Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances" ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path linkml:disjoint_with ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "The collection of classification rules that apply to all members of this class. Classification rules allow for automatically assigning the instantiated type of an instance." ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:classification_rules ], + [ sh:datatype xsd:boolean ; + sh:description "Indicates that this is the Container class which forms the root of the serialized document structure in tree serializations" ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path linkml:tree_root ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 46 ; + sh:path OIO:inSubset ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 52 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 65 ; + sh:path pav:lastUpdatedOn ], + [ sh:class linkml:SlotDefinition ; + sh:description "The combination of is a plus defining slots form a genus-differentia definition, or the set of necessary and sufficient conditions that can be transformed into an OWL equivalence axiom" ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path linkml:defining_slots ], + [ sh:class linkml:SlotDefinition ; + sh:description "expresses constraints on a group of slots for a class expression" ; + sh:nodeKind sh:IRI ; + sh:order 20 ; + sh:path linkml:slot_conditions ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 16 ; sh:path linkml:any_of ], + [ sh:description "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model." ; + sh:order 26 ; + sh:path linkml:values_from ] ; + sh:targetClass linkml:ClassDefinition . + +linkml:Definition a sh:NodeShape ; + sh:closed false ; + sh:description "abstract base class for core metaclasses" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "An element in another schema which this element instantiates." ; + sh:order 14 ; + sh:path linkml:instantiates ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 46 ; + sh:path bibo:status ], + [ sh:datatype xsd:string ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 27 ; + sh:path linkml:imported_from ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 30 ; + sh:path rdfs:seeAlso ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 40 ; + sh:path skos:broadMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 35 ; + sh:path skos:mappingRelation ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 26 ; + sh:path skos:inScheme ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 13 ; + sh:path linkml:implements ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:class linkml:Definition ; + sh:description "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from." ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path linkml:mixins ], [ sh:datatype xsd:string ; - sh:description "the slot must have range string and the value of the slot must equal the specified value" ; + sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; - sh:order 14 ; - sh:path linkml:equals_string ], - [ sh:class qudt:Unit ; - sh:description "an encoding of a unit" ; + sh:order 20 ; + sh:path linkml:deprecated ], + [ sh:datatype xsd:string ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 23 ; + sh:path skos:note ], + [ sh:datatype xsd:boolean ; + sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; sh:maxCount 1 ; + sh:order 9 ; + sh:path linkml:id_prefixes_are_closed ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; sh:nodeKind sh:BlankNode ; - sh:order 11 ; - sh:path qudt:unit ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; - sh:nodeKind sh:BlankNode ; - sh:order 28 ; - sh:path linkml:annotations ], - [ sh:description "agent that created the element" ; - sh:maxCount 1 ; - sh:order 53 ; - sh:path pav:createdBy ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:order 18 ; + sh:path linkml:alt_descriptions ], + [ sh:datatype xsd:string ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; - sh:order 44 ; - sh:path linkml:deprecated_element_has_possible_replacement ], + sh:order 19 ; + sh:path dcterms:title ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 39 ; + sh:path skos:narrowMatch ], [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 50 ; + sh:order 38 ; sh:path skos:relatedMatch ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + [ sh:description "Controlled terms used to categorize an element." ; sh:order 48 ; - sh:path skos:exactMatch ], - [ sh:class linkml:AnonymousSlotExpression ; - sh:description "holds if all of the expressions hold" ; + sh:path dcterms:subject ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 47 ; + sh:path sh:order ], + [ sh:class linkml:LocalName ; sh:nodeKind sh:BlankNode ; - sh:order 26 ; - sh:path linkml:all_of ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; + sh:order 11 ; + sh:path linkml:local_names ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 36 ; + sh:path skos:exactMatch ], + [ sh:description "agent that created the element" ; sh:maxCount 1 ; - sh:order 38 ; - sh:path skos:inScheme ], + sh:order 41 ; + sh:path pav:createdBy ], [ sh:datatype xsd:string ; - sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; - sh:order 15 ; - sh:path linkml:equals_string_in ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; - sh:nodeKind sh:BlankNode ; - sh:order 30 ; - sh:path linkml:alt_descriptions ], - [ sh:class linkml:Any ; - sh:description "For ordinal ranges, the value must be equal to or higher than this" ; + sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; + sh:minCount 1 ; sh:order 7 ; - sh:path linkml:minimum_value ], + sh:path rdfs:label ], [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 35 ; - sh:path skos:note ], - [ sh:datatype xsd:integer ; - sh:description "the exact number of entries for a multivalued slot" ; + sh:description "the primary language used in the sources" ; sh:maxCount 1 ; - sh:order 18 ; - sh:path linkml:exact_cardinality ], + sh:order 29 ; + sh:path schema1:inLanguage ], [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:description """Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots. +We call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion. +Implementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects +For example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm""" ; sh:maxCount 1 ; - sh:order 31 ; - sh:path dcterms:title ], + sh:order 6 ; + sh:path linkml:string_serialization ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 49 ; + sh:path schema1:keywords ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 37 ; + sh:path skos:closeMatch ], + [ sh:datatype xsd:string ; + sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 8 ; + sh:path linkml:id_prefixes ], [ sh:datatype xsd:dateTime ; sh:description "time at which the element was last updated" ; sh:maxCount 1 ; - sh:order 56 ; + sh:order 44 ; sh:path pav:lastUpdatedOn ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 34 ; + sh:path skosxl:altLabel ], + [ sh:description "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model." ; + sh:order 5 ; + sh:path linkml:values_from ], [ sh:datatype xsd:string ; - sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 21 ; + sh:path linkml:todos ], + [ sh:description "A related resource from which the element is derived." ; sh:maxCount 1 ; - sh:order 12 ; - sh:path linkml:implicit_prefix ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; - sh:nodeKind sh:BlankNode ; - sh:order 27 ; - sh:path linkml:extensions ], + sh:order 28 ; + sh:path dcterms:source ], [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; + sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; - sh:order 32 ; - sh:path linkml:deprecated ], - [ sh:description "agent that modified the element" ; + sh:order 17 ; + sh:path skos:definition ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 24 ; + sh:path linkml:examples ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; sh:maxCount 1 ; - sh:order 57 ; - sh:path oslc:modifiedBy ], - [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:order 43 ; + sh:path pav:createdOn ], + [ sh:description "agent that contributed to the element" ; + sh:order 42 ; + sh:path dcterms:contributor ], + [ sh:datatype xsd:boolean ; + sh:description "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins." ; sh:maxCount 1 ; - sh:order 59 ; - sh:path sh:order ], - [ sh:datatype xsd:string ; - sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + sh:order 2 ; + sh:path linkml:mixin ], + [ sh:class linkml:Definition ; + sh:description "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded" ; sh:maxCount 1 ; - sh:order 9 ; - sh:path linkml:pattern ], + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path linkml:is_a ], [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 22 ; + sh:path skos:editorialNote ], + [ sh:class linkml:Definition ; + sh:description "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class." ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path linkml:apply_to ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; sh:maxCount 1 ; - sh:order 41 ; - sh:path schema1:inLanguage ], + sh:order 10 ; + sh:path linkml:definition_uri ], [ sh:datatype xsd:string ; sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 45 ; + sh:order 33 ; sh:path skos:altLabel ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 43 ; - sh:path linkml:deprecated_element_has_exact_replacement ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; + [ sh:description "agent that modified the element" ; sh:maxCount 1 ; - sh:order 55 ; - sh:path pav:createdOn ], + sh:order 45 ; + sh:path oslc:modifiedBy ], [ sh:class linkml:SubsetDefinition ; sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; sh:nodeKind sh:IRI ; - sh:order 37 ; + sh:order 25 ; sh:path OIO:inSubset ], - [ sh:datatype xsd:boolean ; - sh:description "True means that an inlined slot is represented as a list of range instances. False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance." ; + [ sh:datatype xsd:string ; + sh:description "An established standard to which the element conforms." ; sh:maxCount 1 ; - sh:order 6 ; - sh:path linkml:inlined_as_list ], - [ sh:description "status of the element" ; + sh:order 12 ; + sh:path dcterms:conformsTo ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 16 ; + sh:path linkml:annotations ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 58 ; - sh:path bibo:status ], - [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 33 ; - sh:path linkml:todos ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 47 ; - sh:path skos:mappingRelation ], + sh:order 32 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 15 ; + sh:path linkml:extensions ], [ sh:datatype xsd:boolean ; - sh:description "true means that the slot should be present in instances of the class definition, but this is not required" ; + sh:description "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes." ; sh:maxCount 1 ; - sh:order 4 ; - sh:path linkml:recommended ], + sh:order 1 ; + sh:path linkml:abstract ] ; + sh:targetClass linkml:Definition . + +linkml:LocalName a sh:NodeShape ; + sh:closed true ; + sh:description "an attributed label" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:datatype xsd:string ; + sh:description "a name assigned to an element in a given ontology" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 1 ; + sh:path skos:altLabel ], [ sh:datatype xsd:string ; - sh:description "the value of the slot must equal the value of the evaluated expression" ; + sh:description "the ncname of the source of the name" ; sh:maxCount 1 ; - sh:order 17 ; - sh:path linkml:equals_expression ], + sh:minCount 1 ; + sh:order 0 ; + sh:path linkml:local_name_source ] ; + sh:targetClass linkml:LocalName . + +linkml:AnonymousTypeExpression a sh:NodeShape ; + sh:closed true ; + sh:description "A type expression that is not a top-level named type definition. Used for nesting." ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:exactly_one_of ], [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; + sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; sh:maxCount 1 ; - sh:order 29 ; - sh:path skos:definition ], - [ sh:datatype xsd:boolean ; - sh:description "true means that the slot must be present in instances of the class definition" ; + sh:order 0 ; + sh:path linkml:pattern ], + [ sh:datatype xsd:string ; + sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; sh:maxCount 1 ; sh:order 3 ; - sh:path linkml:required ], - [ sh:class linkml:AnonymousSlotExpression ; - sh:description "the value of the slot is multivalued with at least one member satisfying the condition" ; + sh:path linkml:implicit_prefix ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 12 ; + sh:path linkml:all_of ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 11 ; + sh:path linkml:any_of ], + [ sh:class linkml:Any ; + sh:description "For ordinal ranges, the value must be equal to or lower than this" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; - sh:order 21 ; - sh:path linkml:has_member ], - [ sh:description "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" ; - sh:in ( "UNCOMMITTED" "PRESENT" "ABSENT" ) ; + sh:order 8 ; + sh:path linkml:maximum_value ], + [ sh:class qudt:Unit ; + sh:description "an encoding of a unit" ; sh:maxCount 1 ; - sh:order 13 ; - sh:path linkml:value_presence ], + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path qudt:unit ], [ sh:datatype xsd:integer ; sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; sh:maxCount 1 ; - sh:order 16 ; + sh:order 6 ; sh:path linkml:equals_number ], - [ sh:class linkml:AnonymousClassExpression ; - sh:description "A range that is described as a boolean expression combining existing ranges" ; + [ sh:datatype xsd:string ; + sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; + sh:order 5 ; + sh:path linkml:equals_string_in ], + [ sh:class linkml:Any ; + sh:description "For ordinal ranges, the value must be equal to or higher than this" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; - sh:order 1 ; - sh:path linkml:range_expression ], - [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 34 ; - sh:path skos:editorialNote ], + sh:order 7 ; + sh:path linkml:minimum_value ], [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; - sh:maxCount 1 ; - sh:order 39 ; - sh:path linkml:imported_from ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 52 ; - sh:path skos:broadMatch ], - [ sh:datatype xsd:integer ; - sh:description "the minimum number of entries for a multivalued slot" ; + sh:description "the slot must have range string and the value of the slot must equal the specified value" ; sh:maxCount 1 ; - sh:order 19 ; - sh:path linkml:minimum_cardinality ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; - sh:nodeKind sh:BlankNode ; - sh:order 46 ; - sh:path skosxl:altLabel ], - [ sh:description "A related resource from which the element is derived." ; + sh:order 4 ; + sh:path linkml:equals_string ], + [ sh:class linkml:PatternExpression ; + sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; sh:maxCount 1 ; - sh:order 40 ; - sh:path dcterms:source ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 42 ; - sh:path rdfs:seeAlso ], - [ sh:class linkml:Example ; - sh:description "example usages of an element" ; sh:nodeKind sh:BlankNode ; - sh:order 36 ; - sh:path linkml:examples ], - [ sh:class linkml:Any ; - sh:description "For ordinal ranges, the value must be equal to or lower than this" ; - sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:structured_pattern ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if none of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 8 ; - sh:path linkml:maximum_value ] ; - sh:targetClass linkml:AnonymousSlotExpression . + sh:order 9 ; + sh:path linkml:none_of ] ; + sh:targetClass linkml:AnonymousTypeExpression . -linkml:AnonymousClassExpression a sh:NodeShape ; +linkml:Any a sh:NodeShape ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ), + ( rdf:type ) ; + sh:targetClass linkml:Any . + +linkml:AnonymousSlotExpression a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 21 ; - sh:path rdfs:seeAlso ], - [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 13 ; - sh:path skos:editorialNote ], - [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 12 ; - sh:path linkml:todos ], + sh:property [ sh:datatype xsd:string ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 42 ; + sh:path linkml:imported_from ], [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 22 ; + sh:order 46 ; sh:path linkml:deprecated_element_has_exact_replacement ], - [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 24 ; - sh:path skos:altLabel ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; sh:nodeKind sh:BlankNode ; - sh:order 6 ; - sh:path linkml:extensions ], - [ sh:description "agent that created the element" ; - sh:maxCount 1 ; - sh:order 32 ; - sh:path pav:createdBy ], - [ sh:description "status of the element" ; + sh:order 31 ; + sh:path linkml:annotations ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 39 ; + sh:path linkml:examples ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; sh:maxCount 1 ; - sh:order 37 ; - sh:path bibo:status ], - [ sh:class linkml:SubsetDefinition ; - sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; - sh:nodeKind sh:IRI ; - sh:order 16 ; - sh:path OIO:inSubset ], - [ sh:class linkml:Definition ; - sh:description "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded" ; + sh:order 58 ; + sh:path pav:createdOn ], + [ sh:datatype xsd:string ; + sh:description "the primary language used in the sources" ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path linkml:is_a ], - [ sh:description "agent that modified the element" ; + sh:order 44 ; + sh:path schema1:inLanguage ], + [ sh:datatype xsd:boolean ; + sh:description "true means that the slot must be present in instances of the class definition" ; sh:maxCount 1 ; - sh:order 36 ; - sh:path oslc:modifiedBy ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:order 4 ; + sh:path linkml:required ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if at least one of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 25 ; - sh:path skosxl:altLabel ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:order 27 ; + sh:path linkml:any_of ], + [ sh:class linkml:EnumExpression ; + sh:description "An inlined enumeration" ; sh:maxCount 1 ; - sh:order 23 ; - sh:path linkml:deprecated_element_has_possible_replacement ], - [ sh:class linkml:AnonymousClassExpression ; - sh:description "holds if none of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 3 ; - sh:path linkml:none_of ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 28 ; - sh:path skos:closeMatch ], - [ sh:class linkml:SlotDefinition ; - sh:description "expresses constraints on a group of slots for a class expression" ; - sh:nodeKind sh:IRI ; - sh:order 5 ; - sh:path linkml:slot_conditions ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 26 ; - sh:path skos:mappingRelation ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; - sh:maxCount 1 ; - sh:order 35 ; - sh:path pav:lastUpdatedOn ], - [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 14 ; - sh:path skos:note ], - [ sh:description "A related resource from which the element is derived." ; - sh:maxCount 1 ; - sh:order 19 ; - sh:path dcterms:source ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 29 ; - sh:path skos:relatedMatch ], - [ sh:description "agent that contributed to the element" ; - sh:order 33 ; - sh:path dcterms:contributor ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:order 2 ; + sh:path linkml:enum_range ], + [ sh:class linkml:EnumBinding ; + sh:description """A collection of enum bindings that specify how a slot can be bound to a permissible value from an enumeration. +LinkML provides enums to allow string values to be restricted to one of a set of permissible values (specified statically or dynamically). +Enum bindings allow enums to be bound to any object, including complex nested objects. For example, given a (generic) class Concept with slots id and label, it may be desirable to restrict the values the id takes on in a given context. For example, a HumanSample class may have a slot for representing sample site, with a range of concept, but the values of that slot may be restricted to concepts from a particular branch of an anatomy ontology.""" ; sh:nodeKind sh:BlankNode ; - sh:order 7 ; - sh:path linkml:annotations ], - [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; + sh:order 3 ; + sh:path linkml:bindings ], + [ sh:class linkml:Any ; + sh:description "For ordinal ranges, the value must be equal to or higher than this" ; sh:maxCount 1 ; - sh:order 11 ; - sh:path linkml:deprecated ], - [ sh:class linkml:Example ; - sh:description "example usages of an element" ; sh:nodeKind sh:BlankNode ; - sh:order 15 ; - sh:path linkml:examples ], + sh:order 9 ; + sh:path linkml:minimum_value ], + [ sh:datatype xsd:string ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 48 ; + sh:path skos:altLabel ], [ sh:datatype xsd:integer ; sh:description "the relative order in which the element occurs, lower values are given precedence" ; sh:maxCount 1 ; - sh:order 38 ; + sh:order 62 ; sh:path sh:order ], - [ sh:class linkml:AnonymousClassExpression ; - sh:description "holds if all of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 4 ; - sh:path linkml:all_of ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 47 ; + sh:path linkml:deprecated_element_has_possible_replacement ], [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 31 ; + sh:order 55 ; sh:path skos:broadMatch ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 49 ; + sh:path skosxl:altLabel ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 53 ; + sh:path skos:relatedMatch ], [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; - sh:maxCount 1 ; - sh:order 8 ; - sh:path skos:definition ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 30 ; - sh:path skos:narrowMatch ], + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 37 ; + sh:path skos:editorialNote ], [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 40 ; - sh:path schema1:keywords ], + sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; + sh:order 17 ; + sh:path linkml:equals_string_in ], [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:description "the value of the slot must equal the value of the evaluated expression" ; sh:maxCount 1 ; - sh:order 10 ; - sh:path dcterms:title ], + sh:order 19 ; + sh:path linkml:equals_expression ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 45 ; + sh:path rdfs:seeAlso ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 52 ; + sh:path skos:closeMatch ], [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; - sh:maxCount 1 ; - sh:order 20 ; - sh:path schema1:inLanguage ], + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 38 ; + sh:path skos:note ], [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 27 ; + sh:order 51 ; sh:path skos:exactMatch ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; + [ sh:datatype xsd:string ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; sh:order 34 ; - sh:path pav:createdOn ], - [ sh:class linkml:AnonymousClassExpression ; - sh:description "holds if at least one of the expressions hold" ; + sh:path dcterms:title ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if all of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 1 ; - sh:path linkml:any_of ], - [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; - sh:maxCount 1 ; - sh:order 18 ; - sh:path linkml:imported_from ], + sh:order 28 ; + sh:path linkml:all_of ], [ sh:description "Controlled terms used to categorize an element." ; - sh:order 39 ; + sh:order 63 ; sh:path dcterms:subject ], - [ sh:class linkml:AnonymousClassExpression ; - sh:description "holds if only one of the expressions hold" ; + [ sh:datatype xsd:integer ; + sh:description "the minimum number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path linkml:minimum_cardinality ], + [ sh:class linkml:PatternExpression ; + sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; + sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; - sh:order 2 ; - sh:path linkml:exactly_one_of ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; + sh:order 12 ; + sh:path linkml:structured_pattern ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 59 ; + sh:path pav:lastUpdatedOn ], + [ sh:class qudt:Unit ; + sh:description "an encoding of a unit" ; + sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; - sh:order 9 ; - sh:path linkml:alt_descriptions ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; + sh:order 13 ; + sh:path qudt:unit ], + [ sh:datatype xsd:string ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 36 ; + sh:path linkml:todos ], + [ sh:description "agent that modified the element" ; sh:maxCount 1 ; - sh:order 17 ; - sh:path skos:inScheme ] ; - sh:targetClass linkml:AnonymousClassExpression . + sh:order 60 ; + sh:path oslc:modifiedBy ], + [ sh:class linkml:Any ; + sh:description "For ordinal ranges, the value must be equal to or lower than this" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:maximum_value ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 54 ; + sh:path skos:narrowMatch ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 61 ; + sh:path bibo:status ], + [ sh:class linkml:Element ; + sh:description """defines the type of the object of the slot. Given the following slot definition + S1: + domain: C1 + range: C2 +the declaration + X: + S1: Y -linkml:SlotDefinition a sh:NodeShape ; - sh:closed true ; - sh:description "an element that describes how instances are related to other instances" ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:boolean ; - sh:description "True means that an inlined slot is represented as a list of range instances. False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance." ; +implicitly asserts Y is an instance of C2 +""" ; sh:maxCount 1 ; - sh:order 44 ; - sh:path linkml:inlined_as_list ], - [ sh:class linkml:SlotDefinition ; - sh:description "allows for grouping of related slots into a grouping slot that serves the role of a group" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path linkml:range ], + [ sh:description "agent that contributed to the element" ; + sh:order 57 ; + sh:path dcterms:contributor ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 30 ; + sh:path linkml:extensions ], + [ sh:datatype xsd:string ; + sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path linkml:implicit_prefix ], + [ sh:description "A related resource from which the element is derived." ; sh:maxCount 1 ; + sh:order 43 ; + sh:path dcterms:source ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; sh:nodeKind sh:IRI ; + sh:order 40 ; + sh:path OIO:inSubset ], + [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; sh:order 32 ; - sh:path sh:group ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:path skos:definition ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if only one of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 99 ; - sh:path skosxl:altLabel ], + sh:order 26 ; + sh:path linkml:exactly_one_of ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 41 ; + sh:path skos:inScheme ], [ sh:class linkml:AnonymousSlotExpression ; - sh:description "holds if all of the expressions hold" ; + sh:description "the value of the slot is multivalued with at least one member satisfying the condition" ; + sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; + sh:order 23 ; + sh:path linkml:has_member ], + [ sh:datatype xsd:string ; + sh:description "the slot must have range string and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path linkml:equals_string ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; sh:order 64 ; - sh:path linkml:all_of ], + sh:path schema1:keywords ], + [ sh:datatype xsd:string ; + sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path linkml:deprecated ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 50 ; + sh:path skos:mappingRelation ], [ sh:datatype xsd:boolean ; - sh:description "True means that the key slot(s) is used to determine the instantiation (types) relation between objects and a ClassDefinition" ; + sh:description "True means that keyed or identified slot appears in an outer structure by value. False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere." ; sh:maxCount 1 ; - sh:order 13 ; - sh:path linkml:designates_type ], - [ sh:class qudt:Unit ; - sh:description "an encoding of a unit" ; + sh:order 7 ; + sh:path linkml:inlined ], + [ sh:datatype xsd:boolean ; + sh:description "True means that an inlined slot is represented as a list of range instances. False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance." ; sh:maxCount 1 ; + sh:order 8 ; + sh:path linkml:inlined_as_list ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; sh:nodeKind sh:BlankNode ; - sh:order 49 ; - sh:path qudt:unit ], - [ sh:class linkml:EnumExpression ; - sh:description "An inlined enumeration" ; + sh:order 33 ; + sh:path linkml:alt_descriptions ], + [ sh:datatype xsd:string ; + sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 40 ; - sh:path linkml:enum_range ], - [ sh:class linkml:SlotDefinition ; - sh:description "Ontology property which this slot is a subproperty of. Note: setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model." ; + sh:order 11 ; + sh:path linkml:pattern ], + [ sh:datatype xsd:integer ; + sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path linkml:equals_number ], + [ sh:class linkml:ArrayExpression ; + sh:description "coerces the value of the slot into an array and defines the dimensions of that array" ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 17 ; - sh:path rdfs:subPropertyOf ], + sh:nodeKind sh:BlankNode ; + sh:order 29 ; + sh:path linkml:array ], [ sh:datatype xsd:boolean ; - sh:description "true means that the slot must be present in instances of the class definition" ; + sh:description "true means that slot can have more than one value and should be represented using a list or collection structure." ; sh:maxCount 1 ; - sh:order 41 ; - sh:path linkml:required ], + sh:order 6 ; + sh:path linkml:multivalued ], [ sh:datatype xsd:boolean ; - sh:description "If True, then there must be no duplicates in the elements of a multivalued slot" ; + sh:description "true means that the slot should be present in instances of the class definition, but this is not required" ; sh:maxCount 1 ; - sh:order 8 ; - sh:path linkml:list_elements_unique ], - [ sh:datatype xsd:boolean ; - sh:description "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins." ; + sh:order 5 ; + sh:path linkml:recommended ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "the value of the slot is multivalued with all members satisfying the condition" ; sh:maxCount 1 ; - sh:order 67 ; - sh:path linkml:mixin ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 103 ; - sh:path skos:relatedMatch ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; + sh:nodeKind sh:BlankNode ; + sh:order 24 ; + sh:path linkml:all_members ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 25 ; + sh:path linkml:none_of ], + [ sh:description "if PRESENT then a value must be present (for lists there must be at least one value). If ABSENT then a value must be absent (for lists, must be empty)" ; + sh:in ( "UNCOMMITTED" "PRESENT" "ABSENT" ) ; sh:maxCount 1 ; - sh:order 109 ; - sh:path pav:lastUpdatedOn ], - [ sh:class linkml:SlotDefinition ; - sh:description "indicates that the domain element consists exactly of the members of the element in the range." ; - sh:nodeKind sh:IRI ; - sh:order 37 ; - sh:path linkml:union_of ], - [ sh:datatype xsd:boolean ; - sh:description "If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i" ; + sh:order 15 ; + sh:path linkml:value_presence ], + [ sh:datatype xsd:integer ; + sh:description "the exact number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path linkml:exact_cardinality ], + [ sh:datatype xsd:integer ; + sh:description "the maximum number of entries for a multivalued slot" ; sh:maxCount 1 ; sh:order 22 ; - sh:path linkml:asymmetric ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 104 ; - sh:path skos:narrowMatch ], - [ sh:datatype xsd:string ; - sh:description "a textual descriptor that indicates the role played by the slot range" ; + sh:path linkml:maximum_cardinality ], + [ sh:description "agent that created the element" ; sh:maxCount 1 ; - sh:order 28 ; - sh:path linkml:role ], + sh:order 56 ; + sh:path pav:createdBy ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "A range that is described as a boolean expression combining existing ranges" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:range_expression ] ; + sh:targetClass linkml:AnonymousSlotExpression . + +linkml:SlotDefinition a sh:NodeShape ; + sh:closed true ; + sh:description "an element that describes how instances are related to other instances" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:PatternExpression ; + sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 49 ; + sh:path linkml:structured_pattern ], + [ sh:class linkml:Any ; + sh:description "For ordinal ranges, the value must be equal to or higher than this" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 46 ; + sh:path linkml:minimum_value ], [ sh:class linkml:ClassDefinition ; sh:description """defines the type of the subject of the slot. Given the following slot definition S1: @@ -4513,584 +4701,823 @@ implicitly asserts that X is an instance of C1 sh:nodeKind sh:IRI ; sh:order 1 ; sh:path linkml:domain ], - [ sh:datatype xsd:string ; - sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; - sh:order 53 ; - sh:path linkml:equals_string_in ], - [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 87 ; - sh:path skos:editorialNote ], - [ sh:datatype xsd:string ; - sh:description "a name that is used in the singular form" ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path linkml:singular_name ], [ sh:class linkml:SlotDefinition ; - sh:description "A collection of secondary parent mixin slots from which inheritable metaslots are propagated" ; + sh:description "indicates that any instance of d s r implies that there is also an instance of r s' d" ; + sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 68 ; - sh:path linkml:mixins ], + sh:order 22 ; + sh:path owl:inverseOf ], [ sh:datatype xsd:string ; - sh:description "the value of the slot must equal the value of the evaluated expression" ; - sh:maxCount 1 ; - sh:order 55 ; - sh:path linkml:equals_expression ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:description "a textual descriptor that indicates the role played by the slot range" ; sh:maxCount 1 ; - sh:order 97 ; - sh:path linkml:deprecated_element_has_possible_replacement ], + sh:order 26 ; + sh:path linkml:role ], [ sh:datatype xsd:string ; sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; sh:maxCount 1 ; - sh:order 50 ; + sh:order 51 ; sh:path linkml:implicit_prefix ], + [ sh:description "the role a slot on a relationship class plays, for example, the subject, object or predicate roles" ; + sh:in ( rdf:subject rdf:object rdf:predicate "NODE" "OTHER_ROLE" ) ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path linkml:relational_role ], [ sh:class linkml:SlotDefinition ; - sh:description "If s transitive_form_of d, then (1) s holds whenever d holds (2) s is transitive (3) d holds whenever s holds and there are no intermediates, and s is not reflexive" ; + sh:description "allows for grouping of related slots into a grouping slot that serves the role of a group" ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 26 ; - sh:path linkml:transitive_form_of ], - [ sh:class linkml:Definition ; - sh:description "the \"owner\" of the slot. It is the class if it appears in the slots list, otherwise the declaring slot" ; + sh:order 30 ; + sh:path sh:group ], + [ sh:class linkml:SlotDefinition ; + sh:description "transitive_form_of including the reflexive case" ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 15 ; - sh:path linkml:owner ], - [ sh:class linkml:Element ; - sh:description """defines the type of the object of the slot. Given the following slot definition - S1: - domain: C1 - range: C2 -the declaration - X: - S1: Y - -implicitly asserts Y is an instance of C2 -""" ; + sh:order 25 ; + sh:path linkml:reflexive_transitive_form_of ], + [ sh:datatype xsd:boolean ; + sh:description "If s is reflexive, then i.s=i for all instances i" ; sh:maxCount 1 ; + sh:order 17 ; + sh:path linkml:reflexive ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 101 ; + sh:path skosxl:altLabel ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 85 ; + sh:path linkml:alt_descriptions ], + [ sh:class linkml:SlotDefinition ; + sh:description "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class." ; sh:nodeKind sh:IRI ; - sh:order 38 ; - sh:path linkml:range ], - [ sh:class linkml:AnonymousSlotExpression ; - sh:description "the value of the slot is multivalued with at least one member satisfying the condition" ; + sh:order 71 ; + sh:path linkml:apply_to ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 115 ; + sh:path dcterms:subject ], + [ sh:class linkml:ArrayExpression ; + sh:description "coerces the value of the slot into an array and defines the dimensions of that array" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 66 ; + sh:path linkml:array ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 107 ; + sh:path skos:broadMatch ], + [ sh:datatype xsd:integer ; + sh:description "the maximum number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 59 ; + sh:path linkml:maximum_cardinality ], + [ sh:datatype xsd:string ; + sh:description "the slot must have range string and the value of the slot must equal the specified value" ; sh:maxCount 1 ; + sh:order 53 ; + sh:path linkml:equals_string ], + [ sh:datatype xsd:boolean ; + sh:description "True means that an inlined slot is represented as a list of range instances. False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance." ; + sh:maxCount 1 ; + sh:order 45 ; + sh:path linkml:inlined_as_list ], + [ sh:datatype xsd:string ; + sh:description "The name of the slot referenced in the slot_usage" ; + sh:maxCount 1 ; + sh:order 28 ; + sh:path linkml:usage_slot_name ], + [ sh:class linkml:PathExpression ; + sh:description "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 32 ; + sh:path linkml:path_rule ], + [ sh:datatype xsd:string ; + sh:description """Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots. +We call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion. +Implementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects +For example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm""" ; + sh:maxCount 1 ; + sh:order 73 ; + sh:path linkml:string_serialization ], + [ sh:class linkml:SlotDefinition ; + sh:description "indicates that the domain element consists exactly of the members of the element in the range." ; + sh:nodeKind sh:IRI ; + sh:order 35 ; + sh:path linkml:union_of ], + [ sh:description "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model." ; + sh:order 72 ; + sh:path linkml:values_from ], + [ sh:datatype xsd:boolean ; + sh:description "true means that slot can have more than one value and should be represented using a list or collection structure." ; + sh:maxCount 1 ; + sh:order 43 ; + sh:path linkml:multivalued ], + [ sh:datatype xsd:string ; + sh:description "the name used for a slot in the context of its owning class. If present, this is used instead of the actual slot name." ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path skos:prefLabel ], + [ sh:datatype xsd:integer ; + sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 55 ; + sh:path linkml:equals_number ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 105 ; + sh:path skos:relatedMatch ], + [ sh:class linkml:ClassDefinition ; + sh:description "the class(es) that reference the slot in a \"slots\" or \"slot_usage\" context" ; + sh:nodeKind sh:IRI ; + sh:order 14 ; + sh:path linkml:domain_of ], + [ sh:datatype xsd:integer ; + sh:description "the exact number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 57 ; + sh:path linkml:exact_cardinality ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if only one of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 59 ; - sh:path linkml:has_member ], + sh:order 63 ; + sh:path linkml:exactly_one_of ], + [ sh:datatype xsd:boolean ; + sh:description "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins." ; + sh:maxCount 1 ; + sh:order 69 ; + sh:path linkml:mixin ], [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 114 ; - sh:path schema1:keywords ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 100 ; - sh:path skos:mappingRelation ], + sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 75 ; + sh:path linkml:id_prefixes ], [ sh:datatype xsd:string ; sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; - sh:order 82 ; + sh:order 84 ; sh:path skos:definition ], - [ sh:datatype xsd:integer ; - sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; + [ sh:class linkml:LocalName ; + sh:nodeKind sh:BlankNode ; + sh:order 78 ; + sh:path linkml:local_names ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; sh:maxCount 1 ; - sh:order 54 ; - sh:path linkml:equals_number ], + sh:order 111 ; + sh:path pav:lastUpdatedOn ], [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:description "Outstanding issues that needs resolution" ; sh:order 88 ; - sh:path skos:note ], - [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; - sh:maxCount 1 ; - sh:order 85 ; - sh:path linkml:deprecated ], - [ sh:description "agent that modified the element" ; - sh:maxCount 1 ; - sh:order 110 ; - sh:path oslc:modifiedBy ], - [ sh:class linkml:Any ; - sh:description "For ordinal ranges, the value must be equal to or higher than this" ; + sh:path linkml:todos ], + [ sh:datatype xsd:boolean ; + sh:description "If s is irreflexive, then there exists no i such i.s=i" ; sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:irreflexive ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if at least one of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 45 ; - sh:path linkml:minimum_value ], - [ sh:datatype xsd:string ; - sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; + sh:order 64 ; + sh:path linkml:any_of ], + [ sh:class linkml:SlotDefinition ; + sh:description "Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances" ; + sh:nodeKind sh:IRI ; + sh:order 33 ; + sh:path linkml:disjoint_with ], + [ sh:datatype xsd:boolean ; + sh:description "True means that this slot was defined in a slot_usage situation" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 72 ; - sh:path rdfs:label ], + sh:order 27 ; + sh:path linkml:is_usage_slot ], [ sh:datatype xsd:boolean ; - sh:description "If s is locally_reflexive, then i.s=i for all instances i where s is a class slot for the type of i" ; + sh:description "If s is symmetric, and i.s=v, then v.s=i" ; sh:maxCount 1 ; - sh:order 20 ; - sh:path linkml:locally_reflexive ], - [ sh:class linkml:LocalName ; - sh:nodeKind sh:BlankNode ; - sh:order 76 ; - sh:path linkml:local_names ], - [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:order 16 ; + sh:path linkml:symmetric ], + [ sh:class linkml:Any ; + sh:description "For ordinal ranges, the value must be equal to or lower than this" ; sh:maxCount 1 ; - sh:order 112 ; - sh:path sh:order ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; + sh:nodeKind sh:BlankNode ; + sh:order 47 ; + sh:path linkml:maximum_value ], + [ sh:datatype xsd:boolean ; + sh:description "true if this slot is a grouping slot" ; sh:maxCount 1 ; - sh:order 108 ; - sh:path pav:createdOn ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 105 ; - sh:path skos:broadMatch ], + sh:order 31 ; + sh:path linkml:is_grouping_slot ], [ sh:datatype xsd:string ; - sh:description """function that provides a default value for the slot. Possible values for this slot are defined in linkml.utils.ifabsent_functions.default_library: - * [Tt]rue -- boolean True - * [Ff]alse -- boolean False - * bnode -- blank node identifier - * class_curie -- CURIE for the containing class - * class_uri -- URI for the containing class - * default_ns -- schema default namespace - * default_range -- schema default range - * int(value) -- integer value - * slot_uri -- URI for the slot - * slot_curie -- CURIE for the slot - * string(value) -- string value""" ; - sh:maxCount 1 ; - sh:order 7 ; - sh:path linkml:ifabsent ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 102 ; - sh:path skos:closeMatch ], - [ sh:description "agent that contributed to the element" ; - sh:order 107 ; - sh:path dcterms:contributor ], - [ sh:datatype xsd:boolean ; - sh:description "True means that the key slot(s) uniquely identify the elements within a single container" ; + sh:description "a name that is used in the singular form" ; sh:maxCount 1 ; - sh:order 11 ; - sh:path linkml:key ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 95 ; - sh:path rdfs:seeAlso ], + sh:order 0 ; + sh:path linkml:singular_name ], [ sh:datatype xsd:boolean ; - sh:description "If True, then the relationship between the slot domain and range is many to one or many to many" ; + sh:description "If True, then the order of elements of a multivalued slot is guaranteed to be preserved. If False, the order may still be preserved but this is not guaranteed" ; sh:maxCount 1 ; - sh:order 10 ; - sh:path linkml:shared ], + sh:order 7 ; + sh:path linkml:list_elements_ordered ], [ sh:datatype xsd:boolean ; sh:description "If s is transitive, and i.s=z, and s.s=j, then i.s=j" ; sh:maxCount 1 ; - sh:order 23 ; + sh:order 21 ; sh:path linkml:transitive ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 113 ; - sh:path dcterms:subject ], - [ sh:datatype xsd:string ; - sh:description "If present, slot is read only. Text explains why" ; + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; sh:maxCount 1 ; - sh:order 6 ; - sh:path linkml:readonly ], + sh:order 77 ; + sh:path linkml:definition_uri ], [ sh:datatype xsd:string ; - sh:description "The name of the slot referenced in the slot_usage" ; - sh:maxCount 1 ; - sh:order 30 ; - sh:path linkml:usage_slot_name ], - [ sh:class linkml:SlotDefinition ; - sh:description "A primary parent slot from which inheritable metaslots are propagated" ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 65 ; - sh:path linkml:is_a ], - [ sh:class linkml:PathExpression ; - sh:description "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 34 ; - sh:path linkml:path_rule ], + sh:description "Keywords or tags used to describe the element" ; + sh:order 116 ; + sh:path schema1:keywords ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 103 ; + sh:path skos:exactMatch ], [ sh:datatype xsd:integer ; sh:description "the minimum number of entries for a multivalued slot" ; sh:maxCount 1 ; - sh:order 57 ; + sh:order 58 ; sh:path linkml:minimum_cardinality ], - [ sh:datatype xsd:string ; - sh:description "the slot must have range string and the value of the slot must equal the specified value" ; + [ sh:class linkml:AnonymousClassExpression ; + sh:description "A range that is described as a boolean expression combining existing ranges" ; sh:maxCount 1 ; - sh:order 52 ; - sh:path linkml:equals_string ], + sh:nodeKind sh:BlankNode ; + sh:order 38 ; + sh:path linkml:range_expression ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 65 ; + sh:path linkml:all_of ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 106 ; + sh:path skos:narrowMatch ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 112 ; + sh:path oslc:modifiedBy ], [ sh:datatype xsd:boolean ; sh:description "True means that the key slot(s) uniquely identifies the elements. There can be at most one identifier or key per container" ; sh:maxCount 1 ; - sh:order 12 ; + sh:order 10 ; sh:path linkml:identifier ], - [ sh:datatype xsd:boolean ; - sh:description "If s is reflexive, then i.s=i for all instances i" ; - sh:maxCount 1 ; - sh:order 19 ; - sh:path linkml:reflexive ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; - sh:nodeKind sh:BlankNode ; - sh:order 80 ; - sh:path linkml:extensions ], - [ sh:datatype xsd:integer ; - sh:description "the exact number of entries for a multivalued slot" ; + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 104 ; + sh:path skos:closeMatch ], + [ sh:description "A related resource from which the element is derived." ; sh:maxCount 1 ; - sh:order 56 ; - sh:path linkml:exact_cardinality ], + sh:order 95 ; + sh:path dcterms:source ], [ sh:datatype xsd:boolean ; - sh:description "If s is symmetric, and i.s=v, then v.s=i" ; + sh:description "If s is locally_reflexive, then i.s=i for all instances i where s is a class slot for the type of i" ; sh:maxCount 1 ; sh:order 18 ; - sh:path linkml:symmetric ], - [ sh:description "the role a slot on a relationship class plays, for example, the subject, object or predicate roles" ; - sh:in ( rdf:subject rdf:object rdf:predicate "NODE" "OTHER_ROLE" ) ; + sh:path linkml:locally_reflexive ], + [ sh:description "agent that contributed to the element" ; + sh:order 109 ; + sh:path dcterms:contributor ], + [ sh:datatype xsd:string ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 31 ; - sh:path linkml:relational_role ], - [ sh:datatype xsd:integer ; - sh:description "the maximum number of entries for a multivalued slot" ; + sh:order 94 ; + sh:path linkml:imported_from ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 62 ; + sh:path linkml:none_of ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 97 ; + sh:path rdfs:seeAlso ], + [ sh:datatype xsd:string ; + sh:description """function that provides a default value for the slot. + * [Tt]rue -- boolean True + * [Ff]alse -- boolean False + * bnode -- blank node identifier + * class_curie -- CURIE for the containing class + * class_uri -- URI for the containing class + * default_ns -- schema default namespace + * default_range -- schema default range + * int(value) -- integer value + * slot_uri -- URI for the slot + * slot_curie -- CURIE for the slot + * string(value) -- string value + * EnumName(PermissibleValue) -- enum value""" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path linkml:ifabsent ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 80 ; + sh:path linkml:implements ], + [ sh:datatype xsd:boolean ; + sh:description "If True, then the relationship between the slot domain and range is many to one or many to many" ; sh:maxCount 1 ; - sh:order 58 ; - sh:path linkml:maximum_cardinality ], - [ sh:class linkml:AnonymousClassExpression ; - sh:description "A range that is described as a boolean expression combining existing ranges" ; + sh:order 8 ; + sh:path linkml:shared ], + [ sh:class linkml:Definition ; + sh:description "the \"owner\" of the slot. It is the class if it appears in the slots list, otherwise the declaring slot" ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 39 ; - sh:path linkml:range_expression ], - [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 98 ; - sh:path skos:altLabel ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; - sh:nodeKind sh:BlankNode ; - sh:order 81 ; - sh:path linkml:annotations ], - [ sh:class linkml:SlotDefinition ; - sh:description "Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances" ; sh:nodeKind sh:IRI ; - sh:order 35 ; - sh:path linkml:disjoint_with ], + sh:order 13 ; + sh:path linkml:owner ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 102 ; + sh:path skos:mappingRelation ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 108 ; + sh:path pav:createdBy ], [ sh:description "An element in another schema which this element instantiates." ; - sh:order 79 ; + sh:order 81 ; sh:path linkml:instantiates ], - [ sh:datatype xsd:boolean ; - sh:description "If s is irreflexive, then there exists no i such i.s=i" ; - sh:maxCount 1 ; - sh:order 21 ; - sh:path linkml:irreflexive ], [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 89 ; + sh:path skos:editorialNote ], + [ sh:datatype xsd:string ; + sh:description "the primary language used in the sources" ; sh:maxCount 1 ; - sh:order 84 ; - sh:path dcterms:title ], - [ sh:class linkml:AltDescription ; - sh:description "A sourced alternative description for an element" ; + sh:order 96 ; + sh:path schema1:inLanguage ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; sh:nodeKind sh:BlankNode ; sh:order 83 ; - sh:path linkml:alt_descriptions ], - [ sh:class linkml:SlotDefinition ; - sh:description "indicates that any instance of d s r implies that there is also an instance of r s' d" ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 24 ; - sh:path owl:inverseOf ], + sh:path linkml:annotations ], [ sh:class linkml:AnonymousSlotExpression ; - sh:description "holds if none of the expressions hold" ; + sh:description "the value of the slot is multivalued with all members satisfying the condition" ; + sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; sh:order 61 ; - sh:path linkml:none_of ], - [ sh:description "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas." ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path linkml:slot_uri ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; - sh:maxCount 1 ; - sh:order 91 ; - sh:path skos:inScheme ], - [ sh:class linkml:SlotDefinition ; - sh:description "transitive_form_of including the reflexive case" ; + sh:path linkml:all_members ], + [ sh:class linkml:Element ; + sh:description """defines the type of the object of the slot. Given the following slot definition + S1: + domain: C1 + range: C2 +the declaration + X: + S1: Y + +implicitly asserts Y is an instance of C2 +""" ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 27 ; - sh:path linkml:reflexive_transitive_form_of ], - [ sh:datatype xsd:boolean ; - sh:description "If true then all direct is_a children are mutually disjoint and share no instances in common" ; + sh:order 37 ; + sh:path linkml:range ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "the value of the slot is multivalued with at least one member satisfying the condition" ; sh:maxCount 1 ; - sh:order 36 ; - sh:path linkml:children_are_mutually_disjoint ], - [ sh:class linkml:ClassDefinition ; - sh:description "the class(es) that reference the slot in a \"slots\" or \"slot_usage\" context" ; - sh:nodeKind sh:IRI ; - sh:order 16 ; - sh:path linkml:domain_of ], + sh:nodeKind sh:BlankNode ; + sh:order 60 ; + sh:path linkml:has_member ], [ sh:datatype xsd:string ; - sh:description "An established standard to which the element conforms." ; + sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; - sh:order 77 ; - sh:path dcterms:conformsTo ], + sh:order 87 ; + sh:path linkml:deprecated ], [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; sh:order 86 ; - sh:path linkml:todos ], - [ sh:datatype xsd:boolean ; - sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; + sh:path dcterms:title ], + [ sh:description "if PRESENT then a value must be present (for lists there must be at least one value). If ABSENT then a value must be absent (for lists, must be empty)" ; + sh:in ( "UNCOMMITTED" "PRESENT" "ABSENT" ) ; sh:maxCount 1 ; - sh:order 74 ; - sh:path linkml:id_prefixes_are_closed ], - [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:order 52 ; + sh:path linkml:value_presence ], + [ sh:description "status of the element" ; sh:maxCount 1 ; - sh:order 92 ; - sh:path linkml:imported_from ], - [ sh:datatype xsd:string ; - sh:description "the name used for a slot in the context of its owning class. If present, this is used instead of the actual slot name." ; + sh:order 113 ; + sh:path bibo:status ], + [ sh:class qudt:Unit ; + sh:description "an encoding of a unit" ; sh:maxCount 1 ; - sh:order 14 ; - sh:path skos:prefLabel ], - [ sh:class linkml:AnonymousSlotExpression ; - sh:description "holds if at least one of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 63 ; - sh:path linkml:any_of ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:order 50 ; + sh:path qudt:unit ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; sh:maxCount 1 ; - sh:order 96 ; - sh:path linkml:deprecated_element_has_exact_replacement ], + sh:order 114 ; + sh:path sh:order ], [ sh:datatype xsd:boolean ; - sh:description "True means that keyed or identified slot appears in an outer structure by value. False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere." ; + sh:description "If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i" ; sh:maxCount 1 ; - sh:order 43 ; - sh:path linkml:inlined ], + sh:order 20 ; + sh:path linkml:asymmetric ], + [ sh:datatype xsd:boolean ; + sh:description "true means that the slot must be present in instances of the class definition" ; + sh:maxCount 1 ; + sh:order 41 ; + sh:path linkml:required ], [ sh:class linkml:SlotDefinition ; - sh:description "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class." ; + sh:description "Ontology property which this slot is a subproperty of. Note: setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model." ; + sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 69 ; - sh:path linkml:apply_to ], - [ sh:class linkml:Any ; - sh:description "For ordinal ranges, the value must be equal to or lower than this" ; + sh:order 15 ; + sh:path rdfs:subPropertyOf ], + [ sh:datatype xsd:boolean ; + sh:description "indicates that for any instance, i, the domain of this slot will include an assertion of i s range" ; sh:maxCount 1 ; + sh:order 23 ; + sh:path linkml:is_class_field ], + [ sh:class linkml:TypeMapping ; + sh:description "A collection of type mappings that specify how a slot's range should be mapped or serialized in different frameworks" ; sh:nodeKind sh:BlankNode ; - sh:order 46 ; - sh:path linkml:maximum_value ], + sh:order 36 ; + sh:path linkml:type_mappings ], + [ sh:datatype xsd:boolean ; + sh:description "If True, then there must be no duplicates in the elements of a multivalued slot" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path linkml:list_elements_unique ], [ sh:datatype xsd:string ; - sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + sh:description "An established standard to which the element conforms." ; sh:maxCount 1 ; - sh:order 47 ; - sh:path linkml:pattern ], - [ sh:datatype xsd:boolean ; - sh:description "indicates that for any instance, i, the domain of this slot will include an assertion of i s range" ; + sh:order 79 ; + sh:path dcterms:conformsTo ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 25 ; - sh:path linkml:is_class_field ], + sh:order 98 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 93 ; + sh:path skos:inScheme ], + [ sh:datatype xsd:string ; + sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 74 ; + sh:path rdfs:label ], + [ sh:datatype xsd:string ; + sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; + sh:order 54 ; + sh:path linkml:equals_string_in ], [ sh:datatype xsd:boolean ; sh:description "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes." ; sh:maxCount 1 ; - sh:order 66 ; + sh:order 68 ; sh:path linkml:abstract ], - [ sh:description "status of the element" ; + [ sh:datatype xsd:string ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 90 ; + sh:path skos:note ], + [ sh:description "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas." ; sh:maxCount 1 ; - sh:order 111 ; - sh:path bibo:status ], + sh:order 2 ; + sh:path linkml:slot_uri ], [ sh:datatype xsd:boolean ; - sh:description "If True, then the order of elements of a multivalued slot is guaranteed to be preserved. If False, the order may still be preserved but this is not guaranteed" ; + sh:description "true means that the *value* of a slot is inherited by subclasses" ; sh:maxCount 1 ; - sh:order 9 ; - sh:path linkml:list_elements_ordered ], - [ sh:class linkml:PatternExpression ; - sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; + sh:order 3 ; + sh:path linkml:inherited ], + [ sh:datatype xsd:boolean ; + sh:description "true means that the slot should be present in instances of the class definition, but this is not required" ; sh:maxCount 1 ; + sh:order 42 ; + sh:path linkml:recommended ], + [ sh:class linkml:EnumBinding ; + sh:description """A collection of enum bindings that specify how a slot can be bound to a permissible value from an enumeration. +LinkML provides enums to allow string values to be restricted to one of a set of permissible values (specified statically or dynamically). +Enum bindings allow enums to be bound to any object, including complex nested objects. For example, given a (generic) class Concept with slots id and label, it may be desirable to restrict the values the id takes on in a given context. For example, a HumanSample class may have a slot for representing sample site, with a range of concept, but the values of that slot may be restricted to concepts from a particular branch of an anatomy ontology.""" ; sh:nodeKind sh:BlankNode ; - sh:order 48 ; - sh:path linkml:structured_pattern ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 101 ; - sh:path skos:exactMatch ], - [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:order 40 ; + sh:path linkml:bindings ], + [ sh:datatype xsd:boolean ; + sh:description "True means that the key slot(s) is used to determine the instantiation (types) relation between objects and a ClassDefinition" ; sh:maxCount 1 ; - sh:order 75 ; - sh:path linkml:definition_uri ], + sh:order 11 ; + sh:path linkml:designates_type ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 82 ; + sh:path linkml:extensions ], + [ sh:datatype xsd:string ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 100 ; + sh:path skos:altLabel ], [ sh:class linkml:Example ; sh:description "example usages of an element" ; sh:nodeKind sh:BlankNode ; - sh:order 89 ; + sh:order 91 ; sh:path linkml:examples ], [ sh:datatype xsd:boolean ; - sh:description "True means that this slot was defined in a slot_usage situation" ; - sh:maxCount 1 ; - sh:order 29 ; - sh:path linkml:is_usage_slot ], - [ sh:datatype xsd:boolean ; - sh:description "true if this slot is a grouping slot" ; + sh:description "True means that keyed or identified slot appears in an outer structure by value. False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere." ; sh:maxCount 1 ; - sh:order 33 ; - sh:path linkml:is_grouping_slot ], - [ sh:datatype xsd:boolean ; - sh:description "true means that the slot should be present in instances of the class definition, but this is not required" ; + sh:order 44 ; + sh:path linkml:inlined ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; sh:maxCount 1 ; - sh:order 42 ; - sh:path linkml:recommended ], + sh:order 110 ; + sh:path pav:createdOn ], [ sh:datatype xsd:string ; - sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; - sh:order 73 ; - sh:path linkml:id_prefixes ], - [ sh:description "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" ; - sh:in ( "UNCOMMITTED" "PRESENT" "ABSENT" ) ; + sh:description "the value of the slot must equal the value of the evaluated expression" ; sh:maxCount 1 ; - sh:order 51 ; - sh:path linkml:value_presence ], - [ sh:class linkml:AnonymousSlotExpression ; - sh:description "the value of the slot is multivalued with all members satisfying the condition" ; + sh:order 56 ; + sh:path linkml:equals_expression ], + [ sh:datatype xsd:string ; + sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNode ; - sh:order 60 ; - sh:path linkml:all_members ], - [ sh:datatype xsd:boolean ; - sh:description "true means that slot can have more than one value and should be represented using a list or collection structure." ; + sh:order 48 ; + sh:path linkml:pattern ], + [ sh:class linkml:SlotDefinition ; + sh:description "A primary parent slot from which inheritable metaslots are propagated" ; sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:multivalued ], - [ sh:class linkml:ArrayExpression ; - sh:description "coerces the value of the slot into an array and defines the dimensions of that array" ; + sh:nodeKind sh:IRI ; + sh:order 67 ; + sh:path linkml:is_a ], + [ sh:class linkml:EnumExpression ; + sh:description "An inlined enumeration" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; - sh:order 4 ; - sh:path linkml:array ], + sh:order 39 ; + sh:path linkml:enum_range ], [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; + sh:description "If present, slot is read only. Text explains why" ; sh:maxCount 1 ; - sh:order 94 ; - sh:path schema1:inLanguage ], - [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; - sh:order 78 ; - sh:path linkml:implements ], - [ sh:description "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model." ; - sh:order 70 ; - sh:path linkml:values_from ], - [ sh:description "A related resource from which the element is derived." ; + sh:order 4 ; + sh:path linkml:readonly ], + [ sh:datatype xsd:boolean ; + sh:description "If true then all direct is_a children are mutually disjoint and share no instances in common" ; sh:maxCount 1 ; - sh:order 93 ; - sh:path dcterms:source ], - [ sh:datatype xsd:string ; - sh:description """Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots. -We call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion. -Implementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects -For example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm""" ; + sh:order 34 ; + sh:path linkml:children_are_mutually_disjoint ], + [ sh:class linkml:SlotDefinition ; + sh:description "A collection of secondary parent mixin slots from which inheritable metaslots are propagated" ; + sh:nodeKind sh:IRI ; + sh:order 70 ; + sh:path linkml:mixins ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 71 ; - sh:path linkml:string_serialization ], + sh:order 99 ; + sh:path linkml:deprecated_element_has_possible_replacement ], [ sh:class linkml:SubsetDefinition ; sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; sh:nodeKind sh:IRI ; - sh:order 90 ; + sh:order 92 ; sh:path OIO:inSubset ], - [ sh:class linkml:AnonymousSlotExpression ; - sh:description "holds if only one of the expressions hold" ; - sh:nodeKind sh:BlankNode ; - sh:order 62 ; - sh:path linkml:exactly_one_of ], [ sh:datatype xsd:boolean ; - sh:description "true means that the *value* of a slot is inherited by subclasses" ; + sh:description "True means that the key slot(s) uniquely identify the elements within a single container" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path linkml:inherited ], - [ sh:description "agent that created the element" ; + sh:order 9 ; + sh:path linkml:key ], + [ sh:datatype xsd:boolean ; + sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; sh:maxCount 1 ; - sh:order 106 ; - sh:path pav:createdBy ] ; + sh:order 76 ; + sh:path linkml:id_prefixes_are_closed ], + [ sh:class linkml:SlotDefinition ; + sh:description "If s transitive_form_of d, then (1) s holds whenever d holds (2) s is transitive (3) d holds whenever s holds and there are no intermediates, and s is not reflexive" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 24 ; + sh:path linkml:transitive_form_of ] ; sh:targetClass linkml:SlotDefinition . -skosxl:Label a sh:NodeShape ; +linkml:AnonymousClassExpression a sh:NodeShape ; sh:closed true ; - sh:description "object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.)" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class linkml:Example ; - sh:description "example usages of an element" ; + sh:property [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 28 ; + sh:path skos:closeMatch ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 37 ; + sh:path bibo:status ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 26 ; + sh:path skos:mappingRelation ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if none of the expressions hold" ; sh:nodeKind sh:BlankNode ; - sh:order 12 ; - sh:path linkml:examples ], + sh:order 3 ; + sh:path linkml:none_of ], + [ sh:datatype xsd:string ; + sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path linkml:deprecated ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 31 ; + sh:path skos:broadMatch ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path skos:inScheme ], + [ sh:datatype xsd:string ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 24 ; + sh:path skos:altLabel ], + [ sh:datatype xsd:string ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 10 ; + sh:path dcterms:title ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 23 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 30 ; + sh:path skos:narrowMatch ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 39 ; + sh:path dcterms:subject ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path pav:lastUpdatedOn ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path OIO:inSubset ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 7 ; + sh:path linkml:annotations ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path sh:order ], + [ sh:class linkml:SlotDefinition ; + sh:description "expresses constraints on a group of slots for a class expression" ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path linkml:slot_conditions ], + [ sh:datatype xsd:string ; + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 14 ; + sh:path skos:note ], + [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path skos:definition ], [ sh:description "agent that modified the element" ; sh:maxCount 1 ; - sh:order 33 ; + sh:order 36 ; sh:path oslc:modifiedBy ], + [ sh:description "agent that contributed to the element" ; + sh:order 33 ; + sh:path dcterms:contributor ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 29 ; + sh:path skos:relatedMatch ], + [ sh:datatype xsd:string ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path linkml:imported_from ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:any_of ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 22 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path dcterms:source ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 15 ; + sh:path linkml:examples ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path linkml:all_of ], [ sh:datatype xsd:string ; sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 10 ; + sh:order 13 ; sh:path skos:editorialNote ], - [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 25 ; + sh:path skosxl:altLabel ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path linkml:exactly_one_of ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 32 ; + sh:path pav:createdBy ], + [ sh:class linkml:Definition ; + sh:description "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded" ; sh:maxCount 1 ; - sh:order 8 ; - sh:path linkml:deprecated ], + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path linkml:is_a ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 27 ; + sh:path skos:exactMatch ], [ sh:class linkml:AltDescription ; sh:description "A sourced alternative description for an element" ; sh:nodeKind sh:BlankNode ; - sh:order 6 ; + sh:order 9 ; sh:path linkml:alt_descriptions ], - [ sh:description "A list of related entities or URLs that may be of relevance" ; - sh:order 18 ; - sh:path rdfs:seeAlso ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; - sh:nodeKind sh:BlankNode ; - sh:order 4 ; - sh:path linkml:annotations ], - [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path skos:definition ], [ sh:datatype xsd:string ; sh:description "Outstanding issues that needs resolution" ; - sh:order 9 ; + sh:order 12 ; sh:path linkml:todos ], - [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; - sh:order 25 ; - sh:path skos:closeMatch ], - [ sh:description "A related resource from which the element is derived." ; + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; sh:maxCount 1 ; - sh:order 16 ; - sh:path dcterms:source ], + sh:order 34 ; + sh:path pav:createdOn ], [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; - sh:maxCount 1 ; - sh:order 7 ; - sh:path dcterms:title ], - [ sh:description "The category or categories of an alias. This can be drawn from any relevant vocabulary" ; - sh:order 2 ; - sh:path dcterms:subject ], + sh:description "Keywords or tags used to describe the element" ; + sh:order 40 ; + sh:path schema1:keywords ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 21 ; + sh:path rdfs:seeAlso ], [ sh:class linkml:Extension ; sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; - sh:order 3 ; + sh:order 6 ; sh:path linkml:extensions ], [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 36 ; - sh:path schema1:keywords ], - [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path schema1:inLanguage ] ; + sh:targetClass linkml:AnonymousClassExpression . + +skosxl:Label a sh:NodeShape ; + sh:closed true ; + sh:description "object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.)" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:datatype xsd:string ; + sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path linkml:deprecated ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; sh:order 27 ; - sh:path skos:narrowMatch ], + sh:path skos:relatedMatch ], [ sh:description "The relationship between an element and its alias." ; sh:in ( skos:exactMatch skos:relatedMatch skos:broaderMatch skos:narrowerMatch ) ; sh:maxCount 1 ; sh:order 1 ; sh:path rdf:predicate ], - [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 24 ; + sh:path skos:mappingRelation ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path linkml:extensions ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; sh:maxCount 1 ; sh:order 20 ; - sh:path linkml:deprecated_element_has_possible_replacement ], - [ sh:description "agent that created the element" ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:datatype xsd:anyURI ; + sh:description "The context in which an alias should be applied" ; + sh:order 3 ; + sh:path linkml:alias_contexts ], + [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; + sh:order 6 ; + sh:path skos:definition ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 5 ; + sh:path linkml:annotations ], + [ sh:datatype xsd:string ; + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 11 ; + sh:path skos:editorialNote ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; sh:order 29 ; - sh:path pav:createdBy ], + sh:path skos:broadMatch ], [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; + sh:description "time at which the element was last updated" ; sh:maxCount 1 ; - sh:order 31 ; - sh:path pav:createdOn ], + sh:order 33 ; + sh:path pav:lastUpdatedOn ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 13 ; + sh:path linkml:examples ], [ sh:datatype xsd:string ; sh:description "The literal lexical form of a structured alias; i.e the actual alias value." ; sh:maxCount 1 ; @@ -5098,71 +5525,104 @@ skosxl:Label a sh:NodeShape ; sh:order 0 ; sh:path skosxl:literalForm ], [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; - sh:maxCount 1 ; - sh:order 17 ; - sh:path schema1:inLanguage ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; + sh:order 16 ; + sh:path linkml:imported_from ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; sh:order 19 ; - sh:path linkml:deprecated_element_has_exact_replacement ], - [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; - sh:order 26 ; - sh:path skos:relatedMatch ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:path rdfs:seeAlso ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; sh:nodeKind sh:BlankNode ; - sh:order 22 ; - sh:path skosxl:altLabel ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; + sh:order 7 ; + sh:path linkml:alt_descriptions ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; - sh:order 32 ; - sh:path pav:lastUpdatedOn ], + sh:order 21 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:datatype xsd:string ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 10 ; + sh:path linkml:todos ], + [ sh:datatype xsd:string ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path dcterms:title ], + [ sh:datatype xsd:integer ; + sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 36 ; + sh:path sh:order ], + [ sh:description "The category or categories of an alias. This can be drawn from any relevant vocabulary" ; + sh:order 2 ; + sh:path dcterms:subject ], [ sh:datatype xsd:string ; sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 11 ; + sh:order 12 ; sh:path skos:note ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path pav:createdBy ], [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 24 ; + sh:order 25 ; sh:path skos:exactMatch ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 28 ; + sh:path skos:narrowMatch ], + [ sh:description "A related resource from which the element is derived." ; sh:maxCount 1 ; - sh:order 14 ; - sh:path skos:inScheme ], + sh:order 17 ; + sh:path dcterms:source ], [ sh:datatype xsd:string ; sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 21 ; + sh:order 22 ; sh:path skos:altLabel ], - [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - sh:order 23 ; - sh:path skos:mappingRelation ], [ sh:description "agent that contributed to the element" ; - sh:order 30 ; + sh:order 31 ; sh:path dcterms:contributor ], - [ sh:datatype xsd:integer ; - sh:description "the relative order in which the element occurs, lower values are given precedence" ; + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 26 ; + sh:path skos:closeMatch ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path skos:inScheme ], + [ sh:description "status of the element" ; sh:maxCount 1 ; sh:order 35 ; - sh:path sh:order ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 28 ; - sh:path skos:broadMatch ], + sh:path bibo:status ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 32 ; + sh:path pav:createdOn ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path oslc:modifiedBy ], [ sh:class linkml:SubsetDefinition ; sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; sh:nodeKind sh:IRI ; - sh:order 13 ; + sh:order 14 ; sh:path OIO:inSubset ], [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; - sh:maxCount 1 ; - sh:order 15 ; - sh:path linkml:imported_from ], - [ sh:description "status of the element" ; + sh:description "the primary language used in the sources" ; sh:maxCount 1 ; - sh:order 34 ; - sh:path bibo:status ] ; + sh:order 18 ; + sh:path schema1:inLanguage ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 23 ; + sh:path skosxl:altLabel ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 37 ; + sh:path schema1:keywords ] ; sh:targetClass skosxl:Label . linkml:AltDescription a sh:NodeShape ; @@ -5187,12 +5647,7 @@ linkml:Example a sh:NodeShape ; sh:closed true ; sh:description "usage example and description" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "description of what the value is doing" ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path linkml:value_description ], - [ sh:class linkml:Any ; + sh:property [ sh:class linkml:Any ; sh:description "direct object representation of the example" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNode ; @@ -5202,7 +5657,12 @@ linkml:Example a sh:NodeShape ; sh:description "example value" ; sh:maxCount 1 ; sh:order 0 ; - sh:path skos:example ] ; + sh:path skos:example ], + [ sh:datatype xsd:string ; + sh:description "description of what the value is doing" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:value_description ] ; sh:targetClass linkml:Example . linkml:Annotation a sh:NodeShape ; @@ -5214,11 +5674,6 @@ linkml:Annotation a sh:NodeShape ; sh:nodeKind sh:BlankNode ; sh:order 0 ; sh:path linkml:annotations ], - [ sh:description "a tag associated with an extension" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 1 ; - sh:path linkml:extension_tag ], [ sh:class linkml:Extension ; sh:description "a tag/text tuple attached to an arbitrary element" ; sh:nodeKind sh:BlankNode ; @@ -5230,193 +5685,198 @@ linkml:Annotation a sh:NodeShape ; sh:minCount 1 ; sh:nodeKind sh:BlankNode ; sh:order 2 ; - sh:path linkml:extension_value ] ; + sh:path linkml:extension_value ], + [ sh:description "a tag associated with an extension" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 1 ; + sh:path linkml:extension_tag ] ; sh:targetClass linkml:Annotation . linkml:SubsetDefinition a sh:NodeShape ; sh:closed true ; sh:description "an element that can be used to group other metamodel elements" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; - sh:order 32 ; - sh:path skos:narrowMatch ], - [ sh:description "agent that created the element" ; + sh:property [ sh:description "A related resource from which the element is derived." ; sh:maxCount 1 ; - sh:order 34 ; - sh:path pav:createdBy ], - [ sh:description "An element in another schema which this element instantiates." ; - sh:order 7 ; - sh:path linkml:instantiates ], - [ sh:datatype xsd:string ; - sh:description "Keywords or tags used to describe the element" ; - sh:order 42 ; - sh:path schema1:keywords ], + sh:order 21 ; + sh:path dcterms:source ], [ sh:datatype xsd:string ; - sh:description "notes and comments about an element intended primarily for external consumption" ; - sh:order 16 ; - sh:path skos:note ], + sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 15 ; + sh:path skos:editorialNote ], [ sh:datatype xsd:string ; - sh:description "the primary language used in the sources" ; + sh:description "the imports entry that this element was derived from. Empty means primary source" ; sh:maxCount 1 ; - sh:order 22 ; - sh:path schema1:inLanguage ], + sh:order 20 ; + sh:path linkml:imported_from ], [ sh:class linkml:LocalName ; sh:nodeKind sh:BlankNode ; sh:order 4 ; sh:path linkml:local_names ], - [ sh:datatype xsd:string ; - sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; - sh:order 1 ; - sh:path linkml:id_prefixes ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 8 ; + sh:path linkml:extensions ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 27 ; + sh:path skosxl:altLabel ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 37 ; + sh:path pav:lastUpdatedOn ], [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; sh:maxCount 1 ; sh:order 25 ; sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path oslc:modifiedBy ], [ sh:datatype xsd:string ; - sh:description "editorial notes about an element intended primarily for internal consumption" ; - sh:order 15 ; - sh:path skos:editorialNote ], - [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 1 ; + sh:path linkml:id_prefixes ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 41 ; + sh:path dcterms:subject ], + [ sh:datatype xsd:string ; + sh:description "Keywords or tags used to describe the element" ; + sh:order 42 ; + sh:path schema1:keywords ], + [ sh:datatype xsd:dateTime ; + sh:description "time at which the element was created" ; sh:maxCount 1 ; - sh:order 3 ; - sh:path linkml:definition_uri ], - [ sh:class linkml:Example ; - sh:description "example usages of an element" ; + sh:order 36 ; + sh:path pav:createdOn ], + [ sh:datatype xsd:anyURI ; + sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path skos:inScheme ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; sh:nodeKind sh:BlankNode ; - sh:order 17 ; - sh:path linkml:examples ], + sh:order 9 ; + sh:path linkml:annotations ], [ sh:description "agent that contributed to the element" ; sh:order 35 ; sh:path dcterms:contributor ], - [ sh:class linkml:SubsetDefinition ; - sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; - sh:nodeKind sh:IRI ; - sh:order 18 ; - sh:path OIO:inSubset ], - [ sh:datatype xsd:boolean ; - sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; + [ sh:description "agent that created the element" ; sh:maxCount 1 ; - sh:order 2 ; - sh:path linkml:id_prefixes_are_closed ], - [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; - sh:order 6 ; - sh:path linkml:implements ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; - sh:nodeKind sh:BlankNode ; - sh:order 8 ; - sh:path linkml:extensions ], + sh:order 34 ; + sh:path pav:createdBy ], [ sh:datatype xsd:string ; - sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:description "Outstanding issues that needs resolution" ; + sh:order 14 ; + sh:path linkml:todos ], + [ sh:datatype xsd:string ; + sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 26 ; + sh:path skos:altLabel ], + [ sh:datatype xsd:string ; + sh:description "a textual description of the element's purpose and use" ; sh:maxCount 1 ; - sh:order 20 ; - sh:path linkml:imported_from ], + sh:order 10 ; + sh:path skos:definition ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 17 ; + sh:path linkml:examples ], [ sh:description "A list of related entities or URLs that may be of relevance" ; sh:order 23 ; sh:path rdfs:seeAlso ], - [ sh:description "status of the element" ; - sh:maxCount 1 ; - sh:order 39 ; - sh:path bibo:status ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 6 ; + sh:path linkml:implements ], [ sh:datatype xsd:integer ; sh:description "the relative order in which the element occurs, lower values are given precedence" ; sh:maxCount 1 ; sh:order 40 ; sh:path sh:order ], [ sh:datatype xsd:string ; - sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 0 ; - sh:path rdfs:label ], - [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; - sh:order 29 ; - sh:path skos:exactMatch ], + sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 16 ; + sh:path skos:note ], [ sh:datatype xsd:string ; sh:description "An established standard to which the element conforms." ; sh:maxCount 1 ; sh:order 5 ; sh:path dcterms:conformsTo ], - [ sh:class skosxl:Label ; - sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; - sh:nodeKind sh:BlankNode ; - sh:order 27 ; - sh:path skosxl:altLabel ], - [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; - sh:maxCount 1 ; - sh:order 24 ; - sh:path linkml:deprecated_element_has_exact_replacement ], - [ sh:description "A related resource from which the element is derived." ; + [ sh:datatype xsd:string ; + sh:description "the primary language used in the sources" ; sh:maxCount 1 ; - sh:order 21 ; - sh:path dcterms:source ], + sh:order 22 ; + sh:path schema1:inLanguage ], [ sh:datatype xsd:string ; - sh:description "Outstanding issues that needs resolution" ; - sh:order 14 ; - sh:path linkml:todos ], + sh:description "the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path rdfs:label ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 7 ; + sh:path linkml:instantiates ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 33 ; + sh:path skos:broadMatch ], [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; sh:order 28 ; sh:path skos:mappingRelation ], - [ sh:datatype xsd:string ; - sh:description "a textual description of the element's purpose and use" ; - sh:maxCount 1 ; - sh:order 10 ; - sh:path skos:definition ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was last updated" ; - sh:maxCount 1 ; - sh:order 37 ; - sh:path pav:lastUpdatedOn ], - [ sh:datatype xsd:anyURI ; - sh:description "id of the schema that defined the element" ; + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 18 ; + sh:path OIO:inSubset ], + [ sh:datatype xsd:boolean ; + sh:description "If true, then the id_prefixes slot is treated as being closed, and any use of an id that does not have this prefix is considered a violation." ; sh:maxCount 1 ; - sh:order 19 ; - sh:path skos:inScheme ], + sh:order 2 ; + sh:path linkml:id_prefixes_are_closed ], [ sh:datatype xsd:string ; - sh:description "Description of why and when this element will no longer be used" ; + sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; sh:maxCount 1 ; - sh:order 13 ; - sh:path linkml:deprecated ], - [ sh:description "Controlled terms used to categorize an element." ; - sh:order 41 ; - sh:path dcterms:subject ], + sh:order 12 ; + sh:path dcterms:title ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 32 ; + sh:path skos:narrowMatch ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 39 ; + sh:path bibo:status ], [ sh:class linkml:AltDescription ; sh:description "A sourced alternative description for an element" ; sh:nodeKind sh:BlankNode ; sh:order 11 ; sh:path linkml:alt_descriptions ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 29 ; + sh:path skos:exactMatch ], [ sh:datatype xsd:string ; - sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; - sh:maxCount 1 ; - sh:order 12 ; - sh:path dcterms:title ], - [ sh:class linkml:Annotation ; - sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; - sh:nodeKind sh:BlankNode ; - sh:order 9 ; - sh:path linkml:annotations ], - [ sh:datatype xsd:dateTime ; - sh:description "time at which the element was created" ; + sh:description "Description of why and when this element will no longer be used" ; sh:maxCount 1 ; - sh:order 36 ; - sh:path pav:createdOn ], + sh:order 13 ; + sh:path linkml:deprecated ], [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; sh:order 31 ; sh:path skos:relatedMatch ], - [ sh:datatype xsd:string ; - sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; - sh:order 26 ; - sh:path skos:altLabel ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:definition_uri ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 24 ; + sh:path linkml:deprecated_element_has_exact_replacement ], [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; sh:order 30 ; - sh:path skos:closeMatch ], - [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; - sh:order 33 ; - sh:path skos:broadMatch ], - [ sh:description "agent that modified the element" ; - sh:maxCount 1 ; - sh:order 38 ; - sh:path oslc:modifiedBy ] ; + sh:path skos:closeMatch ] ; sh:targetClass linkml:SubsetDefinition . linkml:Extension a sh:NodeShape ; @@ -5428,17 +5888,17 @@ linkml:Extension a sh:NodeShape ; sh:minCount 1 ; sh:order 0 ; sh:path linkml:extension_tag ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path linkml:extensions ], [ sh:class linkml:Any ; sh:description "the actual annotation" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:BlankNode ; sh:order 1 ; - sh:path linkml:extension_value ], - [ sh:class linkml:Extension ; - sh:description "a tag/text tuple attached to an arbitrary element" ; - sh:nodeKind sh:BlankNode ; - sh:order 2 ; - sh:path linkml:extensions ] ; + sh:path linkml:extension_value ] ; sh:targetClass linkml:Extension . diff --git a/linkml_model/shex/meta.shex b/linkml_model/shex/meta.shex index abdb049a..0c098e6e 100644 --- a/linkml_model/shex/meta.shex +++ b/linkml_model/shex/meta.shex @@ -175,8 +175,10 @@ PREFIX oboInOwl: @ ? ; @ ? ; @ ? ; + @ * ; @ ? ; @ ? ; + @ ? ; @ ? ; @ ? ; @ ? ; @@ -199,7 +201,8 @@ PREFIX oboInOwl: @ * ; @ * ; @ * ; - @ * + @ * ; + @ ? ) ; rdf:type [ ] ? ) @@ -248,7 +251,6 @@ PREFIX oboInOwl: @ ? ; @ ? ; @ ? ; - @ ? ; @ * ; @ * ; @ * ; @@ -310,6 +312,7 @@ PREFIX oboInOwl: @ ? ; @ * ; @ ? ; + @ ? ; @ * ; @ * ; @ * ; @@ -562,6 +565,61 @@ PREFIX oboInOwl: ) } + CLOSED { + ( $ ( & ; + rdf:type [ ] ? ; + & ; + rdf:type [ ] ? ; + & ; + rdf:type [ ] ? ; + @ ? ; + [ + + ] ? ; + @ ? ; + [ + + ] ? ; + @ * ; + @ * ; + skos:definition @ ? ; + @ * ; + dcterms:title @ ? ; + @ ? ; + @ * ; + skos:editorialNote @ * ; + skos:note @ * ; + @ * ; + oboInOwl:inSubset @ * ; + skos:inScheme @ ? ; + @ ? ; + dcterms:source @ ? ; + schema1:inLanguage @ ? ; + rdfs:seeAlso @ * ; + @ ? ; + @ ? ; + skos:altLabel @ * ; + skosxl:altLabel @ * ; + skos:mappingRelation @ * ; + skos:exactMatch @ * ; + skos:closeMatch @ * ; + skos:relatedMatch @ * ; + skos:narrowMatch @ * ; + skos:broadMatch @ * ; + pav:createdBy @ ? ; + dcterms:contributor @ * ; + pav:createdOn @ ? ; + pav:lastUpdatedOn @ ? ; + oslc:modifiedBy @ ? ; + bibo:status @ ? ; + sh:order @ ? ; + dcterms:subject @ * ; + schema1:keywords @ * + ) ; + rdf:type [ ] ? + ) +} + CLOSED { ( $ ( & ; rdf:type [ ] ? ; @@ -643,6 +701,16 @@ PREFIX oboInOwl: } OR @ ) + CLOSED { + ( $ ( & ; + rdf:type [ ] ? ; + @ ? ; + @ ? + ) ; + rdf:type [ ] ? + ) +} + CLOSED { ( $ ( & ; rdf:type [ ] ? ; @@ -826,6 +894,8 @@ PREFIX oboInOwl: skos:definition @ ? ; @ ? ; qudt:unit @ ? ; + @ * ; + @ * ; @ * ; @ * ; @ * ; @@ -909,7 +979,8 @@ PREFIX oboInOwl: @ ? ; @ ? ; @ ? ; - @ * + @ * ; + @ * ) ; rdf:type [ ] ) @@ -931,8 +1002,6 @@ PREFIX oboInOwl: @ ? ; @ ? ; @ ? ; - @ ? ; - @ ? ; @ ? ; @ ? ; @ ? ; @@ -967,13 +1036,16 @@ PREFIX oboInOwl: @ * ; @ ? ; @ * ; + @ * ; @ * ; @ * ; @ ? ; @ ? ; @ ? ; + @ * ; @ ? ; @ ? ; + @ ? ; @ ? ; @ ? ; @ ? ; @@ -996,7 +1068,8 @@ PREFIX oboInOwl: @ * ; @ * ; @ * ; - @ * + @ * ; + @ ? ) ; rdf:type [ ] ) @@ -1008,8 +1081,10 @@ PREFIX oboInOwl: @ ? ; @ ? ; @ ? ; + @ * ; @ ? ; @ ? ; + @ ? ; @ ? ; @ ? ; @ ? ; @@ -1032,7 +1107,8 @@ PREFIX oboInOwl: @ * ; @ * ; @ * ; - @ * + @ * ; + @ ? ) ; rdf:type [ ] ? ) @@ -1050,6 +1126,7 @@ PREFIX oboInOwl: skosxl:literalForm @ ; rdf:predicate [ skos:exactMatch skos:relatedMatch skos:broaderMatch skos:narrowerMatch ] ? ; dcterms:subject @ * ; + @ * ; @ * ; @ * ; skos:definition @ ? ; @@ -1146,6 +1223,56 @@ PREFIX oboInOwl: ) } + CLOSED { + ( $ ( & ; + rdf:type [ ] ? ; + & ; + rdf:type [ ] ? ; + & ; + rdf:type [ ] ? ; + @ ; + @ ? ; + @ ? ; + @ * ; + @ * ; + skos:definition @ ? ; + @ * ; + dcterms:title @ ? ; + @ ? ; + @ * ; + skos:editorialNote @ * ; + skos:note @ * ; + @ * ; + oboInOwl:inSubset @ * ; + skos:inScheme @ ? ; + @ ? ; + dcterms:source @ ? ; + schema1:inLanguage @ ? ; + rdfs:seeAlso @ * ; + @ ? ; + @ ? ; + skos:altLabel @ * ; + skosxl:altLabel @ * ; + skos:mappingRelation @ * ; + skos:exactMatch @ * ; + skos:closeMatch @ * ; + skos:relatedMatch @ * ; + skos:narrowMatch @ * ; + skos:broadMatch @ * ; + pav:createdBy @ ? ; + dcterms:contributor @ * ; + pav:createdOn @ ? ; + pav:lastUpdatedOn @ ? ; + oslc:modifiedBy @ ? ; + bibo:status @ ? ; + sh:order @ ? ; + dcterms:subject @ * ; + schema1:keywords @ * + ) ; + rdf:type [ ] + ) +} + CLOSED { ( $ ( & ; rdf:type [ ] ? ; diff --git a/linkml_model/sqlschema/meta.sql b/linkml_model/sqlschema/meta.sql index aa2d615a..0ef54926 100644 --- a/linkml_model/sqlschema/meta.sql +++ b/linkml_model/sqlschema/meta.sql @@ -113,8 +113,10 @@ CREATE TABLE anonymous_slot_expression ( range TEXT, range_expression TEXT, enum_range TEXT, + bindings TEXT, required BOOLEAN, recommended BOOLEAN, + multivalued BOOLEAN, inlined BOOLEAN, inlined_as_list BOOLEAN, minimum_value TEXT, @@ -137,7 +139,8 @@ CREATE TABLE anonymous_slot_expression ( exactly_one_of TEXT, any_of TEXT, all_of TEXT, - PRIMARY KEY (extensions, annotations, description, alt_descriptions, title, deprecated, todos, notes, comments, examples, in_subset, from_schema, imported_from, source, in_language, see_also, deprecated_element_has_exact_replacement, deprecated_element_has_possible_replacement, aliases, structured_aliases, mappings, exact_mappings, close_mappings, related_mappings, narrow_mappings, broad_mappings, created_by, contributors, created_on, last_updated_on, modified_by, status, rank, categories, keywords, range, range_expression, enum_range, required, recommended, inlined, inlined_as_list, minimum_value, maximum_value, pattern, structured_pattern, unit, implicit_prefix, value_presence, equals_string, equals_string_in, equals_number, equals_expression, exact_cardinality, minimum_cardinality, maximum_cardinality, has_member, all_members, none_of, exactly_one_of, any_of, all_of) + array TEXT, + PRIMARY KEY (extensions, annotations, description, alt_descriptions, title, deprecated, todos, notes, comments, examples, in_subset, from_schema, imported_from, source, in_language, see_also, deprecated_element_has_exact_replacement, deprecated_element_has_possible_replacement, aliases, structured_aliases, mappings, exact_mappings, close_mappings, related_mappings, narrow_mappings, broad_mappings, created_by, contributors, created_on, last_updated_on, modified_by, status, rank, categories, keywords, range, range_expression, enum_range, bindings, required, recommended, multivalued, inlined, inlined_as_list, minimum_value, maximum_value, pattern, structured_pattern, unit, implicit_prefix, value_presence, equals_string, equals_string_in, equals_number, equals_expression, exact_cardinality, minimum_cardinality, maximum_cardinality, has_member, all_members, none_of, exactly_one_of, any_of, all_of, array) ); CREATE TABLE anonymous_type_expression ( @@ -161,7 +164,6 @@ CREATE TABLE array_expression ( exact_number_dimensions INTEGER, minimum_number_dimensions INTEGER, maximum_number_dimensions TEXT, - has_extra_dimensions BOOLEAN, dimensions TEXT, extensions TEXT, annotations TEXT, @@ -198,7 +200,7 @@ CREATE TABLE array_expression ( rank INTEGER, categories TEXT, keywords TEXT, - PRIMARY KEY (exact_number_dimensions, minimum_number_dimensions, maximum_number_dimensions, has_extra_dimensions, dimensions, extensions, annotations, description, alt_descriptions, title, deprecated, todos, notes, comments, examples, in_subset, from_schema, imported_from, source, in_language, see_also, deprecated_element_has_exact_replacement, deprecated_element_has_possible_replacement, aliases, structured_aliases, mappings, exact_mappings, close_mappings, related_mappings, narrow_mappings, broad_mappings, created_by, contributors, created_on, last_updated_on, modified_by, status, rank, categories, keywords) + PRIMARY KEY (exact_number_dimensions, minimum_number_dimensions, maximum_number_dimensions, dimensions, extensions, annotations, description, alt_descriptions, title, deprecated, todos, notes, comments, examples, in_subset, from_schema, imported_from, source, in_language, see_also, deprecated_element_has_exact_replacement, deprecated_element_has_possible_replacement, aliases, structured_aliases, mappings, exact_mappings, close_mappings, related_mappings, narrow_mappings, broad_mappings, created_by, contributors, created_on, last_updated_on, modified_by, status, rank, categories, keywords) ); CREATE TABLE class_definition ( @@ -244,6 +246,7 @@ CREATE TABLE class_definition ( represents_relationship BOOLEAN, disjoint_with TEXT, children_are_mutually_disjoint BOOLEAN, + extra_slots TEXT, is_a TEXT, mixins TEXT, apply_to TEXT, @@ -373,6 +376,12 @@ CREATE TABLE extension ( PRIMARY KEY (tag, value, extensions) ); +CREATE TABLE extra_slots_expression ( + allowed BOOLEAN, + range_expression TEXT, + PRIMARY KEY (allowed, range_expression) +); + CREATE TABLE import_expression ( import_from TEXT NOT NULL, import_as TEXT, @@ -520,6 +529,7 @@ CREATE TABLE structured_alias ( literal_form TEXT NOT NULL, predicate VARCHAR(15), categories TEXT, + contexts TEXT, extensions TEXT, annotations TEXT, description TEXT, @@ -554,7 +564,7 @@ CREATE TABLE structured_alias ( status TEXT, rank INTEGER, keywords TEXT, - PRIMARY KEY (literal_form, predicate, categories, extensions, annotations, description, alt_descriptions, title, deprecated, todos, notes, comments, examples, in_subset, from_schema, imported_from, source, in_language, see_also, deprecated_element_has_exact_replacement, deprecated_element_has_possible_replacement, aliases, structured_aliases, mappings, exact_mappings, close_mappings, related_mappings, narrow_mappings, broad_mappings, created_by, contributors, created_on, last_updated_on, modified_by, status, rank, keywords) + PRIMARY KEY (literal_form, predicate, categories, contexts, extensions, annotations, description, alt_descriptions, title, deprecated, todos, notes, comments, examples, in_subset, from_schema, imported_from, source, in_language, see_also, deprecated_element_has_exact_replacement, deprecated_element_has_possible_replacement, aliases, structured_aliases, mappings, exact_mappings, close_mappings, related_mappings, narrow_mappings, broad_mappings, created_by, contributors, created_on, last_updated_on, modified_by, status, rank, keywords) ); CREATE TABLE subset_definition ( @@ -694,6 +704,50 @@ CREATE TABLE class_rule ( FOREIGN KEY(class_definition_name) REFERENCES class_definition (name) ); +CREATE TABLE enum_binding ( + range TEXT, + obligation_level VARCHAR(11), + binds_value_of TEXT, + pv_formula VARCHAR(11), + extensions TEXT, + annotations TEXT, + description TEXT, + alt_descriptions TEXT, + title TEXT, + deprecated TEXT, + todos TEXT, + notes TEXT, + comments TEXT, + examples TEXT, + in_subset TEXT, + from_schema TEXT, + imported_from TEXT, + source TEXT, + in_language TEXT, + see_also TEXT, + deprecated_element_has_exact_replacement TEXT, + deprecated_element_has_possible_replacement TEXT, + aliases TEXT, + structured_aliases TEXT, + mappings TEXT, + exact_mappings TEXT, + close_mappings TEXT, + related_mappings TEXT, + narrow_mappings TEXT, + broad_mappings TEXT, + created_by TEXT, + contributors TEXT, + created_on DATETIME, + last_updated_on DATETIME, + modified_by TEXT, + status TEXT, + rank INTEGER, + categories TEXT, + keywords TEXT, + PRIMARY KEY (range, obligation_level, binds_value_of, pv_formula, extensions, annotations, description, alt_descriptions, title, deprecated, todos, notes, comments, examples, in_subset, from_schema, imported_from, source, in_language, see_also, deprecated_element_has_exact_replacement, deprecated_element_has_possible_replacement, aliases, structured_aliases, mappings, exact_mappings, close_mappings, related_mappings, narrow_mappings, broad_mappings, created_by, contributors, created_on, last_updated_on, modified_by, status, rank, categories, keywords), + FOREIGN KEY(range) REFERENCES enum_definition (name) +); + CREATE TABLE schema_definition ( id_prefixes_are_closed BOOLEAN, definition_uri TEXT, @@ -737,6 +791,7 @@ CREATE TABLE schema_definition ( generation_date DATETIME, slot_names_unique BOOLEAN, settings TEXT, + bindings TEXT, name TEXT NOT NULL, PRIMARY KEY (name), FOREIGN KEY(default_range) REFERENCES type_definition (name) @@ -775,8 +830,6 @@ CREATE TABLE slot_definition ( singular_name TEXT, domain TEXT, slot_uri TEXT, - multivalued BOOLEAN, - array TEXT, inherited BOOLEAN, readonly TEXT, ifabsent TEXT, @@ -816,8 +869,10 @@ CREATE TABLE slot_definition ( range TEXT, range_expression TEXT, enum_range TEXT, + bindings TEXT, required BOOLEAN, recommended BOOLEAN, + multivalued BOOLEAN, inlined BOOLEAN, inlined_as_list BOOLEAN, minimum_value TEXT, @@ -839,6 +894,7 @@ CREATE TABLE slot_definition ( exactly_one_of TEXT, any_of TEXT, all_of TEXT, + array TEXT, PRIMARY KEY (name), FOREIGN KEY(domain) REFERENCES class_definition (name), FOREIGN KEY(subproperty_of) REFERENCES slot_definition (name), @@ -1166,6 +1222,20 @@ CREATE TABLE enum_definition_concepts ( FOREIGN KEY(backref_id) REFERENCES enum_definition (name) ); +CREATE TABLE permissible_value_instantiates ( + backref_id TEXT, + instantiates TEXT, + PRIMARY KEY (backref_id, instantiates), + FOREIGN KEY(backref_id) REFERENCES permissible_value (text) +); + +CREATE TABLE permissible_value_implements ( + backref_id TEXT, + implements TEXT, + PRIMARY KEY (backref_id, implements), + FOREIGN KEY(backref_id) REFERENCES permissible_value (text) +); + CREATE TABLE permissible_value_todos ( backref_id TEXT, todos TEXT, @@ -1565,6 +1635,51 @@ CREATE TABLE prefix ( FOREIGN KEY(schema_definition_name) REFERENCES schema_definition (name) ); +CREATE TABLE type_mapping ( + framework TEXT NOT NULL, + type TEXT, + string_serialization TEXT, + extensions TEXT, + annotations TEXT, + description TEXT, + alt_descriptions TEXT, + title TEXT, + deprecated TEXT, + todos TEXT, + notes TEXT, + comments TEXT, + examples TEXT, + in_subset TEXT, + from_schema TEXT, + imported_from TEXT, + source TEXT, + in_language TEXT, + see_also TEXT, + deprecated_element_has_exact_replacement TEXT, + deprecated_element_has_possible_replacement TEXT, + aliases TEXT, + structured_aliases TEXT, + mappings TEXT, + exact_mappings TEXT, + close_mappings TEXT, + related_mappings TEXT, + narrow_mappings TEXT, + broad_mappings TEXT, + created_by TEXT, + contributors TEXT, + created_on DATETIME, + last_updated_on DATETIME, + modified_by TEXT, + status TEXT, + rank INTEGER, + categories TEXT, + keywords TEXT, + slot_definition_name TEXT, + PRIMARY KEY (framework, type, string_serialization, extensions, annotations, description, alt_descriptions, title, deprecated, todos, notes, comments, examples, in_subset, from_schema, imported_from, source, in_language, see_also, deprecated_element_has_exact_replacement, deprecated_element_has_possible_replacement, aliases, structured_aliases, mappings, exact_mappings, close_mappings, related_mappings, narrow_mappings, broad_mappings, created_by, contributors, created_on, last_updated_on, modified_by, status, rank, categories, keywords, slot_definition_name), + FOREIGN KEY(type) REFERENCES type_definition (name), + FOREIGN KEY(slot_definition_name) REFERENCES slot_definition (name) +); + CREATE TABLE schema_definition_id_prefixes ( backref_id TEXT, id_prefixes TEXT, diff --git a/linkml_model/types.py b/linkml_model/types.py index 522a9e97..f8513793 100644 --- a/linkml_model/types.py +++ b/linkml_model/types.py @@ -1,5 +1,5 @@ # Auto generated from types.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-02-07T17:29:42 +# Generation date: 2024-12-24T10:54:11 # Schema: types # # id: https://w3id.org/linkml/types diff --git a/linkml_model/units.py b/linkml_model/units.py index 30fbae46..b951bb98 100644 --- a/linkml_model/units.py +++ b/linkml_model/units.py @@ -1,5 +1,5 @@ # Auto generated from units.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-02-07T17:29:43 +# Generation date: 2024-12-24T10:54:11 # Schema: units # # id: https://w3id.org/linkml/units diff --git a/linkml_model/validation.py b/linkml_model/validation.py index b9fe24f8..8e929d46 100644 --- a/linkml_model/validation.py +++ b/linkml_model/validation.py @@ -1,5 +1,5 @@ # Auto generated from validation.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-02-07T17:29:45 +# Generation date: 2024-12-24T10:54:16 # Schema: reporting # # id: https://w3id.org/linkml/reporting diff --git a/tests/input/meta.yaml b/tests/input/meta.yaml index c0ed95be..0b1123ef 100644 --- a/tests/input/meta.yaml +++ b/tests/input/meta.yaml @@ -30,7 +30,17 @@ description: |- [https://w3id.org/linkml/is_a](https://w3id.org/linkml/is_a) license: https://creativecommons.org/publicdomain/zero/1.0/ +rights: Copyright © 2024 LinkML +creator: LinkML Community +contributor: LinkML Community +publisher: LinkML Community + version: 2.0.0 +issued: 2021-05-11 +modified: 2024-12-24 + +preferredNamespacePrefix: linkml +preferredNamespaceUri: https://w3id.org/linkml/ prefixes: linkml: https://w3id.org/linkml/