Further comments on the RDF API

Manu, Nathan,

some further comments on the RDF API document (as published by Nathan on Saturday). Most of these are either editorial or my misunderstanding; even if they are not solved by Thursday, they are not a show stopper for a FPWD.

Here we go:

On 1.3.1:

It may well be that it is my lack of JavaScript practice, but I would welcome a style that is not that packed and terse as this example. Or have a simpler example... I had to run back and forth in the document to understand the graph.filter(...).forEach because a bunch of things are implicit here. I think this is not good for an introductory example. We could very well spell it out

filter_events = rdf.filters.type(rdf.resolve("cal:Vevent"))
event_graph = graph.filter(filter_events)
event_graph.forEach(...)

etc. I understand this packed approach is the Javascript style of the day, but it is really not very readable for outsiders...

-------

Description of the RDFNode 'equals': the first sentence refers to 'tocompare'; shouldn't that be rather 'otherNode'?

-------

I think it would be better to define the 'toString' function on the subclasses of RDFNode rather on the level of RDFNode with, essentially, and 'if' in prose...

--------

2.3.4 says that implementation must provide automatic conversions for those datatypes. The only question I have is on 'xsd:int', which is an integer number in the mathematical sense, ie, not necessarily 64 bits. Are we sure that it is easy to handle those in all environments (I know that in the Python case I had to rely on some external libraries because the core Python could not handle those...)

--------

2.4.1 talks about "set of common TripleFilters exposed on a filter attribute of RDFEnvironment:". However

- the example refers to 'filters' and not 'filter'
- the definition of RDFEnvironment (3.3.1) has no definition for 'filter' nor for 'filters'

I would think that 'filters' is the right term, and it is an ommission on 3.3.1

By the way, for filters.type, shouldn't it be && instead of || ?

--------

I am not sure it is wise to use the name 'Profile' for, well, Profile; I first thought this has something to do with the RDFa profile...

--------

3.3.1: I am not sure I understand the interplay of RDFEnvironment and Profile. 

Profile has a prefix map and a term map as a read only attribute, and one can set the terms and the prefixes via the setTerm and setPrefix methods. But, for a specific profile, I cannot set the prefix map and the term map, they are all read-only. Which is fine with me, actually. However... what is then the use of having the createProfile(), createTermMap() and createPrefixMap() methods on the RDFEnvironment? What can I do with those, what is the usage of the returned maps or the profile? Ie, what is the use case of having these methods?

--------

4.2.1: parser and serializer: I am not 100% I understand how they work. The questions on which I have seen no answers are:

- who creates them, ie, where is the 'factory' for those? Wouldn't it be logical to have a createParser() method on the rdf environment object, or something like that? Or do we expect the access to these to be implementation dependent?
- how do I specifiy the input or output serialization formats for these? Ie, RDFa, turtle, microformats, ... I guess that is related to the previous question...

That is it...

Ivan


----
Ivan Herman, W3C Semantic Web Activity Lead
Home: http://www.w3.org/People/Ivan/
mobile: +31-641044153
PGP Key: http://www.ivan-herman.net/pgpkey.html
FOAF: http://www.ivan-herman.net/foaf.rdf

Received on Tuesday, 26 April 2011 11:57:15 UTC