[Data-modeling] [Developers] Casting ISBN-10 to ISBN-13

Brian Karlak zenkat at metaweb.com
Thu Feb 19 19:41:33 UTC 2009


Hello All --

 From the discussions on this thread last week, it sounds like an  
acceptable consensus is to do the following:

1) Change the property ID of /book/book_edition/ISBN to /book/ 
book_edition/ISBN_13 .

2) Keep /book/book_edition/ISBN as an alternate key (alias) to /book/ 
book_edition/ISBN_13 .

3) Change the display name of /book/book_edition/ISBN_13 to "ISBN-13".

3) Modify /book/book_edition/ISBN_13 to /type/rawstring.

4) Make /book/book_edition/ISBN_13 unique (an edition can have only  
one ISBN, but multiple editions can share an ISBN).

5) Cast all 10-digit ISBN numbers to 13-digit ISBN numbers during the  
conversion, and run a daily gardening task to convert any new 10-digit  
ISBNs to 13-digits.

6) We'll maintain the option of creating a /book/book_edition/ISBN_10  
property (with appropriate auto-population & casting) if we find that  
the single 13-digit field proves problematic.

Because we will keep /book/book_edition/ISBN as an alias to /book/ 
book_edition/ISBN_13, this change should not break any applications  
that currently rely on this property -- unless, of course, they expect  
a 10-digit ISBN.

These changes will first be tested on sandbox and then migrated to  
OTG.  Notification will be sent for both events.

Please note there's quite a bit of behind-the-scenes massaging of the  
data & schema that will be required that aren't documented here -- but  
this should adequately describe the end-state you'll see.

Many thanks to all those who participated in the discussion -- your  
feedback was very valuable!

Brian


On Feb 11, 2009, at 11:21 AM, Vishal Talwar wrote:

> We are thinking about standardizing on 13-digit ISBNs for the  
> property /book/book_edition/ISBN on the Book Edition type. To  
> accomplish this, all ISBN-10s (~60K of them) would have to be  
> converted to ISBN-13s. These new ISBN-13s would then completely  
> replace the old ISBN-10s.
>
> Additionally, we are considering the following schema reviews:
>
> 1) /book/book_edition/ISBN currently expects /type/text. This should  
> really be /type/rawstring since the lang(uage) field is irrelevant.
>
> 2) /book/book_edition/ISBN is not currently unique. This should  
> probably be a unique property. That is to say, multiple book  
> editions can have the same ISBN but individual book editions should  
> not have multiple ISBNs.
>
> 3) To make the schema changes, we would keep the current ISBN  
> property around for historical purposes but rename the key and hide  
> the property. A new property would be created which would inherit  
> the /book/book_edition/ISBN key. The change should thus have minimal  
> impact on developers' queries, and no impact on the average user's.
>
> We are looking to make these changes within the next week. Cleanup  
> of bad ISBNs will happen later and should require no further schema  
> changes. If there are any strong objections, please raise them for  
> discussion.
>
> See http://en.wikipedia.org/wiki/Isbn#Overview for more details if  
> interested.
>
> Thanks,
> Vishal Talwar
> _______________________________________________
> Developers mailing list
> Developers at freebase.com
> http://lists.freebase.com/mailman/listinfo/developers



More information about the Data-modeling mailing list