- From: Graham Klyne <GK@NineByNine.org>
- Date: Wed, 25 Sep 2002 09:52:14 +0100
- To: RDF core WG <w3c-rdfcore-wg@w3.org>
1. Equivalence of strings and numerals? CC/PP was developed on the assumption (reinforced by last-call review comments) that the meaning of RDF literals used to describe CC/PP attributes could be refined by associated RDF schema statements. Consider the following example adapted from [1], section 2.3.2,: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ccpp="http://www.w3.org/2002/05/20-ccpp#" xmlns:prf="http://example.com/Schema#"> <rdf:Description rdf:about="http://example.com/MyProfile"> <ccpp:component> <rdf:Description rdf:about="http://example.com/TerminalHardware"> <rdf:type rdf:resource="http://example.com/Schema#HardwarePlatform" /> <prf:cpu>PPC</prf:cpu> <prf:cpuModel>604</prf:cpuModel> <prf:displayWidth>604</prf:displayWidth> <prf:displayHeight>200</prf:displayHeight> </rdf:Description> </ccpp:component> </rdf:Description> </rdf:RDF> The intent in the CC/PP structure and vocabulary, as currently drafted, was that the meaning of the various attributes could be read in conjunction with some RDF schema, such as: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <rdfs:Property about="http://example.com/Schema#cpu"> <rdfs:domain rdf:resource="http://example.com/Schema#HardwarePlatform"> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema-datatypes#string"> </rdfs:Property> <rdfs:Property about="http://example.com/Schema#cpuModel"> <rdfs:domain rdf:resource="http://example.com/Schema#HardwarePlatform"> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema-datatypes#string"> </rdfs:Property> <rdfs:Property about="http://example.com/Schema#displayWidth"> <rdfs:domain rdf:resource="http://example.com/Schema#HardwarePlatform"> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema-datatypes#integer"> </rdfs:Property> <rdfs:Property about="http://example.com/Schema#displayHeight"> <rdfs:domain rdf:resource="http://example.com/Schema#HardwarePlatform"> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema-datatypes#integer"> </rdfs:Property> </rdf:RDF> so that a schema-aware RDF processor could know that the cpu type and model were intended to be treated as textual labels, and display width and height values were intended to be treated as integer values, without having built-in knowledge of the properties themselves. Thus, the intent of the above example is that the cpuModel "604" is an identifying string, but that the displayWidth "604" is an integer value; i.e. they have different interpretations. A consequence of selecting tidy literals is that they would be the same value. The immediate implications of tidy literals for CC/PP that I see would be: - Firstly, it means that the RDF schema for CC/PP, as currently written, would be incorrect. - Secondly that RDF inference engines would be entitled to conclude from the above example that the CPU model number for this device is the same as its display width. Does this matter? Is it harmful? I think that CC/PP, as currently conceived, could live with this change. But I fear that (a) it confuses the situation as far as interpretation of CC/PP profiles is concerned, and (b) it may complicate subsequent possible developments of CC/PP -- see below. (E.g., in consideration of (a), it means that the prf:displayWidth attribute is NOT "the display width in pixels", but "a string that can be a representation of the display width in pixels", or some suchlike.) 2. Consistent treatment of literals and other nodes We have in the past contemplated future developments of CC/PP to permit CONNEG [3] style expressiveness. The CC/PP working group decided that this was something to be deferred, but not according to my understanding abandoned. CONNEG provides for values to be expressed by relationships, so that a device profile might be expressed as something like this: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ccpp="http://www.w3.org/2002/05/20-ccpp#" xmlns:val="http://example.com/Values#" xmlns:prf="http://example.com/Schema#"> <rdf:Description rdf:about="http://example.com/MyProfile"> <ccpp:component> <rdf:Description rdf:about="http://example.com/TerminalHardware"> <rdf:type rdf:resource="http://example.com/Schema#HardwarePlatform" /> <prf:cpu>PPC</prf:cpu> <prf:cpuModel>604</prf:cpuModel> <prf:displayWidth> <val:Integer> <val:le>604</val:le> </val:Integer> </prf:displayWidth> <prf:displayHeight> <val:Integer> <val:le>200</val:le> </val:Integer> </prf:displayHeight> </rdf:Description> </ccpp:component> </rdf:Description> </rdf:RDF> The point of this example is that the literal nodes from the previous example have been replaced by blank nodes, of the form _:someInteger, where: _:someInteger val:le 604 . etc. The expected interpretation of this is that the node _:someInteger denotes an integer. I accept that there are ways around this, but we end up with a situation that information designers have to be prepared to deal representative strings when they are only really concerned with the values that they represent. My view is that these subtleties would be a continuing source of confusion. Especially when one wants to define an inference framework (like CONNEG) that takes account of different value types. ... I have tried to set out why I think untidy literals are best for CC/PP. I accept that there are ways around the difficulties, albeit untidy and requiring changes to a spec that is very close to CR. I suppose that if we were starting from scratch, I would design CC/PP differently using bNodes or typed literals throughout for data values, thus sidestepping the problems of untyped literals. But there is still resistance to using RDF in the CC/PP community and even those modest changes might be sufficient to give such resistance a greater force. #g -- [1] http://www.w3.org/Mobile/CCPP/Group/Drafts/WD-CCPP-struct-vocab-20020819/#ClientProfile [2] http://www.w3.org/TR/rdf-mt/ [3] http://www.ietf.org/rfc/rfc2533.txt ------------------- Graham Klyne <GK@NineByNine.org>
Received on Wednesday, 25 September 2002 04:43:26 UTC