- From: Rotan Hanrahan <rotan.hanrahan@mobileaware.com>
- Date: Tue, 20 Nov 2007 15:03:18 -0000
- To: "Rafael Casero" <rcasero@satec.es>, <public-ddwg@w3.org>
- Message-ID: <D5306DC72D165F488F56A9E43F2045D3016021B2@FTO.mobileaware.com>
Apart from the naming of the methods (which we never actually discussed), you are saying much the same as I was saying. The getDefaultUnits and getUnitsList are interesting. They would be useful for interrogation of a property, but in the request-time use case I'd say that a developer would already figure out which units were appropriate and would probably only use the getValueInUnit(u) method, where "u" is a know supported units measurement of the property in question. ---Rotan. From: public-ddwg-request@w3.org [mailto:public-ddwg-request@w3.org] On Behalf Of Rafael Casero Sent: 20 November 2007 14:58 To: public-ddwg@w3.org Subject: Re: [API] Code snippet I .- fast property retrieval (not unit aware) Hi all, my understanding of our discussion at the F2F is, I think, the same as Jo's one: the logic to get the property value in different units will be inside the PropertyValue object. So the PropertyValue should have methods (like propertyValue.GetValueInUnit("mm")) for different units where appropriate. What I understand from Jose is that this snippet will be appropriate for a property with no units (or where the units are implicit) like, maybe, "color depth" (probably better than "resolution_width"). In this case there is no need for additional methods in order to get the property in different units. To me, to have a toString() method at the class level will mean to return the value, that has no units as a String. For a property with different possible units, this method could return the value expressed in "default units". Again, for a property with different possible units, the PropertyValue class can have methods like propertyValue.getDefaultUnits() propertyValue.getUnitsList() and propertyValue.getValueInUnit("some") That was my idea from the F2F... what do you think about? Rafa -------- Mensaje Original -------- My understanding is that you and others wanted the API to be capable of returning values in a choice of units. Correct. My understanding of our discussion at the F2F was that specifying the units was to be something that PropertyValue would cater for, which implies something like: propertyValue.GetValueInUnit("mm").toString(); Ah. I see where there is confusion. This was not what I took from what José said: Also from my example it seems to be good (at least in Java) to have an implemented toString() method at the level of DDRPropertyValue that will return the property value as an String, simplifying even more the task for the developer, that will print the value with System.out.println(value) where value is a DDRPropertyValue object. To me, this is saying that the PropertyValue class itself would have a toString(). If you are providing the class with a GetValueInUnit(u) method, then what is the return class of that method? Boolean? Integer? Float? In any case, the return class is not another instance of the PropertyValue class, or we would be going around in circles. I can see the utility of having a GetValueInUnit(u) method. If this returns an appropriate boxed type (as I previously suggested) then for most languages, and certainly Java, there is an automatic toString() method, and it doesn't include units, because the boxed type is neutral. What I was thinking of was more like this: propertyValue.toString("mm"); // for cases where you want to override the default units and propertyValue.toString(); // which uses the default units as per the vocabulary and propertyValue.getValueInUnits(u); // which returns a boxed type (e.g. Integer) that itself has no units, but which is implied in the parameter you passed in How does this sound? ---Rotan -----Original Message----- From: public-ddwg-request@w3.org [mailto:public-ddwg-request@w3.org] On Behalf Of Jo Rabin Sent: 20 November 2007 11:39 To: public-ddwg@w3.org Subject: RE: [API] Code snippet I .- fast property retrieval (not unit aware) -----Original Message----- From: Rotan Hanrahan [mailto:rotan.hanrahan@mobileaware.com] Sent: 20 November 2007 11:19 To: Jo Rabin; public-ddwg@w3.org Subject: RE: [API] Code snippet I .- fast property retrieval (not unit aware) I was observing that toString() doesn't include a parameter to indicate what units (if any) should apply when interpreting the returned string. So I conclude that to interpret the string we should already know something such as the default units, or know that no units apply. So it boils down to how you know the units in advance. If you know (from the vocabulary perhaps) that the physical width will be represented in millimeters/millimeters, then that's good, because now the string doesn't have to contain the units. If that is what you are suggesting, then I'm happy with that. It means, of course, that we need to decide where this a priori knowledge about the units will be represented. I think perhaps the vocabulary might be a viable place. I'm hesitant to suggest putting this in the ontology because the ontology his wider applicability and we could not be certain that the default units we choose would be the same as those chosen in other use cases. My understanding is that you and others wanted the API to be capable of returning values in a choice of units. My understanding of our discussion at the F2F was that specifying the units was to be something that PropertyValue would cater for, which implies something like: propertyValue.GetValueInUnit("mm").toString(); Yes, there is the need for some properties to have known units. This feels like an argument about angels on the head of a pin. I think we're actually in agreement. The answer is 42, right? I expect so. Jo ---Rotan. === original dialogue === [snip] What is the justification for not including units in the string representation? Perhaps it would be the temptation to parse the string (which is definitely not something I would want to see). However, if an application intends to display the strings to a human then there should be some way to know a) if the human should be interpreting the string in some units, and b) what those units are. So either we introduce the idea of default units for the toString() of any value to which units can apply, or we include the units in the string. If I were to merely present "0.000000000001" as an output with no indication of what it means, then what's the point? It's meaningless garble. If I ask for the value in parsecs, then I expect the returned value in parsecs. I know what the unit is before I get it back. If I am careless enough not to represent that in user output, well, then I'm an idiot. That's not the DDR's problem. If I am less careless, I may choose to represent the unit in any way I like, especially for example, spelling "millimetre" or "millimeter". Jo [snip]
Received on Tuesday, 20 November 2007 15:05:32 UTC