CINXE.COM

tagging | code.flickr.com

<!DOCTYPE html> <!--[if IE 6]> <html id="ie6" lang="en-US"> <![endif]--> <!--[if IE 7]> <html id="ie7" lang="en-US"> <![endif]--> <!--[if IE 8]> <html id="ie8" lang="en-US"> <![endif]--> <!--[if !(IE 6) & !(IE 7) & !(IE 8)]><!--> <html lang="en-US"> <!--<![endif]--> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width" /> <title> tagging | code.flickr.com </title> <link rel="profile" href="https://gmpg.org/xfn/11" /> <link rel="stylesheet" type="text/css" media="all" href="https://code.flickr.net/wp-content/themes/flickr-code/style.css?ver=20240716" /> <link rel="pingback" href="https://code.flickr.net/xmlrpc.php"> <!--[if lt IE 9]> <script src="https://code.flickr.net/wp-content/themes/twentyeleven/js/html5.js?ver=3.7.0" type="text/javascript"></script> <![endif]--> <meta name='robots' content='max-image-preview:large' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <link rel='dns-prefetch' href='//stats.wp.com' /> <link rel="alternate" type="application/rss+xml" title="code.flickr.com &raquo; Feed" href="https://code.flickr.net/feed/" /> <link rel="alternate" type="application/rss+xml" title="code.flickr.com &raquo; Comments Feed" href="https://code.flickr.net/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="code.flickr.com &raquo; tagging Tag Feed" href="https://code.flickr.net/tag/tagging/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/code.flickr.net\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.7.2"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <style id='wp-emoji-styles-inline-css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='all-css-2' href='https://code.flickr.net/wp-includes/css/dist/block-library/style.min.css?m=1742994400g' type='text/css' media='all' /> <style id='wp-block-library-theme-inline-css'> .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} </style> <link rel='stylesheet' id='all-css-6' href='https://code.flickr.net/_static/??-eJzTLy/QzcxLzilNSS3WzyrWz01NyUxMzUnNTc0rQeEU5CRWphbp5qSmJyZX6uVm5uklFxfr6OPTDpRD5sM02efaGpqbGFlampgYGAIAROAu5A==' type='text/css' media='all' /> <style id='jetpack-sharing-buttons-style-inline-css'> .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em} </style> <style id='classic-theme-styles-inline-css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--blue: #1982d1;--wp--preset--color--dark-gray: #373737;--wp--preset--color--medium-gray: #666;--wp--preset--color--light-gray: #e2e2e2;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='all-css-12' href='https://code.flickr.net/_static/??-eJzTLy/QTc7PK0nNK9EvyUjNTS3WLykHcipTc1LLUvP0i0sqc1L1kouLdfQxVablZCZnFwFFU1LxK0QxMiknPzm7GKTUPtfW0NzEwMTQ2MLSEABabDMX' type='text/css' media='all' /> <link rel="https://api.w.org/" href="https://code.flickr.net/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://code.flickr.net/wp-json/wp/v2/tags/1503" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://code.flickr.net/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.7.2" /> <style>img#wpstats{display:none}</style> <style type="text/css" id="twentyeleven-header-css"> #site-title, #site-description { position: absolute; clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ clip: rect(1px, 1px, 1px, 1px); } </style> <style type="text/css" id="wp-custom-css"> body { background: #fff; } body,input,textarea { font-family: Arial, sans-serif; color: #404040; } #page { margin: 1em auto; max-width: 1000px; } a:link { text-decoration: none; color: #0063dc; } a:visited { text-decoration: none; color: #0063dc; } a:hover { text-decoration: none; background: #0063dc; color: #fff; } a:active { text-decoration: none; background-color: #0259c4; color: #fff; } #branding { border: none; } #branding .only-search #s,#branding .only-search #s:focus { width: 280px; background-color: transparent; border-color: #ddd; } #branding #searchform { right: 0; } nav#access { background: none; box-shadow: none; -webkit-box-shadow: none; -moz-box-shadow: none; margin: 0; } nav#access a { font-weight: bold; margin: 11px 28px 0 0; padding: 0; line-height: 21px; } nav#access a:link,nav#access a:visited { text-decoration: none; color: #888; } nav#access a:hover,nav#access li:hover > a,nav#access a:focus,nav#access a:active { text-decoration: none; color: #0063dc; background: none; } #branding .only-search + nav#access div { padding-right: 300px; } nav#access div,nav#access ul { margin: 0; } @media screen and (max-width: 768px) { #branding .only-search + nav#access div { padding-right: 0; } #branding #searchform { display: none; position: static; text-align: center; } #branding .with-image #searchform { max-width: 100%; } #branding .only-search #s,#branding .only-search #s:focus { width: 85%; float: none; } nav#access { margin: 0 0 0 5%; } } @media screen and (max-width: 480px) { nav#access { display: none; } } #content { margin: 0 20% 0 0; width: 80%; } #content .comments-link { display: none; } @media screen and (max-width: 800px) { #main { padding-top: 0; overflow: hidden; } #branding { padding-bottom: 0; } #main #content { margin: 0; } .entry-title,.entry-header .entry-meta { padding-right: 0; } } .singular #content,.left-sidebar.singular #content { margin: 0 10%; width: 80%; } .singular .entry-header,.singular .entry-content,.singular footer.entry-meta,.singular #comments-title { width: 100%; } .hentry,.no-results { border-bottom: 1px dotted #dadada; } .singular .hentry { padding-top: 1em; } .entry-title { padding-bottom: 0; } .entry-title,.entry-title a { font-size: 28px; color: #000; } .entry-title a:hover,.entry-title a:focus,.entry-title a:active { color: #0063dc; background-color: transparent; } @media screen and (max-width: 650px) { .singular .entry-title { padding-top: 0; line-height: 42px; } } .singular .entry-content { margin-top: 0; } #jp-post-flair { margin-top: 3em; } footer.entry-meta .cat-links,footer.entry-meta .sep,footer.entry-meta .tag-links { display: none; } .singular .entry-meta .edit-link a { position: static; } .singular footer.entry-meta { margin-top: 2em; } #comments { display: none; } #site-generator { background: transparent; border-top: none; padding: 0 .5em; } img#wpstats { position: absolute !important; clip: rect(1px 1px 1px 1px); } #secondary { margin-right: 0; width: 16%; text-align: right; } #secondary #s { display: none; } #secondary aside ul { list-style: none; } #secondary .widget-title { color: #999; font-size: 12px; letter-spacing: auto; text-transform: none; } .widget a { font-weight: normal; } .widget a:hover,.widget a:focus,.widget a:active { text-decoration: none; } #everything-after-this-line-is-a-post-level-style---yay-for-wordpress-stripping-comments-from-css { color: #000; } .entry-content p { margin-bottom: 1.3em; } .entry-content p.note { padding: 11px; background-color: #fffdeb; border-bottom: 1px solid #fff9c2; } .entry-content p.warning { padding: 11px; background-color: #fdf8f8; border-bottom: 1px solid #f7dedd; } .entry-content .aside { margin-bottom: 1.3em; padding: 11px; background-color: #f8fdf8; border-bottom: 1px solid #def6df; } .entry-content .aside p:last-child { margin-bottom: 0; } .entry-content h2,.entry-content h3,.entry-content h4 { font-weight: bold; color: #000; text-transform: none; } .entry-content h2 { font-size: 22px; } .entry-content h3 { font-size: 16px; letter-spacing: 0; line-height: 1.3em; margin-bottom: 1em; } .entry-content h4 { font-size: 13px; line-height: 1.4em; margin-bottom: 0; } .entry-content p.flickr-photo,.entry-content p.flickr-photo a,.entry-content p.figure { color: #999; font-size: 14px; } .entry-content p.flickr-photo a:hover,.entry-content p.flickr-photo a:active { color: #0063dc; background-color: transparent; } .entry-content p.flickr-photo .caption { display: block; padding-left: 22px; background: url('http://farm4.staticflickr.com/3329/favicons/72157601614001242_7730.png') no-repeat 0 3px; } .entry-content img { max-width: 100%; height: auto; } .undersized-image-container { text-align: center; } .entry-content code { color: #000; font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; font-size: 14px; background-color: #F6FcFF; border-bottom: 1px solid #ebf5ff; } .entry-content ul { list-style: disc; } .entry-content ol ol { list-style: lower-alpha; } .entry-content table caption { font-size: 13px; font-weight: bold; color: #000; } .entry-content table tr.odd td,.entry-content table tr.odd th { background-color: #f8f8f8; } .entry-content table td,.entry-content table th { padding: 3px 10px; line-height: 1.4em; } .entry-content table tr th { color: #000; font-weight: bold; text-transform: none; font-size: 13px; letter-spacing: 0; border-top: 1px solid #ddd; } .entry-content table tr td { font-size: 14px; } .entry-content table.data tr td,.entry-content table.data thead tr th { text-align: right; } .entry-content table.tight td,.entry-content table.tight th { padding: 3px 6px; } .entry-content table.tight th { font-size: 12px; } .entry-content table.tight td { font-size: 13px; } @media screen and (max-width: 650px) { .entry-content table td,.entry-content table th { padding: 3px 5px; } .entry-content table tr th { font-size: 12px; } .entry-content table tr td { font-size: 13px; } .entry-content table.tight td,.entry-content table.tight th { padding: 3px 4px; } .entry-content table.tight th { font-size: 11px; } .entry-content table.tight td { font-size: 12px; } } .entry-content blockquote { font-family: inherit; font-style: normal; font-weight: normal; margin: 0 2em 1.3em; padding: 1em; background: #F9F9F9; border-bottom: 1px solid #ececec; } .entry-content blockquote p.source { margin-bottom: 0; } .entry-content .hiring-banner { position: relative; background: #ffebf5; padding: 11px 11px 11px 88px; border-bottom: 1px solid #ffc5e2; margin: 2em 0; } .entry-content .hiring-banner p { margin-bottom: 0; } .entry-content .hiring-banner .group-photo { position: absolute; left: -57px; top: -5px; width: 120px; padding: 6px; background: #fff; -webkit-box-shadow: 1px 1px 8px rgba(50,50,50,0.8); -moz-box-shadow: 1px 1px 8px rgba(50,50,50,0.8); box-shadow: 1px 1px 8px rgba(50,50,50,0.8); -webkit-transform: rotate(-11deg); -moz-transform: rotate(-11deg); -o-transform: rotate(-11deg); -ms-transform: rotate(-11deg); } .entry-content .hiring-banner .group-photo img { display: block; margin: 0; max-width: 100%; } @media screen and (max-width: 800px) { .entry-content .hiring-banner { padding-left: 11px; } .entry-content .hiring-banner .group-photo { display: none; } } #everything-after-this-line-is-for-the-syntaxhighlighter---all-rules-require-important { color: #000; } #main .syntaxhighlighter .lines { border-bottom: 1px solid #ebf5ff !important; } #main .syntaxhighlighter,#main .syntaxhighlighter div,#main .syntaxhighlighter code,#main .syntaxhighlighter table,#main .syntaxhighlighter table td,#main .syntaxhighlighter table tr,#main .syntaxhighlighter table tbody { font-size: 14px !important; } #main .syntaxhighlighter .line.alt1,#main .syntaxhighlighter .line.alt2 { background-color: #fafdff !important; } #main .syntaxhighlighter .line.highlighted { background-color: #fffbd6 !important; } #main .syntaxhighlighter .plain,#main .syntaxhighlighter .plain a { color: #000 !important; } #main .syntaxhighlighter .comments,#main .syntaxhighlighter .comments a { color: #999 !important; } #main .syntaxhighlighter .string,#main .syntaxhighlighter .string a { color: #ff52a9 !important; } #main .syntaxhighlighter .keyword { color: #0034fe !important; font-weight: normal !important; } #main .syntaxhighlighter .preprocessor { color: #417ba9 !important; } #main .syntaxhighlighter .variable { color: #b130c0 !important; } #main .syntaxhighlighter .value { color: #6b77f7 !important; } #main .syntaxhighlighter .functions { color: #002ad5 !important; } #main .syntaxhighlighter .constants { color: #d11e08 !important; } #main .syntaxhighlighter .script { background-color: yellow !important; } #main .syntaxhighlighter .color1,#main .syntaxhighlighter .color1 a { color: #808080 !important; } #main .syntaxhighlighter .color2,#main .syntaxhighlighter .color2 a { color: #ff1493 !important; } #main .syntaxhighlighter .color3,#main .syntaxhighlighter .color3 a { color: red !important; } a[data-flickr-embed] img { width: 800px; } </style> </head> <body class="archive tag tag-tagging tag-1503 custom-background wp-embed-responsive jps-theme-flickr-code two-column right-sidebar"> <div class="skip-link"><a class="assistive-text" href="#content">Skip to primary content</a></div><div class="skip-link"><a class="assistive-text" href="#secondary">Skip to secondary content</a></div><div id="page" class="hfeed"> <header id="branding"> <hgroup> <h1 id="site-title"><span><a href="https://code.flickr.net/" rel="home">code.flickr.com</a></span></h1> <h2 id="site-description"></h2> </hgroup> <a href="https://code.flickr.net/"> <img src="https://wp.flickr.net/wp-content/uploads/sites/3/2012/09/code-flickr-com-drawn-header-grey-large.png" width="1000" height="157" alt="code.flickr.com" decoding="async" fetchpriority="high" /> </a> <div class="only-search with-image"> <form method="get" id="searchform" action="https://code.flickr.net/"> <label for="s" class="assistive-text">Search</label> <input type="text" class="field" name="s" id="s" placeholder="Search" /> <input type="submit" class="submit" name="submit" id="searchsubmit" value="Search" /> </form> </div> <nav id="access"> <h3 class="assistive-text">Main menu</h3> <div class="menu-menu-container"><ul id="menu-menu" class="menu"><li id="menu-item-2084" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2084"><a href="http://www.flickr.com/">Flickr</a></li> <li id="menu-item-2085" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2085"><a href="http://blog.flickr.net/">Flickr Blog</a></li> <li id="menu-item-2250" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2250"><a href="http://twitter.com/flickr">@flickr</a></li> <li id="menu-item-2086" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2086"><a href="http://twitter.com/flickrapi">@flickrapi</a></li> <li id="menu-item-2087" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2087"><a href="https://www.flickr.com/services/developer/">Developer Guidelines</a></li> <li id="menu-item-2088" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2088"><a href="http://www.flickr.com/services/api/">API</a></li> <li id="menu-item-2089" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2089"><a href="http://www.flickr.com/jobs/">Jobs</a></li> </ul></div> </nav><!-- #access --> </header><!-- #branding --> <div id="main"> <section id="primary"> <div id="content" role="main"> <header class="page-header"> <h1 class="page-title"> Tag Archives: <span>tagging</span> </h1> </header> <article id="post-1094" class="post-1094 post type-post status-publish format-standard hentry category-uncategorized tag-geo tag-machine-tags tag-open-street-maps tag-tagging"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2009/09/28/thats-maybe-a-bit-too-dorky-even-for-us/" rel="bookmark">&#8220;That&#8217;s maybe a bit too dorky, even for us.&#8221;</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2009/09/28/thats-maybe-a-bit-too-dorky-even-for-us/" title="5:50 pm" rel="bookmark"><time class="entry-date" datetime="2009-09-28T17:50:26-07:00">September 28, 2009</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://code.flickr.net/author/flickrphotography/" title="View all posts by Kay Kremerskothen" rel="author">Kay Kremerskothen</a></span></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <div style="margin-bottom:30px;margin-top:30px;"> <a href="http://www.flickr.com/photos/rabbitier/3776861543/"><img decoding="async" src="http://farm4.static.flickr.com/3562/3776861543_d3f69d390b.jpg" width="500" height="322" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;"/></a></p> <p style="font-size:small;text-align:right;"><a href="http://www.flickr.com/photos/rabbitier/">photo by rabbitier</a></p> </div> <p>Around the time we added <a href="http://www.frankieroberto.com/weblog/1454">support for Open Plaques machine tags</a> Frankie Roberto, the project lead, asked: &#8220;What about supporting Open Street Map (OSM) <code>way</code> machine tags?&#8221;</p> <p>My immediate response was something along the lines of &#8220;That&#8217;s maybe a bit too dorky, even for us.&#8221; Which meant that I kept thinking about it. And now we&#8217;re doing it.</p> <p>If you&#8217;re not sure way what a &#8220;way&#8221; is, it&#8217;s best to start with OpenStreetMap&#8217;s own description of <a href="http://wiki.openstreetmap.org/wiki/Elements">how their metadata is structured</a>:</p> <blockquote style="border-top:solid thin; border-bottom:solid thin;font-family:monospace;margin-top:20px;margin-bottom:20px;padding:20px;font-size:small;"> <p>Our maps are made up of only a few simple elements, namely nodes, ways and relations. Each element may have an arbitrary number of properties (a.k.a. Tags) which are Key-Value pairs (e.g. highway=primary) &#8230;</p> <p>A node is the basic element of the OSM scheme. Nodes consist of latitude and longitude (a single geospacial point) &#8230;</p> <p>A way is an ordered interconnection of at least 2 and at most 2000 nodes that describe a linear feature such as a street, or similar. Should you reach the node limit simply split your way and group all ways in a relation if necessary. Nodes can be members of multiple ways.</p> </blockquote> <p>Frankie&#8217;s interest is principally in marking up buildings in and around Manchester, where he lives. When he <a href="http://www.flickr.com/photos/frankieroberto/3396068360/">tags one of his photos with <code>osm:way=30089216</code></a> we can fetch the metadata (the key-value pairs) for that way <a href="http://wiki.openstreetmap.org/index.php/OSM_Protocol_Version_0.6#Read:_GET_.2Fapi.2F0.6.2F.5Bnode.7Cway.7Crelation.5D.2F.23id">using the OSM API</a> and see that it has the following properties:</p> <pre style="margin-bottom:30px;"> &lt;osm version=&quot;0.6&quot; generator=&quot;OpenStreetMap server&quot;&gt; &lt;way id=&quot;30089216&quot; visible=&quot;true&quot; timestamp=&quot;2009-07-04T12:02:47Z&quot; version=&quot;2&quot; changeset=&quot;1728727&quot; user=&quot;Frankie Roberto&quot; uid=&quot;515&quot;&gt; &lt;nd ref=&quot;331415447&quot;/&gt; &lt;nd ref=&quot;331415448&quot;/&gt; &lt;nd ref=&quot;331415449&quot;/&gt; &lt;nd ref=&quot;331415450&quot;/&gt; &lt;nd ref=&quot;331415447&quot;/&gt; &lt;tag k=&quot;architect&quot; v=&quot;Woodhouse, Corbett &amp; Dean&quot;/&gt; <b style="color:pink;">&lt;tag k=&quot;building&quot; v=&quot;yes&quot;/&gt;</b> &lt;tag k=&quot;created_by&quot; v=&quot;Potlatch 0.10f&quot;/&gt; <b style="color:pink;">&lt;tag k=&quot;name&quot; v=&quot;St George&#x27;s House&quot;/&gt;</b> &lt;tag k=&quot;old_name&quot; v=&quot;YMCA&quot;/&gt; &lt;tag k=&quot;start_date&quot; v=&quot;1911&quot;/&gt; &lt;/way&gt; &lt;/osm&gt; </pre> <p>That allows to us &#8220;expand&#8221; the original machine tag and display a short caption next to the photo, in this case: <i>&#8220;St George&#8217;s House is a building in OpenStreetMap&#8221;</i> with a link back to <a href="http://www.openstreetmap.org/browse/way/30089216">the web page for that way on the OSM site</a>.</p> <div style="margin-bottom:30px;margin-top:30px;"> <a href="http://www.flickr.com/photos/mbiddulph/3888509266/"><img decoding="async" src="http://farm4.static.flickr.com/3486/3888509266_374b161456.jpg" width="500" height="333" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;" /></a></p> <p style="font-size:small;text-align:right;"><a href="http://www.flickr.com/photos/mbiddulph/">photo by Matt Biddulph</a></p> </div> <p>The technical terms for this process is &#8220;<a href="http://code.flickr.com/blog/2009/07/06/extraextraextra/">Adding the machine tags extra love</a>&#8220;.</p> <p>You may have noticed that there are a bunch of other key-value pairs in that example, like the name of the architect, that we don&#8217;t do anything with. Which attributes are we looking for, then? The short answer is: Not most of them. The <a href="http://wiki.openstreetmap.org/index.php/Map_features">complete list of map features in OSM</a> is a bit daunting in scope and constantly changing. It would be nice to imagine that we could keep pace with the discussions and the churn but that&#8217;s just not going to happen. If nothing else, the translations alone would become unmanageable.</p> <p>Instead we&#8217;re going to start small and see where it takes us. Here are the list of tagged features in a <code>way</code> or <code>node</code> definition that we pay attention to, and how they&#8217;ll be displayed:</p> <ul style="margin-bottom:30px;"> <li> <p><b>k=name v={NAME}</b><br /> &#8230; is a feature in OpenStreetMap <i>(If present, with another recognized tag we will display the name for the thing being described in place of the more generic &#8220;this is a&#8230;&#8221;)</i></p> </li> <li> <p><b>k=building v=yes</b><br /> &#8230; is a building in OpenStreetMap</p> </li> <li> <p><b>k=historic</b><br />&#8230; is an historic site in OpenStreetMap </li> <li> <p><b>k=cycleway</b><br /> &#8230; is a bicycle path in OpenStreetMap</p> </li> <li> <p><b>k=motorway (v=cycleway)</b><br /> &#8230; is a highway in OpenStreetMap <i>(unless <strong>v</strong> is &#8220;cycleway&#8221; in which case it&#8217;s a bike path)</i></p> </li> <li> <p><b>k=railway v=subway <i>(or tram or monorail or light_rail)</i></b><br /> &#8230; is a subway <i>(or tram or monorail or light_rail)</i> line in OpenStreetMap</p> </li> <li> <p><b>k=railway v=station</b><br /> &#8230; is a train station in OpenStreetMap; if the type of railway is also defined (above) then we&#8217;ll be specific about the type of station. <i>I should mention that as of this writing we&#8217;re still waiting for the translations for &#8220;this is a train station&#8221; to come back because I, uh&#8230; anyway, real soon now.</i></p> </li> <li> <p><b>k=waterway v=stream <i>(or canal or river)</i></b><br /> &#8230; this is a stream <i>(or canal or river)</i> in OpenStreetMap</p> </li> <li> <p><b>k=landuse v=farm <i>(or forest)</i></b><br /> &#8230; this is a farm <i>(or forest)</i> in OpenStreetMap</p> </li> <li> <p><b>k=natural v=forest <i>(or beach)</i></b><br /> &#8230; this is a forest <i>(or beach)</i> in OpenStreetMap</p> </li> </ul> <p>Which means: We&#8217;ve almost certainly got at least some of it wrong. Anyone familiar with OSM features will probably be wondering why we haven&#8217;t included <code><a href="http://wiki.openstreetmap.org/index.php/Map_features#Amenity">amentiy</a></code> or <code><a href="http://wiki.openstreetmap.org/index.php/Map_features#Shop">shop</a></code> tags since they contain a wealth of useful information. I hope we will, but it wasn&#8217;t clear how we should decide which features to support (more importantly, which to exclude) and the number of possible combinations were starting to get a bit out of hand and we have this little photo-sharing site to keep running.</p> <p style="font-style:italic;">This is the part where I casually mention that we&#8217;ve also added <a href="http://www.flickr.com/photos/tags/foursquare:venue=">machine tags extra love for Four Square venues IDs</a>. I&#8217;m just saying&#8230;</p> <p>The features we&#8217;re starting with may seem a bit odd, with a heavy focus on natural land features (and train stations). Some of this is a by-product of the work we&#8217;ve been pursuing with the <a href="http://code.flickr.com/blog/2009/05/06/the-absence-and-the-anchor/">alpha shapes and &#8220;donut holes&#8221;</a>, derived from geotagged photos, and some of it is just trying to shine the spotlight on places and environments that we take for granted.</p> <p>Like I said, we&#8217;ve almost certainly got at least some of it wrong but hopefully we got part of it right and can correct the rest as we go. This one is definitely a bit more of an experiment than some of the others.</p> <div style="margin-bottom:30px;margin-top:30px;"> <a href="http://www.flickr.com/photos/artistofmimicry/2977379629/in/set-72157607092403287/"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3160/2977379629_b6263b39da.jpg" height="500" width="362" style="border:1px dotted #ccc;padding:10px;margin-left:50px;margin-bottom:10px;" /></a></p> <p style="font-size:small;text-align:right;"><a href="http://www.flickr.com/photos/artistofmimicry/">photo by artistofmimicry</a></p> </div> <p>Finally, in the tangentially related department we finished wiring up the RSS/syndication feeds to work properly with wildcard machine tags. That means you can subscribe to a feed of all the (public) photos tagged with <code><a href="http://api.flickr.com/services/feeds/photos_public.gne?tags=osm%3Away%3D&#038;lang=en-us&#038;format=rss_200">osm:way=</a></code> or <code><a href="http://api.flickr.com/services/feeds/photos_public.gne?tags=osm%3Anode%3D&#038;lang=en-us&#038;format=rss_200">osm:node=</a></code> or, if you&#8217;re like me, all the photos of places to eat in <a href="http://www.dopplr.com/">Dopplr</a> with <code><a href="http://api.flickr.com/services/feeds/photos_public.gne?tags=dopplr%3Aeat%3D&#038;lang=en-us&#038;format=rss_200">dopplr:eat=</a></code>.</p> <p>Enjoy!</p> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="cat-links"> <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="https://code.flickr.net/category/uncategorized/" rel="category tag">Uncategorized</a> </span> <span class="sep"> | </span> <span class="tag-links"> <span class="entry-utility-prep entry-utility-prep-tag-links">Tagged</span> <a href="https://code.flickr.net/tag/geo/" rel="tag">geo</a>, <a href="https://code.flickr.net/tag/machine-tags/" rel="tag">machine tags</a>, <a href="https://code.flickr.net/tag/open-street-maps/" rel="tag">open street maps</a>, <a href="https://code.flickr.net/tag/tagging/" rel="tag">tagging</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-1094 --> <article id="post-978" class="post-978 post type-post status-publish format-standard hentry category-uncategorized tag-machine-tags tag-smallpieces tag-tagging"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2009/07/06/extraextraextra/" rel="bookmark">extra:extra=extra</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2009/07/06/extraextraextra/" title="4:15 pm" rel="bookmark"><time class="entry-date" datetime="2009-07-06T16:15:34-07:00">July 6, 2009</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://code.flickr.net/author/flickrphotography/" title="View all posts by Kay Kremerskothen" rel="author">Kay Kremerskothen</a></span></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <div style="margin-top:30px;margin-bottom:30px;"> <a href="http://www.flickr.com/photos/straup/362878169/" title="Arm Horns (The Hair Web) by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm1.static.flickr.com/181/362878169_a109fd5796.jpg" width="500" height="375" alt="Arm Horns (The Hair Web)" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;" /></a></p> <div style="text-align:right;font-size:small;font-style:italic;margin-right:20px;">This is Eric. We loves him!</div> </div> <p>Internally, the nomenclature for tags goes something like this: There are &#8220;raw&#8221; tags (the actual tag you enter on a photo), &#8220;clean&#8221; tags (the tag that you see in a URL), &#8220;machine tags&#8221; (things like <a href="http://upcoming.org/event/2413636">upcoming:event=2413636</a>) and machine tag &#8220;extras&#8221;.</p> <p>Machine tag &#8220;extras&#8221; are what we call the entire process of using a machine tag as a kind of foreign key to access data stored on another website. <i>Small pieces (of data) loosely joined (by the Internets).</i></p> <p>For example if you tagged a photo with <a href="http://www.flickr.com/photo//tags/upcoming:event=2413636">upcoming:event=2413636</a> that would cause a robot squirrel on the Flickr servers to call the robot squirrels running the <a href="http://upcoming.yahoo.com/services/api/">Upcoming API</a> and ask for the name of the Upcoming <code>event</code> with ID <code>2413636</code>.</p> <p>Upcoming then answers back and says: That event was called <a href="http://www.flickr.com/photos/tags/upcoming:event=2413636/">&#8220;Flickr Turns 5.25&#8221;</a> and we store the title in our database. The next time you load that photo we&#8217;ll show a little Upcoming icon and the name of the event in the sidebar.</p> <p>To date, we&#8217;ve only had machine tags &#8220;extras&#8221; available for <a href="http://www.flickr.com/photos/tags/upcoming:event=">upcoming:event=</a> and <a href="http://www.flickr.com/photos/tags/lastfm:event=">lastfm:event=</a> tags but starting today we&#8217;re adding support for three new projects: <a href="http://www.dopplr.com">Dopplr</a>, <a href="http://www.openplaques.org/">Open Plaques</a> and the <a href="http://www.openlibrary.org/">Open Library</a>.</p> <h2 style="margin-bottom:20px;">dopplr:(eat|stay|explore)=</h2> <p><a href="http://www.dopplr.com/">Dopplr</a> is a social travel site which recently launched a <a href="http://www.dopplr.com/socialatlas">Social Atlas</a> to allow their users to create and share lists of interesting places, in the cities they know about, of where to eat and stay and poke around during their visit.</p> <blockquote style="font-family:sans-serif;margin-left:20px;margin-right:20px;"> <p>&#8220;Over time, we can anonymise and aggregate all the recommendations that have been added to Dopplr. This is the Social Atlas itself, something that&#8217;s greater than the sum of its parts: a kind of world map representing the combined wisdom of smart travellers. It&#8217;s early days still, but we are very excited by its potential.&#8221;</p> </blockquote> <p>Which is pretty exciting, especially when you think about how many pictures of delicious food people upload to Flickr!</p> <div style="margin-top:30px;margin-bottom:30px;"> <a href="http://www.flickr.com/photos/blackbeltjones/3643958883/" title="Dopplr/Flickr machine-tagging by moleitau, on Flickr"><img loading="lazy" decoding="async" src="http://farm3.static.flickr.com/2467/3643958883_bd249f44a6.jpg" width="500" height="310" alt="Dopplr/Flickr machine-tagging" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;"/></a></p> <div style="text-align:right;font-size:small;font-style:italic;margin-right:20px;">photo by <a href="http://www.flickr.com/photos/blackbeltjones">moleitau</a> </div> </div> <p>You can add Social Atlas machine tags to your photos by tagging them with either <code>"<a href="http://www.flickr.com/photos/tags/dopplr:eat=">dopplr:eat=</a>"</code>, <code>"<a href="http://www.flickr.com/photos/tags/dopplr:stay=">dopplr:stay=</a>"</code> or <code>"<a href="http://www.flickr.com/photos/tags/dopplr:explore=">dopplr:explore=</a>"</code> followed by the short-code for that place.</p> <p>For example, <code><a href="http://www.flickr.com/photos/tags/dopplr:eat=tp71">dopplr:eat=tp71</a></code>.</p> <div style="margin-top:30px;margin-bottom:30px;text-align:right;"> <a href="http://www.flickr.com/photos/blackbeltjones/3678209751/" title="Dopplr's closed the loop: Machine-tagged flickr pix on their 'Social Atlas' by moleitau, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3635/3678209751_91ec0211ef_o.png" width="361" height="380" alt="Dopplr's closed the loop: Machine-tagged flickr pix on their 'Social Atlas'" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;"/></a></p> <div style="text-align:right;font-size:small;font-style:italic;margin-right:20px;">photo by <a href="http://www.flickr.com/photos/blackbeltjones">moleitau</a> </div> </div> <p>As an added bonus every single page in the <a href="http://www.dopplr.com/socialatlas">Dopplr Social Atlas</a> displays the complete machine tag you need to tag your photos with so you can just copy and paste the tag from one page into the other and your photos will be updated like magic!</p> <h2 style="margin-bottom:20px;">openplaques:id=</h2> <p>The <a href="http://www.openplaques.org/">Open Plaques</a> website is a community-run website set up to catalogue and document the many <a href="http://en.wikipedia.org/wiki/Blue_plaque">blue plaques</a> that are hung across the UK to commemorate persons and famous events.</p> <p><a href="http://www.frankieroberto.com/">Frankie Roberto</a>, one of the people behind the project has written often about the project, and the motivations behind it so rather than try to paraphrase I will just quote him (at length):</p> <blockquote style="font-family:sans-serif;margin-left:20px;margin-right:20px;"> <p>&#8220;With these in mind, I was thinking how this kind of &#8216;mobile learning&#8217; might apply to the heritage sector, and as you might have guessed from the title, thought of blue plaques. You see them everywhere &#8212; especially when sat on the top deck of a double decker bus in London &#8212; and yet the plaques themselves never seem that revealing. You&#8217;ve often never heard of the person named, or perhaps only vaguely, and the only clue you&#8217;re given is something like &#8220;scientist and electrical engineer&#8221; (Sir Ambrose Fleming) or &#8220;landscape gardener&#8221; (Charles Bridgeman). I always want to know more. Who are these people, what&#8217;s the story about them, and why are they considered important enough for their home to be commemorated?&#8221;</p> <p style="text-align:right;font-size:small;">&#8212; <a href="http://www.frankieroberto.com/weblog/1406">Getting information about blue plaques on your mobile phone&#8230;</a></p> </blockquote> <div style="margin-top:30px;margin-bottom:30px;"> <a href="http://www.openplaques.org/areas/1" title="Picture 7 by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm3.static.flickr.com/2600/3682012751_0a2e740a1a.jpg" width="500" height="338" alt="Picture 7" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;"/></a></div> <blockquote style="font-family:sans-serif;margin-left:20px;margin-right:20px;"> <p>&#8220;The final step towards making this more compelling was to add some photographs. Here, Flickr came to our rescue. There was already a <a href="http://www.flickr.com/groups/blueplaques/">&#8216;blue plaques&#8217; group</a>, which contained hundreds of photos. To link them together, I used special tags called &#8216;machine tags&#8217;, which are like normal tags except that they contain some slightly more structured data. It&#8217;s very simple though &#8212; each plaque on the Open Plaques website has an ID number (which can be found at the end of the URL), and the corresponding machine tag for that plaque is openplaques:id=999 (where 999 is the ID number). Another script then uses the <a href="http://www.flickr.com/services/api">Flickr API</a> to find all the photos tagged with a relevant machine tag, checks to see if they are Creative Commons licenced, and then to displays them on the Open Plaques website, with a credit and a link back to the Flickr photo page.&#8221;</p> <p style="text-align:right;font-size:small;">&#8212; <a href="http://www.frankieroberto.com/weblog/1454">Open Plaques project update</a></p> </blockquote> <p>So, we did the same! If you have an <code>openplaques:id=</code> machine tag on your photo then we&#8217;ll try to look up and display the inscription for that plaque.</p> <p>You can add Open Plaques machine tags to your photos by tagging them with <code>"<a href="http://www.flickr.com/photos/tags/openplaques:id=">openplaques:id=</a>"</code> followed by the numeric ID for a specific plaque.</p> <p>For example, <code><a href="http://www.flickr.com/photos/tags/openplaques:id=1633">openplaques:id=1633</a></code>.</p> <h2 style="margin-bottom:20px;">openlibrary:id=</h2> <p>The <a href="http://www.openlibrary.org/">Open Library</a> is a part of the <a href="http://www.archive.org/">Internet Archive</a> whose mission is to create a &#8220;web page for every book ever published.&#8221; To do that they&#8217;re hoping that anyone and everyone will participate and help by adding information they have a published work or a particular edition.</p> <blockquote style="font-family:sans-serif;margin-left:20px;margin-right:20px;"> <p>&#8220;After almost fifty years of computerizing everything, we&#8217;re realising now that the stories have gone, and we need them back &#8212; the handicraft, the boutique, the beauty, the dragons, the colour of stories. I&#8217;m reminded of the gorgeous mysterious early maps of the Australian coast. The explorer only got so far, and the cartographer could only draw so much. Much more exciting than boring old satellite, top-of-a-pin&#8217;s-head accuracy! I love the idea of trying to catch some of these dog-eared tales within Open Library.&#8221;</p> <p style="font-size:small;text-align:right;">&#8212; <a href="http://george08.blogspot.com/2009/06/blog-all-dog-eared-pages-best.html">George Oates</a></p> </blockquote> <p>As it happens Flickr users have created over <a href="http://www.flickr.com/search/groups/?w=all&#038;q=book+covers">900 groups about book covers</a> and a casual search for the phrase (&#8220;book covers&#8221;) <a href="http://www.flickr.com/search/?w=all&#038;q=book+covers&#038;m=text">returns 98, 000 photos!</a></p> <p>Back in July of 2007 <a href="http://www.flickr.com/photos/54459164@N00/">Johnson Cameraface</a> uploaded a photo of the cover of <a href="http://www.flickr.com/search/?w=all&#038;q=book+covers&#038;m=text">ROBOTS Spaceships &#038; Other Tin Toys&#8221;</a>. Two years later, <a href="http://www.flickr.com/photos/george/">George</a> asked if it would be alright <a href="http://www.flickr.com/photos/54459164@N00/754241362/comment72157617418737354/">to use the photo</a> to update the Open Library record for the <a href="http://openlibrary.org/b/OL22483043M/1000-robots%2C-spaceships-%26-other-tin-toys">book</a>, and added an <code>openlibrary</code> machine tag along the way.</p> <p>Now, starting today, the photo page now displays the title of the book and links back to the Open Library!</p> <div style="margin-top:30px;margin-bottom:30px;"> <a href="http://openlibrary.org/b/OL22483043M/1000-robots%2C-spaceships-%26-other-tin-toys" title="ol by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3541/3682112505_3aea7e0ef6.jpg" width="500" height="351" alt="ol" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;"/></a> </div> <p>This makes me happy.</p> <p>You can add Open Library machine tags to your photos by tagging them with <code>"<a href="http://www.flickr.com/photos/tags/openlibrary:id=">openlibrary:id=</a>"</code> followed by the unique identifier for that book.</p> <p>For example, <code><a href="http://www.flickr.com/photos/tags/openlibrary:id=OL5853184M">openlibrary:id=OL5853184M</a></code>.</p> <p>It&#8217;s worth noting that the unique identifiers for Open Library books are sometimes a bit of a treasure hunt; they are the letters and numbers that come <i>after</i> <code>openlibrary.org/b/</code> and <i>before</i> the book title in the URL for that book. Like this:</p> <p style="text-align:center;margin-bottom:30px;"><code><a href="http://openlibrary.org/b/" rel="nofollow">http://openlibrary.org/b/</a><b style="color:red;">OL5853184M</b>/Soviet-science-fiction</code></p> <h2>But wait! There&#8217;s more!!</h2> <div style="margin-top:30px;margin-bottom:30px;"> <a href="http://www.flickr.com/photos/straup/135027089/" title="Approaching zero by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm1.static.flickr.com/51/135027089_3c5237e797.jpg" width="500" height="375" alt="Approaching zero" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;"/></a></div> <p>Did I mention that we have over <i>one million</i> photos tagged with <a href="http://www.flickr.com/photos/tags/lastfm:event=">Last.fm event</code></a> machine tags? That makes it kind of hard to know when <i>new</i> machine tags have been added because lopping over all those tags just to find recent ones is expensive and time-consuming.</p> <p>To help address this problem we&#8217;ve add a shiney new API method called:</p> <p style="text-align:center;"><a href="http://www.flickr.com/services/api/flickr.machinetags.getRecentValues.html">flickr.machinetags.getRecentValues</a></p> <p>This does pretty much what it sounds like. Given a namespace or a predicate (or both) and a Unix timestamp, the method returns the values for those machine tags that have been added since the date specified.</p> <p>Enjoy!</p> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="cat-links"> <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="https://code.flickr.net/category/uncategorized/" rel="category tag">Uncategorized</a> </span> <span class="sep"> | </span> <span class="tag-links"> <span class="entry-utility-prep entry-utility-prep-tag-links">Tagged</span> <a href="https://code.flickr.net/tag/machine-tags/" rel="tag">machine tags</a>, <a href="https://code.flickr.net/tag/smallpieces/" rel="tag">smallpieces</a>, <a href="https://code.flickr.net/tag/tagging/" rel="tag">tagging</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-978 --> <article id="post-777" class="post-777 post type-post status-publish format-standard hentry category-uncategorized tag-add-new-tag tag-api tag-astrometry tag-contest tag-flickr tag-google tag-machine-tags tag-science tag-space tag-tagging tag-yahoo tag-yql"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2009/03/20/tags-in-space/" rel="bookmark">Tags in Space</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2009/03/20/tags-in-space/" title="8:49 pm" rel="bookmark"><time class="entry-date" datetime="2009-03-20T20:49:08-07:00">March 20, 2009</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://code.flickr.net/author/flickrphotography/" title="View all posts by Kay Kremerskothen" rel="author">Kay Kremerskothen</a></span></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p>A lot of you enjoyed our post (<a href="http://code.flickr.com/blog/2009/02/18/found-in-space/">&#8220;Found in Space&#8221;</a>) on the amazing <a href="http://astrometry.net/">astrometry.net</a> project, and there have been some interesting followups.</p> <p>A mysterious figure known only as &#8220;jim&#8221; paired up <a href="http://eatyourgreens.org.uk/testapps/yql/overlay2.html">astronomy photos from Flickr with Google Sky</a>. (You&#8217;re going to need the Google Earth plug-in for your browser &#8212; just follow the instructions on that page if you don&#8217;t have it.) In his <a href="http://eatyourgreens.org.uk/archives/2009/03/mapping-the-sky-with-yql-and-astrometrynet.html#more-300">technical writeup</a>, &#8220;jim&#8221; explains how he used the <a href="http://developer.yahoo.com/yql/">Yahoo Query Language</a> (YQL) to fetch the data. YQL is similar to the existing <a href="http://www.flickr.com/services/api/">Flickr APIs</a>, but it&#8217;s a query language like SQL rather than a set of REST-ish APIs. And both of those are really just ways to get data out of Flickr&#8217;s <a href="http://code.flickr.com/blog/2008/12/15/machine-tag-hierarchies/">machine tag</a> system, specifically the <a href="http://www.flickr.com/photos/tags/astro:*"><code>astro:*</code></a> namespace. It&#8217;s turtles all the way down.</p> <p>Who else is using astrotags? The British Royal Observatory in Greenwich is sponsoring a contest to determine the <a href="http://www.nmm.ac.uk/visit/exhibitions/astronomy-photographer-of-the-year/">Astronomy Photographer of the Year</a> and the whole thing is based on a <a href="http://www.nmm.ac.uk/visit/exhibitions/astronomy-photographer-of-the-year/flickr-group/">Flickr group</a> and extensive use of Flickr&#8217;s APIs. The integration is so seamless &#8212; galleries of photos and discussions are surfaced on their site as well as ours &#8212; you might as well consider Flickr to be their &#8220;backend&#8221; server. But they&#8217;ve also added much, such as great documentation about <a href="http://www.nmm.ac.uk/visit/exhibitions/astronomy-photographer-of-the-year/astrotags/">how to astrotag your photos</a> as well as <a href="http://www.nmm.ac.uk/visit/exhibitions/astronomy-photographer-of-the-year/astro-robot/">a concise explanation</a> about how Astrometry.net identifies your photo, even among millions of known stars. (The sci-fi website <a href="http://io9.com">io9</a> interviewed <a href="http://io9.com/5169232/the-robot-who-helps-astronomers-identify-stars">Fiona Romeo</a> of the Royal Observatory about the contest; check it out.) </p> <p>It&#8217;s dizzying how many services have been combined here &#8212; Astrometry.net grew out of research at the University of Toronto, web mashups use Google Sky for visualization in context, Yahoo infrastructure delivers and transforms data, the Royal Observatory at Greenwich provides leadership and expertise, and then little old Flickr acts as a data repository and social hub. And let&#8217;s not forget you, the Flickr community, and your inexhaustible creativity &#8212; which is the reason why all this can even come together. </p> <p>All this was done with pretty light coordination and few people at Flickr were even aware what was going on until recently. I have no idea what the future is for APIs and a web of services loosely joined, but I hope we get to see more and more of this sort of thing.</p> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="cat-links"> <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="https://code.flickr.net/category/uncategorized/" rel="category tag">Uncategorized</a> </span> <span class="sep"> | </span> <span class="tag-links"> <span class="entry-utility-prep entry-utility-prep-tag-links">Tagged</span> <a href="https://code.flickr.net/tag/add-new-tag/" rel="tag">Add new tag</a>, <a href="https://code.flickr.net/tag/api/" rel="tag">api</a>, <a href="https://code.flickr.net/tag/astrometry/" rel="tag">astrometry</a>, <a href="https://code.flickr.net/tag/contest/" rel="tag">contest</a>, <a href="https://code.flickr.net/tag/flickr/" rel="tag">flickr</a>, <a href="https://code.flickr.net/tag/google/" rel="tag">google</a>, <a href="https://code.flickr.net/tag/machine-tags/" rel="tag">machine tags</a>, <a href="https://code.flickr.net/tag/science/" rel="tag">science</a>, <a href="https://code.flickr.net/tag/space/" rel="tag">space</a>, <a href="https://code.flickr.net/tag/tagging/" rel="tag">tagging</a>, <a href="https://code.flickr.net/tag/yahoo/" rel="tag">yahoo</a>, <a href="https://code.flickr.net/tag/yql/" rel="tag">yql</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-777 --> <article id="post-384" class="post-384 post type-post status-publish format-standard hentry category-uncategorized tag-api tag-machinetags tag-tagging"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2008/12/15/machine-tag-hierarchies/" rel="bookmark">Machine Tag Hierarchies</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2008/12/15/machine-tag-hierarchies/" title="8:27 pm" rel="bookmark"><time class="entry-date" datetime="2008-12-15T20:27:57-08:00">December 15, 2008</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://code.flickr.net/author/flickrphotography/" title="View all posts by Kay Kremerskothen" rel="author">Kay Kremerskothen</a></span></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p><a href="http://www.flickr.com/photos/straup/3084890631/" title="Untitled Compass #1228516024 by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3084/3084890631_7805a28af8.jpg" width="500" height="375" alt="Untitled Compass #1228516024" style="border:1px dotted #ccc; padding:5px;margin-top:20px;margin-bottom:20px;" /></a></p> <h2>something:somethingelse=somethingspecific</h2> <p style="font-size:small;font-style:italic;">With apologies to <a href="http://echoloquation.com/post/6939803/something-somethingelse-somethingspecific">Jeremy Keith</a></p> <div> <p>If you&#8217;re not already familiar with machine tags the easiest way to think of them is being like a plain old tag but with a special syntax that allows users to define additional structured data about that tag. If you&#8217;d like to know more, the best place to start is <a href="http://www.flickr.com/groups/api/discuss/72157594497877875">the official announcement we made about machine tags in the Flickr API group</a>.</p> <p>If you want to know even more, still, take a look at:</p> <ul style="margin-bottom:20px;margin-left:30px;line-height:20px;"> <li><a href="http://code.flickr.com/blog/2008/07/18/wildcard-machine-tag-urls/">Machine Tag Wildcard URLs</a></li> <li><a href="http://code.flickr.com/blog/2008/08/28/machine-tags-lastfm-and-rocknroll/">Machine Tags, last.fm and Rock&#8217;n&#8217;Roll</a></li> <li><a href="http://blech.vox.com/library/post/flickr-exif-machine-tags.html">Flickr, EXIF, Machine Tags</a>, by Paul Mison</li> </ul></div> <p>Okay! Now that everyone is feeling warm and fuzzy about machine tags: We&#8217;ve added (4) new <a href="http://www.flickr.com/services/api/">API methods</a> for browsing the hierarchies of machine tags added to photos on the site. These are aggregate rollups of all the unique namespaces, predicates, values and pairs for public photos with machine tags.</p> <p>For example, lots of people have added <a href="http://flickr.com/photos/tags/exif:*="><q>exif:</q> related machine tags</a> to their photos but there hasn&#8217;t been a way to know what kind of EXIF data has been added: <a href="http://www.flickr.com/photos/tags/exif:model=">exif:model</a>? <a href="http://www.flickr.com/photos/tags/exif%3Afocal_length%3D/interesting/">exif:focal_length</a>? <a href="http://www.flickr.com/photos/straup/73884686/">exif:tunablaster</a>? Or what about all the <a href="http://flickr.com/photos/tags/planespotting/clusters/">planespotters</a> who have been diligently adding machine tags to their photos using the <a href="http://www.flickr.com/photos/tags/aero:*=">aero</a> namespace: What are the predicates that they&#8217;re tagging their photos with?</p> <p>Those are the sorts of things these methods are designed to help you find. Sort of like <a href="http://code.flickr.com/blog/2008/07/18/wildcard-machine-tag-urls/">wildcard URLs</a> but for metadata instead of photos. Uh, sort of.</p> <p><a href="http://www.flickr.com/photos/straup/2929080779/" title="Untitled Future #1223665161 by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3057/2929080779_caa36bffe8.jpg" width="500" height="375" alt="Untitled Future #1223665161" style="border:1px dotted #ccc; padding:5px;margin-top:20px;margin-bottom:20px;" /></a></p> <p>Anyway, the new methods are:</p> <h2>flickr.machinetags.getNamespaces</h2> <p>This returns a list of all the unique namespaces, optionally bracketed by a specific predicate. For example, these are all the namespaces that have an <a href="http://www.flickr.com/photos/tags/*:airport=">airport</a> predicate:</p> <pre style="margin-top:30px;margin-bottom:30px;"> # ?method=flickr.machinetags.getNamespaces&amp;predicate=airport &lt;namespaces predicate=&quot;airport&quot; page=&quot;1&quot; total=&quot;2&quot; perpage=&quot;500&quot; pages=&quot;1&quot;&gt; &lt;namespace usage=&quot;1931&quot; predicates=&quot;1&quot;&gt;aero&lt;/namespace&gt; &lt;namespace usage=&quot;3&quot; predicates=&quot;1&quot;&gt;geo&lt;/namespace&gt; &lt;/namespaces&gt; </pre> <h2>flickr.machinetags.getPredicates</h2> <p> Like the <code>getNamespaces</code> method this returns a list of all the unique predicates, optionally bracketed by a specific namespace. For example, these are all the predicates that use the <a href="http://www.flickr.com/photos/tags/dopplr:*=/interesting">dopplr</a> namespace:</p> <pre style="margin-top:30px;margin-bottom:30px;"> # ?method=flickr.machinetags.getPredicates&amp;predicate=dopplr &lt;predicates namespace=&quot;dopplr&quot; page=&quot;1&quot; total=&quot;4&quot; perpage=&quot;500&quot; pages=&quot;1&quot;&gt; &lt;predicate usage=&quot;4392&quot; namespaces=&quot;1&quot;&gt;tagged&lt;/predicate&gt; &lt;predicate usage=&quot;1&quot; namespaces=&quot;1&quot;&gt;traveller&lt;/predicate&gt; &lt;predicate usage=&quot;7780&quot; namespaces=&quot;1&quot;&gt;trip&lt;/predicate&gt; &lt;predicate usage=&quot;4269&quot; namespaces=&quot;1&quot;&gt;woeid&lt;/predicate&gt; &lt;/predicates&gt; </pre> <h2>flickr.machinetags.getValues</h2> <p>At this point, the pattern should be pretty straightforward. This method returns all the unique values for a specific namespace/predicate pair. For example, these are some of the values associated with the <a href="">aero:tail</a> machine tag (yes, really, airplane tail models!):</p> <pre style="margin-top:15px;margin-bottom:30px;"> # ?method=flickr.machinetags.getValues&amp;namespace=aero&amp;predicate=tail &lt;values namespace=&quot;aero&quot; predicate=&quot;tail&quot; page=&quot;1&quot; total=&quot;1159&quot; perpage=&quot;500&quot; pages=&quot;3&quot;&gt; &lt;value usage=&quot;1&quot;&gt;01-0041&lt;/value&gt; &lt;value usage=&quot;1&quot;&gt;164993&lt;/value&gt; &lt;value usage=&quot;2&quot;&gt;26000&lt;/value&gt; &lt;value usage=&quot;1&quot;&gt;4k-az01&lt;/value&gt; &lt;value usage=&quot;1&quot;&gt;4l-tgl&lt;/value&gt; &lt;value usage=&quot;1&quot;&gt;4r-ade&lt;/value&gt; &lt;!-- and so on... --&gt; &lt;/values&gt; </pre> <h2>flickr.machinetags.getPairs</h2> <p>Finally, the getPairs method returns the list of unique namespace/predicate pairs optionally filtered by namespace or predicate.</p> <p>Rather than including yet-another giant blob of XML, here&#8217;s <a href="http://flickr.com/photos/tags/ubahnmuenchen:station=">a pretty picture of the metro stations in Munich</a> instead:</p> <p> <a href="http://www.flickr.com/photos/straup/3103014649/" title="ubahn by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3015/3103014649_46e41e6e23.jpg" width="500" height="350" alt="ubahn" style="border:1px dotted #ccc; padding:5px;margin-top:20px;margin-bottom:20px;" /></a></p> <h2>A few things to note</h2> <p>Certain namespace/predicate pairs have been special-cased to return a single value. As of this writing they are:</p> <ul style="margin-bottom:20px;margin-left:30px;line-height:20px;"> <li>geo:lat (and variations)</li> <li>geo:lon (and variations)</li> <li>file:name</li> <li>file:path</li> <li><span style="font-style:italic;">anything</span>:md5</li> </ul> <p>If people have particular reasons for needing or wanting these we&#8217;re open to the idea but otherwise the cost of storing all the variations and the dubious uses for returning them in the first place made us decide to exclude them.</p> <h2>Now what?</h2> <p><a href="http://www.flickr.com/photos/davemorris/2645255287/" title="Some people take sandcastles pretty seriously... by Daveybot, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3113/2645255287_958e773039.jpg" width="500" height="281" alt="Some people take sandcastles pretty seriously..." style="border:1px dotted #ccc; padding:5px;margin-top:30px;" /></a></p> <p style="font-size:small; font-style:italic;margin-bottom:30px;text-align:right;margin-right:30px;"><a href="http://www.flickr.com/photos/davemorris/">photo by Daveybot</a></p> <p>Well, that&#8217;s what we&#8217;re hoping you&#8217;ll tell us. Machine tags have been chugging away quietly since we announced them almost two years ago and despite being a bit nerd-tastic and awkward to explain we&#8217;ve been thrilled to see how people have been finding their own use for them.</p> <ul> <li> <p>It turns out we have <a href="http://flickr.com/photos/tags/lastfm:event=">photos for 31, 594 unique Last.FM events</a> all because people added <a href="http://code.flickr.com/blog/2008/08/28/machine-tags-lastfm-and-rocknroll/">lastfm:event</a> machine tags to their photos.</p> </li> <li> <p>Researchers at Lewis &amp; Clark College, in Portland, have been &#8220;developing an educational <a href="http://journal.code4lib.org/articles/74">collection of contemporary ceramics images</a> using the photo sharing site Flickr&#8221; and machine tags.</p> </li> <li> <p>Shortly after the launch of Google&#8217;s <a href="http://www.paulhagon.com/playground/flickr/streetview/">Street View</a> feature Mikel Maron &#8220;took GeoRSS feeds from Upcoming, grabbed lat/long and associated that with a panoid via the RESTful &#8216;api&#8217; and pulled down the images &#8230; and then <a href="http://brainoff.com/weblog/2007/06/03/1253">uploaded the panos to flickr with machine tags</a>&#8220;.</p> </li> <li> <p>The <a href="http://www.utata.org/about.php">Utata Collective</a> uses a combination of groups on Flickr and <a href="http://www.utata.org/quickhelp/flickrtagformats.php">machine tags</a> to collect photos for their projects.</p> </li> </ul> <p>And the list goes on.</p> <p>The trick with machine tags has always been to make them both invisible (or at least barely visible) to those people who don&#8217;t care about them but also as easy as tags to pick up and use for those people who do or who wonder whether they might be the tool they were looking for. One thing we didn&#8217;t do very well, though, until the release of the machine tag hierarchy APIs was give people a way to <em>learn</em> about machine tags. The only way to find out which machine tags people were using was to hop-scotch your way around people&#8217;s photostreams or to be part of a larger community having a discussion about which tags to use. Oops.</p> <p>Which is why it was extra-fantastic when a few short days after we <a href="http://tech.groups.yahoo.com/group/yws-flickr/message/4545">announced</a> the machine tag hierarchy methods on the API list, <a href="http://code.flickr.com/blog/2008/11/06/5-questions-for-paul-mison/">the ever prolific and awesome Paul Mison</a> wrote back and <a href="http://tech.groups.yahoo.com/group/yws-flickr/message/4547">said</a>:</p> <blockquote style="font-family:sans-serif; color:darkslategrey;margin-top:30px;margin-bottom:30px;border-top:1px dotted #ccc;border-bottom:1px dotted #ccc;padding-top:20px;"> <p>The obvious thing to build on top of these &#8230; is some sort of graphical machine tag browser, a bit like the Mac OS X / iPod column view browser. So I did.</p> <p> <a href="http://husk.org/code/machine-tag-browser.html"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3227/3103058127_aa7efc2671.jpg" width="500" height="385" alt="" style="border:1px dotted #ccc; padding:5px" /></a></p> <p><a href="http://husk.org/code/machine-tag-browser.html">http://husk.org/code/machine-tag-browser.html</a></p> <p>This is entirely self-contained in one file (except for loading jQuery from Google and (cough) the pulser from Flickr). It uses JavaScript to get a full list of namespaces, giving you the option to drill down into predicates and the values available for that namespace/predicate pair.</p> </blockquote> <p>We&#8217;re hoping that this provides a little more raw material to play with and maybe find some magic and that you&#8217;ll tell us what comes next.</p> <p>Yay!</p> <h2>Oh yeah, the actual API methods</h2> <ul style="margin-top:20px;margin-bottom:20px;margin-left:30px;line-height:20px;"> <li><a href="http://www.flickr.com/services/api/flickr.machinetags.getNamespaces.html">flickr.machinetags.getNamespaces</a></li> <li><a href="http://www.flickr.com/services/api/flickr.machinetags.getPredicates.html">flickr.machinetags.getPredicates</a></li> <li><a href="http://www.flickr.com/services/api/flickr.machinetags.getValues.html">flickr.machinetags.getValues</a></li> <li><a href="http://www.flickr.com/services/api/flickr.machinetags.getPairs.html">flickr.machinetags.getPairs</a></li> </ul> <p>Enjoy!</p> <p style="font-size:small;font-style:italic;">In the coming weeks we&#8217;ll also try to gather most of the blog posts and other writings about machine tags and put them with the rest of the <a href="http://www.flickr.com/services/api">API documentation</a>.</p> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="cat-links"> <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="https://code.flickr.net/category/uncategorized/" rel="category tag">Uncategorized</a> </span> <span class="sep"> | </span> <span class="tag-links"> <span class="entry-utility-prep entry-utility-prep-tag-links">Tagged</span> <a href="https://code.flickr.net/tag/api/" rel="tag">api</a>, <a href="https://code.flickr.net/tag/machinetags/" rel="tag">machinetags</a>, <a href="https://code.flickr.net/tag/tagging/" rel="tag">tagging</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-384 --> <article id="post-38" class="post-38 post type-post status-publish format-standard hentry category-uncategorized tag-api tag-machine-tags tag-tagging"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2008/07/18/wildcard-machine-tag-urls/" rel="bookmark">Wildcard Machine Tag URLs</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2008/07/18/wildcard-machine-tag-urls/" title="6:19 pm" rel="bookmark"><time class="entry-date" datetime="2008-07-18T18:19:24-07:00">July 18, 2008</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://code.flickr.net/author/flickrphotography/" title="View all posts by Kay Kremerskothen" rel="author">Kay Kremerskothen</a></span></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p><a href="http://www.flickr.com/photos/mn_francis/418443679/" title="Machine tags! by cackhanded, on Flickr" ><img loading="lazy" decoding="async" src="http://farm1.static.flickr.com/162/418443679_2bf88260fa.jpg" width="500" height="333" alt="Machine tags!" style="border:1px solid black;"/></a></p> <p style="font-family:sans-serif;font-size:x-small;">Photo by <a href="http://flickr.com/photos/mn_francis/418443679/">cackhanded</a></p> <p>If you&#8217;re not already familiar with machine tags the easiest way to think of them is being like a plain old tag but with a special syntax that allows users to define additional structured data about that tag. In turn the magic space hamsters that run the site have been trained to recognize, index and allow for searches across multiple facets of a given machine tag.</p> <p>Machine tags have three parts : a <q>namespace</q> which is like a subject or a topic; a <q>predicate</q> which is a like a property of that topic; a <q>value</q> which is &#8230; well, a value.</p> <p>For a more thorough introduction to the subject I&#8217;d recommend reading the <a href="http://www.flickr.com/groups/api/discuss/72157594497877875">announcement<br /> we made in the Flickr API discussion group</a> when machine tags were first added to the site. If you&#8217;d like to know even more, after that, there is <a href="http://del.icio.us/tag/machinetags">good collection of links available on del.icio.us</a>.</p> <p>Which brings us to the part where I tell you that we&#8217;ve added the ability to search for machine tagged photos in plain old tag URLs (as well as in tag searches on the <a href="http://www.flickr.com/search/">Flickr search page</a>) using the facetted <a href="http://www.flickr.com/services/api/flickr.photos.search.html">query syntax</a> that has always been available in the API. For example :</p> <ul> <li> <p>All the photos tagged &#8220;flickr:user=bees&#8221;, aka <a href="http://www.flickr.com/photos/bees/">Cal</a> :</p> <p style="text-indent:20px;margin-top:7px;margin-bottom:14px;font-family:sans-serif;font-size:small;"><a href="http://www.flickr.com/photos/tags/flickr:user=bees">http://www.flickr.com/photos/tags/flickr:user=bees</a></p> </li> </ul> <p>That&#8217;s a trick, really. You&#8217;ve always been able to do this since machine tags are just<br /> tags. The New-New means you can be even more granular in what you are looking<br /> for. How about : </p> <ul> <li> <p>All photos with Flickr users :</p> <p style="text-indent:20px;margin-top:7px;margin-bottom:14px;font-family:sans-serif;font-size:small;"><a href="http://www.flickr.com/photos/tags/flickr:user=">http://www.flickr.com/photos/tags/flickr:user=</a></p> </li> <li> <p>Or Upcoming.org users : </p> <p style="text-indent:20px;margin-top:7px;margin-bottom:14px;font-family:sans-serif;font-size:small;"><a href="http://www.flickr.com/photos/tags/upcoming:user=">http://www.flickr.com/photos/tags/upcoming:user=</a></p> </li> <li> <p>Or even Facebook users :</p> <p style="text-indent:20px;margin-top:7px;margin-bottom:14px;font-family:sans-serif;font-size:small;"><a href="http://www.flickr.com/photos/tags/facebook:user=">http://www.flickr.com/photos/tags/facebook:user=</a></p> </li> <li> <p>Or simply <em>all <q>users</q></em> regardless of service (or namespace) :</p> <p style="text-indent:20px;margin-top:7px;margin-bottom:14px;font-family:sans-serif;font-size:small;"><a href="http://www.flickr.com/photos/tags/*:user=">http://www.flickr.com/photos/tags/*:user=</a></p> </li> <li> <p>Maybe, all the photos in the <q>flickr</q> namespace :</p> <p style="text-indent:20px;margin-top:7px;margin-bottom:14px;font-family:sans-serif;font-size:small;"><a href="http://www.flickr.com/photos/tags/flickr:*=">http://www.flickr.com/photos/tags/flickr:*=</a></p> </li> <li> <p>But, seriously, back to Cal : Cal, across services (or namespaces) :</p> <p style="text-indent:20px;margin-top:7px;margin-bottom:14px;font-family:sans-serif;font-size:small;"><a href="http://www.flickr.com/photos/tags/*:user=bees">http://www.flickr.com/photos/tags/*:user=bees</a></p> </li> <li> <p>All Cal. All the time :</p> <p style="text-indent:20px;margin-top:7px;margin-bottom:14px;font-family:sans-serif;font-size:small;"><a href="http://www.flickr.com/photos/tags/*:*=bees">http://www.flickr.com/photos/tags/*:*=bees</a></p> </li> <li> <p>And no, you can not do this. No ponies for you if you try :</p> <p style="text-indent:20px;margin-top:7px;margin-bottom:14px;font-family:sans-serif;font-size:small;"><a href="http://www.flickr.com/photos/tags/*:*=" rel="nofollow">http://www.flickr.com/photos/tags/*:*=</a></p> </li> </ul> <p>The wildcard URL syntax is also available for an individual user&#8217;s tags :</p> <ul> <li> <p>These are all my photos that have been machine tagged with either a <a href="http://www.geonames.org/">Geonames</a>, <a href="http://www.flickr.com/places/">Places</a> or <a href="http://developer.yahoo.com/geo/">GeoPlanet</a> (n&#233;e <a href="http://geobloggers.com/archives/2008/05/12/yahoo-woe-where-on-earth-that-is-ids/">Where on Earth</a>) locality ID :</p> <p style="text-indent:20px;margin-top:7px;margin-bottom:14px;font-family:sans-serif;font-size:small;"><a href="http://flickr.com/photos/straup/tags/*:locality=">http://www.flickr.com/photos/straup/tags/*:locality=</a></p> </li> <li> <p>Or photos in the <a href="http://flickr.com/photos/george_eastman_house/">George Eastman House&#8217;s photostream</a> that were developed using the daguerrotype process :</p> <p style="text-indent:20px;margin-top:7px;margin-bottom:14px;font-family:sans-serif;font-size:x-small;"><a href="http://flickr.com/photos/george_eastman_house/tags/photo:process=daguerreotype">http://www.flickr.com/photos/george_eastman_house/tags/photo:process=daguerreotype</a></p> </li> </ul> <p>Now for the list of caveats and Known-Knowns : </p> <ul style="list-style-type:square;"> <li> <p>At the moment it is still not possible to poke around the hierarchy of a given machine tag : all the predicates for a namespace; all the unique pairs of namespace and predicates; that sort of thing. It is On The List &trade; and hopefully we can offer up something for you to play with, even if it&#8217;s just in the API to start with, shortly.</p> </li> <li> <p>Values in wildcard URLs should are treated the same way regular tags are in URLs. That is &#8220;san francisco&#8221; becomes &#8220;sanfrancisco&#8221; or in machine tag speak : <a href="http://flickr.com/photos/tags/*:*=sanfrancisco">*:*=sanfrancisco</a>.</p> <li> <p>In the examples above, I&#8217;ve illustrated namespaces that are used to denote one service or another. It is important to remember that <a href="http://factoryjoe.com/blog/2008/05/25/machine-tagging-relationships/">there are no rules</a> about what can or should be a namespace. Like tagging, the hope is that the various communities will arrive at and adapt a consensus according to their needs.</p> </li> <p><a href="http://www.flickr.com/photos/straup/418517249/" title="Untitled Souvenir #1173678685 by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm1.static.flickr.com/175/418517249_43063c1acd.jpg" width="500" height="375" alt="Untitled Souvenir #1173678685" /></a></p> <p style="font-family:sans-serif;font-size:x-small;">Photo by <a href="http://flickr.com/photos/straup/418517249/">straup</a></p> <p>In the meantime, kick back and enjoy photos <a href="http://flickr.com/photos/tags/dopplr:trip=/interesting/">taken by people on their Dopplr trips</a>, photos by people who <a href="http://flickr.com/photos/tags/aero:*=">really really like airplanes</a> or photos by people who are interested in <a href="http://flickr.com/photos/tags/taxonomy:family=phalangeridae/">possums</a><br /> (not to mention <a href="http://flickr.com/photos/tags/taxonomy:subclass=marsupialia/">all manner of marsupials</a>) or whatever else comes to mind!</p> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="cat-links"> <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="https://code.flickr.net/category/uncategorized/" rel="category tag">Uncategorized</a> </span> <span class="sep"> | </span> <span class="tag-links"> <span class="entry-utility-prep entry-utility-prep-tag-links">Tagged</span> <a href="https://code.flickr.net/tag/api/" rel="tag">api</a>, <a href="https://code.flickr.net/tag/machine-tags/" rel="tag">machine tags</a>, <a href="https://code.flickr.net/tag/tagging/" rel="tag">tagging</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-38 --> </div><!-- #content --> </section><!-- #primary --> <div id="secondary" class="widget-area" role="complementary"> <aside id="jetpack-search-filters-3" class="widget jetpack-filters widget_search"> <div id="jetpack-search-filters-3-wrapper" class="jetpack-instant-search-wrapper"> <div class="jetpack-search-form"> <form method="get" id="searchform" action="https://code.flickr.net/"> <label for="s" class="assistive-text">Search</label> <input type="text" class="field" name="s" id="s" placeholder="Search" /> <input type="submit" class="submit" name="submit" id="searchsubmit" value="Search" /> <input type="hidden" name="orderby" value="" /><input type="hidden" name="order" value="" /></form> </div> <h4 class="jetpack-search-filters-widget__sub-heading"> Categories </h4> <ul class="jetpack-search-filters-widget__filter-list"> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="category" data-val="uncategorized"> Uncategorized&nbsp;(136) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="category" data-val="geo"> geo&nbsp;(12) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="category" data-val="kittens"> kittens&nbsp;(10) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="category" data-val="change-log"> changelog&nbsp;(7) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="category" data-val="uploadr"> uploadr&nbsp;(6) </a> </li> </ul> <h4 class="jetpack-search-filters-widget__sub-heading"> Tags </h4> <ul class="jetpack-search-filters-widget__filter-list"> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="post_tag" data-val="tagging+api"> api&nbsp;(24) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="post_tag" data-val="tagging+geo"> geo&nbsp;(13) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="post_tag" data-val="tagging+machine-tags"> machine tags&nbsp;(10) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="post_tag" data-val="tagging+javascript"> javascript&nbsp;(9) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="post_tag" data-val="tagging+kittentuesday"> kittentuesday&nbsp;(8) </a> </li> </ul> <h4 class="jetpack-search-filters-widget__sub-heading"> Year </h4> <ul class="jetpack-search-filters-widget__filter-list"> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="year_post_date" data-val="2022-01-01 00:00:00" > 2022&nbsp;(2) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="year_post_date" data-val="2021-01-01 00:00:00" > 2021&nbsp;(1) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="year_post_date" data-val="2018-01-01 00:00:00" > 2018&nbsp;(1) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="year_post_date" data-val="2017-01-01 00:00:00" > 2017&nbsp;(2) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="year_post_date" data-val="2016-01-01 00:00:00" > 2016&nbsp;(5) </a> </li> </ul> </div></aside> <aside id="recent-posts-2" class="widget widget_recent_entries"> <h3 class="widget-title">Recent Posts</h3> <ul> <li> <a href="https://code.flickr.net/2022/02/14/safer-internet-day-and-open-source-codes-of-conduct/">Safer Internet Day and Open Source Codes of Conduct</a> </li> <li> <a href="https://code.flickr.net/2022/01/04/a-pluggable-solution-for-api-observability-on-our-php-system/">A Pluggable Solution for API Observability on our PHP System</a> </li> <li> <a href="https://code.flickr.net/2021/11/22/flickr-engineering-team-vision-guiding-principles/">Flickr Engineering Team Vision &#038; Guiding Principles</a> </li> <li> <a href="https://code.flickr.net/2018/04/20/together/">Together</a> </li> <li> <a href="https://code.flickr.net/2017/03/07/introducing-similarity-search-at-flickr/">Introducing Similarity Search at Flickr</a> </li> </ul> </aside><aside id="archives-2" class="widget widget_archive"><h3 class="widget-title">Archives</h3> <ul> <li><a href='https://code.flickr.net/2022/02/'>February 2022</a></li> <li><a href='https://code.flickr.net/2022/01/'>January 2022</a></li> <li><a href='https://code.flickr.net/2021/11/'>November 2021</a></li> <li><a href='https://code.flickr.net/2018/04/'>April 2018</a></li> <li><a href='https://code.flickr.net/2017/03/'>March 2017</a></li> <li><a href='https://code.flickr.net/2017/01/'>January 2017</a></li> <li><a href='https://code.flickr.net/2016/09/'>September 2016</a></li> <li><a href='https://code.flickr.net/2016/05/'>May 2016</a></li> <li><a href='https://code.flickr.net/2016/04/'>April 2016</a></li> <li><a href='https://code.flickr.net/2016/03/'>March 2016</a></li> <li><a href='https://code.flickr.net/2015/12/'>December 2015</a></li> <li><a href='https://code.flickr.net/2015/11/'>November 2015</a></li> <li><a href='https://code.flickr.net/2015/09/'>September 2015</a></li> <li><a href='https://code.flickr.net/2015/07/'>July 2015</a></li> <li><a href='https://code.flickr.net/2015/06/'>June 2015</a></li> <li><a href='https://code.flickr.net/2015/03/'>March 2015</a></li> <li><a href='https://code.flickr.net/2014/10/'>October 2014</a></li> <li><a href='https://code.flickr.net/2014/08/'>August 2014</a></li> <li><a href='https://code.flickr.net/2014/07/'>July 2014</a></li> <li><a href='https://code.flickr.net/2014/05/'>May 2014</a></li> <li><a href='https://code.flickr.net/2014/04/'>April 2014</a></li> <li><a href='https://code.flickr.net/2014/02/'>February 2014</a></li> <li><a href='https://code.flickr.net/2013/09/'>September 2013</a></li> <li><a href='https://code.flickr.net/2013/06/'>June 2013</a></li> <li><a href='https://code.flickr.net/2013/03/'>March 2013</a></li> <li><a href='https://code.flickr.net/2012/12/'>December 2012</a></li> <li><a href='https://code.flickr.net/2012/10/'>October 2012</a></li> <li><a href='https://code.flickr.net/2012/07/'>July 2012</a></li> <li><a href='https://code.flickr.net/2012/06/'>June 2012</a></li> <li><a href='https://code.flickr.net/2012/05/'>May 2012</a></li> <li><a href='https://code.flickr.net/2012/04/'>April 2012</a></li> <li><a href='https://code.flickr.net/2012/02/'>February 2012</a></li> <li><a href='https://code.flickr.net/2012/01/'>January 2012</a></li> <li><a href='https://code.flickr.net/2011/12/'>December 2011</a></li> <li><a href='https://code.flickr.net/2011/10/'>October 2011</a></li> <li><a href='https://code.flickr.net/2011/09/'>September 2011</a></li> <li><a href='https://code.flickr.net/2011/08/'>August 2011</a></li> <li><a href='https://code.flickr.net/2011/07/'>July 2011</a></li> <li><a href='https://code.flickr.net/2011/06/'>June 2011</a></li> <li><a href='https://code.flickr.net/2011/03/'>March 2011</a></li> <li><a href='https://code.flickr.net/2011/02/'>February 2011</a></li> <li><a href='https://code.flickr.net/2011/01/'>January 2011</a></li> <li><a href='https://code.flickr.net/2010/11/'>November 2010</a></li> <li><a href='https://code.flickr.net/2010/10/'>October 2010</a></li> <li><a href='https://code.flickr.net/2010/09/'>September 2010</a></li> <li><a href='https://code.flickr.net/2010/08/'>August 2010</a></li> <li><a href='https://code.flickr.net/2010/07/'>July 2010</a></li> <li><a href='https://code.flickr.net/2010/05/'>May 2010</a></li> <li><a href='https://code.flickr.net/2010/04/'>April 2010</a></li> <li><a href='https://code.flickr.net/2010/03/'>March 2010</a></li> <li><a href='https://code.flickr.net/2010/02/'>February 2010</a></li> <li><a href='https://code.flickr.net/2010/01/'>January 2010</a></li> <li><a href='https://code.flickr.net/2009/12/'>December 2009</a></li> <li><a href='https://code.flickr.net/2009/11/'>November 2009</a></li> <li><a href='https://code.flickr.net/2009/10/'>October 2009</a></li> <li><a href='https://code.flickr.net/2009/09/'>September 2009</a></li> <li><a href='https://code.flickr.net/2009/07/'>July 2009</a></li> <li><a href='https://code.flickr.net/2009/06/'>June 2009</a></li> <li><a href='https://code.flickr.net/2009/05/'>May 2009</a></li> <li><a href='https://code.flickr.net/2009/04/'>April 2009</a></li> <li><a href='https://code.flickr.net/2009/03/'>March 2009</a></li> <li><a href='https://code.flickr.net/2009/02/'>February 2009</a></li> <li><a href='https://code.flickr.net/2009/01/'>January 2009</a></li> <li><a href='https://code.flickr.net/2008/12/'>December 2008</a></li> <li><a href='https://code.flickr.net/2008/11/'>November 2008</a></li> <li><a href='https://code.flickr.net/2008/10/'>October 2008</a></li> <li><a href='https://code.flickr.net/2008/09/'>September 2008</a></li> <li><a href='https://code.flickr.net/2008/08/'>August 2008</a></li> <li><a href='https://code.flickr.net/2008/07/'>July 2008</a></li> <li><a href='https://code.flickr.net/2008/06/'>June 2008</a></li> <li><a href='https://code.flickr.net/2008/05/'>May 2008</a></li> <li><a href='https://code.flickr.net/2008/04/'>April 2008</a></li> </ul> </aside><aside id="categories-2" class="widget widget_categories"><h3 class="widget-title">Categories</h3> <ul> <li class="cat-item cat-item-11749740"><a href="https://code.flickr.net/category/api-2/">API</a> </li> <li class="cat-item cat-item-564792"><a href="https://code.flickr.net/category/change-log/">changelog</a> </li> <li class="cat-item cat-item-5784"><a href="https://code.flickr.net/category/event/">event</a> </li> <li class="cat-item cat-item-29160"><a href="https://code.flickr.net/category/geo/">geo</a> </li> <li class="cat-item cat-item-139037766"><a href="https://code.flickr.net/category/hadoop/">hadoop</a> </li> <li class="cat-item cat-item-32"><a href="https://code.flickr.net/category/infrastructure/">infrastructure</a> </li> <li class="cat-item cat-item-139037765"><a href="https://code.flickr.net/category/kittens/">kittens</a> </li> <li class="cat-item cat-item-20156"><a href="https://code.flickr.net/category/labs/">labs</a> </li> <li class="cat-item cat-item-171"><a href="https://code.flickr.net/category/meta/">meta</a> </li> <li class="cat-item cat-item-7092"><a href="https://code.flickr.net/category/metrics/">metrics</a> </li> <li class="cat-item cat-item-139037764"><a href="https://code.flickr.net/category/open-source/">open source</a> </li> <li class="cat-item cat-item-1930"><a href="https://code.flickr.net/category/performance/">performance</a> </li> <li class="cat-item cat-item-304"><a href="https://code.flickr.net/category/photos/">photos</a> </li> <li class="cat-item cat-item-2373"><a href="https://code.flickr.net/category/search/">search</a> </li> <li class="cat-item cat-item-1"><a href="https://code.flickr.net/category/uncategorized/">Uncategorized</a> </li> <li class="cat-item cat-item-249276"><a href="https://code.flickr.net/category/uploadr/">uploadr</a> </li> <li class="cat-item cat-item-412"><a href="https://code.flickr.net/category/video/">video</a> </li> <li class="cat-item cat-item-830560"><a href="https://code.flickr.net/category/xulrunner/">xulrunner</a> </li> </ul> </aside><aside id="meta-2" class="widget widget_meta"><h3 class="widget-title">Meta</h3> <ul> <li><a href="https://code.flickr.net/wp-login.php">Log in</a></li> <li><a href="https://code.flickr.net/feed/">Entries feed</a></li> <li><a href="https://code.flickr.net/comments/feed/">Comments feed</a></li> <li><a href="https://wordpress.org/">WordPress.org</a></li> </ul> </aside> </div><!-- #secondary .widget-area --> </div><!-- #main --> <footer id="colophon" role="contentinfo"> <div id="site-generator"> &copy; 2025 Flickr, Inc. All rights reserved. | Powered by <a href="https://wpvip.com/?utm_source=vip_powered_wpcom&#038;utm_medium=web&#038;utm_campaign=VIP%20Footer%20Credit&#038;utm_term=code.flickr.net" rel="generator nofollow" class="powered-by-wpcom">WordPress VIP</a> </div> </footer><!-- #colophon --> </div><!-- #page --> <div class="jetpack-instant-search__widget-area" style="display: none"> <div id="jetpack-search-filters-2" class="widget jetpack-filters widget_search"> <div id="jetpack-search-filters-2-wrapper" class="jetpack-instant-search-wrapper"> </div></div> </div> <script type="text/javascript" src="https://code.flickr.net/wp-includes/js/dist/hooks.min.js?m=1742994401g" ></script><script type="text/javascript" src="https://code.flickr.net/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script> <script type="text/javascript" id="wp-i18n-js-after"> /* <![CDATA[ */ wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); /* ]]> */ </script> <script type="text/javascript" src="https://code.flickr.net/wp-content/mu-plugins/jetpack-14.4/jetpack_vendor/automattic/jetpack-assets/build/i18n-loader.js?minify=true&amp;ver=becd7d9884bc1b331e45" id="wp-jp-i18n-loader-js"></script> <script type="text/javascript" id="wp-jp-i18n-loader-js-after"> /* <![CDATA[ */ wp.jpI18nLoader.state = {"baseUrl":"https://code.flickr.net/wp-content/languages/","locale":"en_US","domainMap":{"jetpack-admin-ui":"plugins/jetpack","jetpack-assets":"plugins/jetpack","jetpack-backup-pkg":"plugins/jetpack","jetpack-blaze":"plugins/jetpack","jetpack-boost-core":"plugins/jetpack","jetpack-boost-speed-score":"plugins/jetpack","jetpack-classic-theme-helper":"plugins/jetpack","jetpack-compat":"plugins/jetpack","jetpack-config":"plugins/jetpack","jetpack-connection":"plugins/jetpack","jetpack-explat":"plugins/jetpack","jetpack-external-media":"plugins/jetpack","jetpack-forms":"plugins/jetpack","jetpack-image-cdn":"plugins/jetpack","jetpack-import":"plugins/jetpack","jetpack-ip":"plugins/jetpack","jetpack-jitm":"plugins/jetpack","jetpack-licensing":"plugins/jetpack","jetpack-masterbar":"plugins/jetpack","jetpack-my-jetpack":"plugins/jetpack","jetpack-password-checker":"plugins/jetpack","jetpack-plugins-installer":"plugins/jetpack","jetpack-post-list":"plugins/jetpack","jetpack-protect-models":"plugins/jetpack","jetpack-protect-status":"plugins/jetpack","jetpack-publicize-pkg":"plugins/jetpack","jetpack-search-pkg":"plugins/jetpack","jetpack-stats":"plugins/jetpack","jetpack-stats-admin":"plugins/jetpack","jetpack-sync":"plugins/jetpack","jetpack-videopress-pkg":"plugins/jetpack","jetpack-waf":"plugins/jetpack","jetpack-wordads":"plugins/jetpack","woocommerce-analytics":"plugins/jetpack"},"domainPaths":{"jetpack-admin-ui":"jetpack_vendor/automattic/jetpack-admin-ui/","jetpack-assets":"jetpack_vendor/automattic/jetpack-assets/","jetpack-backup-pkg":"jetpack_vendor/automattic/jetpack-backup/","jetpack-blaze":"jetpack_vendor/automattic/jetpack-blaze/","jetpack-boost-core":"jetpack_vendor/automattic/jetpack-boost-core/","jetpack-boost-speed-score":"jetpack_vendor/automattic/jetpack-boost-speed-score/","jetpack-classic-theme-helper":"jetpack_vendor/automattic/jetpack-classic-theme-helper/","jetpack-compat":"jetpack_vendor/automattic/jetpack-compat/","jetpack-config":"jetpack_vendor/automattic/jetpack-config/","jetpack-connection":"jetpack_vendor/automattic/jetpack-connection/","jetpack-explat":"jetpack_vendor/automattic/jetpack-explat/","jetpack-external-media":"jetpack_vendor/automattic/jetpack-external-media/","jetpack-forms":"jetpack_vendor/automattic/jetpack-forms/","jetpack-image-cdn":"jetpack_vendor/automattic/jetpack-image-cdn/","jetpack-import":"jetpack_vendor/automattic/jetpack-import/","jetpack-ip":"jetpack_vendor/automattic/jetpack-ip/","jetpack-jitm":"jetpack_vendor/automattic/jetpack-jitm/","jetpack-licensing":"jetpack_vendor/automattic/jetpack-licensing/","jetpack-masterbar":"jetpack_vendor/automattic/jetpack-masterbar/","jetpack-my-jetpack":"jetpack_vendor/automattic/jetpack-my-jetpack/","jetpack-password-checker":"jetpack_vendor/automattic/jetpack-password-checker/","jetpack-plugins-installer":"jetpack_vendor/automattic/jetpack-plugins-installer/","jetpack-post-list":"jetpack_vendor/automattic/jetpack-post-list/","jetpack-protect-models":"jetpack_vendor/automattic/jetpack-protect-models/","jetpack-protect-status":"jetpack_vendor/automattic/jetpack-protect-status/","jetpack-publicize-pkg":"jetpack_vendor/automattic/jetpack-publicize/","jetpack-search-pkg":"jetpack_vendor/automattic/jetpack-search/","jetpack-stats":"jetpack_vendor/automattic/jetpack-stats/","jetpack-stats-admin":"jetpack_vendor/automattic/jetpack-stats-admin/","jetpack-sync":"jetpack_vendor/automattic/jetpack-sync/","jetpack-videopress-pkg":"jetpack_vendor/automattic/jetpack-videopress/","jetpack-waf":"jetpack_vendor/automattic/jetpack-waf/","jetpack-wordads":"jetpack_vendor/automattic/jetpack-wordads/","woocommerce-analytics":"jetpack_vendor/automattic/woocommerce-analytics/"}}; /* ]]> */ </script> <script type="text/javascript" src="https://code.flickr.net/_static/??/wp-includes/js/dist/vendor/wp-polyfill.min.js,/wp-includes/js/dist/url.min.js?m=1742994401j" ></script><script type="text/javascript" id="jetpack-instant-search-js-before"> /* <![CDATA[ */ var JetpackInstantSearchOptions=JSON.parse(decodeURIComponent("%7B%22overlayOptions%22%3A%7B%22colorTheme%22%3A%22light%22%2C%22enableInfScroll%22%3Atrue%2C%22enableFilteringOpensOverlay%22%3Atrue%2C%22enablePostDate%22%3Atrue%2C%22enableSort%22%3Atrue%2C%22highlightColor%22%3A%22%23FFC%22%2C%22overlayTrigger%22%3A%22submit%22%2C%22resultFormat%22%3A%22expanded%22%2C%22showPoweredBy%22%3Atrue%2C%22defaultSort%22%3A%22relevance%22%2C%22excludedPostTypes%22%3A%5B%5D%7D%2C%22homeUrl%22%3A%22https%3A%5C%2F%5C%2Fcode.flickr.net%22%2C%22locale%22%3A%22en-US%22%2C%22postsPerPage%22%3A10%2C%22siteId%22%3A185426273%2C%22postTypes%22%3A%7B%22post%22%3A%7B%22singular_name%22%3A%22Post%22%2C%22name%22%3A%22Posts%22%7D%2C%22page%22%3A%7B%22singular_name%22%3A%22Page%22%2C%22name%22%3A%22Pages%22%7D%2C%22attachment%22%3A%7B%22singular_name%22%3A%22Media%22%2C%22name%22%3A%22Media%22%7D%7D%2C%22webpackPublicPath%22%3A%22https%3A%5C%2F%5C%2Fcode.flickr.net%5C%2Fwp-content%5C%2Fmu-plugins%5C%2Fjetpack-14.4%5C%2Fjetpack_vendor%5C%2Fautomattic%5C%2Fjetpack-search%5C%2Fbuild%5C%2Finstant-search%5C%2F%22%2C%22isPhotonEnabled%22%3Afalse%2C%22isFreePlan%22%3Afalse%2C%22apiRoot%22%3A%22https%3A%5C%2F%5C%2Fcode.flickr.net%5C%2Fwp-json%5C%2F%22%2C%22apiNonce%22%3A%2234dcc215ea%22%2C%22isPrivateSite%22%3Afalse%2C%22isWpcom%22%3Afalse%2C%22hasOverlayWidgets%22%3Atrue%2C%22widgets%22%3A%5B%7B%22filters%22%3A%5B%7B%22name%22%3A%22Bylines%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22byline%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%2C%22filter_id%22%3A%22taxonomy_0%22%7D%2C%7B%22name%22%3A%22Categories%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22category%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%2C%22filter_id%22%3A%22taxonomy_1%22%7D%2C%7B%22name%22%3A%22Tags%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22post_tag%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%2C%22filter_id%22%3A%22taxonomy_2%22%7D%2C%7B%22name%22%3A%22Year%22%2C%22type%22%3A%22date_histogram%22%2C%22count%22%3A5%2C%22field%22%3A%22post_date%22%2C%22interval%22%3A%22year%22%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%2C%22filter_id%22%3A%22date_histogram_3%22%7D%5D%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%7D%5D%2C%22widgetsOutsideOverlay%22%3A%5B%7B%22filters%22%3A%5B%7B%22name%22%3A%22Bylines%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22byline%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%2C%22filter_id%22%3A%22taxonomy_4%22%7D%2C%7B%22name%22%3A%22Categories%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22category%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%2C%22filter_id%22%3A%22taxonomy_5%22%7D%2C%7B%22name%22%3A%22Tags%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22post_tag%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%2C%22filter_id%22%3A%22taxonomy_6%22%7D%2C%7B%22name%22%3A%22Year%22%2C%22type%22%3A%22date_histogram%22%2C%22count%22%3A5%2C%22field%22%3A%22post_date%22%2C%22interval%22%3A%22year%22%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%2C%22filter_id%22%3A%22date_histogram_7%22%7D%5D%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%7D%5D%2C%22hasNonSearchWidgets%22%3Afalse%2C%22preventTrackingCookiesReset%22%3Afalse%7D")); /* ]]> */ </script> <script type="text/javascript" src="https://code.flickr.net/wp-content/mu-plugins/jetpack-14.4/jetpack_vendor/automattic/jetpack-search/build/instant-search/jp-search.js?minify=false&amp;ver=749aa845a5ccb16bc8a6" id="jetpack-instant-search-js"></script> <script type="text/javascript" src="//stats.wp.com/w.js?ver=202515" id="jp-tracks-js"></script> <script type="text/javascript" id="jetpack-stats-js-before"> /* <![CDATA[ */ _stq = window._stq || []; _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"185426273\",\"post\":\"0\",\"tz\":\"-7\",\"srv\":\"code.flickr.net\",\"hp\":\"vip\",\"j\":\"1:14.4.1\"}") ]); _stq.push([ "clickTrackerInit", "185426273", "0" ]); /* ]]> */ </script> <script type="text/javascript" src="https://stats.wp.com/e-202515.js" id="jetpack-stats-js" defer="defer" data-wp-strategy="defer"></script> <script async src="https://embedr.flickr.com/assets/client-code.js" charset="utf-8"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10