1NAME 2 Net::Flickr::RDF - a.k.a RDF::Describes::Flickr 3 4SYNOPSIS 5 use Net::Flickr::RDF; 6 use Config::Simple; 7 use IO::AtomicFile; 8 9 my $cfg = Config::Simple->new("/path/to/my.cfg"); 10 my $rdf = Net::Flickr::RDF->new($cfg); 11 12 my $fh = IO::AtomicFile->open("/foo/bar.rdf","w"); 13 14 $rdf->describe_photo({photo_id => 123, 15 secret => 567, 16 fh => \*$fh}); 17 18 $fh->close(); 19 20DESCRIPTION 21 Describe Flickr photos as RDF. 22 23 This package inherits from *Net::Flickr::API*. 24 25OPTIONS 26 Options are passed to Net::Flickr::Backup using a Config::Simple object 27 or a valid Config::Simple config file. Options are grouped by "block". 28 29 flickr 30 31 * api_key 32 String. *required* 33 34 A valid Flickr API key. 35 36 * api_secret 37 String. *required* 38 39 A valid Flickr Auth API secret key. 40 41 * auth_token 42 String. *required* 43 44 A valid Flickr Auth API token. 45 46 rdf 47 48 * query_geonames 49 Boolean. 50 51 If true and a photo has geodata (latitude, longitude) associated 52 with it, then the geonames.org database will be queried for a 53 corresponding match. Data will be added as properties of the photo's 54 geo:Point description. For example : 55 56 <geo:Point rdf:about="http://www.flickr.com/photos/35034348999@N01/272880469#location"> 57 <geo:long>-122.025151</geo:long> 58 <flickr:accuracy>16</ymaps:flickr> 59 <acl:access>visbility</acl:access> 60 <geo:lat>37.417839</geo:lat> 61 <acl:accessor>public</acl:accessor> 62 <geoname:Feature rdf:resource="http://ws.geonames.org/rdf?geonameId=5409655"/> 63 </geo:Point> 64 65 <geoname:Feature rdf:about="http://ws.geonames.org/rdf?geonameId=5409655"> 66 <geoname:featureCode>PPLX</geoname:featureCode> 67 <geoname:countryCode>US</geoname:countryCode> 68 <geoname:regionCode>CA</geoname:regionCode> 69 <geoname:region>California</geoname:region> 70 <geoname:city>Santa Clara</geoname:city> 71 <geoname:gtopo30>2</geoname:gtopo30> 72 </geoname:Feature> 73 74 Default is false. 75 76PACKAGE METHODS 77 __PACKAGE__->new($cfg) 78 79 Where $cfg is either a valid *Config::Simple* object or the path to a 80 file that can be parsed by *Config::Simple*. 81 82 Returns a *Net::Flickr::RDF* object. 83 84PACKAGE METHODS YOU MAY CARE ABOUT 85 __PACKAGE__->build_photo_uri(\%data) 86 87 Returns a URL as a string. 88 89 __PACKAGE__->build_geo_uri(\%data) 90 91 __PACKAGE__->build_user_tag_uri(\@data) 92 93 Returns a URL as a string. 94 95 __PACKAGE__->build_global_tag_uri(\@data) 96 97 Returns a URL as a string. 98 99 __PACKAGE__->build_machinetag_uri(\@data) 100 101 Returns a URL as a string. 102 103 __PACKAGE__->build_user_uri($user_id) 104 105 Returns a URL as a string. 106 107 __PACKAGE__->build_group_uri($group_id) 108 109 Returns a URL as a string. 110 111 __PACKAGE__->build_grouppool_uri($group_id) 112 113 Returns a URL as a string. 114 115 __PACKAGE__->build_photoset_uri(\%set_data) 116 117 Returns a URL as a string. 118 119 __PACKAGE__->prune_triples(\@triples) 120 121 Removes duplicate triples from *@triples*. Returns an array reference. 122 123OBJECT METHODS YOU SHOULD CARE ABOUT 124 $obj->describe_photo(\%args) 125 126 Valid arguments are : 127 128 * photo_id 129 Int. *required* 130 131 * secret 132 String. 133 134 * fh 135 File-handle. 136 137 Default is STDOUT. 138 139 Returns true or false. 140 141OBJECT METHODS YOU MAY CARE ABOUT 142 $obj->collect_photo_data($photo_id,$secret) 143 144 Returns a hash ref of the meta data associated with a photo. 145 146 If any errors are unencounter an error is recorded via the log method 147 and the method returns undef. 148 149 $obj->collect_group_data($group_id) 150 151 Returns a hash ref of the meta data associated with a group. 152 153 If any errors are unencounter an error is recorded via the log method 154 and the method returns undef. 155 156 $obj->collect_user_data($user_id) 157 158 Returns a hash ref of the meta data associated with a user. 159 160 If any errors are unencounter an error is recorded via the log method 161 and the method returns undef. 162 163 $obj->collect_photoset_data($photoset_id) 164 165 Returns a hash ref of the meta data associated with a photoset. 166 167 If any errors are unencounter an error is recorded via the log method 168 and the method returns undef. 169 170 $obj->collect_cc_data() 171 172 Returns a hash ref of the Creative Commons licenses used by Flickr. 173 174 If any errors are unencounter an error is recorded via the log method 175 and the method returns undef. 176 177 $obj->collect_comment_data() 178 179 Returns a hash ref of comments made about a photo. 180 181 $obj->make_photo_triples(\%data) 182 183 Returns an array ref (or alist in a wantarray context) of array refs of 184 the meta data associated with a photo (*%data*). 185 186 $obj->make_user_triples(\%user_data) 187 188 Returns an array ref (or list in a wantarray context) of array refs of 189 the meta data associated with a user (*%user_data*). 190 191 $obj->make_tag_triples(\@tag_data) 192 193 Returns an array ref (or list in a wantarray context) of array refs of 194 the meta data associated with a tag (*@tag_data*). 195 196 $pkg->make_photoset_triples(\%set_data) 197 198 Returns an array ref (or list in a wantarray context) of array refs of 199 the meta data associated with a photoset (*%set_data*). 200 201 $obj->make_geo_triples(\%geo_data) 202 203 $obj->make_flickr_places_triples(\%geo_data) 204 205 $obj->make_geonames_triples(\%geo_data) 206 207 $obj->make_group_triples(\%group_data) 208 209 Returns an array ref (or list in a wantarray context) of array refs of 210 the meta data associated with a group (*%group_data*). 211 212 $obj->make_grouppool_triples(\%group_data) 213 214 Returns an array ref (or list in a wantarray context) of array refs of 215 the meta data associated with a group pool (*%group_data*). 216 217 $obj->make_cc_triples($url) 218 219 Returns an array ref (or list in a wantarray context) of array refs of 220 the meta data associated with a Creative Commons license (*$url*). 221 222 $obj->make_comment_triples(\%data) 223 224 Returns an array ref (or alist in a wantarray context) of array refs of 225 the meta data associated with a photo comment (*%data*). 226 227 $obj->geodata_from_tags(\%data) 228 229 Try to parse out geolocative data from a collection of tag data. 230 231 Returns a hash ref (containing 'lat' and 'long' keys) on success or 232 undef if there were no matches. 233 234 $obj->namespaces() 235 236 Returns a hash ref of the prefixes and namespaces used by 237 *Net::Flickr::RDF* 238 239 The default key/value pairs are : 240 241 a http://www.w3.org/2000/10/annotation-ns 242 243 acl http://www.w3.org/2001/02/acls# 244 245 atom 246 http://www.w3.org/2005/Atom/ 247 248 cc http://web.resource.org/cc/ 249 250 dc http://purl.org/dc/elements/1.1/ 251 252 dcterms 253 http://purl.org/dc/terms/ 254 255 exif 256 http://nwalsh.com/rdf/exif# 257 258 exifi 259 http://nwalsh.com/rdf/exif-intrinsic# 260 261 flickr 262 x-urn:flickr: 263 264 foaf 265 http://xmlns.com/foaf/0.1/# 266 267 geo http://www.w3.org/2003/01/geo/wgs84_pos# 268 269 geoname 270 http://www.geonames.org/onto# 271 272 i http://www.w3.org/2004/02/image-regions# 273 274 rdf http://www.w3.org/1999/02/22-rdf-syntax-ns# 275 276 rdfs 277 http://www.w3.org/2000/01/rdf-schema# 278 279 skos 280 http://www.w3.org/2004/02/skos/core# 281 282 ymaps 283 urn:yahoo:maps 284 285 $obj->add_namespace($prefix, $namespace) 286 287 Add a prefix and namespace URI to the list of known namespaces. 288 289 This method returns a string containing the prefix you should use for 290 the namespace URI passed. If the prefix passed to the method is already 291 reserved for another namespace the method will return the following 292 string: 293 294 "nfr_" + I<the prefix passed to the method> 295 296 $obj->namespace_prefix($uri) 297 298 Return the namespace prefix for *$uri* 299 300 $obj->uri_shortform($prefix,$name) 301 302 Returns a string in the form of *prefix*:*property*. The property is the 303 value of $name. The prefix passed may or may be the same as the prefix 304 returned depending on whether or not the user has defined or redefined 305 their own list of namespaces. 306 307 Unless this package is subclassed the prefix passed to the method is 308 assumed to be one of prefixes in the default list of namespaces. 309 310 $obj->api_call(\%args) 311 312 Valid args are : 313 314 * method 315 A string containing the name of the Flickr API method you are 316 calling. 317 318 * args 319 A hash ref containing the key value pairs you are passing to 320 *method* 321 322 If the method encounters any errors calling the API, receives an API 323 error or can not parse the response it will log an error event, via the 324 log method, and return undef. 325 326 Otherwise it will return a *XML::LibXML::Document* object (if 327 XML::LibXML is installed) or a *XML::XPath* object. 328 329 $obj->log() 330 331 Returns a *Log::Dispatch* object. 332 333 $obj->serialise_triples(\@triples,\*$fh) 334 335 Print *@triples* as RDF/XML to a filehandle (*$fh*). If no filehandle is 336 defined, prints to STDOUT. 337 338 $obj->serialize_triples(\@triples,\*$fh) 339 340 An alias for *serialise_triples* 341 342VERSION 343 2.2 344 345DATE 346 $Date: 2010/12/19 19:06:12 $ 347 348AUTHOR 349 Aaron Straup Cope <ascope@cpan.org> 350 351CONTRIBUTORS 352 Thomas Sibley <tsibley@cpan.org> 353 354EXAMPLES 355 CONFIG FILES 356 357 This is an example of a Config::Simple file used to collect RDF data 358 from Flickr 359 360 [flickr] 361 api_key=asd6234kjhdmbzcxi6e323 362 api_secret=s00p3rs3k3t 363 auth_token=123-omgwtf4u 364 365 RDF 366 367 This is an example of an RDF dump for a photograph backed up from Flickr 368 : 369 370 http://flickr.com/photos/straup/2269291707/ 371 372 <?xml version='1.0'?> 373 <rdf:RDF 374 xmlns:geoname="http://www.geonames.org/onto#" 375 xmlns:a="http://www.w3.org/2000/10/annotation-ns" 376 xmlns:filtr="http://www.machinetags.org/wiki/filtr#process" 377 xmlns:ph="http://www.machinetags.org/wiki/ph#camera" 378 xmlns:exif="http://nwalsh.com/rdf/exif#" 379 xmlns:mt="x-urn:flickr:machinetag:" 380 xmlns:exifi="http://nwalsh.com/rdf/exif-intrinsic#" 381 xmlns:geonames="http://www.machinetags.org/wiki/geonames#locality" 382 xmlns:dcterms="http://purl.org/dc/terms/" 383 xmlns:places="http://www.flickr.com/places/" 384 xmlns:dc="http://purl.org/dc/elements/1.1/" 385 xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" 386 xmlns:acl="http://www.w3.org/2001/02/acls#" 387 xmlns:skos="http://www.w3.org/2004/02/skos/core#" 388 xmlns:foaf="http://xmlns.com/foaf/0.1/" 389 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 390 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 391 xmlns:computer="x-urn:freebsd:" 392 xmlns:flickr="x-urn:flickr:" 393 > 394 395 <rdf:Description rdf:about="file:///home/asc/photos/2008/02/16/20080216-2269291707-ambient_pork_m.jpg"> 396 <dcterms:created>2008-02-17T10:36:02Z</dcterms:created> 397 <dc:creator rdf:resource="x-urn:no#asc"/> 398 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 399 </rdf:Description> 400 401 <flickr:photoset rdf:about="http://www.flickr.com/photos/35034348999@N01/sets/72157603613223494"> 402 <dc:description></dc:description> 403 <dc:title>Untitled Set #2008</dc:title> 404 <dc:creator rdf:resource="http://www.flickr.com/people/35034348999@N01"/> 405 </flickr:photoset> 406 407 <flickr:tag rdf:about="http://www.flickr.com/photos/35034348999@N01/tags/filtr:process=filtr"> 408 <skos:altLabel>filtr</skos:altLabel> 409 <dc:creator rdf:resource="http://www.flickr.com/people/35034348999@N01"/> 410 <skos:broader rdf:resource="http://www.flickr.com/photos/tags/filtr:process=filtr"/> 411 <skos:prefLabel rdf:resource="filtr:process=filtr"/> 412 </flickr:tag> 413 414 <dcterms:StillImage rdf:about="http://farm3.static.flickr.com/2326/2269291707_bc16eb038a.jpg"> 415 <dcterms:relation>Medium</dcterms:relation> 416 <exifi:height>375</exifi:height> 417 <exifi:width>500</exifi:width> 418 <dcterms:isVersionOf rdf:resource="http://farm3.static.flickr.com/2326/2269291707_2ec279037a_o.jpg"/> 419 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 420 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707#exif"/> 421 </dcterms:StillImage> 422 423 <flickr:place rdf:about="http://www.flickr.com/places/United+States/California/San+Francisco"> 424 <places:locality>San Francisco</places:locality> 425 <places:region>California</places:region> 426 <places:county>San Francisco</places:county> 427 <places:id>kH8dLOubBZRvX_YZ</places:id> 428 <places:country>United States</places:country> 429 <dc:isReferencedBy rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 430 </flickr:place> 431 432 <dcterms:StillImage rdf:about="http://farm3.static.flickr.com/2326/2269291707_2ec279037a_o.jpg"> 433 <dcterms:relation>Original</dcterms:relation> 434 <exifi:height>1944</exifi:height> 435 <exifi:width>2592</exifi:width> 436 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 437 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707#exif"/> 438 </dcterms:StillImage> 439 440 <flickr:tag rdf:about="http://www.flickr.com/photos/tags/cameraphone"> 441 <skos:prefLabel>cameraphone</skos:prefLabel> 442 </flickr:tag> 443 444 <flickr:tag rdf:about="http://www.flickr.com/photos/35034348999@N01/tags/filtr"> 445 <skos:prefLabel>filtr</skos:prefLabel> 446 <dc:creator rdf:resource="http://www.flickr.com/people/35034348999@N01"/> 447 <skos:broader rdf:resource="http://www.flickr.com/photos/tags/filtr"/> 448 </flickr:tag> 449 450 <rdf:Description rdf:about="x-urn:flickr:tag"> 451 <rdfs:subClassOf rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/> 452 </rdf:Description> 453 454 <rdf:Description rdf:about="x-urn:freebsd:user"> 455 <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Person"/> 456 </rdf:Description> 457 458 <flickr:tag rdf:about="http://www.flickr.com/photos/35034348999@N01/tags/sanfrancisco"> 459 <skos:prefLabel>sanfrancisco</skos:prefLabel> 460 <dc:creator rdf:resource="http://www.flickr.com/people/35034348999@N01"/> 461 <skos:broader rdf:resource="http://www.flickr.com/photos/tags/sanfrancisco"/> 462 </flickr:tag> 463 464 <flickr:tag rdf:about="http://www.flickr.com/photos/tags/sanfrancisco"> 465 <skos:prefLabel>sanfrancisco</skos:prefLabel> 466 </flickr:tag> 467 468 <flickr:user rdf:about="http://www.flickr.com/people/32373682187@N01"> 469 <foaf:mbox_sha1sum></foaf:mbox_sha1sum> 470 <foaf:name>heather powazek champ</foaf:name> 471 <foaf:nick>heather</foaf:nick> 472 </flickr:user> 473 474 <rdf:Description rdf:about="http://www.flickr.com/photos/35034348999@N01/2269291707#location"> 475 <skos:broader rdf:resource="http://ws.geonames.org/rdf?geonameId=5326012"/> 476 <skos:broader rdf:resource="http://www.flickr.com/places/United+States/California/San+Francisco"/> 477 </rdf:Description> 478 479 <dcterms:StillImage rdf:about="http://farm3.static.flickr.com/2326/2269291707_bc16eb038a_s.jpg"> 480 <dcterms:relation>Square</dcterms:relation> 481 <exifi:height>75</exifi:height> 482 <exifi:width>75</exifi:width> 483 <dcterms:isVersionOf rdf:resource="http://farm3.static.flickr.com/2326/2269291707_2ec279037a_o.jpg"/> 484 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 485 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707#exif"/> 486 </dcterms:StillImage> 487 488 <dcterms:StillImage rdf:about="http://farm3.static.flickr.com/2326/2269291707_bc16eb038a_t.jpg"> 489 <dcterms:relation>Thumbnail</dcterms:relation> 490 <exifi:height>75</exifi:height> 491 <exifi:width>100</exifi:width> 492 <dcterms:isVersionOf rdf:resource="http://farm3.static.flickr.com/2326/2269291707_2ec279037a_o.jpg"/> 493 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 494 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707#exif"/> 495 </dcterms:StillImage> 496 497 <rdf:Description rdf:about="http://www.flickr.com/photos/35034348999@N01/2269291707#exif"> 498 <exif:flash>Flash did not fire, auto mode</exif:flash> 499 <exif:digitalZoomRatio>100/100</exif:digitalZoomRatio> 500 <exif:isoSpeedRatings>100</exif:isoSpeedRatings> 501 <exif:pixelXDimension>2592</exif:pixelXDimension> 502 <exif:apertureValue>297/100</exif:apertureValue> 503 <exif:pixelYDimension>1944</exif:pixelYDimension> 504 <exif:focalLength>5.6 mm</exif:focalLength> 505 <exif:dateTimeDigitized>2008-02-16T14:22:32PST</exif:dateTimeDigitized> 506 <exif:colorSpace>sRGB</exif:colorSpace> 507 <exif:fNumber>f/2.8</exif:fNumber> 508 <exif:dateTimeOriginal>2008-02-16T14:22:32PST</exif:dateTimeOriginal> 509 <exif:shutterSpeedValue>7643/1000</exif:shutterSpeedValue> 510 <exif:exposureTime>0.005 sec (1/200)</exif:exposureTime> 511 </rdf:Description> 512 513 <flickr:tag rdf:about="http://www.flickr.com/photos/35034348999@N01/tags/cameraphone"> 514 <skos:prefLabel>cameraphone</skos:prefLabel> 515 <dc:creator rdf:resource="http://www.flickr.com/people/35034348999@N01"/> 516 <skos:broader rdf:resource="http://www.flickr.com/photos/tags/cameraphone"/> 517 </flickr:tag> 518 519 <flickr:user rdf:about="http://www.flickr.com/people/35034348999@N01"> 520 <foaf:mbox_sha1sum>b0571f7ec59c0b59e19a3f054f78d953cb32b071</foaf:mbox_sha1sum> 521 <foaf:name>Aaron Straup Cope</foaf:name> 522 <foaf:nick>straup</foaf:nick> 523 </flickr:user> 524 525 <rdf:Description rdf:about="x-urn:flickr:comment"> 526 <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/10/annotation-nsAnnotation"/> 527 </rdf:Description> 528 529 <dcterms:StillImage rdf:about="http://farm3.static.flickr.com/2326/2269291707_bc16eb038a_m.jpg"> 530 <dcterms:relation>Small</dcterms:relation> 531 <exifi:height>180</exifi:height> 532 <exifi:width>240</exifi:width> 533 <dcterms:isVersionOf rdf:resource="http://farm3.static.flickr.com/2326/2269291707_2ec279037a_o.jpg"/> 534 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 535 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707#exif"/> 536 </dcterms:StillImage> 537 538 <flickr:machinetag rdf:about="http://www.machinetags.org/wiki/filtr#process"> 539 <mt:predicate>process</mt:predicate> 540 <mt:namespace>filtr</mt:namespace> 541 <dc:isReferencedBy rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 542 </flickr:machinetag> 543 544 <rdf:Description rdf:about="x-urn:flickr:machinetag"> 545 <rdfs:subClassOf rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/> 546 </rdf:Description> 547 548 <flickr:machinetag rdf:about="http://www.machinetags.org/wiki/geonames#locality"> 549 <mt:predicate>locality</mt:predicate> 550 <mt:namespace>geonames</mt:namespace> 551 <dc:isReferencedBy rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 552 </flickr:machinetag> 553 554 <flickr:tag rdf:about="http://www.flickr.com/photos/tags/geonames:locality=5391959"> 555 <skos:altLabel>5391959</skos:altLabel> 556 <skos:broader rdf:resource="http://www.machinetags.org/wiki/geonames#locality"/> 557 <skos:prefLabel rdf:resource="geonames:locality=5391959"/> 558 </flickr:tag> 559 560 <rdf:Description rdf:about="file:///home/asc/photos/2008/02/16/20080216-2269291707-ambient_pork.jpg"> 561 <dcterms:created>2008-02-17T10:36:02Z</dcterms:created> 562 <dc:creator rdf:resource="x-urn:no#asc"/> 563 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 564 </rdf:Description> 565 566 <flickr:tag rdf:about="http://www.flickr.com/photos/tags/filtr:process=filtr"> 567 <skos:altLabel>filtr</skos:altLabel> 568 <skos:broader rdf:resource="http://www.machinetags.org/wiki/filtr#process"/> 569 <skos:prefLabel rdf:resource="filtr:process=filtr"/> 570 </flickr:tag> 571 572 <flickr:photo rdf:about="http://www.flickr.com/photos/35034348999@N01/2269291707"> 573 <filtr:process>filtr</filtr:process> 574 <acl:access>visbility</acl:access> 575 <dc:title>Ambient Pork</dc:title> 576 <ph:camera>n82</ph:camera> 577 <dc:rights>All rights reserved.</dc:rights> 578 <acl:accessor>public</acl:accessor> 579 <dc:description></dc:description> 580 <geonames:locality>5391959</geonames:locality> 581 <dc:created>2008-02-16T14:22:32-0800</dc:created> 582 <dc:dateSubmitted>2008-02-16T14:32:59-0800</dc:dateSubmitted> 583 <dc:creator rdf:resource="http://www.flickr.com/people/35034348999@N01"/> 584 <dc:subject rdf:resource="http://www.flickr.com/photos/35034348999@N01/tags/cameraphone"/> 585 <dc:subject rdf:resource="http://www.flickr.com/photos/35034348999@N01/tags/filtr:process=filtr"/> 586 <dc:subject rdf:resource="http://www.flickr.com/photos/35034348999@N01/tags/filtr"/> 587 <dc:subject rdf:resource="http://www.flickr.com/photos/35034348999@N01/tags/sanfrancisco"/> 588 <dc:subject rdf:resource="http://www.flickr.com/photos/35034348999@N01/tags/ph:camera=n82"/> 589 <dc:subject rdf:resource="http://www.flickr.com/photos/35034348999@N01/tags/geonames:locality=5391959"/> 590 <dcterms:isPartOf rdf:resource="http://www.flickr.com/photos/35034348999@N01/sets/72157603613223494"/> 591 <a:hasAnnotation rdf:resource="http://www.flickr.com/photos/straup/2269291707/#comment72157603921497994"/> 592 <geo:Point rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707#location"/> 593 </flickr:photo> 594 595 <computer:user rdf:about="x-urn:no#asc"> 596 <foaf:name>Aaron Straup Cope</foaf:name> 597 <foaf:nick>asc</foaf:nick> 598 </computer:user> 599 600 <rdf:Description rdf:about="#"> 601 <dcterms:hasVersion>2.1:1203244560</dcterms:hasVersion> 602 <dc:created>2008-02-17T02:36:00-0800</dc:created> 603 <dc:creator rdf:resource="http://search.cpan.org/dist/Net-Flickr-RDF-2.1"/> 604 <a:annotates rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 605 </rdf:Description> 606 607 <flickr:tag rdf:about="http://www.flickr.com/photos/tags/filtr"> 608 <skos:prefLabel>filtr</skos:prefLabel> 609 </flickr:tag> 610 611 <rdf:Description rdf:about="x-urn:flickr:user"> 612 <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Person"/> 613 </rdf:Description> 614 615 <rdf:Description rdf:about="http://www.flickr.com/places/kH8dLOubBZRvX_YZ"> 616 <rdfs:seeAlso rdf:resource="http://www.flickr.com/places/United+States/California/San+Francisco"/> 617 </rdf:Description> 618 619 <flickr:machinetag rdf:about="http://www.machinetags.org/wiki/ph#camera"> 620 <mt:predicate>camera</mt:predicate> 621 <mt:namespace>ph</mt:namespace> 622 <dc:isReferencedBy rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 623 </flickr:machinetag> 624 625 <flickr:comment rdf:about="http://www.flickr.com/photos/straup/2269291707/#comment72157603921497994"> 626 <dc:identifier>6065-2269291707-72157603921497994</dc:identifier> 627 <dc:created>2008-02-16T16:39:31</dc:created> 628 <a:body>best. title. ever.</a:body> 629 <dc:creator rdf:resource="http://www.flickr.com/people/32373682187@N01"/> 630 <a:annotates rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 631 </flickr:comment> 632 633 <flickr:tag rdf:about="http://www.flickr.com/photos/35034348999@N01/tags/geonames:locality=5391959"> 634 <skos:altLabel>5391959</skos:altLabel> 635 <dc:creator rdf:resource="http://www.flickr.com/people/35034348999@N01"/> 636 <skos:broader rdf:resource="http://www.flickr.com/photos/tags/geonames:locality=5391959"/> 637 <skos:prefLabel rdf:resource="geonames:locality=5391959"/> 638 </flickr:tag> 639 640 <flickr:tag rdf:about="http://www.flickr.com/photos/tags/ph:camera=n82"> 641 <skos:altLabel>n82</skos:altLabel> 642 <skos:broader rdf:resource="http://www.machinetags.org/wiki/ph#camera"/> 643 <skos:prefLabel rdf:resource="ph:camera=n82"/> 644 </flickr:tag> 645 646 <geoname:Feature rdf:about="http://ws.geonames.org/rdf?geonameId=5326012"> 647 <geoname:featureCode>PPLX</geoname:featureCode> 648 <geoname:countryCode>US</geoname:countryCode> 649 <geoname:regionCode>CA</geoname:regionCode> 650 <geoname:gtopo30>23</geoname:gtopo30> 651 <geoname:region>California</geoname:region> 652 <geoname:city>San Francisco County</geoname:city> 653 <dc:isReferencedBy rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 654 </geoname:Feature> 655 656 <flickr:tag rdf:about="http://www.flickr.com/photos/35034348999@N01/tags/ph:camera=n82"> 657 <skos:altLabel>n82</skos:altLabel> 658 <dc:creator rdf:resource="http://www.flickr.com/people/35034348999@N01"/> 659 <skos:broader rdf:resource="http://www.flickr.com/photos/tags/ph:camera=n82"/> 660 <skos:prefLabel rdf:resource="ph:camera=n82"/> 661 </flickr:tag> 662 663 <rdf:Description rdf:about="http://www.flickr.com/geo/United%20States/California/San%20Francisco/San%20Francisco"> 664 <rdfs:seeAlso rdf:resource="http://www.flickr.com/places/United+States/California/San+Francisco"/> 665 </rdf:Description> 666 667 <dcterms:StillImage rdf:about="http://farm3.static.flickr.com/2326/2269291707_bc16eb038a_b.jpg"> 668 <dcterms:relation>Large</dcterms:relation> 669 <exifi:height>768</exifi:height> 670 <exifi:width>1024</exifi:width> 671 <dcterms:isVersionOf rdf:resource="http://farm3.static.flickr.com/2326/2269291707_2ec279037a_o.jpg"/> 672 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 673 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707#exif"/> 674 </dcterms:StillImage> 675 676 <rdf:Description rdf:about="file:///home/asc/photos/2008/02/16/20080216-2269291707-ambient_pork_s.jpg"> 677 <dcterms:created>2008-02-17T10:36:02Z</dcterms:created> 678 <dc:creator rdf:resource="x-urn:no#asc"/> 679 <rdfs:seeAlso rdf:resource="http://www.flickr.com/photos/35034348999@N01/2269291707"/> 680 </rdf:Description> 681 682 </rdf:RDF> 683 684SEE ALSO 685 Net::Flickr::API 686 687 RDF::Simple 688 689TO DO 690 * Methods for describing more than just a photo; groups, tags, etc. 691 692 * Update bounding boxes to be relative to individual images 693 694 * Proper tests 695 696 Patches are welcome. 697 698BUGS 699 Please report all bugs via http://rt.cpan.org/ 700 701LICENSE 702 Copyright (c) 2005-2008 Aaron Straup Cope. All Rights Reserved. 703 704 This is free software. You may redistribute it and/or modify it under 705 the same terms as Perl itself. 706 707