[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[drf:1259] Re: Dspaceの内部リンク機能について



大西さま、みなさま

北大の紙谷です。

大西さんからご質問をいただいた「Dspaceの内部リンク機能」は
北大カスタマイズでした…。お騒がせして申し訳ありません。
先達・堀越さんより詳細を教えていただきましたので、メールを
転送します。(どうもありがとうございました!>堀越さん)

----- ここから -----

HUSCAPでの実装は下のとおりです。

1. 値セット用に dc.internal.relation と dc.internal.urlを新設
2. dc.internal.relation にコメントを、
  dc.internal.url に http://hdl.handle.net/〜 のURLをセット
3.  display-item.jsp で、dc.internal.relation と dc.internal.url に
  値が入っていたら、「HUSCAP内関連資料」の表示を出す。
  もし、セットされた http://hdl.handle.net/〜 が withdraw されてたら、
  <del></del>でURLとタイトルを囲む。

--- display-item.jsp ---
    <dspace:item item="<%= item %>" collections="<%= collections %>"
style="<%= displayStyle %>" />

+<%
+    if (ConfigurationManager.getProperty("handle.prefix") != null)
+    {
+       DCValue[] relationArray = item.getDC("internal", "relation",
Item.ANY);
+       DCValue[] relationuriArray = item.getDC("internal", "uri",
Item.ANY);
+       String handleuriprefix = "^http://hdl\\.handle\\.net/"; +
ConfigurationManager.getProperty("handle.prefix") + "/.*";
+       Context c = new Context();
+
+       String[] rh_tempArray = new String[relationuriArray.length];
+       int j = 0;
+
+       for (int i = 0; i < relationuriArray.length; i++)
+       {
+	  String ru_temp = relationuriArray[i].value;
+          if (ru_temp.matches(handleuriprefix));
+          {
+             rh_tempArray[j] =
ru_temp.replaceFirst("http://hdl\\.handle\\.net/","";);
+	     j++;
+	  }
+       }
+
+       if (rh_tempArray.length > 0)
+       {
+%>
+        <br>
+        <table class=miscTable align="center">
+        <tr>
+        <td class="pageContents" width="100%" style="font-size:
10pt"><b><fmt:message key="jsp.display-item.related_in_HUSCAP"/></b>
+        <table cleepadding="6" align="center">
+<%
+	  for (int i = 0; i < relationArray.length; i++)
+	  {
+
+%>
+	  <tr><td class="submitFormHelp" style="text-align: left;"
colspan="2"><%= relationArray[i].value %></td></tr>
+<%
+	  }
+
+	  for (int i = 0; i < rh_tempArray.length; i++)
+	  {
+	     Item item_r = null;
+	     DSpaceObject dso_r = HandleManager.resolveToObject(c,
rh_tempArray[i]);
+             if ((dso_r != null)&&(dso_r.getType() == Constants.ITEM))
+             {
+		item_r = (Item) dso_r;
+		DCValue[] item_r_title = item_r.getDC("title", null, Item.ANY);
+		if (item_r_title.length > 0)
+		{
+%>
+		    <tr>
+ 		   <td class="submitFormHelp" width="2em">・</td>
+		    <td class="submitFormHelp" style="text-align: left;">
+		    <%= (item_r.isWithdrawn() ? "<del>" : "") %>
+		    <a href="<%= request.getContextPath() %>/handle/<%=
rh_tempArray[i] %>">
+		      <%=  item_r_title[0].value %>
+		    </a>
+ 		   <%= (item_r.isWithdrawn() ? "</del> <em><fmt:message
key=\"jsp.display-item.related_withdran\"/></em>" : "") %>
+ 		   </td>
+ 		   </tr>
+<%
+                }
+	     }
+          }
+%>
   </table>
   </td>
   </tr>
   </table>
--- display-item.jsp end ---


4.* jsptag/ItemTag.java の renderFull()  (詳細レコード表示)で
  elementが「internal」のものは非表示にする。

--- ItemTag.java ---
    private void renderFull() throws IOException, java.sql.SQLException
    {
 <省略>
        for (int i = 0; i < values.length; i++)
        {
            boolean hidden = false;

            // Mask description.provenance
            if (values[i].element.equals("description")
                    && ((values[i].qualifier != null) && values[i].qualifier
                            .equals("provenance")))
            {
                hidden = true;
            }
+	    if (values[i].schema.equals("internal"))
+            {
+                hidden = true;
+            }
+            if (values[i].element.equals("internal"))
+            {
+                hidden = true;
+            }
--- ItemTag.java end ---
#if (values[i].schema.equals("internal"))〜は
#内部処理用メタデータスキーマ internal を非表示にするためのもの。

version 1.3 時代につけたので、dc.internal.〜 にしてますが、
今やるなら、内部用スキーマを作って(HUSCAPは内部用スキーマとして
「internal」を作ってます)、そっちにセットするかな。

----- 以下、追伸 -----

「HUSCAP内関連資料(英語版:Related Items in HUSCAP)」の表示を
出すために、Messages.properties と Messages_ja.properties に
  jsp.display-item.related_in_HUSCAP
を追加してます。

----- ここまで -----

ONISHI Masato さん wrote:
> 北海道大学 紙谷さま
> 
> お世話になっております。
> 京都大学附属図書館の大西と申します。
> 
> 先日,紙谷様からのポストでメタデータの相互リンクを実現するため
> に「Dspaceの内部リンク機能」を使用されているということでしたが
> この機能は北大カスタマイズではなく,デフォルトのDspaceでも使用
> できるものなのでしょうか?
> 
> もし「Dspaceの内部リンク機能」がデフォルトで使用できる機能でし
> たら,設定方法などご教示いただけますと幸いに存じます。
> 
>>> その場合は、既に公開されているものはそのままに、改稿バージョンを
>>> 新たに公開し、メタデータを相互リンクさせています。
>>> (Dspaceの内部リンク機能を使用しています。)
>>> 例)
>>> 初稿(紀要掲載):http://hdl.handle.net/2115/16880
>>> 改稿      :http://hdl.handle.net/2115/33953
> 
> よろしくお願いいたします。
> 
> 
> 
> 2009/09/08 9:58, KAMIYA Satsuki wrote:
>> 高橋さま、みなさま
>>
>> 北大・紙谷@京都お留守番組 です。
>> ばたばたしていたので、なかなか反応できなくてすみません。
>>
>> 私も過去に話題に出たような気がしたのですが、過去ログに
>> 見つけられなかったのでHUSCAPの事例を紹介します。
>>
>>> 『誤字脱字等の修正をしたい場合、どのようにすればいいのか。例
>>> えば、著者が自分の原稿を修正したい場合、そうした修正は著者に
>>> 対して、システムとしてリポジトリはどのように許しているのか。
>>> 日付をつけてバージョンを更新するシステムがありますか?』
>> HUSCAPの場合、今のところこの手の質問は紀要論文に対してでした。
>> そこで、原則としては正誤表方式で対応しています。具体的には、
>> 紀要に載ったものは出版元の大学としてそのまま保存すべきと考えている、
>> との前提をお伝えした上で、正誤表の発行について出版元の担当の先生と
>> 相談していただけるよう、お願いしています。
>> (どのみち、紙の方も訂正が必要ということになりますので。)
>>
>> 極稀なケースですが、大幅改稿のご希望が寄せられることもあります。
>> その場合は、既に公開されているものはそのままに、改稿バージョンを
>> 新たに公開し、メタデータを相互リンクさせています。
>> (Dspaceの内部リンク機能を使用しています。)
>> 例)
>> 初稿(紀要掲載):http://hdl.handle.net/2115/16880
>> 改稿      :http://hdl.handle.net/2115/33953
>>
>> (原則として、HUSCAPは「どこかで公開されたもの」しか収録しない
>>  ルールなのですが、これは、先にHUSCAPで公開することで投稿・出版の
>>  妨げになる(新規性がなくなる)のを防ぐためのものなので、
>>  著者の先生にその旨を確認した上で、上記の措置を採っています。)
>>
>>
>> なお、資料の改変関係のことは、
>> 「北海道大学学術成果コレクション資料提供・公開細則」
>> http://eprints.lib.hokudai.ac.jp/siryo/teikyo.pdf
>> で、
>>> 公開後に提供者自身が資料の本文等の主たる内容を改変し置き
>>> 換えること、ないし資料本体を削除することは、原則として
>>> 認めない。内容の改変が必要な場合は、当該資料の別版として
>>> 新規に提供を受ける。資料本体の削除が必要な場合は、提供者の
>>> 申請に基づいて行う。
>> と定めています。
>>
>> ご参考まで。
-- 
紙谷五月
北海道大学附属図書館学術システム課
TEL: 011-706-4025
FAX: 011-706-4099
MAIL: satsuki @ xxxxxxxxxxxxxxxxx
HUSCAP: http://eprints.lib.hokudai.ac.jp

────────────────────────────────
     10月19日〜23日はオープンアクセス週間です。
 DRF デジタルリポジトリ連合は学術研究の自由な共有を応援します!
    www.openaccessweek.org / www.openaccessweek.jp
────────────────────────────────
DRF mailing list
DRF @ xxxxxxxxxxxxxxxx
https://ml.hines.hokudai.ac.jp/mailman/listinfo/drf