Ontoloji Tabanlı Model Dönüşüm Aracı Ontology Based Model Transformation Tool Alpay Doruk Bilgisayar Mühendisliği Bölümü İzmir Yüksek Teknoloji Enstitüsü, İzmir alpaydoruk@iyte.edu.tr Özet OMG nin tanımladığı Model Güdümlü Mimari (Model Driven Architecture (MDA)) yazılım geliştirme çalışmalarını modeller kullanarak gerçekleştirmeyi önermektedir. Bu kapsamda model dönüşüm işlemi, Platform Bağımsız Modellerden (Platform Independent Model (PIM), Platfrom Spesifik Modellere (Platform Spesific Model (PSM) dönüşümü çeşitli model dönüşüm dilleri aracılığı ile gerçekleştirmektedir. Ontoloji tabanlı model dönüşümünde ise model dönüşümü işlemini ontolojiler kullanarak tanımlamakta ve dönüşüm işlemi ise dönüşüm dilleri yerine ontolojiler kullanılarak gerçekleştirilmektedir. Şu anda yürütülen çalışmanın amacı, model dönüşüm işlemini ontoloji tabanlı olarak gerçekleştirecek bir araç geliştirmektir. Bu bildiride öncelikle ontoloji tabanlı model dönüşümü konusunda bilgi verilecek, yapılmış benzer çalışmalardan bahsedilecek, ve ontoloji tabanlı model dönüşümünü gerçekleştirecek aracın amacı ile kullanacağı mimari hakkında bilgi verilecektir. Abstract Model Driven Architecture (MDA), defined by OMG, propose using models in the software development process. Model transformation process from Platform Independent Models (PIM) to Platform Spesific Models (PSM) is made by using different model transformation languages. In Ontology Based Model Transformation, the transformation process is defined by ontologies and realized by using ontologies in place of model transformation languages. The purpose of the current practice is to build a tool, that will realize the model transformation process ontology based. In this paper, firstly information about ontology based model transformation will be given and also some former practices about this concept will be intoduced. Then the purpose and the architecture of the planned tool will be explained. 1. Giriş Bildiri kapsamında öncelikle OMG nin Model Güdümlü Mimarisi hakkında bilgi verilmektedir. [1][2][3] MDA de modellere dayalı bir mimari kullanılmaktadır. Yazılım geliştirme süreci model tabanlı olarak yürütülmektedir. Model, bir sistemin geliştirilme, çalışma ya da bakım aşamalarındaki belirgin bir görünümüdür. Her model belirgin bir üst-modele bağımlıdır ve spesifik bir üstmodel dili ile yazılmalıdır. Geliştirilen modeller kullanılarak farklı uygulama alanlarına uygun olarak kod üretimi gerçekleştirilmesi MDA de mümkün olmaktadır. MDA de kullanılan bütün diller ortak bir yapıya sahip olmalıdır. MDA de bu yapı Meta Object Facility (MOF) dir. MOF belirli bir alan diline bağlı olmayan tüm genel özellikleri içermektedir. Model dönüşümü işlemi ise iki farklı modelin birbirlerini karşılayacak biçimde işleştirilmesi ve birbirlerine dönüştürülmesi işlemine verilen isimdir. MDA de bütün üst-modelleri tanımlamak için MOF kullanılmaktadır. Bu şekilde farklı üst-modellere dayanan modeller arasındaki uyumluluk sağlanmaktadır. Ontoloji tabanlı model dönüşümü ise model dönüşümü sırasında üst-modeller olarak ontolojilerin kullanılması ve bu ontolojiler arasında dönüşüm işleminin yapılmasını önermektedir. Bu bildiride ontoloji tabanlı model dönüşümü gerçekleştirecek bir aracın hangi özelliklere sahip olması gerektiği, mimarisi ve sahip olabileceği bileşenleri hakkında bilgi verilecektir. Bildirinin ikinci bölümünde model dönüşümü hakkında bilgi verilecektir. Üçüncü bölümde ontoloji tabanlı model dönüşümü, ontoloji eşleme ve ontoloji kullanılarak yapılan model dönüşümleri konusunda gerçekleştirilmiş çalışmalar hakkında kısa bilgiler verilecektir. Dördüncü bölümde ise geliştirilmesi düşünülen aracın sahip olacağı mimari ve bileşenler hakkında bilgiler verilecektir. 2. Model Dönüşümü Model dönüşümü belirli bir kaynak modelden hedef modele bazı model dönüşüm kurallarına bağlı kalınarak yapılan bir eşleştirme işlemidir. MDA tabanlı olarak gerçekleştirilen model dönüşümlerinde kullanılan bazı
önemli kavramlar, Platfrom Bağımsız Model (Platform Independent Model (PIM)), Platform Spesifik Model (Platfrom Spesific Model (PSM)), model dönüşüm dilleri, model dönüşüm kuralları ve dönüşüm motoru kavramlarıdır. MDA yaklaşımında Meta Object Facility (MOF) diğer üst-modellerin geliştirilmesini sağlayacak bir üst-üstmodel teşkil etmektedir. Kaynak model olarak Platform Bağımsız Model (PIM) tanımlanmaktadır. PIM, belirli bir platforma özgü olmayan genel bir modeldir, sistemin davranışını, yapısını, fonksiyonlarını yansıtır. Platfrom Spesifik Model (PSM) ise PIM in belirli bir platform için dönüştürülmüş halidir ve daha çok gerçekleştirime yöneliktir. [3] PSM, son uygulama olmamakla birlikte, arayüz dosyaları, program kodu, arayüz tanımlama dili, ve konfigürasyon dosyaları gibi kavramların yaratılabilmesi için gerekli bilgiye sahiptir. PIM den PSM e eşleme iki üst-model arasındaki eş elemanları kararlaştırır. Farklı iki üst-modeldeki elemanların eş olması demek bunların birbiriyle uyumlu olması ve birbirleriyle çelişmemesi demektir. Model dönüşümü, dönüşüm kurallarını çalıştıran bir dönüşüm motoru tarafından gerçekleştirilir. Dönüşüm kuralları bir kaynak modelden (ör, PIM) bir hedef model (ör, PSM) oluşturulması için gerekli yolları tanımlar. Bir modeli diğer bir modele dönüştürmek için dönüşüm kuralları kaynak üst-modeli, hedef üst-modele eşler. Dönüşüm motoru kaynak modeli alır, dönüşüm kurallarını işletir ve çıkışta hedef modeli verir. Model dönüşümü işleminde birçok farklı model dönüşüm dili kullanılabilir. Model dönüşüm dilleri kuralların tanımlanmasını ve dönüşüm motorunun bunu gerçekleştirmesini sağlamaktadır. Literatürde kullanılan birçok farklı model dönüşüm dili bulunmaktadır. Bu dillerden bazıları Atlas Transformation Language (ATL) [4][5], Graph Rewriting and Transformation Language (GreAT) [6], Model Transformation Language (MOLA) [7] ve Yet Another Transformation Language (YATL) [8][9] dır. 3. Ontoloji Tabanlı Model Dönüşümü Ontolojiler anlamsal web in gerçekleştirilmesinde kullanılacak anahtar teknolojilerdir. Ontoloji terimi felsefede varlık bilim olarak tanımlanmaktadır. Ontoloji doksanlı yıllarda yapay zeka alanında popüler bir terim olarak belirli bir alandaki bilgilerin paylaşımını ve yeniden kullanımını sağlayacak kavramlaştırmaların biçimsel ve açık belirtimi olarak tanımlanmış ve kullanılmıştır. Son zamanlarda ontolojilerin kullanımı zeki bilgi entegrasyonu, elektronik ticaret, doğal dil işleme ve bilgi yönetimi konularında yaygınlaşmaktadır. Ontolojiler belirli bir alandaki bilgilerin paylaşılan ve genel bir anlamının oluşmasına imkan verir. [10] Ontolojiler herhangi bir alanda standart olarak kullanılacak ortak ve paylaşılan sözcük kümelerini (vocabulary) veya terminolojiyi belirler ve ontoloji dilleri (RDFS, DAML+OIL, OWL,...) ile tanımlanırlar. Ontoloji geliştirme araçları (editörleri) aracılığıyla ise ontolojiler görsel olarak tanımlanabilir. Ontoloji kavramı varlığın içindeki anlamı barındırdığından dolayı model dönüşümü işleminin ontolojiler kullanılarak gerçekleştirilmesi yoluyla, anlamsal olarak birbirine uyumlu modeller oluşturulabilmektedir. Şekil 1 de Eclipse UML2OWL eklentisinde yer alan örnek bir OWL Müze ontolojisi yer almaktadır. <?xml version = '1.0' encoding = 'ISO-8859-1'?> <rdf:rdf xmlns:rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:rdfs = 'http://www.w3.org/2000/01/rdfschema#' xmlns:xsd = 'http://www.w3.org/2001/xmlschema#' xmlns:owl = 'http://www.w3.org/2002/07/owl#' xmlns = 'http://example.org/museum#' xml:base = 'http://example.org/museum'> <owl:ontology rdf:about = 'Museum'/> <owl:class rdf:id = 'Painter'> <rdfs:label>painter</rdfs:label> <rdfs:subclassof rdf:resource = '#Artist'/> <rdfs:subclassof> <owl:restriction> <owl:onproperty rdf:resource = '#Painter.paints'/> <owl:mincardinality rdf:datatype = 'http://www.w3.org/2001/xmlschema#nonnegativeint eger'>0</owl:mincardinality > </owl:restriction> </rdfs:subclassof> </owl:class> <owl:class rdf:id = 'Museum'> <rdfs:label>museum</rdfs:label> <rdfs:subclassof> <owl:restriction> <owl:onproperty rdf:resource = '#Museum.city'/> <owl:cardinality rdf:datatype = 'http://www.w3.org/2001/xmlschema#nonnega tiveinteger'>1</owl:cardinality > </owl:restriction> </rdfs:subclassof> <rdfs:subclassof> <owl:restriction> <owl:onproperty rdf:resource = '#Museum.name'/> <owl:cardinality rdf:datatype = 'http://www.w3.org/2001/xmlschema#nonnega tiveinteger'>1</owl:cardinality > </owl:restriction> </rdfs:subclassof> </owlclass> </rdf:rdf> Şekil 1: Örnek bir OWL Ontolojisi
Ontoloji kullanılarak yapılan model dönüşümünde, modeller ontoloji seviyesine çıkarılmaktadır ve üstmodeller, ontolojiler ve ontoloji dilleri kullanarak gerçekleştirilmektedir. Model dönüşümü işlemi ise ontolojilerin birbiriyle eşlenmesi yoluyla gerçekleştirilmektedir. Ayrıca ontoloji kullanımı ile model dönüşümü işlemi daha fazla makine tarafından anlaşılır (machine understandable) bir formda gerçekleştirilebilir. 3.1 Literatürdeki Çalışmalar Bu bölümde ontoloji tabanlı model dönüşümü konusunda yapılmış olan bazı çalışmalardan kısaca bahsedilecektir. Ontoloji tabanlı model transferi konusunda DERI (Digital Enterprise Research Institute) tarafından birçok araştırma ve çalışma yürütülmektedir. Anlamsal Web Servislerinin Model Tabanlı olarak geliştirilmesi konusunda çalışmaktadırlar. Bu kapsamda Web Servis Modelleme Ontolojisi (Web Service Modelling Ontology (WSMO)) [11] adını verdikleri bir ontoloji geliştirmişlerdir. Ayrıca Web Servis Modelleme Dili (Web Service Modelling Language (WSML)) [11][14] aracılığı ile web servisleri modelleyebilmektedirler. Yukarıda belirtilen WSML dilinden en çok kullanılan ontoloji dili olan OWL diline eşleme ve dönüşüm için bir web servisi geliştirilmiştir. Ayrıca WSMO ve WSML dili ile beraber bu teknolojiler ile beraber çalışacak Web Service Modelling Toolkit (WSMT ), Web Service Execution Environment (WSMX) [12][13] gibi birçok ortam bu çalışma grubu tarafından geliştirilmiştir. Bir sonraki bölümde bu çalışmalardan daha ayrıntılı bahsedilecektir. Ayrıca Stephan Roser ve Bernhard Bauer tarafından da ontoloji tabanlı model dönüşümleri konusunda araştırmalar yürütülmektedir. Bu çalışmada ise Semantic Enabled Model Transformation Tool (Sem-MT-Tool) adını verdikleri bir araç geliştirmişlerdir. [15][16] Bu araç OntMT adını verdikleri bir kavramı gerçekleştirerek model dönüşümü işlemini otomatikleştirmeyi amaçlamaktadırlar. OntMT, MDA teknoloji alanı ile Ontoloji teknoloji alanı arasında bir köprü ortaya koymak amacıyla geliştirilmiştir. [15] Bu çalışmada ayrıca bir çıkarsayıcı da dönüşüm işlemleri için gerçekleştirilmiştir. Bu çıkarsayıcı bir model yöneticisi (Model Manipulator), bir kural seti ve Sem-X-Component adını verdikleri bir yapıdan oluşmaktadır. Model yöneticisi model deposundaki modelleri okur, yaratır ve değiştirir. Modeller hakkına bilgiyi Sem-X-Component e iletir ve model yönetimi için arayüzleri sağlar. Sem-X- Component, Sem-MT-Tool un ana elemanıdır ve ontolojilerden elde edilen çıkarsama sonuçlarını düzenler ve model dönüşümü için gereken model ayarlama operatörlerini hesaplar. [15] Model ayarlama operatörleri, model yöneticisi tarafından gerçekleştirilecek değişim adımlarını tanımlayan görevler olarak tanımlanabilir. Bu adımlar bir kuyrukta tutulur ve bu kuyruk model yönetici arayüzü tarafından işlenir. Bu işlemlerde kullanılmak üzere Sem-MT-Tool un kendine ait çıkarsama kuralları mevcuttur. 3.2 Ontoloji Eşleme Ontoloji eşleme, ontoloji tabanlı model dönüşümü işleminin en önemli basamaklarından birini oluşturmaktadır. Bu adımda kaynak ve hedef üstmodelleri oluşturan ontolojiler arasında bir eşleme yani birbirine dönüşüm işlemi gerçekleştirilmektedir. Ontoloji eşleme işlemi temel olarak 3 kategori ile sınıflandırılabilir: 1) Global bir ontoloji ile yerel ontolojiler arasındaki eşleme, 2) Yerel ontolojiler arası eşleme 3) Ontoloji birleştirilmesi ve düzenlenmesi için eşleme. [20] İlk kategori yerel ontolojiler ile entegre bir global ontoloji arasındaki ilişkilerin tanımlanması yoluyla ontoloji entegrasyonunu destekler. İkinci kategori dinamik ve dağıtık ortamlardaki dağıtık veriler arasındaki ortak çalışabilirliği mümkün kılmak için kullanılmaktadır. Üçüncü kategori ise ontoloji yeniden kullanım sürecinde, ontoloji birleştirme (merging) veya sıralama (alignment) işinin bir parçası olarak kullanılmaktadır. Ontoloji birleştirme, entegrasyon ve sıralama işlemleri ontoloji yeniden kullanım süreci olarak tanımlanabilir. Ontoloji birleştirme, aynı konudaki iki veya daha fazla ontolojiden tek ve uyumlu bir ontoloji yaratma sürecidir. Birleşmiş ve uyumlu bir ontoloji bütün kaynak ontolojilerden bilgi içerir. Ontoloji sıralama ise iki orijinal ontoloji arasında bağlantı oluşturma işlemidir. Ontoloji sıralama işlemi kaynakların birbiriyle tutarlı olduğu ancak ayrı tutuldukları zamanlarda gerçekleştirilir. Ontoloji sıralama işlemi genellikle birbirini tamamlayan alanlara sahip ontolojiler kullanıldığında gerçekleştirilir. Ontoloji birleştirme ise farklı konulardaki iki yada daha fazla farklı ve varolan ontolojiden tek bir ontoloji yaratmak için kullanılır. Farklı ontolojilerdeki farklı konular ilişkili olabilir. Birleşmiş ontolojide bazı değişimler olması beklenir. 3.2.1 Ontoloji Eşleme Çeşitleri
Birleşik bir global ontoloji ile yerel ontolojiler arası eşleme. Bu durumda ontoloji eşleme, bir ontolojideki bir kavramı diğer ontolojilerdeki (Ör. Yerel merkezli yaklaşımda global ontoloji üzerinde, veya global merkezli yaklaşımda yerel ontolojiler üzerinde) bir görünüm, veya sorguya eşlemek için kullanılır. Yerel ontolojiler arasında ontoloji eşleme. Bu durumda ontoloji eşleme, anlamsal ilişkilere bağlı kalarak kaynak ontoloji varlıklarının hedef ontoloji varlıklarına dönüştürülmesi işlemidir. Kaynak ve hedef, kavramsal seviyede anlamsal olarak ilişkilidirler. Ontoloji birleştirme ve sıralamada ontoloji eşleme. Bu durumda ontoloji eşleme birleştirilecek veya sıralanacak kaynak (yerel) ontolojiler arasındaki uygunluğu ortaya çıkarır ve çakışan kavramları, eşanlamlıları ve tekil kavramları kararlaştırır. Eşleme, birleştirilecek veya sıralanacak farklı kaynak (yerel) ontolojiler arasındaki benzerlik ve çakışmaları tanımlar. 3.3 Ontoloji Kullanılarak ve Kullanılmadan Gerçekleştirilen Model Dönüşümleri Arasındaki Farklar Bu kısımda model dönüşümü işleminin ontoloji kullanılarak ve kullanılmadan gerçekleştirilmesi arasındaki olası farklardan bahsedilecektir. Ontoloji kullanılmadan yapılan model dönüşüm işlemlerinde, kaynak modelin hedef modele dönüşümü gerçekleştirilirken öncelikle model, üst-modele dönüştürülmekte ve model dönüşüm işlemi tamamıyla kullanılan model dönüşüm diline ve model dönüşüm kurallarına bağlı olarak gerçekleştirilmektedir. Bu aşamalarda modelin barındırdığı anlamsallığın tam olarak korunamaması gibi bir problem ile karşılaşmak mümkün olabilmektedir. Çünkü işlem tamamen kullanılan model dönüşüm dilinin yeteneklerine bağlı olarak gerçekleşmektedir. Farklı model dönüşüm dillerinin, farklı kabiliyetleri olması dolayısıyla dönüşüm işlemi de bu yetenekler çerçevesinde gerçekleşebilmektedir. Ontoloji kullanılarak yapılacak model dönüşüm işleminde ise ilk hedef anlamsal olarak birbirine tam olarak uyan modellerine birbirine dönüştürülmesidir. Bu şekilde kaynak modeldeki her türlü bilginin hedef modele aktarılması amaçlanmaktadır. Kullanılan diller de ontoloji dilleri olacağı için anlamsallığı korumak daha kolay olacaktır. Model dönüşüm işlemi bir ontoloji eşleme işlemi aracılığı ile gerçekleştirilmektedir. Ayrıca ontoloji kullanımından dolayı model dönüşümü işlemi daha fazla makine tarafından anlaşılabilir olarak gerçekleştirilebilmektedir. 4. Ontoloji Tabanlı Model Dönüşüm Aracı Bu bölümde model dönüşümü işleminin ontoloji kullanarak gerçekleştirilme yolları, bileşenleri ve dönüşüm işleminde yer alması gereken adımlar yer almaktadır. Bu kapsamda model dönüşüm işleminde, kaynak model olarak UML modeli, hedef modeli olarak ise Web Servis Modeli ele alınacaktır. MDA tabanlı olarak böyle bir dönüşüm işleminin girdi ve çıktıları Şekil 2 de görülmektedir. Bu şekil Bezivin in [3] çalışmasındaki MDA deki model dönüşümü işleminin ontoloji kullanılarak yapılan model dönüşümü için uyarlanmış şeklidir. MDA deki PIM bu çalışmada UML modeli, PSM ise Web Servis Modeli olarak ele alınmıştır. Üst modeller ise OWL Modeli ve WSML Modelidir. UML2OWL OWL Modeli UML Modeli uyumlu MOF bağımlı OWL-DL ile WSML-DL Eşlemesi işletir Dönüşüm Motoru uyumlu uyumlu WSML Modeli WSMO Web Servis Modeli Şekil 2: Ontoloji Tabanlı Model Dönüşüm Basamakları Aşağıda, bu dönüşüm işleminin bileşenleri olan UML den OWL diline geçiş için kullanılacak UML2OWL dönüşümü ve Web Servis Modelleme Ontolojisi (Web Service Modelling Ontology (WSMO)) hakkında bilgi verilecektir. Bu teknolojilerin kullanımı ile kaynak ve hedef modeller, ontoloji katmanına çıkartılabilmekte ve model dönüşümünün ontolojiler kullanılarak gerçekleştirilebilmesi için bir ortam hazırlanmaktadır. Geliştirilmesi planlanan aracın, bir dönüşüm motoru olması ve şekilde görülen model dönüşümü işlemini otomatik olarak gerçekleştirmesi planlanmaktadır. Bu araç şu anda da kullanılan bazı teknolojilerin birbirine entegre edilmesini ve ontoloji tabanlı olarak model dönüşümü işlemini gerçekleştirmeyi planlamaktadır. Bu amaçla çalışmaya yardımı olabilecek bazı çalışmalar aşağıda ayrıntılı olarak anlatılacaktır. Bu dönüşüm işleminin bileşenleri olan UML den OWL diline geçiş için kullanılacak UML2OWL dönüşümü ve Web Servis Modelleme Ontolojisi (Web Service Modelling Ontology (WSMO)) hakkında bilgi verilecektir. Bu teknolojilerin kullanımı ile kaynak ve hedef modeller, ontoloji katmanına çıkartılabilmekte ve
model dönüşümünün ontolojiler kullanılarak gerçekleştirilebilmesi için bir ortam hazırlanmaktadır. 4.1 Ontoloji Tabanlı Model Dönüşüm Aracı Bileşenleri 4.1.1 Web Servis Modelleme Ontolojisi ve Dili (WSMO ve WSML) Digital Enterprise Research Institute (DERI) tarafından geliştirilen WSMO [11], anlamsal web servislerinin modellenmesi amacıyla geliştirilmiştir. WSMO nun dört temel elemanı vardır:[11] Ontolojiler: WSMO elemanları tarafından kullanılan terminolojiyi sağlar. Web Servis Tanımları: Web servislerin fonksiyonel ve davranışsal özelliklerini tanımlar. Hedefler: Kullanıcıların isteklerini ortaya koyar. Arabulucular (Mediator): Farklı WSMO elemanları arasındaki birlikte çalışırlık problemleri ile ilgilenir. WSMO, anlamsal web servisleri ile ilgili kavramlar için bir üst-model oluşturmaktadır. Bu üst-model MOF spesifikasyonuna uygun olarak geliştirilmiştir. WSMO da mantıksal dil olarak ise Web Servis Modelleme Dili (WSML) adı verilen bir dil kullanılmaktadır. MOF spesifikasyonunda, WSMO üst-model katmanını oluşturur. Ontolojiler, web servisleri, hedefler ve arabulucuların spesifikasyonları ise model katmanını oluşturur. Ontolojiler tarafından tanımlanan ve web servisleri tarafından alınıp verilen veri ise bilgi katmanını oluşturur. [11] WSML in, ontoloji tabanlı model dönüşümü aracı geliştirilmesi konusundaki önemi, PSM model olarak kullanılacak web servisi modelinin ontolojik olarak ifade edilebilmesi aşamasında kullanılabilecek bir dil olmasıdır (Şekil 2). Aşağıda örnek bir WSML kodu görülmektedir (Şekil 3). wsmlvariant _"http://www.wsmo.org/wsml/wsmlsyntax/wsml-dl" Şekil 3: WSML Kod Örneği namespace { _"http://trip.example.org/" } ontology_"http://trip.example.org/abouttrips" concept Trip from impliestype Place to impliestype Place vehicle impliestype Vehicle concept TrainTrip subconceptof Trip concept PlainTrip subconceptof Trip axiom TrainTrip definedby?x memberof TrainTrip equivalent?x memberof Trip and forall?veh (?x[vehicle hasvalue?veh] implies?veh memberof Train). axiom PlainTrip definedby?x memberof PlainTrip equivalent?x memberof Trip and forall?veh (?x[vehicle hasvalue?veh] implies?veh memberof Plain). concept Vehicle concept Train subconceptof Vehicle concept Plain subconceptof Vehicle axiom PlainDisjointTrain definedby?x memberof Plain implies neg?x memberof Train. axiom PlainTripDisjointTrainTrip definedby?x memberof PlainTrip implies neg?x memberof TrainTrip. concept Place concept PlaceInEurope subconceptof Place concept PlaceInAustria subconceptof PlaceInEurope concept PlaceInInnsbruck subconceptof PlaceInAustria concept PlaceInVienna subconceptof PlaceInAustria concept PlaceInNorthAmerica subconceptof Place concept PlaceInCalifornia subconceptof PlaceInNorthAmerica axiom ContinentsAreDisjoint definedby?x memberof PlaceInEurope implies?x memberof PlaceInNorthAmerica Şekil 3: WSML Kod Örneği 4.1.2 UML Modelinden OWL Modeline Dönüşüm (UML2OWL) UML2OWL, ODM spesifikasyonuna (QVT eşleştirmesi) bağlı kalınarak bir ATL dili (Atlas Transformation Language) model dönüşümü olarak gerçekleştirilmiştir.[17] Bu dönüşüm, bir UML modelinin OWL ontolojisine dönüştürülmesini mümkün kılmaktadır. Bu çalışmadaki yeri ise PIM olarak kullanılacak olan UML modelinden ontoloji dili olan OWL diline dönüşüm olarak kullanılmasıdır (Şekil 2). OMG nin ODM Spesifikasyonu nda, UML modeli, OWL modellerine eşleştirilmiştir. Eşleştirmeler, OWL-DL ile
sınırlandırılmıştır. Bu eşleştirme tanımlamalarında yalnızca OWL-DL yapılarının kullanılacağı anlamına gelmektedir. UML2OWL dönüşüm senaryosu iki ATL dili dönüşümünün bileşiminden oluşmaktadır:[17] Ana dönüşüm olan UML2OWL, girdi olarak bir UML modeli alır ve OWL üst-modeline uygun bir ontoloji üretir. İkinci dönüşüm ise, OWL/XML sözdizimine uygun bir XML dokümanı üreten W3C spesifikasyonu tarafından tanımlanmış bir XML çıkarsayıcıdır (extractor). Ana dönüşümün iki ayrı parçası mevcuttur.[17] Birinci kısım, UML modelinden ontolojiye eşleştirmedir. Örneğin, UML sınıfları OWL sınıflarına, özellikler (attribute) veri tipi özelliklerine (datatype property), ilişkiler (association) ise nesne özelliklerine (object property) eşlenir. İkinci kısım ise örneklerle (instance) ilgilidir. UML2OWL dönüşümü ecore formatında bir OWL modeli veya OWL/XML sözdizimine uygun bir OWL dokümanı üretebilir. Bu XML dosyasını elde etmek için OWL üst-modelini bir OWL dokümanına çeviren bir OWL/XML çıkarsayıcısı geliştirilmiştir.[17] Bu çıkarsayıcı, geliştirilen OWL dosyalarının Protege gibi ontoloji araçlarında kullanılmasını sağlamaktadır. 4.2 Dönüşüm Adımları Ontoloji kullanarak yapılan model dönüşüm işleminde ontolojilerin birbirine eşlenmesi konusu çok büyük önem taşımaktadır. Bu çalışma kapsamında ise WSML ile OWL dilleri arasındaki eşleştirme önem kazanmaktadır. Şekil 2 de görüldüğü gibi üst-model seviyesine çıkarılmış yani PSM için UML modelinden OWL ontolojik modeline ve PIM kısmı için ise Web Servis Modelinden, WSML ontolojik modeline çıkarılan modellerin birbiri ile eşlenmesi gerekmektedir. 4.2.1 OWL-DL İle WSML-DL Eşleştirmesi Bu bölümde OWL-DL den WSML-DL e eşleme incelenecektir. Bu eşlemenin çalışmadaki önemi ise Şekil 2 deki PIM ve PSM üst-modelleri olan OWL ve WSML arasındaki dönüşümün gerçekleştirilmesi konusunda olacaktır. Eşleme WSML-Core ile OWL-DL arasında yapılmaktadır. OWL-DL e eşleme WSML ontolojileri ve mantıksal ifadelere uygulanabilir. [14] Bu kapsamda WSML den OWL a (WSML-OWL Translator) [18] ve OWL dan WSML e (OWL-WSML Translator) [19] kod dönüşümü gerçekleştirebilecek uygulamalar da DERI tarafından gerçekleştirmiştir. Önişleme Adımları. WSML-DL den OWL-DL e dönüşümü basitleştirmek için bir takım önişleme adımları uygulanmalıdır. Bu şekilde ontolojilerin birbirleriyle tam uyumlu bir eşleme gerçekleştirmesi sağlanabilir. Ön işlemem adımlarının amacı sözdizimi olarak da birbirinin sağlanmasıdır Önişlemede kullanılabilecek adımlardan bazıları aşağıda örnek olarak görülmektedir: [14] Bütün veri terimleri kısayolları değiştirilir. Ör.,( string :=string( string );integer:=integer(integer); decimal:=decimal(decimal)). Bütün WSML veri tipi üreticileri denk gelen XML Şema veri tiplerine göre değiştirilir. Ör., string http://www.w3.org/2001/ XMLSchema#string ile değiştirilir. Önişleme adımları gerçekleştirildikten sonra WSML-DL sözdizimi ile OWL-DL sözdizimi arasında eşleştirme gerçekleştirilebilir. Eşleştirme işlemi bir eşleştirme fonksiyonu T tarafından yapılmaktadır.[14] Eşleştirmelere örnekler Şekil 4 te verilmektedir. WSML-DL OWL-DL T(id1 subconceptof id2) Class (id1 partial id2) T(id[att_id hasvalue Individual ( id value ]) value( att_id T(value))) T(id1 memberof id2) Individual (id1 type(id2)) Şekil 4: WSML-DL ve OWL-DL Eşleştirmesi [14] Şekil 1 deki örnek OWL kodunun OWL-WSML Translator [18] tarafından dönüştürülmüş hali Şekil 5 te görülmektedir. WSML ile OWL arasında yapılacak olan eşlemenin bu çalışmada büyük öneme sahiptir; çünkü modellerin birbirine dönüştürülme işleminin ana parçasını burası oluşturmaktadır.
namespace { _"http://example.org/museum#", rdf _"http://www.w3.org/1999/02/22-rdfsyntax-ns#", rdfs _"http://www.w3.org/2000/01/rdfschema#", ns1 _"http://www.w3.org/2002/07/owl#", dc _"http://purl.org/dc/elements/1.1/", wsml _"http://www.wsmo.org/wsml/wsmlsyntax#", xsd _"http://www.w3.org/2001/xmlschema#" } ontology _"http://example.org/museum" axiom Museum1 nonfunctionalproperties dc#relation hasvalue Museum endnonfunctionalproperties definedby?x memberof Museum implies exists?y1(?x[museum\.city hasvalue?y1]).?x memberof Museum implies exists {?y1,?y2}(?x[museum\.city hasvalue?y1, Museum\.city hasvalue?y2] and (?y1 =?y2) ). axiom Museum2 nonfunctionalproperties dc#relation hasvalue Museum endnonfunctionalproperties definedby?x memberof Museum implies exists?y1(?x[museum\.name hasvalue?y1]).?x memberof Museum implies exists {?y1,?y2}(?x[museum\.name hasvalue?y1, Museum\.name hasvalue?y2] and (?y1 =?y2) ). axiom Painter3 nonfunctionalproperties dc#relation hasvalue Painter endnonfunctionalproperties concept Museum nonfunctionalproperties dc#relation hasvalue {Museum1, Museum2} endnonfunctionalproperties concept Painter subconceptof Artist Şekil 5: OWL-WSML Dönüşümü Sonucu Ortaya Çıkan WSML Kodu [18] 4.3 Ontoloji Tabanlı Model Dönüşümü Aracı Mimarisi Ontoloji tabanlı model dönüşümünü geçekleştirecek olan araç temel olarak MDA tabanlı bir yapıya sahip olacaktır. Bu aracın model dönüşümü yaparken, kaynak model (PIM) olarak UML modellerini, hedef model (PSM) olarak ise Anlamsal Web Servisi modellerini alması tasarlanmaktadır. Bu sebepten dolayı, kaynak model tarafından bakıldığında UML modellerinin, OWL ontolojilerine dönüştürülmesi ve bu amaçla da UML2OWL [17] gibi bir dönüşümün gerçekleştirilmesi gerekmektedir. Hedef model tarafına baktığımızda ise Anlamsal Web Servis modellerinin WSML [11] dili ile ontolojik olarak modellenme işleminin yapılması gerekmektedir. Daha sonra kaynak taraftaki OWL ontolojilerinin hedef tarafta bulunan WSML dili ile gerçekleştirilmiş ontolojiler ile belirli dönüşüm (eşleştirme) kuralları vasıtası ile eşleştirilmesi gerekmektedir. Bu eşleştirme işlemi de WSML-OWL Translator [18] veya OWL-WSML Translator [19] gibi araçlar ile mümkün olmaktadır. Geliştirilmesi tasarlanan Ontoloji Tabanlı Model Dönüşümü Aracı nın, yukarda bahsedilen farklı teknolojileri bir dönüşüm motoru aracılığıyla bütün olarak entegre edip, ontoloji tabanlı model dönüşümü işlemini gerçekleştirmesi planlanmaktadır. 5. Değerlendirme MDA kapsamındaki model dönüşüm işlemlerinde ontoloji kullanımının anlamsal olarak birbirine tam olarak uyan modeller yaratılmasını mümkün kılacağı düşünülmektedir. Ontoloji Tabanlı Model Dönüşümü konusunda literatürde birçok çalışma yürütülmektedir.bu çalışmaların en önemlilerinden biri Digital Enterprise Research Institute (DERI) tarafından yürütülmektedir. Bu konuda DERI de çalışan grup çok büyük aşama kaydetmiştir. WSMO yu yaratmışlar, ve OWL gibi diğer ontoloji dilleri ile WSMO kapsamında WSML modelleme dili arasında eşleme için çalışmalar ortaya koymuşlardır. Diğer bir çalışma ise Roser ve arkadaşları tarafından yürütülmektedir. Bu çalışmada ise ontoloji tabanlı model dönüşümü için Sem- MT-Tool adını verdikler bir ontoloji tabanlı model dönüşüm aracı gerçekleştirme konusunda çalışmalar sürdürmektedirler. Bu makalede sözü edilen çalışma da ise özellikle modelleme dünyasında çok kullanılan UML modelleri ile Anlamsal Web Servisi Modelleri arasında dönüşümü gerçekleştirecek bir model dönüşüm aracı geliştirilmesi hedeflenmektedir. Bu çalışma kapsamında öncelikle ontoloji tabanlı model dönüşümü ile ilgili literatürdeki çalışmalar incelenmiş ve bu dönüşüm işleminin hangi aşamalara sahip olabileceği ortaya konulmuştur. Daha sonra bu aracın nasıl bir mimariye sahip olması gerektiği incelenmiştir. Çalışmanın şu an bulunduğu aşama iki model arasındaki dönüşüm işleminin, ontoloji eşleme ve dönüşüm kurallarına uygun olarak yürütecek bir dönüşüm motorunun tasarlanması ve gerçekleştirilmesi aşamasıdır. Bu model dönüşüm motoru, tüm dönüşüm işleminin gerçekleştirilmesinden ve farklı teknolojilerin birbiri ile uyumlu çalışmasının sağlanmasından sorumlu olacaktır.
Kaynaklar [1]. Bezivin J., Gerard S., A Preliminary Identification of MDA Components, in Generative Techniques in the context of Model Driven Architecture, Nov 2002. [2]. Dustdar S., ve Schreiner W., A Survey on Web Services Composition, Int. J. Web and Grid Services, Vol. 1, No. 1, 2005. [3]. Bezivin J., vd., Applying MDA Approach for Web Services Platform, Proceedings of the 8th IEEE Intl Enterprise Distributed Object Computing Conference (EDOC 2004). [4]. ATLAS Group, ATL: Atlas Transformation Language ATL User Manual v0.7, LINA&INRIA Nantes, February 2006. [5]. ATLAS Group, ATL: Atlas Transformation Language,ATL Starter s Guide, version 0.1, LINA&INRIA Nantes, December 2005. [6]. A. Agrawal; GReAT: A Metamodel Based Model Transformation Language, ASE 2003 [7]. A. Kalnins, J. Barzdins, E. Celms; Basics of Model Transformation Language MOLA, University of Latvia, IMCS, 2004. [8]. O. Patrascoiu; YATL: Yet Another Transformation Language, Computing Laboratory, University of Kent, United Kingdom. [9]. S. Kent, O. Patrascoiu; Kent Modelling Framework Version Tutorial, University of Kent, Canterbury, UK, Draft, 6th December 2002. [10]. Akyokuş S.; Anlamsal Web, Anlamsal Web Dilleri ve Araçları, Biilişim Kurultayı, 2003. [11]. Bruijn J., vd., Web Service Modeling Ontology (WSMO), W3C Member Submission, June 3, 2005. [12]. Bussler C., vd., Web Service Execution Environment (WSMX), W3C Member Submission 3 June 2005 [13]. Haller A., vd., WSMX - A Semantic Service-Oriented Architecture, Digital Enterprise Research Institute (DERI), 2005. [14]. Keller U., vd., RW 2 Project Deliverable, D1.2 v1.0, Report on reasoning techniques and prototype implementation for the WSML-Core and WSMO-DL languages. Document Version from July 1, 2006. [15]. Roser S., Bauer B., An Approach to Automatically Generated Model Transformations Using Ontology Engineering Space, In Proceedings of Workshop on Semantic Web Enabled Software Engineering (SWESE), Athens, GA, U.S.A., 2006. [16]. Roser S., Bauer B., Ontology Based Model Transformation, LNCS Volume 3844/2006. [17]. Ontology Definition Metamodel Specification, OMG Adopted Specification, ptc/06-10-11 [18]. WSML-OWL Translator, http://tools.sti-innsbruck.at/ wsml/wsml2owl-translator/v0.1/ [19]. OWL-WSML Translator, http://tools.sti-innsbruck.at/ wsml/owl2wsml-translator/v0.1/ [20] Namyoun Choi, Il-Yeol Song, and Hyoil Han, A Survey on Ontology Mapping, College of Information Science and Technology, SIGMOD Record, Vol. 35, No. 3, Sep. 2006