Re: PROPOSAL to close ISSUE-61: Does the RDFa API need a vocabulary helper

Ivan Herman wrote:
> On Jan 13, 2011, at 11:11 , Nathan wrote:
>> Ivan Herman wrote:
>>>> That said, in a previous revision of the api, there was another (disputed iirc) approach, which was to change the return type of Profile::setPrefix from void to a "PrefixResolver", so you'd:
>>>> foaf = rdf.setPrefix('foaf', '');
>>>> then you could do:
>>>> foaf('name')
>>>> rdf.resolve('foaf:name')
>>>> rdf.prefixes.foaf + name
>>>> ...
>>> This is actually very close to what I am used to, which is
>>> foaf = Namespace('')
>> indeed, it's a combination of both approaches :)
>>> although, for my instinct, the first argument ('foaf') is actually superfluous. But I can live with that...
>> The first argument enables the rdf.resolve('foaf:name') and rdf.prefixes.foaf functionality to still be used, giving users a choice in how they prefer to resolve URIs - if the dictionary prefixes.foaf and curie resolve() methods were removed from the API all together though, then yes it would be superfluous.
> Sorry, I was not clear. Of course that argument is necessary _unless_ the only way I want to use it is via 
> foaf = rdf.setPrefix('foaf', '');
> Which begs the question, which may be an overcomplication: what about saying
> foaf = rdf.setPrefix('', 'foaf');
> ie, inverting the order of arguments and make the second optional? If not given, the system can set some sort of an internal name which is probably opaque to the user but, for example, I may not care about it because I would only use the 'foaf' return value...

I'd have to suggest that the method would no longer be a setPrefix 
method and we'd probably be looking for an additional method like:

   PrefixResolver createPrefixResolver(DOMString iri)

probably in addition to the aforementioned, since swapping the return of 
setPrefix to PrefixResolver from void is essentially "free".



Received on Thursday, 13 January 2011 11:11:23 UTC