You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@graphar.apache.org by gi...@apache.org on 2024/04/11 14:54:12 UTC
(incubator-graphar-website) branch asf-site updated: deploy: cb52cd091e226d6cd0a7159736ca84147eda7f46
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-graphar-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new da112cd deploy: cb52cd091e226d6cd0a7159736ca84147eda7f46
da112cd is described below
commit da112cdd79ed7fc33e80a3ca00be0bf5f90d5001
Author: acezen <ac...@users.noreply.github.com>
AuthorDate: Thu Apr 11 14:54:07 2024 +0000
deploy: cb52cd091e226d6cd0a7159736ca84147eda7f46
---
404.html | 6 +-
assets/js/01a85c17.914d8714.js | 1 -
assets/js/01a85c17.c33a4366.js | 1 +
assets/js/0dfa3e6b.68b6e916.js | 1 +
assets/js/0dfa3e6b.f5522fb2.js | 1 -
assets/js/1075.9a1879ad.js | 1 +
assets/js/118e913f.9686315d.js | 1 -
assets/js/118e913f.cac34060.js | 1 +
assets/js/1474b7d9.f35aa54f.js | 1 +
assets/js/14eb3368.059695ac.js | 1 +
assets/js/14eb3368.5e2bd62b.js | 1 -
assets/js/17896441.0c53a101.js | 1 +
assets/js/17896441.2136ee00.js | 1 -
assets/js/1a3a4196.aaddad19.js | 1 +
assets/js/1df93b7f.332784be.js | 1 +
assets/js/1df93b7f.c94b05ff.js | 1 -
assets/js/234bff05.0666f838.js | 1 -
assets/js/234bff05.0a6b38d1.js | 1 +
assets/js/275ba82a.64c9e72c.js | 1 +
assets/js/275ba82a.d3705599.js | 1 -
assets/js/306a8c6c.b2c5d211.js | 1 +
assets/js/306a8c6c.ed26aa3d.js | 1 -
assets/js/3554e821.cd02f3d1.js | 1 +
assets/js/3599.ebe95b78.js | 1 +
assets/js/3f2bc239.21d7a38e.js | 1 -
assets/js/3f2bc239.73a5ae52.js | 1 +
assets/js/508.b405ad8c.js | 1 -
assets/js/5508.aa8e351d.js | 1 +
assets/js/55161fd4.672c7ce9.js | 1 +
assets/js/5883e1dd.da57d3d1.js | 1 +
assets/js/599.8d337f4c.js | 1 -
assets/js/5e95c892.622fb1c1.js | 1 -
assets/js/5e95c892.721cae2f.js | 1 +
assets/js/623c881d.122f2fde.js | 1 -
assets/js/623c881d.56476729.js | 1 +
assets/js/63925da8.093e32ca.js | 1 -
assets/js/6875c492.032f5660.js | 1 -
assets/js/6875c492.f8f213e0.js | 1 +
assets/js/6a3c729f.88d82bf7.js | 1 -
assets/js/6a3c729f.ff8f5380.js | 1 +
assets/js/75.bbdab16b.js | 1 -
assets/js/76fa6b70.49680b61.js | 1 +
assets/js/7c6ed348.3d64b664.js | 1 +
assets/js/7d293e3a.a50e6fc5.js | 1 -
assets/js/7d293e3a.c3099bfc.js | 1 +
assets/js/80b1a6af.8aff8166.js | 1 -
assets/js/80b1a6af.aa7ea917.js | 1 +
assets/js/814f3328.7014b257.js | 1 -
assets/js/814f3328.93a589f5.js | 1 +
assets/js/82df09de.54682066.js | 1 +
assets/js/88ec7df7.4829f266.js | 1 +
assets/js/8aa30dd1.6b1e1e50.js | 1 +
assets/js/9355d619.c47c493c.js | 1 -
assets/js/9355d619.f79b9d78.js | 1 +
assets/js/935f2afb.08b56669.js | 1 -
assets/js/935f2afb.3b62712a.js | 1 +
assets/js/9cbf62ac.41bca462.js | 1 +
assets/js/9cbf62ac.c58ba006.js | 1 -
assets/js/9e4087bc.d6049e0e.js | 1 -
assets/js/9e4087bc.e952a175.js | 1 +
assets/js/a070aa7e.0ae8a7c9.js | 1 -
assets/js/a070aa7e.ca3f1379.js | 1 +
assets/js/a209574d.933d99d2.js | 1 -
assets/js/a209574d.b3c23989.js | 1 +
assets/js/a6aa9e1f.a35e67fa.js | 1 +
assets/js/a6aa9e1f.c542c302.js | 1 -
assets/js/a7023ddc.3e684af5.js | 1 -
assets/js/a7023ddc.e2a0822c.js | 1 +
assets/js/a7bd4aaa.8fb652e9.js | 1 -
assets/js/a7bd4aaa.b2b087c6.js | 1 +
assets/js/a94703ab.3bc77592.js | 1 +
assets/js/a94703ab.dea25cef.js | 1 -
assets/js/af2043ab.bd6d6e36.js | 1 -
assets/js/b2f554cd.02ba03f3.js | 1 +
assets/js/b2f554cd.5717b190.js | 1 -
assets/js/bf73a7a5.d18d8f02.js | 1 +
assets/js/c377a04b.766cf7eb.js | 1 +
assets/js/c377a04b.fa0d6113.js | 1 -
assets/js/c6f88384.301b82c6.js | 1 -
assets/js/c6f88384.90a230b0.js | 1 +
assets/js/c8c2b951.a9e9d29a.js | 1 -
assets/js/ccc49370.c6831ec1.js | 1 +
assets/js/ccc49370.e1541795.js | 1 -
assets/js/d0b360e7.f10f3f41.js | 1 +
assets/js/d5c2b4a2.0f01bb60.js | 1 -
assets/js/d942a963.3d95bd8c.js | 1 -
assets/js/d942a963.d6b6566d.js | 1 +
assets/js/dc3d043b.74ad6462.js | 1 +
assets/js/e6d0d7aa.dee3eae0.js | 1 +
assets/js/e94dfc49.511bed5d.js | 1 -
assets/js/e94dfc49.9916908d.js | 1 +
assets/js/e9c63600.8cd56f2a.js | 1 -
assets/js/e9c63600.ff9202a1.js | 1 +
assets/js/edc931f8.5fa7ebd5.js | 1 +
assets/js/edc931f8.9ca20f38.js | 1 -
assets/js/edeb92d6.f2fd1908.js | 1 +
assets/js/f5f78f72.50198d74.js | 1 -
assets/js/main.04a9358e.js | 2 -
assets/js/main.8987d6a5.js | 2 +
...js.LICENSE.txt => main.8987d6a5.js.LICENSE.txt} | 0
assets/js/runtime~main.7bfc5b47.js | 1 -
assets/js/runtime~main.be6fd345.js | 1 +
blog/archive/index.html | 6 +-
blog/demo-blog-post/index.html | 6 +-
blog/index.html | 6 +-
blog/tags/graphar/index.html | 6 +-
blog/tags/index.html | 6 +-
community/category/committers/index.html | 6 +-
community/category/reference/index.html | 6 +-
.../reference/generate_release_note/index.html | 8 +-
community/committers/release/index.html | 8 +-
community/index.html | 8 +-
docs/category/c-library/index.html | 22 +++
docs/category/examples/index.html | 22 +++
docs/category/libraries/index.html | 22 +++
docs/category/specification/index.html | 22 +++
docs/developers/contributing-guide/index.html | 22 ---
docs/developers/index.html | 22 ---
docs/images/edge_logical_table.png | Bin 0 -> 144242 bytes
docs/images/edge_physical_table1.png | Bin 0 -> 238446 bytes
docs/images/edge_physical_table2.png | Bin 0 -> 241361 bytes
docs/images/graphar-logo-notext.png | Bin 0 -> 46352 bytes
docs/images/graphar-logo.png | Bin 0 -> 68805 bytes
docs/images/graphar-logo.svg | 41 ++++++
docs/images/graphar.ico | Bin 0 -> 15086 bytes
docs/images/overview.png | Bin 0 -> 335789 bytes
docs/images/property_graph.png | Bin 0 -> 259586 bytes
docs/images/vertex_logical_table.png | Bin 0 -> 65894 bytes
docs/images/vertex_physical_table.png | Bin 0 -> 481498 bytes
docs/index.html | 20 ++-
docs/libraries/cpp/examples/bgl/index.html | 53 +++++++
docs/libraries/cpp/examples/graphscope/index.html | 73 ++++++++++
docs/libraries/cpp/examples/out-of-core/index.html | 119 ++++++++++++++++
.../cpp/examples/snap-to-graphar/index.html | 50 +++++++
docs/libraries/cpp/getting-started/index.html | 157 +++++++++++++++++++++
docs/libraries/cpp/index.html | 22 ---
docs/libraries/index.html | 22 ---
docs/libraries/java/how_to_develop_java/index.html | 69 +++++++++
docs/libraries/java/index.html | 123 ++++++++++++++++
docs/libraries/pyspark/how-to/index.html | 93 ++++++++++++
docs/libraries/pyspark/index.html | 89 ++++++++++++
docs/libraries/spark/examples/index.html | 74 ++++++++++
docs/libraries/spark/index.html | 94 ++++++++++++
docs/overview/concepts/index.html | 8 +-
docs/overview/index.html | 8 +-
docs/overview/motivation/index.html | 8 +-
docs/specification/format/index.html | 38 +++--
.../specification/implementation-status/index.html | 65 ++++-----
docs/specification/index.html | 23 ---
index.html | 6 +-
sitemap.xml | 2 +-
151 files changed, 1281 insertions(+), 282 deletions(-)
diff --git a/404.html b/404.html
index a898d8b..a1a08b1 100644
--- a/404.html
+++ b/404.html
@@ -5,11 +5,11 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Page Not Found | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/404.ht [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/assets/js/01a85c17.914d8714.js b/assets/js/01a85c17.914d8714.js
deleted file mode 100644
index 7b7ee84..0000000
--- a/assets/js/01a85c17.914d8714.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[13],{7971:(e,t,s)=>{s.d(t,{Z:()=>v});var a=s(959),i=s(6259),r=s(175),l=s(1462),n=s(2532),c=s(4547),o=s(8903),m=s(5555);function d(e){const{pathname:t}=(0,o.TH)();return(0,a.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,m.Mg)(e.permalink,t))}(e,t)))),[e,t])}const g={sidebar:"sidebar_J8yJ",sidebarItemTitle:"sidebarItemTitle_XZEK",sidebarItemList:"sidebarItemList_oD [...]
\ No newline at end of file
diff --git a/assets/js/01a85c17.c33a4366.js b/assets/js/01a85c17.c33a4366.js
new file mode 100644
index 0000000..765ebff
--- /dev/null
+++ b/assets/js/01a85c17.c33a4366.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[4013],{7971:(e,t,s)=>{s.d(t,{Z:()=>v});var a=s(959),i=s(6259),r=s(175),l=s(1462),n=s(2532),c=s(4547),o=s(8903),m=s(5555);function d(e){const{pathname:t}=(0,o.TH)();return(0,a.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,m.Mg)(e.permalink,t))}(e,t)))),[e,t])}const g={sidebar:"sidebar_J8yJ",sidebarItemTitle:"sidebarItemTitle_XZEK",sidebarItemList:"sidebarItemList_ [...]
\ No newline at end of file
diff --git a/assets/js/0dfa3e6b.68b6e916.js b/assets/js/0dfa3e6b.68b6e916.js
new file mode 100644
index 0000000..0d5c4f6
--- /dev/null
+++ b/assets/js/0dfa3e6b.68b6e916.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[7408],{3769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/0dfa3e6b.f5522fb2.js b/assets/js/0dfa3e6b.f5522fb2.js
deleted file mode 100644
index 08cbff4..0000000
--- a/assets/js/0dfa3e6b.f5522fb2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[408],{3769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/1075.9a1879ad.js b/assets/js/1075.9a1879ad.js
new file mode 100644
index 0000000..6f19564
--- /dev/null
+++ b/assets/js/1075.9a1879ad.js
@@ -0,0 +1 @@
+(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[1075],{3139:(e,t,n)=>{"use strict";n.d(t,{Z:()=>L});var s=n(959),o=n(1527);function a(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n)),c=n?.props.children;return{mdxAdmonitionTitle:c,rest:a.length>0?(0,o.jsx)(o.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e [...]
\ No newline at end of file
diff --git a/assets/js/118e913f.9686315d.js b/assets/js/118e913f.9686315d.js
deleted file mode 100644
index a992cd9..0000000
--- a/assets/js/118e913f.9686315d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[979],{5022:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var r=t(1527),s=t(395);const i={id:"concepts",title:"Concepts",sidebar_position:3},o=void 0,d={id:"overview/concepts",title:"Concepts",description:"Glossary of relevant concepts and terms.",source:"@site/docs/overview/concepts.md",sourceDirName:"overview",sl [...]
\ No newline at end of file
diff --git a/assets/js/118e913f.cac34060.js b/assets/js/118e913f.cac34060.js
new file mode 100644
index 0000000..c1794ab
--- /dev/null
+++ b/assets/js/118e913f.cac34060.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[7979],{5022:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>c});var r=t(1527),s=t(395);const o={id:"concepts",title:"Concepts",sidebar_position:3},i=void 0,d={id:"overview/concepts",title:"Concepts",description:"Glossary of relevant concepts and terms.",source:"@site/docs/overview/concepts.md",sourceDirName:"overview",s [...]
\ No newline at end of file
diff --git a/assets/js/1474b7d9.f35aa54f.js b/assets/js/1474b7d9.f35aa54f.js
new file mode 100644
index 0000000..70bb684
--- /dev/null
+++ b/assets/js/1474b7d9.f35aa54f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[9125],{2207:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>p,contentTitle:()=>o,default:()=>l,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var n=t(1527),r=t(395);const s={},o="Convert SNAP Datasets to GraphAr Format",i={id:"libraries/cpp/examples/snap-to-graphar",title:"Convert SNAP Datasets to GraphAr Format",description:"SNAP (Stanford Network Analysis",source:"@site/docs/libraries/cpp/examp [...]
\ No newline at end of file
diff --git a/assets/js/14eb3368.059695ac.js b/assets/js/14eb3368.059695ac.js
new file mode 100644
index 0000000..bf03341
--- /dev/null
+++ b/assets/js/14eb3368.059695ac.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[9817],{3162:(e,t,s)=>{s.d(t,{Z:()=>v});s(959);var n=s(6259),i=s(9065),a=s(4819),r=s(5555),c=s(2532),l=s(4547),o=s(8940),d=s(1527);function m(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c. [...]
\ No newline at end of file
diff --git a/assets/js/14eb3368.5e2bd62b.js b/assets/js/14eb3368.5e2bd62b.js
deleted file mode 100644
index 9ae2db1..0000000
--- a/assets/js/14eb3368.5e2bd62b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[817],{3162:(e,t,s)=>{s.d(t,{Z:()=>v});s(959);var n=s(6259),i=s(9065),a=s(4819),r=s(5555),c=s(2532),l=s(4547),o=s(8940),d=s(1527);function m(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.5 [...]
\ No newline at end of file
diff --git a/assets/js/17896441.0c53a101.js b/assets/js/17896441.0c53a101.js
new file mode 100644
index 0000000..7e951a9
--- /dev/null
+++ b/assets/js/17896441.0c53a101.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[7918],{3162:(e,t,n)=>{n.d(t,{Z:()=>x});n(959);var s=n(6259),a=n(9065),i=n(4819),l=n(5555),o=n(2532),r=n(4547),c=n(8940),d=n(1527);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c. [...]
\ No newline at end of file
diff --git a/assets/js/17896441.2136ee00.js b/assets/js/17896441.2136ee00.js
deleted file mode 100644
index bc621a2..0000000
--- a/assets/js/17896441.2136ee00.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[918],{3162:(e,t,n)=>{n.d(t,{Z:()=>x});n(959);var s=n(6259),a=n(9065),i=n(4819),l=n(5555),o=n(2532),r=n(4547),c=n(8940),d=n(1527);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.5 [...]
\ No newline at end of file
diff --git a/assets/js/1a3a4196.aaddad19.js b/assets/js/1a3a4196.aaddad19.js
new file mode 100644
index 0000000..56a6d18
--- /dev/null
+++ b/assets/js/1a3a4196.aaddad19.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[2317],{3738:(e,r,a)=>{a.r(r),a.d(r,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var t=a(1527),n=a(395);const i={id:"java",title:"Java Library",sidebar_position:2},o=void 0,s={id:"libraries/java/java",title:"Java Library",description:"Overview",source:"@site/docs/libraries/java/java.md",sourceDirName:"libraries/java",slug:"/libraries/ja [...]
\ No newline at end of file
diff --git a/assets/js/1df93b7f.332784be.js b/assets/js/1df93b7f.332784be.js
new file mode 100644
index 0000000..c3353d7
--- /dev/null
+++ b/assets/js/1df93b7f.332784be.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[3237],{6122:(e,t,n)=>{n.d(t,{Z:()=>l});var r,a=n(959);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}const l=e=>{let{title:t,titleId:n,...l}=e;return a.createElement("svg",s({xmlns:"http://www.w3.org/200 [...]
\ No newline at end of file
diff --git a/assets/js/1df93b7f.c94b05ff.js b/assets/js/1df93b7f.c94b05ff.js
deleted file mode 100644
index 624735f..0000000
--- a/assets/js/1df93b7f.c94b05ff.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[237],{6122:(e,t,n)=>{n.d(t,{Z:()=>l});var r,a=n(959);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}const l=e=>{let{title:t,titleId:n,...l}=e;return a.createElement("svg",s({xmlns:"http://www.w3.org/2000 [...]
\ No newline at end of file
diff --git a/assets/js/234bff05.0666f838.js b/assets/js/234bff05.0666f838.js
deleted file mode 100644
index 8bc48fe..0000000
--- a/assets/js/234bff05.0666f838.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[489],{8783:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/graphar","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/234bff05.0a6b38d1.js b/assets/js/234bff05.0a6b38d1.js
new file mode 100644
index 0000000..98f3af0
--- /dev/null
+++ b/assets/js/234bff05.0a6b38d1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[5489],{8783:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/graphar","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/275ba82a.64c9e72c.js b/assets/js/275ba82a.64c9e72c.js
new file mode 100644
index 0000000..8ff3774
--- /dev/null
+++ b/assets/js/275ba82a.64c9e72c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[3606],{2481:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"community"}')}}]);
\ No newline at end of file
diff --git a/assets/js/275ba82a.d3705599.js b/assets/js/275ba82a.d3705599.js
deleted file mode 100644
index 53a2982..0000000
--- a/assets/js/275ba82a.d3705599.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[606],{2481:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"community"}')}}]);
\ No newline at end of file
diff --git a/assets/js/306a8c6c.b2c5d211.js b/assets/js/306a8c6c.b2c5d211.js
new file mode 100644
index 0000000..0d198da
--- /dev/null
+++ b/assets/js/306a8c6c.b2c5d211.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[7616],{9479:e=>{e.exports=JSON.parse('{"pluginId":"community","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Community","href":"/community/","docId":"community","unlisted":false},{"type":"category","label":"Committers","collapsible":true,"collapsed":false [...]
\ No newline at end of file
diff --git a/assets/js/306a8c6c.ed26aa3d.js b/assets/js/306a8c6c.ed26aa3d.js
deleted file mode 100644
index 960720e..0000000
--- a/assets/js/306a8c6c.ed26aa3d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[616],{9479:e=>{e.exports=JSON.parse('{"pluginId":"community","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"category","label":"Committers","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Create a release (Work in Progress)","href":"/community/commi [...]
\ No newline at end of file
diff --git a/assets/js/3554e821.cd02f3d1.js b/assets/js/3554e821.cd02f3d1.js
new file mode 100644
index 0000000..1e1f391
--- /dev/null
+++ b/assets/js/3554e821.cd02f3d1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[6576],{9718:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>p,contentTitle:()=>t,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var a=r(1527),o=r(395);const s={id:"how-to",title:"How to use GraphAr PySpark package",sidebar_position:1},t=void 0,i={id:"libraries/pyspark/how-to",title:"How to use GraphAr PySpark package",description:"GraphAr PySpark",source:"@site/docs/libraries/pyspar [...]
\ No newline at end of file
diff --git a/assets/js/3599.ebe95b78.js b/assets/js/3599.ebe95b78.js
new file mode 100644
index 0000000..510bdf0
--- /dev/null
+++ b/assets/js/3599.ebe95b78.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[3599],{7971:(e,t,s)=>{s.d(t,{Z:()=>f});var r=s(959),a=s(6259),n=s(175),l=s(1462),i=s(2532),o=s(4547),c=s(8903),m=s(5555);function d(e){const{pathname:t}=(0,c.TH)();return(0,r.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,m.Mg)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_J8yJ",sidebarItemTitle:"sidebarItemTitle_XZEK",sidebarItemList:"sidebarItemList_ [...]
\ No newline at end of file
diff --git a/assets/js/3f2bc239.21d7a38e.js b/assets/js/3f2bc239.21d7a38e.js
deleted file mode 100644
index deb5288..0000000
--- a/assets/js/3f2bc239.21d7a38e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[263],{7389:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var s=r(1527),t=r(395);const i={title:"Create a release (Work in Progress)",sidebar_position:1},a=void 0,o={id:"committers/release",title:"Create a release (Work in Progress)",description:"This document mainly introduces how the release manager",source:"@sit [...]
\ No newline at end of file
diff --git a/assets/js/3f2bc239.73a5ae52.js b/assets/js/3f2bc239.73a5ae52.js
new file mode 100644
index 0000000..98bfd77
--- /dev/null
+++ b/assets/js/3f2bc239.73a5ae52.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[4263],{7389:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var s=r(1527),t=r(395);const i={title:"Create a release (Work in Progress)",sidebar_position:1},a=void 0,o={id:"committers/release",title:"Create a release (Work in Progress)",description:"This document mainly introduces how the release manager",source:"@si [...]
\ No newline at end of file
diff --git a/assets/js/508.b405ad8c.js b/assets/js/508.b405ad8c.js
deleted file mode 100644
index cf94edd..0000000
--- a/assets/js/508.b405ad8c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[508],{1490:(e,t,i)=>{i.d(t,{Z:()=>r});i(959);var n=i(6259),a=i(4547),s=i(49),o=i(1527);function r(e){let{className:t}=e;return(0,o.jsx)("main",{className:(0,n.Z)("container margin-vert--xl",t),children:(0,o.jsx)("div",{className:"row",children:(0,o.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,o.jsx)(s.Z,{as:"h1",className:"hero__title",children:(0,o.jsx)(a.Z,{id:" [...]
\ No newline at end of file
diff --git a/assets/js/5508.aa8e351d.js b/assets/js/5508.aa8e351d.js
new file mode 100644
index 0000000..77f01b4
--- /dev/null
+++ b/assets/js/5508.aa8e351d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[5508],{1490:(e,t,i)=>{i.d(t,{Z:()=>r});i(959);var n=i(6259),a=i(4547),s=i(49),o=i(1527);function r(e){let{className:t}=e;return(0,o.jsx)("main",{className:(0,n.Z)("container margin-vert--xl",t),children:(0,o.jsx)("div",{className:"row",children:(0,o.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,o.jsx)(s.Z,{as:"h1",className:"hero__title",children:(0,o.jsx)(a.Z,{id: [...]
\ No newline at end of file
diff --git a/assets/js/55161fd4.672c7ce9.js b/assets/js/55161fd4.672c7ce9.js
new file mode 100644
index 0000000..60b2fdc
--- /dev/null
+++ b/assets/js/55161fd4.672c7ce9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[6005],{6194:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var n=r(1527),a=r(395);const o={},i="Co-Work with BGL",s={id:"libraries/cpp/examples/bgl",title:"Co-Work with BGL",description:"The [Boost Graph Library",source:"@site/docs/libraries/cpp/examples/bgl.md",sourceDirName:"libraries/cpp/examples",slug:"/librari [...]
\ No newline at end of file
diff --git a/assets/js/5883e1dd.da57d3d1.js b/assets/js/5883e1dd.da57d3d1.js
new file mode 100644
index 0000000..1484500
--- /dev/null
+++ b/assets/js/5883e1dd.da57d3d1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[9224],{4667:e=>{e.exports=JSON.parse('{"title":"Libraries","slug":"/category/libraries","permalink":"/docs/category/libraries","navigation":{"previous":{"title":"Implementation Status","permalink":"/docs/specification/implementation-status"},"next":{"title":"C++ Library","permalink":"/docs/category/c-library"}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/599.8d337f4c.js b/assets/js/599.8d337f4c.js
deleted file mode 100644
index 0183338..0000000
--- a/assets/js/599.8d337f4c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[599],{7971:(e,t,s)=>{s.d(t,{Z:()=>f});var r=s(959),a=s(6259),n=s(175),l=s(1462),i=s(2532),o=s(4547),c=s(8903),m=s(5555);function d(e){const{pathname:t}=(0,c.TH)();return(0,r.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,m.Mg)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_J8yJ",sidebarItemTitle:"sidebarItemTitle_XZEK",sidebarItemList:"sidebarItemList_o [...]
\ No newline at end of file
diff --git a/assets/js/5e95c892.622fb1c1.js b/assets/js/5e95c892.622fb1c1.js
deleted file mode 100644
index 47c48c4..0000000
--- a/assets/js/5e95c892.622fb1c1.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[661],{6317:(e,a,s)=>{s.r(a),s.d(a,{default:()=>h});s(959);var t=s(6259),r=s(9138),c=s(9065),p=s(3797),u=s(175),l=s(1527);function h(e){return(0,l.jsx)(r.FG,{className:(0,t.Z)(c.k.wrapper.docsPages),children:(0,l.jsx)(u.Z,{children:(0,p.H)(e.route.routes)})})}}}]);
\ No newline at end of file
diff --git a/assets/js/5e95c892.721cae2f.js b/assets/js/5e95c892.721cae2f.js
new file mode 100644
index 0000000..75df8fd
--- /dev/null
+++ b/assets/js/5e95c892.721cae2f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[9661],{6317:(e,a,s)=>{s.r(a),s.d(a,{default:()=>h});s(959);var t=s(6259),r=s(9138),c=s(9065),p=s(3797),u=s(175),l=s(1527);function h(e){return(0,l.jsx)(r.FG,{className:(0,t.Z)(c.k.wrapper.docsPages),children:(0,l.jsx)(u.Z,{children:(0,p.H)(e.route.routes)})})}}}]);
\ No newline at end of file
diff --git a/assets/js/623c881d.122f2fde.js b/assets/js/623c881d.122f2fde.js
deleted file mode 100644
index 1dd0356..0000000
--- a/assets/js/623c881d.122f2fde.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[774],{5166:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>n,metadata:()=>c,toc:()=>p});var a=o(1527),r=o(395);const n={slug:"demo-blog-post",title:"Welcome to GraphAr",authors:["acezen"],tags:["graphar"]},s=void 0,c={permalink:"/blog/demo-blog-post",editUrl:"https://github.com/apache/incubator-graphar-website/tree/main/blog/2024-04-08-demo-blo [...]
\ No newline at end of file
diff --git a/assets/js/623c881d.56476729.js b/assets/js/623c881d.56476729.js
new file mode 100644
index 0000000..2b29bb0
--- /dev/null
+++ b/assets/js/623c881d.56476729.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[3774],{5166:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>c,toc:()=>p});var a=o(1527),n=o(395);const r={slug:"demo-blog-post",title:"Welcome to GraphAr",authors:["acezen"],tags:["graphar"]},s=void 0,c={permalink:"/blog/demo-blog-post",editUrl:"https://github.com/apache/incubator-graphar-website/edit/main/blog/2024-04-08-demo-bl [...]
\ No newline at end of file
diff --git a/assets/js/63925da8.093e32ca.js b/assets/js/63925da8.093e32ca.js
deleted file mode 100644
index a5417cf..0000000
--- a/assets/js/63925da8.093e32ca.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[822],{9237:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>l,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var o=n(1527),r=n(395);const i={id:"developers",title:"Developer Guide",sidebar_position:4},s=void 0,a={id:"developers/developers",title:"Developer Guide",description:"",source:"@site/docs/developers/index.md",sourceDirName:"developers",slug:"/developers/",p [...]
\ No newline at end of file
diff --git a/assets/js/6875c492.032f5660.js b/assets/js/6875c492.032f5660.js
deleted file mode 100644
index 138a234..0000000
--- a/assets/js/6875c492.032f5660.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[610],{2834:(e,t,n)=>{n.d(t,{Z:()=>l});n(959);var s=n(4547),a=n(945),i=n(1527);function l(e){const{metadata:t}=e,{previousPage:n,nextPage:l}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(a.Z,{permalink:n [...]
\ No newline at end of file
diff --git a/assets/js/6875c492.f8f213e0.js b/assets/js/6875c492.f8f213e0.js
new file mode 100644
index 0000000..0e831ce
--- /dev/null
+++ b/assets/js/6875c492.f8f213e0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[8610],{2834:(e,t,n)=>{n.d(t,{Z:()=>l});n(959);var s=n(4547),a=n(945),i=n(1527);function l(e){const{metadata:t}=e,{previousPage:n,nextPage:l}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(a.Z,{permalink: [...]
\ No newline at end of file
diff --git a/assets/js/6a3c729f.88d82bf7.js b/assets/js/6a3c729f.88d82bf7.js
deleted file mode 100644
index cbba752..0000000
--- a/assets/js/6a3c729f.88d82bf7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[571],{856:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>h});var n=i(1527),a=i(395);const r={id:"format",title:"Format Specification",sidebar_position:1},s=void 0,o={id:"specification/format",title:"Format Specification",description:"Property Graph",source:"@site/docs/specification/format.md",sourceDirName:"specificati [...]
\ No newline at end of file
diff --git a/assets/js/6a3c729f.ff8f5380.js b/assets/js/6a3c729f.ff8f5380.js
new file mode 100644
index 0000000..1edb317
--- /dev/null
+++ b/assets/js/6a3c729f.ff8f5380.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[8571],{856:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>h});var n=i(1527),a=i(395);const r={title:"Format Specification",sidebar_position:1},s=void 0,o={id:"specification/format",title:"Format Specification",description:"Property Graph",source:"@site/docs/specification/format.md",sourceDirName:"specification",slug:"/ [...]
\ No newline at end of file
diff --git a/assets/js/75.bbdab16b.js b/assets/js/75.bbdab16b.js
deleted file mode 100644
index cf59ece..0000000
--- a/assets/js/75.bbdab16b.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[75],{3139:(e,t,n)=>{"use strict";n.d(t,{Z:()=>L});var s=n(959),o=n(1527);function a(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n)),c=n?.props.children;return{mdxAdmonitionTitle:c,rest:a.length>0?(0,o.jsx)(o.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e,. [...]
\ No newline at end of file
diff --git a/assets/js/76fa6b70.49680b61.js b/assets/js/76fa6b70.49680b61.js
new file mode 100644
index 0000000..4acab1d
--- /dev/null
+++ b/assets/js/76fa6b70.49680b61.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[3293],{7601:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>h});var r=n(1527),a=n(395);const i={id:"getting-started",title:"Getting Started",sidebar_position:1},s="Getting Started",o={id:"libraries/cpp/getting-started",title:"Getting Started",description:"This article is a quick guide that explains how to work with Grap [...]
\ No newline at end of file
diff --git a/assets/js/7c6ed348.3d64b664.js b/assets/js/7c6ed348.3d64b664.js
new file mode 100644
index 0000000..ab13b15
--- /dev/null
+++ b/assets/js/7c6ed348.3d64b664.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[4846],{7501:(e,r,a)=>{a.r(r),a.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>d});var t=a(1527),n=a(395);const s={id:"spark",title:"Spark Library",sidebar_position:3},i=void 0,o={id:"libraries/spark/spark",title:"Spark Library",description:"Overview",source:"@site/docs/libraries/spark/spark.md",sourceDirName:"libraries/spark",slug:"/libr [...]
\ No newline at end of file
diff --git a/assets/js/7d293e3a.a50e6fc5.js b/assets/js/7d293e3a.a50e6fc5.js
deleted file mode 100644
index 91fa171..0000000
--- a/assets/js/7d293e3a.a50e6fc5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[490],{6666:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(1527),s=n(395);const o={title:"Generate release note"},a=void 0,c={id:"committers/reference/generate_release_note",title:"Generate release note",description:"This document describes how to generate release notes using GitHub:",source:"@site/community [...]
\ No newline at end of file
diff --git a/assets/js/7d293e3a.c3099bfc.js b/assets/js/7d293e3a.c3099bfc.js
new file mode 100644
index 0000000..1199ec9
--- /dev/null
+++ b/assets/js/7d293e3a.c3099bfc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[5490],{6666:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(1527),s=n(395);const o={title:"Generate release note"},a=void 0,c={id:"committers/reference/generate_release_note",title:"Generate release note",description:"This document describes how to generate release notes using GitHub:",source:"@site/communit [...]
\ No newline at end of file
diff --git a/assets/js/80b1a6af.8aff8166.js b/assets/js/80b1a6af.8aff8166.js
deleted file mode 100644
index ef7ed48..0000000
--- a/assets/js/80b1a6af.8aff8166.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[524],{4469:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/80b1a6af.aa7ea917.js b/assets/js/80b1a6af.aa7ea917.js
new file mode 100644
index 0000000..ad2832f
--- /dev/null
+++ b/assets/js/80b1a6af.aa7ea917.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[6524],{4469:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/814f3328.7014b257.js b/assets/js/814f3328.7014b257.js
deleted file mode 100644
index 25ebce9..0000000
--- a/assets/js/814f3328.7014b257.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[535],{5641:e=>{e.exports=JSON.parse('{"title":"All our posts","items":[{"title":"Welcome to GraphAr","permalink":"/blog/demo-blog-post","unlisted":false}]}')}}]);
\ No newline at end of file
diff --git a/assets/js/814f3328.93a589f5.js b/assets/js/814f3328.93a589f5.js
new file mode 100644
index 0000000..a8dd0a7
--- /dev/null
+++ b/assets/js/814f3328.93a589f5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[2535],{5641:e=>{e.exports=JSON.parse('{"title":"All our posts","items":[{"title":"Welcome to GraphAr","permalink":"/blog/demo-blog-post","unlisted":false}]}')}}]);
\ No newline at end of file
diff --git a/assets/js/82df09de.54682066.js b/assets/js/82df09de.54682066.js
new file mode 100644
index 0000000..dbd4783
--- /dev/null
+++ b/assets/js/82df09de.54682066.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[3843],{9219:e=>{e.exports=JSON.parse('{"title":"C++ Library","slug":"/category/c-library","permalink":"/docs/category/c-library","navigation":{"previous":{"title":"Libraries","permalink":"/docs/category/libraries"},"next":{"title":"Getting Started","permalink":"/docs/libraries/cpp/getting-started"}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/88ec7df7.4829f266.js b/assets/js/88ec7df7.4829f266.js
new file mode 100644
index 0000000..4fbf35d
--- /dev/null
+++ b/assets/js/88ec7df7.4829f266.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[6729],{1486:(e,a,r)=>{r.r(a),r.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>t,metadata:()=>s,toc:()=>c});var n=r(1527),i=r(395);const t={id:"how_to_develop_java",title:"How to Develop Java Library",sidebar_position:1},o=void 0,s={id:"libraries/java/how_to_develop_java",title:"How to Develop Java Library",description:"Introduction",source:"@site/docs/libraries/ [...]
\ No newline at end of file
diff --git a/assets/js/8aa30dd1.6b1e1e50.js b/assets/js/8aa30dd1.6b1e1e50.js
new file mode 100644
index 0000000..656598f
--- /dev/null
+++ b/assets/js/8aa30dd1.6b1e1e50.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[7299],{2553:(e,a,r)=>{r.r(a),r.d(a,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>h});var t=r(1527),n=r(395);const o={id:"examples",title:"Examples",sidebar_position:1},i=void 0,s={id:"libraries/spark/examples",title:"Examples",description:"Co-Work with Apache Spark",source:"@site/docs/libraries/spark/examples.md",sourceDirName:"libraries/sp [...]
\ No newline at end of file
diff --git a/assets/js/9355d619.c47c493c.js b/assets/js/9355d619.c47c493c.js
deleted file mode 100644
index 3ef8ea5..0000000
--- a/assets/js/9355d619.c47c493c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[197],{6082:e=>{e.exports=JSON.parse('{"title":"Reference","slug":"/category/reference","permalink":"/community/category/reference","navigation":{"previous":{"title":"Create a release (Work in Progress)","permalink":"/community/committers/release"},"next":{"title":"Generate release note","permalink":"/community/committers/reference/generate_release_note"}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/9355d619.f79b9d78.js b/assets/js/9355d619.f79b9d78.js
new file mode 100644
index 0000000..e3ba69c
--- /dev/null
+++ b/assets/js/9355d619.f79b9d78.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[4197],{6082:e=>{e.exports=JSON.parse('{"title":"Reference","slug":"/category/reference","permalink":"/community/category/reference","navigation":{"previous":{"title":"Create a release (Work in Progress)","permalink":"/community/committers/release"},"next":{"title":"Generate release note","permalink":"/community/committers/reference/generate_release_note"}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/935f2afb.08b56669.js b/assets/js/935f2afb.08b56669.js
deleted file mode 100644
index be23fac..0000000
--- a/assets/js/935f2afb.08b56669.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"documentation":[{"type":"link","label":"Documentation","href":"/docs/","docId":"documentation","unlisted":false},{"type":"category","label":"Overview","collapsible":true,"collapsed" [...]
\ No newline at end of file
diff --git a/assets/js/935f2afb.3b62712a.js b/assets/js/935f2afb.3b62712a.js
new file mode 100644
index 0000000..0e07d83
--- /dev/null
+++ b/assets/js/935f2afb.3b62712a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"documentation":[{"type":"link","label":"Documentation","href":"/docs/","docId":"documentation","unlisted":false},{"type":"category","label":"Overview","collapsible":true,"collapsed" [...]
\ No newline at end of file
diff --git a/assets/js/9cbf62ac.41bca462.js b/assets/js/9cbf62ac.41bca462.js
new file mode 100644
index 0000000..d0bae9c
--- /dev/null
+++ b/assets/js/9cbf62ac.41bca462.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[3147],{2851:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var a=o(1527),n=o(395);const i={id:"motivation",title:"Motivation",sidebar_position:2},r=void 0,s={id:"overview/motivation",title:"Motivation",description:"Numerous graph systems,",source:"@site/docs/overview/motivation.md",sourceDirName:"overview",slug:"/o [...]
\ No newline at end of file
diff --git a/assets/js/9cbf62ac.c58ba006.js b/assets/js/9cbf62ac.c58ba006.js
deleted file mode 100644
index ca890cf..0000000
--- a/assets/js/9cbf62ac.c58ba006.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[147],{2851:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var a=o(1527),n=o(395);const r={id:"motivation",title:"Motivation",sidebar_position:2},s=void 0,i={id:"overview/motivation",title:"Motivation",description:"Numerous graph systems,",source:"@site/docs/overview/motivation.md",sourceDirName:"overview",slug:"/ov [...]
\ No newline at end of file
diff --git a/assets/js/9e4087bc.d6049e0e.js b/assets/js/9e4087bc.d6049e0e.js
deleted file mode 100644
index 4c11d3a..0000000
--- a/assets/js/9e4087bc.d6049e0e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[608],{4239:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});a(959);var s=a(2532),r=a(4547),i=a(9138),c=a(175),l=a(49),n=a(1527);function h(e){let{year:t,posts:a}=e;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(l.Z,{as:"h3",id:t,children:t}),(0,n.jsx)("ul",{children:a.map((e=>(0,n.jsx)("li",{children:(0,n.jsxs)(s.Z,{to:e.metadata.permalink,children:[e.metadata.formattedDate," - ",e.metada [...]
\ No newline at end of file
diff --git a/assets/js/9e4087bc.e952a175.js b/assets/js/9e4087bc.e952a175.js
new file mode 100644
index 0000000..be1883c
--- /dev/null
+++ b/assets/js/9e4087bc.e952a175.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[3608],{4239:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});a(959);var s=a(2532),r=a(4547),i=a(9138),c=a(175),l=a(49),n=a(1527);function h(e){let{year:t,posts:a}=e;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(l.Z,{as:"h3",id:t,children:t}),(0,n.jsx)("ul",{children:a.map((e=>(0,n.jsx)("li",{children:(0,n.jsxs)(s.Z,{to:e.metadata.permalink,children:[e.metadata.formattedDate," - ",e.metad [...]
\ No newline at end of file
diff --git a/assets/js/a070aa7e.0ae8a7c9.js b/assets/js/a070aa7e.0ae8a7c9.js
deleted file mode 100644
index 2aa75a2..0000000
--- a/assets/js/a070aa7e.0ae8a7c9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[892],{5745:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/a070aa7e.ca3f1379.js b/assets/js/a070aa7e.ca3f1379.js
new file mode 100644
index 0000000..e391440
--- /dev/null
+++ b/assets/js/a070aa7e.ca3f1379.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[7892],{5745:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/a209574d.933d99d2.js b/assets/js/a209574d.933d99d2.js
deleted file mode 100644
index 242c46e..0000000
--- a/assets/js/a209574d.933d99d2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[173],{7165:a=>{a.exports=JSON.parse('{"label":"graphar","permalink":"/blog/tags/graphar","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]);
\ No newline at end of file
diff --git a/assets/js/a209574d.b3c23989.js b/assets/js/a209574d.b3c23989.js
new file mode 100644
index 0000000..c44e409
--- /dev/null
+++ b/assets/js/a209574d.b3c23989.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[7173],{7165:a=>{a.exports=JSON.parse('{"label":"graphar","permalink":"/blog/tags/graphar","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]);
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.a35e67fa.js b/assets/js/a6aa9e1f.a35e67fa.js
new file mode 100644
index 0000000..a13d341
--- /dev/null
+++ b/assets/js/a6aa9e1f.a35e67fa.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[3089],{7485:(e,t,a)=>{a.r(t),a.d(t,{default:()=>h});a(959);var n=a(6259),i=a(5238),s=a(9138),r=a(9065),l=a(7971),o=a(2834),p=a(7402),g=a(5501),d=a(1527);function c(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,i.Z)(),{blogDescription:n,blogTitle:r,permalink:l}=t,o="/"===l?a:r;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(s.d,{title:o,description:n}),(0,d.jsx)(p.Z,{tag:"blog_p [...]
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.c542c302.js b/assets/js/a6aa9e1f.c542c302.js
deleted file mode 100644
index 9b06c0b..0000000
--- a/assets/js/a6aa9e1f.c542c302.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[89],{7485:(e,t,a)=>{a.r(t),a.d(t,{default:()=>h});a(959);var n=a(6259),i=a(5238),s=a(9138),r=a(9065),l=a(7971),o=a(2834),p=a(7402),g=a(5501),d=a(1527);function c(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,i.Z)(),{blogDescription:n,blogTitle:r,permalink:l}=t,o="/"===l?a:r;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(s.d,{title:o,description:n}),(0,d.jsx)(p.Z,{tag:"blog_pos [...]
\ No newline at end of file
diff --git a/assets/js/a7023ddc.3e684af5.js b/assets/js/a7023ddc.3e684af5.js
deleted file mode 100644
index c8b80b2..0000000
--- a/assets/js/a7023ddc.3e684af5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[713],{3457:e=>{e.exports=JSON.parse('[{"label":"graphar","permalink":"/blog/tags/graphar","count":1}]')}}]);
\ No newline at end of file
diff --git a/assets/js/a7023ddc.e2a0822c.js b/assets/js/a7023ddc.e2a0822c.js
new file mode 100644
index 0000000..7311703
--- /dev/null
+++ b/assets/js/a7023ddc.e2a0822c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[1713],{3457:e=>{e.exports=JSON.parse('[{"label":"graphar","permalink":"/blog/tags/graphar","count":1}]')}}]);
\ No newline at end of file
diff --git a/assets/js/a7bd4aaa.8fb652e9.js b/assets/js/a7bd4aaa.8fb652e9.js
deleted file mode 100644
index c14b830..0000000
--- a/assets/js/a7bd4aaa.8fb652e9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[518],{9726:(e,n,s)=>{s.r(n),s.d(n,{default:()=>d});s(959);var t=s(9138),r=s(7787),o=s(4472),a=s(3797),i=s(7402),c=s(1527);function l(e){const{version:n}=e;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i.Z,{version:n.version,tag:(0,r.os)(n.pluginId,n.version)}),(0,c.jsx)(t.d,{children:n.noIndex&&(0,c.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function u(e){cons [...]
\ No newline at end of file
diff --git a/assets/js/a7bd4aaa.b2b087c6.js b/assets/js/a7bd4aaa.b2b087c6.js
new file mode 100644
index 0000000..d512ae4
--- /dev/null
+++ b/assets/js/a7bd4aaa.b2b087c6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[8518],{9726:(e,n,s)=>{s.r(n),s.d(n,{default:()=>d});s(959);var t=s(9138),r=s(7787),o=s(4472),a=s(3797),i=s(7402),c=s(1527);function l(e){const{version:n}=e;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i.Z,{version:n.version,tag:(0,r.os)(n.pluginId,n.version)}),(0,c.jsx)(t.d,{children:n.noIndex&&(0,c.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function u(e){con [...]
\ No newline at end of file
diff --git a/assets/js/a94703ab.3bc77592.js b/assets/js/a94703ab.3bc77592.js
new file mode 100644
index 0000000..f6d45fa
--- /dev/null
+++ b/assets/js/a94703ab.3bc77592.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[4368],{7150:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(959),o=n(6259),i=n(9138),s=n(9065),l=n(4819),r=n(8058),c=n(4547),d=n(4248),u=n(1889);const m={backToTopButton:"backToTopButton_Xwf6",backToTopButtonShow:"backToTopButtonShow_m0zB"};var b=n(1527);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{start [...]
\ No newline at end of file
diff --git a/assets/js/a94703ab.dea25cef.js b/assets/js/a94703ab.dea25cef.js
deleted file mode 100644
index 683ba42..0000000
--- a/assets/js/a94703ab.dea25cef.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[368],{7150:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(959),o=n(6259),i=n(9138),s=n(9065),l=n(4819),r=n(8058),c=n(4547),d=n(4248),u=n(1889);const m={backToTopButton:"backToTopButton_Xwf6",backToTopButtonShow:"backToTopButtonShow_m0zB"};var b=n(1527);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startS [...]
\ No newline at end of file
diff --git a/assets/js/af2043ab.bd6d6e36.js b/assets/js/af2043ab.bd6d6e36.js
deleted file mode 100644
index 3499524..0000000
--- a/assets/js/af2043ab.bd6d6e36.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[74],{1999:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>p});var i=r(1527),n=r(395);const s={id:"cpp",title:"C++ Library",sidebar_position:1},o=void 0,a={id:"libraries/cpp",title:"C++ Library",description:"",source:"@site/docs/libraries/cpp.md",sourceDirName:"libraries",slug:"/libraries/cpp",permalink:"/docs/libraries/ [...]
\ No newline at end of file
diff --git a/assets/js/b2f554cd.02ba03f3.js b/assets/js/b2f554cd.02ba03f3.js
new file mode 100644
index 0000000..d15e807
--- /dev/null
+++ b/assets/js/b2f554cd.02ba03f3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[1477],{10:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"demo-blog-post","metadata":{"permalink":"/blog/demo-blog-post","editUrl":"https://github.com/apache/incubator-graphar-website/edit/main/blog/2024-04-08-demo-blog-post.mdx","source":"@site/blog/2024-04-08-demo-blog-post.mdx","title":"Welcome to GraphAr","description":"Welcome to the GraphAr Blog! The blog about GraphAr will co [...]
\ No newline at end of file
diff --git a/assets/js/b2f554cd.5717b190.js b/assets/js/b2f554cd.5717b190.js
deleted file mode 100644
index a37c2c8..0000000
--- a/assets/js/b2f554cd.5717b190.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[477],{10:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"demo-blog-post","metadata":{"permalink":"/blog/demo-blog-post","editUrl":"https://github.com/apache/incubator-graphar-website/tree/main/blog/2024-04-08-demo-blog-post.mdx","source":"@site/blog/2024-04-08-demo-blog-post.mdx","title":"Welcome to GraphAr","description":"Welcome to the GraphAr Blog! The blog about GraphAr will com [...]
\ No newline at end of file
diff --git a/assets/js/bf73a7a5.d18d8f02.js b/assets/js/bf73a7a5.d18d8f02.js
new file mode 100644
index 0000000..eb7f057
--- /dev/null
+++ b/assets/js/bf73a7a5.d18d8f02.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[2186],{1187:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>h});var r=n(1527),a=n(395);const i={},s="Out-of-core Graph Algorithms",o={id:"libraries/cpp/examples/out-of-core",title:"Out-of-core Graph Algorithms",description:"An important application case of GraphAr is to serve out-of-core graph",source:"@site/docs/librar [...]
\ No newline at end of file
diff --git a/assets/js/c377a04b.766cf7eb.js b/assets/js/c377a04b.766cf7eb.js
new file mode 100644
index 0000000..06f19ba
--- /dev/null
+++ b/assets/js/c377a04b.766cf7eb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[6971],{4481:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var n=t(1527),o=t(395);const r={id:"documentation",title:"Documentation",sidebar_position:0},a=void 0,c={id:"documentation",title:"Documentation",description:"Welcome to the documentation for Apache GraphAr. Here, you can find information about the GraphAr [...]
\ No newline at end of file
diff --git a/assets/js/c377a04b.fa0d6113.js b/assets/js/c377a04b.fa0d6113.js
deleted file mode 100644
index d10e1e6..0000000
--- a/assets/js/c377a04b.fa0d6113.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[971],{4481:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var n=t(1527),r=t(395);const o={id:"documentation",title:"Documentation",sidebar_position:0},a=void 0,c={id:"documentation",title:"Documentation",description:"Welcome to the documentation for Apache GraphAr. Here, you can find information about the GraphAr F [...]
\ No newline at end of file
diff --git a/assets/js/c6f88384.301b82c6.js b/assets/js/c6f88384.301b82c6.js
deleted file mode 100644
index 536e346..0000000
--- a/assets/js/c6f88384.301b82c6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[678],{7497:e=>{e.exports=JSON.parse('{"title":"Committers","slug":"/category/committers","permalink":"/community/category/committers","navigation":{"next":{"title":"Create a release (Work in Progress)","permalink":"/community/committers/release"}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/c6f88384.90a230b0.js b/assets/js/c6f88384.90a230b0.js
new file mode 100644
index 0000000..4575086
--- /dev/null
+++ b/assets/js/c6f88384.90a230b0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[4610],{7497:e=>{e.exports=JSON.parse('{"title":"Committers","slug":"/category/committers","permalink":"/community/category/committers","navigation":{"previous":{"title":"Community","permalink":"/community/"},"next":{"title":"Create a release (Work in Progress)","permalink":"/community/committers/release"}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/c8c2b951.a9e9d29a.js b/assets/js/c8c2b951.a9e9d29a.js
deleted file mode 100644
index 965fe5d..0000000
--- a/assets/js/c8c2b951.a9e9d29a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[231],{186:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>a});var o=n(1527),r=n(395);const i={},s=void 0,c={id:"developers/contributing-guide",title:"contributing-guide",description:"",source:"@site/docs/developers/contributing-guide.md",sourceDirName:"developers",slug:"/developers/contributing-guide",permalink:"/docs/d [...]
\ No newline at end of file
diff --git a/assets/js/ccc49370.c6831ec1.js b/assets/js/ccc49370.c6831ec1.js
new file mode 100644
index 0000000..7575617
--- /dev/null
+++ b/assets/js/ccc49370.c6831ec1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[6103],{8151:(e,n,t)=>{t.r(n),t.d(n,{default:()=>p});t(959);var a=t(6259),i=t(9138),s=t(9065),o=t(9063),l=t(7971),r=t(3790),c=t(4547),d=t(945),u=t(1527);function m(e){const{nextItem:n,prevItem:t}=e;return(0,u.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,c.I)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The [...]
\ No newline at end of file
diff --git a/assets/js/ccc49370.e1541795.js b/assets/js/ccc49370.e1541795.js
deleted file mode 100644
index 9858db9..0000000
--- a/assets/js/ccc49370.e1541795.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[103],{8151:(e,n,t)=>{t.r(n),t.d(n,{default:()=>p});t(959);var a=t(6259),i=t(9138),s=t(9065),o=t(9063),l=t(7971),r=t(3790),c=t(4547),d=t(945),u=t(1527);function m(e){const{nextItem:n,prevItem:t}=e;return(0,u.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,c.I)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The A [...]
\ No newline at end of file
diff --git a/assets/js/d0b360e7.f10f3f41.js b/assets/js/d0b360e7.f10f3f41.js
new file mode 100644
index 0000000..ebbc569
--- /dev/null
+++ b/assets/js/d0b360e7.f10f3f41.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[1442],{8684:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>h});var t=n(1527),a=n(395);const s={},i="Integrate into GraphScope",o={id:"libraries/cpp/examples/graphscope",title:"Integrate into GraphScope",description:"GraphScope is a unified distributed graph",source:"@site/docs/libraries/cpp/examples/graphscope.md",sour [...]
\ No newline at end of file
diff --git a/assets/js/d5c2b4a2.0f01bb60.js b/assets/js/d5c2b4a2.0f01bb60.js
deleted file mode 100644
index 5444eb5..0000000
--- a/assets/js/d5c2b4a2.0f01bb60.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[381],{1994:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>a,metadata:()=>o,toc:()=>l});var r=t(1527),n=t(395);const a={id:"libraries",title:"Libraries",sidebar_position:3},s=void 0,o={id:"libraries/libraries",title:"Libraries",description:"C++ Library",source:"@site/docs/libraries/index.md",sourceDirName:"libraries",slug:"/libraries/",permalin [...]
\ No newline at end of file
diff --git a/assets/js/d942a963.3d95bd8c.js b/assets/js/d942a963.3d95bd8c.js
deleted file mode 100644
index 257391a..0000000
--- a/assets/js/d942a963.3d95bd8c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[641],{2414:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>n,metadata:()=>c,toc:()=>p});var a=o(1527),r=o(395);const n={slug:"demo-blog-post",title:"Welcome to GraphAr",authors:["acezen"],tags:["graphar"]},s=void 0,c={permalink:"/blog/demo-blog-post",editUrl:"https://github.com/apache/incubator-graphar-website/tree/main/blog/2024-04-08-demo-blo [...]
\ No newline at end of file
diff --git a/assets/js/d942a963.d6b6566d.js b/assets/js/d942a963.d6b6566d.js
new file mode 100644
index 0000000..a380a48
--- /dev/null
+++ b/assets/js/d942a963.d6b6566d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[2641],{2414:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>c,toc:()=>p});var a=o(1527),n=o(395);const r={slug:"demo-blog-post",title:"Welcome to GraphAr",authors:["acezen"],tags:["graphar"]},s=void 0,c={permalink:"/blog/demo-blog-post",editUrl:"https://github.com/apache/incubator-graphar-website/edit/main/blog/2024-04-08-demo-bl [...]
\ No newline at end of file
diff --git a/assets/js/dc3d043b.74ad6462.js b/assets/js/dc3d043b.74ad6462.js
new file mode 100644
index 0000000..8b8c115
--- /dev/null
+++ b/assets/js/dc3d043b.74ad6462.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[7178],{7947:(e,r,a)=>{a.r(r),a.d(r,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>p});var i=a(1527),n=a(395);const t={id:"pyspark",title:"PySpark Library",sidebar_position:4},s=void 0,o={id:"libraries/pyspark/pyspark",title:"PySpark Library",description:"The current policy of GraphAr project is that for Apache Spark",source:"@site/docs/libra [...]
\ No newline at end of file
diff --git a/assets/js/e6d0d7aa.dee3eae0.js b/assets/js/e6d0d7aa.dee3eae0.js
new file mode 100644
index 0000000..ce7162d
--- /dev/null
+++ b/assets/js/e6d0d7aa.dee3eae0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[1610],{470:e=>{e.exports=JSON.parse('{"title":"Examples","slug":"/category/examples","permalink":"/docs/category/examples","navigation":{"previous":{"title":"Getting Started","permalink":"/docs/libraries/cpp/getting-started"},"next":{"title":"Co-Work with BGL","permalink":"/docs/libraries/cpp/examples/bgl"}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/e94dfc49.511bed5d.js b/assets/js/e94dfc49.511bed5d.js
deleted file mode 100644
index 08bb817..0000000
--- a/assets/js/e94dfc49.511bed5d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[308],{9719:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>n,metadata:()=>s,toc:()=>d});var o=i(1527),r=i(395);const n={id:"overview",title:"Overview",sidebar_position:1},a=void 0,s={id:"overview/overview",title:"Overview",description:"GraphAr is a project to standardize the graph data format and provide a set of libraries to generate, access a [...]
\ No newline at end of file
diff --git a/assets/js/e94dfc49.9916908d.js b/assets/js/e94dfc49.9916908d.js
new file mode 100644
index 0000000..30bcbfa
--- /dev/null
+++ b/assets/js/e94dfc49.9916908d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[8308],{9719:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>n,metadata:()=>s,toc:()=>d});var o=i(1527),r=i(395);const n={id:"overview",title:"Overview",sidebar_position:1},a=void 0,s={id:"overview/overview",title:"Overview",description:"GraphAr is a project to standardize the graph data format and provide a set of libraries to generate, access [...]
\ No newline at end of file
diff --git a/assets/js/e9c63600.8cd56f2a.js b/assets/js/e9c63600.8cd56f2a.js
deleted file mode 100644
index 786a5ce..0000000
--- a/assets/js/e9c63600.8cd56f2a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[268],{3844:(d,e,s)=>{s.r(e),s.d(e,{assets:()=>l,contentTitle:()=>n,default:()=>j,frontMatter:()=>i,metadata:()=>h,toc:()=>x});var t=s(1527),r=s(395);const i={id:"implementation-status",title:"Implementation Status",sidebar_position:2},n=void 0,h={id:"specification/implementation-status",title:"Implementation Status",description:"The following tables summarize the features available [...]
\ No newline at end of file
diff --git a/assets/js/e9c63600.ff9202a1.js b/assets/js/e9c63600.ff9202a1.js
new file mode 100644
index 0000000..9db8481
--- /dev/null
+++ b/assets/js/e9c63600.ff9202a1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[8268],{3844:(d,e,t)=>{t.r(e),t.d(e,{assets:()=>l,contentTitle:()=>n,default:()=>j,frontMatter:()=>i,metadata:()=>h,toc:()=>c});var s=t(1527),r=t(395);const i={title:"Implementation Status",sidebar_position:2},n=void 0,h={id:"specification/implementation-status",title:"Implementation Status",description:"The following tables summarize the features available in the various official G [...]
\ No newline at end of file
diff --git a/assets/js/edc931f8.5fa7ebd5.js b/assets/js/edc931f8.5fa7ebd5.js
new file mode 100644
index 0000000..f8d7935
--- /dev/null
+++ b/assets/js/edc931f8.5fa7ebd5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[6160],{6955:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var n=t(1527),r=t(395);const s={id:"community",title:"Community",sidebar_position:1},a=void 0,o={id:"community",title:"Community",description:"Welcome to the Apache GraphAr community!",source:"@site/community/index.md",sourceDirName:".",slug:"/",permalink:" [...]
\ No newline at end of file
diff --git a/assets/js/edc931f8.9ca20f38.js b/assets/js/edc931f8.9ca20f38.js
deleted file mode 100644
index 0f144c6..0000000
--- a/assets/js/edc931f8.9ca20f38.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[160],{6955:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var n=t(1527),r=t(395);const s={id:"community",title:"Community",sidebar_position:1},a=void 0,o={id:"community",title:"Community",description:"Welcome to the Apache GraphAr community!",source:"@site/community/index.md",sourceDirName:".",slug:"/",permalink:"/ [...]
\ No newline at end of file
diff --git a/assets/js/edeb92d6.f2fd1908.js b/assets/js/edeb92d6.f2fd1908.js
new file mode 100644
index 0000000..e0fc347
--- /dev/null
+++ b/assets/js/edeb92d6.f2fd1908.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[307],{3489:e=>{e.exports=JSON.parse('{"title":"Specification","slug":"/category/specification","permalink":"/docs/category/specification","navigation":{"previous":{"title":"Concepts","permalink":"/docs/overview/concepts"},"next":{"title":"Format Specification","permalink":"/docs/specification/format"}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/f5f78f72.50198d74.js b/assets/js/f5f78f72.50198d74.js
deleted file mode 100644
index 9b52ac7..0000000
--- a/assets/js/f5f78f72.50198d74.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[434],{963:(t,e,i)=>{i.r(e),i.d(e,{assets:()=>r,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>s,toc:()=>p});var n=i(1527),o=i(395);const c={id:"specification",title:"Specification",sidebar_position:2},a=void 0,s={id:"specification/specification",title:"Specification",description:"Format Specification",source:"@site/docs/specification/index.md",sourceDirName:"specif [...]
\ No newline at end of file
diff --git a/assets/js/main.04a9358e.js b/assets/js/main.04a9358e.js
deleted file mode 100644
index 51719d8..0000000
--- a/assets/js/main.04a9358e.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.04a9358e.js.LICENSE.txt */
-(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[179],{2648:(e,t,n)=>{var r={"./":1884};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=2648},3610:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(959);var r=n(974),o=n.n(r),a=n(6887);const i={"01a85c17":[()=>Promise.all([n.e [...]
\ No newline at end of file
diff --git a/assets/js/main.8987d6a5.js b/assets/js/main.8987d6a5.js
new file mode 100644
index 0000000..5f1ea13
--- /dev/null
+++ b/assets/js/main.8987d6a5.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.8987d6a5.js.LICENSE.txt */
+(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[179],{2648:(e,t,n)=>{var r={"./":1884};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=2648},3610:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(959);var r=n(974),a=n.n(r),o=n(6887);const i={"01a85c17":[()=>Promise.all([n.e [...]
\ No newline at end of file
diff --git a/assets/js/main.04a9358e.js.LICENSE.txt b/assets/js/main.8987d6a5.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.04a9358e.js.LICENSE.txt
rename to assets/js/main.8987d6a5.js.LICENSE.txt
diff --git a/assets/js/runtime~main.7bfc5b47.js b/assets/js/runtime~main.7bfc5b47.js
deleted file mode 100644
index 2a00882..0000000
--- a/assets/js/runtime~main.7bfc5b47.js
+++ /dev/null
@@ -1 +0,0 @@
-(()=>{"use strict";var e,a,t,f,r,c={},d={};function o(e){var a=d[e];if(void 0!==a)return a.exports;var t=d[e]={id:e,loaded:!1,exports:{}};return c[e].call(t.exports,t,t.exports,o),t.loaded=!0,t.exports}o.m=c,o.c=d,e=[],o.O=(a,t,f,r)=>{if(!t){var c=1/0;for(i=0;i<e.length;i++){t=e[i][0],f=e[i][1],r=e[i][2];for(var d=!0,b=0;b<t.length;b++)(!1&r||c>=r)&&Object.keys(o.O).every((e=>o.O[e](t[b])))?t.splice(b--,1):(d=!1,r<c&&(c=r));if(d){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}r=r| [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.be6fd345.js b/assets/js/runtime~main.be6fd345.js
new file mode 100644
index 0000000..3d87a0b
--- /dev/null
+++ b/assets/js/runtime~main.be6fd345.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,a,d,t,c,r={},f={};function b(e){var a=f[e];if(void 0!==a)return a.exports;var d=f[e]={id:e,loaded:!1,exports:{}};return r[e].call(d.exports,d,d.exports,b),d.loaded=!0,d.exports}b.m=r,b.c=f,e=[],b.O=(a,d,t,c)=>{if(!d){var r=1/0;for(i=0;i<e.length;i++){d=e[i][0],t=e[i][1],c=e[i][2];for(var f=!0,o=0;o<d.length;o++)(!1&c||r>=c)&&Object.keys(b.O).every((e=>b.O[e](d[o])))?d.splice(o--,1):(f=!1,c<r&&(r=c));if(f){e.splice(i--,1);var n=t();void 0!==n&&(a=n)}}return a}c=c| [...]
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
index ee4a610..e367f0d 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -5,11 +5,11 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Archive | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/blog/archive" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/blog/demo-blog-post/index.html b/blog/demo-blog-post/index.html
index 1713c86..cd96672 100644
--- a/blog/demo-blog-post/index.html
+++ b/blog/demo-blog-post/index.html
@@ -5,11 +5,11 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Welcome to GraphAr | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/bl [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/blog/index.html b/blog/index.html
index e73a226..93eebbf 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -5,11 +5,11 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Blog | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/blog"><meta data [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/blog/tags/graphar/index.html b/blog/tags/graphar/index.html
index 4c5d3c1..ce4a1e0 100644
--- a/blog/tags/graphar/index.html
+++ b/blog/tags/graphar/index.html
@@ -5,11 +5,11 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">One post tagged with "graphar" | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https:/ [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/blog/tags/index.html b/blog/tags/index.html
index 5aa4485..55ba8e7 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -5,11 +5,11 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Tags | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/blog/tags"><meta [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/community/category/committers/index.html b/community/category/committers/index.html
index a90759e..e25a204 100644
--- a/community/category/committers/index.html
+++ b/community/category/committers/index.html
@@ -5,11 +5,11 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Committers | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/community/ [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/community/category/reference/index.html b/community/category/reference/index.html
index 18e71f5..b711315 100644
--- a/community/category/reference/index.html
+++ b/community/category/reference/index.html
@@ -5,11 +5,11 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Reference | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/community/c [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/community/committers/reference/generate_release_note/index.html b/community/committers/reference/generate_release_note/index.html
index 084db42..5443f01 100644
--- a/community/committers/reference/generate_release_note/index.html
+++ b/community/committers/reference/generate_release_note/index.html
@@ -5,18 +5,18 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Generate release note | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<ol>
<li>Go to <a href="https://github.com/apache/incubator-graphar/releases/new" target="_blank" rel="noopener noreferrer">https://github.com/apache/incubator-graphar/releases/new</a> to start a new release.</li>
<li>Fill the tag with <code>draft</code>.</li>
<li>Click on <code>Generate release notes</code> to generate them.</li>
<li>Copy the generated content and close the page.</li>
</ol>
-<p>Please note that we only use this feature to generate release notes, so please do not click on <code>Publish Release</code> or <code>Save draft</code>. We will publish it after creating the tag.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar-website/tree/main/community/committers/reference/generate_release_note.md" target="_blank" rel="noopener noreferrer" [...]
+<p>Please note that we only use this feature to generate release notes, so please do not click on <code>Publish Release</code> or <code>Save draft</code>. We will publish it after creating the tag.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar-website/edit/main/community/committers/reference/generate_release_note.md" target="_blank" rel="noopener noreferrer" [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/community/committers/release/index.html b/community/committers/release/index.html
index 733ca92..8f4f014 100644
--- a/community/committers/release/index.html
+++ b/community/committers/release/index.html
@@ -5,11 +5,11 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Create a release (Work in Progress) | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://grap [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
releases a new version of Apache GraphAr in accordance with the Apache requirements.</p>
<h2 class="anchor anchorWithStickyNavbar_qibj" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction"></a></h2>
<p><code>Source Release</code> is the key point which Apache values, and is also necessary for an ASF release.</p>
@@ -58,7 +58,7 @@ Please note that this version is the exact version of the release, not the relea
<ul>
<li>Create a tag at <code>main</code> branch on the <code>Bump Version</code> / <code>Patch up version</code> commit: <code>git tag -s "v0.12.0-rc.1"</code>, please correctly check out the corresponding commit instead of directly tagging on the main branch.</li>
<li>Push tags to GitHub: <code>git push --tags</code>.</li>
-</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar-website/tree/main/community/committers/release.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_z10d" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0. [...]
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar-website/edit/main/community/committers/release.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_z10d" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0. [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/community/index.html b/community/index.html
index 02feed4..207716a 100644
--- a/community/index.html
+++ b/community/index.html
@@ -5,11 +5,11 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Community | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/community/" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<p>Every volunteer project obtains its strength from the people involved in it. We invite you to participate as much or as little as you choose.</p>
<p>You can:</p>
<ul>
@@ -82,7 +82,7 @@ This meeting is open to everyone.</p>
in making this project more comprehensive and valuable.
We sincerely appreciate your support and efforts!</p>
<h3 class="anchor anchorWithStickyNavbar_qibj" id="contributors">Contributors<a href="#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors"></a></h3>
-<p>The contributor list could be found <a href="https://github.com/apache/graphar/graphs/contributors/" target="_blank" rel="noopener noreferrer">here</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar-website/tree/main/community/index.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" vi [...]
+<p>The contributor list could be found <a href="https://github.com/apache/graphar/graphs/contributors/" target="_blank" rel="noopener noreferrer">here</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar-website/edit/main/community/index.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" vi [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/docs/category/c-library/index.html b/docs/category/c-library/index.html
new file mode 100644
index 0000000..3cac699
--- /dev/null
+++ b/docs/category/c-library/index.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">C++ Library | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/cate [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/category/examples/index.html b/docs/category/examples/index.html
new file mode 100644
index 0000000..a2d89a4
--- /dev/null
+++ b/docs/category/examples/index.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">Examples | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/categor [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/category/libraries/index.html b/docs/category/libraries/index.html
new file mode 100644
index 0000000..03ce272
--- /dev/null
+++ b/docs/category/libraries/index.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">Libraries | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/catego [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/category/specification/index.html b/docs/category/specification/index.html
new file mode 100644
index 0000000..dee8dd4
--- /dev/null
+++ b/docs/category/specification/index.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">Specification | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/ca [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/developers/contributing-guide/index.html b/docs/developers/contributing-guide/index.html
deleted file mode 100644
index 8df8e9d..0000000
--- a/docs/developers/contributing-guide/index.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!doctype html>
-<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-developers/contributing-guide" data-has-hydrated="false">
-<head>
-<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.1.1">
-<title data-rh="true">contributing-guide | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/do [...]
-<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
-</head>
-<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
- <p>
- Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
- </p>
- <p>
- Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
- Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
- </p>
- </div></div></div></div></footer></div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/developers/index.html b/docs/developers/index.html
deleted file mode 100644
index 16fd0ac..0000000
--- a/docs/developers/index.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!doctype html>
-<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-developers/developers" data-has-hydrated="false">
-<head>
-<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.1.1">
-<title data-rh="true">Developer Guide | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/ [...]
-<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
-</head>
-<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
- <p>
- Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
- </p>
- <p>
- Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
- Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
- </p>
- </div></div></div></div></footer></div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/images/edge_logical_table.png b/docs/images/edge_logical_table.png
new file mode 100644
index 0000000..4ac9b00
Binary files /dev/null and b/docs/images/edge_logical_table.png differ
diff --git a/docs/images/edge_physical_table1.png b/docs/images/edge_physical_table1.png
new file mode 100644
index 0000000..589867c
Binary files /dev/null and b/docs/images/edge_physical_table1.png differ
diff --git a/docs/images/edge_physical_table2.png b/docs/images/edge_physical_table2.png
new file mode 100644
index 0000000..047c01f
Binary files /dev/null and b/docs/images/edge_physical_table2.png differ
diff --git a/docs/images/graphar-logo-notext.png b/docs/images/graphar-logo-notext.png
new file mode 100644
index 0000000..5898769
Binary files /dev/null and b/docs/images/graphar-logo-notext.png differ
diff --git a/docs/images/graphar-logo.png b/docs/images/graphar-logo.png
new file mode 100644
index 0000000..9505c1d
Binary files /dev/null and b/docs/images/graphar-logo.png differ
diff --git a/docs/images/graphar-logo.svg b/docs/images/graphar-logo.svg
new file mode 100644
index 0000000..7e6e8c1
--- /dev/null
+++ b/docs/images/graphar-logo.svg
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="342.550048px" height="312.7px" viewBox="0 0 342.550048 312.7" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>编组</title>
+ <defs>
+ <linearGradient x1="33.9281554%" y1="106.628775%" x2="68.5520676%" y2="-15.3658053%" id="linearGradient-1">
+ <stop stop-color="#30E0DF" offset="13%"></stop>
+ <stop stop-color="#2380F2" offset="91%"></stop>
+ </linearGradient>
+ <linearGradient x1="-18.5086042%" y1="80.8592104%" x2="70.6768642%" y2="42.6200451%" id="linearGradient-2">
+ <stop stop-color="#2380F2" offset="0%"></stop>
+ <stop stop-color="#2383F1" stop-opacity="0.97" offset="9%"></stop>
+ <stop stop-color="#248AF0" stop-opacity="0.9" offset="22%"></stop>
+ <stop stop-color="#2696EE" stop-opacity="0.77" offset="37%"></stop>
+ <stop stop-color="#28A7EA" stop-opacity="0.6" offset="54%"></stop>
+ <stop stop-color="#2BBCE6" stop-opacity="0.37" offset="72%"></stop>
+ <stop stop-color="#2FD6E1" stop-opacity="0.11" offset="91%"></stop>
+ <stop stop-color="#30E0DF" stop-opacity="0" offset="98%"></stop>
+ </linearGradient>
+ <linearGradient x1="50%" y1="-12.5%" x2="50%" y2="114.34244%" id="linearGradient-3">
+ <stop stop-color="#30E0DF" offset="18%"></stop>
+ <stop stop-color="#2380F2" offset="76%"></stop>
+ </linearGradient>
+ </defs>
+ <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="编组" transform="translate(0, 0)" fill-rule="nonzero">
+ <path d="M61.800024,262.11 C61.800024,262.95 61.800024,264.62 61.710024,267.11 C61.7224798,268.743359 61.6054466,270.375136 61.360024,271.99 C59.8533573,279.69 56.520024,285.373333 51.360024,289.04 C46.200024,292.706667 39.6333573,294.556667 31.660024,294.59 C26.0611032,294.690707 20.5110953,293.532177 15.420024,291.2 C10.6408166,288.922516 6.6983606,285.200446 4.15002398,280.56 C1.37669065,275.72 -0.00664268585,269.57 0,262.11 C0.00669064748,254.65 1.39002398,248.496667 4.15 [...]
+ <path d="M91.360024,258.49 C88.5956793,259.188818 86.0315653,260.520514 83.870024,262.38 C81.590024,264.3 80.4466906,267.3 80.440024,271.38 L80.440024,294.59 L69.020024,294.59 L69.020024,270.99 C68.9849436,267.056732 70.0220782,263.18822 72.020024,259.8 C73.9888675,256.417705 76.800143,253.602984 80.180024,251.63 C83.5702036,249.636727 87.4373972,248.599946 91.370024,248.63 L91.360024,258.49 Z" id="路径" fill="#333333"></path>
+ <path d="M342.530024,258.49 C339.765679,259.188818 337.201565,260.520514 335.040024,262.38 C332.760024,264.3 331.616691,267.3 331.610024,271.38 L331.610024,294.59 L320.160024,294.59 L320.160024,270.99 C320.124944,267.056732 321.162078,263.18822 323.160024,259.8 C325.134464,256.39802 327.960452,253.568585 331.360024,251.59 C334.750204,249.596727 338.617397,248.559946 342.550024,248.59 L342.530024,258.49 Z" id="路径" fill="#333333"></path>
+ <path d="M128.930024,251.68 C131.357489,253.1288 133.385337,255.160085 134.830024,257.59 C136.30223,260.044385 137.067081,262.858066 137.040024,265.72 L137.040024,294.590106 L109.710024,294.590106 C107.121132,294.599935 104.57784,293.908823 102.350024,292.59 C100.125953,291.297636 98.2782398,289.446476 96.990024,287.22 C95.6654699,284.998268 94.9738475,282.456556 94.9896786,279.87 C94.9719447,277.295799 95.6639692,274.766449 96.990024,272.56 C99.64833,268.066573 104.489197,26 [...]
+ <path d="M184.820024,254.71 C188.700024,258.19 190.640024,263.523333 190.640024,270.71 C190.640024,277.896667 188.700024,283.23 184.820024,286.71 C180.940024,290.21 175.900024,291.956667 169.700024,291.95 L159.240024,291.95 L159.240024,312.7 L147.870024,312.7 L147.870024,249.47 L169.700024,249.47 C175.900024,249.47 180.940024,251.216667 184.820024,254.71 Z M169.700024,281.99 C171.316541,281.976488 172.896682,281.508683 174.260024,280.64 C175.7842,279.687329 177.02957,278.3488 [...]
+ <path d="M211.020024,252.18 L222.020024,252.18 C224.667422,252.156951 227.272097,252.847846 229.560024,254.18 C231.841902,255.501963 233.738061,257.398122 235.060024,259.68 C236.392178,261.967927 237.083073,264.572602 237.060024,267.22 L237.060024,294.59 L225.730024,294.59 L225.730024,269.41 C225.746216,267.467263 224.980933,265.599533 223.606223,264.226703 C222.231513,262.853874 220.362737,262.091149 218.420024,262.11 L211.020024,262.11 L211.020024,294.59 L199.660024,294.59 [...]
+ <polygon id="路径" fill="#333333" points="297.330024 294.85 278.180024 246.49 258.760024 294.85 245.400024 294.85 271.930024 230.8 284.800024 230.8 310.730024 294.85"></polygon>
+ <rect id="矩形" fill="#333333" x="258.750024" y="265.35" width="35.9" height="8.71"></rect>
+ <polygon id="路径" fill="#2380F2" points="77.910024 50.43 77.910024 151.31 165.270024 201.74 165.270024 100.87"></polygon>
+ <polygon id="路径" fill="#30E0DF" points="165.270024 0 77.910024 50.43 165.270024 100.87 252.630024 50.43"></polygon>
+ <polygon id="路径" fill="url(#linearGradient-1)" points="165.270024 201.74 252.630024 151.31 252.630024 93.39 202.630024 122.44 202.630024 143.38 236.250024 123.72 236.250024 141.86 183.950024 172.05 183.860024 111.6 252.630024 71.96 252.630024 50.43 165.270024 100.87"></polygon>
+ <polyline id="路径" fill="url(#linearGradient-2)" points="165.270024 0 121.880024 75.82 252.630024 50.43"></polyline>
+ <polyline id="路径" fill="url(#linearGradient-3)" points="77.910024 151.31 121.880024 75.82 165.270024 201.74"></polyline>
+ </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/docs/images/graphar.ico b/docs/images/graphar.ico
new file mode 100644
index 0000000..75a34ea
Binary files /dev/null and b/docs/images/graphar.ico differ
diff --git a/docs/images/overview.png b/docs/images/overview.png
new file mode 100644
index 0000000..b8c101e
Binary files /dev/null and b/docs/images/overview.png differ
diff --git a/docs/images/property_graph.png b/docs/images/property_graph.png
new file mode 100644
index 0000000..5da8c03
Binary files /dev/null and b/docs/images/property_graph.png differ
diff --git a/docs/images/vertex_logical_table.png b/docs/images/vertex_logical_table.png
new file mode 100644
index 0000000..da3769d
Binary files /dev/null and b/docs/images/vertex_logical_table.png differ
diff --git a/docs/images/vertex_physical_table.png b/docs/images/vertex_physical_table.png
new file mode 100644
index 0000000..2794c59
Binary files /dev/null and b/docs/images/vertex_physical_table.png differ
diff --git a/docs/index.html b/docs/index.html
index 7d7aa50..ec02091 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -3,21 +3,19 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.1.1">
-<title data-rh="true">Documentation | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/"> [...]
+<title data-rh="true">Documentation | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/"> [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<h3 class="anchor anchorWithStickyNavbar_qibj" id="overview"><a href="/docs/overview">Overview</a><a href="#overview" class="hash-link" aria-label="Direct link to overview" title="Direct link to overview"></a></h3>
-<p>Overview of the GraphAr project.</p>
-<h3 class="anchor anchorWithStickyNavbar_qibj" id="specification"><a href="/docs/specification">Specification</a><a href="#specification" class="hash-link" aria-label="Direct link to specification" title="Direct link to specification"></a></h3>
-<p>Documentation about the GraphAr file format.</p>
-<h3 class="anchor anchorWithStickyNavbar_qibj" id="libraries"><a href="/docs/libraries">Libraries</a><a href="#libraries" class="hash-link" aria-label="Direct link to libraries" title="Direct link to libraries"></a></h3>
-<p>Documentation about the libraries of GraphAr.</p>
-<h3 class="anchor anchorWithStickyNavbar_qibj" id="developer-guide"><a href="/docs/developers">Developer Guide</a><a href="#developer-guide" class="hash-link" aria-label="Direct link to developer-guide" title="Direct link to developer-guide"></a></h3>
-<p>All developer resources for GraphAr.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar-website/tree/main/docs/index.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_z10d" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1. [...]
+<p>Overview of the Apache GraphAr project.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="specification"><a href="/docs/category/specification">Specification</a><a href="#specification" class="hash-link" aria-label="Direct link to specification" title="Direct link to specification"></a></h3>
+<p>Documentation about the Apache GraphAr file format.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="libraries"><a href="/docs/category/libraries">Libraries</a><a href="#libraries" class="hash-link" aria-label="Direct link to libraries" title="Direct link to libraries"></a></h3>
+<p>Documentation about the libraries of Apache GraphAr.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/index.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_z10d" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1. [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/docs/libraries/cpp/examples/bgl/index.html b/docs/libraries/cpp/examples/bgl/index.html
new file mode 100644
index 0000000..8cb0ef5
--- /dev/null
+++ b/docs/libraries/cpp/examples/bgl/index.html
@@ -0,0 +1,53 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-libraries/cpp/examples/bgl" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">Co-Work with BGL | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<p>The <a href="https://cs.brown.edu/~jwicks/boost/libs/graph/doc/" target="_blank" rel="noopener noreferrer">Boost Graph Library
+(BGL)</a> is the first
+C++ library to apply the principles of generic programming to the
+construction of the advanced data structures and algorithms used in
+graph computations. The BGL graph interface and graph components are
+generic in the same sense as the Standard Template Library (STL). And it
+provides some built-in algorithms which cover a core set of algorithm
+patterns and a larger set of graph algorithms.</p>
+<p>We take calculating CC as an example, to demonstrate how BGL works with
+GraphAr. A weakly connected component is a maximal subgraph of a graph
+such that for every pair of vertices in it, there is an undirected path
+connecting them. And the CC algorithm is to identify all such components
+in a graph. Learn more about <a href="https://en.wikipedia.org/wiki/Connected_component" target="_blank" rel="noopener noreferrer">the CC
+algorithm</a>.</p>
+<p>The source code of CC based on BGL can be found at
+<a href="https://github.com/apache/incubator-graphar/blob/main/cpp/examples/bgl_example.cc" target="_blank" rel="noopener noreferrer">bgl_example.cc</a>.
+In this program, the graph information file is first read to get the
+metadata:</p>
+<div class="language-C++ language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">std::string path = ... // the path of the graph information file</span><br></spa [...]
+<p>And then, the vertex collection and the edge collection are established
+as the handles to access the graph data:</p>
+<div class="language-C++ language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">auto maybe_vertices = graphar::VerticesCollection::Make(graph_info, "person [...]
+<p>Next, we construct the in-memory graph data structure for BGL by
+traversing the vertices and edges via GraphAr's high-level reading
+interface (the vertex iterator and the edge iterator):</p>
+<div class="language-C++ language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// define the Graph type in BGL</span><br></span><span class="token-line" style= [...]
+<p>After that, an internal CC algorithm provided by BGL is called:</p>
+<div class="language-C++ language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// define the external vertex property "component"</span><br></span><s [...]
+<p>Finally, we could use a <strong>VerticesBuilder</strong> of GraphAr to write the
+results to new generated GAR files:</p>
+<div class="language-C++ language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// construct a new property group</span><br></span><span class="token-line" styl [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libraries/cpp/examples/graphscope/index.html b/docs/libraries/cpp/examples/graphscope/index.html
new file mode 100644
index 0000000..1220dec
--- /dev/null
+++ b/docs/libraries/cpp/examples/graphscope/index.html
@@ -0,0 +1,73 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-libraries/cpp/examples/graphscope" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">Integrate into GraphScope | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<p><a href="https://graphscope.io/" target="_blank" rel="noopener noreferrer">GraphScope</a> is a unified distributed graph
+computing platform that provides a one-stop environment for performing
+diverse graph operations on a cluster through a user-friendly Python
+interface. As an important application case of GraphAr, we have
+integrated it into GraphScope.</p>
+<p>GraphScope works on a graph G fragmented via a partition strategy picked
+by the user and each worker maintains a fragment of G. Given a query, it
+posts the same query to all the workers and computes following the BSP
+(Bulk Synchronous Parallel) model. More specifically, each worker first
+executes processing against its local fragment, to compute partial
+answers in parallel. And then each worker may exchange partial results
+with other processors via synchronous message passing.</p>
+<p>To integrate GraphAr into GraphScope, we implemented
+<em>ArrowFragmentBuilder</em> and <em>ArrowFragmentWriter</em>. <em>ArrowFragmentBuilder</em>
+establishes the fragments for workers of GraphScope through reading GAR
+files in parallel. Conversely, <em>ArrowFragmentWriter</em> can take the
+GraphScope fragments and save them as GAR files. If you're interested in
+knowing more about the implementation, please refer to the <a href="https://github.com/v6d-io/v6d/commit/0eda2067e45fbb4ac46892398af0edc84fe1c27b" target="_blank" rel="noopener noreferrer">source
+code</a>.</p>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="performance-report">Performance Report<a href="#performance-report" class="hash-link" aria-label="Direct link to Performance Report" title="Direct link to Performance Report"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="parameter-settings">Parameter settings<a href="#parameter-settings" class="hash-link" aria-label="Direct link to Parameter settings" title="Direct link to Parameter settings"></a></h3>
+<p>The time performance of <em>ArrowFragmentBuilder</em> and <em>ArrowFragmentWriter</em>
+in GraphScope is heavily dependent on the partitioning of the graph into
+GAR files, that is, the <em>vertex chunk size</em> and <em>edge chunk size</em>, which
+are specified in the vertex information file and in the edge information
+file, respectively.</p>
+<p>Generally speaking, fewer chunks are created if the file size is large.
+On small graphs, this can be disadvantageous as it reduces the degree of
+parallelism, prolonging disk I/O time. On the other hand, having too
+many small files increases the overhead associated with the file system
+and the file parser.</p>
+<p>We have conducted micro benchmarks to compare the time performance for
+reading/writing GAR files by
+<em>ArrowFragmentBuilder</em>/<em>ArrowFragmentWriter</em>, across different <em>vertex
+chunk size</em> and <em>edge chunk size</em> configurations. The settings we
+recommend for <em>vertex chunk size</em> and <em>edge chunk size</em> are <strong>2^18</strong> and
+<strong>2^22</strong>, respectively, which lead to efficient performance in most
+cases. These settings can be used as the reference values when
+integrating GraphAr into other systems besides GraphScope.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="time-performance-results">Time performance results<a href="#time-performance-results" class="hash-link" aria-label="Direct link to Time performance results" title="Direct link to Time performance results"></a></h3>
+<p>Here we report the performance results of <em>ArrowFragmentBuilder</em>, and
+compare it with loading the same graph through the default loading
+strategy of GraphScope (through reading the csv files in parallel) . The
+execution time reported below includes loading the graph data from the
+disk into memory, as well as building GraphScope fragments from such
+data. The experiments are conducted on a cluster of 4 AliCloud
+ecs.r6.6xlarge instances (24vCPU, 192GB memory), and using
+<a href="https://snap.stanford.edu/data/com-Friendster.html" target="_blank" rel="noopener noreferrer">com-friendster</a> (a
+simple graph) and <a href="https://ldbcouncil.org/benchmarks/snb/" target="_blank" rel="noopener noreferrer">ldbc-snb-30</a>
+(a multi-labeled property graph) as datasets.</p>
+<table><thead><tr><th>Dataset</th><th>Workers</th><th>Default Loading</th><th>GraphAr Loading</th></tr></thead><tbody><tr><td>com-friendster</td><td>4</td><td>282s</td><td>54s</td></tr><tr><td>ldbc-snb-30</td><td>4</td><td>196s</td><td>40s</td></tr></tbody></table></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/libraries/cpp/examples/graphscope.md" [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libraries/cpp/examples/out-of-core/index.html b/docs/libraries/cpp/examples/out-of-core/index.html
new file mode 100644
index 0000000..fd76183
--- /dev/null
+++ b/docs/libraries/cpp/examples/out-of-core/index.html
@@ -0,0 +1,119 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-libraries/cpp/examples/out-of-core" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">Out-of-core Graph Algorithms | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apa [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<p>An important application case of GraphAr is to serve out-of-core graph
+processing scenarios. With the graph data saved as GAR files in the
+disk, GraphAr provides a set of reading interfaces to allow to load part
+of graph data into memory when needed, to conduct analytics. While it is
+more convenient and efficient to store the entirety of the graph in
+memory (as is done in BGL), out-of-core graph processing makes it
+possible to complete analytics on the large-scale graphs using limited
+memory/computing resources.</p>
+<p>The are some out-of-core graph analytic algorithms that have been
+implemented based on GraphAr, include:</p>
+<ul>
+<li>PageRank (PR)</li>
+<li>Connected Components (CC)</li>
+<li>Breadth First Search (BFS)</li>
+</ul>
+<p>These algorithms represent for different compute patterns and are
+usually building blocks for constructing other graph algorithms.</p>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="pagerank">PageRank<a href="#pagerank" class="hash-link" aria-label="Direct link to PageRank" title="Direct link to PageRank"></a></h2>
+<p><a href="https://en.wikipedia.org/wiki/PageRank" target="_blank" rel="noopener noreferrer">PageRank (PR)</a> is an algorithm
+used by Google Search to rank web pages in their search engine results.
+The source code of PageRank based on GraphAr located at
+<a href="https://github.com/apache/incubator-graphar/blob/main/cpp/examples/pagerank_example.cc" target="_blank" rel="noopener noreferrer">pagerank_example.cc</a>,
+and the explanations can be found in the <a href="/docs/libraries/cpp/getting-started#a-pagerank-example">Getting
+Started</a> page.</p>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="connected-components">Connected Components<a href="#connected-components" class="hash-link" aria-label="Direct link to Connected Components" title="Direct link to Connected Components"></a></h2>
+<p>A weakly connected component is a maximal subgraph of a graph such that
+for every pair of vertices in it, there is an undirected path connecting
+them. And <a href="https://en.wikipedia.org/wiki/Connected_component" target="_blank" rel="noopener noreferrer">Connected Components
+(CC)</a> is an algorithm
+to identify all weakly connected components in a graph. <a href="/docs/libraries/cpp/examples/bgl">CC based on
+BGL</a> is provided in GraphAr, also, we implement out-of-core
+algorithms for this application.</p>
+<p>A typical method for calculating CC is label propagation. In this
+algorithm, each vertex is attached with a property which represents its
+component label, being its own vertex id initially. In the subsequent
+supersteps (i.e., iterations), a vertex will update its label if it
+receives a smaller id and then it propagates this id to all its
+neighbors.</p>
+<p>This algorithm can be implemented based on streaming the edges via
+GraphAr's reading interface. That is to say, the edges are accessed and
+processed chunk by chunk, instead of being loaded into memory at once
+(as in the BGL example).</p>
+<div class="language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// construct the edge collection in GraphAr</span><br></span><span class="token-line" style=" [...]
+<p>The file
+<a href="https://github.com/apache/incubator-graphar/blob/main/cpp/examples/cc_stream_example.cc" target="_blank" rel="noopener noreferrer">cc_stream_example.cc</a>
+located inside the source tree contains the complete implementation for
+this algorithm. Also, we can only process active vertices (the vertices
+which are updated in the last iteration) and the corresponding edges for
+each iteration, since an inactive vertex does not need to update its
+neighbors. Please refer to
+<a href="https://github.com/apache/incubator-graphar/blob/main/cpp/examples/cc_push_example.cc" target="_blank" rel="noopener noreferrer">cc_push_example.cc</a>
+for the complete code.</p>
+<div class="theme-admonition theme-admonition-tip admonition_Q5_n alert alert--success"><div class="admonitionHeading_X17j"><span class="admonitionIcon_AlVM"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+<strong>ordered_by_source</strong> edges are used to access all outgoing edges of
+an active vertex, and <strong>ordered_by_dest</strong> edges are used to access the
+incoming edges. In this way, all the neighbors of an active vertex can
+be accessed and processed.</p><p>Although GraphAr supports to get the outgoing (incoming) edges of a
+single vertex for all adjList types, it is most efficient when the
+type is <strong>ordered_by_source</strong> (<strong>ordered_by_dest</strong>) since it can avoid
+to read redundant data.</p></div></div>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="breadth-first-search">Breadth First Search<a href="#breadth-first-search" class="hash-link" aria-label="Direct link to Breadth First Search" title="Direct link to Breadth First Search"></a></h2>
+<p><a href="https://en.wikipedia.org/wiki/Breadth-first_search" target="_blank" rel="noopener noreferrer">Breadth First Search
+(BFS)</a> is a
+traversing algorithm that starts from a selected vertex (the root) and
+traverse the graph layer-wise thus exploring the neighbor vertices
+(vertices which are directly connected to the root), and then it moves
+towards the next-level neighbor vertices.</p>
+<p>An out-of-core BFS algorithm could be implemented based on streaming the
+graph data via GraphAr. For each vertex, a property named <em>distance</em> is
+created and initialized to represent the distance from the root to this
+vertex. As with the standard BFS algorithms in other graph processing
+systems, for the iteration/superstep <em>i</em> (starting from 0), the active
+vertices contain all vertices reachable from the root in <em>i</em> hops (i.e.,
+<em>distance[v]= i</em>). At the beginning of the algorithm, only the root
+vertex is active. This algorithm terminates when there are no more
+active vertices.</p>
+<div class="language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// construct the edge collection in GraphAr</span><br></span><span class="token-line" style=" [...]
+<p>The above algorithm is implemented based on streaming all edges for each
+iteration, the source code can be found at
+<a href="https://github.com/apache/incubator-graphar/blob/main/cpp/examples/bfs_stream_example.cc" target="_blank" rel="noopener noreferrer">bfs_stream_example.cc</a>.</p>
+<p>Meanwhile, BFS could be implemented in a <strong>push</strong>-style which only
+traverses the edges that from active vertices for each iteration, which
+is typically more efficient on real-world graphs. This implementation
+can be found at
+<a href="https://github.com/apache/incubator-graphar/blob/main/cpp/examples/bfs_push_example.cc" target="_blank" rel="noopener noreferrer">bfs_push_example.cc</a>.
+Similarly, we provide a BFS implementation in a <strong>pull</strong>-style which
+only traverses the edges that lead to non-visited vertices (i.e., the
+vertices that have not been traversed), as shown in
+<a href="https://github.com/apache/incubator-graphar/blob/main/cpp/examples/bfs_pull_example.cc" target="_blank" rel="noopener noreferrer">bfs_pull_example.cc</a>.</p>
+<div class="theme-admonition theme-admonition-tip admonition_Q5_n alert alert--success"><div class="admonitionHeading_X17j"><span class="admonitionIcon_AlVM"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+efficient when the set of active vertices is very sparse, while the
+<strong>pull</strong>-style fits when it is dense.</p></div></div>
+<p>In some cases, it is required to record the path of BFS, that is, to
+maintain each vertex's predecessor (also called <em>father</em>) in the
+traversing tree rather than only recording the distance. The
+implementation of BFS with recording fathers can be found at
+<a href="https://github.com/apache/incubator-graphar/blob/main/cpp/examples/bfs_father_example.cc" target="_blank" rel="noopener noreferrer">bfs_father_example.cc</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/libraries/cpp/examples/out-of-core.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColo [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libraries/cpp/examples/snap-to-graphar/index.html b/docs/libraries/cpp/examples/snap-to-graphar/index.html
new file mode 100644
index 0000000..068dbbf
--- /dev/null
+++ b/docs/libraries/cpp/examples/snap-to-graphar/index.html
@@ -0,0 +1,50 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-libraries/cpp/examples/snap-to-graphar" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">Convert SNAP Datasets to GraphAr Format | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https:// [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<p><a href="https://snap.stanford.edu/data/" target="_blank" rel="noopener noreferrer">SNAP</a> (Stanford Network Analysis
+Project) is a general-purpose network analysis and graph mining library.
+It provides a variety of datasets for research and development. In this
+section, we will show how to convert the SNAP datasets to GraphAr
+format, showcasing the process with the
+<a href="https://snap.stanford.edu/data/ego-Facebook.html" target="_blank" rel="noopener noreferrer">ego-Facebook</a> graph
+as a case study. The conversion leverages GraphInfo constructors and the
+high-level writer functions from the C++ library.</p>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="prepare-the-snap-dataset">Prepare the SNAP Dataset<a href="#prepare-the-snap-dataset" class="hash-link" aria-label="Direct link to Prepare the SNAP Dataset" title="Direct link to Prepare the SNAP Dataset"></a></h2>
+<p>Before converting, download the ego-Facebook dataset from the SNAP
+website. The dataset is a text file with each line representing an edge
+in the graph.</p>
+<div class="language-bash codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-bash codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">cd /path/to/your/dataset</span><br></span><span class="token-line" style="color:#393A34"><s [...]
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="convert-the-snap-dataset-to-graphar-format">Convert the SNAP Dataset to GraphAr Format<a href="#convert-the-snap-dataset-to-graphar-format" class="hash-link" aria-label="Direct link to Convert the SNAP Dataset to GraphAr Format" title="Direct link to Convert the SNAP Dataset to GraphAr Format"></a></h2>
+<p>The initial phase involves constructing VertexInfo, EdgeInfo, and
+GraphInfo objects, which are subsequently serialized into YAML files.
+For instance, the code snippet below illustrates the creation and
+storage of the vertex information file.</p>
+<div class="language-C++ language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">auto version = graphar::InfoVersion::Parse("gar/v1").value();</span><b [...]
+<p>Subsequently, we employ the high-level vertex and edge builders provided
+by the GraphAr C++ library to generate payload data files with vertex
+and edge data. The code snippet that follows demonstrates the generation
+and preservation of the edge data file.</p>
+<div class="language-C++ language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// construct edges builder</span><br></span><span class="token-line" style="colo [...]
+<p>For comprehensive insights into this example, please consult the
+accompanying <a href="https://github.com/apache/incubator-graphar/tree/main/docs/cpp/examples/snap_dataset_to_graphar.cc" target="_blank" rel="noopener noreferrer">source
+code</a>
+.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/libraries/cpp/examples/snap-to-graphar.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_z10d" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9 [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libraries/cpp/getting-started/index.html b/docs/libraries/cpp/getting-started/index.html
new file mode 100644
index 0000000..33c6625
--- /dev/null
+++ b/docs/libraries/cpp/getting-started/index.html
@@ -0,0 +1,157 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-libraries/cpp/getting-started" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">Getting Started | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/ [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<p>This article is a quick guide that explains how to work with GraphAr
+C++. To begin with, please refer to the <a href="https://github.com/apache/incubator-graphar/blob/main/README.rst#building-libraries" target="_blank" rel="noopener noreferrer">Building
+Steps</a>
+to install GraphAr.</p>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="gar-information-files">GAR Information Files<a href="#gar-information-files" class="hash-link" aria-label="Direct link to GAR Information Files" title="Direct link to GAR Information Files"></a></h2>
+<p>GAR uses a group of Yaml files to save the meta information for a graph.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="graph-information">Graph information<a href="#graph-information" class="hash-link" aria-label="Direct link to Graph information" title="Direct link to Graph information"></a></h3>
+<p>The graph information file defines the most basic information of a graph
+includes its name, the root directory path of the data files, the vertex
+information and edge information files it contains, and the version of
+GraphAr. For example, the file "ldbc_sample.graph.yml" defines an
+example graph named "ldbc_sample", which includes one type of vertices
+("person") and one type of edges ("person knows person").</p>
+<div class="language-Yaml language-yaml codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-yaml codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">name</span><span class="token punctuation" style=" [...]
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="vertex-information">Vertex information<a href="#vertex-information" class="hash-link" aria-label="Direct link to Vertex information" title="Direct link to Vertex information"></a></h3>
+<p>Each vertex information file defines a single group of vertices with the
+same vertex label, e.g., "person" in this case. The vertex chunk size,
+the relative path for vertex data files and the version of GraphAr are
+specified. These vertices could have some properties, which are divided
+into property groups. Each property group has its own file type (CSV,
+ORC or Parquet) and the prefix of the relative path for its data files,
+it also lists all properties in this group, with every property contains
+the name, data type and if it is the primary key.</p>
+<p>The file
+<a href="https://github.com/apache/incubator-graphar-testing/blob/main/ldbc_sample/csv/person.vertex.yml" target="_blank" rel="noopener noreferrer">person.vertex.yml</a>
+located inside the test data contains an example of the vertex
+information file. In this example, the "person" vertices have two
+property groups. The first group contains only one property (named "id")
+and the second group contains three properties ("firstName", "lastName"
+and "gender").</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="edge-information">Edge information<a href="#edge-information" class="hash-link" aria-label="Direct link to Edge information" title="Direct link to Edge information"></a></h3>
+<p>Each edge information file defines a single type of edges with specific
+labels for the source vertex, destination vertex and the edge, e.g.,
+"person_knows_person" in this case. It defines the meta information such
+as the edge chunk size, the source vertex chunk size, the destination
+vertex chunk size, if the edges are directed or not, the relative file
+path for edge data files, the adjLists and the version of GraphAr. The
+file
+<a href="https://github.com/apache/incubator-graphar-testing/blob/main/ldbc_sample/csv/person_knows_person.edge.yml" target="_blank" rel="noopener noreferrer">person_knows_person.edge.yml</a>
+located inside the test data contains an example of the edge information
+file.</p>
+<p>In GAR format, separate data files are used to store the structure
+(called adjList) and the properties for edges. The adjList type can be
+either of <strong>unordered_by_source</strong>, <strong>unordered_by_dest</strong>,
+<strong>ordered_by_source</strong> or <strong>ordered_by_dest</strong>. For a specific
+type of adjList, the meta information includes its file path prefix, the
+file type, as well as all the property groups attached.</p>
+<div class="theme-admonition theme-admonition-note admonition_Q5_n alert alert--secondary"><div class="admonitionHeading_X17j"><span class="admonitionIcon_AlVM"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
+edges at the same time.</p><p>::</p><h2 class="anchor anchorWithStickyNavbar_qibj" id="gar-data-files">GAR Data Files<a href="#gar-data-files" class="hash-link" aria-label="Direct link to GAR Data Files" title="Direct link to GAR Data Files"></a></h2><h3 class="anchor anchorWithStickyNavbar_qibj" id="property-data">Property data<a href="#property-data" class="hash-link" aria-label="Direct link to Property data" title="Direct link to Property data"></a></h3><p>The vertex properties are [...]
+chunk size specified by the vertex information file. Different property
+groups correspond to individual groups of data files. In our example,
+the property group ("first name", "last name", "gender") for vertex
+chunk 0 of "person" vertices are stored in
+<a href="https://github.com/apache/incubator-graphar-testing/blob/main/ldbc_sample/csv/vertex/person/firstName_lastName_gender/chunk0" target="_blank" rel="noopener noreferrer">./vertex/person/firstName_lastName_gender/chunk0</a>.</p><p>In practice of graph processing, it is common to only query a subset of
+columns of the properties. Thus, the column-oriented formats like Apache
+ORC and Apache Parquet are more efficient, which eliminate the need to
+read columns that are not relevant. We also provide data files in ORC
+and Parquet for the example graph in the <a href="https://github.com/apache/incubator-graphar-testing/blob/main/ldbc_sample/" target="_blank" rel="noopener noreferrer">test
+data</a>.</p><p>Similar with vertices, the edge properties are stored in edge property
+chunks. For each vertex chunk, its associated edges (if the edge type is
+<strong>ordered_by_source</strong> or <strong>unordered_by_source</strong>, the associated edges
+are those in which the source vertex is in that chunk; otherwise, if the
+edge type is <strong>ordered_by_dest</strong> or <strong>unordered_by_dest</strong>, the
+associated edges are those in which the destination is in that chunk)
+are maintained in some edge chunks, with the size of each chunk not
+exceeding the edge chunk size specified in the edge information file.</p><p>For instance, the file
+<a href="https://github.com/apache/incubator-graphar-testing/blob/main/ldbc_sample/csv/edge/person_knows_person/ordered_by_source/creationDate/part0/chunk0" target="_blank" rel="noopener noreferrer">./edge/person_knows_person/ordered_by_source/creationDate/part0/chunk0</a>
+stores the property group "creationDate" of "person_knows_person" edges
+for the first edge chunk of the first vertex chunk, and the adjList type
+of the edges is <strong>ordered_by_source</strong>.</p><h3 class="anchor anchorWithStickyNavbar_qibj" id="adjlist-data">AdjList data<a href="#adjlist-data" class="hash-link" aria-label="Direct link to AdjList data" title="Direct link to AdjList data"></a></h3><p>The adjList in GAR describes the topology structure, i.e., the internal
+id of the source vertex and the destination vertex for each of a group
+of edges. As explained in <a href="https://graphar.apache.org/docs/specification/format#edge-chunks-in-graphar" target="_blank" rel="noopener noreferrer">Edges in GraphAr</a>, the edges are separated
+into edge chunks, and each edge chunk has its own adjList table and 0 or
+more property tables.</p><p>For example, the file
+<a href="https://github.com/apache/incubator-graphar-testing/blob/main/ldbc_sample/csv/edge/person_knows_person/ordered_by_source/adj_list/part0/chunk0" target="_blank" rel="noopener noreferrer">./edge/person_knows_person/ordered_by_source/adj_list/part0/chunk0</a>
+saves the adjList of "person_knows_person" edges for the first edge
+chunk of the first vertex chunk, and the adjList type of the edges is
+"ordered_by_source". This adjList table consists of only two columns:
+one for the source and one for the destination; it can be saved in CSV,
+ORC, or Parquet files.</p><div class="theme-admonition theme-admonition-note admonition_Q5_n alert alert--secondary"><div class="admonitionHeading_X17j"><span class="admonitionIcon_AlVM"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-. [...]
+the index for accessing edges of a single vertex. These chunks will
+tore the start offset of each vertex's edges, see
+<a href="https://github.com/apache/incubator-graphar-testing/blob/main/ldbc_sample/csv/edge/person_knows_person/ordered_by_source/offset/chunk0" target="_blank" rel="noopener noreferrer">./edge/person_knows_person/ordered_by_source/offset/chunk0</a>
+as an example.</p></div></div></div></div>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="how-to-use-gar">How to Use GAR<a href="#how-to-use-gar" class="hash-link" aria-label="Direct link to How to Use GAR" title="Direct link to How to Use GAR"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="construct-information">Construct information<a href="#construct-information" class="hash-link" aria-label="Direct link to Construct information" title="Direct link to Construct information"></a></h3>
+<p>It is convenient to construct the GAR metadata and dump it to generate
+information files. We provide an <a href="https://github.com/apache/incubator-graphar/blob/main/cpp/examples/construct_info_example.cc" target="_blank" rel="noopener noreferrer">example
+program</a>
+located in the source code which shows how to construct and dump the
+files for graph information, vertex information and edge information.</p>
+<p>Also, the metadata of a graph can be constructed easily through reading
+the already existed information files, as the following code
+illustrates:</p>
+<div class="language-C++ language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// construct graph information from file</span><br></span><span class="token-lin [...]
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="read-gar-files">Read GAR files<a href="#read-gar-files" class="hash-link" aria-label="Direct link to Read GAR files" title="Direct link to Read GAR files"></a></h3>
+<p>GAR supports the flexible reading of graph data, e.g., allowing to read
+data of a single vertex, a vertex chunk, or all vertices with a specific
+label. In addition, necessary property groups can be selected to read
+and avoid reading all properties from the files. Furthermore, GAR
+provides convenient and flexible access to adjList, offset and property
+chunks for edges.</p>
+<p>As a simple case, the following example shows how to read all vertices
+with label "person" of the graph defined by "graph_info" and output the
+values of "id" and "firstName" for each vertex.</p>
+<div class="language-C++ language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">graph_info = ...</span><br></span><span class="token-line" style="color:#393A34" [...]
+<p>The next example reads all edges with label "person_knows_person" from
+the above graph and outputs the end vertices for each edge.</p>
+<div class="language-C++ language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">graph_info = ...</span><br></span><span class="token-line" style="color:#393A34" [...]
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="write-gar-files">Write GAR files<a href="#write-gar-files" class="hash-link" aria-label="Direct link to Write GAR files" title="Direct link to Write GAR files"></a></h3>
+<p>As same with the readers, the GAR writers provide different-level
+methods to output the graph data in memory into GAR files.</p>
+<p>As the simplest cases, the fist example below adds vertices to
+<strong>VerticesBuilder</strong>, and then dumps the data to files; the second
+example constructs a collection of edges and then dumps them.</p>
+<div class="language-C++ language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">vertex_info = ...</span><br></span><span class="token-line" style="color:#393A34 [...]
+<div class="language-C++ language-c++ codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-c++ codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">edge_info = ...</span><br></span><span class="token-line" style="color:#393A34"> [...]
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="a-pagerank-example">A PageRank Example<a href="#a-pagerank-example" class="hash-link" aria-label="Direct link to A PageRank Example" title="Direct link to A PageRank Example"></a></h3>
+<p>Here we will go through an example of out-of-core graph analytic
+algorithms based on GAR which calculates the PageRank. Please look
+<a href="https://en.wikipedia.org/wiki/PageRank" target="_blank" rel="noopener noreferrer">here</a> if you want a detailed
+explanation of the PageRank algorithm. And the source code can be found
+at
+<a href="https://github.com/apache/incubator-graphar/blob/main/cpp/examples/pagerank_example.cc" target="_blank" rel="noopener noreferrer">pagerank_example.cc</a>.</p>
+<p>This program first reads in the graph information file to obtain the
+metadata; then, it constructs the vertex and edge collections to enable
+access to the graph. After that, an implementation of the PageRank
+algorithm is provided, with data for the vertices stored in memory, and
+the edges streamed through disk I/O. Finally, the vertex information
+with type "person" is extended to include a new property named
+"pagerank" (a new vertex information file named
+<em>person-new-pagerank.vertex.yml</em> is saved) and the <strong>VerticesBuilder</strong>
+is used to write the results to new generated data chunks.</p>
+<p>Please refer to <a href="/docs/libraries/cpp/examples/out-of-core">more examples</a> to learn
+about the other available case studies utilizing GraphAr.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/libraries/cpp/getting-started.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_z10d" aria-hidden="true"><g><path d="m34.5 11.7l-3 3. [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libraries/cpp/index.html b/docs/libraries/cpp/index.html
deleted file mode 100644
index 78dcfc6..0000000
--- a/docs/libraries/cpp/index.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!doctype html>
-<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-libraries/cpp" data-has-hydrated="false">
-<head>
-<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.1.1">
-<title data-rh="true">C++ Library | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/libr [...]
-<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
-</head>
-<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
- <p>
- Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
- </p>
- <p>
- Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
- Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
- </p>
- </div></div></div></div></footer></div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/libraries/index.html b/docs/libraries/index.html
deleted file mode 100644
index 345b749..0000000
--- a/docs/libraries/index.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!doctype html>
-<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-libraries/libraries" data-has-hydrated="false">
-<head>
-<meta charset="UTF-8">
-<meta name="generator" content="Docusaurus v3.1.1">
-<title data-rh="true">Libraries | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/librar [...]
-<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
-</head>
-<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
- <p>
- Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
- </p>
- <p>
- Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
- Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
- </p>
- </div></div></div></div></footer></div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/libraries/java/how_to_develop_java/index.html b/docs/libraries/java/how_to_develop_java/index.html
new file mode 100644
index 0000000..fbb81dd
--- /dev/null
+++ b/docs/libraries/java/how_to_develop_java/index.html
@@ -0,0 +1,69 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-libraries/java/how_to_develop_java" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">How to Develop Java Library | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apac [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<p>GraphAr Java library based on GraphAr C++ library and an efficient FFI
+for Java and C++ called
+<a href="https://github.com/alibaba/fastFFI" target="_blank" rel="noopener noreferrer">FastFFI</a>.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="source-code-level">Source Code Level<a href="#source-code-level" class="hash-link" aria-label="Direct link to Source Code Level" title="Direct link to Source Code Level"></a></h3>
+<ul>
+<li>Interface</li>
+<li>Class</li>
+<li>JNI code</li>
+<li>GraphAr C++ library</li>
+</ul>
+<p>If you want to use classes or functions of GraphAr C++ library through
+JAVA SDK, you only need to write interfaces with annotations. After the
+interfaces are ready, the java code for the interfaces and the the C++
+code which include JNI code for native methods will be automatically
+generated by FastFFI.For annotation’s usage, please refer to
+<a href="https://github.com/alibaba/fastFFI" target="_blank" rel="noopener noreferrer">FastFFI</a>.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="runtime-level">Runtime Level<a href="#runtime-level" class="hash-link" aria-label="Direct link to Runtime Level" title="Direct link to Runtime Level"></a></h3>
+<p>Interfaces and classes will be compiled to bytecode. Usually, JNI code
+will be compiled to bitcode as a part of dynamic library which can be
+called by native methods directly. If llvm4jni is enable, suitable
+method in JNI will be transferred to bytecode.</p>
+<p>For decoupling the implementation of C++ and Java, we use a bridge
+dynamic library called gar-jni to connect them, it will integrate all
+C++ dependencies(e.g. JNI code, GraphAr C++ library and arrow C++) and
+can be called by native methods in Java directly. Most JNI code is
+generated by FastFFI, but some JNI code is written by ourselves, such as
+JNI code for transferring VectorSchemaRoot into arrow::Table.</p>
+<p>To build the bridge dynamic library, here is main part of our CMakeLists.txt:</p>
+<div class="language-cmake codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-cmake codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain"># set auto-generated JNI code and handwriting JNI code as source files</span><br></span>< [...]
+<p>More about usage of CMake, please refer to
+<a href="https://cmake.org/" target="_blank" rel="noopener noreferrer">CMake's official website</a>.</p>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="building-graphar-java">Building GraphAr Java<a href="#building-graphar-java" class="hash-link" aria-label="Direct link to Building GraphAr Java" title="Direct link to Building GraphAr Java"></a></h2>
+<p>Please refer to
+<a href="/docs/libraries/java/">GraphAr Java Library user guide</a>.</p>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="how-to-test">How To Test<a href="#how-to-test" class="hash-link" aria-label="Direct link to How To Test" title="Direct link to How To Test"></a></h2>
+<div class="language-bash codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-bash codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">$ export GAR_TEST_DATA=$PWD/../testing/</span><br></span><span class="token-line" style="co [...]
+<p>This will build GraphAr C++ library internally for Java. If you already
+installed GraphAr C++ library in your system, you can append this option
+to skip: <code>-DbuildGarCPP=OFF</code>.</p>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="code-style">Code Style<a href="#code-style" class="hash-link" aria-label="Direct link to Code Style" title="Direct link to Code Style"></a></h2>
+<p>We follow
+<a href="https://source.android.com/docs/setup/contribute/code-style" target="_blank" rel="noopener noreferrer">AOSP Java code style</a>.
+To ensure CI for checking code style will pass, please ensure check
+below is success:</p>
+<div class="language-bash codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-bash codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">$ mvn spotless:check</span><br></span></code></pre><div class="buttonGroup_oM_0"><button ty [...]
+<p>If there are violations, running command below to automatically format:</p>
+<div class="language-bash codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-bash codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">$ mvn spotless:apply</span><br></span></code></pre><div class="buttonGroup_oM_0"><button ty [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libraries/java/index.html b/docs/libraries/java/index.html
new file mode 100644
index 0000000..30873fb
--- /dev/null
+++ b/docs/libraries/java/index.html
@@ -0,0 +1,123 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-libraries/java/java" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">Java Library | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/lib [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<p>Based on an efficient FFI for Java and C++ called
+<a href="https://github.com/alibaba/fastFFI" target="_blank" rel="noopener noreferrer">fastFFI</a>, the GraphAr Java
+library allows users to write Java for generating, loading and
+transforming GAR files. It consists of several components:</p>
+<ul>
+<li>
+<p><strong>Information Classes</strong>: As same with in the C++ library, the
+information classes are implemented to construct and access the meta
+information about the <strong>graphs</strong>, <strong>vertices</strong> and <strong>edges</strong> in
+GraphAr.</p>
+</li>
+<li>
+<p><strong>Writers</strong>: The GraphAr Java writer provides a set of interfaces
+that can be used to write Apache Arrow VectorSchemaRoot into GAR
+files. Every time it takes a VectorSchemaRoot as the logical table
+for a type of vertices or edges, then convert it to ArrowTable, and
+then dumps it to standard GAR files (CSV, ORC or Parquet files) under
+the specific directory path.</p>
+</li>
+<li>
+<p><strong>Readers</strong>: The GraphAr Java reader provides a set of interfaces
+that can be used to read GAR files. It reads a collection of vertices
+or edges at a time and assembles the result into the ArrowTable.
+Similar with the reader in the C++ library, it supports the users to
+specify the data they need, e.g., reading a single property group
+instead of all properties.</p>
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="get-graphar-java-library">Get GraphAr Java Library<a href="#get-graphar-java-library" class="hash-link" aria-label="Direct link to Get GraphAr Java Library" title="Direct link to Get GraphAr Java Library"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="building-from-source">Building from source<a href="#building-from-source" class="hash-link" aria-label="Direct link to Building from source" title="Direct link to Building from source"></a></h3>
+<p>Only support installing from source currently, but we will support
+installing from Maven in the future.</p>
+<p>Firstly, install llvm-11. <code>LLVM11_HOME</code> should point to the home of
+LLVM 11. In Ubuntu, it is at <code>/usr/lib/llvm-11</code>. Basically, the build
+procedure the following binary:</p>
+<ul>
+<li><code>$LLVM11_HOME/bin/clang++</code></li>
+<li><code>$LLVM11_HOME/bin/ld.lld</code></li>
+<li><code>$LLVM11_HOME/lib/cmake/llvm</code></li>
+</ul>
+<p>Tips:</p>
+<ul>
+<li>Use Ubuntu as example:</li>
+</ul>
+<div class="language-bash codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-bash codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">$ sudo apt-get install llvm-11 clang-11 lld-11 libclang-11-dev libz-dev -y</span><br></span [...]
+<ul>
+<li>Or compile from source with this <a href="https://github.com/alibaba/fastFFI/blob/main/docker/install-llvm11.sh" target="_blank" rel="noopener noreferrer">script</a>:</li>
+</ul>
+<div class="language-bash codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-bash codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">$ export LLVM11_HOME=/usr/lib/llvm-11</span><br></span><span class="token-line" style="colo [...]
+<p>Make the graphar-java-library directory as the current working
+directory:</p>
+<div class="language-bash codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-bash codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">$ git clone https://github.com/apache/incubator-graphar.git</span><br></span><span class="t [...]
+<p>Compile package:</p>
+<div class="language-bash codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-bash codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">$ mvn clean install -DskipTests</span><br></span></code></pre><div class="buttonGroup_oM_0" [...]
+<p>This will build GraphAr C++ library internally for Java. If you already installed GraphAr C++ library in your system,
+you can append this option to skip: <code>-DbuildGarCPP=OFF</code>.</p>
+<p>Then set GraphAr as a dependency in maven project:</p>
+<div class="language-xml codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-xml codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34"><</span><span class="token tag" style="color:#00009f">depe [...]
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="how-to-use">How to use<a href="#how-to-use" class="hash-link" aria-label="Direct link to How to use" title="Direct link to How to use"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="information-classes">Information classes<a href="#information-classes" class="hash-link" aria-label="Direct link to Information classes" title="Direct link to Information classes"></a></h3>
+<p>The Java library for GraphAr provides distinct information classes for
+constructing and accessing meta information about graphs, vertices, and
+edges. These classes act as essential parameters for constructing
+readers and writers, and they can be built either from the existing meta
+files (in the Yaml format) or in-memory from scratch.</p>
+<p>To construct information from a Yaml file, please refer to the following
+example code.</p>
+<div class="language-java codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-java codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// read graph yaml and construct information</span><br></span><span class="token-line" styl [...]
+<p>See <a href="https://github.com/apache/incubator-graphar/tree/main/java/src/test/java/com/apache/incubator-graphar/graphinfo" target="_blank" rel="noopener noreferrer">test for
+graphinfo</a>
+for the complete example.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="writers">Writers<a href="#writers" class="hash-link" aria-label="Direct link to Writers" title="Direct link to Writers"></a></h3>
+<p>The GraphAr Java writers wrap C++ interfaces to write arrow::Table into GraphAr
+formatted files in a batch-import fashion. But arrow::Table is not easy
+to build in Java. Instead, the GraphAr Java library provide a static
+method to convert VectorSchemaRoot into arrow::Table. Warning: There are
+some problems concerning this method which lead to memory leaks. We will
+fix it or rewrite writers with Apache arrow Java.</p>
+<p>With the VertexWriter, users can specify a particular property group to
+be written into its corresponding chunks, or choose to write all
+property groups. For edge chunks, besides the meta data (edge info), the
+adjList type should also be specified. The adjList/properties can be
+written alone, or alternatively, all adjList, properties, and the offset
+(for CSR and CSC format) chunks can be written simultaneously.</p>
+<p>To utilize the GAR Java writer, please refer to the following example
+code.</p>
+<div class="language-java codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-java codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// common steps to construct VectorSchemaRoot</span><br></span><span class="token-line" sty [...]
+<p>See <a href="https://github.com/apache/incubator-graphar/tree/main/java/src/test/java/com/apache/incubator-graphar/writers" target="_blank" rel="noopener noreferrer">test for
+writers</a>
+for the complete example.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="readers">Readers<a href="#readers" class="hash-link" aria-label="Direct link to Readers" title="Direct link to Readers"></a></h3>
+<p>The GraphAr Java reader provides an extensive set of interfaces to read
+GAR files. It reads a collection of vertices or edges at a time as
+ArrowTable. Similar with the reader in C++ library, it supports the
+users to specify the data they need, e.g., a single property group.</p>
+<p>To utilize the GAR Java reader, please refer to the following example
+code.</p>
+<div class="language-java codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-java codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// construct vertex chunk reader</span><br></span><span class="token-line" style="color:#39 [...]
+<p>See <a href="https://github.com/apache/incubator-graphar/tree/main/java/src/test/java/com/apache/incubator-graphar/readers" target="_blank" rel="noopener noreferrer">test for
+readers</a>
+for the complete example.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/libraries/java/java.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_z10d" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3. [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libraries/pyspark/how-to/index.html b/docs/libraries/pyspark/how-to/index.html
new file mode 100644
index 0000000..9f762c8
--- /dev/null
+++ b/docs/libraries/pyspark/how-to/index.html
@@ -0,0 +1,93 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-libraries/pyspark/how-to" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">How to use GraphAr PySpark package | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graph [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<p><code>graphar_pyspark</code> is implemented as bindings to GraphAr spark scala
+library. You should have <code>graphar-0.1.0-SNAPSHOT.jar</code> in your
+Apache Spark JVM classpath. Otherwise you will get an exception. To
+add it specify <code>config("spark.jars", "path-to-graphar-jar")</code> when
+you create a SparkSession:</p>
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">from</span><span class="token plain"> pyspark</span><span class [...]
+<p>.. rubric:: GraphAr PySpark initialize
+:name: graphar-pyspark-initialize</p>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="graphar-pyspark-initialize">GraphAr PySpark initialize<a href="#graphar-pyspark-initialize" class="hash-link" aria-label="Direct link to GraphAr PySpark initialize" title="Direct link to GraphAr PySpark initialize"></a></h2>
+<p>PySpark bindings are heavily relying on JVM-calls via <code>py4j</code>. To
+initiate all the neccessary things for it just call
+<code>graphar_pyspark.initialize()</code>:</p>
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">from</span><span class="token plain"> graphar_pyspark </span><s [...]
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="graphar-objects">GraphAr objects<a href="#graphar-objects" class="hash-link" aria-label="Direct link to GraphAr objects" title="Direct link to GraphAr objects"></a></h2>
+<p>Now you can import, create and modify all the classes you can
+call from <a href="https://graphar.apache.org/docs/spark/" target="_blank" rel="noopener noreferrer">scala API of GraphAr</a>.
+For simplify using of graphar from python constants, like GAR-types,
+supported file-types, etc. are placed in <code>graphar_pyspark.enums</code>.</p>
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">from</span><span class="token plain"> graphar_pyspark</span><sp [...]
+<p>Main objects of GraphAr are the following:</p>
+<ul>
+<li>GraphInfo</li>
+<li>VertexInfo</li>
+<li>EdgeInfo</li>
+</ul>
+<p>You can check <a href="/docs/libraries/spark/">Scala library documentation</a>
+for the more detailed information.</p>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="creating-objects-in-graphar_pyspark">Creating objects in graphar_pyspark<a href="#creating-objects-in-graphar_pyspark" class="hash-link" aria-label="Direct link to Creating objects in graphar_pyspark" title="Direct link to Creating objects in graphar_pyspark"></a></h2>
+<p>GraphAr PySpark package provide two main ways how to initiate
+objects, like <code>GraphInfo</code>:</p>
+<p>#. <code>from_python(**args)</code> when you create an object based on
+python-arguments
+#. <code>from_scala(jvm_ref)</code> when you create an object from the
+corresponded JVM-object (<code>py4j.java_gateway.JavaObject</code>)</p>
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token builtin">help</span><span class="token punctuation" style="color:#393A34">(</span><span class= [...]
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">python_property </span><span class="token operator" style="color:#393A34">=</span><span [...]
+<p>You can always get a reference to the corresponding JVM object. For
+example, if you want to use it in your own code and need a direct link
+to the underlaying instance of Scala Class, you can just call
+<code>to_scala()</code> method:</p>
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">scala_obj </span><span class="token operator" style="color:#393A34">=</span><span class [...]
+<p>As we already mentioned, you can initialize an instance of the Python
+class from the JVM object:</p>
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token builtin">help</span><span class="token punctuation" style="color:#393A34">(</span><span class= [...]
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">python_property </span><span class="token operator" style="color:#393A34">=</span><span [...]
+<p>Each public property and method of the Scala API is provided in
+python, but in a pythonic-naming convention. For example, in Scala,
+<code>Property</code> has the following fields:</p>
+<ul>
+<li>name</li>
+<li>data_type</li>
+<li>is_primary</li>
+</ul>
+<p>For each of such a field in Scala API there is a getter and setter
+methods. You can call them from the Python too:</p>
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">python_property</span><span class="token punctuation" style="color:#393A34">.</span><sp [...]
+<p>You can also modify fields, but be careful: when you modify field of
+instance of the Python class, you modify the underlaying Scala Object
+at the same moment!</p>
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">new_name </span><span class="token operator" style="color:#393A34">=</span><span class= [...]
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="loading-info-objects-from-yaml">Loading Info objects from YAML<a href="#loading-info-objects-from-yaml" class="hash-link" aria-label="Direct link to Loading Info objects from YAML" title="Direct link to Loading Info objects from YAML"></a></h2>
+<p>But manual creating of objects is not a primary way of using GraphAr
+PySpark. <code>GraphInfo</code>, <code>VertexInfo</code> and <code>EdgeInfo</code> can be also
+initialized by reading from YAML-files:</p>
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">modern_graph_v_person </span><span class="token operator" style="color:#393A34">=</span [...]
+<p>After that you can work with such an objects like regular python
+objects:</p>
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">print</span><span class="token punctuation" style="color:#393A3 [...]
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">print</span><span class="token punctuation" style="color:#393A3 [...]
+<p>Please, refer to Scala API and examples of GraphAr Spark Scala
+library to see detailed and business-case oriented examples!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/libraries/pyspark/how-to.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_z10d" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1- [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libraries/pyspark/index.html b/docs/libraries/pyspark/index.html
new file mode 100644
index 0000000..740b547
--- /dev/null
+++ b/docs/libraries/pyspark/index.html
@@ -0,0 +1,89 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-libraries/pyspark/pyspark" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">PySpark Library | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/ [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+the main API is Scala Spark API. PySpark API follows scala Spark API.
+Please refer to <a href="/docs/libraries/spark/">GraphAr Spark library</a>
+for more detailed information about how to use GraphAr with Apache
+Spark.</p></div></div>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview"></a></h2>
+<p>The GraphAr PySpark library is provided for generating, loading and
+transforming GAR files with PySpark.</p>
+<ul>
+<li><strong>Information Classes</strong>: As same with in the C++ library, the
+information classes are implemented as a part of the PySpark library
+for constructing and accessing the meta information about the graphs,
+vertices and edges in GraphAr.</li>
+<li><strong>IndexGenerator</strong>: The IndexGenerator helps to generate the indices
+for vertex/edge DataFrames. In most cases, IndexGenerator is first
+utilized to generate the indices for a DataFrame (e.g., from primary
+keys), and then this DataFrame can be written into GAR files through
+the writer.</li>
+<li><strong>Writer</strong>: The GraphAr PySpark writer provides a set of interfaces
+that can be used to write Spark DataFrames into GAR files. Every time
+it takes a DataFrame as the logical table for a type of vertices or
+edges, assembles the data in specified format (e.g., reorganize the
+edges in the CSR way) and then dumps it to standard GAR files (CSV,
+ORC or Parquet files) under the specific directory path.</li>
+<li><strong>Reader</strong>: The GraphAr PySpark reader provides a set of interfaces
+that can be used to read GAR files. It reads a collection of vertices
+or edges at a time and assembles the result into the Spark DataFrame.
+Similar with the reader in the C++ library, it supports the users to
+specify the data they need, e.g., reading a single property group
+instead of all properties.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="use-cases">Use Cases<a href="#use-cases" class="hash-link" aria-label="Direct link to Use Cases" title="Direct link to Use Cases"></a></h2>
+<p>The GraphAr Spark library can be used in a range of scenarios:</p>
+<ul>
+<li>Taking GAR as a data source to execute SQL queries or do graph
+processing (e.g., using GraphX).</li>
+<li>Transforming data between GAR and other data sources (e.g., Hive,
+Neo4j, NebulaGraph, …).</li>
+<li>Transforming GAR data between different file types (e.g., from ORC to
+Parquet).</li>
+<li>Transforming GAR data between different adjList types (e.g., from COO
+to CSR).</li>
+<li>Modifying existing GAR data (e.g., adding new vertices/edges).</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="get-graphar-spark-library">Get GraphAr Spark Library<a href="#get-graphar-spark-library" class="hash-link" aria-label="Direct link to Get GraphAr Spark Library" title="Direct link to Get GraphAr Spark Library"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="building-from-source">Building from source<a href="#building-from-source" class="hash-link" aria-label="Direct link to Building from source" title="Direct link to Building from source"></a></h3>
+<p>GraphAr PySpark uses poetry as a build system. Please refer to
+<a href="https://python-poetry.org/docs/#installation" target="_blank" rel="noopener noreferrer">Poetry documentation</a>
+to find the manual how to install this tool. Currently GraphAr PySpark
+is build with Python 3.9 and PySpark 3.2</p>
+<p>Make the graphar-pyspark-library directory as the current working
+directory:</p>
+<div class="language-bash codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-bash codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">cd GraphAr/pyspark</span><br></span></code></pre><div class="buttonGroup_oM_0"><button type [...]
+<p>Build package:</p>
+<div class="language-bash codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-bash codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">poetry build</span><br></span></code></pre><div class="buttonGroup_oM_0"><button type="butt [...]
+<p>After compilation, a similar file <em>graphar_pyspark-0.0.1.tar.gz</em> is
+generated in the directory <em>pyspark/dist/</em>.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="get-from-pypi">Get from PyPI<a href="#get-from-pypi" class="hash-link" aria-label="Direct link to Get from PyPI" title="Direct link to Get from PyPI"></a></h3>
+<p>You cannot install graphar-pyspark from PyPi for now.</p>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="how-to-use">How to Use<a href="#how-to-use" class="hash-link" aria-label="Direct link to How to Use" title="Direct link to How to Use"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="initialization">Initialization<a href="#initialization" class="hash-link" aria-label="Direct link to Initialization" title="Direct link to Initialization"></a></h3>
+<p>GraphAr PySpark is not a standalone library but bindings to GraphAr
+Scala. You need to have <em>graphar-spark-x.x.x.jar</em> in your <em>spark-jars</em>.
+Please refer to <a href="/docs/libraries/spark/">GraphAr scala documentation</a> to get
+this JAR.</p>
+<div class="language-python codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-python codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token operator" style="color:#393A34">//</span><span class="token plain"> create a SparkSession </sp [...]
+<p>After initialization you can use the same API like in GraphAr scala
+library.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/libraries/pyspark/pyspark.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_z10d" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0 [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libraries/spark/examples/index.html b/docs/libraries/spark/examples/index.html
new file mode 100644
index 0000000..1b128a2
--- /dev/null
+++ b/docs/libraries/spark/examples/index.html
@@ -0,0 +1,74 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-libraries/spark/examples" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">Examples | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/librari [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<p><a href="https://spark.apache.org/" target="_blank" rel="noopener noreferrer">Apache Spark</a> is a multi-language engine for executing data engineering, data science, and machine learning on single-node machines or clusters. The GraphAr Spark library is developed to make the integration of GraphAr with Spark easy. This library allows users to efficiently generate, load, and transform GAR files, and to integrate GraphAr with other Spark-compatible systems.</p>
+<p>Examples of this co-working integration have been provided as showcases.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="examples">Examples<a href="#examples" class="hash-link" aria-label="Direct link to Examples" title="Direct link to Examples"></a></h3>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="transform-gar-files">Transform GAR files<a href="#transform-gar-files" class="hash-link" aria-label="Direct link to Transform GAR files" title="Direct link to Transform GAR files"></a></h3>
+<p>We provide an example in <a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/test/scala/com/apache/incubator-graphar/TestGraphTransformer.scala" target="_blank" rel="noopener noreferrer">TestGraphTransformer.scala</a>, which demonstrates
+how to conduct data transformation at the graph level. <a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/test/scala/com/apache/incubator-graphar/TransformExample.scala" target="_blank" rel="noopener noreferrer">TransformExample.scala</a> is
+another example for graph data conversion between different file types or different
+adjList types, which is implemented at the vertex/edge table level. To do this,
+the original data is first loaded into a Spark DataFrame using the GraphAr Spark Reader.
+Then, the DataFrame is written into generated GAR files through a GraphAr Spark Writer,
+following the meta data defined in a new information file.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="compute-with-graphx">Compute with GraphX<a href="#compute-with-graphx" class="hash-link" aria-label="Direct link to Compute with GraphX" title="Direct link to Compute with GraphX"></a></h3>
+<p>Another important use case of GraphAr is to use it as a data source for graph
+computing or analytics; <a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/test/scala/com/apache/incubator-graphar/ComputeExample.scala" target="_blank" rel="noopener noreferrer">ComputeExample.scala</a> provides an example of constructing
+a GraphX graph from reading GAR files and executing a connected-components computation.
+Also, executing queries with Spark SQL and running other graph analytic algorithms
+can be implemented in a similar fashion.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="importexport-graphs-of-neo4j">Import/Export graphs of Neo4j<a href="#importexport-graphs-of-neo4j" class="hash-link" aria-label="Direct link to Import/Export graphs of Neo4j" title="Direct link to Import/Export graphs of Neo4j"></a></h3>
+<p><a href="https://neo4j.com/product/neo4j-graph-database" target="_blank" rel="noopener noreferrer">Neo4j</a> graph database provides
+a <a href="https://neo4j.com/docs/spark/current/overview/" target="_blank" rel="noopener noreferrer">spark connector</a> for integration
+with Spark. The Neo4j Spark Connector, combined with the GraphAr Spark library,
+enables us to migrate graph data between Neo4j and GraphAr. This is also a key application
+of GraphAr in which it acts as a persistent storage of graph data in the database.</p>
+<p>We provide two example programs that demonstrate how GraphAr can be used in conjunction
+with Neo4j. It utilizes one of the built-in Neo4j datasets, the <a href="https://neo4j.com/developer/example-data/#built-in-examples" target="_blank" rel="noopener noreferrer">Movie Graph</a>,
+which is a mini graph application containing actors and directors that are related through the movies they have collaborated on.
+Given some necessary information like the chunk size, the prefix of the file path, and the file type,
+the program can read the graph data from Neo4j and write it into GraphAr files.
+When exporting graph data from Neo4j and writing to GraphAr, please refer to the following code,
+with <a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/main/scala/com/apache/incubator-graphar/example/Neo4j2GraphAr.scala" target="_blank" rel="noopener noreferrer">Neo4j2GraphAr.scala</a> providing a complete example.</p>
+<div class="language-scala codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-scala codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">def main(args: Array[String]): Unit = {</span><br></span><span class="token-line" style=" [...]
+<p>The <code>readAndPutDataIntoWriter</code> method read the vertex and edge from Neo4j to DataFrame
+(Refer to <a href="https://neo4j.com/docs/spark/current/reading/" target="_blank" rel="noopener noreferrer">Neo4j docs</a> for more details),
+and then put then into a GraphAr GraphWriter.</p>
+<div class="language-scala codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-scala codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">def readAndPutDataIntoWriter(writer: GraphWriter, spark: SparkSession): Unit = {</span><b [...]
+<p>Finally, the <code>write</code> method writes the graph data in GraphAr format to the specified path.</p>
+<p>Additionally, when importing data from GraphAr to create/update instances in Neo4j, please refer to the following code:</p>
+<div class="language-scala codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-scala codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">def main(args: Array[String]): Unit = {</span><br></span><span class="token-line" style=" [...]
+<p>Pass the graph information file path to <code>loadGraphInfo</code> method to get the graph information.
+Then, read the graph data from GraphAr files with <code>GraphReader</code> as DataFrame pair,
+<code>_1</code> for vertices and <code>_2</code> for edges.</p>
+<p>The <code>putVertexDataIntoNeo4j</code> and <code>putEdgeDataIntoNeo4j</code> methods creates or updates the vertices DataFrame and edges DataFrame in Neo4j.</p>
+<div class="language-scala codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-scala codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">def putVertexDataIntoNeo4j(graphInfo: GraphInfo,</span><br></span><span class="token-line [...]
+<p>Finally, you will see the graph in Neo4j Browser after running the above code.</p>
+<p>See <a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/main/scala/com/apache/incubator-graphar/example/GraphAr2Neo4j.scala" target="_blank" rel="noopener noreferrer">GraphAr2Neo4j.scala</a> for the complete example.</p>
+<blockquote>
+<p><strong>tip:</strong></p>
+<ul>
+<li>The Neo4j Spark Connector offers different save modes and writing options, such as Append(CREATE) or Overwrite(MERGE). Please refer to its <a href="https://neo4j.com/docs/spark/current/writing/" target="_blank" rel="noopener noreferrer">documentation</a> for more information and take the most appropriate method while using.</li>
+<li>The Neo4j Spark Connector supports to use <a href="https://neo4j.com/docs/spark/current/streaming" target="_blank" rel="noopener noreferrer">Spark structured streaming API</a>, which works differently from Spark batching. One can utilize this API to read/write a stream from/to Neo4j, avoiding to maintain all data in the memory.</li>
+</ul>
+</blockquote></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/libraries/spark/examples.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_z10d" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0 [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libraries/spark/index.html b/docs/libraries/spark/index.html
new file mode 100644
index 0000000..dd4f4d3
--- /dev/null
+++ b/docs/libraries/spark/index.html
@@ -0,0 +1,94 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-libraries/spark/spark" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.1.1">
+<title data-rh="true">Spark Library | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/li [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<p>The GraphAr Spark library is provided for generating, loading and transforming GAR files with Apache Spark easy. It consists of several components:</p>
+<ul>
+<li><strong>Information Classes</strong>: As same with in the C++ library, the information classes are implemented as a part of the Spark library for constructing and accessing the meta information about the graphs, vertices and edges in GraphAr.</li>
+<li><strong>IndexGenerator</strong>: The IndexGenerator helps to generate the indices for vertex/edge DataFrames. In most cases, IndexGenerator is first utilized to generate the indices for a DataFrame (e.g., from primary keys), and then this DataFrame can be written into GAR files through the writer.</li>
+<li><strong>Writer</strong>: The GraphAr Spark writer provides a set of interfaces that can be used to write Spark DataFrames into GAR files. Every time it takes a DataFrame as the logical table for a type of vertices or edges, assembles the data in specified format (e.g., reorganize the edges in the CSR way) and then dumps it to standard GAR files (CSV, ORC or Parquet files) under the specific directory path.</li>
+<li><strong>Reader</strong>: The GraphAr Spark reader provides a set of interfaces that can be used to read GAR files. It reads a collection of vertices or edges at a time and assembles the result into the Spark DataFrame. Similar with the reader in the C++ library, it supports the users to specify the data they need, e.g., reading a single property group instead of all properties.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="use-cases">Use Cases<a href="#use-cases" class="hash-link" aria-label="Direct link to Use Cases" title="Direct link to Use Cases"></a></h2>
+<p>The GraphAr Spark library can be used in a range of scenarios:</p>
+<ul>
+<li>Taking GAR as a data source to execute SQL queries or do graph processing (e.g., using GraphX).</li>
+<li>Transforming data between GAR and other data sources (e.g., Hive, Neo4j, NebulaGraph, ...).</li>
+<li>Transforming GAR data between different file types (e.g., from ORC to Parquet).</li>
+<li>Transforming GAR data between different adjList types (e.g., from COO to CSR).</li>
+<li>Modifying existing GAR data (e.g., adding new vertices/edges).</li>
+</ul>
+<p>For more information on its usage, please refer to the <a href="/docs/libraries/spark/examples">Examples</a>.</p>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="get-graphar-spark-library">Get GraphAr Spark Library<a href="#get-graphar-spark-library" class="hash-link" aria-label="Direct link to Get GraphAr Spark Library" title="Direct link to Get GraphAr Spark Library"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="building-from-source">Building from source<a href="#building-from-source" class="hash-link" aria-label="Direct link to Building from source" title="Direct link to Building from source"></a></h3>
+<p>Make the graphar-spark-library directory as the current working directory:</p>
+<div class="language-bash codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-bash codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">cd GraphAr/spark/</span><br></span></code></pre><div class="buttonGroup_oM_0"><button type= [...]
+<p>Compile package:</p>
+<div class="language-bash codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-bash codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">mvn clean package -DskipTests</span><br></span></code></pre><div class="buttonGroup_oM_0">< [...]
+<p>GraphAr supports two Apache Spark versions for now and uses Maven Profiles to work with it. The command above built GraphAr with Spark 3.2.2 by default. To built GraphAr with Spark 3.3.4 use the following command:</p>
+<div class="language-bash codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-bash codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">mvn clean package -DskipTests -P datasources-33</span><br></span></code></pre><div class="b [...]
+<p>After compilation, a similar file <em>graphar-x.x.x-SNAPSHOT-shaded.jar</em> is generated in the directory <em>spark/graphar/target/</em>.</p>
+<p>Please refer to the <a href="https://github.com/apache/incubator-graphar/tree/main/spark" target="_blank" rel="noopener noreferrer">building steps</a> for more details.</p>
+<h2 class="anchor anchorWithStickyNavbar_qibj" id="how-to-use">How to Use<a href="#how-to-use" class="hash-link" aria-label="Direct link to How to Use" title="Direct link to How to Use"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="information-classes">Information classes<a href="#information-classes" class="hash-link" aria-label="Direct link to Information classes" title="Direct link to Information classes"></a></h3>
+<p>The Spark library for GraphAr provides distinct information classes for constructing and accessing meta information about graphs, vertices, and edges. These classes act as essential parameters for constructing readers and writers, and they can be built either from the existing meta files (in the Yaml format) or in-memory from scratch.</p>
+<p>To construct information from a Yaml file, please refer to the following example code.</p>
+<div class="language-scala codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-scala codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// read graph yaml and construct information</span><br></span><span class="token-line" st [...]
+<p>See <a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/test/scala/com/apache/incubator-graphar/TestGraphInfo.scala" target="_blank" rel="noopener noreferrer">TestGraphInfo.scala</a> for the complete example.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="indexgenerator">IndexGenerator<a href="#indexgenerator" class="hash-link" aria-label="Direct link to IndexGenerator" title="Direct link to IndexGenerator"></a></h3>
+<p>The GraphAr file format assigns each vertex with a unique index inside the vertex type (which called internal vertex id) starting from 0 and increasing continuously for each type of vertex (i.e., with the same vertex label). However, the vertex/edge tables in Spark often lack this information, requiring special attention. For example, an edge table typically uses the primary key (e.g., "id", which is a string) to identify its source and destination vertices.</p>
+<p>To address this issue, the GraphAr Spark library offers the IndexGenerator which is used to generate indices for vertex/edge DataFrames. For a vertex DataFrame, a mapping from the primary keys to GAR indices can be constructed, or an index column can be generated directly if no primary keys are available. For an edge DataFrame, source and destination columns can be generated from the vertex index mapping (when the end vertices are represented by the primary keys), or they may be gener [...]
+<blockquote>
+<p><strong>tip:</strong>
+In most cases, IndexGenerator is first utilized to generate the indices for a DataFrame, and then this DataFrame can be written into GAR files through the writer.</p>
+</blockquote>
+<p>To utilize IndexGenerator, please refer to the following example code.</p>
+<div class="language-scala codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-scala codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// generate indices for vertex DataFrame</span><br></span><span class="token-line" style= [...]
+<p>See <a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/test/scala/com/apache/incubator-graphar/TestIndexGenerator.scala" target="_blank" rel="noopener noreferrer">TestIndexGenerator.scala</a> for the complete example.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="writer">Writer<a href="#writer" class="hash-link" aria-label="Direct link to Writer" title="Direct link to Writer"></a></h3>
+<p>The GraphAr Spark writer provides the necessary Spark interfaces to write DataFrames into GraphAr formatted files in a batch-import fashion. With the VertexWriter, users can specify a particular property group to be written into its corresponding chunks, or choose to write all property groups. For edge chunks, besides the meta data (edge info), the adjList type should also be specified. The adjList/properties can be written alone, or alternatively, all adjList, properties, and the off [...]
+<p>To utilize the GAR Spark writer, please refer to the following example code.</p>
+<div class="language-scala codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-scala codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// generate the vertex index column for vertex DataFrame</span><br></span><span class="to [...]
+<p>See <a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/test/scala/com/apache/incubator-graphar/TestWriter.scala" target="_blank" rel="noopener noreferrer">TestWriter.scala</a> for the complete example.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="reader">Reader<a href="#reader" class="hash-link" aria-label="Direct link to Reader" title="Direct link to Reader"></a></h3>
+<p>The GraphAr Spark reader provides an extensive set of interfaces to read GAR files. It reads a collection of vertices or edges at a time and assembles the result into the Spark DataFrame. Similar with the reader in C++ library, it supports the users to specify the data they need, e.g., a single property group.</p>
+<p>After content has been read into the Spark DataFrame, users can leverage it to do graph processing, execute SQL queries or perform various transformations (such as adding new vertices/edges, reorganizing the edge order, and changing the file type) and then write it back into GAR files if desired.</p>
+<p>To utilize the GAR Spark reader, please refer to the following example code.</p>
+<div class="language-scala codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-scala codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// construct the vertex reader</span><br></span><span class="token-line" style="color:#39 [...]
+<p>See <a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/test/scala/com/apache/incubator-graphar/TestReader.scala" target="_blank" rel="noopener noreferrer">TestReader.scala</a> for the complete example.</p>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="graph-level-apis">Graph-level APIs<a href="#graph-level-apis" class="hash-link" aria-label="Direct link to Graph-level APIs" title="Direct link to Graph-level APIs"></a></h3>
+<p>To improve the usability of the GraphAr Spark library, a set of APIs are provided to allow users to easily perform operations such as reading, writing, and transforming data at the graph level. These APIs are fairly easy to use, while the previous methods of using reader, writer and information classes are more flexibly and can be highly customized.</p>
+<p>The Graph Reader is a helper object which enables users to read all the chunk files from GraphAr for a single graph. The only input required is a GraphInfo object or the path to the information yaml file. On successful completion, it returns a set of vertex DataFrames and edge DataFrames, each of which can be accessed by specifying the vertex/edge label. The Graph Writer is used for writing all vertex DataFrames and edge DataFrames of a graph to generate GraphAr chunk files. For more [...]
+<p>The Graph Transformer is a helper object in the GraphAr Spark library, designed to assist with data transformation at the graph level. It takes two GraphInfo objects (or paths of two yaml files) as inputs: one for the source graph, and one for the destination graph. The transformer will then load data from existing GAR files for the source graph, utilizing the GraphAr Spark Reader and the meta data defined in the source GraphInfo. After reorganizing the data according to the destinati [...]
+<div class="language-scala codeBlockContainer_w3PW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_Tt2Q"><pre tabindex="0" class="prism-code language-scala codeBlock_xdHR thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Sjn8"><span class="token-line" style="color:#393A34"><span class="token plain">// transform graphs by yaml paths</span><br></span><span class="token-line" style="color: [...]
+<p>We provide an example in <a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/test/scala/com/apache/incubator-graphar/TestGraphTransformer.scala" target="_blank" rel="noopener noreferrer">TestGraphTransformer.scala</a>, which demonstrates how to conduct data transformation from the <a href="https://github.com/apache/incubator-graphar-testing/blob/main/ldbc_sample/parquet/ldbc_sample.graph.yml" target="_blank" rel="noopener noreferrer">source graph</a> to the <a hre [...]
+<p>The Graph Transformer can be used for various purposes, including transforming GAR data between different file types (e.g. from ORC to Parquet), transforming between different adjList types (e.g. from COO to CSR), selecting properties or regrouping them, and setting a new chunk size.</p>
+<div class="theme-admonition theme-admonition-note admonition_Q5_n alert alert--secondary"><div class="admonitionHeading_X17j"><span class="admonitionIcon_AlVM"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
+<li>The vertices (or edges) of the source and destination graphs are aligned by labels, meaning each vertex/edge label included in the destination graph must have an equivalent in the source graph, in order for the related chunks to be loaded as the data source.</li>
+<li>For each group of vertices/edges (i.e., each single label), each property included in the destination graph (defined in the relevant VertexInfo/EdgeInfo) must also be present in the source graph.</li>
+</ul><p>In addition, users can use the GraphAr Spark Reader/Writer to conduct data transformation more flexibly at the vertex/edge table level, as opposed to the graph level. This allows for a more granular approach to transforming data, as <code>TransformExample.scala</code>_ shows.</p></div></div>
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="more-examples">More examples<a href="#more-examples" class="hash-link" aria-label="Direct link to More examples" title="Direct link to More examples"></a></h3>
+<p>For more information on usage, please refer to the examples:</p>
+<ul>
+<li><a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/test/scala/com/apache/incubator-graphar/ComputeExample.scala" target="_blank" rel="noopener noreferrer">ComputeExample.scala</a> includes an example for constructing the GraphX graph from GAR files and executing a connected-components computation.</li>
+<li><a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/test/scala/com/apache/incubator-graphar/TransformExample.scala" target="_blank" rel="noopener noreferrer">TransformExample.scala</a> shows an example for graph data conversion between different file types or different adjList types.</li>
+<li><a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/main/scala/com/apache/incubator-graphar/example/Neo4j2GraphAr.scala" target="_blank" rel="noopener noreferrer">Neo4j2GraphAr.scala</a> and <a href="https://github.com/apache/incubator-graphar/blob/main/spark/src/main/scala/com/apache/incubator-graphar/example/GraphAr2Neo4j.scala" target="_blank" rel="noopener noreferrer">GraphAr2Neo4j.scala</a> are examples to conduct data importing/exporting for Neo4j.</li>
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/libraries/spark/spark.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_z10d" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t [...]
+ <p>
+ Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
+ </p>
+ <p>
+ Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br>
+ Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+ </p>
+ </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/overview/concepts/index.html b/docs/overview/concepts/index.html
index f770bbd..467ffa1 100644
--- a/docs/overview/concepts/index.html
+++ b/docs/overview/concepts/index.html
@@ -5,11 +5,11 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Concepts | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/overvie [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<ul>
<li>
<p><strong>Property Group</strong>: GraphAr splits the properties of vertex/edge into groups to allow for efficient storage
@@ -54,7 +54,7 @@ The design of property group and vertex/edge chunk allows users to</p>
<li>Access the data without reading all the data into memory</li>
<li>Conveniently append new properties to the graph without the need to reorganize the data</li>
<li>Efficiently store and access the data in a distributed environment and parallel processing</li>
-</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar-website/tree/main/docs/overview/concepts.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_z10d" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 [...]
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/overview/concepts.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_z10d" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/docs/overview/index.html b/docs/overview/index.html
index 9d8285d..91c4c01 100644
--- a/docs/overview/index.html
+++ b/docs/overview/index.html
@@ -5,16 +5,16 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Overview | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/overvie [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<p>GraphAr is a project to standardize the graph data format and provide a set of libraries to generate, access and transform such formatted files.</p>
<p>It is intended to serve as the standard file format for importing/exporting and persistent storage of the graph data which can be used by diverse existing systems, reducing the overhead when various systems co-work.</p>
<p>Additionally, it can also serve as the direct data source for graph processing applications.</p>
<h3 class="anchor anchorWithStickyNavbar_qibj" id="motivation"><a href="/docs/overview/motivation">Motivation</a><a href="#motivation" class="hash-link" aria-label="Direct link to motivation" title="Direct link to motivation"></a></h3>
-<h3 class="anchor anchorWithStickyNavbar_qibj" id="concepts"><a href="/docs/overview/concepts">Concepts</a><a href="#concepts" class="hash-link" aria-label="Direct link to concepts" title="Direct link to concepts"></a></h3></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar-website/tree/main/docs/overview/overview.md" target="_blank" rel="noopener noreferrer" class=" [...]
+<h3 class="anchor anchorWithStickyNavbar_qibj" id="concepts"><a href="/docs/overview/concepts">Concepts</a><a href="#concepts" class="hash-link" aria-label="Direct link to concepts" title="Direct link to concepts"></a></h3></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/overview/overview.md" target="_blank" rel="noopener noreferrer" class="theme-ed [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/docs/overview/motivation/index.html b/docs/overview/motivation/index.html
index 4014663..03e42c4 100644
--- a/docs/overview/motivation/index.html
+++ b/docs/overview/motivation/index.html
@@ -5,17 +5,17 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Motivation | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/overv [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
such as Neo4j, Nebula Graph, and Apache HugeGraph, have been developed in recent years.
Each of these systems has its own graph data storage format, complicating the exchange of graph data between different systems.
The need for a standard data file format for large-scale graph data storage and processing that can be used by diverse existing systems is evident, as it would reduce overhead when various systems work together.</p>
<p>Our aim is to fill this gap and contribute to the open-source community by providing a standard data file format for graph data storage and exchange, as well as for out-of-core querying.
This format, which we have named GraphAr, is engineered to be efficient, cross-language compatible, and to support out-of-core processing scenarios, such as those commonly found in data lakes.
-Furthermore, GraphAr's flexible design ensures that it can be easily extended to accommodate a broader array of graph data storage and exchange use cases in the future.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar-website/tree/main/docs/overview/motivation.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor [...]
+Furthermore, GraphAr's flexible design ensures that it can be easily extended to accommodate a broader array of graph data storage and exchange use cases in the future.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/overview/motivation.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/docs/specification/format/index.html b/docs/specification/format/index.html
index 5ecac52..c03d794 100644
--- a/docs/specification/format/index.html
+++ b/docs/specification/format/index.html
@@ -5,11 +5,11 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Format Specification | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/ [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
<p>GraphAr is designed for representing and storing the property graphs. Graph (in discrete mathematics) is a structure made of vertices and edges.
Property graph is then a type of graph model where the vertices/edges could carry a name (also called as type or label) and some properties.
Since carrying additional information than non-property graphs, the property graph is able to represent
@@ -30,7 +30,7 @@ network routing, scientific computing and so on.</p>
<li>A collection of properties.</li>
</ul>
<p>The following is an example property graph containing two types of vertices ("person" and "comment") and three types of edges.</p>
-<img src="/img/docs/property_graph.png" alt="property graph" width="700" align="center">
+<img src="../images/property_graph.png" alt="property graph" width="700" align="center">
<h2 class="anchor anchorWithStickyNavbar_qibj" id="property-data-types">Property Data Types<a href="#property-data-types" class="hash-link" aria-label="Direct link to Property Data Types" title="Direct link to Property Data Types"></a></h2>
<p>GraphAr support a set of built-in property data types that are common in real use cases and supported by most file types (CSV, ORC, Parquet), includes:</p>
<ul>
@@ -78,22 +78,20 @@ then the Apache Parquet file format is recommended.</p>
<h3 class="anchor anchorWithStickyNavbar_qibj" id="logical-table-of-vertices">Logical table of vertices<a href="#logical-table-of-vertices" class="hash-link" aria-label="Direct link to Logical table of vertices" title="Direct link to Logical table of vertices"></a></h3>
<p>Each type of vertices (with the same label) constructs a logical vertex table, with each vertex assigned with a global index inside this type (called internal vertex id) starting from 0, corresponding to the row number of the vertex in the logical vertex table. An example layout for a logical table of vertices under the label "person" is provided for reference.</p>
<p>Given an internal vertex id and the vertex label, a vertex is uniquely identifiable and its respective properties can be accessed from this table. The internal vertex id is further used to identify the source and destination vertices when maintaining the topology of the graph.</p>
-<img src="/img/docs/vertex_logical_table.png" alt="vertex logical table" width="700" align="center">
-<blockquote>
-<p><strong>Note:</strong> In the logical vertex table, some property can be marked as the primary key, such as the "id" column of the "person" table.</p>
-</blockquote>
+<img src="../images/vertex_logical_table.png" alt="vertex logical table" width="700" align="center">
+<div class="theme-admonition theme-admonition-note admonition_Q5_n alert alert--secondary"><div class="admonitionHeading_X17j"><span class="admonitionIcon_AlVM"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<h3 class="anchor anchorWithStickyNavbar_qibj" id="physical-table-of-vertices">Physical table of vertices<a href="#physical-table-of-vertices" class="hash-link" aria-label="Direct link to Physical table of vertices" title="Direct link to Physical table of vertices"></a></h3>
<p>The logical vertex table will be partitioned into multiple continuous vertex chunks for enhancing the reading/writing efficiency. To maintain the ability of random access, the size of vertex chunks for the same label is fixed. To support to access required properties avoiding reading all properties from the files, and to add properties for vertices without modifying the existing files, the columns of the logical table will be divided into several column groups.</p>
<p>Take the "person" vertex table as an example, if the chunk size is set to be 500, the logical table will be separated into sub-logical-tables of 500 rows with the exception of the last one, which may have less than 500 rows. The columns for maintaining properties will also be divided into distinct groups (e.g., 2 for our example). As a result, a total of 4 physical vertex tables are created for storing the example logical table, which can be seen from the following figure.</p>
-<img src="/img/docs/vertex_physical_table.png" alt="vertex physical table" width="700" align="center">
-<blockquote>
-<p><strong>Note:</strong> For efficiently utilize the filter push-down of the payload file format like Parquet, the internal vertex id is stored in the payload file as a column. And since the internal vertex id is continuous, the payload file format can use the delta encoding for the internal vertex id column, which would not bring too much overhead for the storage.</p>
-</blockquote>
+<img src="../images/vertex_physical_table.png" alt="vertex physical table" width="700" align="center">
+<p>::: note</p>
+<p>For efficiently utilize the filter push-down of the payload file format like Parquet, the internal vertex id is stored in the payload file as a column. And since the internal vertex id is continuous, the payload file format can use the delta encoding for the internal vertex id column, which would not bring too much overhead for the storage.</p>
+<p>:::</p>
<h2 class="anchor anchorWithStickyNavbar_qibj" id="edge-chunks-in-graphar">Edge Chunks in GraphAr<a href="#edge-chunks-in-graphar" class="hash-link" aria-label="Direct link to Edge Chunks in GraphAr" title="Direct link to Edge Chunks in GraphAr"></a></h2>
<h3 class="anchor anchorWithStickyNavbar_qibj" id="logical-table-of-edges">Logical table of edges<a href="#logical-table-of-edges" class="hash-link" aria-label="Direct link to Logical table of edges" title="Direct link to Logical table of edges"></a></h3>
<p>For maintaining a type of edges (that with the same triplet of the source label, edge label, and destination label), a logical edge table is established. And in order to support quickly creating a graph from the graph storage file, the logical edge table could maintain the topology information in a way similar to CSR/CSC (learn more about <a href="https://en.wikipedia.org/wiki/Sparse_matrix" target="_blank" rel="noopener noreferrer">CSR/CSC</a>), that is, the edges are ordered by the [...]
<p>Take the logical table for "person likes person" edges as an example, the logical edge table looks like:</p>
-<img src="/img/docs/edge_logical_table.png" alt="edge logical table" width="700" align="center">
+<img src="../images/edge_logical_table.png" alt="edge logical table" width="700" align="center">
<h3 class="anchor anchorWithStickyNavbar_qibj" id="physical-table-of-edges">Physical table of edges<a href="#physical-table-of-edges" class="hash-link" aria-label="Direct link to Physical table of edges" title="Direct link to Physical table of edges"></a></h3>
<p>As same with the vertex table, the logical edge table is also partitioned into some sub-logical-tables, with each sub-logical-table contains edges that the source (or destination) vertices are in the same vertex chunk. According to the partition strategy and the order of the edges, edges can be stored in GraphAr following the setting adjacency list type.</p>
<p>After that, the whole logical table of edges will be divided into multiple sub-logical-tables with each sub-logical-table contains edges that the source (or destination) vertices are in the same vertex chunk. Then, a sub-logical-table is further divided into edge chunks of a predefined, fixed number of rows (referred to as edge chunk size). Finally, an edge chunk is separated into physical tables in the following way:</p>
@@ -103,8 +101,8 @@ then the Apache Parquet file format is recommended.</p>
</ul>
<p>Additionally, there would be an offset table for <strong>ordered_by_source</strong> or <strong>ordered_by_dest</strong> edges. The offset table is used to record the starting point of the edges for each vertex. The partition of the offset table should be in alignment with the partition of the corresponding vertex table. The first row of each offset chunk is always 0, indicating the starting point for the corresponding sub-logical-table for edges.</p>
<p>Take the "person knows person" edges to illustrate. Suppose the vertex chunk size is set to 500 and the edge chunk size is 1024, and the edges are <strong>ordered_by_source</strong>, then the edges could be saved in the following physical tables:</p>
-<img src="/img/docs/edge_physical_table1.png" alt="edge physical table1" width="700" align="center">
-<img src="/img/docs/edge_physical_table2.png" alt="edge physical table2" width="700" align="center">
+<img src="../images/edge_physical_table1.png" alt="edge physical table1" width="700" align="center">
+<img src="../images/edge_physical_table2.png" alt="edge physical table2" width="700" align="center">
<blockquote>
<p><strong>Tip:</strong> When the edge type is <strong>ordered_by_source</strong>, the sorted adjList table together with the offset table can be used as CSR, supporting the fast access of the outgoing edges for a given vertex. Similarly, a CSC view can be constructed by sorting the edges by destination and recording corresponding offsets, supporting the fast access of the incoming edges for a given vertex.</p>
</blockquote>
@@ -136,10 +134,8 @@ then the Apache Parquet file format is recommended.</p>
<li>the property groups attached to the edge for all adjLists;</li>
<li>the version of GraphAr.</li>
</ul>
-<blockquote>
-<p><strong>Note:</strong> Please note that GraphAr supports the storage of multiple types of adjLists for a given group of edges, e.g., a group of edges could be accessed in both CSR and CSC way when two copies (one is <strong>ordered_by_source</strong> and the other is <strong>ordered_by_dest</strong>) of the relevant data are present in GraphAr.</p>
-</blockquote>
-<p>See also <a href="/docs/libraries/cpp">Gar Information Files</a> for an example.</p>
+<div class="theme-admonition theme-admonition-note admonition_Q5_n alert alert--secondary"><div class="admonitionHeading_X17j"><span class="admonitionIcon_AlVM"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
+<p>See also <a href="https://graphar.apache.org/docs/libraries/cpp/getting-started#gar-information-files" target="_blank" rel="noopener noreferrer">Gar Information Files</a> for an example.</p>
<h2 class="anchor anchorWithStickyNavbar_qibj" id="data-files">Data files<a href="#data-files" class="hash-link" aria-label="Direct link to Data files" title="Direct link to Data files"></a></h2>
<p>As previously mentioned, each logical vertex/edge table is divided into multiple physical tables stored in one of the following file formats:</p>
<ul>
@@ -149,9 +145,9 @@ then the Apache Parquet file format is recommended.</p>
<li>JSON</li>
</ul>
<p>Both of Apache ORC and Apache Parquet are column-oriented data storage formats. In practice of graph processing, it is common to only query a subset of columns of the properties. Thus, the column-oriented formats are more efficient, which eliminate the need to read columns that are not relevant. They are also used by a large number of data processing frameworks like <a href="https://spark.apache.org/" target="_blank" rel="noopener noreferrer">Apache Spark</a>, <a href="https://hive.ap [...]
-<p>See also <a href="/docs/libraries/cpp">Gar Data Files</a> for an example.</p>
+<p>See also <a href="https://graphar.apache.org/docs/libraries/cpp/getting-started#gar-data-files" target="_blank" rel="noopener noreferrer">GraphAr Data Files</a> for an example.</p>
<h2 class="anchor anchorWithStickyNavbar_qibj" id="implementation">Implementation<a href="#implementation" class="hash-link" aria-label="Direct link to Implementation" title="Direct link to Implementation"></a></h2>
-<p>The GraphAr libraries may implement part of the GraphAr format. The implementation status of the GraphAr libraries can refer to the <a href="/docs/specification/implementation-status">GraphAr implementation status</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar-website/tree/main/docs/specification/format.md" target="_blank" rel="noopener noreferrer" cla [...]
+<p>The GraphAr libraries may implement part of the GraphAr format. The implementation status of the GraphAr libraries can refer to the <a href="/docs/specification/implementation-status">GraphAr implementation status</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-graphar/edit/main/docs/specification/format.md" target="_blank" rel="noopener noreferrer" class="them [...]
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the [...]
</p>
diff --git a/docs/specification/implementation-status/index.html b/docs/specification/implementation-status/index.html
index 2bb5486..889c903 100644
--- a/docs/specification/implementation-status/index.html
+++ b/docs/specification/implementation-status/index.html
@@ -5,94 +5,77 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Implementation Status | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.55fb2581.css">
-<script src="/assets/js/runtime~main.7bfc5b47.js" defer="defer"></script>
-<script src="/assets/js/main.04a9358e.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.be6fd345.js" defer="defer"></script>
+<script src="/assets/js/main.8987d6a5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
-<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
All libraries currently follow version 1.0.0 of the GraphAr format.</p>
<h2 class="anchor anchorWithStickyNavbar_qibj" id="data-types">Data Types<a href="#data-types" class="hash-link" aria-label="Direct link to Data Types" title="Direct link to Data Types"></a></h2>
<table><thead><tr><th>Data type (primitive)</th><th>C++</th><th>Java</th><th>Scala</th><th>Python</th></tr></thead><tbody><tr><td>Boolean</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>Int32</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>Int64</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>Float</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>Double</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>String</td><td>✓</td><td>✓</td><td>✓</td><td [...]
<table><thead><tr><th>Data type (nested)</th><th>C++</th><th>Java</th><th>Scala</th><th>Python</th></tr></thead><tbody><tr><td>List (*)</td><td>✓</td><td></td><td></td><td></td></tr></tbody></table>
-<p>Notes:</p>
-<ul>
+<div class="theme-admonition theme-admonition-note admonition_Q5_n alert alert--secondary"><div class="admonitionHeading_X17j"><span class="admonitionIcon_AlVM"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<li>(*) The data type of List is not supported by the CSV payload file format.</li>
-</ul>
+</ul></div></div>
<h2 class="anchor anchorWithStickyNavbar_qibj" id="payload-data-file-formats">Payload Data File Formats<a href="#payload-data-file-formats" class="hash-link" aria-label="Direct link to Payload Data File Formats" title="Direct link to Payload Data File Formats"></a></h2>
<table><thead><tr><th>Format</th><th>C++</th><th>Java</th><th>Scala</th><th>Python</th></tr></thead><tbody><tr><td>CSV</td><td>R/W</td><td>R (1)</td><td>R/W</td><td>R/W (2)</td></tr><tr><td>ORC</td><td>R/W</td><td>R (1)</td><td>R/W</td><td>R/W (2)</td></tr><tr><td>Parquet</td><td>R/W</td><td>R (1)</td><td>R/W</td><td>R/W (2)</td></tr><tr><td>Avro</td><td></td><td></td><td></td><td></td></tr><tr><td>HDF5</td><td></td><td></td><td></td><td></td></tr><tr><td>JSON</td><td></td><td></td><td>< [...]
-<blockquote>
-<p>Notes:</p>
-<ul>
+<div class="theme-admonition theme-admonition-note admonition_Q5_n alert alert--secondary"><div class="admonitionHeading_X17j"><span class="admonitionIcon_AlVM"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<li><em>R</em> - Read supported</li>
<li><em>W</em> - Write supported</li>
-</ul>
-</blockquote>
+</ul></div></div>
<p>Supported compression methods for the file formats:</p>
<table><thead><tr><th>Compression</th><th>C++</th><th>Java</th><th>Scala</th><th>Python</th></tr></thead><tbody><tr><td>ZSTD (*)</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr></tbody></table>
-<p>Notes:</p>
-<ul>
+<div class="theme-admonition theme-admonition-note admonition_Q5_n alert alert--secondary"><div class="admonitionHeading_X17j"><span class="admonitionIcon_AlVM"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<li>(*) Compression is not supported by the CSV payload file format.</li>
-</ul>
+</ul></div></div>
<h2 class="anchor anchorWithStickyNavbar_qibj" id="property">Property<a href="#property" class="hash-link" aria-label="Direct link to Property" title="Direct link to Property"></a></h2>
<table><thead><tr><th>Property feature</th><th>C++</th><th>Java</th><th>Scala</th><th>Python</th></tr></thead><tbody><tr><td>primary key</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>nullable</td><td>✓</td><td></td><td>✓</td><td>✓</td></tr></tbody></table>
<p>Supported operations in Property:</p>
<table><thead><tr><th>Property operation</th><th>C++</th><th>Java</th><th>Scala</th><th>Python</th></tr></thead><tbody><tr><td>create</td><td>✓</td><td>✓ (1)</td><td>✓</td><td>✓ (2)</td></tr><tr><td>get_name</td><td>✓</td><td>✓ (1)</td><td>✓</td><td>✓ (2)</td></tr><tr><td>is_primary_key</td><td>✓</td><td>✓ (1)</td><td>✓</td><td>✓ (2)</td></tr><tr><td>is_nullable</td><td>✓</td><td></td><td>✓</td><td>✓ (2)</td></tr></tbody></table>
<h2 class="anchor anchorWithStickyNavbar_qibj" id="property-group">Property Group<a href="#property-group" class="hash-link" aria-label="Direct link to Property Group" title="Direct link to Property Group"></a></h2>
-<p>| Property Group | C++ |Java (1)| Scala | Python (2)|</p>
-<table><thead><tr><th>(operation)</th><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td>create</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>add property</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>remove property</td><td></td><td></td><td></td><td></td></tr><tr><td>get properties</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>check property</td><td>✓</td><td>✓</td><td></td><td></td></tr><tr><td>get file type</td><td>✓</td><td>✓</td><td>✓</ [...]
+<table><thead><tr><th>Property Group (operation)</th><th>C++</th><th>Java (1)</th><th>Scala</th><th>Python (2)</th></tr></thead><tbody><tr><td>create</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>add property</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>remove property</td><td></td><td></td><td></td><td></td></tr><tr><td>get properties</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>check property</td><td>✓</td><td>✓</td><td></td><td></td></tr><tr><td>get [...]
<h2 class="anchor anchorWithStickyNavbar_qibj" id="adjacency-list">Adjacency List<a href="#adjacency-list" class="hash-link" aria-label="Direct link to Adjacency List" title="Direct link to Adjacency List"></a></h2>
-<p>| Adjacency List | C++ | Java | Scala | Python |</p>
-<table><thead><tr><th>(type)</th><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td>CSR</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>CSC</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>COO</td><td>✓</td><td>✓</td><td>✓</td><td>