<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>UML ile Modellenen Coğrafi Verilerin XSLT Yardımıyla OWL'a Dönüştürülmesi</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sermet Önel</string-name>
          <email>sermet.onel@yasar.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Murat Komesli</string-name>
          <email>murat.komesli@yasar.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mehmet Cudi Okur</string-name>
          <email>mehmet.okur@yasar.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Anahtar Kelimeler: Coğrafi Veri</institution>
          ,
          <addr-line>UML, XML, XSLT, OWL</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Yaşar Universitesi Yazılım Mühendisliği Bölümü Üniversite Cad.</institution>
          <addr-line>35, 35100, Bornova, İzmir</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <fpage>738</fpage>
      <lpage>749</lpage>
      <abstract>
        <p>Özet. Coğrafi Bilgi Sistemleri (CBS), disiplinler arası sorunları çözme amaçlı geliştirilmiş, coğrafi ve sözel veri tabanına sahip, güçlü donanıma ihtiyaç duyan bir yazılım teknolojisidir. CBS, günümüz ihtiyaçları doğrultusunda Anlamsal Web'e doğru yönelmektedir. Anlamsal Web'in gerçekleştirilmesini savunduğu, bilgi sistemler arası veri paylaşımı ve birlikte çalışılabilirlik, mevcut UML (Unified Modelling Language) veri modelleme dili ile sağlanamadığından dolayı, yeni bir modelleme tekniğine ihtiyaç duyulmuştur. Sahip olduğu potansiyelle OWL (Web Ontology Language), bu sorunu giderebilecek bir çözümdür. Bu çalışma, coğrafi verilerin UML'den OWL'a dönüştürülmesini XSLT (XML Style Language Transformation) yardımıyla gerçekleştirmeyi konu almaktadır. Böylelikle, coğrafi verilerin bilgisayarlar tarafından anlaşılabilir ve çıkarsama yapılabilir hale getirilmesi amaçlanmaktadır.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Günümüzde bilgisayar ve yazılım mühendisliği alanlarının ortak olarak üzerinde
çalıştığı teknolojilerden birisi Anlamsal Web’dir. Anlamsal Web, kısaca web tabanlı
bilginin bilgisayarlar tarafından anlaşılır, paylaşılır ve çıkarsama yapılabilir hale
getirilmesini amaçlayan metotları kapsamaktadır [1]. Bu metotların geliştirilmesi
amacıyla çeşitli veri modelleme teknikleri kullanılmış ve sözdizimi kuralları
geliştirilmiştir. Bunlardan içerik ve fonksiyon olarak en zengini Web Ontoloji Dili
(OWL)’dir [2].</p>
      <p>CBS, yapısı itibariyle anlamsal web’in getirdiği yeniliklere büyük ihtiyaç
duymaktadır. Çünkü, çözmek için geliştirildikleri ekonomik, sosyal ve çevresel
sorunlar, zamanla sistem içerisinde büyük bir bilgi birikimine, aynı zamanda bu
bilginin etkili ve hızlı bir şekilde analiz edilip işlenmesine gereksinim duymaktadır.
Anlamsal web teknolojisi bu noktada görev almakta, insan ve bilgisayar tabanlı
çalışma ortamını geliştirmeye hizmet etmektedir. Bunun için, bilgi sistemi içerisinde
bir organizasyonun oluşturulması gerekmektedir.
İnsanların yazılım sistemlerini daha iyi kavraması için geliştirilmiş UML modeli,
anlamsal web’in gerekliliği olan servislerin bilgisayarlarca anlaşılabilirliğinde ve
bilgisayarlar arası kolay veri paylaşımında yetersiz kalmaktadır. Bu sebeple, UML
standartlarıyla anlamsal web’in getirdiği anlamları iyi tanımlanmış veriler
yaratılamamakta ve anlamsal web’den hedeflenen ideallere ulaşılamamaktadır.</p>
      <p>Bu çalışmanın amacı, eksikliği görülen terminolojik birikimi sağlama görevini
üstelenebilecek OWL modelini UML sınıf (class) diyagramı tabanlı coğrafi veriler ile
bütünleştirilmesinin sağlanmasıdır. Bahsedilen amaç ile coğrafi bilgi sistemlerinde
kullanılan UML modellerinin etkili bir biçimde OWL modellerine dönüştürülmesi
mümkün olacaktır. UML ile modellenen coğrafi veriler XSLT dili kullanılarak veri ve
anlam kaybına yol açmaksızın bire bir OWL modelindeki karşılıklarına
dönüştürülmektedir. Bu sayede, insanlar için oldukça yararlı olan UML modelleme
dili ile, bilgisayarlar için kullanışlı olan OWL modelleme dilinden birlikte
yararlanarak anlamsal web idealine ulaşma şansı oluşacaktır. Çalışmanın bundan
sonraki bölümlerinde UML ve OWL modelleme tekniklerinden kısaca bahsedilmiştir.
Dördüncü bölümde, farklı modellerden otomatik OWL modeli yaratma işlemi için
yapılan önceki çalışmalardan bahsedilmiştir. Beşinci bölümde UML’den OWL’a
olabilecek örnek bir dönüştürme gerçekleştirilmiştir. Altıncı bölümde sonuçlar ve
gelecek çalışmalar hakkında bilgi verilmiştir.
2</p>
    </sec>
    <sec id="sec-2">
      <title>UML Veri Modeli</title>
      <p>UML veri modeli, günümüzde yazılım sistemlerinin organizasyon ve yapısal şemasını
anlatılmasında etkin olan bir modelleme tipidir. Özellikle sahip olduğu grafiksel
öğelerle, insanların rahatça sistemi kavramasına olanak sağlamaktadır. Bir UML sınıf
diyagramı modelinde dört temel öğe bulunur. Bunlar: Sınıflar (Classes), Sınıf
İlişkileri (Relationships), Nesne Örnekleri (Object Instances) ve Paketler (Packages)
[3]. Sınıflar, ortak özellikleri ve davranışları olan elemanların gruplandığı bölümdür.
Her sistemde sınıflar arası işlemleri ve bağları açıklayan ilişkiler bulunur. Verinin
içeriğine ait ilişkiler de kendi arasında belirli gruplara ayrılır. Örneğin, aynı seviye
sınıflarda “Association”, belli bir sınıftan türeyen alt sınıflar arasında “Inheritance”,
ve bir sınıfın özellik olarak kapsadığı altkümeler ise “Aggregation” ilişkileri ile
tanımlanmaktadır. Sınıflar ve ilişkiler dışındaki önemli bir diğer yapı olan nesneler,
sınıfın temelini oluşturan belirli kimlik, durum ve davranışa sahip öğelerdir [4]. Bir
UML sınıf diyagramında sınıflar arası erişilebilirlik, paketler sayesinde
belirtilmektedir. Aynı paketteki sınıflar birbirleriyle ilişkisi olan sınıflardır.</p>
      <p>Coğrafi Bilgi Sistemleri de yapıları itibariyle UML modellemesine elverişlidir.
Örneğin, bir bölgenin UML şemasıyla beraber; bölgedeki köprü, yol vb. ulaşım
rotalarını, su kaynaklarını veya bölgede bulunan binaları bir organizasyon haline
getirebilir, bu sayede coğrafi veri oluşturulur.</p>
      <p>Şekil-1’de coğrafi elemanlarıyla bir UML sınıf diyagramı modellemesi örneği
görülmektedir. UML modeli bölgenin coğrafik detaylarını göstermektedir. Su
kaynakları sınıfı, göl ve nehri kapsamakta, köprü nehir üzerinde kurulu olacağından
aralarındaki ilişki belirtilmekte, köprü yola, yol da mahalleye bağlanarak coğrafi
yapıyı tamamlamaktadır. Böylelikle, coğrafi detaylar ve birbirleri ile olan ilişkiler
tanımlanmış olmaktadır. Bunun neticesinde, özellikle nesneye dayalı programlar
geliştirilmesi sağlanabilmektedir.</p>
      <p>Şekil-1 UML ile modellenmiş coğrafi bilgi.
3</p>
    </sec>
    <sec id="sec-3">
      <title>OWL Veri Modeli</title>
      <p>Anlamsal web idealine ulaşabilmek için bilgisayarların veriyi anlayabilmesi
sağlanmalıdır. Bunun için iyi bir şekilde tanımlanmış ve anlam yüklenmiş verinin
yaratabilmesi gerekmektedir. Bu noktada UML modeli yeterli olmamaktadır.
Bilgisayarlar, UML modelinden gerekli anlamı çıkaramamakta ve veri paylaşımında
sorun yaşanmaktadır. Bu işlemleri kolaylaştırabilmek amacıyla, ortak bir terminoloji
tanımlayan ayrı bir modelleme tekniğine ihtiyaç duyulmuştur. Bu yapılar ise,
ontolojilerdir. Ontolojiler, kısaca OWL adı verilen Web Ontoloji Dili kullanılarak
geliştirilir.</p>
      <p>Ontolojiler, belli bir alan üzerine odaklanarak; içerdiği sınıf, nesne, fonksiyon ve
diğer öğe tanımlamalarıyla o alan üzerine gelişmiş bir sözlük görevi gören yazılım
yapılarıdır. Bu sayede sistem içerisinde gerekli yeniden kullanılabilirlik ve etkili bilgi
paylaşımı konularında köprü görevi görürler [5]. Sistemlerin gereksinimlerine göre
farklı ontolojiler kullanılabilmekte, hatta ihtiyaca göre birden fazla ontoloji sistem
içerisinde hizmet verebilmektedir. Ontolojiler sınıflandırılırken içeriklerine göre
sınıflandırılır. Örneğin, coğrafi bilgi sistemleri göz önünde bulundurulduğunda bu
hizmeti sağlayan ontolojiler Coğrafi Ontoloji’lerdir. Coğrafi Ontolojiler, coğrafi
terimleri kapsayan ve coğrafi bilgileri gruplayarak yazılım sistemleri için hizmete
sunan yapılardır. Haritalar üzerinde coğrafi etiketlemeler yapan web servisler, Coğrafi
Ontoloji’leri kullanan servisler örnek olarak sunulabilir [6].</p>
      <p>OWL modelindeki yapılar temel olarak üçe ayrılır: Özellikler, sınıflar ve
ilişkiler[3]. Sınıflar, aynı UML modelindeki gibi ortak özellik ve davranışa sahip
elemanları gruplayan kısımdır. İlişkiler, sınıflar arasındaki bağları açıklar. Özellikler
ise, sınıflara ait nesnelerin sahip oldukları özel metodları ya da elementleri betimler.
OWL’da özellikler, veri özellikleri ve nesne özellikleri olmak üzere iki ana kısma
ayrılmaktadır. Gerektiği takdirde bu özellikleri de niteleyen kısıtlamalar ve
ayrıcalıklar ontolojilerde belirtilebilmektedir. Stanford Üniversitesi tarafından
geliştirilen bir araç yazılımı olan Protege [7] kullanılarak bu çalışma kapsamında
geliştirilen ontolojinin kaynak kodunun bir kısmı aşağıdadır.</p>
      <p>&lt;?xml version="1.0"?&gt; &lt;rdf:RDF</p>
      <p>xmlns:xsp="http://www.owlontologies.com/2005/08/07/xsp.owl#"
xmlns:swrlb="http://www.w3.org/2003/11/swrlb#"
xmlns:swrl="http://www.w3.org/2003/11/swrl#"
xmlns:protege="http://protege.stanford.edu/plugins/owl/protege#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns="http://www.owlontologies.com/Ontology1326573903.owl#"</p>
      <p>xml:base="http://www.owlontologies.com/Ontology1326573903.owl"&gt;
&lt;owl:Ontology rdf:about=""/&gt;
&lt;owl:Class rdf:ID="Göl"&gt;
&lt;rdfs:subClassOf&gt;</p>
      <p>&lt;owl:Class rdf:ID="Su_Kaynakları"/&gt;
&lt;/rdfs:subClassOf&gt;
&lt;/owl:Class&gt;
&lt;owl:Class rdf:ID="Köprü"&gt;
&lt;rdfs:subClassOf&gt;
&lt;owl:Restriction&gt;
&lt;owl:onProperty&gt;
&lt;owl:ObjectProperty rdf:ID="Bağlanır"/&gt;
&lt;/owl:onProperty&gt;
&lt;owl:someValuesFrom&gt;
&lt;owl:Class rdf:ID="Yol"/&gt;
&lt;/owl:someValuesFrom&gt;
&lt;/owl:Restriction&gt;
&lt;/rdfs:subClassOf&gt;
&lt;rdfs:subClassOf&gt;
&lt;owl:Restriction&gt;
&lt;owl:onProperty&gt;
&lt;owl:ObjectProperty rdf:ID="Bağımlıdır"/&gt;
&lt;/owl:onProperty&gt;
&lt;owl:allValuesFrom&gt;
&lt;owl:Class rdf:ID="Nehir"/&gt;
&lt;/owl:allValuesFrom&gt;
&lt;/owl:Restriction&gt;
&lt;/rdfs:subClassOf&gt;
&lt;rdfs:subClassOf
rdf:resource="http://www.w3.org/2002/07/owl#Thing"/&gt;
&lt;/owl:Class&gt;
&lt;owl:Class rdf:ID="Mahalle"/&gt;
&lt;owl:Class rdf:about="#Nehir"&gt;</p>
      <p>&lt;rdfs:subClassOf rdf:resource="#Su_Kaynakları"/&gt;
&lt;/owl:Class&gt;
&lt;owl:Class rdf:about="#Yol"&gt;
&lt;rdfs:subClassOf&gt;
&lt;owl:Restriction&gt;
&lt;owl:allValuesFrom rdf:resource="#Mahalle"/&gt;
&lt;owl:onProperty&gt;
&lt;owl:ObjectProperty rdf:ID="Geçer"/&gt;
&lt;/owl:onProperty&gt;
&lt;/owl:Restriction&gt;
&lt;/rdfs:subClassOf&gt;
&lt;rdfs:subClassOf
rdf:resource="http://www.w3.org/2002/07/owl#Thing"/&gt;
&lt;/owl:Class&gt;
&lt;owl:DatatypeProperty rdf:ID="Name"&gt;</p>
      <p>&lt;rdfs:range
rdf:resource="http://www.w3.org/2001/XMLSchema#string"/&gt;
&lt;/owl:DatatypeProperty&gt;
&lt;owl:DatatypeProperty rdf:ID="ID"&gt;</p>
      <p>&lt;rdfs:range
rdf:resource="http://www.w3.org/2001/XMLSchema#int"/&gt;
&lt;/owl:DatatypeProperty&gt;&lt;/rdf:RDF&gt;</p>
      <p>
        Görüldüğü üzere, OWL sınıfları, aynı UML sınıflarındaki gibi tanımlanmış,
aradaki ilişkiler de nesne özellikleri ile belirtilmiştir. Bunun yanında, veri özellikleri
de sınıflar içerisindeki isim ve “id” gibi nitelikleri belirtmek üzere tanımlanmıştır. Bu
haliyle UML modeli OWL’a çevrilmiş ve bilgisayarlar tarafından paylaşılabilir ve
anlaşılabilir bir hale getirilmiştir.
CBS, sistemler arası veri paylaşımı ve birlikte çalışabilirlik gibi ihtiyaçları itibariyle
Anlamsal Web’e doğru kaymaktadır. Yapısı itibariyle UML modelleri, bu ihtiyacı
karşılamaktan yoksun oldukları için, çözüm olarak OWL modeli sunulmaktadır. CBS
disiplinler arası bir organizasyona sahip olduğundan, doğrudan OWL modelini
yaratma işlemi ontoloji uyarlaması veya disipliner bir paylaşım oluşturulmasında
çeşitli engeller sunabilmektedir [
        <xref ref-type="bibr" rid="ref7">8</xref>
        ]. Bu sebeple, OWL modelini elde edebilmek için
otomatik bir çevirme işlemi ihtiyacı görülmüş ve bu konu hakkında birçok çalışma
yapılmıştır.
      </p>
      <p>
        Bu çalışmalar 3 grupta sınıflandırılabilir: Birinci grup, modeller arası veri yapılarını
doğrudan çevirmeyi baz almaktadır. Gasevic ve çalışma arkadaşları, UML ve OWL
modellerini birbirine dönüştürmüştür [
        <xref ref-type="bibr" rid="ref8">9</xref>
        ]. Pivk, HTML tabanlı web yapılarını
otomatik bir biçimde OWL modeline dönüştürmek için Java tabanlı yazılım
kullanmıştır [
        <xref ref-type="bibr" rid="ref9">10</xref>
        ]. Bohring ve Auer ise, XML ile OWL modeli arasındaki eşleme
sorunu üzerine çalışmıştır [
        <xref ref-type="bibr" rid="ref10">11</xref>
        ].
      </p>
      <p>
        İkinci grup, veri madenciliği bazlı dönüştürme işlemini konu alan çalışmalardır.
Genellikle çalışmalar metinler üzerinden OWL modeli oluşturmaya yöneliktir.
[
        <xref ref-type="bibr" rid="ref11 ref12">12,13</xref>
        ]
      </p>
      <p>
        Son gruptakiler ise, harici bilgi sistemlerini baz alan dönüştürme sistemleridir.
Moldovan ve Girju’nun doğal dil işleme alanında WORDNET’i kullanarak OWL
modeli yaratma işlemi [
        <xref ref-type="bibr" rid="ref13">14</xref>
        ], Kietz ve çalışma arkadaşlarının Intranet üzerinden OWL
modeli yaratma çalışmaları [
        <xref ref-type="bibr" rid="ref14">15</xref>
        ] ve Agirre ve çalışma arkadaşlarının WWW’i
kullanarak büyük ontoloji üretme çalışmaları [
        <xref ref-type="bibr" rid="ref15">16</xref>
        ] bu alanda verilebilecek
örneklerdendir.
      </p>
    </sec>
    <sec id="sec-4">
      <title>5 Dönüştürme İşlemi</title>
      <p>Daha önceki kısımlarda bahsedilen UML modelinden OWL modelini elde etmek için
bir dönüştürme işlemi yapmak gerekmektedir. Bunu yapabilmek için gerekli adımlar
bu kısımda anlatılmıştır.</p>
      <p>
        Dönüştürme işleminin ilk basamağı, hazırlanan UML modelinin “XML Metadata
Interchange” (XMI) formatında saklanmasıdır [
        <xref ref-type="bibr" rid="ref8">9</xref>
        ]. Bu yapı Nesne Yönetim Grubu
(Object Management Group – OMG) standardı olarak kabul edilmektedir. XML
tabanlı farklı alanlar üzerine yoğunlaşmış sözdizimlerinden biri olan XMI, (bir başka
örnek olarak coğrafi bilgi üzerine yoğunlaşan XML’den geliştirilmiş GML’i örnek
gösterebiliriz) UML tabanlı yapıları tanımlamada ve diğer heterojen sistemlerle
paylaşmada görev almaktadır. Şekil-1’deki örneği geliştirirken Sybase firmasının
PowerDesigner [
        <xref ref-type="bibr" rid="ref16">17</xref>
        ] isimli UML aracı kullanılmıştır. Bu maksatla Sınıf diyagramını
PowerDesigner’ın menüsünde File-&gt;Export-&gt;XMI File seçilerek XMI dosyası elde
edilmiştir. Örnek olarak geliştirilen XMI dosyasının bir bölümü aşağıdadır.
&lt;UML:Class name="Yol" isLeaf="false"
xmi.id="{B8EB50A6-E335-4B4E-9707-91E8B426CBA6}"isAbstract="false"
visibility="public"&gt;
      </p>
      <p>
        Yaratılan XMI dosyası içerisinde Yol isimli sınıf ve onun sahip olduğu veri
özellikleri tanımlanmaktadır. UML etiketleriyle beraber hangi modelleme tekniği
altında gerçekleştirildiği de görülmekte ve UML modeli aynı XML benzeri bir
formata dönüşerek XSLT işlemcilerine uygun hale getirilmiştir. Bu sayede, Şekil-2’de
gösterildiği gibi XSLT ve XMI dosyası işlemci üzerinden OWL dokümanına
dönüştürülebilmektedir [
        <xref ref-type="bibr" rid="ref17">18</xref>
        ] [
        <xref ref-type="bibr" rid="ref18">19</xref>
        ]. Böylelikle, OWL ile modellenmiş coğrafi veri,
anlamsal web uygulamalarının kullanımına hazır hale getirilmiştir.
      </p>
      <p>
        XMI dosyasını XSLT aracılığıyla OWL dosyasına çevirirken çeşitli sorunlarla
karşılaşma riski doğmaktadır. UML modelinin XMI’a çevrilirken her parçanın
çevrilmesi sonucu elde edilen bilgi kirliliği, veya eldeki diyagram sayısına göre
oluşturulan XMI dosyasının ortaya birleşik bir sonuç çıkarması ve orjinal dosyaya
göre farklılaşması, veya oluşturulan modelin doğruluğunun kontrolü gibi farklı
etmenler göz önünde bulundurulmalıdır [
        <xref ref-type="bibr" rid="ref19">20</xref>
        ].
      </p>
      <p>
        XSLT dönüştürmesinde temel olarak yapılacak işlem UML modeli içerisinde
tanımlanmış olan yapıların OWL’daki karşılıkları ve içerdiği elementlerin bire bir
OWL modeline aktarılmasıdır [
        <xref ref-type="bibr" rid="ref20">21</xref>
        ]. Bu sebeple, XSLT dosyası ile genel yapısı göz
önüne alınarak temel bir dönüştürme işlemi yapılır. Bu fonksiyonları tanımlarken en
ufak detaylar olan “link”ler, göz önünde bulundurulmalıdır. Örneklendirmek
maksadıyla XSLT kodundaki bazı kısımlar aşağıda verilmiştir:
      </p>
      <p>&lt;xsl:template match="/"&gt;</p>
      <p>&lt;xsl:apply-templates select="XMI"/&gt;
&lt;/xsl:template&gt;
&lt;xsl:template match="XMI"&gt;</p>
      <p>&lt;xsl:apply-templates select="XMI.content/UML:Model"/&gt;
&lt;/xsl:template&gt;
&lt;xsl:template match="XMI.content/UML:Model"&gt;</p>
      <p>&lt;xsl:apply-templates select="UML:Namespace.ownedElement"/&gt;
&lt;/xsl:template&gt;
&lt;xsl:template match="UML:Namespace.ownedElement"&gt;</p>
      <p>&lt;rdf:RDF&gt;
&lt;xsl:attribute name =
"xml:base"&gt;http://owl.protege.stanford.edu&lt;/xsl:attribute&gt;</p>
      <p>&lt;xsl:apply-templates
select="UML:Package/UML:Namespace.ownedElement"/&gt;</p>
      <p>&lt;/rdf:RDF&gt;
&lt;/xsl:template&gt;
&lt;xsl:template match="UML:Package/UML:Namespace.ownedElement"&gt;
&lt;xsl:if test="(key('ID', UML:ModelElement/UML /@xmi.idref)/@name =
'ontology') and (key('ID', UML:ModelElement /UML /@xmi.idref)/UML: baseClass
= 'Package')"&gt;
&lt;xsl:apply-templates select="UML:Class"/&gt;</p>
      <p>
        &lt;xsl:apply-templates select="UML:Object"/&gt;
&lt;/xsl:if&gt;
&lt;/xsl:template&gt;
[
        <xref ref-type="bibr" rid="ref21">22</xref>
        ]
Örnek kodda UML modelinin XMI formatında tanımlanmış dokümanındaki örnek
bir nesnenin dönüştürüleceği ontoloji yapısındaki yeri, bağlantılı olduğu yapıları
XSLT kodunda gösterilmiştir. Bu sayede, XSLT kodunun çalıştırılacağı XMI formatlı
UML modellemesi, gerekli bağlantı ayarları yapılarak OWL formatında
dönüştürülmüştür.
&lt;xsl:template match="UML:Class"&gt;
&lt;xsl:variable name="param1"&gt;
      </p>
      <p>&lt;xsl:value-of
select="UML:ModelElement.stereotype/UML:@xmi.idref"/&gt;
&lt;/xsl:variable&gt;
&lt;xsl:variable name="id"&gt;</p>
      <p>&lt;xsl:value-of select="@xmi.id"/&gt;
&lt;/xsl:variable&gt;
&lt;xsl:variable name="name"&gt;
&lt;xsl:value-of select="@xmi.name"/&gt;
&lt;/xsl:variable&gt;
&lt;xsl:if test="$classSterotype = 'ObjectProperty'"&gt;</p>
      <p>&lt;xsl:call-template name="ObjectProperty"/&gt;
&lt;/xsl:if&gt;
&lt;xsl:if test="$classSterotype = 'DatatypeProperty'"&gt;</p>
      <p>
        &lt;xsl:call-template name="DatatypeProperty"/&gt;
&lt;/xsl:if&gt;
&lt;xsl:if test="($classSterotype = 'OntClass') or ($class =
&lt;xsl:call-template name="Class"/&gt; &lt;/xsl:if&gt; &lt;/xsl:template&gt;
[
        <xref ref-type="bibr" rid="ref21">22</xref>
        ]
      </p>
      <p>Yukarıdaki kısımda ise, üst kısımda belirtilen sınıfın sahip olduğu öğelerin OWL
modellemesindeki karşılıklarına dönüştürülmesi işlemi gösterilmiştir. Görüldüğü
üzere, UML modellemesindeki öğelerin ve bağlantıların OWL modellemesine
dönüştürülürken veri tipi veya nesne özelliklerine ait olup olmadığı kontrol
edilmektedir. Ayrıca, UML modellemesinde belirtilen ilişki tiplerine göre OWL
modellemesindeki kısıtlama, kesişme ve birleşme gibi detaylandırmalar da üretilecek
OWL koduna eklenecektir.</p>
      <p>
        Bir nesne özelliği olduğunda, bu nesne özelliğinin alt sınıf veya üst sınıfları gibi
detayları belirtilmelidir. Aksi takdirde geliştirilen ontolojide veri kaybı
yaşanabilir[
        <xref ref-type="bibr" rid="ref22">23</xref>
        ]. Bu sorun aşağıda geliştirilen kod ile giderilebilmektedir.
&lt;xsl:template name="ObjectProperty"&gt;
&lt;xsl:variable name="range"&gt;
      </p>
      <p>&lt;xsl:text&gt;Class&lt;/xsl:text&gt;
&lt;/xsl:variable&gt;
&lt;xsl:variable name="classID" select="@xmi.id"/&gt;
&lt;xsl:element name="owl:ObjectProperty"&gt;</p>
      <p>&lt;xsl:attribute
ofselect=./@name/&gt;&lt;/xsl:attribute &gt;
&lt;xsl:call-template name="classDependency"&gt;
&lt;xsl:text&gt;equivalentProperty&lt;/xsl:text&gt;</p>
      <p>
        name="rdf:ID"&gt;&lt;xsl:value[
        <xref ref-type="bibr" rid="ref23">24</xref>
        ]
      </p>
      <p>Bir nesne özelliğinde tanımlanması gereken özellikler bir alt nesneye sahip olması,
bir başka nesne tarafından kapsanması veya “range”, “domain” gibi detaylandırmalara
sahip olmasıdır. Geliştirilen XSLT kodunda bu dönüştürme işlemini yapacak
fonksiyonlar üstteki kodda açıklanmıştır. Veritipi özelliklerinde de aynı işlemler
kullanılacaktır.</p>
      <p>
        Şekil-2’deki algoritmayı test etmek maksadıyla, UML ve OWL kısımlarında
gösterilen örnek kod kullanılmıştır. Sybase firmasının PowerDesigner aracıyla, UML
modellemesini ve XMI formatlı dosya üretim süreci tamamlanır. Sonraki aşamada
XML Spy 12 [
        <xref ref-type="bibr" rid="ref24">25</xref>
        ] isimli araç yazılımıyla, XMI dosyası ve XSLT çevirici dosyası
ortak işleme sokulur. Sonunda elde edilen OWL uzantılı ontoloji test amaçlı olarak
Protege 3.4.7 araç yazılımıyla açılır ve Şekil-3’deki görüntü elde edilir [
        <xref ref-type="bibr" rid="ref25">26</xref>
        ].
      </p>
    </sec>
    <sec id="sec-5">
      <title>6 Sonuç</title>
      <p>
        UML sınıf diyagramı dosyasının XSLT ile OWL’ a dönüştürülmesi neticesinde
geliştirilen ontoloji, anlamca daha zengin bir hale gelmiştir. Dolayısıyla, anlamsal
web uygulamalarına uygundur. Konunun anlaşılabilmesi maksadıyla örnek kod
mümkün olduğunca basitleştirilmiştir. Sadece belirli nesne ve sınıflar ele alınmış,
fazla ilişki ve kısıtlardan kaçınılmıştır. Böylelikle, OWL’daki karşılıkları belirli olan
UML yapıları, sorunsuz olarak bir ontolojiye dönüştürülmüştür. Daha karmaşık
yapılar, benzer şekilde dönüştürülebilinecektir. Böylece, çalışma kapsamında
geliştirilen çevirici XSLT dosyası, oluşturulan modellemenin doğruluğunu kontrol
etmeye çalışacağından daha iyi bir deneme süreci elde edilmiş olunur.
Günümüzde, kullanıma açık UML modellemeleri arasında bazı farklar mevcuttur.
Çalışmada kullanılan PowerDesigner ile Poseidon [
        <xref ref-type="bibr" rid="ref26">27</xref>
        ] araçları için geçerli olan bu
dönüştürme algoritması, farklı UML araçlarının kullanabileceği sözdizimleri ile farklı
sonuçlar verebilir. Bu çalışmada, önceki çalışmalardan farklı olarak, UML
modellemesinde PowerDesigner aracı kullanılmıştır. Dönüştürme işleminin
gerçekleşmesi için gerekli olan XSLT çeviricisi, hazır XSLT kütüphanesinden temin
edilmiştir ve PowerDesigner’dan alınan XMI dosyasıyla uyumluluk gösterdiği
görülmüştür. UML modelinin bilgisayar kullanıcıları için yetersiz kalmasının
nedenlerinden biri olan bu uyumluluk konusu hakkında, yapılması gereken daha
kapsamlı bir yelpazede dönüştürme işlemi yapabilen daha genel bir XSLT dosyası
üretmek olacaktır. Sonraki çalışmalarda bu sorun ele alınacaktır.
Şekil-3 OWL ile modellenmiş coğrafi veri.
      </p>
      <p>Temel olarak çalışmanın geleceğin web ortamı olan anlamsal web’de hem insan
hem de bilgisayar kullanıcıları için yararlı olduğu söylenebilir. İnsanların verimini
artırmak için gerekli olan UML ve bilgisayarların verimini artırmak için gerekli olan
OWL dosyalarının bir sistem içerisinde dönüştürülerek ortak kullanımı, sistemin
genel performansını ve kullanımını da geliştirecektir. Daha geniş veri tabanlarıyla
çalışan ve çok modüllü sistemler için bu çalışma, faydalı bir dönüştürme işlemi
sunmaktadır.</p>
      <p>Kaynaklar</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Berners-Lee</surname>
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hendler</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lassila</surname>
            <given-names>O.: “</given-names>
          </string-name>
          <article-title>The semantic web”</article-title>
          ,
          <source>In: Scientific American</source>
          , Vol.
          <volume>284</volume>
          (
          <issue>5</issue>
          ), pp.
          <fpage>34</fpage>
          -
          <lpage>43</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>OWL Web Ontology Language Overview</surname>
          </string-name>
          , http://www.w3.org/TR/owl-features/,
          <source>Erişim Tarihi: 3 Nisan 2014</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>Zhang C.</given-names>
            ,
            <surname>Peng</surname>
          </string-name>
          <string-name>
            <given-names>Z.R.</given-names>
            ,
            <surname>Zhao</surname>
          </string-name>
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Li</surname>
          </string-name>
          <string-name>
            <surname>W.</surname>
          </string-name>
          :
          <article-title>“Transformation of Transportation Data Models From Unified Modeling Language to Web Ontology Language”</article-title>
          ,
          <source>In: Proceedings of the Transportation Research Board (TRB) Annual Meeting</source>
          , vol.
          <year>2064</year>
          , pp.
          <fpage>81</fpage>
          -
          <lpage>8</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Kocabıçak</surname>
            <given-names>Ü.</given-names>
          </string-name>
          ,
          <year>2012</year>
          . “
          <article-title>Nesneye Dayalı Programlama ve UML”</article-title>
          , http://web.sakarya.edu.tr/~umit/panel/dosya/hafta1a.pdf, Erişim Tarihi:
          <fpage>10</fpage>
          <string-name>
            <surname>Nisan 2014 Gruber T. R.:</surname>
          </string-name>
          <article-title>A Translation Approach to Portable Ontology Specifications</article-title>
          , In: Knowledge Acquisition, no:
          <issue>5</issue>
          (
          <issue>2</issue>
          ), pp.
          <fpage>199</fpage>
          -
          <lpage>220</lpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>Geonames</given-names>
            <surname>Ontology</surname>
          </string-name>
          , http://www.geonames.org/ontology/documentation.html,
          <source>Erişim Tarihi: 7 Nisan</source>
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>Protégé</given-names>
            <surname>Web Sitesi</surname>
          </string-name>
          , http://protege.stanford.edu,
          <source>Erişim Tarihi: 15 Nisan 2014</source>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          8.
          <string-name>
            <surname>Ratsch</surname>
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schultz</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Saric</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lavin</surname>
            <given-names>P. C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wittig</surname>
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>“Developing a Protein-interactions Ontology”</article-title>
          .
          <source>Comparative and Functional Genomics</source>
          , Vol.
          <volume>4</volume>
          , pp.
          <fpage>85</fpage>
          -
          <lpage>89</lpage>
          ,
          <year>2003</year>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          9.
          <string-name>
            <surname>Gasevic</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Djuric</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Devedzic</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Damjanovic</surname>
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>“Converting UML to OWL ontologies”</article-title>
          ,
          <source>In: WWW (Alternate Track Papers &amp; Posters)</source>
          , pp.
          <fpage>488</fpage>
          -
          <lpage>489</lpage>
          ,
          <year>2004</year>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          10.
          <string-name>
            <surname>Pivk</surname>
            <given-names>A</given-names>
          </string-name>
          .:
          <article-title>“Automatic ontology generation from Web tabular structures”</article-title>
          .
          <source>In: AI Communications</source>
          , Vol.
          <volume>19</volume>
          , pp.
          <fpage>83</fpage>
          -
          <lpage>85</lpage>
          ,
          <year>2006</year>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          11.
          <string-name>
            <surname>Bohring</surname>
            <given-names>H.</given-names>
          </string-name>
          , Auer S.:
          <article-title>“Mapping XML to OWL Ontologies”</article-title>
          .
          <source>In: Leipziger InformatikTage</source>
          , Vol.
          <volume>72</volume>
          of LNI. GI, pp.
          <fpage>147</fpage>
          -
          <lpage>156</lpage>
          ,
          <year>2005</year>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          12.
          <string-name>
            <surname>Hu</surname>
            <given-names>H.</given-names>
          </string-name>
          , Liu D.:
          <article-title>“Learning OWL Ontologies from Free Texts”</article-title>
          .
          <source>In: Proc. International Conference on Machine Learning and Cybernetics (ICMLC 04)</source>
          , pp.
          <fpage>1233</fpage>
          -
          <lpage>1237</lpage>
          ,
          <year>2004</year>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          13.
          <string-name>
            <surname>Biebow</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Szulman</surname>
            <given-names>S.</given-names>
          </string-name>
          : “TERMINAE:
          <article-title>a linguistics-based tool for the building of a domain ontology”</article-title>
          .
          <source>In: Proc. 11th European Workshop on Knowledge Acquisition, Modeling, and Management (EKAW 99)</source>
          , pp.
          <fpage>49</fpage>
          -
          <lpage>66</lpage>
          ,
          <year>1999</year>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          14.
          <string-name>
            <surname>Moldovan</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Girju</surname>
            <given-names>R</given-names>
          </string-name>
          .: “
          <article-title>Domain-specific knowledge acquisition and classification using Wordnet”</article-title>
          .
          <source>In: Proc. 13th International Florida Artificial Intelligence Research Society Conference (IFAIRSC 00)</source>
          , pp.
          <fpage>224</fpage>
          -
          <lpage>228</lpage>
          ,
          <year>2000</year>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          15.
          <string-name>
            <surname>Kietz</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maedche</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Volz</surname>
            <given-names>R</given-names>
          </string-name>
          .:
          <article-title>“A method for semi-automatic ontology acquisition from a corporate Intranet”</article-title>
          .
          <source>In: Proc. 12nd European Workshop on Knowledge Acquisition, Modeling and Management (EKAW 00)</source>
          ,
          <year>2000</year>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          16.
          <string-name>
            <surname>Agirre</surname>
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ansa</surname>
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hovy</surname>
            <given-names>E</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martinez</surname>
            <given-names>D.</given-names>
          </string-name>
          : “
          <article-title>Enriching very large ontologies using the WWW”</article-title>
          .
          <source>In: Proc. Ontology Learning Workshop (OL 00)</source>
          ,
          <year>2000</year>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          17. SAP Sybase Power Designer, http://www.sybase.com/products/modelingdevelopment/powerdesigner, Erişim tarihi:
          <issue>20 Şubat 2014</issue>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          18.
          <string-name>
            <surname>Otegem</surname>
            <given-names>M.V.</given-names>
          </string-name>
          ,
          <year>2002</year>
          . “
          <article-title>Teach Yourself XSLT in 21 Days”</article-title>
          , SAMS
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          19.
          <string-name>
            <surname>Tidwell</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <year>2008</year>
          . “XSLT Second Edition”,
          <string-name>
            <given-names>O</given-names>
            <surname>'Reilly Media</surname>
          </string-name>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          20.
          <string-name>
            <surname>Gasevic</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Djuric</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Devedzic</surname>
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>“Model Driven Engineering and Ontology Development (2</article-title>
          . ed.)”, In: Springer 2009: I-XXI, pp.
          <fpage>1</fpage>
          -
          <lpage>378</lpage>
          ,
          <year>2009</year>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          21.
          <string-name>
            <surname>Mangano</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <year>2005</year>
          . “
          <article-title>XSLT Cookbook 2nd Edition”</article-title>
          ,
          <string-name>
            <given-names>O</given-names>
            <surname>'Reilly Media</surname>
          </string-name>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>22. UMLtoOWL Project, http://www.sfu.ca/~dgasevic/projects/UMLtoOWL/</mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          23.
          <string-name>
            <surname>Viademonte</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chui</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          :
          <article-title>“Deriving OWL Ontologies from UML Models: an Enterprise Modelling Approach”</article-title>
          , Academia.edu,
          <year>2011</year>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          24.
          <string-name>
            <surname>Gasevic</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Djuric</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Devedzic</surname>
            <given-names>V</given-names>
          </string-name>
          .
          <article-title>: “MDA-based Automatic OWL Ontology Development”</article-title>
          , In:
          <source>International Journal on Software Tools for Technology Transfer</source>
          , Vol.
          <volume>9</volume>
          , No.
          <issue>2</issue>
          , pp.
          <fpage>103</fpage>
          -
          <lpage>117</lpage>
          ,
          <year>2007</year>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          25. XML SPY XML Editor, http://www.altova.com/xmlspy.html,
          <source>Erişim Tarihi: 18 Nisan 2014</source>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          26.
          <string-name>
            <surname>Protege</surname>
          </string-name>
          OWL Tutorial, http://130.88.198.11/tutorials/protegeowltutorial/resources/ProtegeOWLTutorialP3_v1_
          <fpage>0</fpage>
          . pdf,
          <source>Erişim Tarihi: 19 Nisan 2014</source>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          27.
          <string-name>
            <surname>Poseidon for</surname>
            <given-names>UML</given-names>
          </string-name>
          , http://www.gentleware.
          <article-title>com/new-poseidon-for-uml-8-0</article-title>
          .html,
          <source>Erişim Tarihi: 20 Nisan 2014</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>