- From: Manu Sporny <msporny@digitalbazaar.com>
- Date: Sun, 07 Nov 2010 15:43:21 -0500
- To: Niklas Lindström <lindstream@gmail.com>
- CC: public-rdfa-wg <public-rdfa-wg@w3.org>
On 11/06/2010 07:49 PM, Niklas Lindström wrote: > 1. The name of the interface "PropertyGroup". Since the methods used > to retrieve these are named "getItemBy[...]", why is it not named > "RDFItem" or similar? Just a detail perhaps, but the naming of things > is quite important IMHO. (It could also be called Description, in > honor of the "D" in RDF.. ;) ) Mark and I went back and forth on this a number of times. We discussed many names - "Item", "Object", "DataGroup", "Descriptor", "Info", etc., but none of them were as work-able as PropertyGroup. We decided to move on and try naming PropertyGroups later as we could spend a very long time bike-shedding the name. So, a number of us agree with you - PropertyGroup isn't the name that we want to end up with in the RDFa API. I do like "Description" or "ResourceDescription". > 2. The PropertyGroup should have an attribute for the subject it > represents the properties of ("readonly attribute RDFResource > subject;"). Hmm, I thought that was in there - in any case, it should be. I think that perhaps the last time the interface was edited, the subject was supposed to be placed in the 'info' property, so this could give you the subject: var subject = pg.info["subject"]; Although the documentation doesn't say that, does it. What do you think of the above mechanism? > 3 a. It would be really convenient to easily get a PropertyGroup for > an RDFResource (i.e. IRI:s and BNodes), so I suggest adding a method > to RDFResource for getting a PropertyGroup with the given resource as > subject, such as "getItem()". This is to avoid having to repeatedly > call "document.getItemBySubject(...)" when traversing linked > resources. Perhaps. We're trying to keep the interface as light-weight as possible. This is the code we'd have without your change: var pg = document.getItemBySubject(resource.toString()); and this is the code we'd have with your change: var pg = resource.getItem(); I don't think adding the interface simplifies the code enough to warrant the addition. Am I missing something? What do you think of the more complicated code example? > 3 b. If this breaks the layered abstraction (RDFResource being "lower" > than PropertyGroup), it might be better to have something like > "getItems(...)" on PropertyGroup (either failing or filtering if the > retrieved values aren't all RDFResource:s). It does break the layered abstraction a bit. So is this what you mean by the statement above: var pgs = pg.getItems(???); What would you pass getItems()? An RDFResource? If so, wouldn't you only get one PropertyGroup back? A code example would help to understand where you're coming from. > Background: I have two implementations, one in Java for Sesame and one > in Python for RDFLib, which I would like to adapt to this interface. > Both of these are generic read/write utilities - not RDFa specific. I > have used them a lot with good results, and these suggestions are all > based on my experience with that. Thanks Niklas - this input definitely does help... let us know what you think about the feedback/questions above. -- manu -- Manu Sporny (skype: msporny, twitter: manusporny) President/CEO - Digital Bazaar, Inc. blog: Saving Journalism - The PaySwarm Developer API http://digitalbazaar.com/2010/09/12/payswarm-api/
Received on Sunday, 7 November 2010 20:43:51 UTC