W3C

RDFa 1.1 meets JSON-LD in the Distiller…

I have blogged recently on the update of the RDFa 1.1 Distiller. I have just added a cool new feature. Up to today, the possible serializations were RDF/XML, Turtle, and N Triples. Although not yet final, I decided to add a JSON-LD serialization, too, in spite of the fact that JSON-LD is not yet final either (it is under development by a W3C Community Group). However, adding this to the system it shows the potentials of this combination…

An example may be the schema.org example I used in another blog lately:

<div vocab="http://schema.org/" typeof="Product">
  <img property="image" src="dell-30in-lcd.jpg" />
  <span property="name">Dell UltraSharp 30" LCD Monitor</span>

  <div property="aggregateRating" typeof="AggregateRating">
    <span property="ratingValue">87</span>
    out of <span property="bestRating">100</span>
    based on <span property="ratingCount">24</span> user ratings
  </div>

  <div property="offers" typeof="AggregateOffer">
	<span property="lowPrice">$1250</span>
	to <span property="highPrice">$1495</span>
	from <span property="offerCount">8</span> sellers
  </div>

  Sellers:
  <div property="offers" typeof="Offer" >
    <a property="url" href="save-a-lot-monitors.com/dell-30.html">
     Save A Lot Monitors - $1250</a>
  </div>
  
  <div property="offers" typeof="Offer">
    <a property="url" href="jondoe-gadgets.com/dell-30.html">
    Jon Doe's Gadgets - $1350</a>
  </div>
  ...
</div>     

Running this through the distiller, one gets the following JSON output:

{
    "@context": {
        "@vocab": "http://schema.org/",
        "@coerce": {
            "@iri": [
                "http://schema.org/image",
                "http://schema.org/offers",
                "http://schema.org/url",
                "http://schema.org/aggregateRating"
            ]
        }
    },
    "@type": "Product",
    "aggregateRating": {
        "@type": "AggregateRating",
        "ratingCount": "24",
        "ratingValue": "87",
        "bestRating": "100"
    },
    "offers": [
        {
            "@type": "Offer",
            "url": "http://www.example.org/save-a-lot-monitors.com/dell-30.html"
        },
        {
            "@type": "AggregateOffer",
            "lowPrice": "$1250",
            "highPrice": "$1495",
            "offerCount": "8"
        }
    ],
    "name": "Dell UltraSharp 30" LCD Monitor",
    "image": "http://www.example.org/dell-30in-lcd.jpg"
}

Of course, the generated JSON may be a bit more complex, e.g., if the original page contains other RDFa attributes generating other triples. But it still looks pretty readable to me…

About Ivan Herman

Ivan Herman is the leader of the Digital Publishing Activity at W3C. For more details, see http://www.w3.org/People/Ivan/