^Dictionary("Vehicle","TransmissionType",1,0,"UpdateTime")="62086,66625" ^Dictionary("Vehicle","TransmissionType",1,0,"uid")=888 ^Dictionary("Vehicle","TransmissionType",2,0,"UpdateTime")="62086,66625" ^Dictionary("Vehicle","TransmissionType",2,0,"uid")=888 ^NameDictionaryElement(1,"partUri",0)="akp" ^NameDictionaryElement(1,"partUri",0,"UpdateTime")="62086,66625" ^NameDictionaryElement(1,"ru",0)="" ^NameDictionaryElement(1,"ru",0,"UpdateTime")="62086,66625" ^NameDictionaryElement(2,"partUri",0)="meh" ^NameDictionaryElement(2,"partUri",0,"UpdateTime")="62086,66625" ^NameDictionaryElement(2,"ru",0)="" ^NameDictionaryElement(2,"ru",0,"UpdateTime")="62086,66625" ^IndexDictionary("Vehicle","TransmissionType","name","partUri","akp",1)=1 ^IndexDictionary("Vehicle","TransmissionType","name","partUri","meh",2)=1 ^IndexDictionary("Vehicle","TransmissionType","name","ru","",1)=1 ^IndexDictionary("Vehicle","TransmissionType","name","ru","",2)=1 ^IndexDictionary("Vehicle","TransmissionType","uid",888,1)=1 ^IndexDictionary("Vehicle","TransmissionType","uid",888,2)=1 ^RefsDictionary(1,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""name"",""partUri"",""akp"",1)")=1 ^RefsDictionary(1,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""name"",""ru"","""",1)")=1 ^RefsDictionary(1,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""uid"",888,1)")=1 ^RefsDictionary(2,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""name"",""partUri"",""meh"",2)")=1 ^RefsDictionary(2,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""name"",""ru"","""",2)")=1 ^RefsDictionary(2,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""uid"",888,2)")=1
set ^Dictionary("Vehicle","TransmissionType",1,0,"UpdateTime")="62086,66625" set ^Dictionary("Vehicle","TransmissionType",1,0,"uid")=888 set ^Dictionary("Vehicle","TransmissionType",2,0,"UpdateTime")="62086,66625" set ^Dictionary("Vehicle","TransmissionType",2,0,"uid")=888 set ^NameDictionaryElement(1,"partUri",0)="akp" set ^NameDictionaryElement(1,"partUri",0,"UpdateTime")="62086,66625" set ^NameDictionaryElement(1,"ru",0)="" set ^NameDictionaryElement(1,"ru",0,"UpdateTime")="62086,66625" set ^NameDictionaryElement(2,"partUri",0)="meh" set ^NameDictionaryElement(2,"partUri",0,"UpdateTime")="62086,66625" set ^NameDictionaryElement(2,"ru",0)="" set ^NameDictionaryElement(2,"ru",0,"UpdateTime")="62086,66625" set ^IndexDictionary("Vehicle","TransmissionType","name","partUri","akp",1)=1 set ^IndexDictionary("Vehicle","TransmissionType","name","partUri","meh",2)=1 set ^IndexDictionary("Vehicle","TransmissionType","name","ru","",1)=1 set ^IndexDictionary("Vehicle","TransmissionType","name","ru","",2)=1 set ^IndexDictionary("Vehicle","TransmissionType","uid",888,1)=1 set ^IndexDictionary("Vehicle","TransmissionType","uid",888,2)=1 set ^RefsDictionary(1,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""name"",""partUri"",""akp"",1)")=1 set ^RefsDictionary(1,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""name"",""ru"","""",1)")=1 set ^RefsDictionary(1,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""uid"",888,1)")=1 set ^RefsDictionary(2,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""name"",""partUri"",""meh"",2)")=1 set ^RefsDictionary(2,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""name"",""ru"","""",2)")=1 set ^RefsDictionary(2,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""uid"",888,2)")=1
MONTOLOGY>zwrite ^RuleDictionary("SimpleOntology") ^RuleDictionary("SimpleOntology","SimpleType","create","check",10)="do clearPunctuationAndControlCharAllLang()" ^RuleDictionary("SimpleOntology","SimpleType","create","check",20)="do checkUniqueNameElementAllLang()" ^RuleDictionary("SimpleOntology","SimpleType","update","check",10)="do clearPunctuationAndControlCharAllLang()" ^RuleDictionary("SimpleOntology","SimpleType","update","check",20)="do checkUniqueNameElementAllLang()" MONTOLOGY>
set ^RuleDictionary("SimpleOntology","SimpleType","create","check",10)="do clearPunctuationAndControlCharAllLang()" set ^RuleDictionary("SimpleOntology","SimpleType","create","check",20)="do checkUniqueNameElementAllLang()" set ^RuleDictionary("SimpleOntology","SimpleType","update","check",10)="do clearPunctuationAndControlCharAllLang()" set ^RuleDictionary("SimpleOntology","SimpleType","update","check",20)="do checkUniqueNameElementAllLang()"
#; -------------------------------------------------------------------------------------------------- #; . #; . #; -------------------------------------------------------------------------------------------------- create() #; kill map("out") #; t #; create new t #; set t("err")=$$check("create") #; , if t("err")<0 { quit t("err") } #; "UpdateTime" do setProperty(t("ontology"),t("type"),"UpdateTime",$horolog,t("id"),"false") #; "uid" do setProperty(t("ontology"),t("type"),"uid",t("uid"),t("id"),"true") set t("lang")="" for { #; ( ) set t("lang")=$order(t("nameList",t("lang"))) #; , quit:t("lang")="" #; set t("name")=$get(t("nameList",t("lang"))) #; do setName(t("ontology"),t("type"),t("lang"),t("name"),t("id")) } #; do saveOntoAndTypeID #; do saveElementPath #; set map("out","id")=t("id") #; kill map("in") #; quit t("id") #; --------------------------------------------------------------------------------------------------
#; -------------------------------------------------------------------------------------------------- #; . #; ^RuleDictionary . #; -------------------------------------------------------------------------------------------------- check(action)private #; check new check #; action set check=$case(action,"create":$$checkCreate(),"update":$$checkUpdate(),"delete":$$checkDelete(),:-1) #; quit:check<0 check #; "uid" set t("uid")=$get(map("in","uid"),888) #; , "check", if $data(^RuleDictionary(t("ontology"),t("type"),action,"check")) { #; t("map") set t("map")=$name(^RuleDictionary(t("ontology"),t("type"),action,"check")) } else { #; t("map") set t("map")=$name(^RuleDictionary("SimpleOntology","SimpleType",action,"check")) } set check("i")="" for { #; set check("i")=$order(@t("map")@(check("i"))) #; , quit:check("i")="" #; xecute $get(@t("map")@(check("i"))) #; , quit:check<0 } #; quit check #; -------------------------------------------------------------------------------------------------- #; . #; id, ontology, type, . #; -------------------------------------------------------------------------------------------------- checkCreate()private #; st("ontology")=$get(map("in","ontology"),"") #; quit:t("ontology")="" -1 #; set t("type")=$get(map("in","type"),"") #; , quit:t("type")="" -1 #; set t("check")=$$checkNames() #; , quit:t("check")<0 t("check") #; set t("id")=$increment(^Dictionary("MaxID")) #; ^Dictionary set t("path")=$name(^Dictionary(t("ontology"),t("type"),t("id"))) #; quit 0 #; -------------------------------------------------------------------------------------------------- checkUpdate() quit 0 #; -------------------------------------------------------------------------------------------------- checkDelete() quit 0 #; -------------------------------------------------------------------------------------------------- #; . #; -------------------------------------------------------------------------------------------------- checkNames()private #; merge t("nameList")=map("in","nameList") #; t("check") #; set t("check")=-1 set t("lang")="" for { #; set t("lang")=$order(t("nameList",t("lang"))) #; , quit:t("lang")="" #; set t("name")=$get(t("nameList",t("lang")),"") #; if t("name")="" { #; t("check") set t("check")=-1 #; quit } else { #; t("check") , set t("check")=0 } } #; quit t("check") #; --------------------------------------------------------------------------------------------------
all identifiers are unique, even within different reference books and ontologiesAt the end of the checkCreate () method, we write the canonical name of the Global dictionary branch to the variable t (“path”) , in which the created directory element will be stored.
The merge command copies whole subtrees of indexed variables into each other, no matter whether they are defined as local or global.The definition is taken from the book: Wolfgang Kirsten. Michael Iringer. Matthias Kühn Bernhard Rörig. Postrelational Caché DBMS 5. Object-oriented application development. Second edition. Moscow. Publisher BINOM . 2005. Translation by A. Maslov, K. Aristova. Page 116.
set check("i")=$order(@t("map")@(check("i")))
set check("i")=$order(^RuleDictionary("SimpleOntology","SimpleType","create","check",""))
xecute $get(@t("map")@(check("i")))
The xecute command executes a string of characters as a single-line subroutine.Page 115, the same book.
do clearPunctuationAndControlCharAllLang()
do checkUniqueNameElementAllLang()
#; -------------------------------------------------------------------------------------------------- clearPunctuationAndControlCharAllLang() set t("lang")="" for { #; set t("lang")=$order(t("nameList",t("lang"))) quit:t("lang")="" #; set t("nameList",t("lang"))=$$clearPunctuationAndControlChar($get(t("nameList",t("lang")),"")) } quit #; -------------------------------------------------------------------------------------------------- checkUniqueNameElementAllLang() set t("lang")="" for { #; set t("lang")=$order(t("nameList",t("lang"))) quit:t("lang")="" #; set t("name")=$get(t("nameList",t("lang")),"") #; check (0 - ) set check=$$checkUniqueNameElement() #; - quit:check<0 } quit #; -------------------------------------------------------------------------------------------------- #; . #; -------------------------------------------------------------------------------------------------- clearPunctuationAndControlChar(str) new t #; t("str") set t("str")="" #; for t("i")=1:1:$length(str) { #; set t("ch")=$extract(str,t("i")) if '((t("ch")?1P)||(t("ch")?1C)) { #; set t("str")=t("str")_t("ch") } } #; quit t("str") #; -------------------------------------------------------------------------------------------------- #; -------------------------------------------------------------------------------------------------- #; , , . #; , . #; -------------------------------------------------------------------------------------------------- checkUniqueNameElement() #; set t("q")=0 set t("uniqueId")="" for { #; , #; , , ( ) set t("uniqueId")=$order(^IndexDictionary(t("ontology"),t("type"),"name",t("lang"),$zconvert(t("name"),"l"),t("uniqueId"))) #; quit:t("uniqueId")="" #; , #; update if (t("uniqueId")'=t("id")) { #; , set t("q")=-1 quit } } #; quit t("q") #; --------------------------------------------------------------------------------------------------
#; -------------------------------------------------------------------------------------------------- #; , . #; . #; -------------------------------------------------------------------------------------------------- setProperty(ontology,type,property,value,id,index="true")private #; () set ^Dictionary(ontology,type,id,0,property)=value #; if index="true" { #; set ^IndexDictionary(ontology,type,property,value,id)=1 #; set ^RefsDictionary(id,$name(^|"MONTOLOGY"|IndexDictionary(ontology,type,property,value,id)))=1 } quit 0 #; --------------------------------------------------------------------------------------------------
#; -------------------------------------------------------------------------------------------------- #; , . #; ( ) . #; -------------------------------------------------------------------------------------------------- setName(ontology,type,lang,value,id)private #; set ^NameDictionaryElement(id,lang,0)=value #; / set ^NameDictionaryElement(id,lang,0,"UpdateTime")=$horolog #; set ^IndexDictionary(ontology,type,"name",lang,$zconvert(value,"l"),id)=1 #; set ^RefsDictionary(id,$name(^|"MONTOLOGY"|IndexDictionary(ontology,type,"name",lang,$zconvert(value,"l"),id)))=1 quit 0 #; --------------------------------------------------------------------------------------------------
#; -------------------------------------------------------------------------------------------------- saveOntoAndTypeID set ^IndexDictionary("ID",t("id"),"ontology")=t("ontology") set ^RefsDictionary(t("id"),$name(^|"MONTOLOGY"|IndexDictionary("ID",t("id"),"ontology")))=1 set ^IndexDictionary("ID",t("id"),"type")=t("type") set ^RefsDictionary(t("id"),$name(^|"MONTOLOGY"|IndexDictionary("ID",t("id"),"type")))=1 quit #; -------------------------------------------------------------------------------------------------- saveElementPath set ^IndexDictionary("ID",t("id"),"path")=t("path") set ^RefsDictionary(t("id"),$name(^|"MONTOLOGY"|IndexDictionary("ID",t("id"),"path")))=1 quit #; --------------------------------------------------------------------------------------------------
#; -------------------------------------------------------------------------------------------------- #; #; -------------------------------------------------------------------------------------------------- Dictionary #; -------------------------------------------------------------------------------------------------- #; . #; -------------------------------------------------------------------------------------------------- retrieve(id,lang="ru",version=0) quit $get(^NameDictionaryElement(id,lang,version),"") #; -------------------------------------------------------------------------------------------------- #; . #; -------------------------------------------------------------------------------------------------- retrieveListByIndex(ontology,type,index,value,str="",lang="ru") #; , set str=$zconvert(str,"L") set id="" for { #; () set id=$order(^IndexDictionary(ontology,type,index,value,id)) #; , quit:id="" #; set name=$$retrieve(id,lang) #; str if $extract($zconvert(name,"L"),1,$length(str))=str { #; ( ) write id_" "_name,! } } quit #; -------------------------------------------------------------------------------------------------- #; . #; . #; -------------------------------------------------------------------------------------------------- create() #; kill map("out") #; t #; create new t #; set t("err")=$$check("create") #; , if t("err")<0 { quit t("err") } #; "UpdateTime" do setProperty(t("ontology"),t("type"),"UpdateTime",$horolog,t("id"),"false") #; "uid" do setProperty(t("ontology"),t("type"),"uid",t("uid"),t("id"),"true") set t("lang")="" for { #; ( ) set t("lang")=$order(t("nameList",t("lang"))) #; , quit:t("lang")="" #; set t("name")=$get(t("nameList",t("lang"))) #; do setName(t("ontology"),t("type"),t("lang"),t("name"),t("id")) } #; do saveOntoAndTypeID #; do saveElementPath #; set map("out","id")=t("id") #; kill map("in") #; quit t("id") #; -------------------------------------------------------------------------------------------------- #; . #; ^RuleDictionary . #; -------------------------------------------------------------------------------------------------- check(action)private #; check new check #; action set check=$case(action,"create":$$checkCreate(),"update":$$checkUpdate(),"delete":$$checkDelete(),:-1) #; quit:check<0 check #; "uid" set t("uid")=$get(map("in","uid"),888) #; , "check", if $data(^RuleDictionary(t("ontology"),t("type"),action,"check")) { #; t("map") set t("map")=$name(^RuleDictionary(t("ontology"),t("type"),action,"check")) } else { #; t("map") set t("map")=$name(^RuleDictionary("SimpleOntology","SimpleType",action,"check")) } set check("i")="" for { #; set check("i")=$order(@t("map")@(check("i"))) #; , quit:check("i")="" #; xecute $get(@t("map")@(check("i"))) #; , quit:check<0 } #; quit check #; -------------------------------------------------------------------------------------------------- #; . #; id, ontology, type, . #; -------------------------------------------------------------------------------------------------- checkCreate()private #; st("ontology")=$get(map("in","ontology"),"") #; quit:t("ontology")="" -1 #; set t("type")=$get(map("in","type"),"") #; , quit:t("type")="" -1 #; set t("check")=$$checkNames() #; , quit:t("check")<0 t("check") #; set t("id")=$increment(^Dictionary("MaxID")) #; ^Dictionary set t("path")=$name(^Dictionary(t("ontology"),t("type"),t("id"))) #; quit 0 #; -------------------------------------------------------------------------------------------------- checkUpdate() quit 0 #; -------------------------------------------------------------------------------------------------- checkDelete() quit 0 #; -------------------------------------------------------------------------------------------------- #; . #; -------------------------------------------------------------------------------------------------- checkNames()private #; merge t("nameList")=map("in","nameList") #; t("check") #; set t("check")=-1 set t("lang")="" for { #; set t("lang")=$order(t("nameList",t("lang"))) #; , quit:t("lang")="" #; set t("name")=$get(t("nameList",t("lang")),"") #; if t("name")="" { #; t("check") set t("check")=-1 #; quit } else { #; t("check") , set t("check")=0 } } #; quit t("check") #; -------------------------------------------------------------------------------------------------- clearPunctuationAndControlCharAllLang() set t("lang")="" for { #; set t("lang")=$order(t("nameList",t("lang"))) quit:t("lang")="" #; set t("nameList",t("lang"))=$$clearPunctuationAndControlChar($get(t("nameList",t("lang")),"")) } quit #; -------------------------------------------------------------------------------------------------- checkUniqueNameElementAllLang() set t("lang")="" for { #; set t("lang")=$order(t("nameList",t("lang"))) quit:t("lang")="" #; set t("name")=$get(t("nameList",t("lang")),"") #; check (0 - ) set check=$$checkUniqueNameElement() #; - quit:check<0 } quit #; -------------------------------------------------------------------------------------------------- #; . #; -------------------------------------------------------------------------------------------------- clearPunctuationAndControlChar(str) new t #; t("str") set t("str")="" #; for t("i")=1:1:$length(str) { #; set t("ch")=$extract(str,t("i")) if '((t("ch")?1P)||(t("ch")?1C)) { #; set t("str")=t("str")_t("ch") } } #; quit t("str") #; -------------------------------------------------------------------------------------------------- #; -------------------------------------------------------------------------------------------------- #; , , . #; , . #; -------------------------------------------------------------------------------------------------- checkUniqueNameElement() #; set t("q")=0 set t("uniqueId")="" for { #; , #; , , ( ) set t("uniqueId")=$order(^IndexDictionary(t("ontology"),t("type"),"name",t("lang"),$zconvert(t("name"),"l"),t("uniqueId"))) #; quit:t("uniqueId")="" #; , #; update if (t("uniqueId")'=t("id")) { #; , set t("q")=-1 quit } } #; quit t("q") #; -------------------------------------------------------------------------------------------------- #; , . #; . #; -------------------------------------------------------------------------------------------------- setProperty(ontology,type,property,value,id,index="true")private #; () set ^Dictionary(ontology,type,id,0,property)=value #; if index="true" { #; set ^IndexDictionary(ontology,type,property,value,id)=1 #; set ^RefsDictionary(id,$name(^|"MONTOLOGY"|IndexDictionary(ontology,type,property,value,id)))=1 } quit 0 #; -------------------------------------------------------------------------------------------------- #; , . #; ( ) . #; -------------------------------------------------------------------------------------------------- setName(ontology,type,lang,value,id)private #; set ^NameDictionaryElement(id,lang,0)=value #; / set ^NameDictionaryElement(id,lang,0,"UpdateTime")=$horolog #; set ^IndexDictionary(ontology,type,"name",lang,$zconvert(value,"l"),id)=1 #; set ^RefsDictionary(id,$name(^|"MONTOLOGY"|IndexDictionary(ontology,type,"name",lang,$zconvert(value,"l"),id)))=1 quit 0 #; -------------------------------------------------------------------------------------------------- saveOntoAndTypeID set ^IndexDictionary("ID",t("id"),"ontology")=t("ontology") set ^RefsDictionary(t("id"),$name(^|"MONTOLOGY"|IndexDictionary("ID",t("id"),"ontology")))=1 set ^IndexDictionary("ID",t("id"),"type")=t("type") set ^RefsDictionary(t("id"),$name(^|"MONTOLOGY"|IndexDictionary("ID",t("id"),"type")))=1 quit #; -------------------------------------------------------------------------------------------------- saveElementPath set ^IndexDictionary("ID",t("id"),"path")=t("path") set ^RefsDictionary(t("id"),$name(^|"MONTOLOGY"|IndexDictionary("ID",t("id"),"path")))=1 quit #; --------------------------------------------------------------------------------------------------
MONTOLOGY>kill ^Dictionary,^IndexDictionary,^NameDictionaryElement,^RefsDictionary MONTOLOGY>
MONTOLOGY>kill map MONTOLOGY>set map("in","ontology")="Vehicle",map("in","type")="TransmissionType" MONTOLOGY>set map("in","nameList","ru")=" ,",map("in","nameList","partUri")="akp" MONTOLOGY>write $$create^Dictionary() 1 MONTOLOGY>kill map MONTOLOGY>set map("in","ontology")="Vehicle",map("in","type")="TransmissionType" MONTOLOGY>set map("in","nameList","ru")="",map("in","nameList","partUri")="meh" MONTOLOGY>write $$create^Dictionary() 2 MONTOLOGY>
MONTOLOGY>zwrite ^Dictionary,^IndexDictionary,^NameDictionaryElement,^RefsDictionary ^Dictionary("MaxID")=2 ^Dictionary("Vehicle","TransmissionType",1,0,"UpdateTime")="62948,47015" ^Dictionary("Vehicle","TransmissionType",1,0,"uid")=888 ^Dictionary("Vehicle","TransmissionType",2,0,"UpdateTime")="62948,47022" ^Dictionary("Vehicle","TransmissionType",2,0,"uid")=888 ^IndexDictionary("ID",1,"ontology")="Vehicle" ^IndexDictionary("ID",1,"path")="^Dictionary(""Vehicle"",""TransmissionType"",1)" ^IndexDictionary("ID",1,"type")="TransmissionType" ^IndexDictionary("ID",2,"ontology")="Vehicle" ^IndexDictionary("ID",2,"path")="^Dictionary(""Vehicle"",""TransmissionType"",2)" ^IndexDictionary("ID",2,"type")="TransmissionType" ^IndexDictionary("Vehicle","TransmissionType","name","partUri","akp",1)=1 ^IndexDictionary("Vehicle","TransmissionType","name","partUri","meh",2)=1 ^IndexDictionary("Vehicle","TransmissionType","name","ru","",1)=1 ^IndexDictionary("Vehicle","TransmissionType","name","ru","",2)=1 ^IndexDictionary("Vehicle","TransmissionType","uid",888,1)=1 ^IndexDictionary("Vehicle","TransmissionType","uid",888,2)=1 ^NameDictionaryElement(1,"partUri",0)="akp" ^NameDictionaryElement(1,"partUri",0,"UpdateTime")="62948,47015" ^NameDictionaryElement(1,"ru",0)="" ^NameDictionaryElement(1,"ru",0,"UpdateTime")="62948,47015" ^NameDictionaryElement(2,"partUri",0)="meh" ^NameDictionaryElement(2,"partUri",0,"UpdateTime")="62948,47022" ^NameDictionaryElement(2,"ru",0)="" ^NameDictionaryElement(2,"ru",0,"UpdateTime")="62948,47022" ^RefsDictionary(1,"^|""MONTOLOGY""|IndexDictionary(""ID"",1,""ontology"")")=1 ^RefsDictionary(1,"^|""MONTOLOGY""|IndexDictionary(""ID"",1,""path"")")=1 ^RefsDictionary(1,"^|""MONTOLOGY""|IndexDictionary(""ID"",1,""type"")")=1 ^RefsDictionary(1,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""name"",""partUri"",""akp"",1)")=1 ^RefsDictionary(1,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""name"",""ru"","""",1)")=1 ^RefsDictionary(1,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""uid"",888,1)")=1 ^RefsDictionary(2,"^|""MONTOLOGY""|IndexDictionary(""ID"",2,""ontology"")")=1 ^RefsDictionary(2,"^|""MONTOLOGY""|IndexDictionary(""ID"",2,""path"")")=1 ^RefsDictionary(2,"^|""MONTOLOGY""|IndexDictionary(""ID"",2,""type"")")=1 ^RefsDictionary(2,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""name"",""partUri"",""meh"",2)")=1 ^RefsDictionary(2,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""name"",""ru"","""",2)")=1 ^RefsDictionary(2,"^|""MONTOLOGY""|IndexDictionary(""Vehicle"",""TransmissionType"",""uid"",888,2)")=1
Source: https://habr.com/ru/post/178563/
All Articles