Headingsの略。PubMedやMEDLINEなどNIHが管理する生命医学文書を表現する語彙をコントロールするために作られたシソーラスです。Vocabularyには4つのタイプの専門用語が含まれます。臨床報告)Supplementaryはひとまず置いておきます。Typesも容易に理解できるでしょう。DescriptorsとQualifiersの関係性については以下のファーストネスとセカンドネスの話に当てはめるとわかるかもしれません。治療なのか何かしら他の存在を参照しなければならない概念(セカンドネス)です。詳しくはNIHから教材が出ています。(MeSH)MeSHの階層構造Descriptorsはただの辞書ではなく木構造で構成されたシソーラスです(概念同士に上下関係がある)。Typeカテゴリーなどを含めて19のカテゴリーが存在します。各ブランチは何階層にもわたってサブブランチを有します。https://www.nlm.nih.gov/bsd/disted/meshtutorial/meshtreestructures/02.htmlいくつかの用語は複数のブランチに出現します。Termsが付与されます。これは検索の効率化に役立ちます。Termsが吸収することができます。上位概念を使った検索はその下位概念でタグづけされた文書にもヒットします。Inner」でタグづけされた文書にもヒットします(明示的にEarでタグづけされていなくても)。indexorがタグ付けを行うときのプロセスは以下にまとめられています。私はてっきり機械的にタグ付けされていると思っていましたし、専門家が行なっていることを知った後もAbstractしか読んでないと思っていました。disease(アルツハイマー病)」で検索した論文を1つ開いてみます。termsという部分を展開します。Termsを眺めるだけでなんとなくの内容が伝わります。Inhibitors(アセチルコリンエステラーゼ阻害剤)」を用いた実験をしたっぽいですね。実験対象は「Animals」で、より詳細には「Rats」や「Zebrafish」などを使ったようです。末尾にアスタリスクがついているのはメイントピックとみなされたものです。スラッシュはDescriptorsのQualifiersを特に指定してより狭い範囲のタグ付けを行う意図があります。同様にカンマ区切りで2つのDescriptorsを記述することもあります(下の例にはありません)。DescriptorsはそれぞれユニークなIDを持ちます。DiseaseはD000544というIDを持ちます。Diseases(神経系疾患)という2つの枝の構成要素でもあります。Numberが振られていることに注意です。Numberが振られていないDescriptorもあります。Femaleはどのブランチにも属していません。Termsの恩恵を受ける点は表記揺れや同義語のカバーです。Diseaseを始めとして様々な表記のバリエーションがあります。文献内で表記揺れがあり、単純に文字列として検索をかけた時取りこぼすことがあるものもPubMedの検索エンジンはMeSHベースでの検索を行うことで網羅します。diseaseで検索がかけられています。この機能が存在しなかった場合のことを実験してみました。disease」は111,054件。実に6.7倍も検索結果に差が出ました。以下の動画を見ればMeSHを使いこなすと文献調査が楽になることがわかるでしょう。全ての文献(特に新しい文献)にMeSHが付与されているとは限らない点には注意です。RDFファイルをダウンロードできます。RDFはN-Triples形式です。DataあるいはBioPortalからTutle形式のRDFファイルを入手できます。HeadingsXMLファイルを入手して簡単に中身を見ます。Actionリスト主な関心対象はdesc2019.xmlです。XMLの構造についてはこちらを参照。Elements特定の概念の下位概念を全て取得するMeSHは前述の通りシソーラスになっているので、特定の概念の下位概念を取得することができます。Groupsに何が含まれるか調べましょう。Filterがありますが、そこでは14種類使われています。https://www.ncbi.nlm.nih.gov/pubmedわかりやすく可視化してみました。MECEじゃないのが個人的にはすごく気持ち悪いです。Groupsを検索すると以下のような木構造になっています。上のPubMedのフィルターと一致していないのが気持ち悪い。https://meshb.nlm.nih.gov/record/ui?ui=D000293こちらを可視化したのがこれ。検索する人にとっての需要(PubMedの実装)とMeSHのdescriptorが一致していないことが混乱の原因でした。browserから手作業でとっても良いですが)。NumberはM01.060です。M01.060.116です。NumberをもつDescriptorのUIとNameを取得すれば良さそうです。</TreeNumberList>...こんな感じで。するとこんな感じでUIと名前、同義語がゲットできます。Newbornの下の年齢区分ではないものまで取れてしまいました。このようにMeSHの階層構造は想定と異なるものが含まれるので気をつけましょう。論文のメタデータとしてMeSHはどのように付与されているでしょうか。以前の紹介した方法で論文を取得します。XMLファイルを見ると各論文に以下のような形でMeSHが付与されています。MajorTopicYN="N">Adult</DescriptorName></MeshHeading>DescriptorClass余談ですが、Descriptorには以下のDescriptoClassが割り振られています。Descriptorなので意識しなくても問題ないですが、2~4は多少構造が異なるので注意しましょう。所感MeSHについて大まかに理解することができました。各種データの場所もわかったのでアプリケーションに活用できそうです。今回はXMLを使いましたが、RDFも習得できるよう頑張ります。-使いやすいRDFを作って,検索しよう。-外部のデータと繋げて使える検索をしよう。technology.。