{"id":2854,"date":"2024-02-16T08:13:13","date_gmt":"2024-02-16T08:13:13","guid":{"rendered":"https:\/\/blogs.qub.ac.uk\/dipsa\/?p=2854"},"modified":"2024-06-20T16:29:17","modified_gmt":"2024-06-20T15:29:17","slug":"paragrapher-source-code-for-webgraph-types","status":"publish","type":"post","link":"https:\/\/blogs.qub.ac.uk\/dipsa\/paragrapher-source-code-for-webgraph-types\/","title":{"rendered":"ParaGrapher Source Code For WebGraph Types"},"content":{"rendered":"\n<p class=\"has-text-align-justify\">ParaGrapher source code for accessing WebGraphs have been published. The supported graph types are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code><strong style=\"font-size:1.3em\">PARAGRAPHER_CSX_WG_400_AP<\/strong><\/code>:  graphs compressed in WebGraph format with 4 Bytes ID per vertex. Graphs in this category: LAW web graphs (<a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/MS-BioGraphs\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/law.di.unimi.it\/datasets.php<\/a>) .<\/li>\n\n\n\n<li> <code><strong style=\"font-size:1.3em\">PARAGRAPHER_CSX_WG_404_AP<\/strong><\/code>: graphs compressed in WebGraph format with 4 Bytes ID per vertex and 4 Bytes integer weights per edge. Graphs in this category: MS-BioGraphs (<a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/MS-BioGraphs\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/blogs.qub.ac.uk\/DIPSA\/MS-BioGraphs\/<\/a>).<\/li>\n\n\n\n<li><code><strong style=\"font-size:1.3em\">PARAGRAPHER_CSX_WG_800_AP<\/strong><\/code>: graphs compressed in Big WebGraph format with 8 Bytes ID per vertex. Graphs in this category: (i) WDC Hyper Link 2012 (<a href=\"https:\/\/webdatacommons.org\/hyperlinkgraph\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/webdatacommons.org\/hyperlinkgraph\/<\/a>) and (ii) SWH graphs (<a href=\"https:\/\/docs.softwareheritage.org\/devel\/swh-dataset\/graph\/dataset.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.softwareheritage.org\/devel\/swh-dataset\/graph\/dataset.html<\/a>)<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-align-justify\">ParaGrapher uses its asynchronous and parallel API to implement these graph types. The user needs to implement a callback function that is called by the API upon completion of reading a block of edges. Poplar uses a shared memory for interaction between its C library and the Java library that deploys the WebGraph framework.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">For further details, please refer to Poplar source code repository: <a href=\"https:\/\/github.com\/DIPSA-QUB\/ParaGrapher\">https:\/\/github.com\/DIPSA-QUB\/ParaGrapher<\/a>, particularly, <code>src\/webgraph.c<\/code> and <code>src\/WG*.java<\/code> files.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/ParaGrapher\"><strong>ParaGrapher<\/strong><\/a><\/p>\n\n\n\n<p><strong>Related Posts<\/strong><\/p>\n\n\n<ul class=\"wp-block-latest-posts__list has-dates wp-block-latest-posts\"><li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2025\/11\/1-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/paragrapher-a-parallel-and-distributed-graph-loading-library-for-large-scale-compressed-graphs-bigdata25\/\">ParaGrapher: A Parallel and Distributed Graph Loading Library for Large-Scale Compressed Graphs &#8211; BigData&#8217;25 (Short Paper)<\/a><time datetime=\"2025-11-08T12:02:51+00:00\" class=\"wp-block-latest-posts__post-date\">8 November 2025<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2024\/12\/1-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/accelerating-loading-webgraphs-in-paragrapher\/\">Accelerating Loading WebGraphs in ParaGrapher<\/a><time datetime=\"2024-12-02T05:51:29+00:00\" class=\"wp-block-latest-posts__post-date\">2 December 2024<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2024\/05\/fern-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/selective-parallel-loading-of-large-scale-compressed-graphs-with-paragrapher\/\">Selective Parallel Loading of Large-Scale Compressed Graphs with ParaGrapher &#8211; arXiv Version<\/a><time datetime=\"2024-05-01T05:44:14+01:00\" class=\"wp-block-latest-posts__post-date\">1 May 2024<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2024\/04\/passerine-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/an-evaluation-of-bandwidth-of-different-storage-types-hdd-vs-ssd-vs-lustrefs-for-different-block-sizes-and-different-read-methods-mmap-vs-pread-vs-read\/\">An Evaluation of Bandwidth of Different Storage Types (HDD vs. SSD vs. LustreFS) for Different Block Sizes and Different Parallel Read Methods (mmap vs pread vs read)<\/a><time datetime=\"2024-04-20T09:48:10+01:00\" class=\"wp-block-latest-posts__post-date\">20 April 2024<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2024\/02\/loriini-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/paragrapher-integrated-to-laganlighter\/\">ParaGrapher Integrated to LaganLighter<\/a><time datetime=\"2024-02-16T08:29:26+00:00\" class=\"wp-block-latest-posts__post-date\">16 February 2024<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2024\/02\/poplar2-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/paragrapher-source-code-for-webgraph-types\/\">ParaGrapher Source Code For WebGraph Types<\/a><time datetime=\"2024-02-16T08:13:13+00:00\" class=\"wp-block-latest-posts__post-date\">16 February 2024<\/time><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>ParaGrapher source code for accessing WebGraphs have been published. The supported graph types are: ParaGrapher uses its asynchronous and parallel API to implement these graph types. The user needs to implement a callback function that is called by the API upon completion of reading a block of edges. Poplar uses a shared memory for interaction [&hellip;]<\/p>\n","protected":false},"author":1315,"featured_media":2855,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[63,119],"tags":[34,116,35,38,122,66,65,19,123],"class_list":{"0":"post-2854","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-ms-biographs","8":"category-paragrapher","9":"tag-algorithm-design-and-engineering","10":"tag-biological-networks","11":"tag-graph-processing","12":"tag-high-performance-computing","13":"tag-parallel-io","14":"tag-real-world-graphs","15":"tag-sequence-similarity-graphs","16":"tag-source-code","17":"tag-storage","18":"czr-hentry"},"jetpack_featured_media_url":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2024\/02\/poplar2.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/posts\/2854","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/users\/1315"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/comments?post=2854"}],"version-history":[{"count":8,"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/posts\/2854\/revisions"}],"predecessor-version":[{"id":2887,"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/posts\/2854\/revisions\/2887"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/media\/2855"}],"wp:attachment":[{"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/media?parent=2854"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/categories?post=2854"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/tags?post=2854"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}