きっかけ
OpenURL機能のIF設計が必要になったときのメモです。
OpenURL?
書誌情報などのメタデータを URL としてどう記述するかを決めたもの
書誌情報などのメタデータ部分を指定する規格なので、
OpenURL機能を提供しているサービスであれば、
OpenURLのベースURLを差し替えるだけで、いろいろなサービスへ検索できます。
参考
基本仕様
https://www.niso.org/publications/z3988-2004-r2010
実装ガイドライン(こっちしか読んでない)
http://alcme.oclc.org/openurl/docs/implementation_guidelines/
まとめ
設計したときの要点です。
-
ベースURLを決める
-
表示するエンティティの種別を決め、パラメータを決定する
http://alcme.oclc.org/openurl/servlet/OAIHandler/extension?verb=GetMetadata&metadataPrefix=mtx&identifier=info:ofi/fmt:kev:mtx:ctx
の「rft_」がついているものを選びます。
あと、OpenURL1.0ならば、url_verをつけます。 -
メタデータフォーマットのパラメータを使う
何のメタデータを扱うかで、パラメータのフォーマットを変えます。
下記URLが扱うデータごとのパラメータのフォーマットです。下記URLのどれか1つを選びます。
そして、それぞれの項目にrft.を付加すればOKです。
http://alcme.oclc.org/openurl/servlet/OAIHandler/extension?verb=GetMetadata&metadataPrefix=mtx&identifier=info:ofi/fmt:kev:mtx:journal
http://alcme.oclc.org/openurl/servlet/OAIHandler/extension?verb=GetMetadata&metadataPrefix=mtx&identifier=info:ofi/fmt:kev:mtx:dissertation
http://alcme.oclc.org/openurl/servlet/OAIHandler/extension?verb=GetMetadata&metadataPrefix=mtx&identifier=info:ofi/fmt:kev:mtx:book
http://alcme.oclc.org/openurl/servlet/OAIHandler/extension?verb=GetMetadata&metadataPrefix=mtx&identifier=info:ofi/fmt:kev:mtx:dc
詳細(まとめの補足)
-
ベースURLを決める
特に無いです。 -
表示するエンティティの種別を決め、パラメータを決定する
取り扱うエンティティ(カッコ内は接頭辞)には、下記の5つあります。
所蔵・図書・雑誌を検索するOpenURLを、提供元が実装するならば、取り扱うエンティティは「Referent」で十分そうです。- Referent(rft):必須 指示対象 ≒見たい実態
- ReferringEntity(rfe):指示対象を参照するエンティティ、ガイドラインだと引用文献を例えています。
- Requester(req):利用者、正直、文献検索のシーンで利用用途が浮かびません。
- ServiceType(svc):サービスのタイプ、利用用途?、利用シーンがなかったので、あまり、読んでません。
- Resolver(res):リンクリゾルバを指定できるそうですが、同じリゾルバのベースURLを置き換えるためでもないので、用途がわかりません。
- Referrer:メタデータの発行元や、所蔵館を指定します。
-
指定したメタデータフォーマットのパラメータを使う
メタデータにどのようなデータが格納されているかは、メタデータフォーマットに従います。
かつ、エンティティは、単一のメタデータフォーマットのみ指定します。
例えば、info:ofi/fmt:kev:mtx:journal(雑誌フォーマット)と、info:ofi/fmt:kev:mtx:dissertation(博士論文フォーマット)のパラメータが混在することは禁止です。
なんとか、、
手元で、OpenURL機能のIFのドラフト案を作成しました。
RFCとかと違って、業界に特化した標準化規格は、用語?慣習?がわかっていないと、非常に理解しにくい。。。