• Sonuç bulunamadı

DSML4BDI DİLİNİN JACAMO PLATFORMU İLE GENİŞLETİLMESİ

N/A
N/A
Protected

Academic year: 2022

Share "DSML4BDI DİLİNİN JACAMO PLATFORMU İLE GENİŞLETİLMESİ"

Copied!
99
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Uluslararası Bilgisayar Anabilim Dalı

İzmir 2020 Ufuk FIRTINA

T.C.

EGE ÜNİVERSİTESİ Fen Bilimleri Enstitüsü

DSML4BDI DİLİNİN JACAMO PLATFORMU İLE GENİŞLETİLMESİ

Yüksek Lisans Tezi

(2)
(3)

T.C.

EGE ÜNİVERSİTESİ Fen Bilimleri Enstitüsü

Uluslararası Bilgisayar Anabilim Dalı Bilgi Teknolojileri

Ufuk FIRTINA

DSML4BDI DİLİNİN JACAMO PLATFORMU İLE GENİŞLETİLMESİ

Danışman: Doç. Dr. Geylani KARDAŞ

İzmir 2020

(4)
(5)
(6)
(7)

EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ

ETİK KURALLARA UYGUNLUK BEYANI

EÜ Lisansüstü Eğitim ve Öğretim Yönetmeliğinin ilgili hükümleri uyarınca Yüksek Lisans Tezi olarak sunduğum “DSML4BDI Dilinin JaCaMo Platformu ile Genişletilmesi” başlıklı bu tezin kendi çalışmam olduğunu, sunduğum tüm sonuç, doküman, bilgi ve belgeleri bizzat ve bu tez çalışması kapsamında elde ettiğimi, bu tez çalışmasıyla elde edilmeyen bütün bilgi ve yorumlara atıf yaptığımı ve bunları kaynaklar listesinde usulüne uygun olarak verdiğimi, tez çalışması ve yazımı sırasında patent ve telif haklarını ihlal edici bir davranışımın olmadığını, bu tezin herhangi bir bölümünü bu üniversite veya diğer bir üniversitede başka bir tez çalışması içinde sunmadığımı, bu tezin planlanmasından yazımına kadar bütün safhalarda bilimsel etik kurallarına uygun olarak davrandığımı ve aksinin ortaya çıkması durumunda her türlü yasal sonucu kabul edeceğimi beyan ederim.

03/02/2020

Ufuk FIRTINA

(8)
(9)

ÖNSÖZ

Kanı-istek-hedef (BDI) modeline dayanan etmen sistemlerinin geliştirilmesinde kullanılan birçok mantıksal dil karmaşık yapıdadır. Bu yüzden geliştiriciler yazılım geliştirme süreçlerinde zorluk çekmektedirler. Bu zorluğu azaltmak için yapılan bir takım çalışmada bu etmenlere ait yazılımların model- güdümlü geliştirilme prensipleri uygulanarak daha kolay bir biçinde hazırlanmasına imkân veren alana-özgü modelleme dilleri ortaya çıkarılmıştır.

Bunlardan biri de DSML4BDI’dır. Bu dil, etmen yazılımlarının BDI modeline uygun bir şekilde, model-güdümlü olarak geliştirilmesini sağlayan bir alana-özgü modelleme dili olarak sunulmuştur. Her ne kadar DSML4BDI özellikle etmen içsel planlarının BDI modeline göre görsel bir şekilde, model-güdümlü geliştirilmesini sağlasa da etmen geliştiricileri planlamaya ait kapsamlı mantıksal ve matematiksel ifadeleri DSML4BDI’da modellemekte zorlanmaktadır. Bu tez çalışması ile DSML4BDI dilinin etmenlerin ortak kullanabileceği sanal ortamların ve MAS organizasyon yapısının programlanmasını destekleyen JaCaMo platformu ile genişletilerek dilin modelleme ve kod üretimi yeteneklerinin bu yeni yapıları da destekleyecek biçimde arttırılması hedeflenmiştir.

DSML4DBI dilinin yeteneklerinin arttırılması ve kullanıcıya daha gelişmiş bir yazılım geliştirme dili sunulması fikrinden yola çıkılarak tez çalışmasının yol haritası ve kapsamına karar verilmiştir. Literatürde mevcut benzer çalışmaların incelenmesi, oluşturulan yeni dilin isterlerinin analiz edilmesi, dil bileşenlerinin belirlenmesi, bunların geliştirilmesi ve elde edilen sonuçların değerlendirilmesi ile bu tezde DSML4BDI 2.0 adı verilen yeni bir alana özgü modelleme dili sunulmuştur.

İZMİR 03/02/2020

Ufuk FIRTINA

(10)
(11)

ÖZET

DSML4BDI DİLİNİN JACAMO PLATFORMU İLE GENİŞLETİLMESİ

FIRTINA, Ufuk

Yüksek Lisans Tezi, Uluslararası Bilgisayar Anabilim Dalı Tez Danışmanı: Doç. Dr. Geylani KARDAŞ

Şubat 2020, 99 sayfa

Etmen-yönelimli Yazılım Mühendisliği (AOSE) alanında Çok-etmenli sistemlerin (MAS) geliştirilmesi için çeşitli alana-özgü modelleme dilleri (DSML) ortaya çıkarılmıştır. Etmenlerin iç yapılarının Kanı-İstek-Hedef (BDI) gibi modellere göre tasarlanması, MAS sistemi içerisinde etmenlerin ortak kullanabileceği hesaplama ortamlarının oluşturulması ve etmen organizasyon yapılarının tanımlanması bir MAS’ın oluşturulması için önemlidir. Bu bağlamda, DSML4BDI AOSE alanında ortaya çıkmış bir DSML’dir. Jason platformuna uygun bir üstmodele sahip olan dil, etmenlerin iç yapılarının modellenmesini desteklese de MAS’ların oluşturulması açısından yetersiz kalmaktadır. Geliştiriciler etmenlerin kullanacağı ortak çalışma alanlarının oluşturulması ve organizasyon yapısının tanımlanması gibi konularda zorlanmaktadırlar. Bu tezde DSML4BDI’ın sözü edilen bu eksikliklerini gideren ve oluşturulan modellerin çalıştırma platformu zenginliğini arttıran DSML4BDI 2.0 adı verilen bir DSML geliştirilmiştir.

DSML4BDI 2.0 için öncelikle Etmen, Ortam ve Organizasyon bakış açılarını içerecek bir üstmodel tasarlanmıştır. Sonrasında bu üstmodele dayanan bir grafiksel somut gösterim geliştirilmiştir. Geliştiriciler bu grafiksel gösterimi kullanarak üzerinde çalıştıkları MAS’ları modelleyebilmektedir. Modelden metne dönüşümler üzerinden sağlanan bir semantik ile DSML4BDI 2.0 modelleri çevre programlamayı destekleyen JaCaMo platformunda çalıştırılabilmektedir. Böylece DSML4BDI 2.0 ile oluşturulan MAS modellerinden kod çıktısı üretebilir duruma getirilmiştir. Son olarak çeşitli MAS’ların geliştirilmesini içeren durum çalışmalarından elde edilen sonuçlar analiz edilerek DSML4BDI 2.0’ın bir değerlendirilmesi de yine tez kapsamında yerine getirilmiştir.

Anahtar sözcükler: Alana-özgü modelleme dili, Etmen-yönelimli yazılım mühendisliği, Çok-etmenli sistem, DSML4BDI 2.0.

(12)

viii

(13)

ABSTRACT

EXTENDING DSML4BDI LANGUAGE WITH JACAMO PLATFORM

FIRTINA, Ufuk

MSc in International Computer

Supervisor: Assoc. Prof. Dr. Geylani KARDAŞ February 2020, 99 pages

In Agent-oriented Software Engineering (AOSE) research field, various domain-specific modeling languages (DSMLs) are introduced for the development of Multi-agent Systems (MASs). It is important to design the internal structures of the agents according to architectures such as Belief-Desire- Intention (BDI), to create execution environments that can be used by the agents in the MAS system and to define the organizational structures of the agents.

Within this context, DSML4BDI is one of the DSMLs proposed for AOSE. The language, which has a metamodel conforming to the Jason platform, supports the modeling of the internal structures of the agents. However, provided modeling elements are insufficient especially for the creation of MAS, i.e. developers are struggling both to create common execution environments which agents will use and to define organizational structures. In this thesis, a DSML, called DSML4BDI 2.0, is developed which eliminates the aforementioned deficiencies of DSML4BDI and increases the execution platform richness of the created models.

A metamodel is designed to include Agent, Environment and Organization viewpoints for DSML4BDI 2.0. A graphical concrete syntax is derived to create MAS models conforming to this metamodel. Hence, developers can model the MASs to be implemented by using this graphical notation. Based on the semantics provided from model to text transformations, DSML4BDI 2.0 models can be run on the JaCaMo platform which supports environment programming. Thus, it is possible to generate code output from the models created with DSML4BDI 2.0.

Finally, an evaluation of DSML4BDI 2.0 is carried out by analyzing the results obtained from various MAS development case studies.

Keywords: Domain-specific modeling language, Agent-oriented software engineering, Multi-agent system, DSML4BDI 2.0.

(14)

x

(15)

İÇİNDEKİLER

Sayfa

ÖNSÖZ ... v

ÖZET ... vi

ABSTRACT ... ix

İÇİNDEKİLER DİZİNİ ... xi

ŞEKİLLER DİZİNİ ... xv

TABLOLAR DİZİNİ ... xviii

KISALTMALAR DİZİNİ ... xix

1.GİRİŞ ... 1

2.ALTYAPI ... 4

2.1 Etmen ve Çok Etmenli Sistemler ... 4

2.2 DSML4BDI ... 5

2.3 JaCaMo Platformu ... 6

2.3.1 Jason Platformu ... 7

2.3.2 CArtAgO Platformu ... 9

(16)

xii

İÇİNDEKİLER (devam)

Sayfa

2.3.3 Moise Platformu ... 12

2.3.4 Model Gülümlü Yazılım Geliştirme ve Alana-özgü Modelleme Dilleri ... 15

2.4 Kullanılan Teknolojiler ve Araçlar ... 16

3.İLGİLİ ÇALIŞMALAR ... 18

3.1 MAS Üstmodelleme Çalışmaları ... 18

3.2 MAS DSML/DSL Çalışmaları ... 19

4. DSML4BDI 2.0 ... 23

4.1 Üstmodel ... 23

4.1.1 Etmen (Agent) Üstmodeli ... 25

4.1.2 Ortam (Environment) Üstmodeli ... 27

4.1.3 Organizasyon (Organisation) Üstmodeli ... 28

4.2 Grafiksel Görsel Gösterim ... 30

4.2.1 MAS Bakış Açısı ... 32

4.2.2 Etmen Bakış Açısı ... 34

4.2.3 Plan Gövdesi Bakış Açısı ... 36

(17)

İÇİNDEKİLER (devam)

Sayfa

4.2.4 Ortam (Environment) Bakış Açısı ... 36

4.2.5 Organizasyon (Organisation) Bakış Açısı ... 37

4.3 Dönüşümsel Semantik ... 38

4.3.1 Etmen (Agent) Modellerinin Dönüşüm Semantiği ... 40

4.3.2 Ortam (Environment) Modellerinin Dönüşüm Semantiği ... 41

4.3.3 Organizasyon (Organisation) Modellerinin Dönüşüm Semantiği ... 43

5.DSML4BDI 2.0 DİLİNİN KULLANIM ÖRNEĞİ ... 45

5.1 Coordination MAS Bakış Açısı ... 45

5.2 Coordination Etmen Bakış Açısı ... 47

5.3 Coordination Ortam Bakış Açısı ... 49

5.4 Coordination Organizasyon Bakış Açısı ... 51

6.DEĞERLENDİRME ... 53

6.1 Etmen Bakış Açısı Değerlendirmesi ... 55

6.2 Ortam Bakış Açısı Değerlendirmesi ... 58

6.3 Organizasyon Bakış Açısı Değerlendirmesi ... 60

6.4 Genel Değerlendirme ... 61

7. SONUÇ ... 63

(18)

xiv

KAYNAKLAR DİZİNİ ... 65 TEŞEKKÜR ... 72 ÖZGEÇMİŞ ... 73 EKLER ...

(19)

ŞEKİLLER DİZİNİ

Şekil Sayfa

2.1 JaCaMo Çok-etmenli sistem yapısı ((Boissier et al., 2013)’dan

alınmıştır.) ... 7

2.3 Jason İnanç Yapısı ((Bordini et al., 2007b))’dan alınmıştır.) ... 8

2.3 Jason Plan Yapısı ((Bordini et al., 2007b))’dan alınmıştır.) ... 9

2.4 Artifact ve etmen ilişkisi ((Ricci et al., 2006))’dan alınmıştır.) ... 10

2.5 CArtAgO Kod Yapısı ((Ricci et al., 2006))’dan alınmıştır.) ... 11

2.6 Futbol Takımı Yapısı ((Hübner et al., 2002b))’dan alınmıştır.) ... 13

2.7 Örnek Moise Kod Yapısı ... 14

4.1 DSML4BDI 2.0 Üstmodeli ... 24

4.2 DSML4BDI 2.0 Etmen (ing. Agent) üstmodeli ... 26

4.3 DSML4BDI 2.0 Ortam (ing. Environment) üstmodeli ... 28

4.4 DSML4BDI 2.0 Organizasyon (ing. Organisation) üstmodeli ... 30

4.5 DSML4BDI 2.0 IDE ... 32

4.6 DSML4BDI 2.0 somut söz dizimi MAS bakış açısı için modelleme paletinin ekran görüntüsü ... 33

4.7 DSML4BDI 2.0 IDE’de etmen özelliklerinin girişi ... 33

4.8 DSML4BDI 2.0 somut sözdizimi Etmen bakış açısı için modelleme paletinin ekran görüntüsü ... 35

(20)

xvi

ŞEKİLLER DİZİNİ (devam)

Şekil Sayfa

4.9 DSML4BDI 2.0 IDE’de Event özelliklerinin girişi ... 35

4.10 DSML4BDI 2.0 somut sözdizimi Plan Gövdesi bakış açısı için modelleme paletinin ekran görüntüsü ... 36

4.11 DSML4BDI 2.0 somut sözdizimi Ortam bakış açısı için modelleme paletinin ekran görüntüsü ... 37

4.12 DSML4BDI 2.0 somut sözdizimizi Organizasyon bakış açısı için modelleme paletinin ekran görüntüsü ... 38

4.13 Etmen kod dönüşümü semantiğinden bir bölüm ... 40

4.14 Etmen özyinelemeli fonksiyon ve örnek kod dönüşüm semantiği ... 41

4.15 Eser tabanlı Java sınıfı dönüşüm semantiği ... 42

4.16 Eser sınıfı kod dönüşüm örneği ... 42

4.17 Organizasyon kod dönüşüm semantiği örneği ... 43

4.18 Organizasyon örnek kod dönüşümü ... 44

5.1 Coordination MAS tasarımı ... 46

5.2 Palet elemanlarının özellikleri ... 46

5.3 Auctioner etmeninin iç yapısı ... 48

5.4 do_auction body iç yapısı ... 49

(21)

ŞEKİLLER DİZİNİ (devam)

Şekil Sayfa

5.5 Üretilen do_auction planına ait Jason kodu ... 49

5.6 AuctionArtifact iç yapısına ait model ... 50

5.7 Üretilen AuctionArtifact Java kodu ... 51

5.8 Rol ve Hedef özellikleri ... 51

5.9 Organizasyon yapısı ... 52

5.10 Organizasyon kod üretimi ... 52

6.1 Etmen bakış açısı için kod üretim performansı ... 57

6.2 Etmen bakış açısı için bileşen temelli üretim performansı ... 57

6.3 Ortam bakış açısı için kod üretim performansı ... 59

6.4 Ortam bakış açısı için bileşen temelli üretim performansı ... 60

6.5 Organizasyon bakış açısı için kod üretim performansı ... 61

6.6 Organizasyon bakış açısı için bileşen temelli üretim performansı ... 61

6.7 DSML4BDI 2.0 genel kod üretim performansı ... 62

(22)

xviii

TABLOLAR DİZİNİ

Tablo Sayfa

4.1 DSML4BDI 2.0 aracı görsel elemanları ... 31

(23)

KISALTMALAR DİZİNİ

Kısaltmalar

A & A Etmenler ve Yapılar (ing. Agents & Artifacts)

ACL Etmen İletişim Dili (ing. Agent Communication Language) AOSE Etmen Tabanlı Yazılım Mühendisliği (ing. Agent Oriented

Software Engineering)

BDI Kanı-İstek-Hedef (ing. Belief-Desire-Intention) DSL Alana-özgü Dil (ing. Domain-specific Language)

DSML Alana-özgü Modelleme Dili (ing. Domain-specific Modeling Language)

FAML FAME Etmen Tabanlı Modelleme Dili (ing. FAME Agent- oriented Modelling Language)

M2M Modelden Modele Dönüşüm (ing. Model to Model Transformation)

M2T Modelden Metine Dönüşüm (ing. Model to Text Transformation)

MAS Çok-etmenli Sistem (ing. Multi-agent System)

MDA Model Güdümlü Mimari (ing. Model Driven Architecutre) MDD Model Güdümlü Geliştirme (ing. Model Driven

Development)

OCL Nesne Kısıt Dili (ing. Object Constraint Language) OMG Nesne Yönetim Grubu (ing. Object Management Group)

(24)

xx

KISALTMALAR DİZİNİ (devam)

Kısaltmalar

PDT Prometheus Tasarım Aracı (ing. Prometheus Design Tool) SWS Anlamsal Web Servis (ing. Semantic Web Service)

(25)
(26)
(27)

1. GİRİŞ

Akıllı etmenler (ing. Intelligent agents) belirli problemlere çözüm getirmek için birbirleri ve çevre ile etkileşimde bulunan ve otonom davranış gösterebilen yazılım bileşenleridir (Wooldridge and Jennings, 1995). Etmenler bir araya gelerek Çok-etmenli Sistemler’i (ing. Multi-agent Systems) (MAS) oluştururlar (Weiss. 2016). Bu sistemlerin oluşturulmasında ve etmenlerin içsel yapılarının programlanmasında Kanı-İstek-Hedef (ing. Belief-Desire-Intention) (BDI) mimarisi ya da modeli önemli bir yere sahiptir (Bordini and Hübner, 2006). BDI (Rao and Georgef, 1998) mimarisi, etmenlerin inanç, kanı ve istek yapıları ile programlanmasını sağlar. Pro-aktif ve re-aktif yazılım etmenlerinin programlanması BDI mimarisi ile sağlansa da bu mimariyi geliştirme süreci karmaşık olabilir. Bunun nedeni etmen programlanmasında kullanılan mantıksal yazılım dillerinin diğer klasik yazılım dillerinden farklı bir şekilde çalışıyor olmasıdır. Bundan dolayı etmen yazılımlarının kodlanması zorlu bir süreç haline gelebilir. Ayrıca MAS’ların açık sistemler olması ve dağıtık yapıları süreci zorlaştıran diğer etkenlerdir. Bu durumu kolaylaştırmak için farklı yöntemler geliştirilmiştir.

Etmen programlanmasını kolaylaştırmak ve MAS’ların geliştirilmesini desteklemek amacıyla çeşitli araştırmalar yapılmıştır. Bu kapsamda Etmen- yönelimli Yazılım Mühendisliği (ing. Agent-oriented Software Engineering) (AOSE) alanı ortaya çıkmıştır. Araştırmacılar etmenlerin özelliklerini ve ilişkilerini içeren üstmodeller (ing. Metamodel) oluşturmuşlardır. Üstmodellerin oluşturulması MAS’lar için alana-özgü modelleme dillerinin (ing. Domain- specific Modeling Language) (DSML) ortaya çıkmasına da bir temel oluşturmuştur. DSML’ler etmenlerin iç yapılarının kurgulanması, etmenlerin çeşitli sanal ortamları kullanabilmesi ve birbirleri ile ilişkilerinin modellenmesi için bir geliştirme ortamı sağlamaktadır.

Zaman içerisinde MAS’lar için özellikle BDI modeline uygun olarak etmen geliştirmeyi kolaylaştırmayı amaç edinen çeşitli DSML üretme çalışmaları (Thangarajah et al., 2005; Gascuena et al., 2012; Challenger et al., 2014; Wautelet and Kolp, 2016; Faccin and Nunes, 2017; Kardas et al., 2018) literatürde yer almaktadır. Bunlardan biri de DSML4BDI (Kardas et al., 2018) dilidir.

DSML4BDI, etmenlerin görsel modellenmesini ve elde edilen modellerden işletilebilir yazılım kodunun üretimi sağlamaktadır. DSML4BDI, BDI mimarisine uygun oluşturulan bir üstmodel sunar. DSML4BDI, oluşturulan etmen

(28)

2

modellerinden Jason (Bordini et al., 2006) kodu çıktısı üretir. Jason, BDI mimarisi ile etmenlerin temel yapılarının programlanması için kullanılır. Ancak bir MAS içindeki etmenlerin, organizasyon yapısı içerisindeki etkileşimlerinin sağlanması ve farklı sanal ortamların sunduğu fonksiyonel yapıları kullanabilmeleri de önemlidir. Bahsedilen bu iki özellik DSML4BDI dili tarafından tam olarak desteklenmemektedir. Her ne kadar etmen iç yapılarının BDI mimarisine göre modellenmesi bu dil ile sağlansa da etmen planlamaya ait kapsamlı mantıksal ve matematiksel ifaderin modellenmesi DSML4BDI’de kısıtlı seviyededir. Ayrıca MAS’ların modellenmesi sürecinde ihtiyaç duyulan Ortam (ing. Environment) ve Organizasyon (ing. Organisation) bakış açılarının tam olarak sağlanmaması da DSML4BDI’ın MAS geliştirmede kullanılmasında zayıf kalmasına neden olmaktadır.

Bu tezde DSML4BDI dilinin yukarıda belirtilen eksikliklerini gidermek ve özelliklerini arttırmak amacıyla dilin mevcut Etmen bakış açısına ek olarak, Ortam ve Organizasyon bakış açıları ile genişletilmesi sağlanmıştır. Geliştirilen bu yeni dile DSML4BDI 2.0 adı verilmiştir. DSML4BDI 2.0 etmen iç yapısının tasarlanması ve modellenmesi yanında etmen ortamlarının (ing agent environment) mantıksal ve matematiksel hesaplamaların yapıldığı fonksiyonların oluşturulması ve MAS’taki etmenlerin hedef ve planları doğrultusunda organize edilmesi özelliklerini bir arada sağlamaktadır. DSML4BDI 2.0 ile modellenen etmenlerin çevresel programlamayı destekleyen JaCaMo platformunda (Boissier vd., 2013) çalıştırılması için işletimsel bir dil semantiği de yine bu tez kapsamında sunulmuştur. Böylece DSML4BDI’da sadece Jason düzeyinde kalan etmen platformu desteği DSML4BDI 2.0’da çevre yapısının programlanması ve MAS organizasyon yapısının oluşturulmasına imkân verecek şekilde genişletilmiştir.

Tez çalışması, TÜBİTAK Araştırma Destek Programları Başkanlığı (ARDEB) tarafından desteklenen 115E591 no’ lu “AgentDSM-Eval: Çok-Etmenli Sistem Alana-özgü Modelleme Dilleri için bir Değerlendirme Çerçevesinin Geliştirilmesi” isimli Ar-Ge projesi kapsamında yürütülmüştür. Bu projede MAS DSML’lerinin değerlendirmesini sağlayacak bir değerlendirme çerçevesi geliştirilmektedir. Değerlendirme çerçevesinin üzerinde uygulanması hedeflenen dillerden biri de yine bu projenin ürünlerinden biri olan DSML4BDI 2.0’dır. Bu dilin tüm üstmodel, sözdizim, semantik geliştirme ve değerlendirme çalışmaları bu proje kapsamında tez yazarı tarafından yürütülmüştür.

(29)

Tezin kalan kısmı şu şekilde organize edilmiştir: Bölüm 2’de DSML4BDI 2.0 dilinin altyapısını oluşturan; etmen ve çok-etmenli sistemler, DSML4BDI dili ve JaCaMo yapıları incelenmiş ve DSML oluşturulma aşamasında kullanılan teknolojiler tanıtılmıştır. Bölüm 3’te literatürde bulunan MAS alanındaki ilgili üstmodel ve DSML/DSL geliştirme çalışmaları anlatılmıştır. Bölüm 4’te DSML4BDI 2.0 dilinin sözdizim ve semantik bileşenleri tanıtılmıştır. Bölüm 5’te ise DSML4BDI 2.0 ile baştan sona bir MAS geliştirme süreci örneklenmiştir.

Bölüm 6’da DSML4BDI 2.0 ile çeşitli MAS’ların geliştirilmesini içeren durum çalışmaları anlatılmış ve bu çalışmalardan elde edilen çıktılar analiz edilerek sonuçlar tartışılmıştır. Son olarak Bölüm 7’de tez çalışması sonucu ortaya çıkarılan DSML4BDI 2.0 dili genel olarak değerlendirilmiş; eksik ve başarılı yanları vurgulanmıştır.

(30)

4

2. ALTYAPI

Tez çalışması kapsamında kullanılan ve çalışmanın altyapısını oluşturan dil ve teknolojiler bu bölümde açıklanmıştır. Etmen ve Çok-etmenli Sistemler, JaCaMo platformu ve DSML4BDI 2.0 dilinin oluşturulması için kullanılan yazılım platformları alt başlıklar altında anlatılmaktadır.

2.1 Etmen ve Çok-etmenli Sistemler

Etmen terimi yapay zekâ alanında 1990’lı yıllar ile birlikte popüler hale gelmeye başlamıştır. Ancak tam olarak kavramsal bir tanımlama yapılmadığını düşünen Shoham tarafından, yeni bir yazılım çerçevesi olarak 1990 yılında (Shoham, 1991) nesne yönelimli programlamanın bir uzantısı fikriyle etmen yönelimli programlama (ing. agent-oriented programming) yaklaşımı sunulmuştur. Shoham’a göre etmen; inançlar, kabiliyetler ve seçimler gibi zihinsel bileşenlerden oluşan bir varlıktır (Shoham, 1991). Etmen yönelimli programlama, nesne yönelimli programlama yaklaşımına göre oldukça karmaşık bir yapıdadır.

Bu yüzden anlaşılması ve uygulanması zor olabilir.

Yapay zekâ kökenli etmenler; belirli bir alanda hareket edebilen, çevreyi algılayabilen, birbirileri ile iletişim halinde kalarak belirli görevleri yerine getirebilecek özerk karar verme sistemleri olarak kabul edilirler. Etmenler;

özerklik, reaktiflik, pro-aktiflik ve sosyal yetenekleri bir sisteme kazandırırlar (Wooldridge and Jennings, 1995).

• Özerklik: Etmenler; diğer etmenlerin veya insanların doğrudan bir etkisi altında kalmadan, durum hakkında kendi kararlarını verebilirler.

• Reaktiflik: Etmenler algılayıcıları sayesinde bulundukları ortamları anlık olarak algılayabilirler ve değişen durumlara göre anlık olarak tepki verebilirler.

• Pro-aktiflik: Etmen davranışları sadece çevrelerine verdikleri tepki ile sınırlı kalmaz, aynı zamanda inisiyatif alarak belirli hedefler çerçevesinde hareket edebilirler.

• Sosyal Yetenek: Etmenler diğer etmenlerle iletişime geçme yeteneğine sahiptirler. Bu sayede hedeflere ulaşmak amacıyla sosyal faaliyetler içinde bulunurlar ve iş birliği yaparak problemlere çözüm sağlayabilirler.

(31)

Çok-etmenli sistemler aynı zamanda birer dağıtık hesaplama sistemleridir (Sin, 1994). Tüm dağıtık sistemler gibi birbirileri ile etkileşim halinde bulunan varlıklardan oluşur. Etmenler problemlere çözüm sağlamak ve birbirlerinin farklı özelliklerinden faydalanmak için bir araya gelerek Çok-etmenli Sistemler’i (MAS) oluştururlar. Klasik dağıtık sistemlerin aksine, Çok-etmenli Sistemler’i oluşturan varlıklar akıllı varlıklardır. Bu yüzden Çok-etmenli Sistemler çeşitli uygulamalarda faydalı şekilde kullanılabilirler. Örneğin; üretim otomasyonları, bankacılık sistemleri, veri işleme, kargo gönderim, ulaşım ve trafik kontrolleri gibi alanlarda gelişime açıktırlar.

2.2 DSML4BDI

Çok-etmenli sistemler için Kanı-İstek-Hedef (BDI) modeline göre yazılım etmenlerinin geliştirilmesi oldukça zorlu bir süreçtir. Bu alanda yazılım sürecini desteklemek adına birçok DSML çalışması sunulmuştur. Bunlardan biri de DSML4BDI (Kardas et al., 2018) dilidir. Tez çalışmasının başlangıcını oluşturan DSML4BDI dili BDI etmen mimarisine göre yazılım etmenlerinin modellenmesine imkân vermektedir.

DSML4BDI soyut sözdizimi, üstvarlıklara (ing. meta-entity) ve bunların hem BDI etmenlerinin iç mimarisinin hem de MAS organizasyonunun modellenmesi aşamasında gerekli olan ilişkilerini sağlayan bir üstmodele dayandırılmıştır (Kardas et al., 2018). DSML4BDI üstmodeli (Tezel et al., 2016)’da sunulan üstmodelin gelişmiş bir versiyonu olarak sunulmuştur. Üstmodel sadece yeni varlıklara sahip değildir. Aynı zamanda her varlığın kendi iç özelliklerini de içerir. DSML4BDI üstmodeli etmen yapısını oluşturan varlıklar dışında dokuz farklı varlık daha içerir. Bu varlıkların amacı bir etmen sisteminin oluşturulmasının desteklenmesidir. DSML4BDI dili ile sunulan üstmodel AgentSpeak (Rao, 1996) dilinin yorumlayıcısı olan Jason platformunun (Bordini et al., 2006) özelliklerini de desteklemektedir.

DSML4BDI için yazılım geliştiricilerin görsel modellemede kullanabilecekleri bir grafiksel somut sözdizim Sirius (Sirius, 2019) altyapısı kullanılarak hazırlanmıştır. Oluşturulan ortam mantığa dayalı etmen programlanmasını kod seviyesinden soyutlayarak grafiksel modelleme yapılabilmesine olanak sağlamaktadır.

DSML4BDI geliştirici için dört farklı bakış açısı ile etmen yapısının modellenmesine imkân sunar. Oluşturulan modeller Acceleo (Acceleo, 2019) ile tanımlanan kurallar çerçevesinde modelden metne dönüşümler yapılarak Jason koduna dönüştürülür. Bu sayede bir etmen yapısının ve MAS’ın analiz edilerek modellenmesi ve oluşturulan modelden kod üretiminin sağlanması ile geliştiriciye hız kazandıran bir geliştirme ortamı sunulmaktadır. Kardas vd. (2018)’de yer alan

(32)

6

deneysel değerlendirmeye göre DSMl4BDI’ın kullanıldığı bir durum çalışmasında ortalama %89 oranında bir otomatik kod üretiminin gerçekleştirildiği tespit edilmiştir. Ancak yine bu değerlendirmeden görüldüğü kadarıyla dil daha çok etmenlerin iç yapılarını modellemede başarılı olmaktadır. Sadece Jason platromuna bir dönüşüm sağlandığından etmen etkileşimlerindeki kod üretimi etmen planları düzeyinde değildir.

2.3 JaCaMo Platformu

MAS’lar karmaşık bilgi sistemlerin geliştirilmesinde kullanılır. Etmenlerin bir araya gelerek birbirileri ile etkileşim halinde olmaları ve verimli bir şekilde çalışabilmeleri için ortak bir ortamın yaratılması önemlidir. Bu amaçla araştırmacılar MAS’lar için farklı programlama paradigmaları geliştirmişlerdir.

Organizasyon-yönelimli Programlama (Boissier et al., 2017; Pynadath et al., 1992), Etkileşim-yönelimli Programlama (Huhns, 2000), Çevre-yönelimli Programlama (Ricci et al., 2011) bu paradigmalardan bazılarıdır. Bu yaklaşımlar birbirlerinden bağımsız olarak çalışmaktadırlar. Asıl amaç MAS’ları karmaşık yapıdan kurtaracak bir yaklaşıma ulaşmaktadır. Çok-etmen-yönelimli programlama adı verilen bu paradigmaya katkı sağlamak için JaCaMo platformu geliştirilmiştir. JaCaMO, MAS’lar için özerk etmenlerin programlanmasını sağlayan Jason, ortak dağıtık bir çalışma ortamı sağlayan CArtAgO ve etmen organizasyon yapısının programlanmasını sağlayan Moise yapılarını / modüllerini bir araya getiren bir altyapı platformudur (Boissier et al., 2013). Bu altyapının tasarımı Şekil 2.1’de görülmektedir.

JaCaMo platformu için bu üç yapıyı basitleştiren ve “Environment Dimension”, “Agent Dimension” ve “Organisation Dimension” parçalarını anlamlı bağlantılar ile birleştiren soyut bir üstmodel sunulmuştur (Boissier, 2013).

JaCaMo platformunu oluşturan Jason, CArtAgo ve Moise yapıları aşağıda alt başlıklar altında incelenmiştir.

(33)

Şekil 2.1: JaCaMo Çok-etmenli Sistem Yapısı ((Boissier et al., 2013)’dan alınmıştır.)

2.3.1 Jason Platformu

Jason, etmenler arasındaki konuşma eylemine dayalı iletişimi destekleyen AgentSpeak dilinin gelişmiş bir versiyonudur (Bordini et al., 2007b). BDI etmenleri için çok sayıda uygulama mevcuttur ancak AgentSpeak’in farkı teorik temellere dayanıyor olmasıdır. Jason’ı diğer etmen sistemlerinden ayıran diğer önemli bir özelliği ise açık kaynak kodlu Java programlama dili ile uygulanabilmesidir. AgentSpeak dilini yorumlamanın yanı sıra Jason aşağıdaki özelliklere de sahiptir (Bordini et al., 2007b):

• Güçlü olumsuzlama (ing. Strong negation) özelliği sayesinde hem kapalı- dünya (ing. Closed-world) hem de açık-dünya (ing. Open-world) varsayımı sağlar.

• Planların başarısız olması karşısında önlem alır.

• Etmenler arasındaki iletişim ile bilgi alışverişini sağlar.

• Ayrıntılı işlevlerin kullanılabilmesi için plan etiketlerine ek açıklamalar sağlar.

• Farklı geliştirme ortamları için olanaklar sağlar (örneğin AgentSpeak ile programlanamayan yapılar Java ile yazılır).

• Ağ üzerinde MAS’ların çalıştırılmasını sağlar.

• Etmen yapıları ve fonksiyon yapıları Java ile tamamen özelleştirilebilir.

(34)

8

• İç Eylemler (ing. Internal Actions) kütüphanesi sağlar.

• Java ile programlanabilen kullanıcı tanımlı iç eylemleri destekler.

BDI etmenleri AgentSpeak ile temel inançlar ve planlar kümesi olarak oluşturulur (Bordini et al., 2007a). İnanç atomu öncellikli olarak bir tahmindir.

İnanç atomları ile onların karşıt inançları, İnanç (ing. Belief) olarak adlandırılır.

Jason iki farklı Hedef (ing. Goal) tipi içerir. Bunlar başarı ve test hedefleri olarak adlandırılır ve sırasıyla ‘!’, ‘?’ operatörleri ile gösterilir. Başarı hedefi etmenin ilişkili yüklemin doğru olduğu duruma ulaşma isteğidir. Test hedeflerinde tahmin edilmek istenen ilişki etmenin inançlarından biriyle eşleşiyor olmalıdır. Şekil 2.2’te bir etmenin planlarının nasıl tanımlandığı gösterilmektedir.

Şekil 2.2: Jason İnanç Yapısı ((Bordini et al., 2007b))’dan alınmıştır.)

Jason plan yapısı Şekil 2.3’te de görüldüğü gibi üç farklı parçadan oluşur.

Bunlar Tetikleyici Olay (ing. Triggering Event), Bağlam (ing. Context) ve Gövde (ing. Body) parçalarıdır. Tetikleyici Olay, bir planın işleyişinin hangi olaya bağlı olduğunu gösterir. Bu olay oluştuğu anda plan tetiklenecektir. İki farklı tipi vardır, bunlar ekleme (‘+’) ve çıkarma (‘-’) olaylarıdır. Bu sayede Jason başarısız planları kontrol etme özelliği de sağlar. ‘+g’ ifadesi ile başlayan bir plan başarısız olursa veya plan içerisinde herhangi bir eylem yürütülemezse bu plan niyet içerisinden kaldırılır ve ‘-g’ olarak tanımlanan plan aynı niyet ile ilişkili olarak yürütülür.

Bağlam, bir planın yürütülmesi için tanımlanan mantıksal ifadedir. Etmenin inançlarının mantıklı bir sonuca sahip olması gerekmektedir. Gövde ise bir planın yürütülmesinde uygulanacak başarı veya test hedeflerinin ve temel eylemlerin kümesinden oluşur. Şekil 2.4’teki örnek incelendiğinde, etmenin bir konser planı olduğu görülür. A sanatçısı, V konser alanında bir etkinliğe sahip olduğunda plan tetiklenecektir. Eğer etmen A sanatçısını beğeniyorsa gövde kısmındaki başarı hedefi devreye girecektir. ‘book_tickets’ hedefi farklı bir planın yürütülmesini tetikleyecektir.

(35)

Şekil 2.3: Jason Plan Yapısı ((Bordini et al., 2007b))’dan alınmıştır.)

2.3.2 CArtAgO Platformu

“Artifact” yapısı MAS’lar için genel hesaplama ortamlarının oluşturulmasını sağlayan soyut bir model olarak ortaya çıkmıştır (Ricci et al., 2006). CArtAgO altyapısı MAS’lar için sanal bir çevrenin modellenmesini destekler. Bu altyapı sayesinde etmenler çeşitli özelliklere sahip olurlar ve yeteneklerini genişletirler. Artifact yapısı sayesinde geliştirilen yapısal özellikler ve servisler etmenleri daha sosyal hale gelecektirler. Geliştiriciler CArtAgO sayesinde daha yetenekli sistemler tasarlayarak daha güçlü MAS’lar elde ederler.

Artifact’lar işlevsel fonksiyonlar içerir. Bu fonksiyonları etmenler bireysel olarak ve aynı zamanda paylaşarak kullanabilirler. Bu yapı bir MAS’ı temelden etkiler.

MAS’lar hesaplama, iletişim kurma ve kullanma üzerine oluşturulan ortak alanlar olarak düşünülür (Ricci et al., 2006). Artifact yapısı üzerine kurulan CArtAgO platformu MAS’lar için bu özelliklerin sağlanmasına katkı sunar. Böylece etmenler için karmaşık hesaplama yapılarını daha kolay bir hale getirmiş olur.

Artifact, MAS sistemlerinde nesne-yönelimli ve servis-yönelimli yazılımların geliştirilmesinin etmen seviyesinde soyutlanmasını sağlar (Ricci et al., 2006). Aynı zamanda arada kalan kavramsal ve anlamsal boşluklar etmen- yönelimli paradigma ile desteklenir. Bu sayede nesneler ve servisler etmen tarafından çağrılabilecek birer arayüz haline getirilmiş olur.

Etmenler, oluşturulan Artifact tabanlı hesaplama yapılarını kendileri için sağlanan eylemler aracılığı ile kullanabilirler. Artifact içerisinde yer alan bu olaylar gözlemlenebilir olaylar olarak adlandırılırlar.

Etmenler sensörleri ile ortamdan veriler toplar ve bu verilerle çeşitli hesaplamalar yapabilirler. CArtAgO’da sensörler etmenlerin Artifact’lardan gelen

(36)

10

bilgi akışını yönetebilmelerini sağlamaktadır. Etmenler bu sayede elde ettikleri bilgileri depolayabilir, filtreleyebilir ve çeşitli işlemler yaparak yönetebilirler.

Şekil 2.4’in sol tarafında bir etmenin artifact ile ilişkisi gösterilmiştir.

Şekilde bir artifact ile etkileşime girmek isteyen etmenler ve gözlemlenebilir olaylar kümesi ifade edilmektedir. Sağ tarafta ise çalışma alanının soyut bir gösterimi yer almaktadır. Şekilde iki farklı çalışma alanının iç içe olduğu görülmektedir ve bu alanlar üç internet düğümü ile etkileşimdedir. Etmenler ve artifactlar aynı çalışma alanı içinde olmak zorunda değildirler. Farklı çalışma alanlarında da kullanabilirler. Aynı zamanda bir artifact dağıtık yapıda kullanılabilir.

Şekil 2.4: Artifact ve etmen ilişkisi ((Ricci et al., 2006))’dan alınmıştır.)

Her artifactın kendini tanımlayan mantıksal bir adı ve altyapı tarafından sağlanan bir ID’si bulunur. Bu mantıksal ad etmenlerin artifactlara erişimi için gereklidir. Ayrıca artifactın tam adında içinde bulunduğu çalışma ortamının ismi de yer alır. Bir artifact birden fazla çalışma alanında bulunabileceği için birden fazla tam ada sahip olabilir.

Her artifact bir operasyondan oluşan kullanım ara yüzüne sahiptir. Etmenler bu ara yüzler sayesinde artifactlara erişim sağlarlar. Etmenler bu operasyonları başlatarak sensörler ile algılanan olayları gözlemler. Her operasyon bir isme ve parametreye sahiptir. Bu parametrelerin de tipleri bulunmaktadır. Nesne yönelimli programlamanın aksine bu operasyonlar herhangi bir sonuç döndürmezler. Bunun yerine operasyonu kullanan etmen tarafından oluşturulan gözlemlenebilir olaylar devreye girer. Bu olaylar etmenler tarafından algılanarak kullanılır.

(37)

Temel nesne-yönelimli programlama katmanı üzerinden etmen-yönelimli programlamaya imkân sağlayan ve karmaşık uygulamaların geliştirilmesini kolaylaştıran SimpA adında bir Java uzantısı geliştirilmiştir (Ricci et al., 2007).

SimpA adı verilen programlama modeli etmen ve artifactların etkileşimlerinin CArtAgO modelini benimseyerek Java ile uygulanabilmesini sağlar (Ricci et al., 2006). SimpA artifactı yukarıda da bahsedildiği şekilde bir değer dönmeyen operasyonlar içeren bir ara yüz olarak modellenmiştir. Şekil 2.5’de simpA modeli ile oluşturulan örnek CArtAgO kod yapısı gösterilmiştir. Bu örnekte basit bir buffer tasarlanarak put ve get operasyonları ile bir nesnenin eklenip silinmesi sağlanmıştır. Parametre ile geçirilen nesne getReq listesinde bekleyen başka bir istek olmadığı durumda items listesine eklenir. Eğer bekleyen bir istek varsa event oluşturularak istek sahibine gönderilir. “Get” işleminde ise bir nesne var olduğu durumda bir event oluşturularak istekte bulunana gönderilir.

Şekil 2.5: CArtAgO Kod Yapısı ((Ricci et al., 2006))’dan alınmıştır.)

(38)

12

CArtAgO etmenler ve MAS’lar için kullanılacak soyut bir hesaplama ortamı sunar. Etmenlerin yeteneklerini arttırarak karmaşık yapıların daha kolay modellenmesini ve programlanmasını sağlar. Aynı zamanda sağladığı Java desteği ile programcının çeşitli operasyonlar ve fonksiyonlar oluşturarak etmenlerin sensörleri ile elde ettikleri verileri işlemelerine olanak yaratır. Oluşturulan artifact tabanlı yapılar etmenler tarafından ortak olarak farklı çalışma alanlarında kullanılabilir hale gelir. Etmenler bu yapılara gözlemlenebilir olaylar sayesinde ulaşarak sensör verilerine kolayca erişim sağlar.

2.3.3 Moise Platformu

Moise, MAS’lar için roller, gruplar ve görevler gibi kavramların tanımlanmasına olanak sağlayan bir organizasyon modelidir. MAS’ın bir organizasyon tanımlamasına sahip olmasını sağlar. MAS’lar için bir organizasyon tanımının önceden yapılması, sisteme ne özellikte bir etmenin dahil olacağı bilinmediği için etmenlerin özerkliğinden kaynaklanacak sorunların çözülmesi açısından fayda sağlar (Hübner et al., 2006). Moise organizasyon yapısını ve işleyişini ön plana alır. MAS için etmenlerin hedefe yönelik yapacağı iş birliğinin planlanması ve etmenlerin sorumluluklarını yerine getirip getirmediğinin takip edilmesini sağlar. Moise yapısı JaCaMo platformu ile geliştirilen MAS projeleri içerisinde XML dosyası olarak yer alır. Belirlenen grup, rol vs. gibi özellikler XML formatında tanımlanmaktadır.

Moise Yapısal Tanımlaması (ing. Structural Specification) üç düzey ile oluşturulmuştur. İlk düzey, etmenlerin kabul ettikleri her rol için sorumlu oldukları davranışlar tanımlanır. Bu “bireysel seviye” (ing. individual level) olarak adlandırılır. “sosyal seviye” (ing. social level) olarak adlandırılan ikinci seviye ise etmenlerin tanışmalarını, aralarındaki iletişimi ve otoriter bağlantılarını kapsamaktadır. Son olarak “kolektif seviye” (ing. collective level) olarak adlandırılan seviye rollerin gruplar olarak tanımlanmasını belirtmektedir.

Bir Moise grubu grup içi (ing. intra-group) ve gruplar arası (ing. inter- group) bağlantılara da sahip olabilir (Hübner et al., 2006). Grup içi bağlantı, bir etmenin aynı grup veya alt gruplardaki etmenler ile bağlantılı olduğunu belirtir.

Gruplar arası bağlantı ise kaynak rolündeki etmenin grupları farklı olsa bile hedef rolündeki diğer grup etmenleri ile bağlantılı olduğu anlamına gelmektedir. Şekil 2.6’da Moise için örnek bir tasarım gösterilmiştir.

(39)

Şekil 2.6: Futbol Takımı Yapısı ((Hübner et al., 2002b)’dan alınmıştır.)

Moise Fonksiyonel Tanımlaması (ing. Functional Specification) bir MAS’ta global hedeflere ulaşılmak için hedeflerin nasıl çözümlendiği ve etmenlere nasıl dağıtıldığını açıklar (Hübner et al., 2006). Fonksiyonel Tanımlama içerisinde Şema ve Görev tanımlamaları bulunur. Şema bir ayrıştırma ağacı olarak tanımlananabilir. Ağacın kök kısmını bir global hedef, yaprakları da etmenler tarafından başarılacak diğer hedefler olarak görülebilir. Bu tanımlamayı MAS’ı tasarlayan programcı ya da etmenler geçmiş tecrübeleri ile oluşturabilirler.

Şekil 2.7’de bir JaCaMo örneğinden alınmış fonksiyonel tanımlama kısmını gösteren Moise kod parçası görülebilir. “rftMngt” adında bir şema tanımlaması yapılmış ve “rft_done” adındaki ana hedef üzerinden dallanan ağaç yapısı ile hedefe ulaşmak için başarılması gereken althedefler ve planlar tanımlanmıştır. Bu yapılar XML etiketleri içinde tanımlanırlar.

(40)

14

Şekil 2.7: Örnek Moise kod yapısı

Moise etmenler ve genel sistem arasındaki iletişimin sağlanması için bir organizasyon ara katman yazılımı sunmaktadır. Bu ara katman iletişim katmanına erişim sağlayan ve organizasyonun güncel durumu hakkında bilgi sağlayan bir ara yüzdür. Etmenler bu ara yüz sayesinde organizasyona erişebilir ve organizasyon yapısı üzerinde değişiklik yapabilirler. Moise bunu sağlamak için OrgBox API ve OrgManager adında iki ana yapıya sahiptir (Hübner et al. 2006). OrgBox API ile etmenler organizasyon katmanına erişebilirler. OrgManager ise özel bir etmendir ve diğer etmenlerden mesajları alarak organizasyon yapısı üzerinde değişiklikler yapılmasını sağlar. Fakat bu değişikliklerin yapılması için organizasyon tanımlarındaki kuralların ihlal edilmemesi gerekir. Örneğin A adındaki bir etmen P1 rolünü oynamak istiyor olsun. Bu anda P1 rolü başka bir etmen tarafından oynanıyorsa bu durumda kurallar kontrol edilir. P1 rolünün sadece bir etmen tarafından oynanacağı kuralı varsa A adındaki etmenin P1 rolünü kullanma isteği reddedilir.

Etmenlerin organizasyon yapısını kullanmak ve değiştirmek için bazı olayları (ing. event) kullanması gerekmektedir. Bu olaylar bazı parametreler, ön koşullar ve etkilere sahiptirler. Bu olaylar Jason kod yapısı içerisinde kullanılır.

Sonuç olarak Moise ile MAS’lar için organizasyon yapısının tanımlanması ve etmenlerin bu yapıyı kolayca kullanabilmeleri sağlanmaktadır. JaCaMo platformunun içerdiği Jason, CArtAgo ve Moise yapıları ile etmen ve MAS geliştirmelerinde oldukça faydalı özelliklere sahip olunabileceği görülmektedir.

(41)

2.3.4 Model Güdümlü Yazılım Geliştirme ve Alana-özgü Modelleme Dilleri

Yazılımların ilk çıkış tarihlerinden bu yana araştırmacılar yazılımın soyutlama seviyesini arttırmaya çalışmaktadırlar (Atkinson and Kühne, 2003).

Bununla birlikte gün geçtikçe mevcut yazılımlar yetersiz kalmakta ve yeni ihtiyaçlar ortaya çıkmaktadır. Bu ihtiyaçlar doğrultusunda farklı teknolojiler ile birlikte yeni tasarımlar oluşturulur ve bu tasarımların yazılım geliştirme aşamaları karmaşık süreçlere dönüşebilir. Her ne kadar klasik yazılım yöntemleri kullanılarak proje geliştirilmeye devam edilse de işleri kolaylaştıracak yeni tekniklere olan ihtiyaç artmaktadır. Tasarımları basitleştirmek ve karmaşıklığı daha az seviyelere indirmek için üzerinde çalışılan alanın modelleri ile çalışmak faydalı bir yöntem olabilir.

Bu fikir ile ortaya çıkan teknik, Model Güdümlü Geliştirme (ing. Model Driven Development) (MDD) olarak adlandırılmıştır. Bu teknik kodlamayı arka planda tutarak yazılım geliştirme süreçlerinde modellemeyi ön plana alır.

Öncelikle üzerinde çalışılacak alan belirlenerek bir üstmodel oluşturulur.

Üstmodel temel alınarak çeşitli sistem modelleri oluşturulur. Modelden koda ve modeller arası dönüşümlere olanak sağlayacak tekniklere sahiptir. Temel amaç yazılım sürecinde kodlamaya ayrılan zamanın en aza indirilmesi ve tasarım sürecinin daha kolay hale getirilerek yazılımcının yükünü hafifletmektir.

Günümüzde kullanılan nesne yönelimli yazılım dilleri programlamanın ilk zamanlarındaki karmaşıklıkların giderilmesini sağlar. Bu amaçla çıkılan yolun devamında model güdümlü yaklaşımın ortaya çıkması kaçınılmaz bir durumdur.

Model güdümlü yaklaşım programcıya sistemin her ayrıntısının kodlarla açıklanması yerine genel bir çerçevede sistemin hangi fonksiyonel özelliklere sahip olacağının modellenmesi imkânı sunar. Geçmişte programlamada manuel olarak yapılan birçok kontrol günümüzde derleyiciler ile otomatik olarak yapılabilmektedir. Soyutlama seviyesi arttırılarak günümüzde hala manuel olarak ilerletilen birçok işlem (örneğin; kalıcı sistem, birlikte çalışabilirlik, dağıtık yapı) MDD ile otomatik bir süreç haline getirilebilir (Atkinson and Kühne, 2003).

Object Management Group (OMG) MDD yaklaşımını hayata geçirmek için Model-güdümlü Mimari’yi (ing. Model Driven Architecture) (MDA) önermektedir (OMG, 2019). OMG, MDA’ı bir uygulamanın platform bağımsız modeline (ing. Platform-Independent Model) (PIM) dayandırır. OMG için

(42)

16

eksiksiz bir MDA tanımı, her biri platform bağımsız ara katmanlardan oluşan, temel bir platform bağımsız model ve bir veya daha fazla platform bağımlı modelden (ing. Platform Specific Model) (PIM) oluşur. Geliştiricinin desteklediği her platformda bir PIM, bir veya birden fazla PSM içeren eksiksiz bir uygulama içeriyorsa tam anlamıyla bir MDA tanımlanmış olacaktır (Hailpern and Tarr, 2006). MDA sistemin üst seviyede tanımlanmış bir modelinden başlar ve alt katmanlarda yer alan teknolojilerden bağımsızdır.

MDD süreçlerinin uygulanmasında alana-özgü modelleme dillerinin (DSML) kullanımı yaygındır. Bu diller belirli bir alanda oluşturulmuş üstmodel üzerinden tanımlanır ve kullanıcıya görsel bir ara yüz sağlayarak kodlamadan uzak bir yazılım geliştirme ortamı sunar (Kelly and Tolvanen, 2010). Üzerinde çalışılan alan detaylı olarak incelenir ve elde edilen yapılara karşılık gelen bir üstmodel tasarlanır. Daha sonra üstmodel üzerindeki her yapının görsel bir karşılığı oluşturularak grafiksel görsel gösterime sahip bir DSML oluşturulur.

Böylece uygulama geliştiricisi kod yapısından uzaklaşarak görsel bir sistem modeller ve tasarım süreci daha kolay bir hal alır. Ayrıca DSML’ler sahip oldukları kod dönüşüm teknolojisi sayesinde geliştirici tarafından hazırlanmış bir modelin hedef yazılım kodlarına dönüşümünü sağlar. Bu sayede otomatik kod üretimi ile yazılım süreci klasik yöntemlere göre daha hızlı bir hale gelir. Bu tez çalışması kapsamında da MDD yaklaşımından yola çıkılarak MAS alanında grafiksel görsel gösterim ve kod dönüşüm yeteneğine sahip bir DSML yukarıda özetlenen dil geliştirme adımları uygulanarak geliştirilmiştir.

2.4 Kullanılan Teknolojiler ve Araçlar

DSML4BDI 2.0 diline ait entegre geliştirme ortamının (ing. Integrated Development Environment) (IDE) geliştirme sürecinde Obeo Designer (Obeo, 2019), Eclipse (Eclipse, 2019), Sirius (Sirius, 20019) ve Acceleo (Acceleo, 2019) araç ve teknolojilerinden yararlanılmıştır.

Obeo Designer, model güdümlü yazılım geliştirme konusunda çeşitli imkanlar sağlayan, Eclipse platformunun önemli bir üyesi konumdaki bir geliştirme ortamıdır. Geliştiricilerin belirli alanlarda (örneğin endüstriyel sistemler, yazılım uygulamaları) grafiksel modelleme araçlarını geliştirmesine ve oluşturulan modellerden kod dönüşümü yapılmasına olanak tanır. İçerdiği Sirius, Acceleo gibi araçlar sayesinde güçlü alana-özgü diller oluşturulmasını sağlayan bir platformdur.

(43)

Sirius, Obeo Designer ile entegre çalışan grafiksel modelleme araçları tasarlamaya imkân sunan bir Eclipse teknolojisidir. İçerdiği Gmrsel Modelleme Çerçevesi (ing. Graphical Modeling Framework) (GMF) ve Eclipse Modelleme Çerçevesi (ing. Eclipse Modeling Framework) (EMF) teknolojileri sayesinde üzerinde çalışılan özel alanlar için farklı bakış açıları (ing. viewpoint) kullanılarak karmaşık mimarileri daha anlaşılır hale getirecek grafiksel bir ortam sunar. Bu sayede sistemin analiz edilmesi ve oluşturulması açısından ekip üyeleri ve sistem kullanıcıları arasında daha kolay bir iletişim kurulmasını da desteklemiş olur.

Acceleo, OMG grubunun ortaya çıkardığı Modelden Metine Dönüşüm (ing.

(ing. Model to Text Transformation) (M2T) standartlarının örnek bir uygulamasıdır. Acceleo kendine özgü bir dönüşüm diline sahiptir. Üstmodel ile ilişkilendirilmiş olarak yazılan kuralların istenilen dillere dönüştürülmesini sağlar.

Tez çalışması kapsamında hazırlanan DSML’de Acceleo dönüşüm teknolojisi kullanılarak Jason, Java ve XML kodlarının üretimi sağlanmıştır.

(44)

18

3. İLGİLİ ÇALIŞMALAR

Üzerinde çalışılan tez konusu ile ilgili literatürde yer alan çalışmalar bu başlık altında incelenmiştir. Öncelikle AOSE’deki üstmodel çalışmaları anlatılmıştır. Bir sonraki başlık altında da tez kapsamında oluşturulan DSML’e benzer çalışmalara değinilmiştir

3.1 MAS Üstmodelleme Çalışmaları

MAS alanında birçok araştırmacı çeşitli üstmodeller geliştirerek yeni metodolojiler ortaya çıkarmaya çalışmışlardır. JaCaMo platformu içesinde bulunan CArtAgO yapısının da temel aldığı bir üstmodel olan Etmenler ve Yapılar (ing. Agents & Artifact) (A&A) üstmodeli sunulmuştur (Omicini et al., 2008). Bu çalışmada MAS’larda yer alan etmenlerin birinci sınıf varlıklar olarak modellenmesini destekleyen bir üstmodel önerilmiştir. A&A üstmodelinin kavramsal temeli bilgisayar bilimi, psikoloji, etoloji gibi alanlardan gelen sonuçların yorumlanmasına dayanmaktadır. Sonuç olarak ortaya çıkan üstmodelde etmenler MAS’ın davranışlarını oluşturan görev ve hedefler doğrultusunda çalışan pro-aktif varlıklar olarak tanımlanmışlardır. Eserler ise etmenleri bir arada tutan ve onlara fonksiyonlar ve servisler sunan aktif yapılar olarak tanımlanır. Bu durum MAS’ın çalışma yapısını şekillendirecektir.

(Coutinho et al., 2005)’de MAS organizasyon yapısının modellenmesi ile ilgili farklı model çalışmaları karşılaştırılarak yorumlanmıştır. Modeller ayrı başlıklar altında incelendikten sonra karşılaştırılmışlardır. (Hübner, et al., 2002)’de ise MAS modellerinde organizasyonun işleyişine veya yapısına odaklanılmıştır. Bir MAS organizasyonunu iyi bir şekilde tanımlamak için bu iki odak noktasının bir araya gelmesi gerektiğinden bahsedilmiş ve buna karşılık Moise+ modeli önerilmiştir. Bu model MAS organizasyon yapısını üç bakış açısı (yapısal, işlevsel ve deontik) altında ele almıştır.

Bir başka çalışmada (Kardas et al., 2009) Anlamsal Web (ing. Semantic Web) ortamını destekleyen MAS’lar için bir üstmodel tanıtılmıştır. Etmenlerin Anlamsal Web Servisleri ile etkileşimleri sunulan üstmodel ile modellenebilmektedir. Farklı bir çalışmada (Hann et al., 2009) ise MAS sistemleri için mevcut etmen odaklı metodolojilerden ve programlama dillerinden soyutlanmış platform bağımsız bir üstmodel sunulmuştur. Ayrıca sunulan üstmodelden bir soyut söz dizimi tanımlanmakta ve kod dönüşümü

(45)

sağlanmaktadır. FAML üstmodeli (Beydoun et al., 2009) etmen sistemleri için geliştirilmiş çeşitli üstmodellerin bir sentezi sayılabilir. Bu çalışmada tasarım ve çalışma zamanı aşamaları belirlenmiş ve bu aşamalarda tanımlanan kavramların doğrulaması MAS geliştirme metodolojileriyle sağlanmıştır.

(Tezel et al., 2016)’da ise Jason platformunda çalışan BDI etmenleri için modellemeye olanak sağlayacak bir üstmodel sunulmuştur. Üstmodel etmenlerin sahip olduğu inanç, plan, olay kümeleri, kurallar ve eylemleri içermektedir.

Ortaya çıkarılan üstmodel temel alınarak MAS’lar için farklı DSML’ler geliştirilebilmektedir. Son olarak (Firtina et al., 2018)’de MAS’lar için etmenlerin ortak olarak kullanacağı sanal mantıksal ve matematiksel hesaplama ortamlarını sağlayan CArtAgO platformu için (Ricci et al., 2006) bir üstmodel tanıtılmış ve bu üstmodelden bir somut sözdizim tanımlanmıştır. Bu sayede geliştiriciye Ortam bakış açısı için görsel modelleme ortamı sağlamış olur.

3.2 MAS DSML/DSL Çalışmaları

MAS alanında ortaya konulan ve üst bölümde örneklerine değinilen model çalışmaları ile birlikte çeşitli DSML çalışmaları da literatürde yer almıştır.

Örneğin Hahn tarafından (Hahn, 2008) önerilen DSML4MAS bir MAS’ın farklı bakışaçılarını (örneğin MAS, etmen, organizasyon ve rol gibi) dikkate alan ve genel etmen üstvarlıklarını içeren platform bağımsız bir üstmodelden türetilmiştir.

Somut sözdizimi ortaya koymak için alan kavramlarının grafiksel notasyonu ve bunun soyut sözdizim elemanları ile olan bağlantıları verilmiştir. Bu dil kullanılarak JADE ve Jack etmen platformları için kod üretimi sağlanabilir.

MAS-ML modelleme dili (Goncalves et al., 2015) “Taming Agents and Objects” (TAO) (Silva et al., 2002) kavramlarını modellemek için tasarlanmış bir modelleme dilidir. Önceden tanımlanmış planlar tarafından yönlendirilen hedef odaklı proaktif etmenlerin modellenmesi bu modelleme dilinin temel hedefi olarak özetlenebilir. MAS-ML tarafından tanımlanan yapısal diyagramlar Rol Diyagramı, Sınıf Diyagramı ve Organizasyon Şeması'dır. Dinamik diyagramlar ise Dizi Diyagramı ve Etkinlik Diyagramı’dır. Tüm bu diyagramları kullanarak, TAO'da tanımlanan varlıkların yapısal ve dinamik yönlerini modellemek mümkündür.

BDI etmen mimarisi için BDI4JADE (Nunes et al., 2011) adında bir çerçeve sunulmuştur. Bu çalışmada BDI mimarisi ile geliştirilen diğer

(46)

20

platformların (örneğin Jason, Jack) Java dilini desteklediği ancak tam olarak Java dilinin özelliklerini kullanamadıkları fikri ortaya atılmıştır. Bu yüzden diller kısıtlı şekilde Java desteği sunmaktadırlar. JADE platformu (Bellifemine et al., 2007) üzerinde BDI katmanı olarak uygulanan BDI4JADE isimli çerçeve ise JADE etmenleri için doğrudan Java tabanlı bir uygulama mekanizması sağlamaktadır.

Bu çalışma ile bağlantılı “Sam” aracı (Faccin and Nunes, 2017) BDI4JADE çerçevesi üzerinde çalışmakta ve BDI tabanlı görsel bir modelleme ortamı sunmaktadır. Aynı zamanda modelden koda dönüşüm imkânı sağlar. Sam aracı Eclipse eklentisi olarak sunulmuştur.

Farklı bir çalışmada ise Anlamsal Web üzerinde çalışan SEA_ML (Challenger at al., 2014) adında bir DSML sunulmuştur. SEA_ML, BDI etmen mimarisi ile MAS’ların analiz edilmesi, modellenmesi ve kod dönüşümünün sağlanmasını destekler. SEA_ML bir etmen sisteminin platform bağımsız olarak modellenmesini sağlar. Modellenen MAS’ın hedeflenen MAS platformlarında çalıştırılması için gerekli dosya ve kodlar otomatik olarak üretilir. Sunduğu görsel modelleme ortamı sayesinde tek bir etmen yapısından bütün bir MAS sisteminin tasarlanmasına kadar ayrıntılı modeller oluşturmaya imkân sunar. Aynı zamanda anlamsal semantik veriler ile çalışabilen ve semantik olarak tanımlanmış web servisler (örneğin Semantic Web Service- SWS) (Sycara et al., 2003) ile iş birliği yapabilen model-güdümlü tasarımı ve özerk etmen uygulamalarının geliştirilmesini destekler (Challenger at al., 2014). Bu sayede Anlamsal Web üzerinde çalışan etmen sistemleri için yeni bir bakış açısı sunar. SEA_ML dili açık kaynak kodlu bir IDE olarak sunulmaktadır.

Bergenti vd. (Bergenti et al., 2017) etmen sistemlerinin güncel hayatta kullanım oranının gün geçtikçe arttığını belirtmiş ve bunun sonucunda karmaşık yazılım süreçlerinin tasarlanmasının daha kolay hale getirilmesi için JADEL adında bir dil önermiştir. JADEL etmen sistemleri için tutarlı ve açık destek sağlayan JADE (Bellifemine et al., 2007) platformu üzerine kurulmuştur.

JADEL’in üç temel amacı vardır. Bunlar; yazılım kalitesini arttırmak için geliştiricilere üst seviyede bir soyutlama sağlamak, mevcut etmen teknolojilerinin etkin şekilde kullanımı ve dilin soyutlama seviyesinin temel metodolojik değişimler üzerinde bir zorlamaya neden olmamasıdır (Bergenti et al., 2017).

JADE’in Java geliştiricilerini destekleme amacı bulunmaktadır. Aynı şekilde JADEL de JADE’in Java sınıfları için sağladığı etmenler, davranışlar ve iletişim ontolojileri gibi temel soyutlamalarını desteklemektedir. Fakat JADEL’in geliştiriciler için daha küçük bir kümede yüksek bir soyutlama seviyesi sağlama

(47)

amacı gereği bu dil JADE’in sağladığı tüm soyutlamaları kapsamaz (Bergenti et al., 2017).

Acil durum ortamlarına müdahale sistemlerinin etmen tabanlı modellenmesi için (HoseinDoost et al., 2019)’da ERE-ML isimli bir DSML önerilmiştir. ERE- ML dili bu bölümde incelenen MAS-ML dili (Goncalves et al., 2015) ile TAO çerçevesinin genişletilmesi sonucu ortaya konan bir DSML’dir. Bu genişletme işlemi için afet yönetiminin dört aşamasını kapsayan “Disaster Management Metamodel” (Othman et al., 2014) kullanılmıştır. Afet yönetiminin 4 aşaması hafifletme (ing. mitigation), hazırlıklı olma (ing. preparedness), müdahale etme (ing. response) ve kurtarmadır (ing. recovery). Önerilen bu DSML'de, ERE modellemesi için görev konsepti eklenmiş ve afet kavramı, hafifletme aşamasından itibaren baz alınmıştır. İlk olarak TAO çerçevesine acil durumlara uygun olacak şekilde görev ve afet kavramları eklenmiştir. Ayrıca bazı ilişkilerle TAO çerçevesi genişletilmiştir (yaratma, bölme, atama, azaltma gibi). Aynı şekilde TAO çerçevesini baz alan MAS-ML dilinde de bu doğrultuda değişiklikler meydana gelmiştir. Her yeni kavram için MAS-ML soyut ve somut sözdiziminde yeni tanımlamalar yapılmış ve ardından dilin anlamsal modeline bu kavramlar eklenmiştir.

Bölüm 2.2’de detaylıca incelenen DSML4BDI (Kardas et al., 2018) etmenlerin mantığa dayalı olarak programlamasını sağlayan AgentSpeak tanımlamalarını modelleme ile oluşturabilmekte ve AgentSpeak için bir yorumlayıcı olan Jason platformu için otomatik kod üretebilmektedir. Son olarak Sredejovic et al. (2018) Siebog adını verdikleri dağıtık MAS ortamında çalışacak akıllı etmenlerin geliştirilmesi için bir DSL tanıtmaktadırlar. ALAS isimli bu dili kullanarak yazılım geliştiriciler Siebog platformuna özel kodları hazırlamakta; bu kodlar tanımlanan bir dönüştürücü üzerinden ilgili platformda etmenlerin çalıştırılması için gerekli Java kodlarına dönüştürülmektedir.

Bu bölümde incelenen MAS DSML çalışmaları sundukları yenilikler ve modellerle MAS’ların geliştirilmesi ve model güdümlü yazılım geliştirme süreçlerine önemli katkılar sunmuşlardır. Bu diller özellikle BDI etmenlerinin MDD’si için bir modelleme ortamı ve kod dönüşüm olanağı sağlasalar da tam anlamıyla bir MAS organizasyon yapısı ve etmenlerin ortak kullanabilecekleri çevre (örneğin fonksiyonlar, servisler) yapılarının modellenmesi ve dönüştürülmesi konusunda zayıf kalmaktadırlar. Literatürde özellikle tez çalışması kapsamında üzerinde çalışılan ve yukarıdaki MAS organizasyon ve

(48)

22

çevre modellemelerini oluşturmaya imkân veren JaCaMo (Boisser et al., 2013) platformunu destekleyen bir DSML bulunmamaktadır. Sadece DSML4BDI (Kardas et al, 2018) dili JaCaMo platformunun bir parçası olan Jason (Bordini et al., 2007b) kodu üretebilmektedir. Bu tez kapsamında geliştirilen yeni DSML, DSML4BDI’ın etmen çalıştırma platformu çeşitliliğini JaCaMo platformu ile genişletmeyi ve böylece etmen ortamlarının CArtAgO ve MAS organizasyonlarının Moise tanımlarına uygun olarak modellenebilmesini ve uygulamaya geçirilmesini sağlamaktadır.

(49)

4. DSML4BDI 2.0

Bu bölümde tezde geliştirilen DSML4BDI 2.0 dilinin bileşenleri alt başlıklar altında tanıtılacaktır. İlk olarak dil için geliştirilmiş olan üstmodel, ardından geliştiricilere görsel bir ara yüz sağlayan grafiksel görsel sözdizim ve son olarak DSML4BDI 2.0’nin sahip olduğu kod dönüşüm özelliği anlatılacaktır.

4.1 Üstmodel

Hem BDI etmenlerinin genel mimarisini hem de JaCaMo (Boisser et al., 2013) platformunu destekleyen geniş özelliklere sahip bir MAS organizasyonunun temel üstvarlıkları ve ilişkilerini içeren bir üstmodel oluşturulması DSML4BDI 2.0 soyut söz diziminin geliştirilmesi için önemlidir.

Bu sayede programcı daha detaylı bir modelleme ortamına sahip olacaktır.

DSML4BDI 2.0 üstmodeli (Kardas et al., 2018)’de önerilen BDI üstmodelini etmenlerin iç yapılarını göstermek amacıyla genişletmektedir. Üstmodel etmenlerin sahip olduğu inanç, plan, olay kümeleri ve eylemlerini içermektedir.

DSML4BDI üstmodeli (Kardas et al., 2018) sadece Jason platformunu kapsamaktadır. Şekil 4.4’de sunulan DSML4BDI 2.0 üstmodelinin DSML4BDI üstmodelinden en büyük farkı Ortam ve Organizasyon yapılarını ve bunlara ait ilişkileri de içerisinde bulunduruyor olmasıdır. Bu sayede DSML4BDI 2.0 üç farklı bakış açısı içeren yeni bir üstmodele sahiptir. Üstmodele genel olarak bakılacak olursa MAS çatısı altında üç farklı bölümden oluşmaktadır. Bu üç parçayı oluşturan Etmen (ing. Agent), Ortam (ing. Environment) ve Organizasyon (ing. Organisation) bakış açıları arasında da çeşitli bağlantılar mevcuttur. Her parça kendi içerisinde barındırdığı varlıklar özelinde çeşitli özelliklere sahiptir.

DSML için tasarlanan üstmodelin oluşturulması için bir araca ihtiyaç vardır.

DSML4BDI 2.0 üstmodeli için Ecore (Steinberg et al., 2009) tabanlı bir üstmodel oluşturulmasına imkân sağlayan Obeo Designer Community (Obeo Designer, 2019) kullanılmıştır. Obeo Designer Community, Eclipse Sirius (Sirius, 2019) tabanlı bir grafiksel modelleme aracıdır. Analiz edilmiş bir alanın üstmodelinin oluşturulması, ardından grafiksel görsel gösteriminin tasarlanması ve Acceleo (Acceleo, 2019) sayesinde modelden koda dönüşüm olanağı sağlayan gelişmiş bir teknolojiye sahiptir. Şekil 4.1’de sunulan DSML4BDI 2.0 üstmodelinde genel MAS yapısı; Etmen (Agent), Ortam (Environment) ve Organizasyon (Organisation) parçalarından oluşmaktadır. Her parça kendi içinde farklı elemanlara ve özelliklere sahiptir. Bölümün devamında üstmodelin bu bakışaçılarını içeren alt parçaları üç başlık altında anlatılacaktır.

(50)

24

Şekil 4.1: DSML4BDI 2.0 Üstmodeli

(51)

4.1.1 Etmen (Agent) Üstmodeli

Etmen üstmodeli BDI Jason (Bordini ve Hübner, 2006) yapısına uygun olarak tasarlanmıştır. Şekil 4.2’de görüldüğü üzere on iki elemandan oluşan üstmodel bir etmenin sahip olması gereken özellikleri içermektedir. Bölümün devamında her bir elemanın ne anlama geldiği ve sahip olduğu özellikler anlatılacaktır.

Etmen (ing. Agent) varlığı üstmodeldeki etmen özelliklerini temsil eden tüm varlıkların bağlandığı ana varlıktır. Aynı zamanda diğer yapılar ile de bağlantılı olabilir.

İnanç (ing. Belief), etmenlerin benimsediği inançları temsil eder. Her etmen çalışma zamanında sahip olduğu birtakım inançlar ile başlar ve bu inançlar bir etmen veya çevre hakkında bilgiyi içerebilir ve çalışma süresi içinde değişebilir.

Etmenler ihtiyaç duydukları anda inançlarında sakladıkları bilgilere erişebilir ve bu bilgileri değiştirebilirler.

Kural (ing. Rule), etmenin inançlarından yola çıkarak bir karara varmasını sağlar. Her etmen bir kural ile tanımlanmış olabilir. Bu kurallar planların yürütülmesinde kullanılabilirler.

Plan, bir etmenin bulunduğu ortamda gerçekleştireceği eylemleri temsil eder. Her Plan; Olay (ing. Event), Bağlam (ing. Contex) ve Gövde (ing. Body) parçalarından meydana gelir. Olay, üstmodelde Tetikleyici Olay (ing. Trigger Event) olarak temsil edilmiştir ve bir planın tetiklenmesini sağlayan olayı temsil eder. Bu olay meydana geldiğinde plan işletilmeye başlayacaktır. Bağlam, bir plan tetiklendiğinde hangi durumda yürütüleceğini belirten bir koşulu temsil eder.

Koşul gerçekleştiği durumda plan yürütülmeye başlanacaktır. Aksi durumda plan yürütülmez. Plan her zaman “Bağlam” yapısına sahip olmak zorunda değildir.

Gövde ise bir planın yürütülme adımlarını içerir.

Gövde üstmodelde, Gövde Terimi (ing. Body Term) elemanlarından oluşacak şekilde tasarlanmıştır. Gövde Terimi ise İç Eylem (ing. Internal Action), Dış Eylem (ing. External Action), Hedef (ing. Goal) ve Alt Plan (ing. Sub Plan) yapılarından oluşabilir. İç Eylem, etmenin iç yapısında oluşan eylemleri temsil eder. Dış Eylem ise etmenin Ortam (Environment) ile bağlantı kurmasını ve burada tanımlanan fonksiyon veya servis gibi yapıları kullanabilmesini sağlar.

(52)

26

Hedef, etmenin planların uygulanması ile ulaşmak istediği hedeflerdir. Başarı ve test hedefleri olarak ikiye ayrılır. Başarı hedefi, başarılması hedeflenen ortamın durumunu ifade eder. Test hedefi ise etmenin inançlarından bilgi almasını amaçlar. Aldığı bilgiye göre planı yürütebilir veya farklı planlar uygulayabilir. Alt Plan, etmenin sahip olduğu bir planı başka bir plan içerisinde kullanabilme özelliği sağlamak amacıyla üstmodele eklenen bir varlık türüdür.

Şekil 4.2: DSML4BDI 2.0 Etmen (ing. Agent) Üstmodeli

Referanslar

Benzer Belgeler

Ledamöter och ersättare väljs första gången för perioden 1 januari 2012 – 31 december 2014 och därefter för fyra år från och med 1 januari första året efter det att val

Yabancıların Çalışma İzinleri Work Permits of Foreigners Ekonomik faaliyetlere ve izin türlerine göre yabancılara verilen çalışma izin sayısı, 2017 (devam) Number

Akademik Birimler, Araştırma ve Uygulama Merkezleri, Bilim, Eği- tim, Sanat, Teknoloji, Girişimcilik, Yenilikçilik Kurulu (Gazi BEST), Araştırma-Geliştirme Kurum

Bunun için fatura parametrelerinde bulunan “Eksi bakiyede işlem durdurulsun” ve “Sipariş bakiye kontrol” parametrelerinin işaretlenmiş olması ayrıca

 Abone olunan veya bağış yoluyla kütüphaneye gelen süreli yayınları, Süreli Yayın Takip Kurallarına uygun olarak Yordam Otomasyon Sistemi’ne işleyerek kayıt altına

Resim Tamamlama alt testinin ölçtüğü beceri alanlarını desteklemek için yapılabilecek çalışma örnekleri:..

Buna göre 4 su bardağı kaç çay bardağı ile dolar..

23.01.2017 tarihinde Eti Maden İşletmeleri Genel Müdürlüğü’nde Mali İşler Dairesi Başkanı, 01.06.2017 tarihinde de Eti Maden İşletmeleri Genel