[ISA] XML v20050510g0030 final
Transkrypt
[ISA] XML v20050510g0030 final
Artur Jordan 133267 Wrocław 10.05.2007 Informatyka Systemów Autonomicznych Praca zaliczeniowa Temat: „Ontologie i sieci semantyczne: Język XML” 1. Wstęp XML jest językiem umoŜliwiającym tworzenie własnych języków komunikacji po przez definiowanie odpowiednich znaczników ( markup ) . Jest on podzbiorem SGML (Standard Generalized Markup Language ), pozwala na definiowanie własnych reguł odczytywania danego pliku z informacjami oraz przekazywanie struktury danych. Na bazie języka XML powstało wiele sposobów przekazywania informacji takich jak: RSS (format plików) , XHTML ( język HTML uporządkowany i kompatybilny z standardem XML ), CellML, MathML ( zapis wyraŜeń matematycznych ), XACML ( język kontroli dostępu ), OPML (Outline Processor Markup Language), PMML (Predictive Model Markup Language) i wiele innych. DuŜa zaletą języka XML jest to ze jest on zarówno czytelny dla ludzi jak i dla maszyn. XML obsługuje czcionki Unicode moŜna w nim zapisywać i przechowywać informacje w dowolnym języku naturalnym. Jest to moŜliwe przez naddatek informacyjny jakim jest zapisywanie znaczników takŜe w języku zrozumiałym dla człowieka. Wynikiem tego jest duŜa redundancja informacyjna co jednak jest zjawiskiem typowym dla języków interpretowalnych przez ludzi i maszyny. W języku XML moŜna przekazywać struktury danych takie jak listy i drzewa. Ułatwia to kategoryzowanie informacji i ich sposobu prezentacji. Dzięki temu XML jest idealnym formatem stanowiącym podstawę do generacji dokumentacji a takŜe do jej przesyłania pomiędzy programami a co za tym idzie takŜe agentami. Jest to szczególnie waŜne dla przyszłych rozwaŜań w tej pracy. Ściśle określone zasady składniowe sprawiają, Ŝe język jest łatwy do interpretacji przez parsery. Budowa języka pozwala takŜe na łatwe wykrycie błędów i niekonsekwencji w zapisie. Własne znaczniki oraz ich działanie moŜna definiować przy pomocy nagłówka DTD ( definiowanie typu dokumentu ). Zapis DTD jest intuicyjny i pozwala na łatwe korzystanie z języka. Przykład: <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT obiadynastołówcePWR(obiad*)> obiad(pierwszedanie?, drugiedanie?, dzientygdnia?)> pierwszedanie (#PCDATA)> drugiedanie (#PCDATA)> dzientygodnia (#PCDATA)> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE obiadynastołówcePWR SYSTEM "mniamniam.dtd"> <obiadynastołówcePWR> <obiad> <pierwszedanie> Zupa z porów </pierwszedanie> <drugiedanie> Kotlet po Tyrolsku </drugiedanie> <dzientygdnia> wtorek </dzientygdnia> </obiad > </obiadynastołówcePWR> Obecnie język XML staje się coraz popularniejszym sposobem przekazywania danych oraz ich prezentacji za pomocą odpowiednich parserów. MoŜe o tym świadczyć np. wprowadzenie od roku 2007 (Zarządzenie Nr 119/2006 Prezesa Narodowego Funduszu Zdrowia z dnia 22 grudnia 2006 r. [3] ) języka XML jako sposobu przesyłu dokumentów sprawozdawczych. 2. Komunikacja między agentami Dla programów opartych o ideę agentowości podstawą jest skuteczna komunikacja z uŜytkownikiem oraz innymi agentami. Komunikacja jest zawarta w cechach juŜ słabej agentowości pod postacią „social abilities” , oraz jest jedną z 4 cech dobrego agenta. Komunikacja jest szczególnie waŜna dla systemów ze sterowaniem deliberatywnym i hybrydowym, które nie opiera się wyłącznie na automatycznej reakcji na bodźce jak w przypadku systemów reaktywnych. Język komunikacji między uŜytkownikiem a agentem powinien być maksymalnie prosty i dostosowany do potrzeb i moŜliwości człowieka, który nie posiada odpowiedniego przeszkolenia w zakresie informatyki. Komunikacja polega na przesyłaniu 3 podstawowych rodzajów komunikatów: informacyjnych, Ŝądań, potwierdzeń. Takie podejście realizuje zasadę handshakingu, której zastosowanie jest niezbędne do przeprowadzenia operacji wymiany informacji. Istnienie wymienionych 3 rodzajów komunikatów pozwala na przekazanie informacji, potwierdzenie jej odbioru i ewentualną korektę. Pozwala takŜe na istnienie komunikacji zwrotnej, dzięki której moŜliwa jest komunikacja obustronna z agentem. Przekazywanie informacji jest realizowane na 3 płaszczyznach: 1. Syntaktycznej 2. Semantycznej 3. Pragmatycznej W dalszych rozwaŜaniach chciałbym się skupić na aspekcie semantycznym komunikacji między agentami a konkretniej na idei Sieci Semantycznych. Sieć semantyczna jako składnica informacji jest idealnym środowiskiem działania dla programów agentowych. Unifikacja komunikacji człowiek - agent i agent – agent sprawia, ze agenci programowi mają moŜliwość skutecznego wyręczania ludzi w zadaniach wymagających obróbki duŜej ilości danych ( np. planowania wyjazdów, spotkań, wizyt etc ). Projekt globalnej sieci semantycznej „Semantic Web” ( autorstwa konsorcjum W3C ) zakłada korzystanie z następujących standardów komunikacji semantycznej : Unicode, URI ( URL ), XML i XML Schema, RDF i RDF Schema, OWL 3. Zastosowanie standardu XML w komunikacji agentowej XML jest stosowany obecnie w wielu systemach agentowych jako język komunikacji. Systemy bankowe, biurowe, internetowe szczególnie chętnie wyposaŜane są w schemat komunikacji oparty na XML’u , który często jest domyślnym językiem zapisu danych. Zastosowanie komunikacji między aplikacjami agentowymi chciałbym zaprezentować na przykładzie platformy MAPOS [1]. rys. 1 Przykładowy diagram komunikacji między agentami Celem aplikacji agentowej od strony uŜytkownika jest wybranie produktu o parametrach w maksymalnym stopniu spełniającym oczekiwania uŜytkownia. Zadaniem agenta od strony dostawcy jest udostępnienie informacji o produktach, które leŜą w kręgu zainteresować klienta. Wybór języka XML jako języka komunikacji między agentami umoŜliwia na przesyłanie informacji w pakietach zawierających usystematyzowane informacje, łatwe do prezentacji uŜytkownikowi. Przykładowy pakiet niosący informację pomiędzy agentami dotyczącą firmy Telecom, tego jakie usługi ona oferuje oraz do jakich kategorii naleŜy ją przypisać. Informacje te są wysyłane przez „On-Line Provider Agent” do „Service Broker Agent”. <?XML VERSION="1.0"> <!DOCTYPE servtax SYSTEM "http://www.bel.alcatel.be/mapos/servtax.dtd"><servtax id="TINA"> Adres zawierający informacje dotyczące pliku zawierającego interpretację znaczników XML. <category id="Telecom"> <category id="MM communication"> Lista serwisów udostępnianych przez Telecom – Multi Media communication <service> <name>AV telephony</name> <explanation>Audio or video telephony</explanation> <providers><olp>john</olp></providers> </service> <service> <name>Desktop Collaboration</name> <explanation>Desktop Collaboration service</explanation> </service> </category> <category id="Information Transport"> ... </category> <category id="Additional Services"> ... </category> </category> <category id="Management"> ... </category> <category id="Information"> ... </category> </servtax> Język XML jest takŜe stosowany do przesyłania zamówień, nowych ofert i szeroko pojętej negocjacji cenowej między agentami. Przykładowe zlecenie: <?XML VERSION="1.0"> <!DOCTYPE osam SYSTEM "http://www.bel.alcatel.be/mapos/osam.dtd"> <?XML:NAMESPACE HREF=http://www.bel.alcatel.be/mapos/ecommerce.dtd as="ECOMMERCE"?> Ustawienie pliku z opisem znaczników XML oraz pliku przestrzeni nazw <OSAM> <ORDER ID="off18734823"> <OFFREF HREF="http://www.bel.alcatel.be/mapos/brokr?XMLXPTR=off184712"/> Numer zamówienia oraz adres zawierający jego opis. <PRODGRP TYPE="CD"> <PRODITEM> <PRODREF HREF="http://www.bel.alcatel.be/mapos/brokr?XMLXPTR=cd494712"/> </PRODITEM> <QUANT>2</QUANT> </PRODGRP> Opis oczekiwań zamawiającego – w tym przypadku cena 10 USD <ECOMMERCE:PRICE><QNT> <VALUE TYPE="MAX">10</VALUE> <UNIT CODE="USD"/> <UNIT CODE="s" POWER="-1"/> </QNT></ECOMMERCE:PRICE> </ORDER> </OSAM> Sposób zapisu informacji w systemie MAPOS przy uŜyciu języka XML pozwala na przesyłanie informacji, które mogą być w łatwy sposób interpretowane przez człowieka czy być moŜe w przyszłości takŜe przez agentów innych systemów. 4. Wnioski Typowym zastosowaniem języka XML jest wyraŜenie semantycznego aspektu komunikacji. Tak jak w przykładowej platformie MAPOS, zwykle pozostałe poziomy abstracji przy przekazywaniu informacji są realizowane za pomocą KQML ( warstwa pragmatyczna ) oraz KIF ( warstwa syntaktyczna ). Aby była moŜliwa efektywna komunikacja między agentowymi aplikacjami potrzebna jest współpraca wielu języków na wielu poziomach abstrakcji. Za dobry pomysł uwaŜam propozycję usystematyzowania semantyki po przez projekt „Semantic Web” przedstawioną przez konsorcjum W3C. Dobrym pomysłem w omawianej przeze mnie platformie, było by zastosowanie wymogów związanych z ideą sieci semantycznej. Materiały, z którymi miałem styczność oraz praca przy realizacji projektu uczelnianego przy tworzeniu stron internetowych w technologii XML i PHP pozwalają mi sądzić ze język XML jest wygodnym i uniwersalnym językiem przekazywania informacji o semantyce danego zagadnienia. 5. Literatura [1] Opis platformy MAPOS http://www.infoloom.com/gcaconfs/WEB/paris98/bauwens.HTM [2] Kursy XML oraz przykłady dostępne w Internecie [3] Przepisy regulujące działanie NFZ http://www.nfz.gov.pl/new/index.php?katnr=3&dzialnr=12&artnr=2398