{"id":16244638,"url":"https://github.com/indexzero/node-schema-org","last_synced_at":"2025-07-30T14:37:21.242Z","repository":{"id":65493331,"uuid":"1864887","full_name":"indexzero/node-schema-org","owner":"indexzero","description":"A node.js library that retrieves, parses and provides all schemas from schema.org","archived":false,"fork":false,"pushed_at":"2013-01-18T06:49:49.000Z","size":416,"stargazers_count":108,"open_issues_count":3,"forks_count":18,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-10-18T21:04:39.293Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://github.com/indexzero/node-schema-org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/indexzero.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-06-08T11:23:01.000Z","updated_at":"2024-10-18T07:11:43.000Z","dependencies_parsed_at":"2023-01-26T02:31:47.634Z","dependency_job_id":null,"html_url":"https://github.com/indexzero/node-schema-org","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indexzero%2Fnode-schema-org","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indexzero%2Fnode-schema-org/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indexzero%2Fnode-schema-org/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indexzero%2Fnode-schema-org/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/indexzero","download_url":"https://codeload.github.com/indexzero/node-schema-org/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243814892,"owners_count":20352056,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T14:20:02.792Z","updated_at":"2025-03-16T12:32:52.849Z","avatar_url":"https://github.com/indexzero.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# node-schema-org\n\nA node.js library that retrieves, parses and provides all schemas from schema.org\n\n## Installation\n\n### Installing npm (node package manager)\n```\n  curl http://npmjs.org/install.sh | sh\n```\n\n### Installing node-schema-org\n```\n  [sudo] npm install schema-org\n```\n\n## Motivation\nAlthough there is some debate from the W3C et al right now, when I came across [schema.org][0] I thought: \"wow, what a gold mine of potential data formats to use in my applications.\" Then I looked at the site and thought: **\"Y U NO GIVE ME JSON FORMAT!?!?!\"** So I wrote this. It uses some other awesome node.js libraries:\n\n* [jsdom](http://github.com/tmpvar/jsdom): CommonJS implementation of the DOM intended to be platform independent and as minimal/light as possible while completely adhering to the w3c DOM specifications.\n* [neuron](http://github.com/indexzero/neuron): The simplest possible event driven job manager, FIFO queue, and \"task based cache\" in node.js\n* [optimist](http://github.com/substack/node-optimist): Light-weight option parsing for node.js\n* [request](http://github.com/mikeal/request): Simplified HTTP request client.\n* [winston](http://github.com/indexzero/winston): A multi-transport async logging library for node.js\n\n## Usage\nRight now, `node-schema-org` is implemented as a bin script which can be run after you install this module: \n\n``` bash\n  $ read-schema-org\n```\n\nHere is a sample of the output (all of the pre-parsed schemas are available [here](http://github.com/indexzero/node-schema-org/tree/master/schemas)): \n\n```\n  warn:   Removing all schemas in /path/to/node-schema-org/schemas\n  info:   Spawning: node /path/to/node-schema-org/list-schemas.js\n  info:   Contacting: http://schema.org/docs/full.html\n  info:   Parsing: http://schema.org/docs/full.html\n  info:   Reading: http://schema.org/docs/full.html\n  info:   Saving results to: /path/to/node-schema-org/schemas/schema-list.json\n  info:   Done creating /path/to/node-schema-org/schemas/schema-list.json from http://schema.org/docs/full.html\n  info:   node /path/to/node-schema-org/list-schemas.js has exited.\n  info:   Spawning: node /path/to/node-schema-org/read-schema.js --type DataType\n  info:   Spawning: node /path/to/node-schema-org/read-schema.js --type Boolean\n  info:   Spawning: node /path/to/node-schema-org/read-schema.js --type Date\n  (....)\n  info:   Parsing Type: Place\n  info:   Parsing Type: Organization\n  info:   Parsing Type: LocalBusiness\n  info:   Writing schema: /path/to/node-schema-org/schemas/localbusiness.json\n  info:   Done parsing schema: /path/to/node-schema-org/schemas/localbusiness.json\n  info:   node /path/to/node-schema-org/read-schema.js --type LocalBusiness has exited.\n  info:   \n  info:   Done parsing all schemas from schema.org\n  info:   They are located in: /path/to/node-schema-org/schemas\n  info:   \n```\n\n## Sample Schema \n\n``` js\n  {\n    \"type\": \"Place\",\n    \"bases\": {\n      \"Thing\": [\n        {\n          \"name\": \"description\",\n          \"description\": \"A short description of the item.\",\n          \"type\": \"Text\"\n        },\n        {\n          \"name\": \"image\",\n          \"description\": \"URL of an image of the item.\",\n          \"type\": \"URL\"\n        },\n        {\n          \"name\": \"name\",\n          \"description\": \"The name of the item.\",\n          \"type\": \"Text\"\n        },\n        {\n          \"name\": \"url\",\n          \"description\": \"URL of the item.\",\n          \"type\": \"Text\"\n        }\n      ]\n    },\n    \"properties\": [\n      {\n        \"name\": \"address\",\n        \"description\": \"Physical address of the item.\",\n        \"type\": \"PostalAddress\"\n      },\n      {\n        \"name\": \"aggregateRating\",\n        \"description\": \"The overall rating, based on a collection of reviews or ratings, of the item.\",\n        \"type\": \"AggregateRating\"\n      },\n      {\n        \"name\": \"containedIn\",\n        \"description\": \"The basic containment relation between places.\",\n        \"type\": \"Place\"\n      },\n      {\n        \"name\": \"events\",\n        \"description\": \"The events held at this place or organization.\",\n        \"type\": \"Event\"\n      },\n      {\n        \"name\": \"faxNumber\",\n        \"description\": \"The fax number.\",\n        \"type\": \"Text\"\n      },\n      {\n        \"name\": \"geo\",\n        \"description\": \"The geo coordinates of the place.\",\n        \"type\": \"GeoCoordinates\"\n      },\n      {\n        \"name\": \"interactionCount\",\n        \"description\": \"A count of a specific user interactions with this item—for example, 20 UserLikes, 5 UserComments, or 300 UserDownloads. The user interaction type should be one of the sub types of UserInteraction.\",\n        \"type\": \"Text\"\n      },\n      {\n        \"name\": \"maps\",\n        \"description\": \"A URL to a map of the place.\",\n        \"type\": \"Text\"\n      },\n      {\n        \"name\": \"photos\",\n        \"description\": \"Photographs of this place.\",\n        \"type\": [\n          \"Photograph\",\n          \"ImageObject\"\n        ]\n      },\n      {\n        \"name\": \"reviews\",\n        \"description\": \"Review of the item.\",\n        \"type\": \"Review\"\n      },\n      {\n        \"name\": \"telephone\",\n        \"description\": \"The telephone number.\",\n        \"type\": \"Text\"\n      }\n    ]\n  }\n```\n\n#### Author: [Charlie Robbins][0]\n#### License: MIT\n\n[0]: http://blog.nodejitsu.com","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findexzero%2Fnode-schema-org","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Findexzero%2Fnode-schema-org","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findexzero%2Fnode-schema-org/lists"}