Registry: GrSciCollコレクションのルックアップサービスを実装する

作成日 2020年06月17日  ·  11コメント  ·  ソース: gbif/registry

このルックアップサービスは、オカレンスデータをコレクションにリンクすることを目的としています。 ルックアップにコレクションデータを使用しますが、この動作はデータセットマシンタグで上書きされる可能性があります。

このサービスは、次のパラメーターを受け取る可能性があります。

  • 機関コード
  • 機関ID
  • コレクションコード
  • コレクションID
  • データセットキー
  • 所有者機関コード??

データセットにマシンタグがある場合は、それらを使用してルックアップを停止します。

サービスは、一致がどれだけ良いか(正確、あいまいなど)を返す必要があります。 完全一致は、コードが一致し、IDが一致するか、矛盾しない場合にのみ発生します(例:片側にのみ存在する)。

他に何か? 考慮に入れるのに役立つ他のパラメータはありますか?

question GRSciColl

最も参考になるコメント

少し前に持っていたcsv抽出に基づいて一致させようとしました。
csvは個別のinstitutionId, institutionCode, datasetKey, publisherKeyであり、それぞれに発生回数があります。

2500回以上発生するものをすべて取得し、それらをサービスと照合しようとしました。

105,871,241 occurrences had a single match
 24,553,278 with an exact singular match
 27,113,941 occurrences had multiple matches
 34,998,066 occurrences had no match

2,374 combinations was tested against the service (multiple can be the same since it included dataset and publisher)

それは悪いスタートではありません。 しかし、私は試合の質を評価していません。

全てのコメント11件

コレクションルックアップサービスの最初のバージョン(まだマシンタグを使用していません)をDEVに入れて、これが期待どおりかどうかを確認しました。

機関の一致のリストとコレクションの一致の別のリストを返します。 コードは一意ではないため、リストです。複数のオプションがあり、他のフィールドで区別できない場合があります。

試合ごとに次のように表示されます。

  • タイプ: exactまたはfuzzyにすることができます。 exactは、コードと識別子の両方が一致する場合のみです。 それ以外の場合はfuzzyです。
  • 備考:試合がどのように行われたかを理解するための観察です。 可能な値は次のとおりです。

    • CODE_MATCH :ケースを無視しません

    • IDENTIFIER_MATCH :ケースを無視しません

    • ALTERNATIVE_CODE_MATCH :ケースを無視しません

    • NAME_MATCH :大文字と小文字を区別せず、アクセントと空白を削除しますが、プレフィックスまたはサフィックスの一致は行いません

    • PROBABLY_ON_LOAN :所有者の機関と機関が同じでない場合に発生します

    • INST_COLL_MISMATCH :コレクションの機関が一致する機関に存在しない場合に発生します。

機関の一致がある場合、コレクションは、一致する機関のいずれかに属している場合にのみあいまいに一致します。 完全に一致するコレクションが常に返されます。

これらの例をチェックして、サービスがどのように機能するかを確認できます。

@MortenHofft @ timrobertson100何かが足りませんか?

今のところパイプラインですでに使用されている形式に従って、マシンタグチェックを追加しました。

  • 名前空間: processing.gbif.org
  • 名前:

    • institutionCode :機関コードをGrSciColl機関にマッピングします

    • collectionCode :コレクションコードをGrSciCollコレクションにマップします

    • collectionToInstitutionCode :コレクションコードをGrSciColl機関にマップします。 おそらく名前をcollectionCodeToInstitution (TBD)に変更します。

    • institutionToCollectionCode :機関コードをGrSciCollコレクションにマップします。 おそらく名前をinstitutionCodeToCollection (TBD)に変更します。

タグの値は、パターン{key}:{code}に従う必要があります。

見た目は良さそうです。実際のデータに適用されているのを見てとても興味があります。

冗長かどうか
種の一致のように「冗長」オプションが必要ですか?

スタッフ以外の誰かがこれを使用していると想像すると、 match or noneオプションがあると便利かもしれません。 記事のコレクションコードからリンクを作成するためにそれを使用してPlaziと言います。

// plain lookup - not verbose - will at most return one institution and one collection.
{
  institutionMatch: {
    matchType: 'NONE'
  },
  {
    collectionMatch: {
      matchType: 'FUZZY',
      reasons: ['SAME_NAME', 'SAME_CODE', 'SAME_COUNTRY'],
      entity: {
        ...
      }
    }
  }
}

// verbose option
// could be like the one running in dev
{
  "institutionMatches": [],
  "collectionMatches": [
    ...
  ]
}

ネーミングについて
種一致APIは$ type matchTypeを使用し、クラスターはremarks reasonsを使用します。

実際のデータ
実際のデータで実行する前に、機関コード/ ID colelctionCode / IDの上位500の異なる組み合わせをチェックし、それらのいくつかを手動で評価するだけの価値があるのではないかと思います。 私たちは何かを学ぶかもしれません(IDとコードを反転させる必要があると言う)

何がマッチを構成しますか?
これが試合の引き金になると思いますか?

  • 正確ですか?
  • あいまいですが、結果は1つだけです
  • 正確な機関ですが、ファジーコレクションは1つだけですか?

曖昧さ回避者としての国
検索パラメータとして国を追加するのは理にかなっていますか? オカレンスのインデックスを作成するときに、たとえば2つのコレクションの一致がある場合に、明確にするために発行元の国を追加できますか? それとも、消費者が結果を繰り返すことでそれがうまくいくのでしょうか?

少し前に持っていたcsv抽出に基づいて一致させようとしました。
csvは個別のinstitutionId, institutionCode, datasetKey, publisherKeyであり、それぞれに発生回数があります。

2500回以上発生するものをすべて取得し、それらをサービスと照合しようとしました。

105,871,241 occurrences had a single match
 24,553,278 with an exact singular match
 27,113,941 occurrences had multiple matches
 34,998,066 occurrences had no match

2,374 combinations was tested against the service (multiple can be the same since it included dataset and publisher)

それは悪いスタートではありません。 しかし、私は試合の質を評価していません。

_何が一致を構成しますか?_
これが試合の引き金になると思いますか?

  • 正確ですか?
  • あいまいですが、結果は1つだけです
  • 正確な機関ですが、ファジーコレクションは1つだけですか?

これは、1つの一致のみを表示する非冗長バージョンを意味しますよね?

次のようになります。

  • 機関向け

    • 完全に一致するのは1つだけ

    • あいまい一致は1つだけ

  • コレクションの場合

    • 完全に一致するのは1つだけ

    • 機関の一致があった場合、機関が一致した機関と同じであるあいまい一致は1つだけです。

    • 機関の一致がなかった場合、あいまい一致は1つだけです

全体的な試合状況も提供する必要があると思いますか?

_何が一致を構成しますか?_
これが試合の引き金になると思いますか?

  • 正確ですか?
  • あいまいですが、結果は1つだけです
  • 正確な機関ですが、ファジーコレクションは1つだけですか?

これは、1つの一致のみを表示する非冗長バージョンを意味しますよね?

パイプラインでGrSciCollIDをオカレンスに割り当てるために使用することを意味しました。 このサービスには決定とすべてのロジックが含まれていると想像していました。 他のルックアップサービスではどのように機能しますか?


先日、一致したすべてのIDをオカレンスインデックスに追加することを検討したとおっしゃいました。
私は2つの可能なバージョンがあると思います:

  • 可能なすべての候補を追加します。 これにより、UIまたはユーザーに効果的に負担がかかります。 そして、同じ標本が複数のコレクションの下に表示されます。
  • 信頼できる一致が1つある場合にのみ、リンクを追加してください。 サービスはステートメントの責任を負います。 一致する数が少なくなります。

私はバージョン2の方が好きです。1つの信頼できる一致がある場合にのみ、GrSciCollIDをオカレンスに追加します。 一致する候補の配列ではありません。 さらに一致が必要な場合は、パブリッシャーに対応して、GrSciCollまたはオカレンスのいずれかに適切な識別子を追加します。 または、場合に応じてデータセットにマシンタグを追加します。

すべての候補者にインデックスを付けることが有用である場合、それについて別のフィールドを検討できますか?

サービスがフラグを返す必要があります。 ファジーコレクションコードの一致。 コレクションコードが一致しません。 種の一致サービスに似ています。

私はこれらの旗について考えることができます:

  • AMBIGUOUS_INSTITUTION :複数の機関が見つかり、関係を断ち切ることができませんでした
  • AMBIGUOUS_COLLECTION :上記と同じですが、コレクション用です
  • FUZZY_INSTITUTION_MATCH :1つの機関が一致しましたがあいまいです
  • FUZZY_COLLECTION_MATCH :上記と同じですが、コレクション用です
  • INSTITUTION_NAME_USEDinstitutionCodeフィールドには、コードの代わりに教育機関名が含まれています
  • OWNER_INSTITUTION_NAME_USED :上記と同じですが、所有機関の場合
  • COLLECTION_NAME_USED :上記と同じですが、コレクション用です
  • NO_COLLECTION_CODE_MATCH :提供されたコードが一致しませんでした
  • NO_INSTITUTION_CODE_MATCH :上記と同じ
  • NO_COLLECTION_ID_MATCH :提供されたIDが一致しませんでした
  • NO_INSTITUTION_ID_MATCH :上記と同じ
  • INSTITUTION_COLLECTION_MISMATCH :見つかったコレクションは一致した機関に属していません

編集: INSTITUTION_NAME_USEDのものは削除して、これらの場合にFUZZY_INSTITUTION_MATCHを使用することができます。 出版社にとって何がもっと役立つかわかりません

私はそれが好きです-多くの出版社がそれらの旗を高く評価し、それに基づいて行動しているというのが私の印象です。 これにより、データを変更してマッチングを改善するための洞察が得られます。

これで、サービスは次のような応答を返します。

{
  "institutionMatch": {
    ...
  },
  "collectionMatch": {
    ...
  },
  alternativeMatches { 
    institutionMatches: []
    collectionMatches: []
  }
}

代替一致は、 verboseパラメーターがtrueに設定されている場合にのみ表示されます。 あいまい一致は、パフォーマンス上の理由から20件の結果に制限されています。

また、関係を断ち切るために使用されるCountryパラメーターが追加されました: http ://api.gbif-dev.org/v1/grscicoll/lookup?institutionCode = BR&country = BE&verbose = true

これらの条件のいずれかが満たされた場合、一致が発生します。

  • 一致するマシンタグは1つだけです
  • 完全に一致するものは1つだけです
  • 完全に一致するものは複数ありますが、受け取った国のパラメータに一致するのは1つだけです
  • あいまい一致は1つだけです
  • 複数のあいまい一致がありますが、少なくともコードまたはIDともう1つのフィールド(名前または代替コード)に一致するのは1つだけです。
  • 複数のあいまい一致がありますが、受け取った国パラメータに一致するのは1つだけです

さらに、所有者の機関がその機関と異なる機関は、一致とは見なされません。 また、機関が機関が承認した一致と一致しないコレクションも一致とは見なされません。

フラグは追加していませんが、代わりにステータスフィールドを追加しました。

  • ACCEPTED :承認された一致
  • AMBIGUOUS :複数の結果が見つかり、タイを破ることができませんでした
  • AMBIGUOUS_MACHINE_TAGS :上記と同じですが、マシンタグが一致します
  • AMBIGUOUS_OWNER :結果はありますが、機関の所有者と一致しないため、ローンのコレクションにリンクしないようにスキップします
  • AMBIGUOUS_INSTITUTION_MISMATCH :あいまい一致がありますが、一致した機関に属していません
  • DOUBTFUL :見つかった一致があいまいです

残りのフラグは、試合のreasonsフィールドから推測できます。 パイプラインのこのフィールドから問題を設定できます。

1000を超えるレコードに存在するこれらのフィールドのPRODの組み合わせのデータから抽出しました。

  • v_institutionid
  • v_institutioncode
  • v_ownerinstitutioncode
  • v_collectioncode
  • v_collectionid
  • datasetkey

さらに、データセットの発行組織から国を取得しました。

次に、それらをUATのルックアップサービスに渡しました。 結果はこのスプレッドシートにあります

このページは役に立ちましたか?
0 / 5 - 0 評価