Bilimsel Makale Yazımında BibTeXM'in DocBook XML'deki Kullanımı

ArticleCategory: [Artikel Kategorie]

Applications

AuthorImage:[Bild des Autors]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Egon Willighagen

en to tr Tülin Kaman 

AboutTheAuthor:[Über den Autor]

Nıjmegen Üniversitesinde, kimya dalında aldığı master derecesinden sonra, aynı Üniversitede doktorasını moleküllerin görüntülenmesi konusunda yapmaktadır. Basketbol oynuyor ve Java ile uygulamalar yazıyor.

Abstract:[Zusammenfassung]

Bu makalede, BibTex gibi bir referans sistemini DocBook XML ile nasıl kullanabileceğinizi göstereceğim. Bunun için işlemleri kolaylaştıran, JReferences dağıtım paketleri olan bazı araçlar geliştirdim.

ArticleIllustration:[Titelbild des Artikels]

[Illustration]

ArticleBody:[Der eigentliche Artikel]

Giriş

Latex kullanıcıları BibTex'in nasıl yararlı olduğunu bilirler. Her şekilde doğru olacak gerçek çıktıya çok fazla önemsemeden bilimsel yapıtlara refererans ekleyen çok uygun bir araç. Örneğin; doğru ayarları vererek, ancak hiç elle ayar yapmadan. Aynen Latex'in kendisi gibi. Ayrıca, bilimsel yapıtlarda üstsimge sayılarla referansları numaralandırmak yaygındır, bunun gibi 1. Ek olarak, bu sayılar ardışık bir düzende olmalıdır. BibTex buna da dikkat eder.

Açık XML tabanlı sözdimi, sanaldoku yöreleri (örnek: the CDK sanaldoku yöresi, http://cdk.sf.net/, tamamen DocBook'da yazılmıştır ) ve kişisel sayfaların yapımı için büyük desteğinden ötürü DocBook her geçen gün benim favori belge yazım aracım olma yolunda ilerliyor. Benim için diğer adım, bilimsel makalelerin yazımında DocBook kullanımı idi. Bu nedenle DocBook için Bibtex'e gereksinim vardı. Bundan ötürü, JReferences 'ı yazdım.

JReferences Bibtex'in yaptığından biraz daha fazlasını yapar. BibTex gibi, düz metin veritabanındaki referansları otomatik numaralandıran araçları vardır, hatta daha fazlası vardır. Daha fazla biçimlere (hem girdi hem de çıktı) destek verir, PHP önplanı ile erişilebilen MySQL arkaplana sahiptir. Aynı zamanda referans veritabanı olmayı dener, EndNote gibi. Halbuki, açık kaynak projesi (GPL lisans) iken benim dışımda birçok geliştiriciyi hala etkileyememişti. Yararsız olmamasına rağmen, bu makalede ben size başka türlü göstereceğim.

Bu makale yayımlandığında, JReferences 0.7.2 versiyonuna kadar geliştirilmişti. Bu nedenle bu makale bu versiyonu içermektedir.

DocBook Makalesi

JReferences paketinde bulunan örneği ele alalım.

<?xml version="1.0"?>
<!DOCTYPE article PUBLIC 
"-//JReferences//DTD DocBook JReferences Module //EN"
                         "../dtd/jreferences.dtd" []>
<article>

  <jref:mode>Number</jref:mode>

  <articleinfo>
    <title>Test Article</title>
    <author><firstname>Egon</firstname>
	<surname>Willighagen</surname></author>
    <date> 3 May 2000</date>
  </articleinfo>

  <section>
    <title>Some section</title>
    <para>This is a text with a reference 
   <jref:cite id="Steinbeck99"/>.</para>
    <para>And now for some more serious tests, we 
    add a second reference <jref:cite id="Bachrach99"/>. 
    And again the first reference <jref:cite id="Steinbeck99"/>.
    </para>
  </section>

  <jref:reflist/>

</article>

Bu örneği satır satır açıklayacağım. İlk satır, XML olan bu dosyanın sözdizimini gösteren, genel(zorunlu olmayan) satırınız. İkinci satırdan dördüncü satıra olan kısım, kullanılan XML dilinin DocBook olduğunu ifade eder, gene de normal DTD yerine JReferences birimi kullanılır. Normal DocBook XML, JReferences'ı ile ilgili bilmemektedir,ve DTD kullanımı geçersiz belgeler verecektir. Ancak, JReferences birimi Jreferences kadar DocBook'da bilmektedir( DocBook içyüzünü bilenler için: henüz SVG ya da MathML ile ilgili değil). Bundan ötürü, bu birimi kullanma tekrar belgenizi onaylama imkanı verir. Yukarıdaki örnek geçerli bir DocBook belgesidir.

Beşinci satır, makale öğesinin başlangıç biçim imini içerir. Şimdiye kadar, çok iyi. Yedinci satır, eğlencenin başladığı yer: ilk jref öğesi. <jref:mode> öğesi arttırarak kullanılmak zorunda olan referans numarasının hangi tip JReferences olduğunu söylemek için kullanılır. Giriş bölümünde, üstsimge sayılarının normalde kullanılmakta olduğunu zaten yazmıştım. Buna rağmen, birçok şeçenek vardır. JReferences [1], 1 ve [Steinbeck99] destekler. Sonuncusu, referansta kullanılan kodu verir. Örnek ilk seçeneği kullanır.

Sonraki birkaç satır bazı temel DocBook içeriği içerir, ve sonraki gerçekten ilginç satır onyedinci satırdır. Bu satırda ilk referans çağırılır. Latex kullanıcıları bunun için \cite{} kullanır, JReferences biçim imi <jref:cite id="SomeID"/> dir. ID, veritabanında bir referansa tekabül eder, bu referansla ilgili daha sonra açıklama yapılacaktır. Bölümün bir sonraki parağrafı biri yine ilk referans olan iki referans içerir.

Gerçek referansları içermek için <jref:reflist/> yirmidördüncü satırda kullanılır. Bu JReferences komutu, sira ile çağrılmış referansların listesini biçimlendiren DocBook'a dönüşecektir.

BibTeXML Veritabanı

JReferences sistemi bir veritabınına ihtiyaç duyar, Latex/BibTex deki *.bib dosyaları gibi. JReferences'in BibTeXML arkaplanı için desteği vardır, aynı zamanda diğerleri için de (MySQL gibi). BibTeXML , Vidar Gundersen ve Zeger Hendrikse tarafından geliştirildi. JReferences dağıtımındaki (0.7.2) örnek henüz BibTeXML kullanmamıştır, fakat örnek makale şu şekilde BibTeXML dosyasına sahiptir:

<?xml version="1.0" encoding="UTF-8"?>
<bibtex:file xmlns:bibtex="http://www.bitjungle.com/~bibtex/">

<bibtex:entry bibtex:id="Steinbeck99">
  <bibtex:article>
    <bibtex:title>JChemPaint - Using 
        the Collaborative Forces of the Internet to
        Develop a Free Editor for 2D Chemical 
        Structures</bibtex:title>
    <bibtex:author>Steinbeck, C. and
                      Krause, S. and 
                      Willighagen, E.</bibtex:author>
    <bibtex:year>2000</bibtex:year>
    <bibtex:volume>5</bibtex:volume>
    <bibtex:pages>93-98</bibtex:pages>
  </bibtex:article>
</bibtex:entry>

<bibtex:entry bibtex:id="Bachrach99">
  <bibtex:article>
    <bibtex:title>End-User Customized Chemistry Journal 
    Articles</bibtex:title>
    <bibtex:author>Bachrach, S. and 
                      Krassavine, A. and 
                      Burleigh, D.</bibtex:author>
    <bibtex:journal>J.Chem.Inf.Comput.Sci.</bibtex:journal>
    <bibtex:year>1999</bibtex:year>
    <bibtex:volume>39</bibtex:volume>
    <bibtex:pages>81-85</bibtex:pages>
  </bibtex:article>
</bibtex:entry>

</bibtex:file>

İkinci satır, <bibtex:file> root öğesi için başlangıç biçim imi içerir. Bu gibi bir dosya, bir veya daha fazla <bibtex:entry> öğeleri içerir. Ek olarak; her kayıt bir BibTeXML referans tipi: article, book, inbook, incollection, unpublished, misc ve diğerleri 'nden oluşur. Her bunun gibi referans bu tip için özel öğeler içerir, fakat bunların sayısı ortakdır, <bibtex:title> ve <bibtex:year> gibi. JReferences dağıtım BibTeXML DTD içerir, böylelikle herhangi DTD aware XML editörü kolaylıkla BibTeXML belgesi düzenler. Ayrıca; JReferences, otomatik olarak $HOME/.kde/share/apps/katexmlplugin e yüklenen, KDE 3.x deki Kate için Meta DTD'leri kapsar. (Bakınız: DocBook XML Belgelerine Düzenleme)

[kate]
Editing BibTeXML files with Kate, its XML plugin and JReferences' BibTeXML Meta DTD.

Kaynakça Yaratma

Yukarıdaki iki örnek üzerinde düşünelim. DocBook belgesi article.docbookxml olarak, ve referans veritabanı references.bibtexml olarak kaydedilir. JReferences henüz bibtex programı gibi bir araç kapsamamaktadır, fakat benzer olarak birkaç komut içinde yapılabilmektedir. Aşağıdaki komutlar JReferences'i Unix-benzeri sisteme, Linux gibi, yüklediğinizi varsaymaktadır (aşağıya bakınız):

jref-clear --filedb
jref-set --filedb --bibtexml references.bibtexml
jref-number --filedb article.docbookxml > article-numbered.docbookxml

article-numbered.docbookxml olarak adlandırılan sonuç dosyası hiçbir <jref:*> öğesi olmayan geçerli DocBook XML 4.1.2 belgesidir ve DocBook XML belgesine dönüştürmek için kullanılan herhangi bir araç tarafından işlenmiştir, örneğin PDF. (DocBook ile PDF elgelerinin yapımı ile ilgili öreneğe bakınız DocBook).

[result]
Numaralandırılmış referanslar ve kaynakça içeren PDF sonucu

Bilmeniz gereken bu kadar.

Tür Biçimlendirme

Bir ilginç husus daha var. BibTex türleri destekler, çünkü birçok derginin, kaynakçanın nasıl biçimlendirmesi üzerine özel gereksinimleri vardır. Şu an için JReferences sadece iki tür içermektedir. İlk olanı gerçekten bir tür olmayan bazı varsayılan DocBook XML biçimi. Ancak, Amerikan Kimyasal Topluluğu (ACS) tarafından istenen ve aynı zamanda JReferences'da mevcut olan bir tür daha vardır.

<jref:reflist> öğesinin varsayılan tür yerine kullandığınız türü kurmak için @style özniteliği vardır. ACS türünü kullanmak için yirmiüçüncü satırda şu değişikliğin yer almasına gereksinim vardır.

<jref:reflist style="ACS"/>

JReferences Yükleme

JReferences Java 1.3 (ya da daha yüksek) donanım, Xerces, Log4J ve DocBook XML DTD 4.1.2'ye gereksinim duyar. Bazı araçlar python ( BibTex'den BibTeXML dönüşüm için) ve Perl (EndNote'un BibTex çıktısını temizlemek için) gibi ek araçlara ihityaç duyarlar.

Eğer bunlar yüklendiyse, JReferences şunları yaparak yüklenebilmektedir:

./configure --prefix=$HOME
make
make install

Eğer bazı araçlar bulunamıyorsa, şu seçenekleri deneyin: --with-xercesdir, --with-log4javadir ve --with-sgmldir. Bu seçeneklerle ilgili daha fazla bilgi için: "./configure--help" yazınız.

Proje

JReferences şu an yaklaşık iki yaşında, ve birçok defa indirilmiş olmasına rağmen, fazla geribildirim alamadım. Bunlar, benim kişisel deneyimlerim dışında. Son bir kaç aydır, JReferences gerçek bilimsel makale yazımı için başarıyla kulanılmaktadır. Ne ölçüde olursa olsun, herhangi açık kaynak projesi gibi, herhangi yorumlara, raporlara, fikirlere ve başarı hikayelerine JReferences Proje Sanaldoku Yöresi'nde yer verilir.

Referanslar