code: def schema_org(builder):
    # pylint: disable=line-too-long
    
    # pylint: enable=line-too-long
  
    properties = [
        (lambda x: x.name, SCHEMA_ORG_NAME),
        (lambda x: x.description, SCHEMA_ORG_DESC),
        (lambda x: x.name, SCHEMA_ORG_URL),
        (lambda x: (x.urls and x.urls[0]) or "", SCHEMA_ORG_SAMEAS)
    ]
  
    info = builder.info
    out_str = SCHEMA_ORG_PRE
    for extractor, template in properties:
      val = extractor(info)
      if val:
        # We are using cgi module instead of html due to Python 2 compatibility
        out_str += template.format(val=cgi.escape(val, quote=True).strip())
    out_str += SCHEMA_ORG_POST
  
    return out_str
docs: Builds schema.org microdata for DatasetSearch from DatasetBuilder.
  
    Markup spec: https://developers.google.com/search/docs/data-types/dataset#dataset
    Testing tool: https://search.google.com/structured-data/testing-tool
    For Google Dataset Search: https://toolbox.google.com/datasetsearch
  
    Microdata format was chosen over JSON-LD due to the fact that Markdown
    rendering engines remove all <script> tags.
  
    Args:
      builder: `tfds.core.DatasetBuilder`
  
    Returns:
      HTML string with microdata