[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