Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
News in JSONStuart Myles * Associated Press * 11th March 2013
News In JSON Activity News in JSON Activity   http://www.flickr.com/photos/jondresner/5789254800/      http://www.flickr.c...
News In JSON Activity              News in JSON Activity Determine the priority properties to be expressedBy examining G2,...
Remind Me: What is JSON?             JSON = JavaScript Object Notation http://json.org/Name / value pairs: a fieldname in ...
Things We Considered But                    Decided Against• Translating from an existing XML standard into JSON   – Not a...
News in JSON Properties• We reviewed existing sets of news properties including   –   NewsML-G2   –   NewsML 1   –   rNews...
Let’s draft a News in JSON white paper!           © 2010 IPTC (www.iptc.org)   All rights reserved   7
Representing Places in JSONGeographic metadata such as• Display Name: Brooklyn (NYC)• ID: http://id.example.org/5110302• C...
Two Ways to Represent PlacesApproach #1: The geonames wayhttp://api.geonames.org/getJSON?geonameId=5110302&username=kansan...
What We Learnt• Simpler JSON results in simpler code   – Avoid arrays if they will normally only contain a single object• ...
Some Useful Tools• http://jsonlint.com/   – helpful for finding syntax errors• http://jackson.codehaus.org/   – nice JSON ...
Subjects in JSON• Subjects   – People, companies, organizations, abstract concepts   – Keywords, categories• A single stru...
Subjects in JSON• A single structure leaves no room for error in selecting  the “bucket” to use to represent a given conce...
Text Markup in JSON• How to represent richly marked up text in JSON?• A sweet spot for document-oriented XML• Could be HTM...
Text Markup Options in JSON• Plain text, stripped of markup• Preserved but escaped markup   – HTML: https://gist.github.co...
What We Learnt• Both plain text (no markup) and escaped markup have  clear use cases   – Plain text can be useful for sear...
News in JSON Road Map• Evaluate more structures   – Such as links to binaries• Write a white paper on our initial recommen...
Date and Place of Next Meeting Paris 24 - 26 June, 2013      http://www.flickr.com/photos/anirudhkoul/3536413126/   Dank e...
Upcoming SlideShare
Loading in …5
×

IPTC News in JSON Spring 2013

1,321 views

Published on

  • Be the first to comment

IPTC News in JSON Spring 2013

  1. 1. News in JSONStuart Myles * Associated Press * 11th March 2013
  2. 2. News In JSON Activity News in JSON Activity http://www.flickr.com/photos/jondresner/5789254800/ http://www.flickr.com/photos/jondresner/5789254800/
  3. 3. News In JSON Activity News in JSON Activity Determine the priority properties to be expressedBy examining G2, rNews, NITF and existing implementations Created 2-3 candidate JSON representations Places Subjects Text markup Wrote experimental code to try out the candidate structures http://www.flickr.com/photos/jondresner/5789254800/ http://www.flickr.com/photos/jondresner/5789254800/
  4. 4. Remind Me: What is JSON? JSON = JavaScript Object Notation http://json.org/Name / value pairs: a fieldname in quotes, a colon, a value in quotes "givenname" : "Stuart" Objects: written inside curly braces, may contain multiple NVPs {"givenname" : "Stuart", "familyname" : "Myles"} Arrays: Written inside square braces, may contain multiple objects {"iptcdelegates": [ { "givenname": "Dave", "familyname": "Compton"}, { "givenname": "Stuart", "familyname": "Myles"}, { "givenname": "Robert", "familyname": "Schmidt-Nia" } ]} © 2013 IPTC (www.iptc.org) All rights reserved 4
  5. 5. Things We Considered But Decided Against• Translating from an existing XML standard into JSON – Not all IPTC standards are XML – Not all publishers use the same IPTC standards – Not all publishers use any IPTC standards• “Mechanically” translating from XML into JSON – There are many libraries that can do this – Different choices for how to represent certain XML features – So each technique results in a slightly different JSON – We felt that more a more “natural” JSON would be more valuable © 2010 IPTC (www.iptc.org) All rights reserved 5
  6. 6. News in JSON Properties• We reviewed existing sets of news properties including – NewsML-G2 – NewsML 1 – rNews – NITF• We selected a set of priority properties to represent• https://docs.google.com/spreadsheet/ccc?key=0AvnUbL xJqDwBdGxOQXdYeTRPM2k3WFhiNGRuMWR2M1E• We could add more later...• ...but we wanted to start somewhere © 2010 IPTC (www.iptc.org) All rights reserved 6
  7. 7. Let’s draft a News in JSON white paper! © 2010 IPTC (www.iptc.org) All rights reserved 7
  8. 8. Representing Places in JSONGeographic metadata such as• Display Name: Brooklyn (NYC)• ID: http://id.example.org/5110302• Centroid: 40.6501038, -73.9495823• Bounding Box: 40.453216826620995, -73.68930777156369, 40.846990773379, 1.0, -74.20985682843632• Hierarchy: Kings County > New York > NY > USA• Type: Second order administrative divisionSeveral non publishing JSON implementations, such as• GeoJSON http://www.geojson.org/• Geonames API http://www.geonames.org/export/JSON- webservices.html © 2010 IPTC (www.iptc.org) All rights reserved 8
  9. 9. Two Ways to Represent PlacesApproach #1: The geonames wayhttp://api.geonames.org/getJSON?geonameId=5110302&username=kansandhaus&format=jsonApproach #2: With a bit more structurehttps://gist.github.com/jays0n/5032774We wrote some code to test them outThe app selects a few fields and prints out the objects createdNote the different nesting that these caused when looking at the twoBO classes.http://tech.groups.yahoo.com/group/iptc-news-in-json-dev/files/jayson-json-geo-tests.tar.gz © 2010 IPTC (www.iptc.org) All rights reserved 9
  10. 10. What We Learnt• Simpler JSON results in simpler code – Avoid arrays if they will normally only contain a single object• Ensure property labels start with lower case letters – Some parsers (e.g. Jackson) assume this convention• The main conclusion: there wasn’t much to choose between the two styles in practice• Proposal: adopt the slightly more structured approach © 2010 IPTC (www.iptc.org) All rights reserved 10
  11. 11. Some Useful Tools• http://jsonlint.com/ – helpful for finding syntax errors• http://jackson.codehaus.org/ – nice JSON support in JAVA• http://goessner.net/articles/JsonPath/ – like XPATH for JSON © 2010 IPTC (www.iptc.org) All rights reserved 11
  12. 12. Subjects in JSON• Subjects – People, companies, organizations, abstract concepts – Keywords, categories• A single structure for all – Like NITF http://www.iptc.org/std/NITF/3.6/documentation/nitf-3- 6.html#Link19 – For example https://gist.github.com/kansandhaus/5049159• Each subject type has its own structure – For example https://gist.github.com/anonymous/5049220 © 2010 IPTC (www.iptc.org) All rights reserved 12
  13. 13. Subjects in JSON• A single structure leaves no room for error in selecting the “bucket” to use to represent a given concept• However, the code to access these anonymous buckets is much more complex• To select documents which are marked as having a location=San Francisco in MongoDB – mnc.queryDB("{"keywords" : {"$elemMatch" : {"type" : "location", "name" : "San Francisco (CA)"}}}"); – mnc.queryDB("{ locations.name: San Francisco (SF) }");• Proposal: Adopt the “specific buckets” structure © 2010 IPTC (www.iptc.org) All rights reserved 13
  14. 14. Text Markup in JSON• How to represent richly marked up text in JSON?• A sweet spot for document-oriented XML• Could be HTML, XHTML, NITF ...• We experiment with two existing text markup examples• NITF: http://www.iptc.org/std/NITF/3.2/examples/nitf- fishing.xml• HTML: http://dev.iptc.org/Implementation-Guide-HTML- 5-Microdata-in-IPTC-namespace © 2010 IPTC (www.iptc.org) All rights reserved 14
  15. 15. Text Markup Options in JSON• Plain text, stripped of markup• Preserved but escaped markup – HTML: https://gist.github.com/anonymous/4996653 – XML: https://gist.github.com/anonymous/4996676 – See http://stackoverflow.com/questions/993970/what-do-i-need- to-escape-in-my-html-json-response for a discussion of how to escape markup in JSON• Mechanically create JSON structures to mimic the original markup – We used JSONML as an example http://www.jsonml.org/ – NITF : https://gist.github.com/anonymous/4996697 – HTML: https://gist.github.com/anonymous/4996720 © 2010 IPTC (www.iptc.org) All rights reserved 15
  16. 16. What We Learnt• Both plain text (no markup) and escaped markup have clear use cases – Plain text can be useful for search, for example – Escaped markup works well for direct display on a webpage• Markup translated (like JSONML) works OK if you have a library to implement the rules – But what is the added benefit beyond just working directly with XML or HTML? – Who will write and maintain the libraries for ever language?• Proposal: Let providers use both plain and escaped text © 2010 IPTC (www.iptc.org) All rights reserved 16
  17. 17. News in JSON Road Map• Evaluate more structures – Such as links to binaries• Write a white paper on our initial recommendations – Publish and seek out feedback within IPTC and beyond• Create a News in JSON 1.0 recommendation – Present it for a vote at the Paris meeting – Consider an experimental phase• You can help by joining the News in JSON group – iptc-news-in-json-dev@yahoogroups.com © 2010 IPTC (www.iptc.org) All rights reserved 17
  18. 18. Date and Place of Next Meeting Paris 24 - 26 June, 2013 http://www.flickr.com/photos/anirudhkoul/3536413126/ Dank en tot ziens! © 2013 IPTC (www.iptc.org) All rights reserved 18

×