From 90c89adb228ddea6a3d4496238f322e374755aff Mon Sep 17 00:00:00 2001 From: Daniel Garijo Date: Tue, 29 Aug 2023 14:00:19 +0200 Subject: [PATCH] Fix for rules --- src/main/java/widoco/CreateResources.java | 13 ++- src/main/java/widoco/LODEParser.java | 114 +++++++++++++--------- src/main/resources/lode.zip | Bin 169561 -> 169572 bytes src/main/resources/lode/extraction.xsl | 18 ++-- 4 files changed, 87 insertions(+), 58 deletions(-) diff --git a/src/main/java/widoco/CreateResources.java b/src/main/java/widoco/CreateResources.java index 0e0b76d..04b106c 100644 --- a/src/main/java/widoco/CreateResources.java +++ b/src/main/java/widoco/CreateResources.java @@ -95,7 +95,7 @@ public static void generateDocumentation(String outFolder, Configuration c, File if (c.isIncludeOverview()) { overview = createOverviewSection(folderOut + File.separator + "sections", c, lode.getClassList(), lode.getPropertyList(), lode.getDataPropList(), lode.getAnnotationPropList(), - lode.getNamedIndividualList(), languageFile); + lode.getNamedIndividualList(), lode.getRuleList(), languageFile); } if (c.isIncludeDescription()) { description = createDescriptionSection(folderOut + File.separator + "sections", c, languageFile); @@ -253,7 +253,7 @@ private static String createIntroductionSection(String path, Configuration c,Pro // the lists passed onto this method are the fixed lists private static String createOverviewSection(String path, Configuration c, String classesList, String propList, - String dataPropList, String annotationProps, String namedIndividuals, Properties lang) { + String dataPropList, String annotationProps, String namedIndividuals, String rules, Properties lang) { String textToWrite = ""; if ((c.getOverviewPath() != null) && (!"".equals(c.getOverviewPath()))) { textToWrite = WidocoUtils.readExternalResource(c.getOverviewPath()); @@ -279,6 +279,11 @@ private static String createOverviewSection(String path, Configuration c, String textToWrite += ("

" + lang.getProperty(Constants.LANG_NAMED_INDIV) + "

"); textToWrite += (namedIndividuals); } + if (!"".equals(rules) && rules != null ) { + //only eng support for now + textToWrite += ("

Rules

"); + textToWrite += (rules); + } // add the webvowl diagram, if selected if (c.isCreateWebVowlVisualization()) { textToWrite += " "; @@ -337,6 +342,10 @@ private static String createCrossReferenceSection(String path, LODEParser lodePa if (includesNamedIndividual) { textToWrite += lodeParser.getNamedIndividuals(); } + //since rules are an edge case, if they exist we add them + if(lodeParser.getRuleList()!=null && !lodeParser.getRuleList().isEmpty()){ + textToWrite += lodeParser.getRules(); + } // Add legend (for ontology components actually used). textToWrite += Constants.getLegend(lang, includesClass, includesProperty, diff --git a/src/main/java/widoco/LODEParser.java b/src/main/java/widoco/LODEParser.java index 1133aba..f27d770 100644 --- a/src/main/java/widoco/LODEParser.java +++ b/src/main/java/widoco/LODEParser.java @@ -63,6 +63,8 @@ public class LODEParser { private String annotationPropList; private String namedIndividuals; private String namedIndividualList; + private String rules; + private String ruleList; Configuration c; /** @@ -123,6 +125,14 @@ public String getNamedIndividualList() { return namedIndividualList; } + public String getRules() { + return rules; + } + + public String getRuleList() { + return ruleList; + } + private void parse(String content, Properties langFile) { try { @@ -134,40 +144,54 @@ private void parse(String content, Properties langFile) { // String cList = "", pList= "", dPList= "", c= "", p= "", dp=""; for (int i = 0; i < html.getLength(); i++) { String attrID = html.item(i).getAttributes().item(0).getTextContent(); - if (attrID.equals("classes")) { - classList = getTermList(html.item(i)); - classes = nodeToString(html.item(i)); - classes = classes.replace("

" + langFile.getProperty(Constants.LANG_CLASSES) + "

", - "

" + langFile.getProperty(Constants.LANG_CLASSES) - + "

"); - } else if (attrID.equals("objectproperties")) { - propertyList = getTermList(html.item(i)); - properties = (nodeToString(html.item(i))); - properties = properties.replace("

" + langFile.getProperty(Constants.LANG_OBJ_PROP) + "

", - "

" + langFile.getProperty(Constants.LANG_OBJ_PROP) - + "

"); - } else if (attrID.equals("dataproperties")) { - dataPropList = (getTermList(html.item(i))); - dataProp = (nodeToString(html.item(i))); - dataProp = dataProp.replace("

" + langFile.getProperty(Constants.LANG_DATA_PROP) + "

", - "

" - + langFile.getProperty(Constants.LANG_DATA_PROP) + "

"); - } else if (attrID.equals("annotationproperties")) { - annotationPropList = (getTermList(html.item(i))); - annotationProp = (nodeToString(html.item(i))); - annotationProp = annotationProp.replace( - "

" + langFile.getProperty(Constants.LANG_ANN_PROP) + "

", - "

" - + langFile.getProperty(Constants.LANG_ANN_PROP) + "

"); - } else if (attrID.equals("namedindividuals")) { - namedIndividualList = (getTermList(html.item(i))); - namedIndividuals = (nodeToString(html.item(i))); - namedIndividuals = namedIndividuals.replace( - "

" + langFile.getProperty(Constants.LANG_NAMED_INDIV) + "

", - "

" - + langFile.getProperty(Constants.LANG_NAMED_INDIV) + "

"); + switch (attrID) { + case "classes": + classList = getTermList(html.item(i)); + classes = nodeToString(html.item(i)); + classes = classes.replace("

" + langFile.getProperty(Constants.LANG_CLASSES) + "

", + "

" + langFile.getProperty(Constants.LANG_CLASSES) + + "

"); + break; + case "objectproperties": + propertyList = getTermList(html.item(i)); + properties = (nodeToString(html.item(i))); + properties = properties.replace("

" + langFile.getProperty(Constants.LANG_OBJ_PROP) + "

", + "

" + langFile.getProperty(Constants.LANG_OBJ_PROP) + + "

"); + break; + case "dataproperties": + dataPropList = (getTermList(html.item(i))); + dataProp = (nodeToString(html.item(i))); + dataProp = dataProp.replace("

" + langFile.getProperty(Constants.LANG_DATA_PROP) + "

", + "

" + + langFile.getProperty(Constants.LANG_DATA_PROP) + "

"); + break; + case "annotationproperties": + annotationPropList = (getTermList(html.item(i))); + annotationProp = (nodeToString(html.item(i))); + annotationProp = annotationProp.replace( + "

" + langFile.getProperty(Constants.LANG_ANN_PROP) + "

", + "

" + + langFile.getProperty(Constants.LANG_ANN_PROP) + "

"); + break; + case "namedindividuals": + namedIndividualList = (getTermList(html.item(i))); + namedIndividuals = (nodeToString(html.item(i))); + namedIndividuals = namedIndividuals.replace( + "

" + langFile.getProperty(Constants.LANG_NAMED_INDIV) + "

", + "

" + + langFile.getProperty(Constants.LANG_NAMED_INDIV) + "

"); + break; + /*missing: rules!*/ + case "rules": + ruleList = (getTermList(html.item(i))); + rules = (nodeToString(html.item(i))); +// rules = rules.replace( +// "

" + langFile.getProperty(Constants.LANG_NAMED_INDIV) + "

", +// "

" +// + langFile.getProperty(Constants.LANG_NAMED_INDIV) + "

"); + break; } - /*missing: rules!*/ } // fix ids if (!"".equals(classList) && classList != null) { @@ -190,14 +214,17 @@ private void parse(String content, Properties langFile) { namedIndividualList = fixIds(namedIndividualList); namedIndividuals = fixIds(namedIndividuals); } + if (!"".equals(ruleList) && ruleList != null) { + ruleList = fixIds(ruleList); + rules = fixIds(rules); + //hack so "named individuals" appear as rules + rules = rules.replace("Named Individual ToC", + "Rules ToC"); + } logger.info("Parsing Complete!"); - } catch (ParserConfigurationException ex) { + } catch (ParserConfigurationException | DOMException ex) { logger.error("Exception interpreting the resource: " + ex.getMessage()); - } catch (DOMException ex) { - logger.error("Exception interpreting the resource: " + ex.getMessage()); - } catch (SAXException ex) { - logger.error(MarkerFactory.getMarker("FATAL"), ex.getMessage()); - } catch (IOException ex) { + } catch (SAXException | IOException ex) { logger.error(MarkerFactory.getMarker("FATAL"), ex.getMessage()); } } @@ -223,15 +250,8 @@ private String nodeToString(Node n) { DOMSource source = new DOMSource(fixAnchor(n)); trans.transform(source, result); return sw.toString(); - // String returnValue= sw.toString().replace("\n", ""); - // return(returnValue); - } catch (IllegalArgumentException ex) { - logger.error("Error while writing to xml " + ex.getMessage()); - // ex.printStackTrace(); - return null; - } catch (TransformerException ex) { + } catch (IllegalArgumentException | TransformerException ex) { logger.error("Error while writing to xml " + ex.getMessage()); - // ex.printStackTrace(); return null; } } diff --git a/src/main/resources/lode.zip b/src/main/resources/lode.zip index e0e4a8708833cd2ed1a4e48d19f8bb600a99bcf7..9d55f377b6feae3d5d9c22b52fb0c67bffc678c2 100644 GIT binary patch delta 13387 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 W5`;0hIS4Ho;tw=_B*cHgq5lWalq1am delta 13318 zcmYkDRZtvE^yP7P9h^XLcPF^JySux?1b3Ig-Q8V+TW|&q?ry;Y?6>vb-P(S+RegS4 zeXAe(;nY2cwMgr=NR0u**#4G8+7SO|wNybuph1v>Toa*ikS}O2EJ*l~&Ht;Z^~02q zXQ_+B%$PbsJN(p$C{}PBp@Sx@Yahp{m?Hp$yn*Wv%Yz*4RJIWc>>G*ghHq|A_#dYd zu@LdO-(9u^QmsbF0Hdk^9~=B}wtSY55!oT<2CIaVXPUiBaBAL2G%!-!!|UzsU&Y=j z21#B~N68XdA{rX{{Mapuuyf(wBqT+A#LX;_m!v4Pq~+saZy|?+Q&3oH-kwvC?+3r2 z|J~BUE4q!x%ZCfhm2wd>1Or6DCE0)gFaK-)6TjcX(+ffbtzXH~D$6!;!V~ak;_yvE zLgMU~Bz#byN06J37xfA}#OWap$)}HxTf%G*xd?A=zktNJ^nV=s!o|`;?B3+S{Q73< z^e6!klF=p^4aO_N8&6(oW&Q5=RKDpSKqR zG|F6LDZ?#llF+8aj}I4w%6Npa;Z*$LkB5>a>_tL2Au?1%IGV^EGO|FRPcu-4KYwxM zq=M4s1+7y~z@d2W^fWHc=j}R|^&|}n20()yi9%t?vj=G+I{t$g^3FK|=lmkoYm5fi z@NVkCwf1&l{KfxrvVONqY{3fGl;_whGE{)_v-<048l)cz?B^5CF*wMgd>-}22JY<} zg&l+!{5{6Z_wxpbY>l4IN?yZAUgO|IdP(0o9+up$>`-Swea2p!fr9v`XXbG>XvlBb zx?OKk!ta>=Q6f}s6uJ->zXT#QI<*16cT!;u^}I6>|5BE?fEN{X8J>iAX;lSOIkKt| znp}T}hts=Ocj`=qe7Zw{mla$)cSiLHM4TaX>L-Q}-+LxCpVa2ZxI7_7c$W#b@rNMe z3Jnrk+aOHZX&Wv}Ek64ifY;xIUMz)oRAA-&=zwSWQh2lP2_e>yFUZ%H2&o3jklFVP zJJ@K#tL$uFFT8d~dLGu}kLdAQ(*D_4dd8ygo;2x3phiTJ z#c40oC=f05vUWhjozX^eWbUaKur%W^vIx2o?WuV^VhB<3tp2U`TF!s7;QKfy+eKNa5E6HR@26ve=;jNA>%eWB37Gw8;LxcpZVB= z@@9dUW6nMJSD}Plsw#1XP9RS&UARV99$UcPOyt;fH__inRTN2qlEEVK`a;4kC+JO` zi82ojVY{h>WDQI;+XBZkVw;!3?F>p0>ZJ_UMrAP;BOKGJ!|MdxsqSVTvt=O7`yI@$2(~zY!($r)LiVQ7_&3uV#EI*F=XkfpwQ0$7Y{k zh}1e?6%)wrDAfu&E0{)`^a^d30Db^s{*1q1ArgR(m>syZmSu2q>6CsfbzL_6vo^|` zKcVtCos~pEYX9f-!WoD7;ESMQ^0i_gt&$&(8%u6^JmC3(yMLG``t}d}H)_Sf6A1hH zi^pG_nC}*$`coV%GPk%1{d?(Z#bme2F1e*cD0Yg;r;93zy?_co@Q%e!$&cbX<~KL= zLA@%tYIC5&F9K}RYb_*QPAa`x+|0S-$-oLtto~Tx4e>hi{!7B!-=d>0KagD#ToO!8 zRUxESqo#iD6`M9aX+OzRcZArX_`uOGOATqaQZvb>%1J~)uQ7Nvv1>4N)TTAZ&!4vZ z3^}bzhox2jMr;razVKE>57RgRX~vKI9cbLJ`)~j@IcJG&ROY16^20T`_A*WWP0UUT znRSpbLal<81y-^nd;Ly2oI-bYUC!ZUn{`xU81`@ZaR1r^!T)U(N5MI1OfOTwyVF}d zdFdY_Ih&aMWhGBn*=C5tPOjgN6PirMZONvErba5M7Quv7QV@o$bEhwuTs){IXB%u_ zoc04~iV|cuGxGOEDP-ZdEcL1fy0|wJv0(FP>&9OO znJj}y(>N}u0QuI4I;6e20r%{;TWa`US#uxnMiCyl?v=~NWvrnNBB;#YDqTD-s$7_& zz6s6|WDp5-myExuauu#8QiOWJho%3kwS=YzTE~AA?KUtUKeBd=z=p>(jvPb53IM50 z0L4@7X<}TPJ7mhgSBqG+!b6>GT{>R29QV23YRFSaLiySv9CYB35xzjg-3;Rs?XJ9q z5v@o6f}^;0;%BurfxmWy(Qm4hjl#_5L`;Ai&48KUH;7ba58evl`Id}(M6P}k@oys% zI3TC8FMBwHjU$a+HQivsUi|*q&?u8Stk_C6JMkGtilsEPPOKL%v?G75+VE`W{fit7 zg~}wh^8-DHpyWp;--7?;leJMJ{YbM>8^3O8@n)h3-L*hjL5m8>W!b!QnQ_nud{Ilw z0!?Puo@3*}6*l(9WVc7-&IgmDB$`wYFwi=Cw{n>FEG_7p+WeUpB2vpOoOd@_H;^G7 zZVd3ci-0xPvE;>^NnLRP-xozI_#YXBb z#W6U#hWNp9syb%TQ{5>Kfo3hyeMYNtWy8U_h}ZMKwxRh<*1j>1vV8y&hVx4H&RAIX z=2ljWFB@yynr)Mp5=#v|A7C2}pVLmfyotM?p#)cZM0XL#T>0}OM)_?gh;-y7j^Ys1 zFbM-PL)z@lCdR9ilH_vjJiX`vze{RjbsvnXA;o`1#A3wzlj@Ol!@{|_BpHck0riX!D6u-3M~!Fu zaf|wUYumX@@;+3Nd@`dDg_Wq@5YyDngTIghsb8~kt1_?gbb+&u*Z6Tw+E*NXMd{_7 zUrkr1gd~#{R4WILF9wBSTlzysJFy|-ivngu3O{50|F#yUj&ZUqP-E%2-95|4u3aE~ zU(ke^R^ZvlzH1QK7DPG$^2+sQ=S?CGr5H{Q7_dON-WtsR_RA{?H+JWxK^O|7|4Ml= z+JlfzxcTF|S8Jr~=3-2?_m4OxJev00m5x?I^f$*UBs{Z9)Z?CtKubzU(bMl@+w~6hN!0JpU0@5!hL7gd9F@X3vX}d;Kzca7ZBw3Xs7hS5qI@+i>UK_EWCWXf?tlc053J z*-^E?-3M0#?N^_pmN6*Q1G-9Ps!|iHnhA_9+T)s+6v|F{ppU~rfKGlP5>7JPRf0#} z_a5#fIAs}?4uxdjf$|>+xWILiM%n#Gzt50rk&m6n*#`*|`*mX{A>Jg1{kB|+aQ$}Db%Jc|QP zG$?Vf>iqBaIg+i9i0rtmR!LclyhXNnFOwT{ik0b zkX8AYgKy`035UA`pXx?|pf$FEg{KARg#QJ@lCYD8MtWhm&XYC*d`w_aTp$N_i9Gdi@harl}0KJSCZ4b)m z&2HJ+w>2&>m380lvXr)0aKP6x6}!S;3lZJ|x)zLvFcfY69$Gejao20)N`9%Dr-O5}_bkJ1>uGC#h_7pc1T`A>bsvtHtmmTh$vitCs9ePTz zL3W4!qghdTWi_Hn)?BQtnAeg3XVONb!M0;IJPmpk&{+YNp121yhn$H}bc_zI7*4T( z1vRa;?zh5ijwjNi*>NPkaEH*LwNqyt-pf>hI;a&0t1UJkg;VOAG(}nP{5gLM%uXYS z6+g#PV6gr?{84%ymU87r@5O4s0C?Ni!Ye|}UzttDtQ|O4riNwg`}t%eFK&xWQXt5r zJokB=$oa=g!}hQk6)pO%TbS4=i@p5=&g(H`f3Ov2Y!KudKCVwx5b3oyD-gf0Das7U8`-& zc58+iEVV55Fxl|c2~3muQa!bgc&(b!-O89f?c&vCnraMXq==_nn2XlfZ9voj;uMcNIXqdOcZRMa zb30@E+y|6=Uw}H3Wwk_eQ`)c#r`8eAQu%jvcKskz{cA;Tqj1~LL;6O~S7E_TtpW}f z@(S1&k16H!kmA-n8EsgmcDs2IsJS<2MPl7m<5hmj=^PD!S@Bv|Ix;2DK6F>oKsA;k zyOuWQQ6$#HwmM#esn)EEQXEIUs^9#sTfHpGg0k{1-D7yf%nd@i{sVdPyD!9iTmDZCJiRYDw{<#O#^YJV1a9A9AJnI5BV~6H>%hQejjJjg=C&srGFi6OKt65f zsq{;_ahyzJgCd}1E2=zDx-O@u+P{pi{Q?IkwN#JN)K)XirL2lI1b6>kt`fIdLsYY@ zkVRRS>hw`vyRLXTRU5VE+uLvNZO6iY*H_VvFz)bOJ)sWkH79|KV$zL~C|G{YX;)qQ zqnSa%d2TxvY_ZKXa^xU6#!v}2I=h7sjSI~Pz?kW&c|~t(tB@7YdBIdmFo;>O{jwXv zLE+`YB>v%yN@5COzYI@|G&3E&JTicYqMW{R8FoXZj`l-NMJpn?D4w&UR7bPP9!ruE zm)LsNU!g#dLc6p0*B$11(I|ohZ(##L5yVchexX3GBo^zv5~P;_48tJ+dT0VQ6{hFD zFn~9-jqb@P&@dyF+L6z)P%U`*qPDqPKHnMqr7{Fdr33?1Z|=C8Uh_6->4tHVTON`4 zu*8oyy*ln^+I#PfhGls~n~Hy~tA)%bZ)>A?r&b$gQEfIa-9m9kp+>V!m!6 zdlk=J%3stinXd$}P-ey%U1y2ezx1z!txS1d$V|2@&^^2KaAd|ayUJ4%x8&20O;5k3 zu3DUiF_Hj6%kawmHYQB(K&d*cJusK}xdco1e)^1XpgV;37`th)R5IXV+M=vlWblHf z2p>{iNl)h09<39lII?ulbyvvy;1G0u_^`@_scON_sT`IhwhRH={&+{PS|?#K8GnsL z#E5v}<$t88(XL@J4bKEsY#`2l;?(vS>g^SW4DAafvM$+^EJXOzB$H@!zd+AjKrXl| z)!5HX_oPv7%W&dr%cmx&LHTm$ds=ftr96-uY*9nPk^XY+L^~S^w za}t4`8I4wmNeQ9$4Dcf9~UvCGHt4LoOS(s z!)|U%(LY|CTy2$ysNkU81hnM?ozc;MSn#M zdPs>=SKLtF!Sa#(L_J_pofU{|R_MYyOGtH9;)$E&*3#0+)6f(e(rd1b!-cjdbl$8g zPG$V9QE!>Zm}j|d^ZhXl-*i#rJqxcXk_;ZKF`7gLGnN*Qw}Nj0{~0=WeOQioUd z6TW>0<9`wQ+1gPhY=Ydt;5VM=(Hs`O=#?Wh_1b275>KPld8Xd(cM=D+(rJEoR2y4Z zD*HQ>xv|~a=oU)jDz=vqPmYiKgc;)xhBdV=C=jdeF_z)>`hIXK6tLnAJqSdKpu5j( zQy&~M=RGLx6q|dPC>9Sv!Y|_b{9?XXn!W8>_2VBQoHm?l+C{5Qg?fOPRx8d?hZ3^ zGI0}nK{iUx#PVABovI+#*sS41Zn_oD5a<;v*V2a<-(XJ53%1Y^>pVCzl>{X$+-@`R1Nu~w+jdVp7AKyL~ z(-iJr25}Et3^eh7y272`HIj|Z6x|3yex4*_Cm}ds@24I%W(@x5tNfxQ`2ECG9*x~a zs)OtX>rN=u0t~;=G3+xqYt%(#%XPn{9WLd4v*Y2{yxgBqZXx^>&wnL9JA5BizOb^2 z_6Rspz%s7KpBKF2IB_yAChPw1#QVUgT!@HMY6&BHKDbq?|7BP9_QUDMZA4gMScb=<8DeET^x|-vOKeH z`4vuezzVnhm+6KFrCs5WoE8L9P&KO`%79SVjSZlwS;Y;58V*)VSl9-?pHaI)jfnaz zeLzn*JBT^scJ924a#NT;i)_utL;GC6!JzX@&nTRPL0RIFGPNz40o~*-zXU8Ed#_QO zRWdk9|3$ z0lwftg!bxbR7&X0Pac}zN0s%nI30yQEJf|v*^-x9dVGlS(j~GKQcHbp`cW!34%oQ> zDphJ6RDvLr+4FGcHPx7`?4#eK_B|oC@mIi%X(m=>E4bYBftgL?+nEdCoeb8rogxbs z31M*hcz45~7PiG5yF(WHOz4;-w0yRM6IZpwOs?zY+kSO&9pz()*&-#7+p0)|q^mMx zld4R${7^jOh0ObH6y&T!D)0r?&2|BX#5&7DhC;ugDV;I+-6Y)jWs;$TAfPOV7crdi zMMa#9pX1?vA5LZ+6r=@@>b5<3B@&4AW**R5jxLgq)j*OZ=-XhVhm9{zA==Ak_SY8pft+2Uz3l2vg;rD4-r?DvC!aJa`oI>A?e!O%af= zlgl@}IUmH(_E1Xjs;Y2s9w$^UzZ(fYnp`ZKqRRYC;XFH>)Fydl>w^bh#NJc#3HreK zpqD+rB0?^Ql6TzOUd=1kD^a}u0cXrr(*9^*ef^u(In)bMaIP8I7-t_du-vL>fooHW zK<4|Bxg5eanX9T-w>hYg9Hs>7@)`YdY|~ogyr`MZo&o&Bh0|`L*Hzh$ASh9Y!TQII z?I=jr;ybW(d%at&PPvW_?oM5SFvC-)O-s#Dl|p<*i!dD0&SB_H;Y0`AJ5q4{d(!~B;x>=x?YYV4Y^|=?`a+Ps*LOhQ0 zW^c9|(Rn=8C=&{=TO|i}RGmeRUD5|q7I(iim1`LI(#V%ZU25na9lYVCZ|1rI)EdKs znaDIVkpjSLn3X!^Tl|-J18an%^uw07XWQ`!G12PR;Pr4UY>)9o>5gA;mjr@-74p7vSmWw8mN3lFHJ4GEOl`*9$g7d!J&s zfIrWJcR;FHS6PN>L=+rru=ZiZ60o>ncWsVlN#b@-X~v+RZ*--ijqFeNUePpdo{utGyMG2 zhtaEm@z(gODgnSM{vK*)J#UbSb3aHCB^}XuzJP@a*B9~9C}7i2-cwf8vg6$1wOqQ@ zFzW&B=*)1XT^;4?Jw4ufpJtnn0CFtu<$p;$LP_ zhV&Vo9>4O1RWI@C0{N(hrAP%fo_bb{sKqzLImM&FGFhnsomGn+YhwvB< zi4tG>`v{P0Fjya#!mm9JcSv9*sve+H+S6<`J83d+#9iInXrIYI;#GBY6%r05N-z7} zg(~=n@+ZtTsa?}ny@7q_BEg=FQR-siYRSFe@f;yz>j!|7cTPP}@Ix__Vf*}?A?$e4 zd5l-+LoKLXciyl4H+#F_NUFV{`=YY+W#B~Ty9Y3%&}5rmutI@Qg9}+(kbs3cP?m$- zw$B2P!2vxTj)eMrQ5TBzZ}ce$Scp0M*G}L$#n*4p(AR$;3^>zyXl?OV$19L2hvw}3 zX5n15-$E)e=mo`rwCrL1@Q9>9ar&@P;H~A=^2>+ zn-^FnQE#cAG32ztI@wI_`DUn7wl4@87`S!db6}FTas+iPX0N;X)qu^U(>vIG$j?63 zQ0hMHAy|7KWL{~m(HxpC@A0b>nhEv(fu?G-QU8QLI%RjF_@g!p%eue>JW`+6aQ{;T z*#CNM#WTISWGFe-8Y(F|C>M#(fh-*e*9YQDQAgAaE*f3bAr=!jEKa%E%Ym8{Mq9gB ztdtiI{nlUGyINo9nntcE4rpYOkIl%5q&cGv41H_ZsAG8%tv}3e7M5KLM9)ypP+z;L zN_lQC){)Lo`7$3bYw2!}y;rcD^AEllCMa7naiL0FdsjRF>G2Y(_SAQxQvJ4lTEI?q zEqWu~+>iv2-~w)1@6VQu*Ob$z>>pBTx{tN@3{iIL>J5Em`o{aROIW3OTx>LD$fN%BR!fif`D;;)nLYHumG z$CQBUj^5xV$X4{f5_4$?F+Sh*Jji7jHqHu^tIe@0WiJz>b8bD-8;KWllG-R0aWogK zrn5idNE++Xg4#(dwH05k$u*A@rTD|P+kiZqd)h~|9W%~oXEXupTSoC^41DrCI!neI z!ih2y?6Q3!h2I9cRt&7Cpwux!m>HUDnM>=>>O4l!zdnRdRZyC4o3r@Lkt9k1d=w+r z9liqY9wblpcWw)&r+;_>`*DN~+j%y3g5DkNkv}_7zaV@?vtgfOk(659BxonvojyK7 zAlbJ<-zgl24KYg-g_5vEfKY!R-jS&iX;X+pJJ0NMqNyPs+@_h}PRuUuha-+j)@vu9 zsDi7Q^2L8?8Ib&zsp>o)Pi8a>;8L;l3}>~s%4JB!Py0wF9kw*CCT4ix8rgqmX+Ga- zb5Po+>TfM4X!U0`krFLB;xCVV@*?=*=}k;0|G@P|D5izlr(9j64P-RjFFzG)wW$*A z(MV&~OoEr6UpTdqRtIhC(1~bv8{F+HXL)bTB+=973$H^U*p=}Ad`hgvU0gCPl~h(H z2oD~e2~-dF(Cs6nZ_g5PQ2oX$$Ti6Mn?tylb&7YQpMoWBhd;T8Z1%X33x4whyO!oG z(TEjuz>DTEo4@>v0yw8W^0y@KC5xDp%fNBaUUIZk!?8S&R>?@Z}P? zzInp-N=h~VNbf@ZZC-bj9esQ4`w&`VPFKKpD+%SAMV8FS4DK$M5JV3&N-rDlY-TJ_ zz;y9IeOn)LmGsjf7RM4?Nk+#|XO+9^+96mB&4579N;d1 zpPvLDjdD?PFlI3*hDMlk_5H9wq6{P^2!cT_iyUd_;Bsiow@Fh;a4)b|ym-+KOEuTdX7+;|vr`@~)AQH9@z{CRx;<{Q@eYg9>N8VmAcV_N&bYucsSzJ&fU zyzdWrgS$^p?Z9`>A93|?n=Hmo=tiGezsI%3cjoFxt}F1qn*C)PdiCl|Id6Q!WHmzS z+qaNiVpHA)tD*WCV{6E1T#}QF^6_;2RdAyXz-=ZhdoO5RPYabIX%Il-S;+vRR{`l3 zpl>$gG_o{P)r((a8yESnekhZx>1ja)oL%!fLuu>v0QG{k(Oq`QgtN!d zjn?B|s4xuC>4;k-VP%R+L6UA+9F*V4L}a$sVC^yBw9g=e-b53Qv+eg+g{J1PW$YG8 zTCl9b-!&L-7a%zXY{lNI@pyOUwbr$cfKOUKs-}tbe1~%qDK1~y-e`>te8Sc>jfHhi z6s964{^6eCnvrTgvEUODiFf%KNHk{RMNpF!U)x4eY!nM2Bww|+RL7!N>6ox;AuQHDuIwcaPT|lvyuf;(brb}%<<`Lz`A|a zh^Ys&DmL$@tb1GnH(M$UAFEYXvW9k->@5)1zhG2uO`0LBv1!2^D(mKQvpWrRt}K}G zOf79$wepBY&oS@Yp2GZ`v+?WE6{(r_T5w zj`5Za{+P#uHodiB++jzpk8m!k2a4pg_n1%*{6c<3?55=M#k?KXCw`<>iW7MAh;-8Y zHV&2>Snm~KPII5GnJYz4VF@f>N(voDhJkn4vtCuH56q;|Jny)Us?~L^6J!AoN zLYHgDrw9{li2ieA;%i4`T{xsxu62A6DH))QW+v$AXBh%g=En618Ipcf*J;c?@CT^H zu74@Sk!tsyxW*Zc`aa1?124KJTLd|s$1c|k3Rz6wG=6D6vsr2daj(ph-#WyQF8uf1 zdZT_8nN9t`#;!2jSux*jB`}XKZ8)N?XJ@M;IIv1BYY)?92sPX)j7AA~IuV8gDzQ!5 zH#%^;e>t45n4Z%&z%C{%qKdc=j!iwQxY>m_U*V>cv3Za8;D(!~0FhOhY4Lrvc1Z0Y ztG`Q!Q_(ceflxrbeFhCWzDFDaJsL5{`lvB-DUR$mpV6>^x+oP(L!XkW$*FKlEVdW_ z-YKU38+_!{D0j&s>lDjH1M(R|c-!2i zItryHMG%$peWfJ@3HhQfe6qnm70FVJLcn{#X!1^z z7NFW!vftDO5X;(3knOiGQ+`MzeEb&`j&{c}D5+sF{tkEtz(d4NxPr1VOMYv?1P%Oi zVpywJ(lS_*bxB_8xltUO*k`b;OiKa-18W0^)~uXbztjC-E2fHO%k-$ynNlo@h6WwO z6zhsWCce=$dk>H3>A7*;;dy8yv9gw|pO~?1oeR1V3siR9*-MtI(|^V=&KU>wv|?iu=MXykI)zOJ-gY%jzy6!0sboxqv|5zC2o}ctw zUFat61N-PM8lLNGvMCW(4hJxxU!r+7M3K)?3V!QpuQ9reN1PH6kerXMgsA24*T9!? zcN2*5&kYqx(Tp=FOc|&46=qUWK9kazj7`W8r-v&42B_P7#J-JE_nJ1M{$2dfnfWQ&kfqoo^lDN-8W0=^b?sjk245U-7Mu<1{A|F7UYJ>r`s_BsTpP zxppmvKiU)^ixLQ@-8P;1IyUMa_B6PCFAXcHE^!2@k?M#XE* za6o;;yk^pQE^Htn-ilYA$IC~0tC>gdfOjQMMygtdW0knnhV+u-_;>ut3Yc@b0RqS> zr*!3vD(N!DZ59h1K!P~ORmXHsoItQ|YElN}b5ZNg&tL&9LokYL1VMOP!dn}kL?1J25|f)2Zi9bP!~SQa1+^7aX+ znk;hUS3}5u-ju}fi3zO(O3hurRPbmhnJD(CKTWxLC&5M3h$6?V z?5NINXYud*@U}jwaGt+CJp3Er6XfCNrp0ffS-Rh7XO!^Ir5GU6<9h2rwBoL)id z$wDSyRCA?jfWB4&n9+tJT!?S-EC9CLvbuy5xASaKl{~Dlrqi1LvL5{$!OfYt*WLdf zJGI$+cZFvAPhLS^-tDVG+5-})R9pLmzBwPP%QM!(4-7b0Fjx`xl0C0DdHEn$pvQMS zKC&`Y65F(H&v89|btO`F@&|6GOH*A@X*p&En8-UbTG)21qaUEn=at1j z!@BSIb0by6tu7KCJ`(=42UtWFS>jD&!zuWK;4_d{tU+1&^tRxnLzLkj7|)|qTb-s)1}vx45;8Zdby0*{?qB%*-{3%hQdPH&`C*0;|H?QEOTr?X z_Wqh1*Wk1SkMX&F+A7s~EJo;1al61sqY9;4fXDrFN$SnQ>DJvI0sjxllgJVtaPpt< z#KC~?-bJh$AYVf z*SfDWbNUg=Ueh9Va9w%uQf_oLO$E<^6g8^kjc7GZ4Q7g2 zMFS%XMS<*NR~wFsweiTLkir+&Sfk7bP(>adA14b+(W->tR^P@rT5DBAzw zgwy`x=s~(^P)3l2pw6`a09`96P_Whi1*Fpd10X@B=}?-Gm!OXH|JpYM5obV&!J)@N I{g?UqUs?Cw{r~^~ diff --git a/src/main/resources/lode/extraction.xsl b/src/main/resources/lode/extraction.xsl index ac6817e..ed31879 100644 --- a/src/main/resources/lode/extraction.xsl +++ b/src/main/resources/lode/extraction.xsl @@ -38,7 +38,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. xmlns:obo="http://purl.obolibrary.org/obo/" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:sw="http://www.w3.org/2003/06/sw-vocab-status/ns#" - xmlns:extra="https://w3id.org/extra#" + xmlns:widoco="https://w3id.org/widoco/vocab#" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oxygenxml.com/ns/doc/xsl http://www.oxygenxml.com/ns/doc/xsl "> @@ -1823,7 +1823,7 @@ http://www.oxygenxml.com/ns/doc/xsl "> - + @@ -1834,7 +1834,7 @@ http://www.oxygenxml.com/ns/doc/xsl ">