31
Creative Commons Legal Code Attribution-NonCommercial-ShareAlike 2.5 Reprinted from http://creativecommons.org/licenses/by-nc-sa/2.5/legalcode CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY- CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN “AS-IS” BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFOR- MATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. License THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE (“CCPL” OR “LICENSE”). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. 1. Definitions a. “Collective Work” means a work, such as a periodical issue, anthology or encyclo- pedia, in which the Work in its entirety in unmodified form, along with a number of other contributions, constituting separate and independent works in themselves, are assembled into a collective whole. A work that constitutes a Collective Work will not be considered a Derivative Work (as defined below) for the purposes of this License. 573 APPENDIX ■ ■ ■

Creative Commons Legal Code - rd.springer.com978-1-4302-0286-8/1.pdf · creative commons makes no warranties regarding the infor-mation provided, and disclaims liability for damages

Embed Size (px)

Citation preview

Creative Commons Legal Code

Attribution-NonCommercial-ShareAlike 2.5Reprinted from http://creativecommons.org/licenses/by-nc-sa/2.5/legalcode

CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDELEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN“AS-IS” BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFOR-MATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROMITS USE.

LicenseTHE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVECOMMONS PUBLIC LICENSE (“CCPL” OR “LICENSE”). THE WORK IS PROTECTED BYCOPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THANAS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT ANDAGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THERIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMSAND CONDITIONS.

1. Definitions

a. “Collective Work” means a work, such as a periodical issue, anthology or encyclo-pedia, in which the Work in its entirety in unmodified form, along with a numberof other contributions, constituting separate and independent works in themselves,are assembled into a collective whole. A work that constitutes a Collective Work willnot be considered a Derivative Work (as defined below) for the purposes of thisLicense.

573

A P P E N D I X

■ ■ ■

b. “Derivative Work” means a work based upon the Work or upon the Work and otherpre-existing works, such as a translation, musical arrangement, dramatization,fictionalization, motion picture version, sound recording, art reproduction, abridg-ment, condensation, or any other form in which the Work may be recast, transformed,or adapted, except that a work that constitutes a Collective Work will not be consid-ered a Derivative Work for the purpose of this License. For the avoidance of doubt,where the Work is a musical composition or sound recording, the synchronizationof the Work in timed-relation with a moving image (“synching”) will be considereda Derivative Work for the purpose of this License.

c. “Licensor” means the individual or entity that offers the Work under the terms ofthis License.

d. “Original Author” means the individual or entity who created the Work.

e. “Work” means the copyrightable work of authorship offered under the terms ofthis License.

f. “You” means an individual or entity exercising rights under this License who hasnot previously violated the terms of this License with respect to the Work, or whohas received express permission from the Licensor to exercise rights under thisLicense despite a previous violation.

g. “License Elements” means the following high-level license attributes as selectedby Licensor and indicated in the title of this License: Attribution, Noncommercial,ShareAlike.

2. Fair Use Rights. Nothing in this license is intended to reduce, limit, or restrict anyrights arising from fair use, first sale or other limitations on the exclusive rights of thecopyright owner under copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License, Licensor herebygrants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of theapplicable copyright) license to exercise the rights in the Work as stated below:

a. to reproduce the Work, to incorporate the Work into one or more Collective Works,and to reproduce the Work as incorporated in the Collective Works;

b. to create and reproduce Derivative Works;

c. to distribute copies or phonorecords of, display publicly, perform publicly, andperform publicly by means of a digital audio transmission the Work including asincorporated in Collective Works;

d. to distribute copies or phonorecords of, display publicly, perform publicly, andperform publicly by means of a digital audio transmission Derivative Works;

The above rights may be exercised in all media and formats whether now known orhereafter devised. The above rights include the right to make such modifications asare technically necessary to exercise the rights in other media and formats. All rightsnot expressly granted by Licensor are hereby reserved, including but not limited tothe rights set forthin Sections 4(e) and 4(f ).

APPENDIX ■ CREATIVE COMMONS LEGAL CODE574

4. Restrictions. The license granted in Section 3 above is expresslymade subject to andlimited by the following restrictions:

a. You may distribute, publicly display, publicly perform, or publicly digitally performthe Work only under the terms of this License, and You must include a copy of, orthe Uniform Resource Identifier for, this License with every copy or phonorecordof the Work You distribute, publicly display, publicly perform, or publicly digitallyperform. You may not offer or impose any terms on the Work that alter or restrictthe terms of this License or the recipients’ exercise of the rights granted hereunder.You may not sublicense the Work. You must keep intact all notices that refer to thisLicense and to the disclaimer of warranties. You may not distribute, publicly display,publicly perform, or publicly digitally perform the Work with any technologicalmeasures that control access or use of the Work in a manner inconsistent with theterms of this License Agreement. The above applies to the Work as incorporated ina Collective Work, but this does not require the Collective Work apart from the Workitself to be made subject to the terms of this License. If You create a CollectiveWork, upon notice from any Licensor You must, to the extent practicable, removefrom the Collective Work any credit as required by clause 4(d), as requested. If Youcreate a Derivative Work, upon notice from any Licensor You must, to the extentpracticable, remove from the Derivative Work any credit as required by clause 4(d),as requested.

b. You may distribute, publicly display, publicly perform, or publicly digitally performa Derivative Work only under the terms of this License, a later version of this Licensewith the same License Elements as this License, or a Creative Commons iCommonslicense that contains the same License Elements as this License (e.g. Attribution-NonCommercial-ShareAlike 2.5 Japan). You must include a copy of, or the UniformResource Identifier for, this License or other license specified in the previous sentencewith every copy or phonorecord of each Derivative Work You distribute, publiclydisplay, publicly perform, or publicly digitally perform. You may not offer or imposeany terms on the Derivative Works that alter or restrict the terms of this License orthe recipients’ exercise of the rights granted hereunder, and You must keep intactall notices that refer to this License and to the disclaimer of warranties. You maynot distribute, publicly display, publicly perform, or publicly digitally perform theDerivative Work with any technological measures that control access or use ofthe Work in a manner inconsistent with the terms of this License Agreement. Theabove applies to the Derivative Work as incorporated in a Collective Work, but thisdoes not require the Collective Work apart from the Derivative Work itself to bemade subject to the terms of this License.

c. You may not exercise any of the rights granted to You in Section 3 above in anymanner that is primarily intended for or directed toward commercial advantage orprivate monetary compensation. The exchange of the Work for other copyrightedworks by means of digital file-sharing or otherwise shall not be considered to beintended for or directed toward commercial advantage or private monetary com-pensation, provided there is no payment of any monetary compensation in connectionwith the exchange of copyrighted works.

APPENDIX ■ CREATIVE COMMONS LEGAL CODE 575

d. If you distribute, publicly display, publicly perform, or publicly digitally performthe Work or any Derivative Works or Collective Works, You must keep intact allcopyright notices for the Work and provide, reasonable to the medium or meansYou are utilizing: (i) the name of the Original Author (or pseudonym, if applicable)if supplied, and/or (ii) if the Original Author and/or Licensor designate anotherparty or parties (e.g. a sponsor institute, publishing entity, journal) for attributionin Licensor’s copyright notice, terms of service or by other reasonable means, thename of such party or parties; the title of the Work if supplied; to the extent reason-ably practicable, the Uniform Resource Identifier, if any, that Licensor specifies tobe associated with the Work, unless such URI does not refer to the copyright noticeor licensing information for the Work; and in the case of a Derivative Work, a creditidentifying the use of the Work in the Derivative Work (e.g., “French translation ofthe Work by Original Author,” or “Screenplay based on original Work by OriginalAuthor”). Such credit may be implemented in any reasonable manner; provided,however, that in the case of a Derivative Work or Collective Work, at a minimumsuch credit will appear where any other comparable authorship credit appears andin a manner at least as prominent as such other comparable authorship credit.

e. For the avoidance of doubt, where the Work is a musical composition:

i. Performance Royalties Under Blanket Licenses. Licensor reserves the exclu-sive right to collect, whether individually or via a performance rights society(e.g. ASCAP, BMI, SESAC), royalties for the public performance or public digitalperformance (e.g. webcast) of the Work if that performance is primarily intendedfor or directed toward commercial advantage or private monetary compensation.

ii. Mechanical Rights and Statutory Royalties. Licensor reserves the exclusiveright to collect, whether individually or via a music rights agency or designatedagent (e.g. Harry Fox Agency), royalties for any phonorecord You create from theWork (“cover version”) and distribute, subject to the compulsory license createdby 17 USC Section 115 of the US Copyright Act (or the equivalent in other juris-dictions), if Your distribution of such cover versionis primarily intended for ordirected toward commercial advantage or private monetary compensation.

f. Webcasting Rights and Statutory Royalties. For the avoidance of doubt, where theWork is a sound recording, Licensor reserves the exclusive right to collect, whetherindividually or via a performance-rights society (e.g. SoundExchange), royalties forthe public digital performance (e.g. webcast) of the Work, subject to the compulsorylicense created by 17 USC Section 114 of the US Copyright Act (or the equivalent inother jurisdictions), if Your public digital performance is primarily intended for ordirected toward commercial advantage or private monetary compensation.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOROFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OFANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCEOF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF

APPENDIX ■ CREATIVE COMMONS LEGAL CODE576

ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOWTHE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLYTO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW,IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANYSPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGESARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSORHAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination

a. This License and the rights granted hereunder will terminate automatically uponany breach by You of the terms of this License. Individuals or entities who havereceived Derivative Works or Collective Works from You under this License, how-ever, will not have their licenses terminated provided such individuals or entitiesremain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will sur-vive any termination of this License.

b. Subject to the above terms and conditions, the license granted here is perpetual(for the duration of the applicable copyright in the Work). Notwithstanding theabove, Licensor reserves the right to release the Work under different license termsor to stop distributing the Work at any time; provided, however that any such elec-tion will not serve to withdraw this License (or any other license that has been, oris required to be, granted under the terms of this License), and this License willcontinue in full force and effect unless terminated as stated above.

8. Miscellaneous

a. Each time You distribute or publicly digitally perform the Work or a CollectiveWork, the Licensor offers to the recipient a license to the Work on the same termsand conditions as the license granted to You under this License.

b. Each time You distribute or publicly digitally perform a Derivative Work, Licensoroffers to the recipient a license to the original Work on the same terms and condi-tions as the license granted to You under this License.

c. If any provision of this License is invalid or unenforceable under applicable law, itshall not affect the validity or enforceability of the remainder of the terms of thisLicense, and without further action by the parties to this agreement, such provi-sion shall be reformed to the minimum extent necessary to make such provisionvalid and enforceable.

d. No term or provision of this License shall be deemed waived and no breach con-sented to unless such waiver or consent shall be in writing and signed by the partyto be charged with such waiver or consent.

e. This License constitutes the entire agreement between the parties with respect tothe Work licensed here. There are no understandings, agreements or representationswith respect to the Work not specified here. Licensor shall not be bound by any addi-tional provisions that may appear in any communication from You. This Licensemay not be modified without the mutual written agreement of the Licensor and You.

APPENDIX ■ CREATIVE COMMONS LEGAL CODE 577

Creative Commons is not a party to this License, and makes no warranty whatsoever inconnection with the Work. Creative Commons will not be liable to You or any party on anylegal theory for any damages whatsoever, including without limitation any general, special,incidental or consequential damages arising in connection to this license. Notwithstandingthe foregoing two (2) sentences, if Creative Commons has expressly identified itself as theLicensor hereunder, it shall have all rights and obligations of Licensor.

Except for the limited purpose of indicating to the public that the Work is licensed underthe CCPL, neither party will use the trademark “Creative Commons” or any related trademarkor logo of Creative Commons without the prior written consent of Creative Commons. Anypermitted use will be in compliance with Creative Commons’ then-current trademark usageguidelines, as may be published on its website or otherwise made available upon request fromtime to time.

Creative Commons may be contacted at http://creativecommons.org/.

APPENDIX ■ CREATIVE COMMONS LEGAL CODE578

Special Characters&description parameter, 401&dt parameter, 402&extended parameter, 402&format=xml query, 570&page=page-number parameter, 41&replace=no parameter, 402&s=int parameter, 41&s=rec parameter, 41&shared=no parameter, 402&tags parameter, 402&url parameter, 401&z=t parameter, 41

Numbers1U5EXVPVS3WP5 identifier, 5530boxes.com, 418, 438–442

A<a> element, 543–547<abbr> HTML tag, 546abbr-design-pattern, 546access control list (ACL), 476access permissions, 38account management, Flickr, 40accuracy parameter, 43, 248ACL (access control list), 476Actions tab, 547Add Another Blog link, Flickr, 107add submethod, 401–402address attribute, 541addresses (adr) format, 539–541, 546adr microformat, 339, 541, 550–552aggregate feeds, 78Ajax, 24, 328Ajax Search, Google, 559–561Ajax widgets, 205–223

accessing Flickr via JavaScript, 217–220DOM Inspector, 208Firebug add-on, 208–210Google Maps, 213–216

Greasemonkey, 220–223JavaScript libraries, 210JavaScript Shell, 210overview, 205–208YUI widgets, 211–213

Calendar component, 211–212installing on host, 212–213

all submethod, 401allcalendars calendar feed, 430–432allow_url_fopen option, 133alternative interfaces, 26Amazon, 53–56

items, 53–55lists, 55subject headings, 55–56tags, 55

Amazon E-Commerce Service (ECS), 191–195Amazon S3 (Simple Storage Service), 67, 473

API kits, 482–485PHP, 483–484Python, 484–485

conceptual structure of, 475–476Firefox S3 extension, 476–477rationale for, 474REST interface, 477–481SOAP interface, 481–482

Amazon Standard Identification Number(ASIN), 53

Amazon Web Services (AWS), 476Amazon wishlists, Google Spreadsheets

mashup, 528–532accessing through ECS Web Service, 528to Microsoft Excel Via COM, 535overview, 528Python code for, 528–532

amazonWishList.ListItems generator, 532

amazonWishListtoGSheet.py code, 528<answer> element, 260Apatar mashup tool, 310API ID, 564

Index

579

API kits, 314, 320Amazon S3, 482–485

PHP, 483–484Python, 484–485

Python, 524–532for Upcoming.yahoo.com, 451for working with ODF, 507–518

Odfpy, 507–516OpenDocumentPHP, 516–518OpenOffice.org (OO.o), 518

Zend PHP, 533–534API methods, 121API packets, 320API programming, creating online maps

with, 346–355Google, 347–350Microsoft, 354–355Yahoo!, 351–354

api_key method, 158api_key parameter, 217, 256, 445–448api_key; perms method, 158api_sig method, 158api-key key, 123APIs (application programming interfaces),

6, 21, 115, 121–204. See also API kits30boxes.com, 439–442Flickr, 122

API Explorer, 129–132authorization, 156–164calling methods from PHP, 132–145community, 128documentation, 128–132flickr.reflection methods, 146–154kits, 165–169limitations of, 169–170policy, 128request and response formats, 154–156terms of use, 128XML response, 124–127

GData, Blogger, 199–203overview, 121–122, 171–172Programmableweb.com, 196–198public, 23–24SOAP, 181–195

Amazon E-Commerce Service (ECS),191–195

Flickr SOAP interface, 195geocoder.us service, 182–191

overview, 181WSDL and, 181–182

Upcoming.yahoo.comparts that require authentication,

447–450read-only parts of, 445–447

XML-RPC, 172–181overview, 172–177parsing traffic, 178–181Wireshark, 177–178

YouTube, 198–199APP (Atom Publication Protocol), 82, 199,

316, 420, 426appid parameter, 332, 356, 566AppleScript, programming Google Earth via,

375application programming interfaces. See APIsapplications. See web sitesASIN (Amazon Standard Identification

Number), 53Atom

data, Google Calendar, 424–426in Flickr, 45publishing, 320Version 1.0, 82–86

Atom feeds, 27, 94, 316, 420, 545Atom Publication Protocol (APP), 82, 199,

316, 420, 426Atom Syndication Format, 82atom value, format parameter, 86Atom XML feed, 424atom_1 value, format parameter, 86<atom:content> element, 428<atom:summary> element, 428atom:title expression, 288<attribution> element, 345au value, region feed, 96Auth token, 200, 427authenticate attribute, 301authentication, 138, 475auth.getToken method, 448, 450authorization, 127, 475

Flickr APIs, 156–164example, 157–161implementation of in PHP, 161–164passwords, 157

tokens, Blogger, 199–200autodiscovery, feed, 93–94

■INDEX580

AWS (Amazon Web Services), 476AWSAccessKeyId parameter, 478

Bb value, topic feed, 95Bach keyword, 443, 451badge, 317basic value, projection parameter, 428BBAuth authentication, 561bbox parameter, 256, 377–378BEA AquaLogic Pages mashup tool, 310Berkeley Public Library (BPL), 14Better Flickr Firefox Extension, 25Bidochko, Andriy, 329binding, 184blog template, 289BlogDesk, 111Blogger, 109–110, 199–203, 426

authorization tokens, 199–200creating entries, 201–202deleting entries, 203HTTP methods, 203lists of blogs and posts, 200–201overview, 199updating entries, 203user IDs, 200

blogger.message.2.xml file, 203blogging integration, 114Blogging protocol, 111Bloglines, 97blogs, 105–118. See also Blogger

desktop blogging tools, 111–112feeds, 94Flock social web browser, 114generating feedback flows, 113integration scenarios for, 105–106interfacing with Flickr, 44–45linkbacks, 116posting to, 316posting to blogs, 316RSD specification, 115–116sending Flickr pictures to, 106–111

blogging Flickr pictures, 110configuring Flickr for integration,

107–110overview, 106–107

WordPress, 108Blogspot weblogs, 94

BlueOrganizer, 238bold, ODF, 505–506book_writing_calendar_entry.xml file, 432BookBump, 238BookBurro, 18bookmark, 395, 408–409bookmarklet, 13, 210books, tracking, 235–239bots, 58–59bounding box, 270–272, 285BPL (Berkeley Public Library), 14BPL LibraryLookup bookmarklet, 15Browser Object Model, 208browser plug-ins, 25browsing through Flickr, 40–41buckets, 475, 480–481bundles, 399, 403Bungee Connect mashup tool, 310BusyTime, 421

Cca value, region feed, 96caching, 138, 323calc_square() method, 258Calendar API, 426calendar feeds, 428–433

allcalendars, 430–432meta-feed, 428–430owncalendars, 432–433

Calishain, Tara, 59callback object, 264callback parameter, 332<Camera> element, 369–374<Camera>: <LookAt> element, 369cameras, viewing photos by types of in Flickr,

46campanile_fog.jpg file, 502case, del.icio.us tags, 68–69category_id parameter, 448category.getList method, 449Catt, Dan, 9CC (Creative Commons) licensing, 26, 46cdf value, format parameter, 87‰CE method, 135<channel> element, 79, 82, 90chemistry tag, 411Chickenfoot mashup tool, 310Christen, Benjamin, 346

■INDEX 581

city string, 356class attribute, 541class-design-pattern, 545–546, 549ClientLogin authorization, 434ClientLogin technique, 427client-side frame, 257

form submission, 260hooking to Flickr, 261–266reading and writing elements, 257–260

clouds, 61clustering algorithm, 64Cocoalicious, 405Coghead mashup tool, 310collection_id parameter, 332color changes, ODF, 505–506COM

generating Amazon wishlist Excelspreadsheet via, 535

programming Google Earth via, 374–375comma-separated values (CSV), 334–336,

338comment feed type, 427community, Flickr APIs, 128Compact W3C Basic Geo encoding,

340composite applications, 4Computer Museum, 52Computers & Internet Section, 55Connotea, 408–412contacts, list of in Flickr, 38contacts(hCard), 541–542Content-Type, 188, 358content-type identifier, 41content.xml file, 492–499, 502–504context-type identifier, 32converting JSON to HTML, 264–266Copy Selected button, 285, 301copy_this() function, 301CoScripter mashup tool, 310count argument, 401cracking, 22Craigslist, 5CreateBuckets method, 482Creative Commons (CC) licensing, 26, 46Creative Commons license, 317Critic’s Choice events, 462–464CSV (comma-separated values), 334–336, 338csv format, 92

csv value, format parameter, 87CultureInfo field, 565CultureInfo parameter, 566curl command, 177–188, 450curl command-line tool, 177–178curl invocation, 200, 427custom template, 289–291

DDapper mashup tool, 310data attribute, 294data compression, 138Data formats tab, 547Data Mashups Online Service mashup tool,

310data standards, 323–324dates submethod, 402datetime-design-pattern format, 546DC (Dublin Core) metadata standard,

90dc prefix, 90Debug Mode option, 540de-de value, lang parameter, 87DELETE method, 135, 203delete permission, 129DELETE request, 432Delete Selected button, 302–304delete submethod, 402deleting Blogger entries, 203deletion process, for photos, 302–304del.icio.us, 56–58, 397–407

bundles, 403Firefox extension, 25JSON, 403–405mashup with Flickr, 412–416overview, 398–399posts method, 400–402

add submethod, 401–402all submethod, 401dates submethod, 402delete submethod, 402get submethod, 400–401recent submethod, 401

RSS, 403–405tags, 67–71, 400

adding, 68case, 68–69further information, 69–71

■INDEX582

multiword phrases, 68–69using to mash up, 72–73

third-party API kits, 405–407third-party tools for, 405update method, 399

delimiters, 475Denodo data mashup, 310Denton, William, 18description class, 549description parameter, 448<description> element, 84, 381–383design patterns, microformats, 545–547

abbr-design-pattern, 546class-design-pattern, 545–546include-pattern, 546–547overview, 545rel-design-pattern, 545

desktop blogging tools, 111–112developer communities, 322developers, community of, 25die_on_error parameter, 167direct API calls, and XHR, 253–255dirflg=h parameter, 52display_all parameters, 88<div id="pics"></div> element, 264<div> element, 257, 268, 294, 541, 542, 545Do Not Share with Everyone setting, Google

Calendar, 419doAction property, 555Document Object Model (DOM) Inspector,

208, 347documentation, 26, 318

Flickr APIs, 128Flickr methods, 129–132

document.xml file, 521.docx file, 520DOM (Document Object Model) Inspector,

208, 347dominos object, 555dt parameter, 400DTEND statement, 465DTSTART statement, 465Dublin Core (DC) metadata standard, 90

Ee value, topic feed, 95ECMA final schemas, 521ECMA Office Open XML (OOXML), 519–522

versus ODF, 522overview, 519–522viewers/validators for, 522

ECS (Amazon E-Commerce Service), 191–195ECS Web Service, accessing Amazon wishlists

through, 528ecto, 111ElementTree library, 173, 437, 524e-mail interfaces, in Flickr, 44Email parameter, 199, 427embeddable iframe, 331embedded images, ODF, 502–503embedded scriptability, 24en_za value, region feed, 96<enclosure> element, 90, 92end parameter, 442end_date parameter, 448end_time parameter, 448entries, Blogger, 201–203<entry> element, 83, 84–85, 428en-us value, lang parameter, 87error reporting, 321es-us value, lang parameter, 87eval() method, 264event aggregators, 443–458

Eventful.com, 452–458PHP API kit for, 454–456Python API kit, 456–458searching for events, 452–454

overview, 443Upcoming.yahoo.com, 443–451

API, 445–450API kits for, 451feeds from search results, 443–445

event feed type, 427event feeds, 433–434event_id parameter, 446event.add method, 448Eventful.com, 417, 452–458

PHP API kit for, 454–456Python API kit, 456–458searching for events

using API, 453–454using feeds, 452–453

eventfulpy library, 456event.getInfo parameter, 446events.GetDisplayList argument, 442events(hCalendar), 542–543

■INDEX 583

/events/ical method, 454/events/search method, 453Excel, generating Amazon wishlist

spreadsheet via COM, 535EXDATE statement, 465Expires parameter, 478explicit licenses, 317exporting data, 25EXRULE statement, 465extending LibraryLookup bookmarklet, 17Extensio mashup tool, 310extensive error reporting, 321

Ff=q parameter, 50fans, 404fastr, 67feed autodiscovery, 93Feed Browser tab, 288feed formats, from Google Calendar,

420–426Atom data, 424–426iCalendar/iCal, 421–424

feed readers, 96<feed> element, 83–84feedback flows, 113Feedburner, 99–100Feedity, 98feeds, 77–104, 315–316

Atom 1.0, 82–86autodiscovery, 93–94combining with blogging to generate

feedback flows, 113filtering, 103finding, 93–94Flickr, 86–92

exchange formats, 90–92parameters, 86–87

Google News, 95–96how to persist, 299–304

overview, 299–301selection and deletion process for

photos, 302–304news aggregators, 96–97overview, 78remixing

with Feedburner, 99–100with Yahoo! Pipes, 100–104

RSS 1.0, 80–82RSS 2.0, 78–86scraping using GUI tools, 98–99validating, 98weblogs, 94Wikipedia, 94–95Yahoo! News, 95–96

feeds (simple template), 288–289Fetch Feed module, 101fickr_key.php file, 165file_get_contents function, 133file-suffix identifier, 32Filter module, 103filtering feeds, 103Find Businesses option, 331finding feeds, 93–94findr, 67Firebug add-on, 208–210Firefox, 8, 68, 97, 208–210, 238, 405, 476–477,

544Flags parameter, 566FlashEarth, 234, 376Flickr, 8, 21, 29, 38, 314

accessing via JavaScript, 217–220account management, 40APIs, 122

API Explorer, 129–132authorization, 156–164calling methods from PHP, 132–145community, 128documentation, 128–132flickr.reflection methods, 146–154kits, 165–169limitations of, 169–170policy, 128request and response formats,

154–156terms of use, 128XML response, 124–127

blogging pictures, 110browsing through, 40–41configuring for blog integration,

107–110Blogger blogs, 109–110WordPress blogs, 108

contacts, 38Creative Commons (CC) licensing, 46displaying photos using <gm:map>, 292–294

■INDEX584

e-mail interfaces, 44feeds, 86–92

exchange formats, 90–92parameters, 86–87

Flickr SOAP interface, 195Flock social web browser, 114GeoFeed, 340groups, 38–40KML from, 367–368mashing up with Google Maps API,

243–281bounding box, 270–272bringing together Flickr and GMap

code, 269client-side frame, 257–266design, 244geotagging in Flickr, 245–248Google Mapplet that shows Flickr

photos, 277–281making pictures show up in map,

272–276overview, 243–244server-side proxy, 253–257setting up, 267viewport, 268–269XMLHttpRequest (XHR) object, 248–252

mashup with del.icio.us, 412–416Mashup-by-URL-Templating-and-

Embedding pattern, 47–49mobile access, 45Organizer feature, 43–44photos, 30–33

browsing by date, 36collections of, 37data associated with individual, 33–34favorites, 37geotagged, 42–43popular, 38representations of, 31search of, 41–42sets of, 37viewing by type of camera, 46

recent activities, 44sending pictures to blogs, 106–111showing pictures in Google Earth, 376–393

flickrgeo.php code, 383–392generating KML for photos, 382–383<NetworkLink> element, 379–382

syndication feeds, 45tags, 34–35, 62–67

applications using, 67common practice, 63–64creating, 64geotagging, 66–67machine, 66–67popular, 30potential weaknesses of, 65singular/plural nouns, 65–66syntax of, 64–65using to mash up, 72–73

third-party applications, 45users, 30–33

personal archives, 36using Yahoo! Pipes to access, 291–292weblog interfacing, 44–45

Flickr API, 66Flickr API Explorer, 129–132, 319Flickr Central Group, 38flickr. class, 168Flickr FAQ, 62Flickr GeoFeed, 344Flickr Greasemonkey script, 45Flickr map, 66Flickr Maps, 207Flickr photo, 23Flickr Related Tag Browser, 67Flickr script, 4Flickr World map, 42Flickr_API object, 166flickr_client class, 174flickr_method class, 152flickr_methods.php class, 149flickr.auth.getToken method, 160FlickrCentral, GeoFeed, 340flickr.client instance, 247flickr.contacts.getList method, 157, 160flickrgeo.php, 255, 261–268, 291, 383–392flickr.groups.pools.getPhotos method, 146flickr.methods.getMethods method, 149flickr.people.findByUsername, 145flickr.photos.geo method, 246flickr.photos.geo.getLocation method, 247flickr.photos.geo.setLocation method, 146flickr.photos.getCounts method, 170flickr.photos.getInfo method, 130flickr.photos.search class, 168

■INDEX 585

flickr.photos.search method, 123–129, 148,178, 247, 255, 377

flickr.reflection methods, 146–148, 149–154,182

flickr.reflection.getMethodInfo method,146–149, 182

flickr.reflection.getMethods method, 146flickr.test.echo method, 129, 168Flock social web browser, 114, 115flower keyword, 192<Folder> element, 383folksonomic, 396folksonomies, 61, 73–75. See also tagsfont changes, ODF, 505–506footnotes, ODF, 502foreign tags, 84FORM enctype attribute, 135form submission, 260format parameter, 86, 90, 155format=json parameter, 217format=kml format, 367format=kml_nl format, 367formatting lists, ODF, 504–505free-busy value, projection parameter,

428freshDel.icio.us, 405fr-fr value, lang parameter, 87friends parameters, 88full value, projection parameter, 428FUTEF, 112

GGarrett, Jesse James, 206GClientGeocoder object, 360GData, Blogger, 199–203

authorization tokens, 199–200creating entries, 201–202deleting entries, 203HTTP methods, 203lists of blogs and posts, 200–201overview, 199updating entries, 203user IDs, 200

GData-based Calendar API, 426–434calendar feeds, 428–433

allcalendars, 430–432meta-feed, 428–430owncalendars, 432–433

event feeds, 433–434feeds available from, 427–428obtaining authentication token,

427visibility and projection, 428

geo (locations), 543geo class, 549geo format, 539, 546geo microformat, 339, 549, 552geo namespace prefix, 340geo.* method, 247geocode addresses, 356geocode method, 182–189geocode_address method, 182geocode_intersection method, 182geocoding, 356–364

geocoder.us service, 182–191oXygen XML editor, 184–188PHP PEAR::SOAP invocation,

190Python’s SOAPpy library, 188–190

geocoding script, 556–557Google Geocoder, 358–361

JavaScript interface, 360–361REST interface, 358–360

non-U.S. addresses, 363–364Virtual Earth, 361–363Yahoo! Maps, 356–357

Geographic Information System (GIS), 328

geo:lat=[LATITUDE] tag, 245<geo:lat> element, 10, 245, 292, 340geolocated photos, script for,

255–257geo:lon tag, 10, 245geo:lon=[LONGITUDE] tag, 245<geo:long> element, 292, 340geo:Point element, 340geo.position metatag, 339GeoRSS, 336, 339–340

vs. KML, 346in Virtual Earth, 344–345Yahoo!’s use of, 341–345

GeoRSS GML encoding, 340georss prefix, 340GeoRSS Simple encoding, 340georss:point element, 337–340georss:where element, 340

■INDEX586

geotagged tag, 66, 245geotagging, 9, 62, 66–67, 245–248gessionid parameter, 427GET method, 135–138, 203GET request, 160, 245, 247, 250, 262, 380, 439,

478–480, 543get submethod, 400–401get_pictues() method, 261, 262getCollection method, 332–334getErrorCode() function, 167getErrorMsg() function, 167GetFeatureByHref method, 374getResource function, 134, 143GIS (Geographic Information System),

328Global Positioning System (GPS),

327GMap button, 9GMap keyboard, 215<gm:container> element, 301GME (Google Mashup Editor), 283, 287–288,

316, 319analysis of using, 309–310Feed Browser tab, 288tags, 287

<gm:handleEvent> element, 294GMiF (Google Maps in Flickr), 7–13, 28

comparable mashups, 13elements, 8methods of combination, 12–13reasons for combination, 8–11

gml prefix, 340<gm:list> element, 294–299<gm:list> tag, 288gml:Point element, 340gml:pos element, 340<gm:map> element, 294<gm:page> element, 301<gm:pager/> element, 294<gm:section> element, 301<gm:tabs> tag, 301<gm:template> element, 289, 294Goodreads, 238Google AJAX Feed API, 93Google Ajax Search, 559–561

manipulating results, 559–561Google Base, 67Google Base feed, 288

Google Calendar, 418–438exporting events calendar to, 461–471

creating feed of Critic’s Choice usingPython, 462–464

UC Berkeley event calendars, 462writing events to, 464–471

feed formats from, 420–426Atom data, 424–426iCalendar/iCal, 421–424

GData-based Calendar API, 426–434calendar feeds, 428–433event feeds, 433–434feeds available from, 427–428obtaining authentication token, 427visibility and projection, 428

PHP API kit for, 434–437Python API kit for, 437–438setting up, 418–420

sharing calendars, 419–420usage patterns, 419

Google Code, 290Google Desktop HTTP/XML Gateway,

570–571Google Docs, 523Google Earth, 8–11, 364–375

KML, 364<Camera> element, 369–374from Flickr, 367–368<LookAt> element, 369–374

programming via AppleScript, 375programming via COM, 374–375showing Flickr pictures in, 376–393

flickrgeo.php code, 383–392generating KML for photos, 382–383<NetworkLink> element, 379–382

Google Earth Community, 364Google Earth Gallery, 364Google Gadgets, 24Google GData APIs, 320Google Geocoder, 358–361

JavaScript interface, 360–361REST interface, 358–360

Google Mapplets, 24, 277–281Google Maps, 8, 24, 45, 49–52, 207, 213–216,

328connecting Yahoo! Pipes, 51–52URL language of, 49–51viewing KML files in, 51

■INDEX 587

Google Maps API, 6, 49, 213, 347–350mashing up with Flickr, 243–281

bounding box, 270–272bringing together Flickr and GMap

code, 269client-side frame, 257–266design, 244geotagging in Flickr, 245–248Google Mapplet that shows Flickr

photos, 277–281making pictures show up in map,

272–276overview, 243–244server-side proxy, 253–257setting up, 267viewport, 268–269XMLHttpRequest (XHR) object, 248–252

Google Maps in Flickr (GMiF), 7–13, 28comparable mashups, 13elements, 8methods of combination, 12–13reasons for combination, 8–11

Google Mashup Editor (GME), 283, 287–288,316, 319

analysis of using, 309–310Feed Browser tab, 288tags, 287

Google My Maps, 331–332Google News

feeds, 95–96refactoring pipes, 102–103

Google Reader, 97Google Spreadsheets API, 524–535

Amazon wishlists mashup, 528–532accessing through ECS Web Service, 528generating Excel spreadsheet via COM,

535overview, 528Python code for, 528–532

Python API kit, 524–527Zend PHP API kit, 533–534

google-maps tag, 548GPS (Global Positioning System), 327granular architecture, 319granular services, 319graphical user interface (GUI) tools, 98–99graphical widgets, 100Greasemonkey, 8, 12, 17, 21, 73, 221

group-id identifier, 38gsessionid request, 434GSheetForAmazonList class, 532GUI (graphical user interface) tools, 98–99GuruLib, 238

Hh value, topic feed, 95hacking, 22hacks, 25hAtom microformat, 546hCalendar format, 539, 542, 546hCalendar microformat, 551, 552hcard class attribute, 542hCard format, 539, 546hCard microformat, 547, 550, 552HEAD method, 135<head> element, 93headers, ODF, 499–500heading angle, <Camera> element, 373heading parameter, 371helloworld_odfpy.odt file, 508helloworld.odt file, 492Hemenway, Kevin, 59hl=en parameter, 50Holovaty, Adrian, 7Housingmaps.com, 5–7, 28

comparable mashups, 7elements, 5location of remixing, 6methods of combination, 6–7reasons for combination, 5–6

href attribute, 93, 548href element, 380hResume microformat, 546, 551hReview microformat, 546, 551HTML

converting JSON to, 264–266microformats and metatags for, 338–339

html interface, 257html value, 257HTTP

Blogger, 203error codes, 321methods, 426Wireshark, 177–178

HttpClient library, 138httplib2 library, 138

■INDEX588

HTTP/XML Gateway, Google Desktop, 570–571hybrid blogs/wikis, 116

IiCal4j library, 424iCalendar, 323, 418–420

exporting events calendar to, 461–471creating feed of Critic’s Choice using

Python, 462–464UC Berkeley event calendars,

462Google Calendar, 421–424programming with, 458–461

PHP, 460–461Python, 458–460

iCalendar Message-Based InteroperabilityProtocol (iMIP), 421

iCalendar Transport-Independent Interoperability Protocol (iTIP)Scheduling Events, 421

iCalendar Validator, 424ICBM <meta> tag, 339identifiers, 48ie value, region feed, 96ie=UTF8 parameter, 50_IG_FetchContent() method, 281iGoogle, 24images, embedded, ODF, 502–503iMIP (iCalendar Message-Based

Interoperability Protocol), 421importing data, 25in value, region feed, 96include_path variable, 165include-pattern, 546–547index.gml file, 287, 290influence, 171ini_set() function, 165init_data() method, 299<input> element, 259, 262, 272integrating

with blogsdesktop blogging tools, 111–112Flock social web browser, 114generating feedback flows, 113linkbacks, 116RSD specification, 115–116scenarios, 105–106sending Flickr pictures to, 106–111

search functionality, 559–571Google Ajax Search, 559–561Google Desktop HTTP/XML Gateway,

570–571Microsoft Live Search, 564–568OpenSearch, 568–570overview, 559Yahoo! Search, 561–564

with wikis, 116–117Intel Mash Maker mashup tool, 311intellectual property, 26interfaces

alternative, 26APIs, public, 23–24e-mail, Flickr, 44mobile, 26, 45

Internet bots, 58is_contact parameter, 246is_family parameter, 246is_friend parameter, 246is_public parameter, 246<isbn> tag, 85italics, ODF, 505–506<item> element, 79, 90item.description link, 292item.image_prefix parameter, 291item.image_small_URL parameter, 291item.link link, 292<items> element, 82ItemSearch operation, 191iTIP (iCalendar Transport-Independent

Interoperability Protocol) SchedulingEvents, 421

it-it value, lang parameter, 87iwloc=addr parameter, 50

JJackBe Presto Enterprise Edition mashup

tool, 311Jargon File web site, 22JavaScript

accessing Flickr via, 217–220adding to mashups, 294–299interface, 360–361libraries, 210

JavaScript Shell, 210, 211, 347JavaScript-accessible interface, 358JODConverter Java Library, 518

■INDEX 589

JSON, 91–92converting to HTML, 264–266del.icio.us, 403–405using XHR via YUI Connection Manager to

read, 262–264json output, 360json parameter, 377JSON serialization, 77json value, 257json value, format parameter, 87jsoncallback parameter, 219jsonFlickrApi() function, 218jsonFlickrFeed() function, 91

KKayak website, 240key parameter, 358Keyhole Markup Language (KML), 345

<Camera> element, 369–374files, viewing in Google Maps, 51from Flickr, 367–368generating for photos, 382–383versus GeoRSS, 346<LookAt> element, 369–374<NetworkLink> element, 379–382

keys, 475<Keywords> type, 192KML (Keyhole Markup Language), 345

<Camera> element, 369–374files, viewing in Google Maps, 51from Flickr, 367–368generating for photos, 382–383versus GeoRSS, 346<LookAt> element, 369–374<NetworkLink> element, 379–382

kml output, 358kml parameter, 377kml value, 257KOffice, 489ko-kr value, lang parameter, 87

Llang parameter, 86–87language-specific libraries, 552–553latitude class, 549<Latitude> element, 357latref attribute, 294layer=t parameter, 51

LCSH (Library of Congress Subject Heading),74

libcurl Emulator, 134libcurl library, 143, 173Library of Congress Subject Heading (LCSH),

74LibraryLookup bookmarklet, 4, 13–18, 28

comparable mashups, 18configuring, 14extending, 17function, 16invoking, 15

LibraryLookup Bookmarklet Generator, 14LibraryThing, 18, 74lingua franca, 13link elements, 429link generator, 220<link> elements, 93linkbacks, 116, 316ListLookup query, 528ListMyBuckets method, 482lists, ODF, 500, 504–505Live Search, 329, 336–337, 354–355, 564–568live_export XML format, 462ll parameter, 52lngref attribute, 294load function, 272locality property, 555location parameter, 189, 445, 566location string, 356locations (geo), 543longitude class, 549<Longitude> element, 357<LookAt> element, 369–374, 383loops, 291loosely coupled architecture, 319

Mm value, topic feed, 95machine tags, 66–67, 245magicCookie parameter, 428map object, 214Mapbuilder.net, 329–331, 334–336MapQuest, 329Mapstraction, 376map-type identifier, 42maptypes variable, 215Marmite mashup tool, 311

■INDEX590

Maron, Mikal, 346MarsEdit, 111–112mashup, 4, 71Mashup Dashboard, 18mashup event, 543Mashup Guide Demo Calendar, 420, 422mashup tag, 400, 403Mashup-by-URL-Templating-and-Embedding

pattern, 47–49Mashupguide.net, 47, 568mashups, 3–19, 21, 80

API and mashup verticals, 233del.icio.us, 72–73describing using tags, 231–233determining potential for, 22

Ajax, 24alternative interfaces, 26browser plug-ins, 25community of users/developers, 25Creative Commons (CC) licensing, 26documentation, 26embedded scriptability, 24existing mashups, 23–24importing/exporting data, 25intellectual property, 26key entities, 22–23mobile interfaces, 26open source software, 26public APIs, 23–24reusability, 26RSS, 27skinnability, 26tagging, 27weblogging, 27

directories of, 228–230Flickr, 72–73going from specific API to, 234Google Maps in Flickr (GMiF), 7–13

comparable mashups, 13elements, 8methods of combination, 12–13reasons for combination, 8–11

Housingmaps.com, 5–7comparable mashups, 7elements, 5location of remixing, 6methods of combination, 6–7reasons for combination, 5–6

learning about, 228–233LibraryLookup bookmarklet, 13–18

comparable mashups, 18configuring, 14extending, 17function, 16invoking, 15

looking for patterns in, 3–4other examples, 18profiles of given mashups, 233–234sample problems to solve using, 235–242tools to create, 308–311

adding JavaScript, 294–299additional tools, 310–311analysis of using GME and Yahoo! Pipes,

309–310custom template, 289–291displaying Flickr photos using

<gm:map>, 292–294feeds (simple template), 288–289Google Mashup Editor (GME), 287–288how to persist feeds and use tabs,

299–304overview, 283problems solved with, 284showing saved entries on map, 304–308Yahoo! Pipes to access Flickr, 291–292

tracking using feeds, 230–231Media RSS, 90<media:category> element, 90<media:content> element, 90<media:credit> element, 90<media:text> element, 90<media:thumbnail> element, 90<media:title> element, 90MediaWiki extensions, 24messages, 182<meta> tags, 339meta-feed calendar feed, 428–430META-INF directory, 493META-INF/manifest.xml file, 494, 503META-INF/metadata.xml file, 493metatags, 338–339meta.xml file, 494methods, calling from PHP, 132–145

HTML, 143–144HTTP, 133–138XML, 138–143

■INDEX 591

metro.getForLatLon parameter, 447MGeoRSS, 346microformats, 537–558

definitions and design goals of, 543–544design patterns, 545–547

abbr-design-pattern, 546class-design-pattern, 545–546include-pattern, 546–547overview, 545rel-design-pattern, 545

examples of, 547–551geo, 549hCalendar, 551hCard and adr, 550rel-license, 547–548rel-tag, 548xfn, 548xFolk, 549

for HTML, 338–339overview, 537in practice, 552programming with, 552–553RDFa and, 557–558using Operator to learn, 537–543

adr (addresses), 540–541geo (locations), 543hCalendar (events), 542–543hCard (contacts), 541–542tag (tagspaces), 543

writing Operator scripts, 553–557geocoding script, 556–557overview, 553tutorial script, 554–555

Microsoft Excel, generating Amazon wishlistspreadsheet via COM, 535

Microsoft Live Search, 564–568Microsoft Live Search Maps, 336–337,

354–355Microsoft Office, macros and add-ins, 24Microsoft Popfly mashup tool, 311Microsoft Virtual Earth, 354–355

3D aspects of, 355geocoding, 361–363GeoRSS in, 344–345

Microsoft Web Gadgets, 24Milosz, Czeslaw, 17, 53, 73–74min_upload_date parameter, 248mobile interfaces, 26, 45

mobile version, 26mo:Blog, 111modules, 100mofo library, 552moveend event, 268mrad parameter, 51mrt=kmlkmz parameter, 51msid parameter, 331multiword phrases, del.icio.us tags, 68–69Musser, John, 18, 23, 239My Maps, 329, 331–332My Yahoo!, 97MySQLicious, 405MyWeb, 407–408

Nn value, topic feed, 95name element, 383name parameter, 448NetNewsWire, 97network hacker, 22<NetworkLink> element, 379–382<NetworkLink> elements, 381New York Times permalinks, 220–223news aggregators, 96–97new-style geotagging, 245NH library, 17nl parameter, 378nl value, 257nojsoncallback=1 parameter, 219non-U.S. addresses, geocoding, 363–364NSID, 31null parameters, 362NY Times, filtering feeds, 103nz value, region feed, 96

Oo_format parameter, 256, 376OASIS, 323, 489OCLC (Online Computer Library Center), 17,

74ODF (OpenDocument format), 487, 488–506

API kits for working with, 507–518Odfpy, 507–516OpenDocumentPHP, 516–518OpenOffice.org (OO.o), 518

bold, 505–506color changes, 505–506

■INDEX592

font changes, 505–506formatting lists, 504–505italics, 505–506versus OOXML, 522overview, 488–497paragraph styling, 503–504tags, 497–499text documents, 499–503

embedded images, 502–503footnotes, 502headers, 499–500lists, 500paragraphs, 499–500tables, 501–502text styling, 501

ODF Validator, 492Odfpy, 507–516.odt file, 492Office Open XML. See OOXMLoffice suites, 487–536

ECMA Office Open XML (OOXML),519–522

overview, 519–522viewers/validators for, 522

Google Spreadsheets API, 524–535Amazon wishlists mashup, 528–535Python API kit, 524–527Zend PHP API kit, 533–534

mashup scenarios for, 487–488online, 523OpenDocument format (ODF), 488–506

API kits for working with, 507–518font and color changes, 505–506formatting lists, 504–505versus OOXML, 522overview, 488–497paragraph styling, 503–504tags, 497–499text documents, 499–503

overview, 487XML-based document markup languages,

488Zoho APIs, 536

<office:automat-styles> element, 504<office:font-face-decls> element, 505<ol> element, 500old-style geotagging, 245om=1 parameter, 50

online calendars, 417–47230boxes.com, 438–442Google Calendar, 418–438

exporting events calendar to, 461–471feed formats from, 420–426GData-based Calendar API, 426–434PHP API kit for, 434–437Python API kit for, 437–438setting up, 418–420

iCalendarexporting events calendar to, 461–471programming with, 458–461

overview, 417–418Online Computer Library Center (OCLC), 17,

74online maps, 327–393

creating with API programming, 346–355Google, 347–350Microsoft, 354–355Yahoo!, 351–354

creating without programming, 329–338Google My Maps, 331–332Mapbuilder.net, 329–331Microsoft Live Search Maps, 336–337Yahoo! Local, 332–336

data formats, 338–346CSV, 338GeoRSS, 339–346HTML, 338–339KML, 345–346

geocoding, 356–364Geocoder.us, 357–358Google Geocoder, 358–361non-U.S. addresses, 363–364Virtual Earth, 361–363Yahoo! Maps, 356–357

Google Earth, 364–375KML and, 364–374programming via AppleScript, 375programming via COM, 374–375showing Flickr pictures in, 376–393

Mapstraction, 376mashup examples, 329number of, 328–329OpenLayers, 376overview, 327–328

online office suites, 523online public access catalogs (OPACs), 14

■INDEX 593

online storage services, 473–486Amazon S3 (Simple Storage Service), 473

API kits, 482–485conceptual structure of, 475–476Firefox S3 extension, 476–477rationale for, 474REST interface, 477–481SOAP interface, 481–482

overview, 473OO.o (OpenOffice.org), 24, 487–489, 518OOoLib, 518OOXML (Office Open XML), 519–522

versus ODF, 522overview, 519–522viewers/validators for, 522

OPACs (online public access catalogs), 14open source software, 26open sourcing, 323OpenDocument format (ODF), 487, 488–506

API kits for working with, 507–518Odfpy, 507–516OpenDocumentPHP, 516–518OpenOffice.org (OO.o), 518

bold, 505–506color changes, 505–506font changes, 505–506formatting lists, 504–505italics, 505–506versus OOXML, 522overview, 488–497paragraph styling, 503–504tags, 497–499text documents, 499–503

embedded images, 502–503footnotes, 502headers, 499–500lists, 500paragraphs, 499–500tables, 501–502text styling, 501

OpenDocumentPHP, 507, 516–518Openkapow mashup tool, 311Openkapow.com, 98OpenKmlFile method, 374OpenLayers, 376OpenOffice.org (OO.o), 24, 487–489, 518OpenSearch, 568–570open-uri library, 138

operations, 182–184Operator, 537

scripts, writing, 553–557geocoding script, 556–557overview, 553tutorial script, 554–555

toolbar, 538using to learn microformats,

537–543adr (addresses), 540–541geo (locations), 543hCalendar (events), 542–543hCard (contacts), 541–542tag (tagspaces), 543

OPTIONS method, 135ordered lists, ODF, 504–505Organizer, Flickr feature, 43–44others attribute, 401output parameter, 332, 357–358output=kml parameter, 51output=php option, 357owncalendars calendar feed,

432–433oXygen, 184–188, 565

Ppages attribute, 124paragraphs, ODF, 499–500parsing XML-RPC traffic, 178–181password hacker, 22Password parameter, 200, 427passwords, 157path, 136$_pathToCurl parameter, 484patterns, looking for in mashups, 3–4PEAR::Flickr_API, 165–166PEAR::SOAP library, 190PEAR::XML_RPC library, 181PEAR::XML_RPC package, 174per_page argument, 182per_page parameter, 217Perl, 518permalink, 220permission level, 156personal parameter, 448Phlickr, 168–169photo element, 125, 133photo-id identifier, 31

■INDEX594

photosdeletion process for, 302–304favorites

geotagged, 42–43popular, 38representations of, 31search, 41–42sets of, 37

in Flickr, 30–33browsing by date, 36collections of, 37data associated with individual, 33–34

HTML representations of, 143–144selection process for, 302–304

<photos> element, 124, 179photosets, 37PHP

Amazon S3, 483–484calling methods from, 132–145

HTML, 143–144HTTP, 133–138XML, 138–143

iCalendar, 460–461implementation of Flickr authorization in,

161–164querying with, 149–154

PHP API kitfor Eventful.com, 454–456for Google Calendar, 434–437

php format, 92PHP PEAR::SOAP invocation, 190PHP serialization, 77php value, format parameter, 87php_serial format, 92php_serial value, format parameter, 87php_zip.dll file, 516PHPDelicious, 405phpFlickr, 166–168phpFlickr file, 318phpFlickr::enableCache() function, 168php.ini file, 516pictures, Flickr, 106–111Pictures subdirectory, 502pipes, refactoring, 102–103<Placemark> element, 359, 368–374, 381–383plug-ins, browser, 25plural nouns, Flickr tags, 65–66plural tag, 315

<Point> element, 368, 383policy, Flickr APIs, 128Polysemy, 65popularity, 171POST method, 201–203POST request, 199, 431, 448post tag, 401posts, blog, 200–201, 316posts method, 400–402

add submethod, 401–402all submethod, 401dates submethod, 402delete submethod, 402get submethod, 400–401recent submethod, 401

Potluck mashup tool, 311PowerPoint, 488prefixes, 475privacy value, 433private-key, 403Pro level, 98ProgrammableWeb.com, 18, 98, 172,

196–198, 228–233, 396–397programming with microformats, 552–553project_showcase_event.xml file, 433Proto mashup tool, 311protocols, 171pt-br value, lang parameter, 87publishing, 488puppy tag, 123PUT method, 135, 203PUT request, 203, 433Pydelicious, 405Python, 490

Amazon S3, 484–485creating feed of Critic’s Choice using,

462–464iCalendar, 458–460SOAPpy library, 188–190

Python API kit, 426, 524–527Amazon wishlist and Google Spreadsheets

mashup, 528–532Eventful.com, 456–458for Google Calendar, 437–438

Python code, 189Python GData library, 524Python libraries, 518, 524Python Programming on Win32, 535

■INDEX 595

Qq parameter, 358q=1600+Pennsylvania+Ave,+Washington,

+DC parameter, 50q=URL-of-KML parameter, 52QEDWiki mashup tool, 311Query parameter, 566querying with PHP, 149–154

RRademacher, 7Rademacher, Paul, 5range element, 371Raymond, Eric, 22RDATE statement, 465RDF (Resource Description Framework),

80rdf value, format parameter, 87RDFa, 557–558rdf:item elements, 401<rdf:RDF> root element, 82<rdf:resources> element, 82read permission, 129, 157, 160reading elements, 257–260real estate–oriented mashups,

240–241Really Simple Discovery (RSD) specification,

115–116reblogging, 113recent submethod, 401redirects, 138refactoring pipes, 102–103reflection method, 154<refreshInterval> element, 379<refreshMode> element, 379region feed, 96rel attribute, 93, 545, 548, 552rel="http://schemas.google.com/acl/

2007#accessControlList" feed, 429

RELAX NG schema, 491rel-design-pattern, 545, 548, 552rel-license data format, 545rel-license microformat, 547–548rels directory, 521.rels file, 521rel-tag microformat, 72, 545,

548

remixing feedswith Feedburner, 99–100with Yahoo! Pipes, 100–104

Google News, 102–103NY Times, 103Wikinews, 103Yahoo! News, 101

Remote Feed, 288Representational State Transfer (REST), 172,

320, 356, 358–360, 474–482request formats, Flickr APIs, 154–156request headers, 136Requests parameter, 566resource, 557Resource Description Framework (RDF), 80response code, 136response formats, Flickr APIs, 154–156response headers, 136</Response> element, 359responses, 122REST (Representational State Transfer), 172,

320, 356, 358–360, 474–482rest parameter, 377rest value, 257RESTful interface, 562RESTful protocol, 420rest-open-uri library, 138reusability, 26rev attribute, 545, 552reverse engineering, 22RFC 2445 documentation, for iCalendar, 421RoboMaker, 98roll angle, <Camera> element, 373RRULE statement, 465RSD (Really Simple Discovery) specification,

115–116rsp root element, 124<rsp> root node, 174RSS, 27, 93

autodiscovery, 93del.icio.us, 403–405in Flickr, 45version 0.91, 91version 0.92, 91version 1.0, 80–82version 2.0, 78–80, 84–86

rss value, format parameter, 86rss_091 value, format parameter, 86

■INDEX596

rss_092 value, format parameter, 86rss_100 value, format parameter, 87rss_200 value, format parameter, 86rss_200_enc format, 92rss_200_enc value, format parameter,

87<rss> root element, 79rss2 value, format parameter, 86RSS/Atom syndication, 106RSSBus mashup tool, 311

Ss value, topic feed, 95S3Drive, 477S3Fox Amazon S3 Firefox Organizer,

25SafeSearch parameter, 566Save Selected button, 304Save to My Maps link, 331Saved Results tab, 285, 302Schachter, Joshua, 69Schrenk, Michael, 59scope property, 555scraping feeds using GUI tools, 98–99screen-scrapes, 6screen-scraping, 58–59ScribeFire, 111<script> element, 264scriptability, embedded, 24search API, 321search functionality, 559–571

Google Ajax Search, 559–561Google Desktop HTTP/XML Gateway,

570–571Microsoft Live Search, 564–568OpenSearch, 568–570overview, 559Yahoo! Search, 561–564

Search tab, 285, 302Search the Map functionality, 331Search, Yahoo!, 561–564search_example() method, 174search_text parameter, 445<SearchIndex> type, 192searching Technorati, 71search-mode identifier, 41search-scope identifier, 41secret parameter, 167

secret secret, 158select event, 294selfpromotion parameter, 448Serena Mashup Composer mashup tool,

311server-side proxy, 253–257

script for geolocated photos, 255–257XHR and direct API calls, 253–255

service parameter, 200, 427service-level agreements (SLAs), 322services, 4, 319Services_EVDB API kit, 454Services_Eventful API kit, 454set:Berkeley tag, 73SetCameraParams method, 374setData(url) method, 299set-id identifier, 37setOnKeepCallback method, 559settings.xml file, 494set-view identifier, 37Share All Information on This Calendar with

Everyone setting, Google Calendar,419

SharpReader, 97, 113Shelfari, 238Signature parameter, 478–480signing, 158Simmon, Brent, 112Simple Storage Service (Amazon S3), 67,

473API kits, 482–485

PHP, 483–484Python, 484–485

conceptual structure of, 475–476Firefox S3 extension, 476–477rationale for, 474REST interface, 477–481SOAP interface, 481–482

simple template, 288–289simpleXML library, 139–143, 173singular nouns, Flickr tags, 65–66singular tag, 315SketchUp Ruby, 24skinnability, 26SLAs (service-level agreements), 322sll=36.60585,-121.858956 parameter,

50Snell, James, 86

■INDEX 597

SOAP, 181–195, 320Amazon ECS, 191–195Amazon S3, 481–482Flickr SOAP interface, 195geocoder.us service, 182–191

oXygen XML editor, 184–188PHP PEAR::SOAP invocation,

190Python’s SOAPpy library, 188–190

overview, 181WSDL and, 181–182

SOAPaction header, 188SOAPAction parameter, 188SOAPpy library, 188–190, 194SOAP/WSDL interface, 474social bookmarking, 395–416

Connotea, 408–412del.icio.us, 397–407

bundles, 403mashup with Flickr, 412–416overview, 398–399posts method, 400–402RSS and JSON, 403–405tags, 400third-party API kits, 405–407third-party tools for, 405update method, 399

MyWeb, 407–408overview, 395–396Programmableweb.com, 396–397Yahoo! bookmarks, 407–408

social bookmarking system, 315software, open source, 26source parameter, 200, 427<span> element, 545Spiders, 544spn=0.006313,0.01133 parameter,

50spreadsheets, 523, 525sql format, 92sql value, format parameter, 87start_date parameter, 448start_time parameter, 448state string, 356street string, 356StrikeIron mashup tool, 311StrikeIron SOA Express, 523

String Builder module, 103stringify() method, 264STRIPE_NAME identifier, 301<style> elements, 209, 383<style:font-face> element, 505<style:style> element, 504–505styles.xml file, 494, 503<styleUrl> element, 383subject matter, 171<subtitle> element, 84subversion (SVN), 287, 309, 524<summary> elements, 84SVN (subversion), 287, 309, 524syndication feeds, 27, 45synonymy, 65Syntactic constraints, 65

Tt value, topic feed, 95<table> element, 294tables, ODF, 501–502<table:table> element, 501<table:table-cell> element, 501<table:table-row> element, 501tabs, 299–304

overview, 299–301selection and deletion process for photos,

302–304Tag link, 64tag microformat, 543, 545, 552tag parameter, 217, 400tag: prefix, 68taggedlink class, 549tagging content, 315TagMaps, 67tags, 27, 61–75, 399, 400

Amazon, 55del.icio.us, 67–71

adding, 68case, 68–69further information, 69–71multiword phrases, 68–69

Flickr, 34–35, 62–67applications using, 67common practice, 63–64creating, 64geotagging, 66–67

■INDEX598

machine tags, 66–67popular, 30potential weaknesses of, 65singular/plural nouns, 65–66syntax of, 64–65

ODF, 497–499relationship to formal classification

schemes, 73–75Technorati, 71–72using to mash up, 72–73

tags parameter, 412tagspaces (tag), 543task template, 289taxonomies, 61, 73–75Technorati, tags, 71–72

process of deriving, 72searching with, 71syntactic constraints, 72word inflections, 72

terms of service (TOS), 59, 128terms of use, 128Test feed, 288testing usability, 319text documents, ODF, 499–503

embedded images, 502–503footnotes, 502headers, 499–500lists, 500paragraphs, 499–500tables, 501–502text styling, 501

Text Input module, 101text: namespace, 499text styling, ODF, 501<text:a> element, 501<text:h> element, 499<text:list> element, 500<text:list-item> element, 500<text:note> element, 502<text:note-body> element, 502<text:note-citation> element, 502text:outline-level namespace, 499<text:p> element, 499–503<text:span> element, 501, 505text:style-name attribute, 503, 505third-party API kits, del.icio.us,

405–407

third-party toolsfor del.icio.us, 405for Flickr, 45

tilt angle, <Camera> element, 373tilt parameter, 371time-period identifier, 44timo user, 409title attribute, 93, 546To-dos and Journal Entries, 421token, 156token parameter, 448[TOKEN] authentication token, 450tools

to create mashups, 308–311adding JavaScript, 294–299additional tools, 310–311analysis of using GME and Yahoo! Pipes,

309–310custom template, 289–291displaying Flickr photos using

<gm:map>, 292–294Google Mashup Editor (GME), 287–288how to persist feeds and use tabs,

299–304overview, 283problems solved with, 284reading and displaying feed (simple

template), 288–289showing saved entries on map, 304–308Yahoo! Pipes to access Flickr, 291–292

desktop blogging, 111–112topic feed, 95.torrent file, 475TOS (terms of service), 59, 128transforming data, 488TreeView widget, 211triple tags, 66Trulia, 240tutorial script, 554–555type attribute, <link> elements, 93type="html" attribute, 84TypePad blogs, 94

UUC Berkeley event calendars, 462Udell, Jon, 13uformats library, 552

■INDEX 599

UI (user interface), 21, 321uk value, region feed, 96<ul> element, 500uniform interface, 201Uniform Resource Identifier (URI), 22, 28Union module, 104Unique module, 104Universal Resource Locator (URL) languages,

27–28, 49–51Universal Resource Locators (URLs), 28Universal Resource Names (URNs), 28Unix directory, 212unordered lists, ODF, 504–505Upcoming.yahoo.com, 417, 443–451

APIadding event, 448–450getting token, 447–448parts that require authentication,

447–450read-only parts of, 445–447

API kits for, 451feeds from search results, 443–445

update method, 399, 401update_feed() function, 298updateStatus, 272updating Blogger entries, 203upload-date identifier, 43URI (Uniform Resource Identifier),

22, 28uri parameter, 412URL (Universal Resource Locator) languages,

27–28, 49–51URL Builder module, 101URL language, 23, 314–315url parameter, 400, 448URLs (Universal Resource Locators),

28urn:oasis:names:tc:opendocument:xmlns:

table:1.0 namespace, 501URNs (Universal Resource Names), 28usability testing, 319user IDs, Blogger, 200user interface (UI), 21, 321User Scripts tab, 547user_id method, 160user.Authorize argument, 440user-id identifier, 31users

community of, 25of Flickr, 30–33

groups of, 38–40personal archives of, 36recent activities of, 44

Vvalidating feeds, 98validators, for OOXML, 522Vander Wal, Thomas, 68var keyword, 214vCalendar format, 542VCALENDAR object, 421vcard class attribute, 542VEMap.Find method, 361venue_id parameter, 448venue_search method, 457venue.search method, 449verbose option, 177versioning, 322VEVENT subobject, for iCalendar, 421VFREEBUSY subobject, for iCalendar, 421viewers, for OOXML, 522viewFormat element, 382<viewFormat> element, 380viewport, Google Maps, 268–269<viewRefreshMode> tag, 380<viewRefreshTime> tag, 380Virtual Earth, 336, 354–355

3D aspects of, 355geocoding, 361–363GeoRSS in, 344–345Interactive SDK, 354

Virtual Earth Map control, 354VJOURNAL subobject, for iCalendar, 421vobject library, 460Vogels, Werner, 319Von Hippel, Eric Von, 59vote-links microformat, 551VTODO subobject, for iCalendar, 421

Ww value, topic feed, 95W3 Basic Geo encoding, 358W3C Basic Geo encoding, 340W3C standards, 315W3C XML Schema, 562w.bloggar, 111

■INDEX600

Weather Bonk, 7weather.php file, 251web accessibility, 315web crawlers, 58web harvesters, 58web robots, 58Web Services Definition Language (WSDL),

181–182, 186, 565web sites, 21–60

Amazon, 53–56items, 53–55lists, 55subject headings, 55–56tags, 55

bots, 58–59del.icio.us, 56–58determining mashup potential of

Ajax, 24alternative interfaces, 26browser plug-ins, 25community of users/developers, 25Creative Commons, 26documentation, 26embedded scriptability, 24existing mashups, 23–24importing/exporting data, 25intellectual property, 26key entities, 22–23mobile interfaces, 26open source software, 26public APIs, 23–24reusability, 26RSS, 27skinnability, 26tagging, 27weblogging, 27

Flickraccount management, 40browsing through, 40–41cameras, 46collections, 37contacts, 38Creative Commons (CC) licensing, 46e-mail interfaces, 44favorites, 37groups, 38–40mobile access, 45Organizer feature, 43–44

photos, 30–43recent activities, 44sets, 37syndication feeds, 45tags, 27, 34–35third-party applications, 45users, 30–36weblog interfacing, 44–45

Google Maps, 49–52connecting Yahoo! Pipes, 51–52URL language of, 49–51viewing KML files in, 51

making mashable, 313–324allowing users to tag content, 315API kits, 320Atom publishing, 320being too controlling, 322community of developers, 322consuming resources wisely, 323data standards, 323–324explicit licenses, 317extensive error reporting, 321feeds, 315–316granular, loosely coupled architecture,

319import and export options, 317learning from other APIs, 318making easy to learn, 318–319making it easier, 317multiple formats for output and input,

321open sourcing, 323overview, 313posting to blogs and other web sites,

316reasons for, 314REST, 320, SOAP and XML–RPCsearch API, 321service-level agreements (SLAs), 322testing usability, 319UI functionality, 321URL language, 314–315versioning, 322W3C standards, 315web accessibility, 315your audiences, 318

Mashup-by-URL-Templating-and-Embedding pattern, 47–49

■INDEX 601

screen-scraping, 58–59URL languages, 27–28

webbots, 58webcal URI scheme, 444weblogs. See blogswiki mashups, 117Wikinews, 103Wikipedia, 94–95wikis, 116–117win32all library, 518window.external.AddSearchProvider()

method, 569Windows Live Writer, 111Wireshark, 177–178word directory, 521word inflections, 65, 72WordPress, 24, 26, 46, 94, 108work-id tag, 74write permission, 129writeResults() method, 250writing elements, 257–260WSDL (Web Services Definition Language),

181–182, 186, 565WSO2 Mashup Server mashup tool, 311

Xxfn microformat, 548xFolk microformat, 549xfolkentry class, 549XHR (XMLHttpRequest) object, 210, 248–252

and direct API calls, 253–255using directly, 248–250using via YUI Connection Manager to read

JSON, 262–264Yahoo! UI (YUI) Connection Manager,

250–252(X)HTML, 315XML

feeds, 420response, 124–127Yahoo! Local

getCollection method, 332–334transforming into CSV, 334–336

xml output, 358XML Spy, 565XML_Tree root object, 166XML-based document markup languages, 488

XMLHttpRequest (XHR) object. See XHR(XMLHttpRequest) object

xmlhttp.responseXML object, 250XML-RPC, 172–181, 320

libraries, 172overview, 172–177parsing traffic, 178–181Wireshark, 177–178

xmlrpclib library, 173xoxo microformat, 551

YYahoo! bookmarks, 407–408Yahoo! Local

getCollection method, 332–334transforming XML into CSV, 334–336

Yahoo! MapsAPI, 351–354geocoding, 356–357use of GeoRSS, 341–345YMaps extensions, 341–345

Yahoo! News, 95–96, 101Yahoo! Pipes, 241–242, 316, 319

to access Flickr, 291–292analysis of using, 309–310connecting to Google Maps, 51–52remixing feeds with, 100–104

Google News, 102–103NY Times, 103Wikinews, 103Yahoo! News, 101

Yahoo! Search, 561–564Yahoo! UI (YUI) Connection Manager,

250–252, 262–264Yahoo! UI Library (YUI) widgets, 211–213yaml value, format parameter, 87YMaps extensions, 341–345ymaps tag, 342<ymaps:Address> tag, 341<ymaps:CityState> tag, 341<ymaps:Country> tag, 341<ymaps:Zip> tag, 341YouTube, 198–199YUI (Yahoo! UI) Connection Manager,

250–252, 262–264YUI (Yahoo! UI Library) widgets,

211–213

■INDEX602

ZZend Framework, 434, 533Zend Google Data Client Library, 434Zend PHP API kit, 524, 533–534zh-hk value, lang parameter, 87Zillow, 240zip library, 490zip string, 356

Zoho APIs, 536Zoho Office Suite, 523Zoho Sheet, 536Zoho Show, 536Zoho Writer, 536ZoneTag, 67zoom-level identifier, 42

■INDEX 603