Query Language | | - Review proposed Query Language examples
- Consider issues and potential resolutions. Questions needing resolution include:
- Do we need inferred relationship filters?
- If yes, then what are some good use cases?
- Answer: QA - Find me all the source concepts of a relationship added in an extension module
- Answer: QA - Find me all the source concepts of a relationship added at a particular effective time
- How should no brackets be interpreted?
- What does this mean? "< 404684003 |Clinical finding| {{ C.definitionStatusId = 900000000000074008 |Primitive|}}"
- 1a) ( < 404684003 |Clinical finding| ) {{ C.definitionStatusId = 900000000000074008 |Primitive|}}
- 1b) < ( 404684003 |Clinical finding| {{ C.definitionStatusId = 900000000000074008 |Primitive|}} )
- Answer: 1a
- What does this mean? "< 404684003 |Clinical finding| : 363698007 |Finding site| = << 80891009 |Heart structure| {{ C.definitionStatusId = 900000000000074008 |Primitive|}}"
- 2a) ( < 404684003 |Clinical finding| : 363698007 |Finding site| = << 80891009 |Heart structure| ) {{ C.definitionStatusId = 900000000000074008 |Primitive|}}
- 2b) < 404684003 |Clinical finding| : 363698007 |Finding site| = (( << 80891009 |Heart structure| ) {{ C.definitionStatusId = 900000000000074008 |Primitive|}} )
- 2c) < 404684003 |Clinical finding| : 363698007 |Finding site| = << (( 80891009 |Heart structure| ) {{ C.definitionStatusId = 900000000000074008 |Primitive|}} )
- Answer: 2a
- If we do support relationship filters, then where should they go and how should they be bracketed?
- Directly after the attribute - for example:
- 1a) < 404684003 |Clinical finding| : 363698007 |Finding site| {{ R.moduleId = 32506021000036107 |AU extension|}} = << 80891009 |Heart structure|
- or
- 1b) < 404684003 |Clinical finding| : ( 363698007 |Finding site| {{ R.moduleId = 32506021000036107 |AU extension| }} ) = << 80891009 |Heart structure|
- Directly after the refinement (with brackets) - for example:
- 2a) < 404684003 |Clinical finding| : (( 363698007 |Finding site| = << 80891009 |Heart structure| ) {{ R.moduleId = 32506021000036107 |AU extension|}})
- or
- 2b) < 404684003 |Clinical finding| : ( 363698007 |Finding site| = << 80891009 |Heart structure| {{ R.moduleId = 32506021000036107 |AU extension|}} )
- Directly after the =/!= , for example:
- 3a) < 404684003 |Clinical finding| : 363698007 |Finding site| = {{ R.moduleId = 32506021000036107 |AU extension|}} << 80891009 |Heart structure|
- Directly after the constraint operator (Interpretation - there exists a relationship in the chain) - for example:
- 3a) < {{ R.moduleId = 32506021000036107 |AU extension|}} 404684003 |Clinical finding|
- After the concept being constrained - for example:
- 4a) < 404684003 |Clinical finding| {{ R.moduleId = 32506021000036107 |AU extension|}}
- or
- 4b) ( < 404684003 |Clinical finding| ) {{ R.moduleId = 32506021000036107 |AU extension|}}
- Answer(s): ? 2b and 4a (Note: 1b is more consistent with dotted notation)
- How do we indicate the execution order for relationship filters?
- Dotted notation - For example "ANY . << 246090004 |Associated finding| . 363698007 |Finding site|"
- Only returns those concepts that result from using a |Finding site| relationship in the AU core (Note: return the destinationConcept of these relationships)
- 1a) ANY . << 246090004 |Associated finding| . 363698007 |Finding site| {{ R.moduleId != 'AU Core' }}
- or
- 1b) ANY . << 246090004 |Associated finding| . ( 363698007 |Finding site| {{ R.moduleId != 'AU Core' }} )
- Answer: ? 1b
- Only returns those concepts that result from using an |Associated finding| relationship (or type of |associated finding| relationship) in the AU core (Note: return the destinationConcept of these relationships)
- 2a) ANY . << 246090004 |Associated finding| {{ R.moduleId != 'AU Core' }}. 363698007 |Finding site|
- or
- 2b) ANY . ( << 246090004 |Associated finding| ) {{ R.moduleId != 'AU Core' }}. 363698007 |Finding site|
- or
- 2c) ANY . ( << 246090004 |Associated finding| {{ R.moduleId != 'AU Core' }} ). 363698007 |Finding site|
- Answer: ? 2c
- Cardinality
- Exactly one matching relationship in the AU core (but may be other matching relationships in other modules)
- 1a) < 404684003 |Clinical finding| : [1..1] ( 63698007 |Finding site| = << 80891009 |Heart structure| {{ R.moduleId = 32506021000036107 |AU extension|}} )
- or
- 1b) < 404684003 |Clinical finding| : [1..1] ( 63698007 |Finding site| = << 80891009 |Heart structure| ) {{ R.moduleId = 32506021000036107 |AU extension|}}
- Answer: ? 1a
- Exactly one matching relationship, and this relationship is in the AU core
- 2a) < 404684003 |Clinical finding| : ( [1..1] 63698007 |Finding site| = << 80891009 |Heart structure| {{ R.moduleId = 32506021000036107 |AU extension|}} )
- or
- 2b) < 404684003 |Clinical finding| : ( [1..1] 63698007 |Finding site| = << 80891009 |Heart structure| ) {{ R.moduleId = 32506021000036107 |AU extension|}}
- Answer: ? 2a
- Which keyword filters must be qualified with a component/refset type? (e.g. "C", "D", "R", "M")
- For example, do we qualify "substrate"? "languageRefSetId", "preferredTerm", "fullySpecifiedName", "acceptableTerm"?
- What options do we provide for constraining terms, preferred terms, fully specified names, acceptable terms and/or selecting language refsets?
|