インターネット上で、ソフトウェアの機能を利用する仕組み:

Discovery の手段:
SOAPのメッセージのパターンを定義する:
Request の段階:
Response の段階:
違いの一例:
<p xml:lang="en">The quick brown fox jumps over the lazy dog.</p> <p xml:lang="en-GB">What colour is it?</p> <p xml:lang="en-US">What color is it?</p>
en-US en-GB
現在ではロケールを送信する手段がない
Accept-Language: zh-cn, fr-ch;q=0.8, fr;q=0.7
ロケールとの関係はデーターの種類による
データー 例
---------------- ---------------------------
date : 2003-05-31
time : 13:20:00
dateTime : 2003-05-31T13:20:00+09:00
double : 1267.43233E12
integer : 2678967543233
データー 例
---------------- ---------------------------
duration : P1Y2M3D
gYearMonth : 2003-05
gYear : 2003
gMonthDay : 05-25
gDay : 25
gMonth : 05
<definitions targetNamespace="http://example.com/example"
xmlns:ns1="http://example.com/example">
<interface name="ns1:Thing">
<!-- All implementations of this interface must be locale-aware -->
<feature uri="http://www.w3.org/2005/09/ws-i18n"
required="true"/>
<operation name="someOperation">
<!-- This operation uses the $user policy -->
<property uri="http://www.w3.org/2005/09/ws-i18n"
required="true">
<constraint xmlns:locale="http://www.w3.org/2005/09/ws-i18n">
locale:$user
</constraint>
</property>
...
</operation>
...
<operation name="anotherOperation">
<!-- This operation uses a specific locale -->
<property uri="http://www.example.com/International/ws/i18n"
required="true">
<value>fr-FR</value> <!-- French for France Locale -->
</property>
...
</operation>
</interface>
</definitions><i18n:international>
<i18n:locale>en-US</i18n:locale>
<i18n:preferences>
<ldml:collation>
<ldml:alias source="de_DE" type="phonebook"/>
</ldml:collation>
</i18n:preferences>
</i18n:international>
<tz>GMT-0300</tz> <tz>America/Los_Angeles</tz>
<i18n:preferences> <ldml:measurementSystem type="metric" /> </i18n:preferences> <i18n:preferences> <ldml:alias source="de_DE" /> </i18n:preferences>
現在のWeb サービスの問題点「意味定義」ができない:
Web サービスの「意味」を定義できる標準
WSMOが提供する意味の要素:
namespace {_"http://example.org/tripReservationOntology#",
dc _"http://purl.org/dc/elements/1.1#",
loc _"http://example.org/locationOntology#",
po _"http://example.org/purchaseOntology#",
foaf _"http://xmlns.com/foaf/0.1/",
wsml _"http://www.wsmo.org/wsml/wsml-syntax#",
prs _"http://example.org/owlPersonMediator#"}
ontology _"http://example.org/tripReservationOntology"
nonFunctionalProperties
dc#title hasValue "Trip Reservation Ontology"
dc#identifier hasValue _"http://example.org/tripReservationOntology"
dc#creator hasValue _"http://example.org/foaf#deri"
dc#description hasValue
"an ontology for describing trip reservations related knowledge"
dc#publisher hasValue _"http://example.org/foaf#deri"
dc#contributor hasValue _"http://example.org/foaf#cristina"
dc#date hasValue _date(2004,12,16)
dc#format hasValue "text/x-wsml"
dc#language hasValue "en-us"
dc#rights hasValue _"http://deri.at/privacy.html"
wsml#version hasValue "$Revision 1.17 $"
endNonFunctionalProperties
importsOntology { _"http://example.org/locationOntology",
_"http://example.org/purchaseOntology"}
usesMediator _"http://example.org/owlPersonMediator"
concept trip
origin impliesType loc#location
destination impliesType loc#location
departure ofType _date
arrival ofType _date
concept tripFromAustria subConceptOf trip
nonFunctionalProperties
dc#relation hasValue tripFromAustriaDef
endNonFunctionalProperties
axiom tripFromAustriaDef
definedBy
forall {?x ,?origin}
(?x memberOf tripFromAustria
implies
?x[
origin hasValue ?origin] and
?origin[
loc#locatedIn hasValue loc#austria]
).
concept ticket
provider ofType _string
trip ofType trip
recordLocatorNumber ofType _integer
concept reservationRequest
nonFunctionalProperties
dc#description hasValue "This concept represents a
reservation request for some trip for a particular person"
endNonFunctionalProperties
reservationItem impliesType wsml#true
reservationHolder impliesType prs#person
concept reservation
nonFunctionalProperties
dc#description hasValue "concept of a confirmation for some item"
endNonFunctionalProperties
reservationItem impliesType wsml#true
reservationHolder impliesType prs#person
namespace { _"http://example.org/purchaseOntology#",
dc _"http://purl.org/dc/elements/1.1",
wsml _"http://www.wsmo.org/wsml/wsml-syntax#",
prs _"http://example.org/owlPersonMediator.wsml#"}
ontology _"http://example.org/purchaseOntology"
concept creditCard
owner impliesType prs#person
number ofType _integer
type ofType _string
expiryDate ofType _date
balance ofType _integer
relation validCreditCard(ofType creditCard)
nonFunctionalProperties
dc#description hasValue "Relation that holds for a valid credit card"
dc#relation hasValue ValidCreditCardDef
endNonFunctionalProperties
axiom ValidCreditCardDef
definedBy
forall {?x, ?y} (
validCreditCard(?x) impliedBy
?x[expiryDate hasValue ?y] memberOf creditCard
and
neg (wsml#dateLessThan(?y, wsml#currentDate()))).
instance tripInnVen memberOf trip origin hasValue loc#innsbruck destination hasValue loc#venice departure hasValue _date(2005,11,22) arrival hasValue _date(2005,11,22) instance ticketInnVen memberOf ticket provider hasValue "Book Ticket Service" trip hasValue tripInnVen recordLocatorNumber hasValue 93 relationInstance ticketPrice(ticketInnVen, po#euro, 120)
WSMO と SWSFの比較:
travel(?Destination, ?Account) {
IfThenElse
if greater(budget_balance(?Account),1000) then
occurrence ?occ1 book_deluxe(?Destination)
if greater(1001,budget_balance(?Account)) then
occurrence ?occ2 book_economy(?Destination)
}
prefix xsd = "http://www.w3.org/2001/XMLSchema". Service[ name *=> xsd#string, author *=> xsd#string, contactInformation *=> xsd#string, contributor *=> xsd#string, description *=> xsd#string, url *=> xsd#string, identifier *=> xsd#string, version *=> xsd#string, releaseDate *=> xsd#date, language *=> xsd#string, subject *=> xsd#string, trust *=> xsd#string, reliability *=> xsd#string, cost *=> xsd#string ].

USA::America.
Germany::Europe.
Austria::Europe.
France::Europe.
Tyrol::Austria.
NewYorkState::USA.
StonyBrook:NewYorkState.
NewYork:NewYorkState.
Innsbruck:Tyrol.
Lienz:Tyrol.
Vienna:Austria.
Bonn:Germany.
Frankfurt:Germany.
Paris:France.
Nancy:France.
Europe:Region.
America:Region.
?Reg:Region :- ?Reg1:Region and ?Reg::?Reg1.
?Loc:Location :- ?Reg:Region and ?Loc:?Reg.
searchTrip(?From,?To):TravelSearchQuery :-
?From:(Region or Location) and ?To:(Region or Location).
searchCitipass(?Loc):TravelSearchQuery :- ?Loc:(Region or Location).
// Service input
search(?requestId,?fromLocation,?toLocation):ProcessInput :-
?requestId:Request and
?fromLocation:Location and ?toLocation:Location.
search(?requestId,?city):ProcessInput :-
?requestId:Request and ?city:Location.
// Service output
ItineraryInfo::ServiceOutput.
PassInfo::ServiceOutput.
ItineraryInfo[from*=>Location, to*=>Location].
PassInfo[city*=>Location].
itinerary(?reqNumber):ItineraryInfo :- ?reqNumber:Request.
pass(?reqNumber):PassInfo :- ?reqNumber:Request.
