Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.12.0/codemirror.css" />
  <style>
    body {font-family: sans-serif;}
    textarea {width: 100%;}
    h5 {margin: 0}
  .CodeMirror { height: auto; border: 1px solid #ddd; }
  .CodeMirror-scroll { max-height: 200px; }
  .CodeMirror pre { padding-left: 7px; line-height: 1.25; }
  </style>
</head>
<body>
  <h3>Meetup + @context</h3>
  <h5>My Custom Context</h5>
  <textarea id="context" rows="7"></textarea>
  
  <h5>Doc From Someone Else</h5>
  <textarea id="doc" rows="7"></textarea>
  
  <h5>Re-contextualized To Match My Terms</h5>
  <textarea id="output" rows="15"></textarea>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.12.0/codemirror.min.js"></script>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.12.0/mode/javascript/javascript.min.js"></script>
  <script src="//cdn.jsdelivr.net/g/es6-promise@1.0.0"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jsonld/0.3.15/jsonld.js"></script>
</body>
</html>
 
var $context = document.getElementById('context');
var $doc = document.getElementById('doc');
var $output = document.getElementById('output');
// my idiosyncratic @context
var context = {
  "@vocab": "http://schema.org/",
  "first_name": "givenName",
  "last_name": "familyName",
  "alias": "alternateName",
  "job_title": "jobTitle",
  "city": "addressLocality",
  "country": "addressCountry"
};
present($context, context);
// straight Schema.org terminology usage
var doc = {
  "link": "http://www.meetup.com/members/19524571",
  "name": "Benjamin Young",
  "country": "us",
  "bio": "aka BigBlueHat -=- Developer, Web, & Open Source Advocate, Invited Expert in the Annotation and Digital Publishing Working Groups at the W3C. Previously an inventor and evangelist for IBM's Cloudant, Couchbase, and also CTO at InnoVenture.",
  "city": "Greenville"
};
present($doc, doc);
var meetup_context = {
  "city": "http://schema.org/addressLocality",
  "country": "http://schema.org/addressCountry",
  "bio": "http://schema.org/description",
  "name": "http://schema.org/name"
};
// takes the input document and re-contextualizes it by matching mapped meaning
jsonld.compact(doc, context, {
    expandContext: meetup_context
  },
  function(err, compacted) {
    present($output, compacted);
  });
// this bit just renders pretty JSON textareas
function present($ta, value) {
  var cm_options = {
    lineNumbers: true,
    matchBrackets: true,
    autoCloseBrackets: true,
    mode: "application/ld+json",
    lineWrapping: true
  };
  $ta.value = JSON.stringify(value, null, 2);
  CodeMirror.fromTextArea($ta, cm_options);
}
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
BigBlueHatpro
0viewers