- From: Dominique Hazael-Massieux <dom@w3.org>
- Date: Tue, 15 Jun 2010 16:43:34 +0000
- To: public-rdfa-wg@w3.org
- Message-Id: <1276620199.11715.404.camel@localhost>
Hi, A few comments on the WebIDL used to defined the RDFa API in http://www.w3.org/TR/2010/WD-rdfa-api-20100608/; this is the result of a cursory examination, so the review is not exhaustive in any way. * "object" is used as an argument name in a number of methods, but object is a reserved keyword in WebIDL * a contrario, the WebIDL refers to a "Object" interface that isn't defined; I assume "object" was meant * rather than allowing any object, it seems to me that a wrapper interface for IRI, PlainLiteral, TypedLiteral, BlankNode would help define a more specific API * it sounds like predicate can only by IRIs, in which case the various methods that use "Object" as a type for the predicate argument should use IRI instead * PropertyGroup and DataQuery uses Sequence[] when I think sequence<> is meant * there are also a few cases of Any instead of "any" * note that sequence<> is not recommended for use in attributes, per "For attributes, it is recommended that a read only array is used instead." http://dev.w3.org/2006/webapi/WebIDL/#idl-sequence * "The RDFa Working Group is considering whether plain literals should express literal values as UTF-8, or whether the encoding of the source document should be used instead." The WebIDL spec says that DOMStrings are to be interpreted as UTF-16 encoded strings http://dev.w3.org/2006/webapi/WebIDL/#idl-DOMString * the proposed WebIDL creates a number of constructors (for PlainLiteral, IRI, TypedLiteral, BlankNode, RDFTriple) in the global namespace; they risk colliding with existing usage on the Web (making their implementation in browsers difficult or unlikely), and are not very usual in most JavaScript APIs; given that there are factory methods available from document.data.store, it's not obvious what the benefits of having these constructors are * likewise, most interafaces should probably be annotated with [NoInterfaceObject] to avoid polluting the global namespace * the examples use a "print()" function, but print() in JavaScript commonly refers to window.print() which is used to print a page * the interface Document is in conflict with the interface defined in HTML5 http://dev.w3.org/html5/spec/infrastructure.html#document You probably want to define a "supplemental" interface, the same way e.g. the Selectors API does: http://www.w3.org/TR/2009/CR-selectors-api-20091222/#nodeselector Dom
Attachments
- application/pkcs7-signature attachment: smime.p7s
Received on Tuesday, 15 June 2010 17:23:07 UTC