<!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>Ontoloji Yeniden Kullanımı için Bulut Tabanlı Bir Yazılım Mimarisinin Gerçekleştirilmesi</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Cemil Abiş</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Görkem Giray</string-name>
          <email>gorkemgiray@gmail.com</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Murat Osman Ünalır</string-name>
          <email>murat.osman.unalir@ege.edu.tr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Ege Üniversitesi</institution>
          ,
          <addr-line>Bilgisayar Mühendisliği Bölümü, İzmir</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Ege Üniversitesi</institution>
          ,
          <addr-line>Bilgisayar Mühendisliği Bölümü, İzmir</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Ontologies are one of the important components of interoperability between applications and knowledge sharing. They are used for annotation, retrieval and sharing of huge volume of data in many areas, especially in medicine and bioinformatics. However, to provide an efficient interoperability and decrease costs of ontology development, reuse of existing ontologies is a critical step for development process. While most of the ontology development methodologies emphasize the importance of reuse, there is no method that completely supports all phases of reuse process. In this work, we recommend a cloud-based method and application architecture that includes and supports all steps of ontology reuse.</p>
      </abstract>
      <kwd-group>
        <kwd>Ontology</kwd>
        <kwd>Ontology development</kwd>
        <kwd>Ontology reuse</kwd>
        <kwd>Sub-ontology extraction</kwd>
        <kwd>Semantic relatedness</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Giriş</title>
      <p>
        Yazılım geliştirme başta olmak üzere birçok disiplinde mevcut bileşenlerin ve
teknolojilerin yeniden kullanımı, süreçlerin kalitesini arttıran ve maliyetleri azaltan temel
unsurdur. Benzer koşullar ontoloji geliştirme süreçleri için de geçerlidir. Bir alanda
geliştirilmiş mevcut ontolojilerin yeniden kullanımı geliştirilecek yeni ontolojilerin
kalitesini yükselteceği gibi uygulamalar arasındaki bilgi paylaşımı ve birlikte
çalışabilirliği de arttıracaktır [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>Ontoloji geliştirme süreçlerinin birçoğu mevcut ontolojilerin yeniden kullanımını
önem verilmesi gereken bir adım olarak tanımlasa da bu alandaki çalışmaların sayısı
kısıtlıdır. Ontolojilerin daha modüler hale getirilmesi üzerine geliştirilmiş çalışmalar
ontoloji yeniden kullanımındaki problemleri çözmeye çalışmaktadır. Ancak tüm
yeniden kullanım sürecini bütünleşik olarak ele alan bir yaklaşım bulunmamaktadır.</p>
      <p>Bu çalışmada, ontoloji yeniden kullanımını daha etkin hale getirecek bir yöntem ve
bu yöntemi destekleyen bir yazılım mimarisi önerilmektedir. Yöntemin ve dayandığı
yazılım mimarisinin temel özellikleri bulut tabanlı olması ve ölçeklenebilirliktir.
Ayrıca kullanılabilirlik problemi de çözülmeye çalışılmaktadır. 2. bölüm, ontoloji
yeniden kullanım bağlamını ve ilgili çalışmaları aktarmaktadır. 3. bölümde geliştirilen
yöntemin ve veri mimarisinin detaylarına değinilecektir. 4. bölümde yeniden
kullanımı destekleyen Protege eklentisi hakkında bilgi verilecektir. Son bölümde ise yapılan
çalışmalar değerlendirilecek ve ilerleyen dönemde gerçekleştirilmesi planlanan
çalışmalar hakkında bilgi verilecektir.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Bağlam ve İlgili Çalışmalar</title>
      <p>Bu bölümde, ontoloji yeniden kullanımını desteklemek için önermiş olduğumuz
yöntemin kapsamında yer alan temel bilgilere değinilecektir. Mevcut ontolojilere nasıl
erişilebileceği konusu ontolojiler ve ontoloji kaynakları başlığı altında aktarılacaktır.
Ontoloji geliştirme süreçleri ve yeniden kullanım diğer bölümlerin içeriğini
oluşturacaktır.
2.1</p>
      <sec id="sec-2-1">
        <title>Ontolojiler ve Ontoloji Kaynakları</title>
        <p>
          Temel amacı bilgi paylaşımı ve yeniden kullanım olan ontolojiler bilgi yönetimi, bilgi
edinimi, doğal dil işleme ve yapay zeka gibi birçok alanda kullanılmaktadır [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. Uzun
zamandır var olan ontoloji ve ontoloji geliştirme kavramları, Tim Berners Lee
tarafından ortaya konulan anlamsal web vizyonu ile daha çok ilgi çekmiş ve bu alandaki
çalışmaların sayısı hızla artmıştır [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
        </p>
        <p>
          Ontoloji sayısının artması ile birlikte bu ontolojilere erişim sağlayacak,
kullanıcıların ontolojileri aramasını ve kullanmasını kolaylaştıracak kaynaklara ihtiyaç
duyulmuştur. Swoogle [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] ve Watson [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] gibi ontoloji arama motorları web üzerindeki
ontolojileri tarayıp indeksleyerek arama imkanı sağlamışlardır. Arama motorları dışında,
ontoloji deposu veya ontoloji kütüphanesi olarak adlandırılan, bir dizi ontolojiyi
barındıran ve kullanıcıların bu ontolojileri bulup kullanabilmesini sağlayan web tabanlı
sistemler de ortaya çıkmıştır [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Bu sistemler daha çok belirli bir kapsam ve alan
dahilindeki benzer ontolojileri barındırmaktadır. Örneğin; Bioportal1, OBO Foundry2
ve OLS3 gibi ontoloji kütüphaneleri tıbbi ontolojilere erişim için önemli
kaynaklardır. Bu kaynaklar dışında kendi sunucuları üzerinde barındırılan Dbpedia4, Yago5 ve
Geonames6 gibi büyük ontolojiler de bulunmaktadır. Bu ontolojiler SPARQL uç
noktaları ve ontoloji dosyalarının doğrudan indirilmesi gibi yöntemlerle erişim
sunmaktadır.
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Ontoloji Geliştirme Süreçleri</title>
        <p>Ontolojilerin de yazılım ürünlerinde olduğu gibi, önceden tanımlı adımları içeren bir
metodoloji kullanılarak geliştirilmesi, ontolojinin kalitesi ve geliştirme sürecinin
yönetimi bakımından önemlidir. Bu gereksinim doğrultusunda ontoloji geliştirmeye
yönelik çok sayıda metodoloji önerilmiştir.</p>
        <p>
          Uschold ve King [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], ontoloji geliştirme süreci için ilk yöntemlerden birini
önermiştir. Bu yöntem, Enterprise ontolojisinin geliştiriminde uygulanmıştır. İlk
yöntemlerden bir diğeri Gruninger ve Fox [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] tarafından önerilen ve TOVE (Toronto Virtual
Enterprise) projesi kapsamında uygulanan yöntemdir. Uschold ve King,
yöntemlerinde ontoloji yeniden kullanımına açık bir şekilde yer verirken, Gruninger ve Fox
yeniden kullanıma değinmemiştir. Methontology [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], ontoloji geliştirme kapsamında
önerilen detaylı süreçlerden bir diğeridir. Ontoloji yeniden kullanımı, kapsamlı bir
şekilde değerlendirilmektedir. Ontology Development 101 [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], literatürde yer alan önemli
çalışmalardan bir diğeridir. Bu çalışmada vurgulanan en önemli nokta, ontoloji
geliştirme sürecinin yinelemeli ve artışlı olma zorunluluğudur. Yeniden kullanım da bir
adım olarak belirtilmiştir. DILIGENT [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] yöntemi ise daha çok birden fazla
paydaşın aynı anda dahil olabileceği iş birlikçi bir yaklaşım üzerinde durmaktadır.
        </p>
        <p>Ontoloji geliştirme süreçlerinin birçoğu yeniden kullanımın önemini belirtmekte ve
ilgili adımların işletiminde bazı öneriler sunmaktadır. Ancak yeniden kullanım
sürecini bütünüyle ele alan bir süreç görülmemiştir.
2.3</p>
      </sec>
      <sec id="sec-2-3">
        <title>Ontoloji Yeniden Kullanımı</title>
        <p>
          Ontoloji yeniden kullanımı, geliştirme maliyetinin azalması ve ontoloji kalitesinin
arttırılmasından çok birlikte çalışabilirliğin sağlanması bakımından önemlidir [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. Bu
nedenle, kullanılacak ontoloji geliştirme metodolojisinin en önemli adımlarından biri
yeniden kullanım olmalıdır.
1 https://bioportal.bioontology.org/
2 http://www.obofoundry.org/
3 https://www.ebi.ac.uk/ols/index
4 https://wiki.dbpedia.org/
5
https://www.mpi-inf.mpg.de/departments/databases-and-information
        </p>
        <p>systems/research/yago-naga/yago/
6 http://www.geonames.org/</p>
        <p>En basit ve geleneksel ontoloji yeniden kullanımı, mevcut ontolojinin bütün olarak
yeni ontolojiye dahil edilmesi ile sağlanır. Ontolojilerin bütünsel olarak yeniden
kullanımı, FOAF7, BFO8 (Basic Formal Ontology) ve GFO9 (General Formal Ontology)
gibi daha küçük ölçekli ve üst seviye ontolojilerde geçerli olabilir. Bütünsel olarak
dahil edilen ontoloji, yeni ontolojiyi işleyecek olan kütüphane ve/veya araç tarafından
bütünüyle ele alınacak ve yüklenecektir.</p>
        <p>Ontolojilerin bütün olarak yeniden kullanılması küçük boyuttaki ontolojiler için
uygun olsa da Dbpedia, Yago, SNOMED CT ve FMA gibi çok sayıda kavram ve
ilişkiyi barındıran büyük ve kapsamlı ontolojiler için uygulanabilir değildir. Bu
ontolojilerdeki kavram ve ilişki sayısı çok fazladır ve tek bir parça halinde işlenebilmesi
oldukça zordur (Örneğin; Dbpedia ontolojisinde yaklaşık 5 milyon kavram ve 125
milyon ilişki bulunmaktadır10).</p>
        <p>Büyük ontolojilerin bir bütün olarak yeniden kullanılması yerine, bu ontolojilerde
bulunan ve sadece ihtiyaç duyulan kavramların yeniden kullanımı bir seçenek olarak
karşımıza çıkmaktadır. Böyle durumlarda, yeniden kullanılacak kavramların ve bu
kavramlar arasındaki ilişkilerin bulunduğu bir ontoloji alt kümesinin oluşturulması ve
yeni ontolojiye dahil edilmesi uygun olacaktır. Bu bağlamda, modüler ontoloji
geliştirme ve mevcut alt ontoloji çıkarma yaklaşımları, büyük ontolojilerin yeniden
kullanım problemine çözüm getirmeye çalışmaktadır. Ancak ontoloji geliştirme süreçleri
ile bütünleştirilebilecek ve araç desteği sağlayan mevcut bir yöntem
bulunmamaktadır.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Ontoloji Yeniden Kullanımı için Bir Yazılım</title>
    </sec>
    <sec id="sec-4">
      <title>Mimarisi</title>
      <p>
        Ontoloji yeniden kullanımının önemine ve faydalarına rağmen getirdiği ek maliyetler
ve zorluklardan da bahsetmek gerekmektedir. İlk problem, yeniden kullanıma dahil
edilecek ontolojilerin tespit edilebilmesi ve içlerinde arama yapılabilmesidir.
Ardından bu ontolojilerin değerlendirilebilmesi ve yeniden kullanılacak parçalarının uygun
bir biçimde yeni ontolojiye aktarılması sağlanmalıdır [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Bu zorlukları, etkin bir
yöntem ve bu yöntemi destekleyen bir araç ile asgari seviyeye indirebilmek mümkündür.
      </p>
      <p>
        Yeniden kullanımı destekleyen yöntemler, genellikle büyük ontolojilerin
modülerleştirilmesi üzerine odaklanmaktadır. Ontoloji modülerleştirme, ontoloji ayırma ve alt
ontoloji çıkarma olmak üzere iki kategoriye ayrılmaktadır [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Ontoloji
modülerleştirme, ontolojiyi belirli sınırlar dahilinde birden fazla alt bölüme ayırır. Alt ontoloji
çıkarma yöntemlerinde ise kullanıcının seçmiş olduğu kavramlara bağlı dinamik bir
modül oluşturulur [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Alt ontoloji çıkarma yöntemlerinin dinamik yapısı, ontoloji
yeniden kullanımı bakımından daha etkin ve avantajlıdır.
      </p>
      <p>
        Alt ontoloji çıkarma üzerine önerilmiş çok sayıda yöntem bulunmaktadır
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ][
        <xref ref-type="bibr" rid="ref13">13</xref>
        ][
        <xref ref-type="bibr" rid="ref14">14</xref>
        ][
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Bu yöntemlerin birçoğu kullanıcının seçmiş olduğu kavramları ön
7 http://xmlns.com/foaf/spec/
8 http://ifomis.uni-saarland.de/bfo/
9 http://www.onto-med.de/ontologies/gfo/
10 http://downloads.dbpedia.org/2016-10/statistics/stats-general-stats.json
sürümünün istatistikleri dikkate alınmıştır)
(Sadece İngilizce
tanımlı veya yine kullanıcı tarafından belirlenen kurallar dahilinde işleyerek alt
ontolojiyi oluşturmaya çalışmaktadır. Kural tabanlı yöntemlerin en belirgini, Bhatt ve
arkadaşları [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] tarafından önerilmiş Materialized Ontology View Extractor (MOVE)
isimli çalışmadır. Ranwez ve arkadaşlarının yöntemi [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], kural tabanlı yöntemlerden
farklı olarak çizge dolaşımı üzerine yoğunlaşmaktadır. Ancak sadece alt sınıf ve üst
sınıf ilişkilerini kullanmaktadır.
      </p>
      <p>Mevcut alt ontoloji çıkarma yöntemlerinin temel sorunu kural tabanlı olmalarıdır.
Kural tabanlı yöntemler, seçilen kavramlar arasındaki en anlamlı patikayı bulmaktan
çok bu kavramları herhangi bir şekilde bağlamaya çalışmaktadır. İki kavram arasında
birden fazla patika olması durumunda hangisinin kullanılacağına yönelik bir
hesaplama yapılmamaktadır. Bu durum, kullanıcının seçmiş olduğu kavramlar arasındaki en
ilintili patikaların ve ihtiyaç dahilindeki en küçük alt ontolojinin çıkarılmasını
engellemektedir.</p>
      <p>
        Mevcut yöntemlerin, yeniden kullanım sürecinin diğer adımları bakımından da
eksiklikleri bulunmaktadır. Bu yöntemlerin neredeyse tamamında kullanıcının seçmiş
olduğu kavramlar temel alınmaktadır. Ancak hiçbir yöntemde, bu kavramların nasıl
seçileceği ve bu adımın nasıl kolaylaştırılacağı ile ilgili bir öneride bulunulmamıştır.
Ölçeklenebilirlik sorunu da sadece [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] çalışmasında dikkate alınmıştır. Ancak bu
çözüme yönelik bir veri mimarisi önerilmemiştir. Kullanılabilirlik, üzerinde
durulmayan diğer bir önemli problemdir. Kullanılabilirlik ile bahsetmek istediğimiz, yöntemin
ontoloji geliştirme süreci ile nasıl bütünleştirileceği ve kullanıcılara sunulacak araç
desteğidir. Sadece Noy ve Musen [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] tarafından önerilen yöntemde, Protege
üzerinde çalışan bir eklenti desteği söz konusudur.
      </p>
      <p>Çalışmamızda, yeniden kullanımı destekleyecek ve yukarıda ifade edilen sorunları
çözebilecek bir yöntem önerilmiştir. Bu yöntemin temel işleyişi, veri mimarisi, servis
bileşenleri ve eklenti desteği detaylandırılmıştır.
3.1</p>
      <sec id="sec-4-1">
        <title>Alt Ontoloji ve Anlamsal İlintililik Tabanlı Yeniden Kullanım Yöntemi</title>
        <p>Ontoloji yeniden kullanımını desteklemesini hedefleyen çalışmamız, kavramların ve
ontolojilerin aranmasından, ilgili alt ontolojinin çıkarılmasına kadar olan tüm süreç
adımları için çözümler sunmaktadır. Bu nedenle de alt ontoloji çıkarma yönteminin
yanı sıra bu yöntemi destekleyecek ve ölçeklenebilirlik problemini çözecek bir veri
mimarisi de önerilmiştir.</p>
        <p>
          Öncelikli olarak kural tabanlı yöntemlerin getirdiği eksiklikleri giderebilmek
amacıyla anlamsal ilintililik tabanlı bir alt ontoloji çıkarma yöntemi geliştirilmiştir. Bu
yöntem, seçilen kavramlar arasındaki en ilintili anlamsal patikaları [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] tespit ederek,
seçilen kavramlardan oluşan en küçük ve en ilintili alt ontolojiyi çıkarmak üzerine
odaklanmaktadır. Burada bahsedilen anlamsal ilintililik, ilgili ve ilişkili olma
durumunu ifade etmektedir [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
        <p>Çalışmamızda öncelikli olarak kavram çiftleri arasındaki en ilintili patikanın
bulunması üzerine odaklanılmıştır. Burada kullanılan yöntem, öncelikli olarak
ontolojilerin genel amaçlı çizgeler gibi değerlendirilerek kavramlar arasındaki en kısa N
patikanın bulunmasıdır. N değeri, ontolojinin büyüklüğü ve kavramlar arasındaki
ortalama ilişki sayıları gibi parametrelere göre belirlenmektedir. Bulunan en kısa N
patikanın anlamsal ilintililik değerleri hesaplandıktan sonra en anlamlı olduğu tespit edilen
patika seçilmektedir. Bu süreç Şekil-1 üzerinde gösterilmiştir.</p>
        <p>Şekil 1. Kavramlar arasındaki en ilintili patikaların bulunması süreci.</p>
        <p>
          Literatürde, anlamsal ilintililik değerlerinin hesaplanması için farklı yöntemler
bulunmaktadır. Ancak OWL (Web Ontology Language) bileşenlerini desteklemesi ve
patika tabanlı yaklaşıma daha uygun olması nedeniyle [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] çalışmasında yer verilmiş
olan yöntem ve bu yöntemin tanımladığı ilintililik değerleri kullanılmıştır. Bu
çalışmada, her bir OWL bileşeni için 0 ile 1 arasında yer alan bir ilintililik değeri
verilmiştir. Anlamsal ilintililiğin hesaplanması, genel amaçlı çizgelerden farklı olarak
maliyetlerin toplanması şeklinde yapılmamaktadır. Patika üzerinde ilerlendikçe, anlamsal
ilintililik değerinin düşmesi gerektiğinden, her bir bileşenin ilintililik değeri çarpılarak
ilerlenmektedir [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. İlintililik hesaplaması, (1) numaralı formülde gösterilmiştir. Rp
tüm patikanın ilintililiğini, her bir r ise patikada yer alan ilişkilerin ilintililiğini ifade
etmektedir.
        </p>
        <p>Rp = r1.r2.r3…rn
(1)</p>
        <p>
          Her bir kavram çifti arasındaki en anlamlı patikanın bulunması, alt ontolojinin
oluşturulabilmesi için tek başına yeterli değildir. Yöntemimizdeki amaç, en anlamlı
ve en küçük alt ontolojinin çıkarılmasıdır. Bu gereksinim, genel amaçlı çizgelere
indirgendiğinde Steiner Tree problemi ile karşılaşılmaktadır. Steiner Tree, seçilen
düğümlerin en küçük maliyetle birleştirilerek bir alt çizge oluşturulmasını tanımlayan
problemdir [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. Steiner Tree probleminde belirtilen maliyet, anlamsal ilintililik ile
değiştirilmiş ve çalışmamıza uyarlanmıştır. Steiner Tree problemi için önerilmiş çok
sayıda yöntem bulunmaktadır. Ancak çizge dolaşımına uygun ve patika tabanlı olması
nedeniyle, Takahashi ve Matsuyama [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] tarafından önerilen yöntem tercih edilmiştir.
        </p>
        <p>Takahashi ve Matsuyama yöntemi, seçilmiş düğümler arasından birinin rastgele
olarak belirlenmesi ile başlar. Bu düğüm, alt çizgeye dahil edilir. Daha sonra kalan
düğümler ve alt çizgedeki düğümler arasındaki tüm olası patika çiftlerinin maliyeti
hesaplanır. En kısa maliyete sahip olan patika eklenir ve bu patikadaki tüm düğümler
kalan düğümlerin listesinden çıkarılır. Bu işlem, kalan düğümler bitene kadar devam
eder. Bu maliyet hesaplamaları, (1) numaralı formülde belirtilen ilintililik hesabı ile
değiştirilerek yöntemimize uygun hale getirilmiştir. Ayrıca, patika ilintililik
hesaplamaları dağıtık hale getirilerek ve önbelleklenerek performansın arttırılması
sağlanmıştır. Steiner Tree hesaplaması sonucunda elde edilen alt ontoloji, taslak ontoloji olarak
kullanıcıya sunulmaktadır.
3.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Ontoloji Yeniden Kullanımını Destekleyen Veri Mimarisi</title>
        <p>Anlamsal ilintililik tabanlı alt ontoloji çıkarma yöntemi, ontoloji yeniden kullanımının
temelinde yer almaktadır. Ancak bu yöntemin işlerliğini ve ölçeklenebilirliğini
sağlamak için uygun veri mimarisinin ve bu mimari üzerinde çalışacak servis
bileşenlerinin gerçekleştirimi de kritik öneme sahiptir.</p>
        <p>Veri mimarisinin ilk gereksinimi, bulut veri modeline uygun ve ölçeklenebilir
olmasıdır. Böylelikle yöntemin yüzbinlerce kavramdan oluşan büyük ölçekli ontolojiler
için de performanslı çalışabilmesinin ilk adımı sağlanmış olacaktır. Şekil-2 üzerinde,
veri mimarisi ve bu mimari üzerinde çalışan servislerin genel yapısı gözükmektedir.</p>
        <p>Şekil 2. Yazılım mimarisi.</p>
        <p>Veri mimarisi, 3 ayrı veri modelini içermektedir. Çizge veri modeli, yeniden
kullanım kapsamında işlenecek ontolojilerin saklanacağı alandır. Doküman veri
modelinde, ontolojilere ait üst veriler ve önbellek yer alacaktır. Tam metin indeksi ise
ontolojiler içerisinde yapılacak aramalarda kullanılacaktır.</p>
        <p>Her bir veri modeli üzerinde çalışan ve mikro servis mimari yaklaşımına göre
ayrıştırılmış servisler yer almaktadır. Böylelikle arama ve alt ontoloji çıkarma gibi
işlemleri ayrı olarak ölçekleyebilmek mümkün olacaktır. İlerleyen bölümlerde veri
mimarisinin alt modelleri ve servis bileşenleri detaylandırılmıştır.
Çizge Veri Modeli</p>
        <p>Ontoloji veri modeli farklı biçimlerde saklanabilir. Özellikle büyük ontolojiler için
en uygun çözüm RDF veya ontoloji veritabanlarıdır. Bu veritabanları genellikle çizge
veri modeli üzerine kurulmuştur ve SPARQL sorgularının çalıştırılmasını bir uç
noktası üzerinden desteklemektedir.</p>
        <p>Ontoloji veritabanları SPARQL gereksinimlerini desteklese de ontolojinin genel
amaçlı bir çizge gibi dolaşımını sağlama da yetersiz kalmaktadır. Bunun ilk nedeni
SPARQL dilinde böyle bir sorgulama bileşeninin olmayışıdır. Bu nedenle, ontoloji
veri modelinin genel amaçlı bir çizge veri modeli kullanılarak saklanması yoluna
gidilmiştir. Yapılan değerlendirme çalışmaları sonucunda esneklik ve
performansından dolayı Neo4j11 çizge veritabanının kullanımı tercih edilmiştir.</p>
        <p>Ontoloji veri modelinin genel amaçlı bir çizge olarak nasıl temsil edilebileceği
Şekil-3 üzerinde gösterilmiştir. Kavramlar, nitelikler ve kimliksiz bileşenler birer çizge
düğümü olarak aktarılmıştır. Bu bileşenlerin arasındaki tüm ilişkiler ise çizgedeki
kenarlar tarafından temsil edilmiştir.</p>
        <p>Şekil 3. Ontoloji veri modelinin çizge olarak temsili.</p>
      </sec>
      <sec id="sec-4-3">
        <title>Tam Metin Arama Modeli</title>
        <p>Kullanıcılar, hangi ontolojilerin kendi yeni ontolojilerinde kullanılacağını
belirlerken, analiz çalışmalarında elde ettiği anahtar terimleri kullanır. Bu terimlerin hangi
ontolojilerde yer aldığını hızlı ve etkin bir şekilde belirleyebilmelidir. Ontolojinin
aktarıldığı çizge veri modelinin bu gereksinimi tek başına sağlayabilmesi mümkün
11 https://neo4j.com/
değildir. Bu nedenle tam metin arama yeteneğine sahip ve ölçeklenebilir bir çözüm
tercih edilmelidir.</p>
        <p>Arama ihtiyaçlarının karşılanabilmesi için bir tam metin arama motoru olan
ElasticSearch12 kullanılmıştır. Ontoloji içerisinde yer alan bileşenler tekil tanımlayıcıları
ve etiketleri ile birlikte tam metin arama motorunda indekslenmiştir.</p>
      </sec>
      <sec id="sec-4-4">
        <title>Doküman Veri Modeli</title>
        <p>Doküman veri modeli, ontolojilere ait üst verilerin saklanması, yapılandırma
bilgilerinin saklanması ve patika ve alt ontolojilere ait önbellek oluşturulması amacıyla
kullanılmaktadır.</p>
        <p>Ontoloji yapılandırma verileri, sistem içerisinde yer alan her bir ontoloji için çizge
ve tam metin veri kaynaklarına ulaşım bilgilerini içerecektir. Böylelikle ölçekleme
ihtiyaçları doğrultusunda anlık olarak değişebilecek veri kaynaklarına ulaşım
herhangi bir aksama olmadan sağlanabilecektir. Ontoloji üst verileri ise ontolojiler ile ilgili
temel istatistikleri (kavram ve nitelik sayıları, yeniden kullandığı ontoloji sayıları vb.)
ve ontolojiler arasındaki kullanım ilişkilerini saklayacaktır. En önemli bileşen olan
önbellek için de doküman veri modelinden faydalanılacaktır. Kavramlar arasında
bulunan ve bir kez işlenen en ilintili patikalar tüm sürecin tekrar etmemesi amacıyla
önbellek içerisinde saklanacak ve yöntemin başarımı arttırılacaktır. Doküman veri
modelinin gerçekleştirimi için MongoDb13 veritabanından faydalanılmıştır.
3.3</p>
      </sec>
      <sec id="sec-4-5">
        <title>Uygulama Bileşenleri</title>
        <p>Yöntem ve veri mimarisinin ölçeklenebilirliğinin tam anlamıyla sağlanabilmesi için
servis mimarisinin de bu yapıya uygun olması gereklidir. Bu nedenle 3 temel servis
modellenmiş ve geliştirilmiştir. İlk ve en önemli servis patika ve alt ontoloji
süreçlerini işletecek olan ontoloji servisidir. Arama servisi, tam metin destekli arama
işlemlerini gerçekleştirecektir. Üst veri servisinden ise ontoloji üst verilerine ve önbelleklere
erişim sağlanacaktır.</p>
        <p>Servis bileşenlerinin ölçeklenebilir ve bulut mimarisine uygun olması iki önemli
işlevsel olmayan gereksinimdir. Bu nedenle mikro servis mimarisine uygun bir
yaklaşım izlenmiş ve farklı amaçlı bileşenler farklı servisler olarak geliştirilmiştir.
Böylelikle yükün oluştuğu noktalarda daha esnek bir yatay ölçekleme sağlanabilecektir.</p>
        <p>Çalışmamızın bir diğer amacı da yöntemin farklı uygulamalar ve araçlar tarafından
kolaylıkla bütünleştirilebilir olmasını sağlamaktır. Bu nedenle tüm servisler REST
(REpresentational State Transfer) mimarisine uygun olarak HTTP protokolü
üzerinden JSON veri biçimi ile hizmet vermektedir.
12 https://www.elastic.co/
13 https://www.mongodb.com/
Mevcut ontoloji veri kaynakları, ontolojilerin sorgulanabilmesi ve işlenebilmesi için
SPARQL dahil olmak üzere çeşitli uç noktaları sunmaktadır. Bu uç noktaları üzerinde
SPARQL sorguları çalıştırılarak ontoloji işlenebilir. Ancak bu ontolojileri, kendi veri
modellerine ve kullandıkları teknolojilere bağlı olarak yöntemimiz kapsamında
ölçeklenebilir ve yüksek performanslı olarak işleyebilmek mümkün değildir. Bu nedenle
kullanılacak kaynakların kendi veri modelimize aktarımı sağlanmalıdır.</p>
        <p>Aktarım çalışmaları kapsamında bir araç geliştirilmiştir. Bu araç ontoloji dosyaları
üzerinden eriştiği ontoloji kaynaklarını işlemekte, filtrelemekte ve ontoloji ve tam
metin arama veri modellerine aktarımını sağlamaktadır. Aktarım aracının geliştirim
çalışmaları kapsamında SNOMED CT, FMA, Dbpedia ve Yago ontolojilerinin
aktarımı sağlanmıştır</p>
        <p>Mevcut durumunda, kullanılacak veri kaynaklarının tarafımızdan aktarımının
yapılması gereklidir. Ancak ilerleyen çalışmalarda kullanıcıların kullanmak istedikleri
ontolojileri aktarabilecekleri daha etkin bir çözüm sunulması planlanmaktadır.
4</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Ontoloji Yeniden Kullanım Aracı</title>
      <p>Ontoloji yeniden kullanımını destekleyen yöntemimizin servis bileşenleri REST
modeline uygun uç noktaları ile dış erişime açılmıştır. Böylelikle, farklı uygulamalar
tarafından bütünleştirilebilmesine olanak sağlanmaktadır. Ancak ontoloji
mühendislerinin ve kullanıcıların geliştirme süreci boyunca kullanabilecekleri görsel bir araca da
ihtiyaçları vardır. Bu durum, yöntemimizin bir araç ile desteklenmesi gereksinimini
doğurmaktadır.</p>
      <p>
        Geliştirilecek aracın tüm ontoloji geliştirme süreçleri ile bütünleşik olması
kullanılabilirlik bakımından önemlidir. Bu nedenle mevcut bir ontoloji geliştirme editörüne
yeniden kullanım süreçlerini dahil eden bir eklenti geliştirilmesi daha uygun olacaktır.
Editör olarak, ontoloji geliştirme çalışmaları için standart haline gelmiş Protege tercih
edilmiştir. Protege, esnek ve uyarlanabilir bir eklenti mimarisi sunmaktadır [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>Geliştirilen eklentimizin yüklenmesi ile birlikte Protege üst menüsünde
“Knowledge Builder” isimli menü ve bu menünün altında yer alan “Search” ve “Settings” alt
menüleri oluşmaktadır (Bkz. Şekil-4).</p>
      <p>Şekil 4. Yeniden kullanım eklentisi.</p>
      <p>Settings menü öğesi, yeniden kullanım servislerine ulaşım adresleri ve kullanılması
istenen ontoloji kaynakları ile ilgili yapılandırma adımlarını içermektedir. Search alt
menü öğesi, ontoloji yeniden kullanım sürecini başlatmaktadır. Açılan kullanıcı
arayüzü üzerinden ontolojilerde aramalar yapılmakta ve seçilen kavramlar görsel
gezinim arayüzüne aktarılmaktadır. Gezinim arayüzü Şekil-5 üzerinde görülmektedir.</p>
      <p>Şekil 5. Gezinim arayüzü.</p>
      <p>Geliştirdiğimiz eklenti, servis bileşenlerinin sunduğu REST uç noktaları ile
yöntemimizle iletişim sağlamaktadır. Ontolojileri sorgulayabilmekte, kavramlar arasındaki
ilişkileri örüp alt ontoloji çıkararak Protege üzerinde tanımlanmış olan ontolojiye
dahil edebilmektedir.
5</p>
    </sec>
    <sec id="sec-6">
      <title>Sonuçlar ve Gelecek Çalışmalar</title>
      <p>Bu çalışmada, ontoloji yeniden kullanımının önemi ve zorlukları üzerinde durulmuş
ve ontoloji yeniden kullanımını kolaylaştıracak bir yöntem ve yazılım mimarisi
önerilmiştir. Ayrıca geliştirilen yeniden kullanım aracı, bir Protege eklentisi olarak
sunulmuş ve kullanılabilirliğinin arttırılması amaçlanmıştır.</p>
      <p>Geliştirilen alt ontoloji çıkarma yönteminin anlamsal ilintililik tabanlı oluşu, kural
tabanlı mevcut yöntemlerin eksiklerini gidermeyi amaçlamaktadır. Ayrıca mevcut
yöntemlerin, ontoloji yeniden kullanım sürecindeki tüm adımları destekleyecek bir
araç sunmamış olması, çalışmamızı önemli kılan bir diğer faktördür.
Ölçeklenebilirlik, ontoloji yeniden kullanımının önündeki önemli bir engeldir. Yüzbinlerce kavram
ve milyonlarca ilişkiden oluşan ontolojilerin işlenip yeni ontolojiye dahil edilebilmesi,
bu alandaki yöntemleri kısıtlamaktadır. Yöntemin ölçeklenebilirliğinin ilk kriteri ise
ölçeklenebilir veri mimarisinin kullanılmasıdır. Çalışmamızda, üzerinde önemle
durulan noktalardan bir diğeri de ölçeklenebilir bir veri mimarisi geliştirmek olmuştur.</p>
      <p>İlerleyen dönemlerde, aracın geliştirilmesine yönelik bazı çalışmaların yapılması
planlanmaktadır. Mevcut durumda, ontolojilerin tarafımızca geliştirilen veri modeline
aktarımı gereklidir. Bu durum kullanıcıları sisteme aktarılmamış ontolojileri
kullanabilmesi açısından bir eksikliktir. Bu sürecin kullanıcıların taleplerine bağlı ve
otomatik bir hale getirilmesi amaçlanan öncelikli çalışmadır.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Simperl</surname>
          </string-name>
          , E.:
          <article-title>Reusing ontologies on the Semantic Web: A feasibility study</article-title>
          .
          <source>Data &amp; Knowledge Engineering</source>
          .
          <volume>68</volume>
          ,
          <fpage>905</fpage>
          -
          <lpage>925</lpage>
          (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <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>Scientific American</source>
          .
          <volume>284</volume>
          ,
          <fpage>28</fpage>
          -
          <lpage>37</lpage>
          (
          <year>2001</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Ding</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Finin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Joshi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pan</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Scott</given-names>
            <surname>Cost</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Peng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            ,
            <surname>Reddivari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Doshi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.C.</given-names>
            ,
            <surname>Sachs</surname>
          </string-name>
          , J.:
          <article-title>Swoogle: A Search and Metadata Engine for the Semantic Web</article-title>
          .
          <source>In: 13th ACM Conference on Information and Knowledge Management</source>
          , Washington D.C. (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. M.
          <string-name>
            <surname>d'Aquin</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Sabou</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Dzbor</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Baldassarre</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Gridinoc</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Angeletou</surname>
          </string-name>
          , E. Motta,
          <article-title>WATSON: a gateway for the semantic web</article-title>
          ,
          <source>In: Proceedings of the Fourth European Semantic Web Conference (ESWC)</source>
          ,
          <source>Poster Session, Austria</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>D</given-names>
            <surname>'Aquin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Noy</surname>
          </string-name>
          ,
          <string-name>
            <surname>N.F.</surname>
          </string-name>
          :
          <article-title>Where to publish and find ontologies? A survey of ontology libraries</article-title>
          .
          <source>Journal of Web Semantics</source>
          .
          <volume>11</volume>
          ,
          <fpage>96</fpage>
          -
          <lpage>111</lpage>
          (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Uschold</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>King</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Towards a methodology for building ontologies</article-title>
          .
          <source>In: Workshop on Basic Ontological Issues in Knowledge Sharing, held in conjunction with IJCAI-95</source>
          . (
          <year>1995</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Gruninger</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fox</surname>
            ,
            <given-names>M.S.</given-names>
          </string-name>
          :
          <article-title>Methodology for the design and evaluation of ontologies</article-title>
          .
          <source>In: IJCAI95 Workshop on Basic Ontological Issues in Knowledge Sharing</source>
          . ,
          <string-name>
            <surname>Montreal</surname>
          </string-name>
          (
          <year>1995</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Fernández-López</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gómez-Pérez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Juristo</surname>
          </string-name>
          , N.:
          <article-title>Methontology: from ontological art towards ontological engineering</article-title>
          .
          <source>In: Proc. Symposium on Ontological Engineering of AAAI</source>
          (
          <year>1997</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Noy</surname>
            ,
            <given-names>N.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          :
          <article-title>Ontology Development 101: A Guide to Creating Your First Ontology</article-title>
          .
          <source>Stanford Knowledge Systems Laboratory</source>
          .
          <volume>25</volume>
          (
          <year>2001</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Pinto</surname>
            ,
            <given-names>H.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tempich</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Staab</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          : DILIGENT:
          <article-title>Towards a fine-grained methodology for DIstributed, Loosely-controlled and evolvInG Engingeering of oNTologies</article-title>
          . In: de Mantaras,
          <string-name>
            <given-names>R.L.</given-names>
            and
            <surname>Saitta</surname>
          </string-name>
          , L. (eds.)
          <source>Proceedings of the 16th European Conference on Artificial Intelligence (ECAI</source>
          <year>2004</year>
          ), pp.
          <fpage>393</fpage>
          -
          <lpage>397</lpage>
          . IOS Press, Valencia, Spain (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Doran</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <source>Ontology Modularization: Principles and Practice</source>
          , (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Bhatt</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Flahive</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wouters</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rahayu</surname>
            ,
            <given-names>J.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taniar</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dillon</surname>
            ,
            <given-names>T.S.:</given-names>
          </string-name>
          <article-title>A Distributed Approach to Sub-Ontology Extraction</article-title>
          .
          <source>In: AINA (1)</source>
          . pp.
          <fpage>636</fpage>
          -
          <lpage>641</lpage>
          . IEEE Computer Society (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Noy</surname>
            ,
            <given-names>N.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Musen</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          :
          <article-title>Specifying Ontology Views by Traversal</article-title>
          . In: International Semantic Web Conference. pp.
          <fpage>713</fpage>
          -
          <lpage>725</lpage>
          . Springer Berlin (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Seidenberg</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rector</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Web ontology segmentation: analysis, classification and use</article-title>
          .
          <source>In: WWW '06: Proceedings of the 15th international conference on World Wide Web</source>
          . pp.
          <fpage>13</fpage>
          -
          <lpage>22</lpage>
          . ACM Press, Edinburgh, Scotland (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Ranwez</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ranwez</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Janaqi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Subontology extraction using hyponym and hypernym closure on is-a directed acyclic graphs</article-title>
          .
          <source>IEEE Transactions on Knowledge and Data Engineering</source>
          .
          <volume>24</volume>
          ,
          <fpage>2288</fpage>
          -
          <lpage>2300</lpage>
          (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Giray</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ünalir</surname>
            ,
            <given-names>M.O.:</given-names>
          </string-name>
          <article-title>A method for ontology-based semantic relatedness measurement</article-title>
          .
          <source>Turkish Journal of Electrical Engineering and Computer Sciences</source>
          .
          <volume>21</volume>
          ,
          <fpage>420</fpage>
          -
          <lpage>438</lpage>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Gilbert</surname>
            ,
            <given-names>E.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pollak</surname>
            ,
            <given-names>H.O.</given-names>
          </string-name>
          :
          <article-title>Steiner Minimal Trees</article-title>
          .
          <source>SIAM Journal on Applied Mathematics</source>
          .
          <volume>16</volume>
          ,
          <fpage>1</fpage>
          -
          <lpage>29</lpage>
          (
          <year>1968</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Takahashi</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <article-title>Matsuyama, a: An approximate solution for the Steiner problem in graphs</article-title>
          .
          <source>Math Japonica</source>
          .
          <volume>24</volume>
          ,
          <fpage>573</fpage>
          -
          <lpage>577</lpage>
          (
          <year>1980</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. Anatomy of a Plugin, https://protegewiki.stanford.edu/wiki/PluginAnatomy, (Son Erişim:
          <volume>17</volume>
          .
          <fpage>06</fpage>
          .
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>