Dear Ladies and Gentlemen,
I'm currently workin on an OWL based ontology for Service Level
Agreements based on WS-Agreement for my bachelor thesis at Karlsruhe
Institut of Technology (KIT). Studying the standard you provided as well
as the XML schema, I faced some (imo) inconsistencies.
In the written part of your standard, you do do repeatedly define
terms comprising *one or more* service terms (cardinality 1..*) and
*zero or more* guarantee terms (cardinality 0..*)" (page 4, page 14).
Therefore I interprete that a single GuaranteeTerm without any
ServiceDescriptionTerm / ServiceReference / ServiceProperty ain't
intended to be possible. Whatever, the coding integrated in the standard
document (page 17/18) as well as your provided ws-agreement.xsd allow
terms comprising ONLY a single GuaranteeTerm.
Another point is that in the textual description, you engage ServiceTerm
as super class of ServiceDescriptionTerm, ServiceReference and
ServiceProperty while the entity ServiceTerm ain't used in you example
coding (page 17/18) nor in the provided XSD.
My question is now whether the GFD provided implementation (no
ServiceTerm class, single GuaranteeTerm possible) or the standards' text
shall be referenced to for futur work. Attached you can find some
pseudocode to underline my thoughts.
Best regards,
Knud Mikkat
--
Knud MIKKAT
Student der Informationswirtschaft (B.Sc.)
Karlsruher Institut für Technologie (KIT)
<!-- wsag:Terms without ServiceTerm -->
<wsag:Terms>
<wsag:All>
{
<wsag:All>
wsag:TermCompositorType
</wsag:All> |
<wsag:OneOrMore>
wsag:TermCompositorType
</wsag:OneOrMore> |
<wsag:ExactlyOne>
wsag:TermCompositorType
</wsag:ExactlyOne> |
<wsag:All>
{
<wsag:ServiceDescriptionTerm>
wsag:ServiceDescriptionTermType
</wsag:ServiceDescriptionTerm> |
<wsag:ServiceReference>
wsag:ServiceReferenceType
</wsag:ServiceReference> |
<wsag:ServiceProperties>
wsag:ServicePropertiesType
</wsag:ServiceProperties>
} +
{
<wsag:GuaranteeTerm>
wsag:GuaranteeTermType
</wsag:GuaranteeTerm>
} *
</wsag:All>
} +
<wsag:All>
</wsag:Terms>
<!-- wsag:Terms with ServiceTerm -->
<wsag:Terms>
<wsag:All>
{
<wsag:All>
wsag:TermCompositorType
</wsag:All> |
<wsag:OneOrMore>
wsag:TermCompositorType
</wsag:OneOrMore> |
<wsag:ExactlyOne>
wsag:TermCompositorType
</wsag:ExactlyOne> |
<wsag:All>
{
<wsag:ServiceTerm>
wsag:ServiceTermType
</wsag:ServiceTerm>
} +
{
<wsag:GuaranteeTerm>
wsag:GuaranteeTermType
</wsag:GuaranteeTerm>
} *
</wsag:All>
} +
<wsag:All>
</wsag:Terms>
<wsag:ServiceDescriptionTerm rdf:subClassOf wsag:ServiceTerm />
<wsag:ServiceReference rdf:subClassOf wsag:ServiceTerm />
<wsag:ServiceProperty rdf:subClassOf wsag:ServiceProperty />