[Oslc-pm] should ems:observes be required for PerformanceMonitoringRecords

Julianne Bielski bielsk at us.ibm.com
Thu Oct 25 16:10:47 EDT 2012


To net it out:

1. If a Resource is of rdf:type PMR has an ems:observes predicate, then 
ems:observes should reference a pm metric or subclass of pm metric. How 
would we express this in the domain specification?
2. If Resource is of rdf:type PMR, the expectation is that it "has 
performance monitoring information", but the occurrence of ems:observes is 
zero-to-many
3. If a resource has "some monitoring information", it should be of type 
PMR. How would we express this in the domain specification?

If we go with this, then the implication for the ITM implementation of 
crtv:Process, foaf:Agent, crtv:Database, crtv:ResourcePool, and 
crtv:StorageVolume reources be of rdf:type PerformanceMonitoringRecord 
with an isPartOf predicate that references the same URI as the rdf:about 
URI.

Does anyone object?

-- Regards,

Julianne Bielski, STSM
ITM Core Chief Architect
Tivoli, IBM Software Group
tel: (919) 224-1170      (T/L) 687-1170
e-mail: bielsk at us.ibm.com

"All growth is a leap in the dark, a spontaneous unpremeditated act 
without benefit of experience." — Henry Miller



From:   John Arwe/Poughkeepsie/IBM at IBMUS
To:     oslc-pm at open-services.net, 
Date:   10/25/2012 11:29 AM
Subject:        Re: [Oslc-pm] should ems:observes be    required for 
PerformanceMonitoringRecords
Sent by:        "Oslc-Pm" <oslc-pm-bounces at open-services.net>



> I agree with you, but the reason I wrote what I wrote was b/c I was 
> pointing out that ITM's Process and StorageVolume resources have no 
> relationship to PMRs at the moment even though they have 
> ems:observes properties. 

What I was reacting (strongly) to was something that could easily be read 
to mean 
"because X has type Y it MUST have property Z" or 
"because X has property Z it MUST be of type Y" 
**based on** the vocabulary definition (classes, properties, RDFS) alone. 
Any such implications/expectations are in error. 

The (any) **domain spec** is allowed to constrain the vocabulary that way 
if it chooses to. 


> I wasn't saying they couldn't use 
> ems:observes in the RDF extensibility sense. 

Violent agreement is a beautiful thing. 

> ems:observes can be used for any ems:Measure instance, not just the 
> ones containing metrics in the PerfMon namespace. 

At the risk of being pedantic: ems:observes (like any predicate) can be 
used in any resource of any class unless (1) something like a domain spec 
prohibits it in that context and (2) the actor sending the resource 
asserts that it is compliant with the spec from (1). 

> In our scenarios, 
> consumers are specifically looking for performance-related metrics, 
> so I assert that if ems:observes refers to the measurement of a PM 
> metric, the observed resource should either be multi-typed as a PMR 
> or there must be a PMR instance whose isPartOf predicate refers to 
> the resource. This then implies that the ITM provider's payloads for
> Processes and StorageVolumes should be multi-typed as PMRs. 
Agree/Disagree? 

That would be a sensible requirement for the PerfMon domain spec to levy 
IMO. 
So, to be precise, I think the requirement you're contemplating is: 
if ems:observes -> ems:metric -> X , and X is a subclass of any 
pm:*Metrics class, and the ems:metric's subject is s, then another triple 
< s , rdf:type , pm:PerformanceMonitoringRecord > must exist.  It would 
then be silent on some other cases: 

(1) ems:metric's object is a subclass of ems:Metric (so it skips the PM 
namespace and inherits from their common superclass) 
(2) ems:metric's object is any other class 

> The next question is about the converse: if the resource is multi-
> typed as a PMR, must it contain an ems:observes predicate that 
> points to a perfmon metric? I say yes going back to the scenarios 
> again as my premise. This then implies that the ITM implementation 
> either add ems:observes to the CS resource with a pm metric (overall
> CPU and memory utilization come to mind), or we stop typing it as a PMR. 

> Agree/Disagree? 

Quibble: "multi-" is superfluous. 

The scenarios should be the arbiter, although to be fair they are likely 
to be silent unless updated on the case where a PMR is served and it has 
zero ems:observes instances.  That's the kind of thing that 
implementations and their testers tend to hold more dearly than general 
specs. 

Generically it seems to me that allowing zero hurts no clients, but it 
also provides no obvious increase in usefulness, so I personally have no 
grounds to strongly prefer or object to either 0 or 1 as a min occurrence 
constraint.  Min=1 seems to me very mildly preferable, in the sense that 
it's more likely to meet client expectations. 

If you get a really powerful microscope out and read Core, you'll also see 
that domain specs (despite the use of MUST) are setting expectations not 
testable compliance constraints.  Implementations can "deviate" from 
"compliance" because neither concept is well-defined.  The strongest 
statement someone could validly make is that client expectations are 
violated when an implementation breaks a domain spec requirement, and 
hence you'll be more vulnerable to interop issues. 

> How about the contraposition: if the resource does not contain an 
> ems:observes predicate, must it not be typed a PMR? Agree/Disagree? 

From a strictly RDF level, neither triple implies the other.  They are 
simply orthogonal, and the resource owner should assert whichever 
semantics apply. 

From strictly a domain spec level, I'm not seeing any utility in 
prohibiting any form of re-use.  MUST NOTs are the bane of extensibility. 
But maybe there is utility and I'm not seeing it, so if there is a 
scenario where doing that works and not doing it breaks, by all means 
share. 

> For example, if a resource is using a predicate in the perfmon 
> namespace, but the predicate is not ems:observes, but some other 
> value interesting to a a monitoring consumer (e.g. 
> pm:mobilityEnabled, 
> pm:tableReorganizationNeeded,pm:AvailabilityStatus), should it also 
> or can it also be a PMR instance? 

My answer would be "should, yes; must, no."  Because all pm:PMR says 
(semantically) is "the resource has some performance monitoring 
information".  It says nothing about where or how to find it.  That's why 
domain specs are useful, to tie together sets of vocabulary that address 
specific scenarios. 

> We'd have to say "no", unless we relaxed the requirement on 
> requiring ems:observes in resources of type PMR, 

I think that is a non sequitir.  I would take the presence of any pm:* 
predicate as sufficient evidence that also asserting the subject's type as 
PMR would be semantically consistent.  Other predicates might also be 
consistent, so my statement is a min with no max. 

> which I don't think
> would then address our scenarios. 

*If* the domain spec said that < s, rdf:type , pm:PMR > MUST NOT occur 
unless at least one < s , ems:observes , ?object > occurs, then I would 
agree that the domain spec may not cover the documented scenarios... and 
for that matter, if it did cover them I would suspect that the scenarios 
are overly constrained so I would expect that constraint to be loosened as 
new scenarios come into scope in future spec versions. 

> The providers using these non-
> ems:observes predicates could use resource shapes to advertise the 
> usage of the 'pm' predicates to interested consumers. Agree/Disagree?

They can do so, independent of anything currently in the perfmon domain 
spec. 
Best Regards, John

Voice US 845-435-9470  BluePages 
Tivoli OSLC Lead - Show me the Scenario 
_______________________________________________
Oslc-Pm mailing list
Oslc-Pm at open-services.net
http://open-services.net/mailman/listinfo/oslc-pm_open-services.net


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://open-services.net/pipermail/oslc-pm_open-services.net/attachments/20121025/c818336e/attachment-0003.html>


More information about the Oslc-Pm mailing list