As the heavyweight title says I've found a real web service. In my last post called Finally a webservice: DREFT and SKOS for Thesaurus I found the DREFT interface but the prototype service was not available anymore. I searched the web and found version running at NBII (The National Biological Information Infrastructure). It's a long and complex title, so what is it About (my highlighting):
The National Biological Information Infrastructure (NBII) is a broad, collaborative program to provide increased access to data and information on the nation's biological resources. The NBII links diverse, high-quality biological databases, information products, and analytical tools maintained by NBII partners and other contributors in government agencies, academic institutions, non-government organizations, and private industry. NBII partners and collaborators also work on new standards, tools, and technologies that make it easier to find, integrate, and apply biological resources information. Resource managers, scientists, educators, and the general public use the NBII to answer a wide range of questions related to the management, use, or conservation of this nation's biological resources.
Excellent and keep up the good work. These fine folks have the Biocomplexity Thesaurus Project and the gem for me is a Web Service for the Biocomplexity Thesaurus - hooray.
I haven't compared the two wsdl's (SWSD wsdl and NBII wsdl) in detail but the look very similar. I was eager to give it a shot so i prepared Axis2 and ran WSDL2Code (earlier called WSDL2Java), but it only resulted in the following error message: Encoded use is not supported
, ups darn compliance. If I remember correct Encoded is banned by WS-I, so it hasn't been a priority for the Axis2 team. Back to Axis1 and the latest release, since I haven't used Axis1 for some time but I have used it for encoded services, and also the DREFT service that can be downloaded (haven't worked with it yet) was based on Axis1. I run through axis-wsdl2java without a problem, and was ready to write my first client. Well ready it not the best word for it since I have very little knowledge about neither DREFT/SKOS/RDF or the Biocomplexity Thesaurus, just with writing webservice clients. I looked for what sound the simplest and found getConceptResultsByKeyword that takes two parameters: keyword/search term as a string and the uri of the thesaurus service - uhmm what uri and why, I thought this service implementation was for a specific thesaurus? weell it turns out to be ignored, so it can be any value or null/nil. These to overloaded operations (naughty naughty) are sort of convenience methods added here, that's not part of the original DREFT service.
Search for malformations
On the search tips page the example is malformations. Here what the HTTP headers for the request looks like :
1 POST /ws/services/SKOSThesaurusService HTTP/1.0 2 Content-Type: text/xml; charset=utf-8 3 Accept: application/soap+xml, application/dime, multipart/related, text/* 4 User-Agent: Axis/1.4 5 Host: nbii-thesaurus.ornl.gov:9999 6 Cache-Control: no-cache 7 Pragma: no-cache 8 SOAPAction: "" 9 Content-Length: 840
Notice that I'm capturing this with TCPMon on port 9999. Any heres the request SOAP message (malformations-request.xml):
1 <?xml version="1.0" encoding="UTF-8"?> 2 <soapenv:Envelope 3 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 4 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 6 <soapenv:Body> 7 <ns1:getConceptResultsByKeyword 8 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 9 xmlns:ns1="http://skos.Europe.sw.y2001.w3.org"> 10 <in0 xsi:type="xsd:string">malformations</in0> 11 <in1 href="#id0" /> 12 </ns1:getConceptResultsByKeyword> 13 <multiRef 14 id="id0" 15 soapenc:root="0" 16 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 17 xsi:type="ns2:URI" 18 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 19 xmlns:ns2="http://www.w3.org/2001/sw/Europe/skos/namespace"> 20 <uri xsi:type="xsd:string">http://localhost:9999/ws/services/SKOSThesaurusService</uri> 21 </multiRef> 22 </soapenv:Body> 23 </soapenv:Envelope>
This is readable (RPC style), and the response HTTP headers:
1 HTTP/1.1 200 OK 2 Connection: close 3 Date: Fri, 20 Apr 2007 20:29:41 GMT 4 Server: Microsoft-IIS/6.0 5 X-Powered-By: ASP.NET 6 Content-Type: text/xml;charset=utf-8
So this could look like a .NET implementation, but it is an Axis1 service (the service page (GET) has the classic "Hi there, this is an AXIS service! Perhaps there will be a form for invoking the service here...". The response SOAP message is, well terrible as in unreadable for humans due to all the references. It's also very long (approximately 1000 lines) so I'll cut it short (malformations-response.xml):
1 <?xml version="1.0" encoding="UTF-8"?> 2 <soapenv:Envelope 3 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 4 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 6 <soapenv:Body> 7 <ns1:getConceptResultsByKeywordResponse 8 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 9 xmlns:ns1="http://skos.Europe.sw.y2001.w3.org"> 10 <ns1:getConceptResultsByKeywordReturn 11 xsi:type="soapenc:Array" 12 soapenc:arrayType="ns2:ConceptResult[2]" 13 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 14 xmlns:ns2="http://www.w3.org/2001/sw/Europe/skos/namespace"> 15 <item href="#id0" /> 16 <item href="#id1" /> 17 </ns1:getConceptResultsByKeywordReturn> 18 </ns1:getConceptResultsByKeywordResponse> 19 <multiRef 20 id="id0" 21 soapenc:root="0" 22 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 23 xsi:type="ns3:ConceptResult" 24 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 25 xmlns:ns3="http://www.w3.org/2001/sw/Europe/skos/namespace"> 26 <conceptRelatives 27 xsi:type="soapenc:Array" 28 soapenc:arrayType="ns3:ConceptRelatives[5]"> 29 <item href="#id2" /> 30 <item xsi:nil="true" /> 31 <item href="#id3" /> 32 <item href="#id4" /> 33 <item xsi:nil="true" /> 34 </conceptRelatives> 35 <concept href="#id5" /> 36 </multiRef> 37 <multiRef 38 id="id1" 39 soapenc:root="0" 40 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 41 xsi:type="ns4:ConceptResult" 42 xmlns:ns4="http://www.w3.org/2001/sw/Europe/skos/namespace" 43 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 44 <conceptRelatives 45 xsi:type="soapenc:Array" 46 soapenc:arrayType="ns4:ConceptRelatives[5]"> 47 <item xsi:nil="true" /> 48 <item href="#id6" /> 49 <item href="#id7" /> 50 <item href="#id8" /> 51 <item href="#id9" /> 52 </conceptRelatives> 53 <concept href="#id10" /> 54 </multiRef> 55 <multiRef 56 id="id5" 57 soapenc:root="0" 58 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 59 xsi:type="ns5:Concept" 60 xmlns:ns5="http://www.w3.org/2001/sw/Europe/skos/namespace" 61 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 62 <uri href="#id11" /> 63 <externalID 64 xsi:type="xsd:string" 65 xsi:nil="true" /> 66 <preferredLabel xsi:type="xsd:string">Limb malformations</preferredLabel> 67 <inScheme 68 xsi:type="ns5:URI" 69 xsi:nil="true" /> 70 <scopeNote 71 xsi:type="xsd:string" 72 xsi:nil="true" /> 73 <definition 74 xsi:type="xsd:string" 75 xsi:nil="true" /> 76 <example 77 xsi:type="xsd:string" 78 xsi:nil="true" /> 79 </multiRef> 80 <multiRef 81 id="id2" 82 soapenc:root="0" 83 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 84 xsi:type="ns6:ConceptRelatives" 85 xmlns:ns6="http://www.w3.org/2001/sw/Europe/skos/namespace" 86 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 87 <distance xsi:type="xsd:int">1</distance> 88 <concepts href="#id12" /> 89 <relation href="#id13" /> 90 </multiRef> 91 <multiRef 92 id="id9" 93 soapenc:root="0" 94 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 95 xsi:type="ns7:ConceptRelatives" 96 xmlns:ns7="http://www.w3.org/2001/sw/Europe/skos/namespace" 97 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 98 <distance xsi:type="xsd:int">1</distance> 99 <concepts href="#id14" /> 100 <concepts href="#id15" /> 101 <concepts href="#id16" /> 102 <relation href="#id17" /> 103 </multiRef> 104 <multiRef 105 id="id7" 106 soapenc:root="0" 107 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 108 xsi:type="ns8:ConceptRelatives" 109 xmlns:ns8="http://www.w3.org/2001/sw/Europe/skos/namespace" 110 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 111 <distance xsi:type="xsd:int">1</distance> 112 <concepts href="#id18" /> 113 <concepts href="#id19" /> 114 <concepts href="#id20" /> 115 <relation href="#id17" /> 116 </multiRef> 117 <multiRef 118 id="id3" 119 soapenc:root="0" 120 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 121 xsi:type="ns9:ConceptRelatives" 122 xmlns:ns9="http://www.w3.org/2001/sw/Europe/skos/namespace" 123 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 124 <distance xsi:type="xsd:int">1</distance> 125 <concepts href="#id21" /> 126 <relation href="#id13" /> 127 </multiRef> 128 <multiRef 129 id="id4" 130 soapenc:root="0" 131 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 132 xsi:type="ns10:ConceptRelatives" 133 xmlns:ns10="http://www.w3.org/2001/sw/Europe/skos/namespace" 134 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 135 <distance xsi:type="xsd:int">1</distance> 136 <concepts href="#id22" /> 137 <relation href="#id13" /> 138 </multiRef> 139 <multiRef 140 id="id6" 141 soapenc:root="0" 142 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 143 xsi:type="ns11:ConceptRelatives" 144 xmlns:ns11="http://www.w3.org/2001/sw/Europe/skos/namespace" 145 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 146 <distance xsi:type="xsd:int">1</distance> 147 <concepts href="#id23" /> 148 <concepts href="#id24" /> 149 <concepts href="#id25" /> 150 <concepts href="#id26" /> 151 <concepts href="#id27" /> 152 <concepts href="#id28" /> 153 <concepts href="#id29" /> 154 <concepts href="#id30" /> 155 <concepts href="#id31" /> 156 <concepts href="#id32" /> 157 <concepts href="#id33" /> 158 <relation href="#id17" /> 159 </multiRef> 160 <multiRef 161 id="id10" 162 soapenc:root="0" 163 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 164 xsi:type="ns12:Concept" 165 xmlns:ns12="http://www.w3.org/2001/sw/Europe/skos/namespace" 166 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 167 <uri href="#id34" /> 168 <externalID 169 xsi:type="xsd:string" 170 xsi:nil="true" /> 171 <preferredLabel xsi:type="xsd:string">Malformations</preferredLabel> 172 <inScheme 173 xsi:type="ns12:URI" 174 xsi:nil="true" /> 175 <scopeNote xsi:type="xsd:string">Restricted to living organisms.</scopeNote> 176 <definition 177 xsi:type="xsd:string" 178 xsi:nil="true" /> 179 <example 180 xsi:type="xsd:string" 181 xsi:nil="true" /> 182 </multiRef> 183 <multiRef 184 id="id8" 185 soapenc:root="0" 186 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 187 xsi:type="ns13:ConceptRelatives" 188 xmlns:ns13="http://www.w3.org/2001/sw/Europe/skos/namespace" 189 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 190 <distance xsi:type="xsd:int">1</distance> 191 <concepts href="#id35" /> 192 <concepts href="#id36" /> 193 <relation href="#id17" /> 194 </multiRef> 195 <multiRef 196 id="id30" 197 soapenc:root="0" 198 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 199 xsi:type="ns14:Concept" 200 xmlns:ns14="http://www.w3.org/2001/sw/Europe/skos/namespace" 201 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 202 <uri href="#id37" /> 203 <externalID 204 xsi:type="xsd:string" 205 xsi:nil="true" /> 206 <preferredLabel xsi:type="xsd:string">Translocation (genetics)</preferredLabel> 207 <inScheme 208 xsi:type="ns14:URI" 209 xsi:nil="true" /> 210 <scopeNote 211 xsi:type="xsd:string" 212 xsi:nil="true" /> 213 <definition 214 xsi:type="xsd:string" 215 xsi:nil="true" /> 216 <example 217 xsi:type="xsd:string" 218 xsi:nil="true" /> 219 </multiRef> 220 <multiRef 221 id="id31" 222 soapenc:root="0" 223 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 224 xsi:type="ns15:Concept" 225 xmlns:ns15="http://www.w3.org/2001/sw/Europe/skos/namespace" 226 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 227 <uri href="#id38" /> 228 <externalID 229 xsi:type="xsd:string" 230 xsi:nil="true" /> 231 <preferredLabel xsi:type="xsd:string">Neural tube defects</preferredLabel> 232 <inScheme 233 xsi:type="ns15:URI" 234 xsi:nil="true" /> 235 <scopeNote 236 xsi:type="xsd:string" 237 xsi:nil="true" /> 238 <definition 239 xsi:type="xsd:string" 240 xsi:nil="true" /> 241 <example 242 xsi:type="xsd:string" 243 xsi:nil="true" /> 244 </multiRef> 245 <multiRef 246 id="id32" 247 soapenc:root="0" 248 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 249 xsi:type="ns16:Concept" 250 xmlns:ns16="http://www.w3.org/2001/sw/Europe/skos/namespace" 251 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 252 <uri href="#id39" /> 253 <externalID 254 xsi:type="xsd:string" 255 xsi:nil="true" /> 256 <preferredLabel xsi:type="xsd:string">Genetic abnormalities</preferredLabel> 257 <inScheme 258 xsi:type="ns16:URI" 259 xsi:nil="true" /> 260 <scopeNote 261 xsi:type="xsd:string" 262 xsi:nil="true" /> 263 <definition 264 xsi:type="xsd:string" 265 xsi:nil="true" /> 266 <example 267 xsi:type="xsd:string" 268 xsi:nil="true" /> 269 </multiRef> 270 <multiRef 271 id="id21" 272 soapenc:root="0" 273 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 274 xsi:type="ns17:Concept" 275 xmlns:ns17="http://www.w3.org/2001/sw/Europe/skos/namespace" 276 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 277 <uri href="#id40" /> 278 <externalID 279 xsi:type="xsd:string" 280 xsi:nil="true" /> 281 <preferredLabel xsi:type="xsd:string">Limb (animal)</preferredLabel> 282 <inScheme 283 xsi:type="ns17:URI" 284 xsi:nil="true" /> 285 <scopeNote 286 xsi:type="xsd:string" 287 xsi:nil="true" /> 288 <definition 289 xsi:type="xsd:string" 290 xsi:nil="true" /> 291 <example 292 xsi:type="xsd:string" 293 xsi:nil="true" /> 294 </multiRef> 295 <multiRef 296 id="id14" 297 soapenc:root="0" 298 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 299 xsi:type="ns18:Concept" 300 xmlns:ns18="http://www.w3.org/2001/sw/Europe/skos/namespace" 301 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 302 <uri href="#id41" /> 303 <externalID 304 xsi:type="xsd:string" 305 xsi:nil="true" /> 306 <preferredLabel xsi:type="xsd:string">Abnormalities</preferredLabel> 307 <nonPreferredLabels xsi:type="xsd:string">Malformations</nonPreferredLabels> 308 <inScheme 309 xsi:type="ns18:URI" 310 xsi:nil="true" /> 311 <scopeNote 312 xsi:type="xsd:string" 313 xsi:nil="true" /> 314 <definition 315 xsi:type="xsd:string" 316 xsi:nil="true" /> 317 <example 318 xsi:type="xsd:string" 319 xsi:nil="true" /> 320 </multiRef> 321 <multiRef 322 id="id28" 323 soapenc:root="0" 324 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 325 xsi:type="ns19:Concept" 326 xmlns:ns19="http://www.w3.org/2001/sw/Europe/skos/namespace" 327 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 328 <uri href="#id42" /> 329 <externalID 330 xsi:type="xsd:string" 331 xsi:nil="true" /> 332 <preferredLabel xsi:type="xsd:string">Nondisjunction</preferredLabel> 333 <inScheme 334 xsi:type="ns19:URI" 335 xsi:nil="true" /> 336 <scopeNote 337 xsi:type="xsd:string" 338 xsi:nil="true" /> 339 <definition 340 xsi:type="xsd:string" 341 xsi:nil="true" /> 342 <example 343 xsi:type="xsd:string" 344 xsi:nil="true" /> 345 </multiRef> 346 <multiRef 347 id="id36" 348 soapenc:root="0" 349 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 350 xsi:type="ns20:Concept" 351 xmlns:ns20="http://www.w3.org/2001/sw/Europe/skos/namespace" 352 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 353 <uri href="#id43" /> 354 <externalID 355 xsi:type="xsd:string" 356 xsi:nil="true" /> 357 <preferredLabel xsi:type="xsd:string">LSC</preferredLabel> 358 <inScheme 359 xsi:type="ns20:URI" 360 xsi:nil="true" /> 361 <scopeNote 362 xsi:type="xsd:string" 363 xsi:nil="true" /> 364 <definition 365 xsi:type="xsd:string" 366 xsi:nil="true" /> 367 <example 368 xsi:type="xsd:string" 369 xsi:nil="true" /> 370 </multiRef> 371 <multiRef 372 id="id18" 373 soapenc:root="0" 374 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 375 xsi:type="ns21:Concept" 376 xmlns:ns21="http://www.w3.org/2001/sw/Europe/skos/namespace" 377 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 378 <uri href="#id44" /> 379 <externalID 380 xsi:type="xsd:string" 381 xsi:nil="true" /> 382 <preferredLabel xsi:type="xsd:string">Teratogenesis</preferredLabel> 383 <inScheme 384 xsi:type="ns21:URI" 385 xsi:nil="true" /> 386 <scopeNote 387 xsi:type="xsd:string" 388 xsi:nil="true" /> 389 <definition 390 xsi:type="xsd:string" 391 xsi:nil="true" /> 392 <example 393 xsi:type="xsd:string" 394 xsi:nil="true" /> 395 </multiRef> 396 <multiRef 397 id="id34" 398 soapenc:root="0" 399 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 400 xsi:type="ns22:URI" 401 xmlns:ns22="http://www.w3.org/2001/sw/Europe/skos/namespace" 402 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 403 <uri xsi:type="xsd:string">http://thesaurus.nbii.gov/Concept/5093</uri> 404 </multiRef> 405 <multiRef 406 id="id20" 407 soapenc:root="0" 408 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 409 xsi:type="ns23:Concept" 410 xmlns:ns23="http://www.w3.org/2001/sw/Europe/skos/namespace" 411 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 412 <uri href="#id45" /> 413 <externalID 414 xsi:type="xsd:string" 415 xsi:nil="true" /> 416 <preferredLabel xsi:type="xsd:string">Teratogens</preferredLabel> 417 <inScheme 418 xsi:type="ns23:URI" 419 xsi:nil="true" /> 420 <scopeNote xsi:type="xsd:string">Agents that raise the incidence of congenital malformations</scopeNote> 421 <definition 422 xsi:type="xsd:string" 423 xsi:nil="true" /> 424 <example 425 xsi:type="xsd:string" 426 xsi:nil="true" /> 427 </multiRef> 428 <multiRef 429 id="id26" 430 soapenc:root="0" 431 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 432 xsi:type="ns24:Concept" 433 xmlns:ns24="http://www.w3.org/2001/sw/Europe/skos/namespace" 434 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 435 <uri href="#id46" /> 436 <externalID 437 xsi:type="xsd:string" 438 xsi:nil="true" /> 439 <preferredLabel xsi:type="xsd:string">Congenital defects</preferredLabel> 440 <inScheme 441 xsi:type="ns24:URI" 442 xsi:nil="true" /> 443 <scopeNote 444 xsi:type="xsd:string" 445 xsi:nil="true" /> 446 <definition 447 xsi:type="xsd:string" 448 xsi:nil="true" /> 449 <example 450 xsi:type="xsd:string" 451 xsi:nil="true" /> 452 </multiRef> 453 <multiRef 454 id="id19" 455 soapenc:root="0" 456 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 457 xsi:type="ns25:Concept" 458 xmlns:ns25="http://www.w3.org/2001/sw/Europe/skos/namespace" 459 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 460 <uri href="#id47" /> 461 <externalID 462 xsi:type="xsd:string" 463 xsi:nil="true" /> 464 <preferredLabel xsi:type="xsd:string">Teratology</preferredLabel> 465 <inScheme 466 xsi:type="ns25:URI" 467 xsi:nil="true" /> 468 <scopeNote xsi:type="xsd:string"> 469 Science treating malformations and monstrosities of plants and animals. 470 </scopeNote> 471 <definition 472 xsi:type="xsd:string" 473 xsi:nil="true" /> 474 <example 475 xsi:type="xsd:string" 476 xsi:nil="true" /> 477 </multiRef> 478 <multiRef 479 id="id29" 480 soapenc:root="0" 481 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 482 xsi:type="ns26:Concept" 483 xmlns:ns26="http://www.w3.org/2001/sw/Europe/skos/namespace" 484 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 485 <uri href="#id48" /> 486 <externalID 487 xsi:type="xsd:string" 488 xsi:nil="true" /> 489 <preferredLabel xsi:type="xsd:string">Ring chromosomes</preferredLabel> 490 <inScheme 491 xsi:type="ns26:URI" 492 xsi:nil="true" /> 493 <scopeNote 494 xsi:type="xsd:string" 495 xsi:nil="true" /> 496 <definition 497 xsi:type="xsd:string" 498 xsi:nil="true" /> 499 <example 500 xsi:type="xsd:string" 501 xsi:nil="true" /> 502 </multiRef> ... 981 <multiRef 982 id="id43" 983 soapenc:root="0" 984 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 985 xsi:type="ns61:URI" 986 xmlns:ns61="http://www.w3.org/2001/sw/Europe/skos/namespace" 987 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 988 <uri xsi:type="xsd:string">http://thesaurus.nbii.gov/Concept/9560</uri> 989 </multiRef> 990 </soapenv:Body> 991 </soapenv:Envelope>
So was there anything missing? I don't know :-). Had this been doc/lit the XML would have been more plain readable witch is one thing but what about the data model itself? I guess it's almost pure SKOS, but remember I really do not know anything about it, and I'm using this service to get som insight into it.
The schema in the WSDL is what I sometime call a Rag doll schema's since it is very loose. There is very little mandatory content and therefore I also sometime call them Shopping trolley schema's because they can carry almost anything but you never know what you'll end up leaving with (please bear over with my oversimplifying analogies). Here's the example with Concept:
42 <complexType name="Concept"> 43 <sequence> 44 <element 45 name="uri" 46 nillable="true" 47 type="tns1:URI" /> 48 <element 49 name="externalID" 50 nillable="true" 51 type="xsd:string" /> 52 <element 53 name="preferredLabel" 54 nillable="true" 55 type="xsd:string" /> 56 <element 57 maxOccurs="unbounded" 58 name="nonPreferredLabels" 59 nillable="true" 60 type="xsd:string" /> 61 <element 62 name="inScheme" 63 nillable="true" 64 type="tns1:URI" /> 65 <element 66 name="scopeNote" 67 nillable="true" 68 type="xsd:string" /> 69 <element 70 name="definition" 71 nillable="true" 72 type="xsd:string" /> 73 <element 74 name="example" 75 nillable="true" 76 type="xsd:string" /> 77 </sequence> 78 </complexType>
This gives a span from a complete filled structure to a bunch of empty elements with xsd:nil="true". I personal prefer minoccurs="0"> over the nillable construct, giving a smaller and more exact markup. There certainly are models that need this kind of total flexibility, but on occasion it's a bad smell. Going into invariants is way over my league, so I'll just have a look and expect that this metadata stuff probably has to be that lax.
Since I have no domain knowledgde I know only what the schemas shows me, and that's not much, so I'll have a second look at the response instance. But how do I make that easier to decipher? My first try is with the J2SE XMLEncoder, here's a snippet from j2se-malformations.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <java version="1.5.0_10" class="java.beans.XMLDecoder"> 3 <array class="org.w3.www._2001.sw.Europe.skos.namespace.ConceptResult" length="2"> 4 <void index="0"> 5 <object class="org.w3.www._2001.sw.Europe.skos.namespace.ConceptResult"> 6 <void property="concept"> 7 <object class="org.w3.www._2001.sw.Europe.skos.namespace.Concept"> 8 <void property="preferredLabel"> 9 <string>Limb malformations</string> 10 </void> 11 <void property="uri"> 12 <object class="org.w3.www._2001.sw.Europe.skos.namespace.URI"> 13 <void property="uri"> 14 <string>http://thesaurus.nbii.gov/Concept/4896</string> 15 </void> 16 </object> 17 </void> 18 </object> 19 </void> 20 <void property="conceptRelatives"> 21 <array class="org.w3.www._2001.sw.Europe.skos.namespace.ConceptRelatives" length="5"> 22 <void index="0"> 23 <object class="org.w3.www._2001.sw.Europe.skos.namespace.ConceptRelatives"> 24 <void property="concepts"> 25 <array class="org.w3.www._2001.sw.Europe.skos.namespace.Concept" length="1"> 26 <void index="0"> 27 <object class="org.w3.www._2001.sw.Europe.skos.namespace.Concept"> 28 <void property="preferredLabel"> 29 <string>Malformations</string> 30 </void> 31 <void property="scopeNote"> 32 <string>Restricted to living organisms.</string> 33 </void> 34 <void property="uri"> 35 <object class="org.w3.www._2001.sw.Europe.skos.namespace.URI"> 36 <void property="uri"> 37 <string>http://thesaurus.nbii.gov/Concept/5093</string> 38 </void> 39 </object> 40 </void> 41 </object> 42 </void> 43 </array> 44 </void>
Okay, this is almost worse and never meant to be beautiful XML serialization, but let's try a more likely candidate: Jakarta Commons Betwixt. As it says on the front page Commons Betwixt : Turning beans into XML:
The Betwixt library provides an XML introspection mechanism for mapping beans to XML in a flexible way. It is implemented using an XMLIntrospector and XMLBeanInfo classes which are similar to the standard Introspector and BeanInfo from the Java Beans specification.
Betwixt provides a way of turning beans into XML as well as automatically generating digester rules in a way that can be customized on a per type manner in the same way that the BeanInfo mechanism can be used to customize the default introspection on a java object.
An a quick shot at it gives (btx-malformations.xml):
1 <Array> 2 <ConceptResult> 3 <concept> 4 <definition/> 5 <example/> 6 <externalID/> 7 <nonPreferredLabels/> 8 <preferredLabel>Limb malformations</preferredLabel> 9 <scopeNote/> 10 <uri> 11 <uri>http://thesaurus.nbii.gov/Concept/4896</uri> 12 </uri> 13 </concept> 14 <conceptRelatives> 15 <ConceptRelatives> 16 <concepts> 17 <Concept> 18 <definition/> 19 <example/> 20 <externalID/> 21 <nonPreferredLabels/> 22 <preferredLabel>Malformations</preferredLabel> 23 <scopeNote>Restricted to living organisms.</scopeNote> 24 <uri> 25 <uri>http://thesaurus.nbii.gov/Concept/5093</uri> 26 </uri> 27 </Concept> 28 </concepts> 29 <distance>1</distance> 30 <relation> 31 <description/> 32 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 33 </relation> 34 </ConceptRelatives> 35 <ConceptRelatives> 36 <concepts> 37 <Concept> 38 <definition/> 39 <example/> 40 <externalID/> 41 <nonPreferredLabels/> 42 <preferredLabel>Limb (animal)</preferredLabel> 43 <scopeNote/> 44 <uri> 45 <uri>http://thesaurus.nbii.gov/Concept/4894</uri> 46 </uri> 47 </Concept> 48 </concepts> 49 <distance>1</distance> 50 <relation> 51 <description/> 52 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 53 </relation> 54 </ConceptRelatives> 55 <ConceptRelatives> 56 <concepts> 57 <Concept> 58 <definition/> 59 <example/> 60 <externalID/> 61 <nonPreferredLabels/> 62 <preferredLabel>LSC</preferredLabel> 63 <scopeNote/> 64 <uri> 65 <uri>http://thesaurus.nbii.gov/Concept/9560</uri> 66 </uri> 67 </Concept> 68 </concepts> 69 <distance>1</distance> 70 <relation> 71 <description/> 72 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 73 </relation> 74 </ConceptRelatives> 75 </conceptRelatives> 76 </ConceptResult> 77 <ConceptResult> 78 <concept> 79 <definition/> 80 <example/> 81 <externalID/> 82 <nonPreferredLabels/> 83 <preferredLabel>Malformations</preferredLabel> 84 <scopeNote>Restricted to living organisms.</scopeNote> 85 <uri> 86 <uri>http://thesaurus.nbii.gov/Concept/5093</uri> 87 </uri> 88 </concept> 89 <conceptRelatives> 90 <ConceptRelatives> 91 <concepts> 92 <Concept> 93 <definition/> 94 <example/> 95 <externalID/> 96 <nonPreferredLabels/> 97 <preferredLabel>Aneuploidy</preferredLabel> 98 <scopeNote/> 99 <uri> 100 <uri>http://thesaurus.nbii.gov/Concept/409</uri> 101 </uri> 102 </Concept> 103 <Concept> 104 <definition/> 105 <example/> 106 <externalID/> 107 <nonPreferredLabels/> 108 <preferredLabel>Chromosome aberrations</preferredLabel> 109 <scopeNote/> 110 <uri> 111 <uri>http://thesaurus.nbii.gov/Concept/1608</uri> 112 </uri> 113 </Concept> 114 <Concept> 115 <definition/> 116 <example/> 117 <externalID/> 118 <nonPreferredLabels/> 119 <preferredLabel>Aristapedia</preferredLabel> 120 <scopeNote/> 121 <uri> 122 <uri>http://thesaurus.nbii.gov/Concept/611</uri> 123 </uri> 124 </Concept> 125 <Concept> 126 <definition/> 127 <example/> 128 <externalID/> 129 <nonPreferredLabels/> 130 <preferredLabel>Congenital defects</preferredLabel> 131 <scopeNote/> 132 <uri> 133 <uri>http://thesaurus.nbii.gov/Concept/1860</uri> 134 </uri> 135 </Concept> 136 <Concept> 137 <definition/> 138 <example/> 139 <externalID/> 140 <nonPreferredLabels/> 141 <preferredLabel>Loss of heterozygosity</preferredLabel> 142 <scopeNote/> 143 <uri> 144 <uri>http://thesaurus.nbii.gov/Concept/4991</uri> 145 </uri> 146 </Concept> 147 <Concept> 148 <definition/> 149 <example/> 150 <externalID/> 151 <nonPreferredLabels/> 152 <preferredLabel>Nondisjunction</preferredLabel> 153 <scopeNote/> 154 <uri> 155 <uri>http://thesaurus.nbii.gov/Concept/5870</uri> 156 </uri> 157 </Concept> 158 <Concept> 159 <definition/> 160 <example/> 161 <externalID/> 162 <nonPreferredLabels/> 163 <preferredLabel>Ring chromosomes</preferredLabel> 164 <scopeNote/> 165 <uri> 166 <uri>http://thesaurus.nbii.gov/Concept/7481</uri> 167 </uri> 168 </Concept> 169 <Concept> 170 <definition/> 171 <example/> 172 <externalID/> 173 <nonPreferredLabels/> 174 <preferredLabel>Translocation (genetics)</preferredLabel> 175 <scopeNote/> 176 <uri> 177 <uri>http://thesaurus.nbii.gov/Concept/8906</uri> 178 </uri> 179 </Concept> 180 <Concept> 181 <definition/> 182 <example/> 183 <externalID/> 184 <nonPreferredLabels/> 185 <preferredLabel>Neural tube defects</preferredLabel> 186 <scopeNote/> 187 <uri> 188 <uri>http://thesaurus.nbii.gov/Concept/5758</uri> 189 </uri> 190 </Concept> 191 <Concept> 192 <definition/> 193 <example/> 194 <externalID/> 195 <nonPreferredLabels/> 196 <preferredLabel>Genetic abnormalities</preferredLabel> 197 <scopeNote/> 198 <uri> 199 <uri>http://thesaurus.nbii.gov/Concept/3611</uri> 200 </uri> 201 </Concept> 202 <Concept> 203 <definition/> 204 <example/> 205 <externalID/> 206 <nonPreferredLabels/> 207 <preferredLabel>Limb malformations</preferredLabel> 208 <scopeNote/> 209 <uri> 210 <uri>http://thesaurus.nbii.gov/Concept/4896</uri> 211 </uri> 212 </Concept> 213 </concepts> 214 <distance>1</distance> 215 <relation> 216 <description/> 217 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 218 </relation> 219 </ConceptRelatives> 220 <ConceptRelatives> 221 <concepts> 222 <Concept> 223 <definition/> 224 <example/> 225 <externalID/> 226 <nonPreferredLabels/> 227 <preferredLabel>Teratogenesis</preferredLabel> 228 <scopeNote/> 229 <uri> 230 <uri>http://thesaurus.nbii.gov/Concept/8674</uri> 231 </uri> 232 </Concept> 233 <Concept> 234 <definition/> 235 <example/> 236 <externalID/> 237 <nonPreferredLabels/> 238 <preferredLabel>Teratology</preferredLabel> 239 <scopeNote>Science treating malformations and monstrosities of plants and animals.</scopeNote> 240 <uri> 241 <uri>http://thesaurus.nbii.gov/Concept/8677</uri> 242 </uri> 243 </Concept> 244 <Concept> 245 <definition/> 246 <example/> 247 <externalID/> 248 <nonPreferredLabels/> 249 <preferredLabel>Teratogens</preferredLabel> 250 <scopeNote>Agents that raise the incidence of congenital malformations</scopeNote> 251 <uri> 252 <uri>http://thesaurus.nbii.gov/Concept/8676</uri> 253 </uri> 254 </Concept> 255 </concepts> 256 <distance>1</distance> 257 <relation> 258 <description/> 259 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 260 </relation> 261 </ConceptRelatives> 262 <ConceptRelatives> 263 <concepts> 264 <Concept> 265 <definition/> 266 <example/> 267 <externalID/> 268 <nonPreferredLabels/> 269 <preferredLabel>ASF</preferredLabel> 270 <scopeNote/> 271 <uri> 272 <uri>http://thesaurus.nbii.gov/Concept/9558</uri> 273 </uri> 274 </Concept> 275 <Concept> 276 <definition/> 277 <example/> 278 <externalID/> 279 <nonPreferredLabels/> 280 <preferredLabel>LSC</preferredLabel> 281 <scopeNote/> 282 <uri> 283 <uri>http://thesaurus.nbii.gov/Concept/9560</uri> 284 </uri> 285 </Concept> 286 </concepts> 287 <distance>1</distance> 288 <relation> 289 <description/> 290 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 291 </relation> 292 </ConceptRelatives> 293 <ConceptRelatives> 294 <concepts> 295 <Concept> 296 <definition/> 297 <example/> 298 <externalID/> 299 <nonPreferredLabels> 300 <String>Malformations</String> 301 </nonPreferredLabels> 302 <preferredLabel>Abnormalities</preferredLabel> 303 <scopeNote/> 304 <uri> 305 <uri>http://thesaurus.nbii.gov/Concept/11</uri> 306 </uri> 307 </Concept> 308 <Concept> 309 <definition/> 310 <example/> 311 <externalID/> 312 <nonPreferredLabels> 313 <String>Malformations</String> 314 </nonPreferredLabels> 315 <preferredLabel>Anomalies (defects)</preferredLabel> 316 <scopeNote/> 317 <uri> 318 <uri>http://thesaurus.nbii.gov/Concept/458</uri> 319 </uri> 320 </Concept> 321 <Concept> 322 <definition/> 323 <example/> 324 <externalID/> 325 <nonPreferredLabels> 326 <String>Malformations</String> 327 </nonPreferredLabels> 328 <preferredLabel>Body deformations</preferredLabel> 329 <scopeNote/> 330 <uri> 331 <uri>http://thesaurus.nbii.gov/Concept/1087</uri> 332 </uri> 333 </Concept> 334 </concepts> 335 <distance>1</distance> 336 <relation> 337 <description/> 338 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 339 </relation> 340 </ConceptRelatives> 341 </conceptRelatives> 342 </ConceptResult> 343 </Array>
Great it's much more readable and the length is reduced to a third, and it can even ignore the empty elements:
1 <Array> 2 <ConceptResult> 3 <concept> 4 <nonPreferredLabels /> 5 <preferredLabel>Limb malformations</preferredLabel> 6 <uri> 7 <uri>http://thesaurus.nbii.gov/Concept/4896</uri> 8 </uri> 9 </concept> 10 <conceptRelatives> 11 <ConceptRelatives> 12 <concepts> 13 <Concept> 14 <nonPreferredLabels /> 15 <preferredLabel>Malformations</preferredLabel> 16 <scopeNote>Restricted to living organisms.</scopeNote> 17 <uri> 18 <uri>http://thesaurus.nbii.gov/Concept/5093</uri> 19 </uri> 20 </Concept> 21 </concepts> 22 <distance>1</distance> 23 <relation> 24 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 25 </relation> 26 </ConceptRelatives> 27 <ConceptRelatives> 28 <concepts> 29 <Concept> 30 <nonPreferredLabels /> 31 <preferredLabel>Limb (animal)</preferredLabel> 32 <uri> 33 <uri>http://thesaurus.nbii.gov/Concept/4894</uri> 34 </uri> 35 </Concept> 36 </concepts> 37 <distance>1</distance> 38 <relation> 39 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 40 </relation> 41 </ConceptRelatives> 42 <ConceptRelatives> 43 <concepts> 44 <Concept> 45 <nonPreferredLabels /> 46 <preferredLabel>LSC</preferredLabel> 47 <uri> 48 <uri>http://thesaurus.nbii.gov/Concept/9560</uri> 49 </uri> 50 </Concept> 51 </concepts> 52 <distance>1</distance> 53 <relation> 54 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 55 </relation> 56 </ConceptRelatives> 57 </conceptRelatives> 58 </ConceptResult> 59 <ConceptResult> 60 <concept> 61 <nonPreferredLabels /> 62 <preferredLabel>Malformations</preferredLabel> 63 <scopeNote>Restricted to living organisms.</scopeNote> 64 <uri> 65 <uri>http://thesaurus.nbii.gov/Concept/5093</uri> 66 </uri> 67 </concept> 68 <conceptRelatives> 69 <ConceptRelatives> 70 <concepts> 71 <Concept> 72 <nonPreferredLabels /> 73 <preferredLabel>Aneuploidy</preferredLabel> 74 <uri> 75 <uri>http://thesaurus.nbii.gov/Concept/409</uri> 76 </uri> 77 </Concept> 78 <Concept> 79 <nonPreferredLabels /> 80 <preferredLabel>Chromosome aberrations</preferredLabel> 81 <uri> 82 <uri>http://thesaurus.nbii.gov/Concept/1608</uri> 83 </uri> 84 </Concept> 85 <Concept> 86 <nonPreferredLabels /> 87 <preferredLabel>Aristapedia</preferredLabel> 88 <uri> 89 <uri>http://thesaurus.nbii.gov/Concept/611</uri> 90 </uri> 91 </Concept> 92 <Concept> 93 <nonPreferredLabels /> 94 <preferredLabel>Congenital defects</preferredLabel> 95 <uri> 96 <uri>http://thesaurus.nbii.gov/Concept/1860</uri> 97 </uri> 98 </Concept> 99 <Concept> 100 <nonPreferredLabels /> 101 <preferredLabel>Loss of heterozygosity</preferredLabel> 102 <uri> 103 <uri>http://thesaurus.nbii.gov/Concept/4991</uri> 104 </uri> 105 </Concept> 106 <Concept> 107 <nonPreferredLabels /> 108 <preferredLabel>Nondisjunction</preferredLabel> 109 <uri> 110 <uri>http://thesaurus.nbii.gov/Concept/5870</uri> 111 </uri> 112 </Concept> 113 <Concept> 114 <nonPreferredLabels /> 115 <preferredLabel>Ring chromosomes</preferredLabel> 116 <uri> 117 <uri>http://thesaurus.nbii.gov/Concept/7481</uri> 118 </uri> 119 </Concept> 120 <Concept> 121 <nonPreferredLabels /> 122 <preferredLabel>Translocation (genetics)</preferredLabel> 123 <uri> 124 <uri>http://thesaurus.nbii.gov/Concept/8906</uri> 125 </uri> 126 </Concept> 127 <Concept> 128 <nonPreferredLabels /> 129 <preferredLabel>Neural tube defects</preferredLabel> 130 <uri> 131 <uri>http://thesaurus.nbii.gov/Concept/5758</uri> 132 </uri> 133 </Concept> 134 <Concept> 135 <nonPreferredLabels /> 136 <preferredLabel>Genetic abnormalities</preferredLabel> 137 <uri> 138 <uri>http://thesaurus.nbii.gov/Concept/3611</uri> 139 </uri> 140 </Concept> 141 <Concept> 142 <nonPreferredLabels /> 143 <preferredLabel>Limb malformations</preferredLabel> 144 <uri> 145 <uri>http://thesaurus.nbii.gov/Concept/4896</uri> 146 </uri> 147 </Concept> 148 </concepts> 149 <distance>1</distance> 150 <relation> 151 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 152 </relation> 153 </ConceptRelatives> 154 <ConceptRelatives> 155 <concepts> 156 <Concept> 157 <nonPreferredLabels /> 158 <preferredLabel>Teratogenesis</preferredLabel> 159 <uri> 160 <uri>http://thesaurus.nbii.gov/Concept/8674</uri> 161 </uri> 162 </Concept> 163 <Concept> 164 <nonPreferredLabels /> 165 <preferredLabel>Teratology</preferredLabel> 166 <scopeNote>Science treating malformations and monstrosities of plants and animals.</scopeNote> 167 <uri> 168 <uri>http://thesaurus.nbii.gov/Concept/8677</uri> 169 </uri> 170 </Concept> 171 <Concept> 172 <nonPreferredLabels /> 173 <preferredLabel>Teratogens</preferredLabel> 174 <scopeNote>Agents that raise the incidence of congenital malformations</scopeNote> 175 <uri> 176 <uri>http://thesaurus.nbii.gov/Concept/8676</uri> 177 </uri> 178 </Concept> 179 </concepts> 180 <distance>1</distance> 181 <relation> 182 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 183 </relation> 184 </ConceptRelatives> 185 <ConceptRelatives> 186 <concepts> 187 <Concept> 188 <nonPreferredLabels /> 189 <preferredLabel>ASF</preferredLabel> 190 <uri> 191 <uri>http://thesaurus.nbii.gov/Concept/9558</uri> 192 </uri> 193 </Concept> 194 <Concept> 195 <nonPreferredLabels /> 196 <preferredLabel>LSC</preferredLabel> 197 <uri> 198 <uri>http://thesaurus.nbii.gov/Concept/9560</uri> 199 </uri> 200 </Concept> 201 </concepts> 202 <distance>1</distance> 203 <relation> 204 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 205 </relation> 206 </ConceptRelatives> 207 <ConceptRelatives> 208 <concepts> 209 <Concept> 210 <nonPreferredLabels> 211 <String>Malformations</String> 212 </nonPreferredLabels> 213 <preferredLabel>Abnormalities</preferredLabel> 214 <uri> 215 <uri>http://thesaurus.nbii.gov/Concept/11</uri> 216 </uri> 217 </Concept> 218 <Concept> 219 <nonPreferredLabels> 220 <String>Malformations</String> 221 </nonPreferredLabels> 222 <preferredLabel>Anomalies (defects)</preferredLabel> 223 <uri> 224 <uri>http://thesaurus.nbii.gov/Concept/458</uri> 225 </uri> 226 </Concept> 227 <Concept> 228 <nonPreferredLabels> 229 <String>Malformations</String> 230 </nonPreferredLabels> 231 <preferredLabel>Body deformations</preferredLabel> 232 <uri> 233 <uri>http://thesaurus.nbii.gov/Concept/1087</uri> 234 </uri> 235 </Concept> 236 </concepts> 237 <distance>1</distance> 238 <relation> 239 <label>http://www.w3.org/2004/02/skos/core#useFor</label> 240 </relation> 241 </ConceptRelatives> 242 </conceptRelatives> 243 </ConceptResult> 244 </Array>
Whereby the number of lines is reduced to a fourth of the original response, and all the extra nested uri's count for quite some.
Now I'm ready to have a further look at it and maybe work on my own small webapp to browse this Thesaurus.
0 comments :
Post a Comment