ECL and grouped attributes
Tried four implementations of ECL using grouped and non-grouped attributes in the query and got different results.
Comments
Hi all,
Sorry I am late to this conversation, and that my implementation (Slang) has been down (technical difficulties I am working on–it is memory-starved right now).
I've run both queries on my local Slang instance, and they return the same concept count–339 on the INT20170731 substrate (I presume it's the same set as well).
I'm not sure whether I've gotten it right, but many thanks again to Linda for her help with implementing the finer points of attribute groups and grouping.
-Peris
Hi Daniel,
Interesting. Yes - query 1 and 2 should yield the same results. Query 1 finds how many subtypes of |Procedure| have a role group that matches the given refinement, while query 2 finds the subtypes of |Procedure that match the given refinement, irrespective of whether or not it is in a role group. Since all relationships with the attribute |Has intent| are treated in a role group, these 2 queries should yield the same results. I haven't double checked the result set against my own database ... but I assume that the 347 brought back by snowstorm in the browser and Ontoserver is correct for both queries (based on a small sampling of the results, which all seem correct).
The query "<<* : { 272741003 | laterality | = 7771000 | Left | }" should return 0 because |laterality| should never appear in a role group ... so based on the results you report I would say that snowstorm is correct and OntoServer is incorrect on that one. Michael - do you agree?
Kind regards,
Linda.
(P.S. - I'm officially on holidays ... but couldn't resist a bit of ECL from the beach )
Daniel & Linda you are correct about Ontoserver and <<* : { 272741003 | laterality | = 7771000 | Left | } – it should return zero matches.
This is a bug in Ontoserver and will be fixed in the next release (5.3.0). For the public sandbox (that Shrimp uses), it is fixed already.
(Sorry for the delay in sorting this - I was studiously avoiding work over my Xmas holidays :-)
BTW, why "<<* : { 272741003 | laterality | = 7771000 | Left | }" and not just "* : { 272741003 | laterality | = 7771000 | Left | }" ?
No need to respond til holidays end, but...
>> "...Since all relationships with the attribute |Has intent| are treated in a role group, these 2 queries should yield the same results..."
Not so. For the July 2018 international data there are 340 |Has intent| ungrouped (RG=0) roles and 7 in a non-zero group. This suggests to me that snowstorm is behaving as 'intended'.
Ed
Queries tried:
<< 71388002 | atgard | : { 363703001 | har avsikt | = << 129428001 | preventiv avsikt | }
<< 71388002 | atgard | : 363703001 | har avsikt | = << 129428001 | preventiv avsikt |
(Note that some implementations, most notably the two SNOMED "International" ones, works badly (i.e. not at all) with a non-English alphabet)
Sorry I could not (easily) get comparable SNOMED CT versions... Active=true where the setting is available.
implementation
SNOMED CT release
Query 1
Query 2
sct-snapshot-rest-api, commit 3ce4ab6
The one I had on my hard drive, likely International 2018-01-31
91
91
snowstorm, v 2.1.0
SE edition 2018-11-30
9
523
OntoServer through Shrimp UI, buildid ddd5953f1d34f52fb9f5d79a5d910e5d2f4bfaf4487755d3f8f6a5c7ea12a81c
International 2018-01-31
347
347
snowstorm through browser, v 2.0.0 (https://browser.ihtsdotools.org/ecl/)
International 2018-07-31
7
347
I was expecting the two queries to retrieve the same results. Is there a bug in snowstorm? I cannot find an answer in the specs.
Then, how is "<<* : { 272741003 | lateralitet | = 7771000 | vanster | }" to be interpreted? snowstorm gives 0, OntoServer gives 1068.
Happy New Year,
Daniel