Using multiple vocabularies and aliasing properties

I have an exisiting api returning json and would like the elements to schema.org<http://schema.org> vocabularies.
The json response would be a NewsArticle, but with some different vocabularies embedded.
I cannot rename the keys in the json response but need to point them to their schema.org<http://schema.org> terms

JSON from the api:
main type is http://schema.org/NewsArticle

{
"_id: 1416981240975,
«instagramHashtag" : "#tag", // http://schema.org/keywords

"factBox" : "..<html>…", // http://schema.org/articleBody and type http://schema.org/Article

"isPremium" : true, // http://schema.org/requiresSubscription and type http://schema.org/MediaObject

"vignette" : "….  ", // http://schema.org/articleSection

"overline" : "…",  // http://schema.org/alternativeHeadline

"byline" : "…",  // http://schema.org/author (in the examples on schema.org<http://schema.org> this is a string, but in the schema is says it should be one of Person or Organization. How do I do this property?)
"body" : " … <html> … ", // http://schema.org/articleBody

"leadtext" : "… <html> … ", http://schema.org/description (schema.org<http://schema.org> doesn’t have a good term for lead text
"title" : " … ", http://schema.org/name

}

My take on this would be:

{
"@context" : {
"schema" : "http://schema.org",
"_id" : "@id",
"instagramHashtag" : "schema:keywords",
"factBox" : {
"@id" : "http://schema.org/Article#articleBody",
"@type" : "rdf:HTML"
},
"isPremium" : "http://schema.org/MediaObject#requiresSubscription",
"vignette" : "schema:articleSection",
"overline" : "schema:alternativeHeadline",
"byline" : "schema:author",
"body" :  {
"@id" : "http://schema.org/Article#articleBody",
"@type" : "rdf:HTML"
},
"leadText" :  {
"@id" : "schema:description",
"@type" : "rdf:HTML"
},
"title" : "schema:name"
  }
"@type"   : "NewsArticle",
"_id" : 1416981240975,
"instagramHashtag" : "",
"factBox" : " ",
"isPremium" : true,
"vignette" : "",
"overline" : "",
"byline" : "",
"body" : "",
"leadtext" : "",
"title" : "",
}

Is this the correct way to do this?
Is there a better way of specifying additional vocabularies. This way of doing it requires that we split the strings on '#' to create itemtype and itemprops in html.

Received on Friday, 5 December 2014 09:36:39 UTC