Weitere ähnliche Inhalte Mehr von Stuart Myles (20) Kürzlich hochgeladen (20) IPTC News in JSON Autumn 20132. 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" : "Evan"
Objects: written inside curly braces, may contain multiple NVPs
{"givenname" : "Evan", "familyname" : "Sandhaus"}
Arrays: Written inside square braces, may contain multiple objects
{"iptcdelegates":
{
"givenname":
{
"givenname":
{
"givenname":
}
]}
[
"Jayson", "familyname": “Lorenzen"},
"Jeremy", "familyname": "Brooks"},
"Evan", "familyname": "Sandhaus"
© 2013 IPTC (www.iptc.org)
All rights reserved
2
3. Remind Me: Why News in JSON?
Lightweight, easy to parse format
Increasingly popular alternative to / replacement for XML
Two principle use cases:
data interchange (e.g. APIs) with an emphasis on partial representation
data at rest (e.g. search engines like Elastic Search or MongoDB)
Not simply translating from any existing XML standard into JSON
Determine how to represent key properties and structures
Hand crafted, rather than mechanically translating from XML into JSON
Goal: comprehensive standard, lightweight instance documents
© 2013 IPTC (www.iptc.org)
All rights reserved
3
4. ninjs
News in JSON Activity
http://groups.yahoo.com/neo/groups/iptc-news-in-json-dev
http://www.flickr.com/photos/jondresner/5789254800/
http://www.flickr.com/photos/jondresner/5789254800/
7. ninjs Highlight #1
Descriptive Metadata
Same basic structure
but differing properties per type and preference
"place" : [{
"name" : "New York City",
"name@ru" : "Нью-Йорк",
"why" : "direct",
"how" : "extracted",
"rel" : "about",
"scheme" : "http://data.example.com/",
"code" : "N46020133052049607171"
}],
"subject" : [{
"name": "Data-Mining & Database Marketing",
"rel" : "about"}]
© 2013 IPTC (www.iptc.org)
All rights reserved
7
8. ninjs Highlight #2
Text Markup
Simpler text markup structures (body, description)
Before, they were multi-level structures
"body" : {
"text": "It was a case for a digital Sherlock
Holmes.",
"html": "<b>It was a case for a digital Sherlock
Holmes."}
Now, they are their own simple properties, with flexible descriptors
"body_text": "It was a case for a digital Sherlock
Holmes.",
"body_html": "<b>It was a case for a digital Sherlock
Holmes."}
© 2013 IPTC (www.iptc.org)
All rights reserved
8
9. ninjs Highlight #3
Associations and Representations
• ninjs is a JSON representation of a news item
• You can represent a complete item, with all properties
– For instance in an internal CMS like MongoDB
• Or you may want to convey key properties
– For instance as an API response
• The representationtype property indicates how complete
– Either “full” or “partial”
• Associations are themselves ninjs documents
– You may include complete or partial representations
© 2013 IPTC (www.iptc.org)
All rights reserved
9
10. Rendition Example
"renditions" : {
"main" : {
"href" : "http://example.org/photos/2/2643c588-dc8d-4923bebd-e3b904edbb3a-big.jpg",
"mimetype": "image/jpg",
"title" : "Mid Resolution",
"height" : 281,
"width" : 429
},
"small" : {
"href" : "http://example.org/photos/2/2643c588-dc8d-4923bebd-e3b904edbb3a-small.jpg",
"mimetype": "image/jpg",
"title" : "Low Resolution",
"height" : 117,
"width" : 179
}
}
© 2013 IPTC (www.iptc.org)
All rights reserved
10
11. Associations Example
"associations" : {
"mainpic" :
{
"uri" :
"http://ninjs.example.com/newsitems/20130709simpPh123",
"representationtype" : "partial",
"type" : "picture",
"byline" : "Paulo Santalucia",
"headline" : "Costa Concordia cruise ship",
"renditions" : {
"small" : {
"href" : "http://example.org/photos/2/2643c588-dc8d4923-bebd-e3b904edbb3a-small.jpg",
"height" : 117,
"width" : 179
}
}
}}
© 2013 IPTC (www.iptc.org)
All rights reserved
11
12. ninjs Resources
•
The ninjs development website is a trove of information http://dev.iptc.org/ninjs
•
ninjs JSON schema http://www.iptc.org/std/ninjs/ninjs-schema_1.0.json
– Uses JSON schema draft standard http://json-schema.org/
– Validation http://dev.iptc.org/ninjs-Validation-of-ninjs-Objects
•
ninjs examples
– Text http://dev.iptc.org/ninjs-Examples-1
– Photo http://dev.iptc.org/ninjs-Examples-2
– Multimedia http://dev.iptc.org/ninjs-Examples-3
•
Best practices and how to’s http://dev.iptc.org/ninjs-Best-Practices-and-How-Tos
•
ninjs github https://github.com/iptc/newsinjson
•
ninjs feedback forum http://dev.iptc.org/Forum-5
© 2013 IPTC (www.iptc.org)
All rights reserved
12
13. ninjs
MOTION – Standards Committee
MOTION (to the Standards Committee):
To approve ninjs version 1.0
as specified by
ninjs-schema_1.0-DRAFT.json
© 2013 IPTC (www.iptc.org)
All rights reserved
13
14. News in JSON Road Map
• Let’s start the experimental phase
– Try it out and give us feedback!
– http://dev.iptc.org/Forum-5
• You can also help by joining the News in JSON group
– iptc-news-in-json-dev@yahoogroups.com
• Progress report at the next meeting
© 2013 IPTC (www.iptc.org)
All rights reserved
14
15. Date and Place of Next Meeting
Istanbul, Turkey March, 2014
http://www.flickr.com/photos/47096398@N08/5864315469/
Thanks and Goodbye!
© 2013 IPTC (www.iptc.org)
All rights reserved
15