{"id":20950399,"url":"https://github.com/atomgraph/rdf-post","last_synced_at":"2026-02-02T04:35:33.821Z","repository":{"id":147849239,"uuid":"275102936","full_name":"AtomGraph/RDF-POST","owner":"AtomGraph","description":"RDF/POST is a compact syntax for serialising an RDF graph inside a classic HTML forms","archived":false,"fork":false,"pushed_at":"2025-06-12T21:12:51.000Z","size":14,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-16T07:50:24.269Z","etag":null,"topics":["format","rdf","semantic-web","specification","syntax"],"latest_commit_sha":null,"homepage":"https://atomgraph.github.io/RDF-POST/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AtomGraph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-06-26T07:54:42.000Z","updated_at":"2025-06-12T21:19:23.000Z","dependencies_parsed_at":"2025-06-16T07:39:11.900Z","dependency_job_id":"a3c0e3e2-7746-4776-9063-ec98ac61940f","html_url":"https://github.com/AtomGraph/RDF-POST","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AtomGraph/RDF-POST","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AtomGraph%2FRDF-POST","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AtomGraph%2FRDF-POST/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AtomGraph%2FRDF-POST/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AtomGraph%2FRDF-POST/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AtomGraph","download_url":"https://codeload.github.com/AtomGraph/RDF-POST/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AtomGraph%2FRDF-POST/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29005236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T04:25:24.522Z","status":"ssl_error","status_checked_at":"2026-02-02T04:24:51.069Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["format","rdf","semantic-web","specification","syntax"],"created_at":"2024-11-19T00:48:19.139Z","updated_at":"2026-02-02T04:35:33.774Z","avatar_url":"https://github.com/AtomGraph.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# RDF/POST\n\n**[RDF/POST](https://atomgraph.github.io/RDF-POST/)** is a compact syntax for serialising an RDF graph inside a classic HTML `application/x-www-form-urlencoded` payload, so it works with *any* browser’s GET or POST mechanisms—no JavaScript required.\n\n## Why use it?\n\n* **Plain‑HTML forms** – build RDF edit and create interfaces with ordinary `\u003cform\u003e` elements—no JavaScript required.\n* **Language‑agnostic** – piggybacks on the ubiquitous `application/x-www-form-urlencoded` encoding that every web framework already understands.\n* **Streaming‑friendly** – triples arrive in a simple key/value stream, so parsers can handle very large graphs with constant memory.\n\n## TL;DR syntax\n\n| Part          | Key(s)                                                                                                                                       | Meaning                             |\n| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |\n| `rdf=`        | (first pair)                                                                                                                                 | marks the start of an RDF/POST body |\n| `\u0026v=`         | default namespace IRI                                                                                                                        |                                     |\n| `\u0026n=…\u0026v=`     | extra **n**amespace prefix + IRI                                                                                                             |                                     |\n| **Subject**   | `\u0026sb=` blank ‖ `\u0026su=` full IRI ‖ `\u0026sv=` suffix ‖ `\u0026sn=…\u0026sv=` prefixed suffix                                                                 |                                     |\n| **Predicate** | `\u0026pv=` suffix ‖ `\u0026pn=…\u0026pv=` prefixed suffix ‖ `\u0026pu=` full IRI                                                                                |                                     |\n| **Object**    | `\u0026ob=` blank ‖ `\u0026ou=` full IRI ‖ `\u0026ov=` suffix ‖ `\u0026on=…\u0026ov=` prefixed suffix ‖ `\u0026ol=` literal (plus optional `\u0026lt=` datatype \\| `\u0026ll=` lang) |                                     |\n\n*(See the [specification](https://atomgraph.github.io/RDF-POST/) for the full EBNF grammar.)*\n\n## Minimal example\n\n```html\n\u003cform action=\"/post\" method=\"post\"\u003e\n  \u003c!-- start --\u003e\n  \u003cinput type=\"hidden\" name=\"rdf\" value=\"\"\u003e\n  \u003c!-- namespaces --\u003e\n  \u003cinput type=\"hidden\" name=\"v\" value=\"http://xmlns.com/foaf/0.1/\"\u003e\n  \u003cinput type=\"hidden\" name=\"n\" value=\"dc\"\u003e\n  \u003cinput type=\"hidden\" name=\"v\" value=\"http://purl.org/dc/elements/1.1/\"\u003e\n  \u003c!-- triples --\u003e\n  \u003cinput type=\"hidden\" name=\"sb\" value=\"o\"\u003e\n  \u003cinput type=\"hidden\" name=\"pv\" value=\"givenName\"\u003e\n  \u003cinput type=\"text\"   name=\"ol\" value=\"Ora\"\u003e\n  …\n\u003c/form\u003e\n```\n\nWhen submitted, the browser sends a single line such as\n\n```\nrdf=\u0026v=http://xmlns.com/foaf/0.1/\u0026n=dc\u0026v=http://purl.org/dc/elements/1.1/\u0026sb=o\u0026pv=givenName\u0026ol=Ora …\n```\n\nwhich is equivalent to the Turtle below:\n\n```turtle\n_:o foaf:givenName \"Ora\" ;\n    dc:creator         _:b .\n```\n\n## Media type \u0026 file extension\n\n* Default: `application/x-www-form-urlencoded`\n* RDF‑specific (proposed): `application/rdf+x-www-form-urlencoded`\n* Recommended extension: `.rpo`\n\n## Implementations\n\n* [**RDFPostReader**](https://github.com/AtomGraph/Core/blob/master/src/main/java/com/atomgraph/core/riot/lang/RDFPostReader.java) – streaming parser for Apache Jena (AtomGraph Core)\n\n## Credits\n\nSpecification by **Sergei Egorov**, maintained by [**AtomGraph**](https://atomgraph.com/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomgraph%2Frdf-post","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatomgraph%2Frdf-post","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomgraph%2Frdf-post/lists"}