[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-alibaba--GraphScope":3,"tool-alibaba--GraphScope":65},[4,18,32,41,49,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,2,"2026-04-10T11:13:16",[15,16,27,28,13,29,30,14,31],"视频","插件","其他","语言模型","音频",{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":38,"last_commit_at":39,"category_tags":40,"status":17},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[30,16,29],{"id":42,"name":43,"github_repo":44,"description_zh":45,"stars":46,"difficulty_score":38,"last_commit_at":47,"category_tags":48,"status":17},5773,"cs-video-courses","Developer-Y\u002Fcs-video-courses","cs-video-courses 是一个精心整理的计算机科学视频课程清单，旨在为自学者提供系统化的学习路径。它汇集了全球知名高校（如加州大学伯克利分校、新南威尔士大学等）的完整课程录像，涵盖从编程基础、数据结构与算法，到操作系统、分布式系统、数据库等核心领域，并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。\n\n面对网络上零散且质量参差不齐的教学资源，cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容，仅收录真正的大学层级课程，排除了碎片化的简短教程或商业广告，确保用户能接触到严谨的学术内容。\n\n这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员，以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽，不仅包含传统的软件工程与网络安全，还细分了生成式 AI、大语言模型、计算生物学等新兴学科，并直接链接至官方视频播放列表，让用户能一站式获取高质量的教育资源，免费享受世界顶尖大学的课堂体验。",79792,"2026-04-08T22:03:59",[29,15,16,14],{"id":50,"name":51,"github_repo":52,"description_zh":53,"stars":54,"difficulty_score":10,"last_commit_at":55,"category_tags":56,"status":17},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[13,15,14,30,29],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":10,"last_commit_at":63,"category_tags":64,"status":17},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",75388,"2026-04-11T21:46:15",[30,15,14,29],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":123,"forks":124,"last_commit_at":125,"license":126,"difficulty_score":127,"env_os":128,"env_gpu":129,"env_ram":129,"env_deps":130,"category_tags":135,"github_topics":136,"view_count":24,"oss_zip_url":80,"oss_zip_packed_at":80,"status":17,"created_at":147,"updated_at":148,"faqs":149,"releases":177},6824,"alibaba\u002FGraphScope","GraphScope","🔨 🍇 💻 🚀 GraphScope: A One-Stop Large-Scale Graph Computing System from Alibaba | 一站式图计算系统","GraphScope 是阿里巴巴开源的一站式大规模图计算系统，旨在为开发者提供统一、高效的分布式图数据处理环境。面对海量图数据在存储、分析及人工智能应用中面临的碎片化挑战，GraphScope 通过简洁的 Python 接口，让用户能在集群上轻松完成从交互式查询、复杂分析到图神经网络（GNN）训练的全流程任务。\n\n该系统特别适合需要处理社交网络、知识图谱或风控关系链等大规模图数据的算法工程师、数据科学家及研究人员。其核心优势在于融合了多项阿里自研核心技术：利用 GRAPE 引擎进行高性能并行分析，通过 MaxGraph 支持低延迟的交互式查询，并集成 Graph-Learn 加速图深度学习模型训练。此外，GraphScope 引入 Vineyard 内存数据存储，实现了不同计算引擎间高效的数据共享与流转，避免了繁琐的数据搬运。近期推出的 GraphScope Flex 架构进一步提升了系统的模块化与灵活性，并在国际权威基准测试中屡创吞吐量纪录，是构建企业级图应用平台的理想选择。","\u003Ch1 align=\"center\">\r\n    \u003Cimg src=\"https:\u002F\u002Fgraphscope.io\u002Fassets\u002Fimages\u002Fgraphscope-logo.svg\" width=\"400\" alt=\"graphscope-logo\">\r\n\u003C\u002Fh1>\r\n\u003Cp align=\"center\">\r\n    A One-Stop Large-Scale Graph Computing System from Alibaba\r\n\u003C\u002Fp>\r\n\r\n[![GraphScope CI](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Factions\u002Fworkflows\u002Flocal-ci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Factions\u002Fworkflows\u002Flocal-ci.yml)\r\n[![Coverage](https:\u002F\u002Fcodecov.io\u002Fgh\u002Falibaba\u002FGraphScope\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Falibaba\u002FGraphScope)\r\n[![Playground](https:\u002F\u002Fshields.io\u002Fbadge\u002FJupyterLab-Try%20GraphScope%20Now!-F37626?logo=jupyter)](https:\u002F\u002Ftry.graphscope.io)\r\n[![Open in Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Falibaba\u002FGraphScope)\r\n[![Artifact HUB](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fartifacthub.io\u002Fbadge\u002Frepository\u002Fgraphscope)](https:\u002F\u002Fartifacthub.io\u002Fpackages\u002Fhelm\u002Fgraphscope\u002Fgraphscope)\r\n[![Docs-en](https:\u002F\u002Fshields.io\u002Fbadge\u002FDocs-English-blue?logo=Read%20The%20Docs)](https:\u002F\u002Fgraphscope.io\u002Fdocs)\r\n[![FAQ-en](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-FAQ-blue?logo=Read%20The%20Docs)](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Ffrequently_asked_questions.html)\r\n[![Docs-zh](https:\u002F\u002Fshields.io\u002Fbadge\u002FDocs-%E4%B8%AD%E6%96%87-blue?logo=Read%20The%20Docs)](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Fzh\u002F)\r\n[![FAQ-zh](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-FAQ%E4%B8%AD%E6%96%87-blue?logo=Read%20The%20Docs)](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Fzh\u002Ffrequently_asked_questions.html)\r\n[![README-zh](https:\u002F\u002Fshields.io\u002Fbadge\u002FREADME-%E4%B8%AD%E6%96%87-blue)](README-zh.md)\r\n[![ACM DL](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FACM%20DL-10.14778%2F3476311.3476369-blue)](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002F10.14778\u002F3476311.3476369)\r\n\r\n🎉 See our ongoing [GraphScope Flex](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Ftree\u002Fmain\u002Fflex): a LEGO-inspired, modular, and user-friendly GraphScope evolution. 🎉\r\n\r\nGraphScope is a unified distributed graph computing platform that provides a one-stop environment for performing diverse graph operations on a cluster of computers through a user-friendly Python interface. GraphScope makes multi-staged processing of large-scale graph data on compute clusters simply by combining several important pieces of Alibaba technology: including [GRAPE](https:\u002F\u002Fgithub.com\u002Falibaba\u002Flibgrape-lite), [MaxGraph](interactive_engine\u002F), and [Graph-Learn](https:\u002F\u002Fgithub.com\u002Falibaba\u002Fgraph-learn) (GL) for analytics, interactive, and graph neural networks (GNN) computation, respectively, and the [Vineyard](https:\u002F\u002Fgithub.com\u002Fv6d-io\u002Fv6d) store that offers efficient in-memory data transfers.\r\n\r\nVisit our website at [graphscope.io](https:\u002F\u002Fgraphscope.io) to learn more.\r\n\r\n## Latest News\n- [21\u002F04\u002F2025] 🏆 GraphScope achieved record-breaking results on the [LDBC Social Network Benchmark Interactive workload](https:\u002F\u002Fldbcouncil.org\u002Fbenchmarks\u002Fsnb-interactive\u002F) using declarative query language CYPHER, with a 2.0× higher throughput on SF300 than the previous record holder! 🏆\r\n- [31\u002F07\u002F2024] 🎢 We’ve launched a webpage visualizing GraphScope’s journey in graph computing. [Check it out!](https:\u002F\u002Fgraphscope.io\u002Fjourney)\r\n- [30\u002F05\u002F2024] 🏅 GraphScope Flex set new record-breaking [SNB Interactive audit results](https:\u002F\u002Fldbcouncil.org\u002Fbenchmarks\u002Fsnb-interactive\u002F), as announced by LDBC on [X (Twitter)](https:\u002F\u002Ftwitter.com\u002FLDBCouncil\u002Fstatus\u002F1795886732950294630)!\r\n- [25\u002F03\u002F2024] 🙌🏻 We donated the graph file format [GraphAr](https:\u002F\u002Fgraphar.apache.org\u002F) to [Apache Software Foundation](https:\u002F\u002Fwww.apache.org\u002F) as an Incubating Project. \r\n- [05\u002F02\u002F2024] 🎉 GraphScope Flex [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.12107) was accepted by [SIGMOD 2024](https:\u002F\u002F2024.sigmod.org\u002F) Industry Track. See you in 🇨🇱!\r\n- [19\u002F12\u002F2023] 📑 A paper introducing GraphScope Flex released on [arXiv.org](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.12107).\r\n- [20\u002F07\u002F2023] 🏆 GraphScope achieved record-breaking results on the [LDBC Social Network Benchmark Interactive workload](https:\u002F\u002Fldbcouncil.org\u002Fbenchmarks\u002Fsnb-interactive\u002F), with a 2.45× higher throughput on SF300 than the previous record holder! 🏆\r\n- [04\u002F07\u002F2023] 🚀 GraphScope Flex tech preview released with [v0.23.0](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Freleases\u002Ftag\u002Fv0.23.0).\r\n  \r\n## Table of Contents\r\n\r\n- [Getting Started](#getting-started)\r\n  - [Installation for Standalone Mode](#installation-for-standalone-mode)\r\n- [Demo: Node Classification on Citation Network](#demo-node-classification-on-citation-network)\r\n  - [Loading a graph](#loading-a-graph)\r\n  - [Interactive query](#interactive-query)\r\n  - [Graph analytics](#graph-analytics)\r\n  - [Graph neural networks (GNNs)](#graph-neural-networks-gnns)\r\n- [Graph Processing on Kubernetes](#processing-large-graph-on-kubernetes-cluster)\r\n  - [Creating a session](#creating-a-session)\r\n  - [Loading graphs and graph computation](#loading-a-graph-and-processing-computation-tasks)\r\n  - [Closing the session](#closing-the-session)\r\n- [Development](#development)\r\n  - [Building from source](#building-on-local)\r\n  - [Building Docker images](#building-docker-images)\r\n  - [Building the client library](#building-client-library)\r\n  - [Testing](#testing)\r\n- [Documentation](#documentation)\r\n- [License](#license)\r\n- [Publications](#publications)\r\n- [Joining our Community!](#contributing)\r\n\r\n## Getting Started\r\n\r\nWe provide a [Playground](https:\u002F\u002Ftry.graphscope.io) with a managed JupyterLab. [Try GraphScope](https:\u002F\u002Ftry.graphscope.io) straight away in your browser!\r\n\r\nGraphScope supports running in standalone mode or on clusters managed by [Kubernetes](https:\u002F\u002Fkubernetes.io\u002F) within containers. For quickly getting started,\r\nlet's begin with the standalone mode.\r\n\r\n\r\n### Installation for Standalone Mode\r\n\r\nGraphScope pre-compiled package is distributed as a python package and can be easily installed with `pip`.\r\n\r\n```bash\r\npip3 install graphscope\r\n```\r\n\r\nNote that `graphscope` requires `Python` >= `3.8` and `pip` >= `19.3`. The package is built for and tested on the most popular Linux (Ubuntu 20.04+ \u002F CentOS 7+) and macOS 12+ (Intel\u002FApple silicon) distributions. For Windows users, you may want to install Ubuntu on WSL2 to use this package.\r\n\r\nNext, we will walk you through a concrete example to illustrate how GraphScope can be used by data scientists to effectively analyze large graphs.\r\n\r\n\r\n## Demo: Node Classification on Citation Network\r\n\r\n[`ogbn-mag`](https:\u002F\u002Fogb.stanford.edu\u002Fdocs\u002Fnodeprop\u002F#ogbn-mag) is a heterogeneous network composed of a subset of the Microsoft Academic Graph. It contains 4 types of entities(i.e., papers, authors, institutions, and fields of study), as well as four types of directed relations connecting two entities.\r\n\r\nGiven the heterogeneous `ogbn-mag` data, the task is to predict the class of each paper. Node classification can identify papers in multiple venues, which represent different groups of scientific work on different topics. We apply both the attribute and structural information to classify papers. In the graph, each paper node contains a 128-dimensional word2vec vector representing its content, which is obtained by averaging the embeddings of words in its title and abstract. The embeddings of individual words are pre-trained. The structural information is computed on-the-fly.\r\n\r\n### Loading a graph\r\n\r\nGraphScope models graph data as property graph, in which the edges\u002Fvertices are labeled and have many properties.\r\nTaking `ogbn-mag` as example, the figure below shows the model of the property graph.\r\n\r\n\u003Cdiv align=\"center\">\r\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falibaba_GraphScope_readme_9b7e86d600f8.png\" width=\"600\" alt=\"sample-of-property-graph\" \u002F>\r\n\u003C\u002Fdiv>\r\n\r\nThis graph has four kinds of vertices, labeled as `paper`, `author`, `institution` and `field_of_study`. There are four kinds of edges connecting them, each kind of edges has a label and specifies the vertex labels for its two ends. For example, `cites` edges connect two vertices labeled `paper`. Another example is `writes`, it requires the source vertex is labeled `author` and the destination is a `paper` vertex. All the vertices and edges may have properties. e.g., `paper`  vertices have properties like features, publish year, subject label, etc.\r\n\r\nTo load this graph to GraphScope with our retrieval module, please use these code:\r\n\r\n```python\r\nimport graphscope\r\nfrom graphscope.dataset import load_ogbn_mag\r\n\r\ng = load_ogbn_mag()\r\n```\r\n\r\nWe provide a set of functions to load graph datasets from [ogb](https:\u002F\u002Fogb.stanford.edu\u002Fdocs\u002Fdataset_overview\u002F) and [snap](https:\u002F\u002Fsnap.stanford.edu\u002Fdata\u002Findex.html) for convenience. Please find all the available graphs [here](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Ftree\u002Fdocs\u002Fpython\u002Fgraphscope\u002Fdataset). If you want to use your own graph data, please refer [this doc](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Floading_graph.html) to load vertices and edges by labels.\r\n\r\n\r\n### Interactive query\r\n\r\nInteractive queries allow users to directly explore, examine, and present graph data in an *exploratory* manner in order to locate specific or in-depth information in time.\r\nGraphScope adopts a high-level language called [Gremlin](http:\u002F\u002Ftinkerpop.apache.org\u002F) for graph traversal, and provides [efficient execution](interactive_engine\u002Fbenchmark\u002F) at scale.\r\n\r\nIn this example, we use graph traversal to count the number of papers two given authors have co-authored. To simplify the query, we assume the authors can be uniquely identified by ID `2` and `4307`, respectively.\r\n\r\n```python\r\n# get the endpoint for submitting Gremlin queries on graph g.\r\ninteractive = graphscope.gremlin(g)\r\n\r\n# count the number of papers two authors (with id 2 and 4307) have co-authored\r\npapers = interactive.execute(\"g.V().has('author', 'id', 2).out('writes').where(__.in('writes').has('id', 4307)).count()\").one()\r\n```\r\n\r\n### Graph analytics\r\n\r\nGraph analytics is widely used in real world. Many algorithms, like community detection, paths and connectivity, centrality are proven to be very useful in various businesses.\r\nGraphScope ships with a set of [built-in algorithms](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Fanalytics_engine.html#built-in-algorithms), enables users easily analysis their graph data.\r\n\r\nContinuing our example, below we first derive a subgraph by extracting publications in specific time out of the entire graph (using Gremlin!), and then run k-core decomposition and triangle counting to generate the structural features of each paper node.\r\n\r\nPlease note that many algorithms may only work on *homogeneous* graphs, and therefore, to evaluate these algorithms over a property graph, we need to project it into a simple graph at first.\r\n\r\n```python\r\n# extract a subgraph of publication within a time range\r\nsub_graph = interactive.subgraph(\"g.V().has('year', gte(2014).and(lte(2020))).outE('cites')\")\r\n\r\n# project the projected graph to simple graph.\r\nsimple_g = sub_graph.project(vertices={\"paper\": []}, edges={\"cites\": []})\r\n\r\nret1 = graphscope.k_core(simple_g, k=5)\r\nret2 = graphscope.triangles(simple_g)\r\n\r\n# add the results as new columns to the citation graph\r\nsub_graph = sub_graph.add_column(ret1, {\"kcore\": \"r\"})\r\nsub_graph = sub_graph.add_column(ret2, {\"tc\": \"r\"})\r\n```\r\n\r\nIn addition, users can write their own algorithms in GraphScope.\r\nCurrently, GraphScope supports users to write their own algorithms\r\nin Pregel model and PIE model.\r\n\r\n### Graph neural networks (GNNs)\r\n\r\nGraph neural networks (GNNs) combines superiority of both graph analytics and machine learning. GNN algorithms can compress both structural and attribute information in a graph into low-dimensional embedding vectors on each node. These embeddings can be further fed into downstream machine learning tasks.\r\n\r\nIn our example, we train a GCN model to classify the nodes (papers) into 349 categories,\r\neach of which represents a venue (e.g. pre-print and conference).\r\nTo achieve this, first we launch a learning engine and build a graph with features\r\nfollowing the last step.\r\n\r\n```python\r\n\r\n# define the features for learning\r\npaper_features = [f\"feat_{i}\" for i in range(128)]\r\n\r\npaper_features.extend([\"kcore\", \"tc\"])\r\n\r\n# launch a learning engine.\r\nlg = graphscope.graphlearn(sub_graph, nodes=[(\"paper\", paper_features)],\r\n                  edges=[(\"paper\", \"cites\", \"paper\")],\r\n                  gen_labels=[\r\n                      (\"train\", \"paper\", 100, (0, 75)),\r\n                      (\"val\", \"paper\", 100, (75, 85)),\r\n                      (\"test\", \"paper\", 100, (85, 100))\r\n                  ])\r\n```\r\n\r\nThen we define the training process, and run it.\r\n\r\n```python\r\n# Note: Here we use tensorflow as NN backend to train GNN model. so please\r\n# install tensorflow.\r\ntry:\r\n    # https:\u002F\u002Fwww.tensorflow.org\u002Fguide\u002Fmigrate\r\n    import tensorflow.compat.v1 as tf\r\n    tf.disable_v2_behavior()\r\nexcept ImportError:\r\n    import tensorflow as tf\r\n\r\nimport graphscope.learning\r\nfrom graphscope.learning.examples import EgoGraphSAGE\r\nfrom graphscope.learning.examples import EgoSAGESupervisedDataLoader\r\nfrom graphscope.learning.examples.tf.trainer import LocalTrainer\r\n\r\n# supervised GCN.\r\ndef train_gcn(graph, node_type, edge_type, class_num, features_num,\r\n              hops_num=2, nbrs_num=[25, 10], epochs=2,\r\n              hidden_dim=256, in_drop_rate=0.5, learning_rate=0.01,\r\n):\r\n    graphscope.learning.reset_default_tf_graph()\r\n\r\n    dimensions = [features_num] + [hidden_dim] * (hops_num - 1) + [class_num]\r\n    model = EgoGraphSAGE(dimensions, act_func=tf.nn.relu, dropout=in_drop_rate)\r\n\r\n    # prepare train dataset\r\n    train_data = EgoSAGESupervisedDataLoader(\r\n        graph, graphscope.learning.Mask.TRAIN,\r\n        node_type=node_type, edge_type=edge_type, nbrs_num=nbrs_num, hops_num=hops_num,\r\n    )\r\n    train_embedding = model.forward(train_data.src_ego)\r\n    train_labels = train_data.src_ego.src.labels\r\n    loss = tf.reduce_mean(\r\n        tf.nn.sparse_softmax_cross_entropy_with_logits(\r\n            labels=train_labels, logits=train_embedding,\r\n        )\r\n    )\r\n    optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\r\n\r\n    # prepare test dataset\r\n    test_data = EgoSAGESupervisedDataLoader(\r\n        graph, graphscope.learning.Mask.TEST,\r\n        node_type=node_type, edge_type=edge_type, nbrs_num=nbrs_num, hops_num=hops_num,\r\n    )\r\n    test_embedding = model.forward(test_data.src_ego)\r\n    test_labels = test_data.src_ego.src.labels\r\n    test_indices = tf.math.argmax(test_embedding, 1, output_type=tf.int32)\r\n    test_acc = tf.div(\r\n        tf.reduce_sum(tf.cast(tf.math.equal(test_indices, test_labels), tf.float32)),\r\n        tf.cast(tf.shape(test_labels)[0], tf.float32),\r\n    )\r\n\r\n    # train and test\r\n    trainer = LocalTrainer()\r\n    trainer.train(train_data.iterator, loss, optimizer, epochs=epochs)\r\n    trainer.test(test_data.iterator, test_acc)\r\n\r\ntrain_gcn(lg, node_type=\"paper\", edge_type=\"cites\",\r\n          class_num=349,  # output dimension\r\n          features_num=130,  # input dimension, 128 + kcore + triangle count\r\n)\r\n```\r\n\r\nA Python script with the entire process is available [here](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Falibaba\u002FGraphScope\u002Fblob\u002Fmain\u002Ftutorials\u002F1_node_classification_on_citation.ipynb), you may try it out by yourself.\r\n\r\n\r\n## Processing Large Graph on Kubernetes Cluster\r\n\r\nGraphScope is designed for processing large graphs, which are usually hard to fit in the memory of a single machine.\r\nWith [Vineyard](https:\u002F\u002Fgithub.com\u002Fv6d-io\u002Fv6d) as the distributed in-memory data manager, GraphScope supports running on a cluster managed by Kubernetes(k8s).\r\n\r\nTo continue this tutorial, please ensure that you have a k8s-managed cluster and know the credentials for the cluster.\r\n(e.g., address of k8s API server, usually stored a `~\u002F.kube\u002Fconfig` file.)\r\n\r\nAlternatively, you can set up a local k8s cluster for testing with [Kind](https:\u002F\u002Fkind.sigs.k8s.io\u002F). \r\nYou can install and deploy Kind referring to [Quick Start](https:\u002F\u002Fkind.sigs.k8s.io\u002Fdocs\u002Fuser\u002Fquick-start\u002F);\r\n\r\nIf you did not install the `graphscope` package in the above step, you can install a subset of the whole package with client functions only.\r\n\r\n```bash\r\npip3 install graphscope-client\r\n```\r\n\r\nNext, let's revisit the example by running on a cluster instead.\r\n\r\n\u003Cdiv align=\"center\">\r\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falibaba_GraphScope_readme_e8b824d90950.png\" width=\"600\" alt=\"how-it-works\" \u002F>\r\n\u003C\u002Fdiv>\r\n\r\nThe figure shows the flow of execution in the cluster mode. When users run code in the python client, it will:\r\n\r\n- *Step 1*. Create a session or workspace in GraphScope.\r\n- *Step 2 - Step 5*. Load a graph, query, analysis and run learning task on this graph via Python interface. These steps are the same to local mode, thus users process huge graphs in a distributed setting just like analysis a small graph on a single machine.(Note that `graphscope.gremlin` and `graphscope.graphlearn` need to be changed to `sess.gremlin` and `sess.graphlearn`, respectively. `sess` is the name of the `Session` instance user created.)\r\n- *Step 6*. Close the session.\r\n\r\n\r\n### Creating a session\r\n\r\nTo use GraphScope in a distributed setting, we need to establish a session in a python interpreter.\r\n\r\nFor convenience, we provide several demo datasets, and an option `with_dataset` to mount the dataset in the graphscope cluster. The datasets will be mounted to `\u002Fdataset` in the pods. If you want to use your own data on k8s cluster, please refer to [this](docs\u002Fdeployment.rst).\r\n\r\n```python\r\nimport graphscope\r\n\r\nsess = graphscope.session(with_dataset=True)\r\n```\r\n\r\nFor macOS, the session needs to establish with the LoadBalancer service type (which is NodePort by default).\r\n\r\n```python\r\nimport graphscope\r\n\r\nsess = graphscope.session(with_dataset=True, k8s_service_type=\"LoadBalancer\")\r\n```\r\n\r\nA session tries to launch a `coordinator`, which is the entry for the back-end engines. The coordinator manages a cluster of resources (k8s pods), and the interactive\u002Fanalytical\u002Flearning engines ran on them. For each pod in the cluster, there is a vineyard instance at service for distributed data in memory.\r\n\r\n\r\n### Loading a graph and processing computation tasks\r\n\r\nSimilar to the standalone mode, we can still use the functions to load a graph easily.\r\n\r\n```python\r\nfrom graphscope.dataset import load_ogbn_mag\r\n\r\n# Note we have mounted the demo datasets to \u002Fdataset,\r\n# There are several datasets including ogbn_mag_small,\r\n# User can attach to the engine container and explore the directory.\r\ng = load_ogbn_mag(sess, \"\u002Fdataset\u002Fogbn_mag_small\u002F\")\r\n```\r\n\r\nHere, the `g` is loaded in parallel via vineyard and stored in vineyard instances in the cluster managed by the session.\r\n\r\nNext, we can conduct graph queries with Gremlin, invoke various graph algorithms, or run graph-based neural network tasks like we did in the standalone mode.\r\nWe do not repeat code here, but a `.ipynb` processing the classification task on k8s is available on the [Playground](https:\u002F\u002Ftry.graphscope.io\u002F).\r\n\r\n### Closing the session\r\n\r\nAnother additional step in the distribution is session close. We close the session after processing all graph tasks.\r\n\r\n```python\r\nsess.close()\r\n```\r\n\r\nThis operation will notify the backend engines and vineyard\r\nto safely unload graphs and their applications,\r\nThen, the coordinator will release all the applied resources in the k8s cluster.\r\n\r\nPlease note that we have not hardened this release for production use and it lacks important security features such as authentication and encryption, and therefore **it is NOT recommended for production use (yet)!**\r\n\r\n## Development\r\n\r\n### Building on local\r\n\r\nTo build graphscope Python package and the engine binaries, you need to install some dependencies and build tools.\r\n\r\n```bash\r\npython3 gsctl.py install-deps dev\r\n\r\n# With argument --cn to speed up the download if you are in China.\r\npython3 gsctl.py install-deps dev --cn\r\n```\r\n\r\nThen you can build GraphScope with pre-configured `make` commands.\r\n\r\n```bash\r\n# to make graphscope whole package, including python package + engine binaries.\r\nsudo make install\r\n\r\n# or make the engine components\r\n# make interactive\r\n# make analytical\r\n# make learning\r\n```\r\n\r\n### Building Docker images\r\n\r\nGraphScope ships with a [Dockerfile](k8s\u002Fdockerfiles\u002Fgraphscope-dev.Dockerfile) that can build docker images for releasing. The images are built on a `builder` image with all dependencies installed and copied to\r\na `runtime-base` image. To build images with latest version of GraphScope, go to the `k8s\u002Finternal` directory under root directory and run this command.\r\n\r\n```bash\r\n# by default, the built image is tagged as graphscope\u002Fgraphscope:SHORTSHA\r\n# cd k8s\r\nmake graphscope\r\n```\r\n\r\n### Building client library\r\n\r\nGraphScope python interface is separate with the engines image.\r\nIf you are developing python client and not modifying the protobuf files, the engines\r\nimage doesn't require to be rebuilt.\r\n\r\nYou may want to re-install the python client on local.\r\n\r\n```bash\r\nmake client\r\n```\r\n\r\nNote that the learning engine client has C\u002FC++ extensions modules and setting up the build\r\nenvironment is a bit tedious. By default the locally-built client library doesn't include\r\nthe support for learning engine. If you want to build client library with learning engine\r\nenabled, please refer [Build Python Wheels](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Fdeveloper_guide.html#build-python-wheels).\r\n\r\n### Testing\r\n\r\nTo verify the correctness of your developed features, your code changes should pass our tests.\r\n\r\nYou may run the whole test suite with commands:\r\n\r\n```bash\r\nmake test\r\n```\r\n\r\n\r\n## Documentation\r\n\r\nDocumentation can be generated using Sphinx. Users can build the documentation using:\r\n\r\n```bash\r\n# build the docs\r\nmake graphscope-docs\r\n\r\n# to open preview on local\r\nopen docs\u002F_build\u002Flatest\u002Fhtml\u002Findex.html\r\n```\r\n\r\nThe latest version of online documentation can be found at https:\u002F\u002Fgraphscope.io\u002Fdocs\r\n\r\n\r\n## License\r\n\r\nGraphScope is released under [Apache License 2.0](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0). Please note that third-party libraries may not have the same license as GraphScope.\r\n\r\n\r\n## Publications\r\n\r\n- Tao He, Shuxian Hu, Longbin Lai, Dongze Li, Neng Li, Xue Li, Lexiao Liu, Xiaojian Luo, Binqing Lyu, Ke Meng, Sijie Shen, Li Su, Lei Wang, Jingbo Xu, Wenyuan Yu, Weibin Zeng, Lei Zhang, Siyuan Zhang, Jingren Zhou, Xiaoli Zhou, Diwen Zhu. [GraphScope Flex: LEGO-like Graph Computing Stack](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002F10.1145\u002F3626246.3653383). Companion of the 2024 International Conference on Management of Data (SIGMOD), industry, 2024.\r\n- Wenfei Fan, Tao He, Longbin Lai, Xue Li, Yong Li, Zhao Li, Zhengping Qian, Chao Tian, Lei Wang, Jingbo Xu, Youyang Yao, Qiang Yin, Wenyuan Yu, Jingren Zhou, Diwen Zhu, Rong Zhu. [GraphScope: A Unified Engine For Big Graph Processing](http:\u002F\u002Fvldb.org\u002Fpvldb\u002Fvol14\u002Fp2879-qian.pdf). The 47th International Conference on Very Large Data Bases (VLDB), industry, 2021.\r\n- Jingbo Xu, Zhanning Bai, Wenfei Fan, Longbin Lai, Xue Li, Zhao Li, Zhengping Qian, Lei Wang, Yanyan Wang, Wenyuan Yu, Jingren Zhou. [GraphScope: A One-Stop Large Graph Processing System](http:\u002F\u002Fvldb.org\u002Fpvldb\u002Fvol14\u002Fp2703-xu.pdf). The 47th International Conference on Very Large Data Bases (VLDB), demo, 2021\r\n\r\nIf you use this software, please cite our paper using the following metadata:\r\n\r\n```bibtex\r\n# GraphScope paper\r\n@article{fan2021graphscope,\r\n  title={GraphScope: a unified engine for big graph processing},\r\n  author={Fan, Wenfei and He, Tao and Lai, Longbin and Li, Xue and Li, Yong and Li, Zhao and Qian, Zhengping and Tian, Chao and Wang, Lei and Xu, Jingbo and others},\r\n  journal={Proceedings of the VLDB Endowment},\r\n  volume={14},\r\n  number={12},\r\n  pages={2879--2892},\r\n  year={2021},\r\n  publisher={VLDB Endowment}\r\n}\r\n# or GraphScope Flex paper\r\n@inproceedings{10.1145\u002F3626246.3653383,\r\n  title = {GraphScope Flex: LEGO-like Graph Computing Stack},\r\n  author = {He, Tao and Hu, Shuxian and Lai, Longbin and Li, Dongze and Li, Neng and Li, Xue and Liu, Lexiao and Luo, Xiaojian and Lyu, Bingqing and Meng, Ke and Shen, Sijie and Su, Li and Wang, Lei and Xu, Jingbo and Yu, Wenyuan and Zeng, Weibin and Zhang, Lei and Zhang, Siyuan and Zhou, Jingren and Zhou, Xiaoli and Zhu, Diwen},\r\n  year = {2024},\r\n  isbn = {9798400704222},\r\n  publisher = {Association for Computing Machinery},\r\n  booktitle = {Companion of the 2024 International Conference on Management of Data},\r\n  pages = {386–399},\r\n  numpages = {14},\r\n  location = {Santiago AA, Chile},\r\n  series = {SIGMOD\u002FPODS '24}\r\n}\r\n```\r\n\r\n## Contributing\r\n\r\nAny contributions you make are **greatly appreciated**!\r\n- Join in the [Slack channel](http:\u002F\u002Fslack.graphscope.io) for discussion.\r\n- Please report bugs by submitting a GitHub issue.\r\n- Please submit contributions using pull requests.\r\n","\u003Ch1 align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Fgraphscope.io\u002Fassets\u002Fimages\u002Fgraphscope-logo.svg\" width=\"400\" alt=\"graphscope-logo\">\n\u003C\u002Fh1>\n\u003Cp align=\"center\">\n    阿里巴巴推出的一站式大规模图计算系统\n\u003C\u002Fp>\n\n[![GraphScope CI](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Factions\u002Fworkflows\u002Flocal-ci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Factions\u002Fworkflows\u002Flocal-ci.yml)\n[![Coverage](https:\u002F\u002Fcodecov.io\u002Fgh\u002Falibaba\u002FGraphScope\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Falibaba\u002FGraphScope)\n[![Playground](https:\u002F\u002Fshields.io\u002Fbadge\u002FJupyterLab-Try%20GraphScope%20Now!-F37626?logo=jupyter)](https:\u002F\u002Ftry.graphscope.io)\n[![Open in Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Falibaba\u002FGraphScope)\n[![Artifact HUB](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fartifacthub.io\u002Fbadge\u002Frepository\u002Fgraphscope)](https:\u002F\u002Fartifacthub.io\u002Fpackages\u002Fhelm\u002Fgraphscope\u002Fgraphscope)\n[![Docs-en](https:\u002F\u002Fshields.io\u002Fbadge\u002FDocs-English-blue?logo=Read%20The%20Docs)](https:\u002F\u002Fgraphscope.io\u002Fdocs)\n[![FAQ-en](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-FAQ-blue?logo=Read%20The%20Docs)](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Ffrequently_asked_questions.html)\n[![Docs-zh](https:\u002F\u002Fshields.io\u002Fbadge\u002FDocs-%E4%B8%AD%E6%96%87-blue?logo=Read%20The%20Docs)](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Fzh\u002F)\n[![FAQ-zh](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-FAQ%E4%B8%AD%E6%96%87-blue?logo=Read%20The%20Docs)](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Fzh\u002Ffrequently_asked_questions.html)\n[![README-zh](https:\u002F\u002Fshields.io\u002Fbadge\u002FREADME-%E4%B8%AD%E6%96%87-blue)](README-zh.md)\n[![ACM DL](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FACM%20DL-10.14778%2F3476311.3476369-blue)](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002F10.14778\u002F3476311.3476369)\n\n🎉 请查看我们正在推进的 [GraphScope Flex](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Ftree\u002Fmain\u002Fflex)：一款受乐高启发、模块化且用户友好的 GraphScope 升级版本。🎉\n\nGraphScope 是一个统一的分布式图计算平台，通过友好的 Python 接口，在计算机集群上提供一站式环境，用于执行各种图操作。GraphScope 将阿里巴巴的多项关键技术相结合，使得在计算集群上对大规模图数据进行多阶段处理变得简单易行：其中包括用于分析、交互式查询和图神经网络（GNN）计算的 [GRAPE](https:\u002F\u002Fgithub.com\u002Falibaba\u002Flibgrape-lite)、[MaxGraph](interactive_engine\u002F) 和 [Graph-Learn](https:\u002F\u002Fgithub.com\u002Falibaba\u002Fgraph-learn)（GL），以及提供高效内存间数据传输的存储系统 [Vineyard](https:\u002F\u002Fgithub.com\u002Fv6d-io\u002Fv6d)。\n\n访问我们的官网 [graphscope.io](https:\u002F\u002Fgraphscope.io)，了解更多详情。\n\n## 最新消息\n- [2025年4月21日] 🏆 GraphScope 使用声明式查询语言 CYPHER，在 [LDBC 社交网络基准交互式工作负载](https:\u002F\u002Fldbcouncil.org\u002Fbenchmarks\u002Fsnb-interactive\u002F) 上取得了突破性成果，SF300 规模下的吞吐量比此前的纪录保持者高出 2.0 倍！🏆\n- [2024年7月31日] 🎢 我们上线了一个可视化页面，展示了 GraphScope 在图计算领域的演进历程。[立即查看！](https:\u002F\u002Fgraphscope.io\u002Fjourney)\n- [2024年5月30日] 🏅 LDBC 宣布，GraphScope Flex 创下了新的 [SNB Interactive 审计结果] 纪录，相关消息已在 [X（Twitter）](https:\u002F\u002Ftwitter.com\u002FLDBCouncil\u002Fstatus\u002F1795886732950294630) 上发布！\n- [2024年3月25日] 🙌🏻 我们将图文件格式 [GraphAr](https:\u002F\u002Fgraphar.apache.org\u002F) 捐赠给 [Apache 软件基金会](https:\u002F\u002Fwww.apache.org\u002F)，作为孵化项目。\n- [2024年2月5日] 🎉 GraphScope Flex 的论文 ([arXiv.org](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.12107)) 已被 [SIGMOD 2024](https:\u002F\u002F2024.sigmod.org\u002F) 行业赛道收录。智利见！\n- [2023年12月19日] 📑 介绍 GraphScope Flex 的论文已在 [arXiv.org](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.12107) 上发布。\n- [2023年7月20日] 🏆 GraphScope 在 [LDBC 社交网络基准交互式工作负载](https:\u002F\u002Fldbcouncil.org\u002Fbenchmarks\u002Fsnb-interactive\u002F) 上再次刷新纪录，SF300 规模下的吞吐量比之前的纪录保持者高出 2.45 倍！🏆\n- [2023年7月4日] 🚀 GraphScope Flex 技术预览版随 [v0.23.0](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Freleases\u002Ftag\u002Fv0.23.0) 一同发布。\n\n## 目录\n\n- [快速入门](#getting-started)\n  - [单机模式安装](#installation-for-standalone-mode)\n- [示例：引用网络上的节点分类](#demo-node-classification-on-citation-network)\n  - [加载图](#loading-a-graph)\n  - [交互式查询](#interactive-query)\n  - [图数据分析](#graph-analytics)\n  - [图神经网络（GNNs）](#graph-neural-networks-gnns)\n- [Kubernetes 集群上的图处理](#processing-large-graph-on-kubernetes-cluster)\n  - [创建会话](#creating-a-session)\n  - [加载图与图计算任务](#loading-a-graph-and-processing-computation-tasks)\n  - [关闭会话](#closing-the-session)\n- [开发](#development)\n  - [本地构建](#building-on-local)\n  - [构建 Docker 镜像](#building-docker-images)\n  - [构建客户端库](#building-client-library)\n  - [测试](#testing)\n- [文档](#documentation)\n- [许可证](#license)\n- [出版物](#publications)\n- [加入我们的社区！](#contributing)\n\n## 快速入门\n\n我们提供一个托管的 JupyterLab 环境 [Playground](https:\u002F\u002Ftry.graphscope.io)。您可以在浏览器中直接体验 [GraphScope](https:\u002F\u002Ftry.graphscope.io)！\n\nGraphScope 支持单机模式运行，也支持在由 [Kubernetes](https:\u002F\u002Fkubernetes.io\u002F) 管理的容器集群上运行。为了快速上手，我们先从单机模式开始吧。\n\n\n### 单机模式安装\n\nGraphScope 的预编译包以 Python 包的形式分发，可以使用 `pip` 轻松安装。\n\n```bash\npip3 install graphscope\n```\n\n请注意，`graphscope` 需要 `Python` >= `3.8` 以及 `pip` >= `19.3`。该包针对最流行的 Linux 发行版（Ubuntu 20.04+ \u002F CentOS 7+）和 macOS 12+（Intel\u002FApple Silicon）进行了构建和测试。对于 Windows 用户，建议在 WSL2 上安装 Ubuntu 来使用此包。\n\n接下来，我们将通过一个具体示例，展示数据科学家如何利用 GraphScope 有效地分析大型图数据。\n\n## 演示：引用网络上的节点分类\n\n[`ogbn-mag`](https:\u002F\u002Fogb.stanford.edu\u002Fdocs\u002Fnodeprop\u002F#ogbn-mag) 是一个异构网络，由 Microsoft 学术图谱的一个子集构成。它包含 4 种类型的实体（即论文、作者、机构和研究领域），以及四种连接两种实体的有向关系。\n\n给定异构的 `ogbn-mag` 数据，任务是预测每篇论文的类别。节点分类可以识别出属于多个期刊或会议的论文，这些期刊或会议代表了不同主题下的科学工作群体。我们同时利用属性信息和结构信息来对论文进行分类。在图中，每篇论文节点包含一个 128 维的 word2vec 向量，用于表示其内容，该向量通过对标题和摘要中单词嵌入的平均得到。单个单词的嵌入是预先训练好的。而结构信息则是在运行时动态计算的。\n\n### 加载图\n\nGraphScope 将图数据建模为属性图，在这种模型中，边和顶点都有标签，并且可以拥有多种属性。\n以 `ogbn-mag` 为例，下图展示了属性图的模型。\n\n\u003Cdiv align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falibaba_GraphScope_readme_9b7e86d600f8.png\" width=\"600\" alt=\"sample-of-property-graph\" \u002F>\n\u003C\u002Fdiv>\n\n该图有四种类型的顶点，分别标记为 `paper`、`author`、`institution` 和 `field_of_study`。它们之间存在四类边，每种边都有一个标签，并指定了其两端顶点的类型。例如，`cites` 边连接两个标记为 `paper` 的顶点。另一个例子是 `writes`，它要求源顶点标记为 `author`，目标顶点标记为 `paper`。所有的顶点和边都可以具有属性，比如 `paper` 顶点可能包含特征、发表年份、学科标签等属性。\n\n要使用我们的检索模块将此图加载到 GraphScope 中，请使用以下代码：\n\n```python\nimport graphscope\nfrom graphscope.dataset import load_ogbn_mag\n\ng = load_ogbn_mag()\n```\n\n我们提供了一组函数，用于从 [ogb](https:\u002F\u002Fogb.stanford.edu\u002Fdocs\u002Fdataset_overview\u002F) 和 [snap](https:\u002F\u002Fsnap.stanford.edu\u002Fdata\u002Findex.html) 加载图数据集，以方便用户使用。所有可用的图可以在 [这里](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Ftree\u002Fdocs\u002Fpython\u002Fgraphscope\u002Fdataset) 找到。如果您想使用自己的图数据，请参考 [这篇文档](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Floading_graph.html)，按照标签加载顶点和边。\n\n### 交互式查询\n\n交互式查询允许用户以探索性的方式直接浏览、检查和展示图数据，以便及时找到特定或深入的信息。\nGraphScope 采用一种称为 [Gremlin](http:\u002F\u002Ftinkerpop.apache.org\u002F) 的高级语言来进行图遍历，并提供了大规模下的高效执行能力 [interactive_engine\u002Fbenchmark\u002F]。\n\n在本例中，我们使用图遍历统计两位给定作者共同撰写的论文数量。为了简化查询，我们假设这两位作者可以通过 ID 分别唯一地标识为 `2` 和 `4307`。\n\n```python\n# 获取在图 g 上提交 Gremlin 查询的端点。\ninteractive = graphscope.gremlin(g)\n\n# 统计两位作者（ID 分别为 2 和 4307）共同撰写的论文数量\npapers = interactive.execute(\"g.V().has('author', 'id', 2).out('writes').where(__.in('writes').has('id', 4307)).count()\").one()\n```\n\n### 图分析\n\n图分析在现实世界中被广泛应用。许多算法，如社区检测、路径与连通性、中心性等，已被证明在各种业务场景中非常有用。\nGraphScope 内置了一组 [内置算法](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Fanalytics_engine.html#built-in-algorithms)，使用户能够轻松地分析他们的图数据。\n\n继续我们的示例，下面我们将首先通过提取整个图中特定时间段内的出版物来构建一个子图（使用 Gremlin!），然后运行 k-core 分解和三角形计数，以生成每个论文节点的结构特征。\n\n请注意，许多算法可能只适用于 *同质* 图，因此，要在属性图上评估这些算法，我们需要先将其投影为简单图。\n\n```python\n# 提取一个时间范围内的出版物子图\nsub_graph = interactive.subgraph(\"g.V().has('year', gte(2014).and(lte(2020))).outE('cites')\")\n\n# 将投影后的图转换为简单图。\nsimple_g = sub_graph.project(vertices={\"paper\": []}, edges={\"cites\": []})\n\nret1 = graphscope.k_core(simple_g, k=5)\nret2 = graphscope.triangles(simple_g)\n\n# 将结果作为新列添加到引用图中\nsub_graph = sub_graph.add_column(ret1, {\"kcore\": \"r\"})\nsub_graph = sub_graph.add_column(ret2, {\"tc\": \"r\"})\n```\n\n此外，用户还可以在 GraphScope 中编写自己的算法。\n目前，GraphScope 支持用户基于 Pregel 模型和 PIE 模型编写自定义算法。\n\n### 图神经网络 (GNNs)\n\n图神经网络 (GNNs) 结合了图分析和机器学习的优势。GNN 算法可以将图中的结构和属性信息压缩成每个节点上的低维嵌入向量。这些嵌入可以进一步输入到下游的机器学习任务中。\n\n在我们的示例中，我们训练了一个 GCN 模型，将节点（论文）分类为 349 个类别，\n每个类别代表一个期刊或会议（例如预印本和会议）。\n为此，我们首先启动一个学习引擎，并按照上一步骤构建带有特征的图。\n\n```python\n\n# 定义用于学习的特征\npaper_features = [f\"feat_{i}\" for i in range 128]\n\npaper_features.extend([\"kcore\", \"tc\"])\n\n# 启动一个学习引擎。\nlg = graphscope.graphlearn(sub_graph, nodes=[(\"paper\", paper_features)],\n                  edges=[(\"paper\", \"cites\", \"paper\")],\n                  gen_labels=[\n                      (\"train\", \"paper\", 100, (0, 75)),\n                      (\"val\", \"paper\", 100, (75, 85)),\n                      (\"test\", \"paper\", 100, (85, 100))\n                  ])\n```\n\n然后我们定义训练过程并运行它。\n\n```python\n# 注意：这里我们使用 tensorflow 作为 NN 后端来训练 GNN 模型。因此请安装 tensorflow。\ntry:\n    # https:\u002F\u002Fwww.tensorflow.org\u002Fguide\u002Fmigrate\n    import tensorflow.compat.v1 as tf\n    tf.disable_v2_behavior()\nexcept ImportError:\n    import tensorflow as tf\n\nimport graphscope.learning\nfrom graphscope.learning.examples import EgoGraphSAGE\nfrom graphscope.learning.examples import EgoSAGESupervisedDataLoader\nfrom graphscope.learning.examples.tf.trainer import LocalTrainer\n\n# 有监督的 GCN。\ndef train_gcn(graph, node_type, edge_type, class_num, features_num,\n              hops_num=2, nbrs_num=[25, 10], epochs=2,\n              hidden_dim=256, in_drop_rate=0.5, learning_rate=0.01,\n):\n    graphscope.learning.reset_default_tf_graph()\n\n    dimensions = [features_num] + [hidden_dim] * (hops_num - 1) + [class_num]\n    model = EgoGraphSAGE(dimensions, act_func=tf.nn.relu, dropout=in_drop_rate)\n\n    # 准备训练数据集\n    train_data = EgoSAGESupervisedDataLoader(\n        graph, graphscope.learning.Mask.TRAIN,\n        node_type=node_type, edge_type=edge_type, nbrs_num=nbrs_num, hops_num=hops_num,\n    )\n    train_embedding = model.forward(train_data.src_ego)\n    train_labels = train_data.src_ego.src.labels\n    loss = tf.reduce_mean(\n        tf.nn.sparse_softmax_cross_entropy_with_logits(\n            labels=train_labels, logits=train_embedding,\n        )\n    )\n    optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n\n    # 准备测试数据集\n    test_data = EgoSAGESupervisedDataLoader(\n        graph, graphscope.learning.Mask.TEST,\n        node_type=node_type, edge_type=edge_type, nbrs_num=nbrs_num, hops_num=hops_num,\n    )\n    test_embedding = model.forward(test_data.src_ego)\n    test_labels = test_data.src_ego.src.labels\n    test_indices = tf.math.argmax(test_embedding, 1, output_type=tf.int32)\n    test_acc = tf.div(\n        tf.reduce_sum(tf.cast(tf.math.equal(test_indices, test_labels), tf.float32)),\n        tf.cast(tf.shape(test_labels)[0], tf.float32),\n    )\n\n    # 训练和测试\n    trainer = LocalTrainer()\n    trainer.train(train_data.iterator, loss, optimizer, epochs=epochs)\n    trainer.test(test_data.iterator, test_acc)\n\ntrain_gcn(lg, node_type=\"paper\", edge_type=\"cites\",\n          class_num=349,  # 输出维度\n          features_num=130,  # 输入维度，128 + kcore + 三角形计数\n)\n```\n\n包含整个流程的 Python 脚本可在[这里](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Falibaba\u002FGraphScope\u002Fblob\u002Fmain\u002Ftutorials\u002F1_node_classification_on_citation.ipynb)找到，您可以自行尝试。\n\n## 在 Kubernetes 集群上处理大规模图\n\nGraphScope 专为处理大规模图而设计，这类图通常难以容纳在单台机器的内存中。借助 [Vineyard](https:\u002F\u002Fgithub.com\u002Fv6d-io\u002Fv6d) 作为分布式内存数据管理器，GraphScope 支持在由 Kubernetes (k8s) 管理的集群上运行。\n\n要继续本教程，请确保您拥有一个由 k8s 管理的集群，并了解该集群的凭据（例如 k8s API 服务器的地址，通常存储在 `~\u002F.kube\u002Fconfig` 文件中）。\n\n或者，您也可以使用 [Kind](https:\u002F\u002Fkind.sigs.k8s.io\u002F) 设置一个本地 k8s 集群进行测试。您可以参考 [快速入门](https:\u002F\u002Fkind.sigs.k8s.io\u002Fdocs\u002Fuser\u002Fquick-start\u002F) 安装并部署 Kind。\n\n如果您在上述步骤中未安装 `graphscope` 包，可以仅安装包含客户端功能的子集：\n\n```bash\npip3 install graphscope-client\n```\n\n接下来，让我们通过在集群上运行来重新审视这个示例。\n\n\u003Cdiv align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falibaba_GraphScope_readme_e8b824d90950.png\" width=\"600\" alt=\"how-it-works\" \u002F>\n\u003C\u002Fdiv>\n\n该图展示了集群模式下的执行流程。当用户在 Python 客户端中运行代码时，它将：\n\n- *步骤 1*：在 GraphScope 中创建会话或工作空间。\n- *步骤 2 至步骤 5*：通过 Python 接口加载图、查询、分析并在该图上运行学习任务。这些步骤与本地模式相同，因此用户可以在分布式环境中处理大型图，就像在单台机器上分析小型图一样。（请注意，`graphscope.gremlin` 和 `graphscope.graphlearn` 需分别替换为 `sess.gremlin` 和 `sess.graphlearn`，其中 `sess` 是用户创建的 `Session` 实例的名称。）\n- *步骤 6*：关闭会话。\n\n### 创建会话\n\n要在分布式环境中使用 GraphScope，我们需要在 Python 解释器中建立一个会话。\n\n为了方便起见，我们提供了几个演示数据集，并提供了一个 `with_dataset` 选项，用于将数据集挂载到 GraphScope 集群中。这些数据集将被挂载到 Pod 中的 `\u002Fdataset` 目录下。如果您想在 k8s 集群上使用自己的数据，请参阅[此处](docs\u002Fdeployment.rst)。\n\n```python\nimport graphscope\n\nsess = graphscope.session(with_dataset=True)\n```\n\n对于 macOS 系统，会话需要以 LoadBalancer 服务类型启动（默认为 NodePort）。\n\n```python\nimport graphscope\n\nsess = graphscope.session(with_dataset=True, k8s_service_type=\"LoadBalancer\")\n```\n\n会话会尝试启动一个协调器，它是后端引擎的入口。协调器管理着一组资源（k8s Pod），以及在这些 Pod 上运行的交互式、分析和学习引擎。集群中的每个 Pod 都有一个 Vineyard 实例，用于提供分布式内存数据服务。\n\n### 加载图并处理计算任务\n\n与独立模式类似，我们仍然可以使用函数轻松加载图。\n\n```python\nfrom graphscope.dataset import load_ogbn_mag\n\n# 注意我们已将演示数据集挂载到 \u002Fdataset，\n# 其中包括 ogbn_mag_small 等多个数据集，\n# 用户可以进入引擎容器探索该目录。\ng = load_ogbn_mag(sess, \"\u002Fdataset\u002Fogbn_mag_small\u002F\")\n```\n\n在这里，图 `g` 通过 Vineyard 并行加载，并存储在由会话管理的集群中的 Vineyard 实例中。\n\n接下来，我们可以像在独立模式中一样，使用 Gremlin 进行图查询、调用各种图算法，或运行基于图的神经网络任务。这里不再重复代码，但一个在 k8s 上处理分类任务的 `.ipynb` 文件已在 [Playground](https:\u002F\u002Ftry.graphscope.io\u002F) 上提供。\n\n### 关闭会话\n\n分布式环境中的另一个额外步骤是关闭会话。在完成所有图任务后，我们关闭会话。\n\n```python\nsess.close()\n```\n\n此操作将通知后端引擎和 Vineyard 安全地卸载图及其应用程序，然后协调器将释放 k8s 集群中所有已申请的资源。\n\n请注意，我们尚未针对生产环境对这一发布版本进行加固，它缺乏身份验证和加密等重要安全特性，因此**目前不建议用于生产环境！**\n\n## 开发\n\n### 在本地构建\n\n要构建 GraphScope 的 Python 包和引擎二进制文件，您需要安装一些依赖项和构建工具。\n\n```bash\npython3 gsctl.py install-deps dev\n\n# 如果您在中国，可使用 --cn 参数加速下载。\npython3 gsctl.py install-deps dev --cn\n```\n\n然后，您可以使用预配置的 `make` 命令构建 GraphScope。\n\n```bash\n# 构建完整的 GraphScope 包，包括 Python 包和引擎二进制文件。\nsudo make install\n\n# 或者构建引擎组件\n\n# 使具有交互性\n# 使具有分析性\n# 使具有学习性\n```\n\n\n### 构建 Docker 镜像\n\nGraphScope 自带一个 [Dockerfile](k8s\u002Fdockerfiles\u002Fgraphscope-dev.Dockerfile)，可用于构建用于发布的 Docker 镜像。这些镜像是基于一个安装了所有依赖项的 `builder` 镜像构建的，随后将内容复制到 `runtime-base` 镜像中。要构建最新版本的 GraphScope 镜像，请进入根目录下的 `k8s\u002Finternal` 目录，并运行以下命令。\n\n```bash\n# 默认情况下，构建的镜像会被打上标签 graphscope\u002Fgraphscope:SHORTSHA\n# cd k8s\nmake graphscope\n```\n\n### 构建客户端库\n\nGraphScope 的 Python 接口与引擎镜像是分开的。如果您正在开发 Python 客户端且未修改 Protobuf 文件，则无需重新构建引擎镜像。\n\n您可能希望在本地重新安装 Python 客户端：\n\n```bash\nmake client\n```\n\n请注意，学习引擎客户端包含 C\u002FC++ 扩展模块，搭建构建环境较为繁琐。默认情况下，本地构建的客户端库不包含对学习引擎的支持。如果您希望构建支持学习引擎的客户端库，请参阅 [构建 Python Wheels](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Fdeveloper_guide.html#build-python-wheels)。\n\n### 测试\n\n为了验证您开发的功能是否正确，您的代码更改应通过我们的测试。\n\n您可以使用以下命令运行整个测试套件：\n\n```bash\nmake test\n```\n\n## 文档\n\n文档可以使用 Sphinx 生成。用户可以通过以下命令构建文档：\n\n```bash\n# 构建文档\nmake graphscope-docs\n\n# 在本地打开预览\nopen docs\u002F_build\u002Flatest\u002Fhtml\u002Findex.html\n```\n\n最新版在线文档可在 https:\u002F\u002Fgraphscope.io\u002Fdocs 找到。\n\n## 许可证\n\nGraphScope 采用 [Apache License 2.0](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0) 许可证发布。请注意，第三方库的许可证可能与 GraphScope 不同。\n\n\n## 出版物\n\n- Tao He, Shuxian Hu, Longbin Lai, Dongze Li, Neng Li, Xue Li, Lexiao Liu, Xiaojian Luo, Binqing Lyu, Ke Meng, Sijie Shen, Li Su, Lei Wang, Jingbo Xu, Wenyuan Yu, Weibin Zeng, Lei Zhang, Siyuan Zhang, Jingren Zhou, Xiaoli Zhou, Diwen Zhu. [GraphScope Flex: LEGO 式图计算栈](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002F10.1145\u002F3626246.3653383)。2024 年国际数据管理会议 (SIGMOD) 行业分会场论文，2024 年。\n- Wenfei Fan, Tao He, Longbin Lai, Xue Li, Yong Li, Zhao Li, Zhengping Qian, Chao Tian, Lei Wang, Jingbo Xu, Youyang Yao, Qiang Yin, Wenyuan Yu, Jingren Zhou, Diwen Zhu, Rong Zhu. [GraphScope：用于大规模图处理的统一引擎](http:\u002F\u002Fvldb.org\u002Fpvldb\u002Fvol14\u002Fp2879-qian.pdf)。第 47 届国际大型数据库会议 (VLDB)，行业分会场论文，2021 年。\n- Jingbo Xu, Zhanning Bai, Wenfei Fan, Longbin Lai, Xue Li, Zhao Li, Zhengping Qian, Lei Wang, Yanyan Wang, Wenyuan Yu, Jingren Zhou. [GraphScope：一站式大规模图处理系统](http:\u002F\u002Fvldb.org\u002Fpvldb\u002Fvol14\u002Fp2703-xu.pdf)。第 47 届国际大型数据库会议 (VLDB)，演示论文，2021 年。\n\n如果您使用本软件，请使用以下元数据引用我们的论文：\n\n```bibtex\n# GraphScope 论文\n@article{fan2021graphscope,\n  title={GraphScope: a unified engine for big graph processing},\n  author={Fan, Wenfei and He, Tao and Lai, Longbin and Li, Xue and Li, Yong and Li, Zhao and Qian, Zhengping and Tian, Chao and Wang, Lei and Xu, Jingbo and others},\n  journal={Proceedings of the VLDB Endowment},\n  volume={14},\n  number={12},\n  pages={2879--2892},\n  year={2021},\n  publisher={VLDB Endowment}\n}\n# 或 GraphScope Flex 论文\n@inproceedings{10.1145\u002F3626246.3653383,\n  title = {GraphScope Flex: LEGO-like Graph Computing Stack},\n  author = {He, Tao and Hu, Shuxian and Lai, Longbin and Li, Dongze and Li, Neng and Li, Xue and Liu, Lexiao and Luo, Xiaojian and Lyu, Bingqing and Meng, Ke and Shen, Sijie and Su, Li and Wang, Lei and Xu, Jingbo and Yu, Wenyuan and Zeng, Weibin and Zhang, Lei and Zhang, Siyuan and Zhou, Jingren and Zhou, Xiaoli and Zhu, Diwen},\n  year = {2024},\n  isbn = {9798400704222},\n  publisher = {Association for Computing Machinery},\n  booktitle = {Companion of the 2024 International Conference on Management of Data},\n  pages = {386–399},\n  numpages = {14},\n  location = {Santiago AA, Chile},\n  series = {SIGMOD\u002FPODS '24}\n}\n```\n\n## 贡献\n\n您的任何贡献都将受到**高度赞赏**！\n- 加入 [Slack 频道](http:\u002F\u002Fslack.graphscope.io) 进行讨论。\n- 如发现错误，请提交 GitHub 问题。\n- 请通过拉取请求提交您的贡献。","# GraphScope 快速上手指南\n\nGraphScope 是阿里巴巴开源的一站式大规模图计算系统，支持交互式查询、图分析和图神经网络（GNN）计算。本指南将帮助开发者在单机模式下快速体验 GraphScope 的核心功能。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：\n    *   Linux (推荐 Ubuntu 20.04+ 或 CentOS 7+)\n    *   macOS 12+ (支持 Intel 和 Apple Silicon)\n    *   Windows 用户建议通过 WSL2 安装 Ubuntu 子系统使用。\n*   **Python 版本**：>= 3.8\n*   **包管理工具**：pip >= 19.3\n\n## 安装步骤\n\nGraphScope 以 Python 包形式发布，您可以直接使用 `pip` 进行安装。\n\n```bash\npip3 install graphscope\n```\n\n> **提示**：如果您在国内网络环境下遇到下载缓慢的问题，建议使用国内镜像源加速安装：\n> ```bash\n> pip3 install graphscope -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 基本使用\n\n以下示例演示了如何加载一个引文网络数据集 (`ogbn-mag`)，并依次执行**交互式查询**、**图分析**和**图神经网络训练**。\n\n### 1. 加载图数据\n\nGraphScope 内置了多种常用数据集的加载函数。这里我们加载 heterogeneous graph（异构图）`ogbn-mag`，包含论文、作者、机构和研究领域四种实体。\n\n```python\nimport graphscope\nfrom graphscope.dataset import load_ogbn_mag\n\n# 加载数据集\ng = load_ogbn_mag()\n```\n\n### 2. 交互式查询 (Interactive Query)\n\n使用 Gremlin 语言进行灵活的图遍历查询。以下示例统计 ID 为 `2` 和 `4307` 的两位作者共同撰写的论文数量。\n\n```python\n# 创建 Gremlin 查询入口\ninteractive = graphscope.gremlin(g)\n\n# 执行查询：统计两位作者合著的论文数\npapers = interactive.execute(\"g.V().has('author', 'id', 2).out('writes').where(__.in('writes').has('id', 4307)).count()\").one()\n\nprint(f\"Co-authored papers: {papers}\")\n```\n\n### 3. 图分析 (Graph Analytics)\n\nGraphScope 内置了丰富的图算法。由于许多算法仅适用于同构图，我们需要先将异构图投影（Project）为简单图，然后执行 k-core 分解和三角形计数。\n\n```python\n# 1. 提取子图：筛选 2014-2020 年间的论文引用关系\nsub_graph = interactive.subgraph(\"g.V().has('year', gte(2014).and(lte(2020))).outE('cites')\")\n\n# 2. 投影为简单图 (只保留 paper 节点和 cites 边)\nsimple_g = sub_graph.project(vertices={\"paper\": []}, edges={\"cites\": []})\n\n# 3. 运行内置算法\nret_kcore = graphscope.k_core(simple_g, k=5)\nret_triangles = graphscope.triangles(simple_g)\n\n# 4. 将计算结果作为新列添加回图中\nsub_graph = sub_graph.add_column(ret_kcore, {\"kcore\": \"r\"})\nsub_graph = sub_graph.add_column(ret_triangles, {\"tc\": \"r\"})\n```\n\n### 4. 图神经网络 (GNN)\n\n利用提取的结构特征和原始属性特征，训练一个 GCN 模型进行节点分类（预测论文所属的学术 venue）。\n\n```python\n# 定义用于学习的特征列\npaper_features = [f\"feat_{i}\" for i in range(128)]\npaper_features.extend([\"kcore\", \"tc\"]) # 加入刚才计算的结构特征\n\n# 启动学习引擎并构建训练图\nlearn_g = sub_graph.project(\n    vertices={\"paper\": paper_features}, \n    edges={\"cites\": []}\n)\n\n# 定义 GCN 模型并进行训练 (伪代码示例，具体配置视任务而定)\nfrom graphscope import nns as gs\nfrom graphscope.nns.models import GCN\n\nmodel = GCN(learn_g, [128+2, 64, 349]) # 输入维度=128 特征 +2 结构特征\n# 此处省略具体的 train\u002Ffit 代码，实际使用时请参考完整文档配置优化器和损失函数\n```\n\n---\n*更多高级用法（如 Kubernetes 集群部署、自定义算法开发），请访问 [GraphScope 官方文档](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Fzh\u002F)。*","某大型电商平台的风控团队需要实时分析亿级用户与交易构成的复杂关系网络，以识别隐蔽的团伙欺诈行为。\n\n### 没有 GraphScope 时\n- **架构割裂严重**：团队需分别维护离线图分析引擎、交互式查询系统和深度学习框架，数据在不同系统间频繁导出导入，开发链路冗长。\n- **实时性差**：传统方案难以在秒级内完成大规模子图遍历与多跳查询，导致欺诈交易往往在发生数小时后才能被拦截。\n- **资源消耗巨大**：为应对峰值流量，不得不过度配置集群资源，且内存数据无法高效共享，造成大量计算冗余和成本浪费。\n- **算法迭代缓慢**：数据科学家将图特征提取到传统机器学习平台的过程繁琐，从想法验证到模型上线通常需要数周时间。\n\n### 使用 GraphScope 后\n- **一站式统一处理**：通过 Python 接口即可在一个平台上无缝串联交互式查询、离线分析及图神经网络训练，消除了系统间的“数据孤岛”。\n- **毫秒级实时响应**：依托 MaxGraph 交互引擎，即使在十亿边规模下，复杂的多跳关联查询也能在毫秒级返回结果，实现交易即时阻断。\n- **极致资源效率**：利用 Vineyard 内存数据存储，实现了各计算模块间零拷贝的数据共享，显著降低集群负载并节省硬件成本。\n- **敏捷模型落地**：内置 Graph-Learn 支持端到端的 GNN 训练，算法工程师可直接在图数据上快速验证新策略，模型迭代周期缩短至天级。\n\nGraphScope 通过融合阿里核心图技术，将原本割裂复杂的图计算流程简化为统一高效的闭环，让超大规模图数据的实时价值挖掘变得触手可及。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falibaba_GraphScope_3bafd1df.png","alibaba","Alibaba","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Falibaba_f65f7221.png","Alibaba Open Source",null,"https:\u002F\u002Fopensource.alibaba.com\u002F","https:\u002F\u002Fgithub.com\u002Falibaba",[84,88,92,96,100,104,108,112,116,120],{"name":85,"color":86,"percentage":87},"C++","#f34b7d",32.1,{"name":89,"color":90,"percentage":91},"Rust","#dea584",24.3,{"name":93,"color":94,"percentage":95},"Java","#b07219",23.8,{"name":97,"color":98,"percentage":99},"Python","#3572A5",15.3,{"name":101,"color":102,"percentage":103},"Jupyter Notebook","#DA5B0B",1.4,{"name":105,"color":106,"percentage":107},"Shell","#89e051",1.1,{"name":109,"color":110,"percentage":111},"Cypher","#34c0eb",0.6,{"name":113,"color":114,"percentage":115},"CMake","#DA3434",0.4,{"name":117,"color":118,"percentage":119},"C","#555555",0.3,{"name":121,"color":122,"percentage":119},"Dockerfile","#384d54",3549,468,"2026-04-10T02:50:00","Apache-2.0",4,"Linux (Ubuntu 20.04+, CentOS 7+), macOS 12+ (Intel\u002FApple silicon), Windows (需通过 WSL2 安装 Ubuntu)","未说明",{"notes":131,"python":132,"dependencies":133},"支持单机模式或 Kubernetes 集群模式运行。Windows 用户建议使用 WSL2。工具集成了 GRAPE、MaxGraph、Graph-Learn 和 Vineyard 等组件。可通过 pip 直接安装。","3.8+",[134],"pip>=19.3",[29,16],[137,138,139,140,141,142,143,144,145,146],"graph","graph-computation","graph-neural-networks","gremlin","graph-analytics","graph-data","graph-computing","analytics","big-data","data-science","2026-03-27T02:49:30.150509","2026-04-12T16:29:34.952841",[150,155,160,165,169,173],{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},30779,"在 Kubernetes (k8s) 环境下使用 Helm 部署 GraphScope 时，创建 GIE (Gremlin Interactive Engine) 实例失败怎么办？","这通常是因为使用了未包含修复补丁的主分支代码。维护者指出需要切换到特定的修复分支来解决 Coordinator 名称匹配问题。请执行以下命令克隆并切换到修复分支：\n`git clone -b zsy\u002Fhelm https:\u002F\u002Fgithub.com\u002Fsiyuan0322\u002Fgraphscope`\n该分支修复了 Helm 部署时 Coordinator 命名不一致导致 GIE 创建失败的问题。","https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fissues\u002F2161",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},30780,"在 macOS 上从源码安装 GraphScope (运行 python3 setup.py install) 失败如何解决？","安装失败通常是因为缺少 Python 依赖项。请在 `GraphScope\u002Fpython` 目录下手动安装依赖，然后再执行安装命令。\n具体步骤如下：\n1. 进入目录：`cd GraphScope\u002Fpython`\n2. 安装依赖：`sudo pip3 install -r requirements.txt`\n3. 重新安装：`sudo python3 setup.py install`\n这样可以解决因缺失 vineyard 等依赖导致的编译或安装错误。","https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fissues\u002F504",{"id":161,"question_zh":162,"answer_zh":163,"source_url":164},30781,"在 k8s 环境中运行 Louvain 算法时遇到编译错误或运行时异常，可能是什么原因？","如果在 k8s 运行 Louvain 算法时出现涉及 `louvain_app_base.h` 的编译实例化错误或运行时逻辑错误（如结果为空），可能是由于图数据类型与算法模板不匹配或特定版本的 Bug。\n建议检查：\n1. 确认图的定义方式（如 `oid_type=\"string\"`）是否与算法支持的类型一致。\n2. 查看日志中的 `ACTUAL QUALITY` 值，如果迭代过早停止或质量值为 0，可能需要调整 `min_progress` 和 `progress_tries` 参数。\n3. 参考官方测试用例 `test_app.py:test_louvain_on_projected_graph` 验证代码逻辑是否正确。","https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fissues\u002F3457",{"id":166,"question_zh":167,"answer_zh":168,"source_url":164},30782,"如何验证 Louvain 算法在 GraphScope 中的运行结果是否正确？","可以通过对比官方测试用例的逻辑来验证。确保在获取结果 DataFrame 时列名映射正确。例如：\n```python\nctx = louvain(g, min_progress=0, progress_tries=1)\ndf_com_louvain = ctx.to_dataframe({\"node\": \"v.id\", \"r\": \"r\"})\n```\n如果 `group_id` 或结果列为空，请检查输入图是否已正确投影（projected graph），并确认边和顶点数量是否符合预期（可通过 `g.E().count()` 和 `g.V().count()` 检查）。同时观察日志中的 `super step` 和 `QUALITY` 变化，确保算法正常收敛。",{"id":170,"question_zh":171,"answer_zh":172,"source_url":159},30783,"在 macOS 上编译 GraphScope 时出现 protobuf 相关的整数符号比较警告 (Wsign-compare)，会影响安装吗？","这些警告（如 `comparison of integers of different signs`）通常来自第三方库（如 protobuf）的源码，属于编译器警告而非错误，一般不会阻止安装过程。\n如果安装最终失败，通常不是因为这些警告，而是缺少依赖或环境配置问题。请优先尝试安装 `requirements.txt` 中的依赖。如果安装成功，可以忽略这些警告；如果确实需要消除警告，可能需要修改第三方库源码或调整编译器标志，但这通常不是必须的。",{"id":174,"question_zh":175,"answer_zh":176,"source_url":154},30784,"如何在 GraphScope 中加载 OGBN_MAG 数据集并在 k8s 集群上进行 Gremlin 查询？","在 k8s 环境下加载数据集并创建交互式会话的代码示例如下：\n```python\nimport graphscope\ngraphscope.set_option(show_log=False)\ngraphscope.set_option(log_level='DEBUG')\n# 连接 k8s 集群，注意挂载数据路径\nsess = graphscope.session(addr='ip:port', cluster_type='k8s', mount_dataset='\u002Fhome\u002Fdata\u002Ftestingdata')\n\nfrom graphscope.dataset import load_ogbn_mag\n# 加载数据集\ngraph = load_ogbn_mag(sess, '\u002Ftmp\u002Ftestingdata\u002F')\n\n# 创建 Gremlin 入口\ninteractive = sess.gremlin(graph)\nprint(interactive.graph_url)\n```\n确保 `mount_dataset` 路径在 k8s 节点上可访问，且数据集已预先下载到指定位置。",[178,183,188,193,198,203,208,213,218,223,228,233,238,243,248,253,258,263,268,273],{"id":179,"version":180,"summary_zh":181,"released_at":182},222608,"v0.31.0","我们非常高兴地宣布，随着 GraphScope 0.31.0 版本的发布，GraphScope 迎来了多项改进。本次版本更新为 GraphScope FLEX Interactive 和 Groot 持久化存储带来了若干重要功能及优化。\n\n以下是本次版本中重点改进的内容：\n\n**1. FLEX Interactive**\n\n- **字符串支持**：新增了对 VarChar 的支持。更多信息请参阅文档中的 [字符串类型](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Fflex\u002Finteractive\u002Fdata_model#string-types) 部分。\n- **交互式运行时重构**：对交互式运行时的实现进行了重构，以提升性能和效率。\n- **新增 `sharding_mode` 配置**：引入了 `sharding_mode` 配置选项。默认情况下，Interactive 将使用 `exclusive` 分片模式，以避免长时间运行的图查询阻塞管理请求。\n- **查询优化**：针对 Scan+Limit 模式的查询进行了优化，从而提高执行速度并降低资源消耗。\n- **增强边三元组属性**：支持在边三元组上设置多个属性，以便更细致地表示数据。\n- **Bug 修复**：修复了多个问题，进一步提升了系统的稳定性和可靠性。\n\n**2. Groot 持久化存储**\n\n- 支持 HTTP Gremlin 服务。该服务允许通过 HTTP 请求发送 Gremlin 查询，并以 JSON 格式返回响应，完全遵循官方 Gremlin HTTP 协议。\n- 数据类型与 FLEX Interactive 保持一致。更多信息请参阅文档 [数据模型](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Fflex\u002Finteractive\u002Fdata_model)。\n- 修复了一些 Bug，包括：\n  - 修复从空条目获取属性时的错误\n  - 修复聚合列顺序不匹配的问题\n  - 修复 Union 中别名 ID 的问题\n  - 修复 Groot 图表中未正确设置 `STORE_COUNT` 的问题\n\n## Docker 镜像\n\n```shell\n# FLEX Interactive 镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Finteractive:0.31.0\n\n# 开发镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope-dev:latest\n```\n\n## 变更内容\n* fix(interactive): 支持 HTTP Gremlin 服务，由 @shirly121 在 https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F4394 中完成\n* fix(interactive): 修复 `Union` 中别名 ID 的问题，由 @shirly121 在 https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F4404 中完成\n* fix(interactive): 修复 Groot 图表中未正确传递 `STORE_COUNT` 设置的 bug，由 @BingqingLyu 在 https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F4406 中完成\n* refactor(interactive): 加速 Interactive CI 构建，由 @zhanglei1949 在 https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F4405 中完成\n* fix(interactive): 使 GIE 物理 Pb 中的数据类型与 Flex 保持一致，由 @shirly121 在 https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F4367 中完成\n* fix(interactive): 修复检查就绪状态时的 bug，由 @lnfjpt 在 https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F4381 中完成\n* fix(analytical): 修复 Louvain 算法的停止条件，由 @songqing 在 https:\u002F\u002Fgithub.com\u002Fali","2025-01-27T09:56:20",{"id":184,"version":185,"summary_zh":186,"released_at":187},222609,"v0.30.0","我们非常高兴地宣布，随着 GraphScope 0.30.0 版本的发布，GraphScope 迎来了多项重要改进。本次版本更新为 GraphScope Portal、GraphScope FLEX Interactive 以及 Groot 持久化存储带来了许多新功能和性能优化。\n\n以下是本次版本中的主要改进亮点：\n\n**1. GraphScope Portal**\n\n本月，Portal 发布了 5 个新版本，重点提升了图可视化渲染与布局的性能，并新增了一个“探索”功能模块，以进一步优化用户体验。\n\n- ***图可视化模块优化***\n  - 增强了交互能力，包括多选、单选、悬停效果、高亮选择以及拖拽分组等功能。\n  - 新增支持修改图边的文本、颜色、标签配置，以及自定义字体图标渲染。\n  - 实现了四种内置布局机制：预设布局、Dagre 布局、力导向布局和组合布局。\n  - 发布了开发者文档，帮助用户进行集成与定制开发：[开发者文档](https:\u002F\u002Fgraphscope.github.io\u002Fportal\u002Fgraphs\u002Fquick)\n\n- ***引入图探索模块***\n  > 用户现在无需编写查询语句即可对图数据进行探索与分析。\n    - 搜索栏组件，实现直观的数据搜索：[PR #615](https:\u002F\u002Fgithub.com\u002FGraphScope\u002Fportal\u002Fpull\u002F615)\n    - 统计组件，用于数据分析：[PR #619](https:\u002F\u002Fgithub.com\u002FGraphScope\u002Fportal\u002Fpull\u002F619)\n    - NextQuery 组件，简化查询流程：[PR #651](https:\u002F\u002Fgithub.com\u002FGraphScope\u002Fportal\u002Fpull\u002F651)\n\n目前，图探索模块仍处于实验阶段。如需体验，请访问 [此链接](https:\u002F\u002Fgsp.vercel.app\u002F#\u002Fsetting)，并在“设置 \u002F 实验性工具”中启用该功能。\n\n我们诚挚邀请您试用这些新功能，并提供宝贵反馈，帮助我们持续优化 Portal！感谢您的支持！  \n![portal](https:\u002F\u002Fimg.alicdn.com\u002Fimgextra\u002Fi3\u002FO1CN01e1Z7qo1vWUiDNmtj8_!!6000000006180-0-tps-3836-1938.jpg)\n\n**2. FLEX Interactive**\n\n- 重构了 `EdgeColumn` 的实现，以加快边属性的扫描速度。\n- 修复了 C++ 和 Python 代码的格式检查问题。\n- 完善了文档说明。\n- 修复了一些已知问题，包括：\n  - `Collect(labels(n))` 中类型推断错误。\n  - 对空边属性进行 IS_NULL 检查可能导致段错误。\n  - 导入数据时，`varchar(len)` 类型不会按指定长度截断。\n  - 以 `@` 为前缀的标签名称（如 `@person`）可能会引发问题。\n\n**3. Groot 持久化存储**\n\n- 支持 Cypher 查询语言。\n- 引入 `MetricsTool` 工具，用于监控内存使用情况、待处理任务数及 QPS。\n- 修复了一些问题，包括：\n  - 返回列顺序与查询指定顺序不一致。\n  - 修复 CBO 中出现的 `OOM` 问题。\n  - 修复 Gremlin 的 `elementMap` 步骤中标签不匹配的问题。\n\n## Docker 镜像\n\n```shell\n# FLEX Interactive 镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Finteractive:0.30.0\n```","2025-01-03T09:41:01",{"id":189,"version":190,"summary_zh":191,"released_at":192},222610,"v0.29.0","我们非常高兴地宣布，在 GraphScope 0.29.0 版本发布的同时，也为 GraphScope 带来了多项改进。本次版本更新包含了针对 GraphScope FLEX、`gsctl` 命令行工具、Graph Interactive Engine (GIE) 以及 Groot 持久化存储的诸多重要功能和优化。\n\n以下是本次版本中值得关注的几项改进：\n\n**1. `gsctl` 命令行工具**  \n[gsctl](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Futilities\u002Fgs) 是 GraphScope 的命令行工具，提供了一系列便捷的功能，帮助用户更轻松地使用 GraphScope。这些功能包括构建镜像和软件包、管理会话与资源等。\n\n**安装\u002F更新 gsctl**  \n```bash\n$ pip3 install gsctl\n# 或者通过以下命令强制重新安装并升级：\n$ pip3 install gsctl --force-reinstall -U\n```  \n\n`gsctl` 命令行工具支持两种运行模式：实用脚本模式和客户端\u002F服务器模式。您可以通过 `gsctl connect` 和 `gsctl close` 命令在这两种模式之间切换。\n\n**实用脚本模式**  \n默认情况下，`gsctl` 提供了一些辅助函数和实用工具，可以直接通过 `gsctl` 单独运行。此时，`gsctl` 充当 GraphScope 的命令行入口。一些实用脚本示例包括：\n\n- `gsctl install-deps`：安装构建 GraphScope 所需的依赖。\n- `gsctl connect`：使用位于 `~\u002F.gsctl` 的配置文件连接到已启动的协调器。\n- `gsctl close`：关闭与协调器的连接。\n- `gsctl flexbuild`：为 Interactive 和 Insight 产品构建 Docker 镜像。\n- `gsctl version`：打印客户端版本信息。\n- `gsctl instance`：部署或销毁一个 GraphScope Flex 实例。\n\n**客户端\u002F服务器模式**  \n要切换到客户端\u002F服务器模式，请使用 `gsctl connect` 命令。默认情况下，该命令会使用位于 `${HOME}\u002F.gsctl` 的配置文件连接到已启动的协调器；如果指定了 `--coordinator-endpoint` 参数，则会将其视为当前上下文，并覆盖配置文件。\n\n连接成功后，您可以使用 `gsctl` 与背后的协调器进行通信，从而访问 [特定的 Flex 产品](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Fflex\u002Finteractive_intro)。\n\n```bash\n$ gsctl use GRAPH modern_graph\nUsing GRAPH modern_graph\n```  \n\n**2. 🎉 新产品：GraphScope Portal**  \n\n我们很高兴宣布 GraphScope Portal 的正式发布。这是一个用户友好的 Web 界面，旨在简化使用 GraphScope 进行图数据管理的过程。它提供了一站式的数据建模、导入、查询等功能，并全面支持基于 GraphScope Flex 架构的交互式计算引擎。有关详细用法，请参阅：https:\u002F\u002Fgithub.com\u002FGraphScope\u002Fportal\n\n![gs-portal](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F93add757-d77e-4530-8c6f-85028152a3a1)\n\n**3. FLEX Interactive**  \n\n- Interactive 现在支持直接执行即席 Cypher 查询，无需将其编译为存储过程。用户可以参考 [Interactive 的安装指南](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Fflex\u002Finteractive\u002Finstall) 来部署和使用。","2024-09-29T09:50:56",{"id":194,"version":195,"summary_zh":196,"released_at":197},222611,"v0.28.0","我们非常高兴地宣布，在 GraphScope 0.28.0 版本发布的同时，也为 GraphScope 带来了多项改进。本次发布包含了针对 GraphScope FLEX、`gsctl` 命令行工具、Graph Interactive Engine (GIE) 以及 Groot 持久化存储的诸多重要功能和优化。\n\n以下是本次版本中重点改进的内容：\n\n**1. FLEX Interactive**\n\n**新增功能：**\n\n- `gsctl`\n  - 支持通过 `gsctl instance deploy\u002Fdestroy --type interactive` 部署和销毁 Interactive 实例。\n  - 支持通过 `gsctl flexbuild interactive --app docker` 构建 Interactive 镜像。\n  - 支持使用 `gsctl` 连接并管理 Interactive 资源（模式、数据加载、存储过程）。\n- 为 Interactive 新增元数据存储，并提供基于文件的实现。\n- 发布 Interactive Java\u002FPython SDK：\n  - 可通过 `pip3 install gs_interactive` 安装：\n    - https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Fflex\u002Finteractive\u002Fdevelopment\u002Fpython\u002Fpython_sdk\n    - https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Fflex\u002Finteractive\u002Fdevelopment\u002Fjava\u002Fjava_sdk\n- 支持将字符串类型用作顶点主键。\n- 支持在 GraphScope 开发容器中进行 Interactive 开发。\n\n**重构：**\n\n- 在批量加载失败时清理数据目录。\n- 适配新的模式和数据类型定义。\n- 修复信号处理及编译器启动问题。\n- 升级 Arrow 版本。\n- 重构并重新组织存储过程接口。\n\n**2. GIE 的增强功能**\n\n将全新的图原生查询优化器 GOpt 集成到 GIE 中，以提升查询性能，具体包括：\n\n- 基于规则的优化（RBO）中的多种启发式优化规则，如 NotMatchToAntiJoinRule、FilterIntoJoinRule、FilterMatchRule、ExpandGetVFusionRule 等。\n- 引入新的基于代价的优化器（CBO），利用高阶统计信息选择最优执行计划。\n- 结合 CBO 对 s-t 路径查找进行优化，支持更高效的双向搜索。\n\n更多详细信息请参阅 [论文](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2401.17786) 和 [文档](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Finteractive_engine\u002Foptimizer)。\n\n此外，还支持一些新功能，包括：\n\n- 在 Cypher 和 Gremlin 中使用 `elementId()` 获取图中顶点或边的内部 ID。\n- 在 Cypher 中支持 `CASE WHEN` 语句。\n- 在 Gremlin 中使用 `values()` 或 `valueMap()` 获取路径中每个元素的属性。\n\n更多详情请参考 [Cypher 支持文档](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Finteractive_engine\u002Fneo4j\u002Fsupported_cypher) 和 [Gremlin 支持文档](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Finteractive_engine\u002Ftinkerpop\u002Fsupported_gremlin_steps)。\n\n**3. Groot 的增强功能**\n\n- 支持为已存在的标签添加属性 [#3887](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F3887)\n\n## Docker 镜像\n\n```shell\n# Flex Interactive 镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Finteractive:0.28.0\n\n# 协调器镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fcoordinator:0.28.0\n\n# 图分析引擎（GAE）镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope","2024-07-03T12:48:07",{"id":199,"version":200,"summary_zh":201,"released_at":202},222612,"v0.27.0","我们很高兴在 GraphScope 0.27.0 版本发布的同时，为 GraphScope 带来多项改进。本次发布包含了针对 GraphScope FLEX、gsctl 命令行工具、Graph Interactive Engine (GIE) 和 Groot 持久化存储的诸多重要功能与优化。\n\n以下是本次版本中重点介绍的几项改进：\n\n**1. `gsctl` 命令行工具**\n\n`gsctl` 是一款旨在简化 GraphScope 使用的命令行工具。借助 gsctl，用户可以轻松地与 [GraphScope Flex](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Ftree\u002Fmain\u002Fflex) 产品进行交互，例如 Interactive（适用于高 QPS 查询）和 Insight（适用于在线 BI 分析），同时还能构建二进制文件和 Docker 镜像，并执行与 GraphScope 相关的各种实用任务。更多详细信息请参阅 [文档](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Futilities\u002Fgs)。\n\n**gsctl 的核心功能**\n\n- 实用脚本：gsctl 提供了一系列实用脚本，可简化安装依赖、构建二进制文件和 Docker 镜像、运行测试套件等常见任务。\n- 客户端\u002F服务器模式：通过客户端\u002F服务器模式，用户可以连接到已启动的协调器，并与其后端的特定 GraphScope 产品进行交互。该模式支持会话管理、资源管理以及其他产品特有的功能。\n- 范围管理：gsctl 允许用户在全局范围和本地范围之间切换，从而能够在不同层级上操作图数据和资源。这种灵活性不仅提升了工作效率，还能够更高效地管理图计算任务。\n- 配置管理：gsctl 包含可根据具体需求自定义的配置选项。用户可以指定自定义的协调器端点，并根据需要管理其他配置设置。\n\n**2. [GraphScope FLEX](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Ftree\u002Fmain\u002Fflex)**\n\n- 支持通过 `gsctl flexbuild` 命令构建 Docker 镜像。\n```bash\n$ git clone https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope.git && cd GraphScope\n$ python3 gsctl.py flexbuild insight\u002Finteractive --app docker\n\n```\n- 支持通过 Docker 镜像部署 `Interactive` 和 `Insight` 产品。\n```bash\n$ docker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope-store:0.27.0-flex\n# 启动引擎和协调器服务：12312 端口 Gremlin 服务，55556 端口 gRPC 服务，8080 端口协调器服务\n$ docker run -p 12312:12312 -p 55556:55556 -p 8080:8080 registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope-store:0.27.0-flex \u002Fusr\u002Flocal\u002Fgroot\u002Fbin\u002Fstart_local_cluster.sh\n```\n- 连接到已启动的协调器并与其产品交互。\n```bash\ngraphscope@host:\u002Fwork\u002Fpython$ gsctl connect --coordinator-endpoint http:\u002F\u002F127.0.0.1:8081\n[SUCCESS] 已连接至 http:\u002F\u002F127.0.0.1:8081，协调器正在以 GRAPHSCOPE_INSIGHT 模式提供服务。\n\n如需帮助，请输入 'gsctl --help'。\n\ngraphscope@host:\u002Fwork\u002Fpython$ gsctl ls\nschema\n├── vertex types\n│   ├── person\n│   │   ├── Property(name: id, type: LONG, is_primary_key: Tru","2024-03-29T13:46:15",{"id":204,"version":205,"summary_zh":206,"released_at":207},222613,"v0.26.0","我们很高兴在 GraphScope 0.26.0 版本发布的同时，为 GraphScope 带来多项改进。本次版本包含了对 GraphScope FLEX 和 Graph Interactive Engine (GIE) 的诸多重要功能与优化，其中包括 GIE 中的二级实例和类型推断，以及 FLEX Interactive 中的分布式数据源加载和 macOS 部署支持。\n\n以下是本次版本中重点介绍的几项改进：\n\n\n**1. FLEX Interactive**\n\n\n- 支持在 macOS 上使用 `GraphScope Interactive`。请下载最新版本体验：[interactive-latest](https:\u002F\u002Finteractive-release.oss-cn-hangzhou.aliyuncs.com\u002Finteractive-latest.zip)\n- 支持以 ODPS 表作为数据源进行批量加载。以下是一个示例配置：\n```yaml\ngraph: dd_graph\nloading_config:\n  data_source:\n    scheme: odps  # file, odps\n  import_option: init # init, overwrite\n  format:\n    type: arrow\nvertex_mappings:\n  - type_name: Person  # 必须与模式保持一致\n    inputs:\n      - your_proj_name\u002Ftable_name\u002Fpartition_col_name=paritition_name\n  column_mappings:\n      - column:\n          index: 0  # 如果索引与属性索引相同，可省略\n          name: user_id  # 如果名称未知，也可省略\n        property: id\nedge_mappings:\n  - type_triplet:\n      edge: Knows\n      source_vertex: Person\n      destination_vertex: Person\n    inputs:\n      - your_proj_name\u002Ftable_name\u002Fpartition_col_name=paritition_name\n    source_vertex_mappings:\n      - column:\n          index: 0\n          name: src_user_id\n        property: id\n    destination_vertex_mappings:\n      - column:\n          index: 1\n          name: dst_user_id\n        property: id\n```\n\n\n**2. GIE 的增强功能**\n\n- Groot 支持二级实例。用户可以在原有实例的基础上再开启一个只读实例，从而为用户提供额外的读取 QPS。\n\t- 使用方法：在 Helm Chart 中将 `secondary.enabled=true` 设置为启用二级模式即可。其他选项可以与主实例保持一致。\n \t- 注意：在二级实例中仅支持查询操作，任何模式或数据的修改都应路由到主实例。\n\t- 更多详情请参阅 [文档](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Fstorage_engine\u002Fgroot#secondary-instance)\n\n- 图查询中支持自动类型推断，这会对查询执行产生两方面的影响：\n\t- 检查图中的顶点和边类型是否符合用户定义的模式：\n\t   ```sql\n       # 现在编译器可以推断出 'kno' 是一个不存在的边类型，并返回错误\n       Match (a:person)-[b:kno]->(c) Return a, b, c;\n       ```\n \t- 推断图中的顶点和边类型：\n       ```sql\n       # 现在编译器可以推断出 a 和 b 都必须是 person 类型，从而使执行更加高效\n       Match (a)-[:knows]->(b) Return labels(a), labels(b)\n       => Match (a:person)-[:knows]->(b:person) Return labels(a), labels(b)\n       ```\n更多详情请参阅 [文档](https:","2024-01-25T03:10:56",{"id":209,"version":210,"summary_zh":211,"released_at":212},222614,"v0.25.0","我们非常高兴地宣布，随着 GraphScope 0.25.0 版本的发布，GraphScope 系列功能得到了全面增强。本次发布涵盖了交互式引擎（GIE）、FLEX 交互式平台的重要新特性与改进，以及多项 bug 修复。\n\n**1. GraphScope Flex 架构下的交互式功能**\n\n- 发布 [GraphScope 交互式](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Fflex\u002Finteractive_intro)。\n- 丰富电影图模式及示例查询语句。\n- 实现查询缓存机制，避免重复编译相同的即席查询。\n- 支持将字符串类型的属性用作顶点的主键。\n\n**2. GIE 的增强功能**\n\n- 支持通过 groot 获取磁盘状态：用户可通过 Python 或 Java 客户端查询存储 Pod 的总空间和可用空间。示例 API 如下：[这里](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fblob\u002F8235b2909e642e15e7d668b7cc579fbd5268c9da\u002Fpython\u002Fgraphscope\u002Fclient\u002Fconnection.py#L180)。\n- count() 方法优化：我们针对 count() 操作实施了两项主要优化以提升性能：\n  - 顶点\u002F边计数优化：以往 g.V().count() 等操作需要先完整遍历所有顶点再进行计数，现在已整合为一个融合算子，可在迭代的同时高效统计顶点或边的数量。\n  - 工作线程利用率提升：此前的 count() 实现仅限于每台机器使用单个工作线程执行计数任务，无论配置了多少工作线程。如今，count() 操作会分配到所有已配置的工作线程上并行执行，从而显著提升性能。\n- 用户现在可以使用 [自然语言](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Finteractive_engine\u002Fneo4j\u002Fllm_assistant) 与 GIE 进行交互。我们已在 GIE 中集成了调用 OpenAI 兼容 API 的能力，可将人类语言输入转换为 Cypher 查询。这一改进使查询体验更加直观易用。例如，用户可以使用我们的 Python API 执行以下代码：\n\n```python\nfrom graphscope.langchain_prompt.query import query_to_cypher\nendpoint = \"https:\u002F\u002Fxxx\" # 使用您的 endpoint \napi_key = \"xxx\" # 替换为您自己的 API 密钥\nquestion = \"贾宝玉是谁的儿子?\"\ncypher_sentence = query_to_cypher(graph, question, endpoint=endpoint, api_key=api_key)\nprint(cypher_sentence)\n```\n\nDocker 镜像\n--------------\n\n```shell\n# 协调器镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fcoordinator:0.25.0\n\n# 图分析引擎 (GAE) 镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fanalytical:0.25.0\n\n# 图交互式引擎 (GIE) 前端组件镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Finteractive-frontend:0.25.0\n# 图交互式引擎 (GIE) 执行组件镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Finteractive-executor:0.25.0\n\n# 图学习引擎 (GLE) 镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphs","2023-11-10T07:13:49",{"id":214,"version":215,"summary_zh":216,"released_at":217},222615,"v0.24.0","我们非常高兴地宣布，随着 GraphScope 0.24.0 版本的发布，GraphScope 迎来了多项功能增强。本次发布涵盖了交互式引擎（GIE）、学习引擎（GLE）以及部署方面的重大特性与改进。\n\n以下是本次版本中的一些重要改进：\n\n**1. GIE 的增强功能**\n\n关键特性：\n- 支持 Gremlin 的 `sample()` 步骤，可以从 Gremlin 遍历中随机选取指定数量的遍历者。此外，`coin()` 步骤现在可以跟在 Gremlin 遍历中的任意步骤之后，而不仅限于 `V()` 和 `E()`。例如：\n```groovy\ng.V().sample(10)   \u002F\u002F 从 g.V() 中随机抽取 10 个遍历者\ng.V().out().coin(0.2)  \u002F\u002F 在所有顶点的出邻居中随机选取 20%\n```\n- 支持 Gremlin 的 `union` 步骤，用于将多个遍历的结果合并在一起。例如：\n```groovy\ng.V().union(out(), out().out())  \u002F\u002F 结果将是所有顶点的一跳（出一次）和二跳（出两次）邻居。\n```\n- 支持 Gremlin 的 `unfold` 步骤，它是 `fold` 的逆操作，可将遍历者的集合展平为离散元素。例如：\n```groovy\ng.V().fold().unfold()  \u002F\u002F 最终结果等同于 g.V()\n```\n- 支持 Gremlin 的 `identity()` 步骤，该步骤仅返回当前的遍历者，通常与 `union` 步骤配合使用。例如：\n```groovy\ng.V().union(identity(), out())  \u002F\u002F 返回 V() 及其一跳邻居\n```\n- 在 `expr()` 中支持 `isNull`，用于检查某个属性是否为 `NULL`。例如：\n```groovy\ng.V().where(expr(\"@.age isNull\"))  \u002F\u002F 将会过滤掉没有 age 字段的顶点\n```\n\n修复内容：\n- 修复了在 `count()` 步骤后接 `order()` 和 `limit()` 时可能导致 gaia 引擎意外崩溃的 bug。现在以下 Gremlin 查询可以顺利执行：\n```groovy\ng.V().order().by('id', asc).limit(1).out().count()\n```\n\n**2. 部署方面的增强**\n\n- 所有 GraphScope 镜像同时支持 `x86` 和 `arm64` 平台。\n- 本次发布包含了用于构建和测试 GraphScope 的命令行工具 gsctl。gsctl 提供了多个命令和选项，以简化开发和部署流程。您可以使用以下命令安装 graphscope-client 包并使用 gsctl：\n\n```bash\n$ pip3 install graphscope-client\n$ gsctl --help\n```\n\n**3. 其他增强与问题修复**\n\n- 减小了 GRAPE-java 打包后的 JAR 文件大小，总大小由 94MB 降至 58MB。\n- 为 Flex 引入基于 Hiactor 的高 QPS 引擎。\n- 优化了 Flex 的 `rt_mutable_graph` 模式定义。\n- 修复了 GLE 中的 `Py_None` 引用计数问题。\n- 修复了 GLE 客户端在分布式训练中只能连接到单个服务器的 bug。\n- 更新了 GLE 相关教程。\n\nDocker 镜像\n--------------\n\n```shell\n# 协调器镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fcoordinator:0.24.0\n\n# Gra","2023-09-01T10:14:40",{"id":219,"version":220,"summary_zh":221,"released_at":222},222616,"v0.23.0","我们非常高兴地宣布，随着 GraphScope 0.23.0 版本的发布，GraphScope 迎来了多项增强功能。本次发布涵盖了交互式引擎（GIE）、GraphScope Flex 以及部署方面的重大特性与改进。\n\n以下是本次版本中重点介绍的几项改进：\n\n**1. GraphScope Flex 技术预览版**\n\nGraphScope Flex 是 GraphScope 持续演进的重要成果。在本次版本中，我们首次推出了 GraphScope Flex 的技术预览版。它采用模块化设计，在降低资源和成本需求的同时，为用户提供无缝、易用的灵活部署体验。目前该功能仍在积极开发中，我们诚挚期待您的反馈。\n\n核心特性：\n- **模块化设计**：您可以像搭积木一样自由组合组件，定制适合自身场景的图计算部署方案。\n- **三层架构**：系统组件被划分为应用层、执行层和存储层。\n- **灵活构建与部署**：通过 `flexbuild` 脚本，您可以根据具体用例构建个性化的部署环境。\n\n您可以通过 `flex\u002F` 目录或以下已发布的软件包来体验 GraphScope Flex：\n- `graphscope_flex_db_cppsp_hiactor_mcsr`，\n- `graphscope_flex_olap_builtin_grape-cpu`，以及\n- `graphscope_flex_gnn_gnnmodels_graphlearn_tensorflow_vineyard.so`\n\n这些软件包分别适用于高 QPS 的交互式查询、图分析和图学习任务场景。快来探索 GraphScope Flex 带来的全新体验吧！\n\n**2. GIE 的增强功能**\n\n- 支持在路径扩展过程中同时记录顶点和边。过去，路径扩展仅能返回所有顶点或路径的终点，但基于 Gremlin 语言规范及用户需求，除了顶点外，获取路径上的边也至关重要。要启用此功能，请在路径扩展语法糖中使用 `with('RESULT_OPT', 'ALL_V_E')`。示例如下：\n  ```\n  gremlin> g.V().out(\"1..3\", \"knows\").with('RESULT_OPT', 'ALL_V_E')\n       ==>[v[1], e[0][1-knows->2], v[2]]\n       ==>[v[1], e[2][1-knows->4], v[4]]\n  ```\n- 现在，我们很高兴地在 GIE 中引入了 Cypher 查询能力，通过集成 Neo4j 的 Bolt 服务实现。请参考 [指南](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Finteractive_engine\u002Fneo4j\u002Fcypher_sdk)，在本地环境中启用 Bolt 服务以支持 Cypher 查询。此外，我们致力于使 Cypher 的语法尽可能接近 [openCypher](https:\u002F\u002Fopencypher.org\u002F) 标准，关于对 Cypher 的支持详情，请参阅 [此处](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Finteractive_engine\u002Fneo4j\u002Fsupported_cypher)。\n\n**3. 其他增强与问题修复**\n\n- GAE Java\n  - 修复了 VertexSet 在 Java long 类型中不支持 vertex_id 的问题。\n  - 添加了 Grape-GraphX 性能报告。\n  - 修复了本地安装 grape-jdk 时出现的问题。\n\nDocker 镜像\n--------------\n\n```shell\n# 协调器镜像\ndocker pull registry.cn-","2023-07-04T12:26:02",{"id":224,"version":225,"summary_zh":226,"released_at":227},222617,"v0.22.0","我们很高兴在 GraphScope 0.22.0 版本发布的同时，为 GraphScope 带来了多项改进。本次版本包含许多重要的功能和增强，主要集中在交互式引擎（GIE）与部署方面。现在，用户可以通过 `pip3 install graphscope` 在 Linux Arm64 平台上试用 GraphScope。\n\n以下是本次版本中的一些重点改进：\n\n**1. GIE 的增强**\n- 我们提供了一款工具，方便用户在本地开发和测试 GIE。用户可以使用 `gs` 命令行工具运行三类集成测试：官方 Gremlin 测试、辅助模式匹配测试，以及 LDBC 社交网络规模因子为 1 的复杂交互式工作负载。此外，用户还可以在本地启动前端和执行器：前者暴露一个端点，便于与官方 Gremlin 控制台集成；后者则负责执行查询。详细信息请参阅[文档](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Finteractive_engine\u002Fdev_and_test)。\n\n**2. 部署方面的增强**\n- 用户现在可以通过 `pip3 install graphscope` 在 **Linux Arm64** 平台上试用 GraphScope。\n- 所有镜像现已切换为基于 Ubuntu 的版本。\n- 新增 `devcontainer.json` 文件，帮助用户快速入门。\n- 使用 vineyardctl 将 Vineyard 作为边车容器进行安装。\n- 支持以“懒加载”模式按需部署 GraphScope 的各个引擎。\n\n**3. 其他增强与问题修复**\n- 支持在 Kubernetes 集群上将图存储到持久化存储中，并从中恢复图。详情请参阅指南：https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Flatest\u002Fdeployment\u002Fpersistent_storage_of_graphs_on_k8s。\n- 新增一个端到端示例，展示如何使用 GLE 对 Vineyard 图进行训练。\n- 修复了在会话参数 `num_workers=1` 下，PIE 模型的 Python 算法结果不正确的问题。\n- 修复了 GIE 中关于使用 `match` 步骤配合不存在边的 `not` 子句时的错误。此前，该场景应通过“反连接”来实现，但系统却抛出了意外错误：“MergedSentence 的第一句必须是 InnerJoin”。例如：\n```groovy\ng.V().match(\n    __.as(\"a\").in().as(\"b\"),\n    __.as(\"b\").out().as(\"c\"),\n    __.not(__.as(\"c\").out().as(\"a\")) # 不存在的边\n)\n```\n现在此类查询已可正常执行。\n\n- 修复了 GIE 中对分区图进行去重操作时结果不正确的 bug，例如：\n```groovy\ng.V().outE().dedup()\n```\n目前该查询能够输出预期结果。\n\nDocker 镜像\n--------------\n\n```shell\n# 协调器镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fcoordinator:0.22.0\n\n# 图分析引擎（GAE）镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fanalytical:0.22.0\n\n# 图交互式引擎（GIE）前端组件镜像\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Finteractive-frontend:0.22.0\n# 图交互式引擎（GIE）执行器组件镜像\ndocker pull r","2023-06-06T10:08:28",{"id":229,"version":230,"summary_zh":231,"released_at":232},222618,"v0.21.0","We are delighted to bring a number of improvements to GraphScope, alongside the GraphScope 0.21.0 release. This release contains many important features and improvements to GraphScope. The Graph Learning Engine (GLE) now supports the 'SubGraphSampler' and 'RandomWalk' operators and adds a node labeling-based SEAL and node2vec model. Also, GLE supports node cache for accelerating distributed feature lookup. This release also adds a 'devcontainer.json' for users to easily set up a developing environment using VSCode.\r\n\r\nWe highlight the following improvements included in this release:\r\n\r\n- **Enhancements for GLE:**\r\n  a. Add operators: SubGraphSampler, RandomWalk\r\n  b. Add node labeling based SEAL model, node2vec model.\r\n  c. Support temporal graph with the timestamp, and add TokTimestampSampler operator.\r\n  d. Add temporal models: TGN and TGAT.\r\n  e. Support node cache for accelerating distributed feature lookup.\r\n\r\n- **Enhancements for Dev:**\r\n  a. Add a devcontainer.json for users to easily set up a developing environment using vscode.\r\n\r\n- **Other enhancements and bug fixes:**\r\n  a. 'helm install graphscope\u002Fgraphscope' would now launch all pods upon the start.\r\n  b. Allowing more fine-grained control over Groot deployment\r\n  c. Fixed an error of 'lgraph' that could cause the building failure in M1 Mac\r\n\r\nDocker Image\r\n--------------\r\n\r\n```shell\r\n# Coordinator Image\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fcoordinator:0.21.0\r\n\r\n# Graph Analytical Engine(GAE) Image\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fanalytical:0.21.0\r\n# Graph Analytical Engine(GAE) Image with java SDK, which supports running Giraph and GraphX algorithms on it.\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fanalytical-java:0.21.0\r\n\r\n# Frontend component of Graph Interactive Engine(GIE) image\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Finteractive-frontend:0.21.0\r\n# Executor component of Graph Interactive Engine(GIE) image \r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Finteractive-executor:0.21.0\r\n\r\n# Graph Learning Engine(GLE) Image\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Flearning:0.21.0\r\n\r\n# GraphScope persistent storage, user can only perform GIE query on it.\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope-store:0.21.0\r\n\r\n# Develop Image\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope-dev:latest\r\n```\r\n\r\n## What's Changed\r\n* Fix docs images not shown  by @doudoubobo in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2519\r\n* Fix GAE catalog by @doudoubobo in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2520\r\n* [GIE\u002FDoc] Add initial design docs of GIE by @longbinlai in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2518\r\n* Fix dataset env is not used error by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2525\r\n* add intro.md by @yecol in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2521\r\n* [Docs\u002FGIE] Add doc for getting started with GIE by @longbinlai in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2527\r\n* Fix: Gremlin startup error when k8s release name contains' - '. #2524 by @YANGBoSunning in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2526\r\n* [GAIA CI Tests] Unify gremlin ci tests under different storages by @shirly121 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2504\r\n* proofread and enhanced by cursor.so\u002Fchatgpt. by @yecol in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2532\r\n* Add deploy on local doc by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2523\r\n* [GAIA Compiler] Build algebra layer structures for group and order in `GraphBuilder` by @shirly121 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2508\r\n* [GAIA Compiler] Refine error handling in antlr grammar by @shirly121 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2530\r\n* bump up scala version by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2533\r\n* Add a CI step to avoid running the tmate session on the self-hosted machine by @dashanji in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2529\r\n* Integrate vineyard operator python API with Graphscope by @dashanji in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2458\r\n* [docs] Adds the documentation for storage\u002Fvineyard. by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2536\r\n* [docs] Optimize the embed read-the-docs to optimize the page loading. by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2538\r\n* Add GLE workload doc by @LiSu in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2537\r\n* Minor fix by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2543\r\n* [GIE] impl graph_proxy for csr_store by @lnfjpt in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2466\r\n* fix chart download path by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2548\r\n* [GIE Docker] Add env to build docker image of GIE running on vineyard storage by @shirly121 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2547\r\n* [Bug Fix] Fix bug in getting properties with `LateProject` strategy  b","2023-04-25T13:55:32",{"id":234,"version":235,"summary_zh":236,"released_at":237},222619,"v0.20.0","We are delighted to bring a number of improvements to GraphScope, alongside the GraphScope 0.20.0 release. This release contains many important features and improvements to the persistent graph store Groot, including load balance and failover mechanism. In addition, Graph Learning Engine (GLE) now supports the Aliyun ACK cluster.\r\n\r\nWe highlight the following improvements included in this release:\r\n\r\n**1. Enhancements for GLE:**\r\n- GLE could be launched and used to training on ACK cluster.\r\n\r\n**2. Enhancements for Groot:**\r\n-  Chart is refactored and has more customizable fields.\r\n- LoadBalancher service is supported. \r\n- Optimization of failover mechanism.\r\n\r\n**3. Enhancement for images:**\r\n-  We release the first dev image (graphscope-dev) for arm64 platform.\r\n\r\nDocker Image\r\n--------------\r\n\r\n```shell\r\n# Coordinator Image\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fcoordinator:0.20.0\r\n\r\n# Graph Analytical Engine(GAE) Image\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fanalytical:0.20.0\r\n# Graph Analytical Engine(GAE) Image with java SDK, which supports running Giraph and GraphX algorithms on it.\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fanalytical-java:0.20.0\r\n\r\n# Frontend component of Graph Interactive Engine(GIE) image\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Finteractive-frontend:0.20.0\r\n# Executor component of Graph Interactive Engine(GIE) image \r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Finteractive-executor:0.20.0\r\n\r\n# Graph Learning Engine(GLE) Image\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Flearning:0.20.0\r\n\r\n# GraphScope persistent storage, user can only perform GIE query on it.\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope-store:0.20.0\r\n```\r\n\r\n## What's Changed\r\n* [GraphScope\u002FDocs] Add docs for positioning GraphScope by @longbinlai in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2390\r\n* Remove the java target directory before commit to gh-pages branch. by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2393\r\n* Fix the tag when releasing graphscope-store by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2392\r\n* Add a mark to disable generated warnings. by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2394\r\n* Clean up and fix Java dependency problems by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2384\r\n* [GIE\u002FRuntime] Support `Entry` Trait in GIE\u002FRuntime by @BingqingLyu in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2300\r\n* [GIE\u002FDocs] update path_expand examples in docs by @shirly121 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2395\r\n* [GLE\u002FDocs]Add the GLE white paper in docs by @LiSu in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2399\r\n* Add docs for GAE and other improvement by @doudoubobo in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2389\r\n* [BUG Fix] fix bug when fetch properties of tags generated by a `Project` by @BingqingLyu in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2402\r\n* Fix images not shown in docs. by @doudoubobo in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2404\r\n* [GraphScope\u002FDocs] Add overview of GIE by @longbinlai in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2403\r\n* Find header under GRAPHSCOPE_HOME for learning by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2406\r\n* refactor engine selection interface to enabled_engines by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2410\r\n* test demo on helm by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2412\r\n* Improve the message when docs CI running\u002Fsucceed\u002Ffailed for pull requests by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2419\r\n* No NPM cache when setup-node.  by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2420\r\n* Improves the message and fixes the dist directory. by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2421\r\n* Don't upload docs if we are run on the fork. by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2422\r\n* Leverage graphscope cli to build docker, and add arm64 based images by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2341\r\n* Reorg doc structures by @doudoubobo in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2427\r\n* Fix bugs in docs by @doudoubobo in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2428\r\n* [GIE\u002FPhysical] Introduce new physical operators (in proto) and physical plan builder by @BingqingLyu in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2411\r\n* fix nightly CI by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2430\r\n* fix helm installation with default configurations by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2433\r\n* Add intro for fragment by @doudoubobo in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2434\r\n* [GAIA Compiler] Introduce interfaces (GraphBuilder) to build compiler algebra layer by @shirly121 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2432\r\n* [GIE\u002FPhysical] Physical Layer: build physical plan and execution by @Bi","2023-03-16T07:07:44",{"id":239,"version":240,"summary_zh":241,"released_at":242},222620,"v0.19.0","We are glad to present the release of GraphScope 0.19.0, which brings a number of new features as well as performance and stability improvements to GraphScope. Specially, users can try GraphScope in **python3.10** **and python3.11** environments of Linux and MacOS by `pip3 install graphscope`; This release also optimizes the memory usage for loading graphs, which allows users to load larger graphs on their machines. In addition, we improve Graph Interactive Engine (GIE) via a couple of bug fixes and improvements. \r\n\r\nWe highlight the following improvements included in this release:\r\n\r\n**1. Optimized memory usage for loading graphs:**\r\n- Improves memory usage during loading and projecting graphs, especially for graphs with string as OID type.\r\n- Improves the performance of `project_to_simple`.\r\n\r\n**2. Bug fix and enhancements for GIE:**\r\n- Fix a bug in Pegasus that may block the execution of interactive queries in certain case.\r\n- Fix a bug that fails to configure the server number for the GIE engine.\r\n- Fix multiple dependencies in both Java and Rust codes.\r\n- Resolve a issue that JNA could not map bool correctly.\r\n\r\n**3. Enhancements for GAE Java:**\r\n-  Pack JNI lib into the grape-runtime jar and fix some dependency issues.\r\n\r\n**4. Standalone deployment:**\r\n- Components now have their own dedicated image, and user could configure  a subset of engines to use when launching `session`.\r\n\r\n**5. Other bug fixes:**\r\n- Fix helm deployment could not delete role and rolebindings when uninstalling GraphScope.\r\n- Fix compile error under the newer toolchain and arrow 10\r\n- Rename `maxgraph` to `graphscope` and other refactors\r\n- Cleanup overlapping rust dependencies \r\n\r\n\r\nDocker Image\r\n--------------\r\n\r\n```shell\r\n# Coordinator Image\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fcoordinator:0.19.0\r\n\r\n# Graph Analytical Engine(GAE) Image\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fanalytical:0.19.0\r\n# Graph Analytical Engine(GAE) Image with java SDK, which supports running Giraph and GraphX algorithms on it.\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fanalytical-java:0.19.0\r\n\r\n# Frontend component of Graph Interactive Engine(GIE) image\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Finteractive-frontend:0.19.0\r\n# Executor component of Graph Interactive Engine(GIE) image \r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Finteractive-executor:0.19.0\r\n\r\n# Graph Learning Engine(GLE) Image\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Flearning:0.19.0\r\n\r\n# GraphScope persistent storage, user can only perform GIE query on it.\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope-store:0.19.0\r\n```\r\n\r\n\r\n## What's Changed\r\n* Upgrade vineyard to v0.11.0 by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2260\r\n* [BUG] Fix bug in Pattern Match when project properties by @BingqingLyu in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2257\r\n* [GIE POM] Ignore the poms generated by maven-flatten-plugin in git by @shirly121 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2272\r\n* Move the theme to furo, and add some markdown examples. by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2291\r\n* [docs CI] Choose stable\u002Flatest tag correctly by fixing the missing `$` in bash script by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2293\r\n* Don't delete the existing docs, if don't copy. by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2294\r\n* Pre-release v0.19.0 by @lidongze0629 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2276\r\n* Make sure reconnect behaves as expected by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2297\r\n* Add a write options to enable adding header row to OSS output by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2296\r\n* Support write string ids\u002Fcontext datas to OSS via vineyard by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2295\r\n* Use a self-hosted public image to avoid reaching the download limits by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2308\r\n* Enable plug udf cpp pregel algorithm to graphscope. by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2312\r\n* add structure of the next-gen docs. by @yecol in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2315\r\n* Fix return type of cython combine by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2314\r\n* Disable dark theme even the browser is dark by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2316\r\n* Fixes: it is not a template by @sighingnow in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2318\r\n* fix nightly networkx forward ci by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2319\r\n* Fix outdated vineyard version by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2323\r\n* Fix helm could not delete role and rolebindings when uninstalling GS by @siyuan0322 in https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fpull\u002F2324\r\n* fix connect session logic and wait for gae ","2023-01-18T07:27:19",{"id":244,"version":245,"summary_zh":246,"released_at":247},222621,"v0.18.0","We are delighted to bring a number of improvements to GraphScope, alongside the GraphScope 0.18.0 release. This release contains many important features and enhancements to Graph Interactive Engine (GIE), including introducing a new strategy for pattern-matching queries and supporting canceling running queries. The Graph Learning Engine (GLE) now supports PyTorch and is also compatible with PyG. In addition, we take a first step towards modularized deployment for different components of GraphScope in Kubernetes. \r\n\r\nWe highlight the following improvements included in this release:\r\n\r\n**1. Enhancements for GIE**\r\n- A new execution strategy based on worst-case optimal join is introduced to GIE engine, potentially improving the performance of match step by orders of magnitude.\r\n- The query can be canceled after its execution exceeds a pre-given overtime parameter (10min by default). \r\n- GIE engine supports a failover mechanism: if an executor pod fails, but the data is not missing, it can be restarted by k8s. Existing queries cannot recover, but the engine can serve the following. \r\n\r\n**2. Enhancements for GAE**\r\n-  Add more variants of WCC algorithm.\r\n-   Supports local vertex map to make it could scale to larger graphs given more workers.\r\n\r\n**3. Enhancements for GLE**\r\n- Add support for PyTorch and PyG\r\n- Add heterogeneous graph support for subgraph-based GNN, add HeteroSubGraph and HeteroConv, bipartite GraphSAGE and UltraGCN.\r\n- Add edge feature support in both EgoGraph and SubGraph.\r\n- Add recommendation metrics: Recall, NDCG and HitRate.\r\n- Add hiactor-based graph engine.\r\n\r\n**4. Standalone deployment**\r\n- Supports a version of GIE standalone deployment in Kubernetes.\r\n- Redesigned docker files from the bottom to the top, making it more clear and more concise.\r\n\r\n**5. GAE Java Enhancement**\r\n-  Introduce @GrapeSkip for better user experience in template method overloading.\r\n-  Speedup Java App runimte codegen.\r\n\r\nDocker Image\r\n--------------\r\n\r\n```\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope:0.18.0\r\n\r\n# GraphScope persistent storage, user can only perform GIE query on it.\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope-store:0.18.0\r\n```\r\n\r\nCommits\r\n---------\r\n- [6775658d7]: Push jupyter image nightly with the latest client (#2266) (DongZe Li)\r\n- [df9f6ebf3]: Fix nightly CI (#2262) (Siyuan Zhang)\r\n- [4f1777700]: Fixes CI failure both on Linux and MacOS (#2244) (DongZe Li)\r\n- [07efc740d]: [GIE\u002Fengine] Bug fix; (#2250) (bmmcq)\r\n- [5ea5b874a]: [GIE] Support parallel scan on ExpStore (#2253) (BingqingLyu)\r\n- [432e65c89]: [GIE] Make the version of GIE compiler consistent with the default value in interactive engine pom (#2249) (shirly121)\r\n- [2b7cf0050]: [GIE POM] Unify GIE version by the global flag 'revision' (#2243) (shirly121)\r\n- [71d61e3cf]: Reorganize for Makefiles and dockerfiles (#2246) (Siyuan Zhang)\r\n- [84f449c7c]: [GIE Runtime] Debug runtime op info on in a more clearly way (#2226) (BingqingLyu)\r\n- [f77627dd7]: Update the learning model to align with the latest graphlearn (#2235) (Tao He)\r\n- [1c4c1cd17]: [GIE\u002FStore] Reduce memory footprint in `exp_store` (#2245) (Longbin Lai)\r\n- [e375f8d3d]: [GIE\u002FExp-Store] Optimize memory usage in loading graph data into `MutTopo`. (#2242) (Longbin Lai)\r\n- [8844e9027]: Fixes release graphscope-store image (#2241) (Siyuan Zhang)\r\n- [428c7855c]: [GIE\u002FEngine]: add direct executor implementation; (#2234) (bmmcq)\r\n- [e071ce4eb]: add docs revision preview in CI (#2237) (Jingbo Xu)\r\n- [f52455078]: Enable cpplint in CI (#2233) (Tao He)\r\n- [330fe14a7]: Makes GAE compatible with latest arrow release (#2232) (Tao He)\r\n- [ed8604036]: Revise docs. (#2231) (Jingbo Xu)\r\n- [b4d7038da]: Fixes compilation error of graphx runner (#2228) (Siyuan Zhang)\r\n- [a11b45395]: Reorganize Dockerfile according to specification of standalone deployment (#2227) (Siyuan Zhang)\r\n- [dcaa38ac0]: [GIE\u002FGLogue] rename Catalogue as GLogue (#2224) (BingqingLyu)\r\n- [aed1f1362]: [GIE\u002FIR] Introduce a new strategy for pattern matching (#2159) (BingqingLyu)\r\n- [92f7da3a9]: Add two other version of wcc for compatiblity (#2223) (Siyuan Zhang)\r\n- [2fbc4ad7c]: Add local vertex map to arrow fragment and arrow projected fragment. (#2212) (Siyuan Zhang)\r\n- [cc5170434]: Fixes nightly CI on macOS (#2219) (DongZe Li)\r\n- [f21754fcc]: [GAE-Java] GRAPE JDK support Spark local mode for graphx (#2216) (Zhang Lei)\r\n- [ed33b08c6]: [BugFix] GAE JavaDoc not generated (#2206) (Zhang Lei)\r\n- [440572158]: Update the DefaultTag to .Chart.AppVersion (#2210) (Ye Cao)\r\n- [3ee05f77b]: [new FAQ] add network proxy related FAQ (#2211) (Yifan Yuan)\r\n- [09995bfa0]: Delegate parquet\u002Forc files to vineyard io adaptors (#2209) (Tao He)\r\n- [7ecd75a47]: Delete all deployed resources without a extra rbac role when using helm unintsall (#2208) (Ye Cao)\r\n- [094e81d67]: [Bug Fix] Add default tag (.Chart.AppVersion) to graphscope-store (#2205) (Ye Cao)\r\n- [4279b8fc8]: [BugFix] make ResultCode in ir core ffi","2022-12-02T02:28:16",{"id":249,"version":250,"summary_zh":251,"released_at":252},222622,"v0.17.0","We are glad to announce a number of new features and improvements to GraphScope, alongside the GraphScope 0.17 release. The updates include new releases for Spark-GraphX support, backend engine enhancement, and frontend APIs. Currently, `GraphX Pregel` algorithms can be seamlessly executed on GraphScope. A lot of new features have also been officially brought into the interactive engine (GIE), including the syntactic sugar of path expansion and expression, the Gremlin steps of `id()`, `label()`, `coin()` and `otherV()` etc. and the profiling and benchmarking tools for LDBC BI queries. \r\n\r\nWe highlight the following improvements included in this release:\r\n\r\n**1. Spark-GraphX support for GAE:**\r\n- Support converting GraphX graph to GraphScope Fragment\r\n- Support wrapping Fragment as GraphX Graph.\r\n- Support running GraphX pregel on GraphScope Analytical engine.\r\n\r\n**2. New language features and enhancement for GIE:**\r\n- The syntactic sugar of path expansion. Now user can write `out[in|both]('x..y', 'KNOWS')` to support path expansion of at least x (included) times and at most y (excluded) times from a certain node. `with()` step can be followed to configure the path expansion.\r\n- The syntactic sugar of expression, introduced by `expr()`, can be used along with the `where()`-step to enable filtering expression. For example, `.where(expr(\"@.name == \\\"John\\\"\"))` help filter out the current entry that has the name of \"John\". We have updated the README [doc](https:\u002F\u002Fgraphscope.io\u002Fdocs\u002Finteractive_engine.html)  for some instructions.\r\n- Provide LDBC benchmarking for BI queries.\r\n   \r\n**3. Enhancement and dependency refinement of Groot to reduce the size of fat-jar.**\r\n\r\n**4. Feature updates:**\r\n- Add `from_dict` \u002F `to_dict` option for graph schema.\r\n- Add syntactic sugar of path expansion, `expr()`, and the Gremlin steps of `id()`, `label()`, `coin()`, `TextP.startsWith\u002FendsWith...` etc.\r\n\r\n\r\nDocker Image\r\n--------------\r\n\r\n```\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope:0.17.0\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope-store:0.17.0\r\n```\r\n\r\nCommits\r\n---------\r\n- [e0a761580]: Get the exception type in correct way, both on Linux and on MacOS. (#2099) (Tao He)\r\n- [0fcc2d815]: Update pom.xml (#2095) (Rudolf D)\r\n- [2caa69b7d]: Fixes the missing return statement in frames (#2097) (Tao He)\r\n- [12f32fff4]: Ensure the correctness of retry (in the RunStep request) (#2094) (Tao He)\r\n- [f3295f4a5]: Test against the latest libgrape-lite and vineyard (#2090) (Tao He)\r\n- [4caa4b8ed]: Enhance the error handling in frames (#2089) (Tao He)\r\n- [ea7a18952]: Fixes the typo in error message template (#2092) (Tao He)\r\n- [a69d884f3]: Closing the session if hearbeat fails for many times (when engine crashes) (#2088) (Tao He)\r\n- [2119d4851]: Add nodeselector arguments to control where the pod will be launched (#2087) (Tao He)\r\n- [9f1f64410]: Change nightly image tag to 'major.minor.alpha_patch' (#2075) (DongZe Li)\r\n- [1846e901a]: [GAE-Java] Make GAE Java SDK version align with GraphScope (#2077) (Zhang Lei)\r\n- [652b1c5d6]: [GAE-Java] Upgrade log4j version (#2082) (Zhang Lei)\r\n- [28809ddef]: [GIE-IR] Profiling for GIE-IR  (#2056) (BingqingLyu)\r\n- [2d57a3d8b]: [GIE-IR] support sending back a page of results if batch size met (#2076) (shirly121)\r\n- [a7462ae13]: Fixes GetMessage bug in GAE java SDK (#2079) (Zhang Lei)\r\n- [c4572e69d]: [GIE-IR] support more patterns of predicate, i.e. P.not, P.inside, P.outside (#2068) (shirly121)\r\n- [c463b3287]: Enhancement and dependency clearing of groot. (#2043) (Siyuan Zhang)\r\n- [3af3e84e9]: [IR Compiler] fix expand fusion strategy (#2058) (shirly121)\r\n- [45e8c0503]: Change builtin apps(bfs,sssp,pagerank) to parallel version (#2073) (DongZe Li)\r\n- [56a3b9c14]: Update GAE Java Doc (#2059) (Zhang Lei)\r\n- [a7ff7b666]: [IR Runtime] fix bug in label encoding of exp_store (#2057) (BingqingLyu)\r\n- [1ddf147bf]: [IR Compiler] support more project patterns [id(), label(), constant(XX)] (#2066) (shirly121)\r\n- [5f4813fd4]: [Emergency Fix]Compile Property Graph with `ENABLE_JAVA_SDK` on needs `jni.h` (#2069) (Zhang Lei)\r\n- [94a013155]: Fix GAE-Bug: Cannot compile GAE app if java not installed (#2060) (Zhang Lei)\r\n- [7741be002]: test filter push down (#2003) (waruto)\r\n- [588ce2969]: [Pre-commit Hook] Update README.md (#2064) (shirly121)\r\n- [516b24aa8]: [Pre-commit Hook] add pre-commit hook to prevent committing sensitive information (#2055) (shirly121)\r\n- [2f30b2355]: Install graphx-runner only whe it is built (#2062) (Tao He)\r\n- [4c7be5f33]: Fixes CI on macOS (#2061) (DongZe Li)\r\n- [c35766a44]: GraphScope for Spark-GraphX (#2004) (Zhang Lei)\r\n- [96d3bb1ff]: Fixes an uninitialized field bug in FFI reader (#2054) (Tao He)\r\n- [0b7483f84]: Support statements like `vd_type='str'` in UDF app (#2052) (Siyuan Zhang)\r\n- [adbd4d1d4]: Add prometheus exporter for coordinator && GIE engine (#1947) (Vincent)\r\n- [e87e99776]: Fixes the GAE jar name when we have a alpha in version number","2022-09-29T13:33:52",{"id":254,"version":255,"summary_zh":256,"released_at":257},222623,"v0.16.0","We are bringing a number of improvements to GraphScope, alongside the GraphScope 0.16.0 release. This release introduces many new features on backend engines and system stability. We enable **Jave SDK of Graph Analytics Engine (GAE) on MacOS**, and make a series of enhancements on the graph storage `Groot`. **We completely remove a legacy Graph Interactive Engine (GIE)**, while officially replacing it with the latest version based on an intermediate representation (IR) layer; in addition, we improve GIE via a couple of optimizations, new language features, and bug fixes. **The Graph Learning Engine (GLE) now supports real-time sampling on dynamic graphs**. Meanwhile, we start to release a nightly version every day, and you can try it with `pip3 install graphscope --pre`.\r\n\r\nWe highlight the following improvements included in this release:\r\n\r\n**1. Enhancements of the graph storage `Groot`:**\r\n- Support load table from partitioned ODPS table; \r\n- Speed up some popular gremlin queries;\r\n- Use the GAIA engine to support queries;\r\n- A series of deployment enhancements.\r\n\r\n**2. Enhancements of the GIE GAIA engine:**\r\n- Completely replacing the legacy GIE engine with the latest version based on IR; \r\n- Optimizing the logic of lazily fetching properties from the graph store, and implementing a new CSR-based storage for experiment purpose; \r\n- New language features including more grouping functions, more options for group\u002Fdedup\u002Forderby keys, etc.\r\n\r\n**3. Dynamic-Graph-Service (DGS) is introduced in GLE.**\r\n- DGS is an online inference service, it supports real-time sampling on dynamic graphs with streaming graph updates.\r\n\r\n**4. Support Java SDK of GAE for MacOS.**\r\n\r\n**5. Bug fixes:**\r\n- Fixes potential pointer leak in IR-core FFI functions; \r\n- Duplicate results while scanning with primary keys; \r\n- Error while accessing a `tag` that does not exist in the record.\r\n- Fixes failure of running `clustering` algorithm on the property graph.\r\n\r\n\r\nDocker Image\r\n--------------\r\n\r\n```\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope:0.16.0\r\n```\r\n\r\nCommits\r\n---------\r\n- [9c656fa52]: [GAIA Runtime] Use `hashbrown` for optimization (#1952) (BingqingLyu)\r\n- [a27dd5c12]: Support for version suffixes like '0.15.0a1' in cmake (#1960) (DongZe Li)\r\n- [e6917769b]: upgrade protoc-gen-grpc-java version (#1830) (Siyuan Zhang)\r\n- [9a71bf4c9]: Fixed high CPU usage of ingestor when having empty buffer (#1946) (simple)\r\n- [3a2165da1]: fix: add ipc sender after former one removed (#1950) (Neng Li)\r\n- [e486c35e3]: [GAIA\u002Fexp_store] To enable getting neighbors of a certain label by la… (#1945) (Longbin Lai)\r\n- [7f0f05398]: [pegasus] fix bug in (#1954) (#1958) (bmmcq)\r\n- [009fd8c32]: Fixes nightly CI by overwrite VERSION (#1957) (DongZe Li)\r\n- [f6dcf166d]: Change nightly image tag to 'nightly' (#1951) (DongZe Li)\r\n- [84e8de89d]: Support to pre-release GraphScope(image + wheel package) nightly with version like 'major.minor.alpha_patch' (#1949) (DongZe Li)\r\n- [5d9b62938]: Fix typos in the tutorials (#1948) (Ye Cao)\r\n- [1de753389]: Fix missing dependency of ir-compiler (#1935) (Siyuan Zhang)\r\n- [a0da2a974]: [GAIA-IR] create ffi object from java side to avoid invoking ffi interface which can lead memory leak problems (#1925) (shirly121)\r\n- [9284f69c5]: [GraphProxy] Optimize LazyDetails (#1921) (BingqingLyu)\r\n- [98ae038f5]: Fixes the links for tutorials in the documentation. (#1928) (Tao He)\r\n- [52078d9a4]: Integrate targets of assembly artifacts in GIE (#1920) (Siyuan Zhang)\r\n- [5e93f732e]: [IR Compiler] fix bugs when path_expand is nested in sub traversal, i.e. select('a').by(out('1..2')) (#1874) (shirly121)\r\n- [281f264f9]: Support edges of outer vertices in DynamicFragment (#1799) (ds-ssj)\r\n- [489a07725]: Fixed graph schema drop and init error when edge_kinds's src or dst gone (#1922) (simple)\r\n- [aedbb31f3]: Fix compiling error of write-bench (#1918) (Siyuan Zhang)\r\n- [7009ccaa9]: [IR Compiler] create FfiNameOrId from java side to fix undefined error (#1919) (shirly121)\r\n- [7e826c67f]: Cleanup legacy files. (#1914) (Siyuan Zhang)\r\n- [8a04f8384]: Print the running time of each round of analytical engine (#1913) (DongZe Li)\r\n- [41fe90e41]: Add the etcd {client,peer} port to the configuration list (#1910) (Tao He)\r\n- [484f9278d]: Reopen groot gremlin test (#1912) (Siyuan Zhang)\r\n- [160bb0b08]: Resolve issues reported by dependent bot (#1909) (Siyuan Zhang)\r\n- [1591300bf]: impl partial_eq for Property and fix gitignore (#1908) (waruto)\r\n- [eb45c584c]: [GIE] Reorganize executor package by incorporating GAIA into GIE (#1883) (BingqingLyu)\r\n- [289990309]: Data load tools supports partition (#1900) (Siyuan Zhang)\r\n- [cd08a1a47]: Enhance the `install_deps.sh` script (#1873) (Weibin Zeng)\r\n- [a33b179a4]: [GAIA-IR] support more patterns of dedup().by() in ir compiler (#1901) (shirly121)\r\n- [7087915d7]: Supporting reading from a config file in htap loader. (#1897) (Tao He)\r\n- [b0c9931a0]: Fix a bug when iterating dict (#1894) (Siyuan Zh","2022-08-12T07:29:57",{"id":259,"version":260,"summary_zh":261,"released_at":262},222624,"v0.15.0","We highlight the following fixes and improvements included in this release:\r\n- [GAIA-IR] Fixes the multi-join error in the plan of pattern matching\r\n- Supports bulk load from ODPS table and OSS  for the Interactive Engine.\r\n- [GAIA-IR] Support the `bothV()` operator.\r\n- Compatible with the latest GLOG API of Analytical Engine.\r\n- Fixes some compilation errors in Learning Engine under Apple M1 chip.\r\n- [GAIA-IR]  fix the protobuf encode error of logical plan in Interactive Engine.\r\n- Fixes bug while installing dependencies on ubuntu and update deprecated `--all` to `--workspace`\r\n\r\nDocker Image\r\n--------------\r\n\r\n```\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope:0.15.0\r\n```\r\n\r\nCommits\r\n---------\r\n- [b93a80942]: Fix nightly CI on macOS (#1797) (DongZe Li)\r\n- [f7c18d16f]: ignore a Cargo.lock (#1792) (waruto)\r\n- [175852558]: Impl PartialOrd and some methods for Property, then format it (#1788) (waruto)\r\n- [e8f0b98b5]: [Gaia\u002FIR] Return json with possible error message in `print_plan_as_json` (#1786) (Longbin Lai)\r\n- [5af6ef948]: Fixes bug while install deps on ubuntu and update deprecated `--all` to `--workspace` (#1785) (waruto)\r\n- [314a3fc2a]: [GAIA-IR]  fix a bug of encode protobuf of logical plan (#1784) (shirly121)\r\n- [0d8fca9cc]: [GAIA-IR] Fix compiling warnings in v6d_ffi (#1780) (BingqingLyu)\r\n- [07e86722f]: Fixes the failure of nightly CI on macOS by fixed the rust toolchain version to 1.60.0. (#1777) (DongZe Li)\r\n- [e0166e70b]: fix communication caused by broadcast (#1750) (Neng Li)\r\n- [b7960ba0f]: [GAIA-IR] Make v6d_ffi build as features in IR (#1775) (BingqingLyu)\r\n- [9abea6d4a]: support more than 2 branches to union (#1756) (Melo Yang)\r\n- [faadf9f05]: [GAIA-IR] Support writing a new graph in GAIA-IR (#1745) (BingqingLyu)\r\n- [3e449f981]: [IR Compiler] support TextP.containing\u002FTextP.notContaing as within\u002Fwithout in ir_core (#1755) (shirly121)\r\n- [ec11bd169]: [IR Compiler] represent identity as AsNone in subgraph (#1752) (shirly121)\r\n- [cfabc90d6]: fix bug, or_predicates is a collection of `AndPredicate` that forms a logical **OR** of all `AndPredicate`s (#1751) (waruto)\r\n- [2cba97080]: [IR Compiler] fix error when creating json file (#1743) (shirly121)\r\n- [b3f9afe80]: [GAIA-IR] support lazy projection for columns used only in a predicate (#1746) (shirly121)\r\n- [1ab5737f4]: Bump fastjson from 1.2.76 to 1.2.83 in \u002Fanalytical_engine\u002Fjava (#1732) (dependabot[bot])\r\n- [be3bf0ee4]: Bump fastjson from 1.2.75 to 1.2.83 in \u002Finteractive_engine (#1731) (dependabot[bot])\r\n- [f8448083b]: Upgrade vineyard version to fixes some build failures on Mac. (#1748) (Tao He)\r\n- [96ffefee2]: [GAIA-IR] support subgraph in ir compiler (#1721) (shirly121)\r\n- [a97a7791a]: Upgrade required graphlearn to fixes a build error on M1 Mac. (#1742) (Tao He)\r\n- [7af26c96c]: Compatible with the latest API of GLOG (#1738) (DongZe Li)\r\n- [bcbe64609]: Fix bugs while building on macOS 12 wih apple silicon (#1736) (waruto)\r\n- [f25fc429f]: Publish dataset image during release process (#1730) (DongZe Li)\r\n- [92f6564d3]: Multi task for bulk load (#1720) (Yongmin Hu)\r\n- [bcd37732a]: add crc to file meta store (#1726) (tianliplus)\r\n- [fe9d03383]: Supports launch vineyardd using on multiple hosts using MPI (#1727) (Tao He)\r\n- [afd61fd75]: [GAIA-IR] support bothV() in GAIA-IR (#1717) (BingqingLyu)\r\n- [deb47c9d2]: integrate gremlin query api into groot sdk and add authentication when querying  (#1715) (shirly121)\r\n- [85a70b884]: Stores download OSS files with multithreading for GIE (#1714) (Yongmin Hu)\r\n- [333c3bead]: [GAIA-IR] Reorg for GAIA-IR's Runtime (#1709) (BingqingLyu)\r\n- [ded5b2efc]: Supports  bulk load from ODPS table and OSS  for GIE (#1672) (Yongmin Hu)\r\n- [0b49a06da]: [Bug fix - Gaia-IR] The plan of pattern matching faces a multi-join error (#1704) (Longbin Lai)\r\n- [66a4f06bb]: Disable publish the wheel package to Test.Pypi (#1700) (DongZe Li)","2022-07-06T09:56:36",{"id":264,"version":265,"summary_zh":266,"released_at":267},222625,"v0.14.0","We are delighted to present the release of GraphScope v0.14.0. This release is composed of many updates on backend engines and system stability. The new Graph Interactive Engine (GIE), GAIA-IR, has supported more operators for diverse graph queries. Meanwhile, the persistent storage of GraphScope is further enhanced with a series of new functions. In addition, we continuously work on improving the performance of GraphScope, and developer usability.\r\n\r\nWe highlight the following improvements included in this release:\r\n\r\n**1.  New supported operators in Graph Interactive Engine (GIE)**\r\n- Support `valueMap` operator to fetch all properties of vertices in the GAIA engine.\r\n- Enable string oid type support for the GIE GAIA engine.\r\n- Support index query for the GAIA engine.\r\n\r\n**2. More functions on persistent storage of GraphScope**\r\n- Support loading dataset from the OSS.\r\n- Enable local GC for the Groot storage.\r\n\r\n**3. Bug fixes and other enhancements**\r\n- Upgrade the NetworkX version from 2.6 to 2.8.\r\n- A new algorithm named [voterank](https:\u002F\u002Fnetworkx.org\u002Fdocumentation\u002Fstable\u002Freference\u002Falgorithms\u002Fgenerated\u002Fnetworkx.algorithms.centrality.voterank.html?highlight=voterank#networkx.algorithms.centrality.voterank) has supported in the analytical engine.\r\n- Fix some problems in the property cache of GIE GAIA IR-Core.\r\n- Support to return an empty map if no property in `valueMap` operation.\r\n\r\nDocker Image\r\n--------------\r\n\r\n```\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope:0.14.0\r\n```\r\n\r\nCommits\r\n---------\r\n- [772e10749]: Bump karma from 3.0.0 to 6.3.16 in \u002Fpython\u002Fjupyter (#1694) (DongZe Li)\r\n- [c2f1bd4b8]: set snapshot as extra params to get graph data of correct version in groot (#1666) (shirly121)\r\n- [b9093fc6c]: Enable local GC (#1653) (Siyuan Zhang)\r\n- [982d467af]: Increase the duration (#1695) (Siyuan Zhang)\r\n- [65523c6ef]: Optimize clustering by ignoring computation of vertices that degree less than 2 (#1597) (Weibin Zeng)\r\n- [5ad8d521c]: fuse expand\u002FgetV with the following filters to support more patterns in match (#1671) (shirly121)\r\n- [26887b514]: Disbale redefined warning of string_view (#1693) (DongZe Li)\r\n- [10b231f40]: Fix dependabot alert caused by crossbeam(#1687) (Neng Li)\r\n- [d5d714068]: Make CI filtering consistent between main and pull requests (#1686) (Siyuan Zhang)\r\n- [27e033846]: Enhance the script finding process when launching GIE from locally build without installation (#1690) (Tao He)\r\n- [275547ec9]: Support return a dict for graph schema (#1682) (DongZe Li)\r\n- [6e872a6e8]: Fixes the failure of nightly CI. (#1663) (Weibin Zeng)\r\n- [39c572bfb]: Merge gs-jython and gs-lib into graphscope package (#1680) (DongZe Li)\r\n- [3622ba8af]: Upgrade required vineyard version (#1655) (Tao He)\r\n- [c4a2f9ed6]: Upgrade Kafka version (#1660) (Siyuan Zhang)\r\n- [f06721e56]: Fix forward algorithm test import error which test dir not contain `__init__` file (#1657) (Weibin Zeng)\r\n- [c5462af43]: Fixes the uninitialized pointer error for string fragment (#1659) (Tao He)\r\n- [b5bb4408d]: Return empty map if no properties in valueMap() (#1656) (shirly121)\r\n- [ce91b0ccf]: [GIE-IR] Upgrade Gaia-IR with the new Pegasus Client\u002FService APIs (#1648) (BingqingLyu)\r\n- [dc256c1bf]: [BugFix] Fix install `zetcd` error with `GO111MODULE=\"auto\"` and remove the limitation of go version (#1651) (Weibin Zeng)\r\n- [59c85b0c4]: [GAIA\u002Fengine] Merge latest version pegasus engine (#1632) (Neng Li)\r\n- [593537580]: [GAIA-IR] Support index query in IR (#1618) (BingqingLyu)\r\n- [b5cee9c63]: Implement `createGraph` on coordinator, add API to initialize builder using schema (#1641) (Tao He)\r\n- [fcda4a687]: Add ipython to the distributed docker image. (#1643) (Tao He)\r\n- [0a50ed13f]: Enable string oid type support for FFI wrapper for GIE. (#1638) (Tao He)\r\n- [8fe16119f]: Add GC snapshot functionality for groot (#1635) (Siyuan Zhang)\r\n- [87b5613a2]: Support valueMap() to fetch all properties of vertices (#1623) (shirly121)\r\n- [b452508c4]: Fixes the bug in AddColumn to graphs with `string` oid type. (#1627) (Tao He)\r\n- [76d33884e]: [GAIA-IR] Map KeyId back into KeyName for labels and properties (#1615) (BingqingLyu)\r\n- [fa5718c96]: Listen 0.0.0.0 address in GAIA frontend (#1609) (DongZe Li)\r\n- [0d68477f1]: fix the join bug (#1608) (wzbxpy)\r\n- [4b33307d0]: [Bug Fix] Fix property cache in IR Core (#1606) (BingqingLyu)\r\n- [e83e8d9bc]: Implement voterank app  (#1552) (liulx20)\r\n- [b5fff8686]: Fix `networkx.cnli` forward and reorg forward algorithm tests (#1584) (Weibin Zeng)\r\n- [33546c92e]: [IR Runtime] IR TagOpt for more compact structure in Runtime (#1594) (BingqingLyu)\r\n- [55d31d8a2]: Gie sdk basic auth (#1579) (tianliplus)\r\n- [b8ee7f063]: Clean up include headers of analytical engine (#1546) (Weibin Zeng)\r\n- [0aa8c3c6f]: refactor gie sdk (tianliplus)\r\n- [0115a729a]: Reorganize and cleanup proto definitions. (#1547) (Siyuan Zhang)\r\n- [8fbf1929b]: add ci tests for ir on vineyard (#1515) (shirly121)\r\n- [6060a6b45]: Restric","2022-06-09T06:22:55",{"id":269,"version":270,"summary_zh":271,"released_at":272},222626,"v0.13.0","We are delighted to announce the release of GraphScope v0.13.0. This release is focused on providing a [Jupyterlab extension](https:\u002F\u002Fpypi.org\u002Fproject\u002Fgs-jupyterlab\u002F) for GraphScope to make your graph computation workflows better. In addition, we continuously work on improving the performance of GraphScope, and developer usability. We highlight the following improvements included in this release:\r\n\r\n**1. Introduce a JupyterLab extension for GraphScope. Currently, it supports the following functions**\r\n- Provide a graphical user interface for monitoring the status of graphscope resources (e.g., session and graph) \r\n- Support to define data schema and load graph in an interactive way\r\n- The extension has been integrated into our [PlayGround](https:\u002F\u002Ftry.graphscope.app\u002F)\r\n\r\n**2. Performance improvement**\r\n- Add data caching in `NetworkX` for improving the performance of graph reporter\r\n- Optimize performance of `arrow fragment` to `dynamic fragment` with multiple thread\r\n\r\n**3. BUG Fixes or other enhancements**\r\n- Add a lock to protect the coordinator to avoid data race conditions\r\n- Fixes compilation failure in `cdlp` with `ArrowFlattenFragment`\r\n- Attempt backoff and retry during download dataset \r\n- Support primary key index in `Groot`\r\n- Support [avg_clustering](https:\u002F\u002Fnetworkx.org\u002Fdocumentation\u002Fstable\u002Freference\u002Falgorithms\u002Fgenerated\u002Fnetworkx.algorithms.cluster.average_clustering.html) builtin application\r\n- Display progress bar during loading graph with k8s mode\r\n\r\nDocker Image\r\n--------------\r\n\r\n```\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope:0.13.0\r\n```\r\n\r\nCommits\r\n---------\r\n- [d0de89a55]: Disable brew update when installing dependencies as it is super slow. (#1506) (Tao He)\r\n- [ac1c1eaf2]: Upgrade graph learn version and force pyarrow\u003C=6.0.0. (#1503) (Tao He)\r\n- [db579a7ad]: Move networkx graph schema from client to engine (#1485) (Weibin Zeng)\r\n- [617ae6312]: Display progress bar in k8s mode (#1495) (Siyuan Zhang)\r\n- [b035d0a7e]: Fix broken convert test of networkx (#1496) (Weibin Zeng)\r\n- [c833e372d]: Upgrade vineyard to 0.4.1 in Makefile (#1493) (DongZe Li)\r\n- [091b698de]: Update ScaleUp trigger in HorizontalRunnerAutoscaler (#1489) (Siyuan Zhang)\r\n- [ae9a34601]: Sync with latest changes about arrow fragment in vineyard, and include several refactors\u002Fbugfixes. (#1487) (Tao He)\r\n- [6df93c212]: Fix remove nodes logic in `DynamicFragment` (#1484) (Weibin Zeng)\r\n- [a75f33c8a]: Init the op of nx.Graph with incoming graphscope graph's op (#1479) (Weibin Zeng)\r\n- [2bc40ad5b]: Add another write path that uses the C++ IO adaptor (#1480) (Siyuan Zhang)\r\n- [23b612bce]: Remove the unused append-only arrow fragment. (#1477) (Tao He)\r\n- [4453f2e2a]: Suppress the grpc warnings in `fork_posix.cc`. (#1478) (Tao He)\r\n- [8d5a02939]: Optimize performance of arrow fragment to dynamic fragment with multi-threading (#1458) (Weibin Zeng)\r\n- [daa8649d4]: Support avg_clustering builtin app in client side (#1475) (DongZe Li)\r\n- [f27689c93]: Fix arrow version in Dockerfile (#1476) (Siyuan Zhang)\r\n- [05b0c3685]: Add __del__ to nx.Graph to handle graph delete (#1464) (Weibin Zeng)\r\n- [2745d2525]: Move maxgraph*.jar into gs-jython package (#1472) (DongZe Li)\r\n- [4de8e6cc2]: groot support pk index (#1471) (tianliplus)\r\n- [ca9c7ad80]: Add a lock in the coordinator's RunStep as well. (#1465) (Tao He)\r\n- [0479c0a96]: Adapt CI on self-hosted runner to HorizontalRunnerAutoScaler (#1462) (Siyuan Zhang)\r\n- [90876cc06]: Attempt backoff and retry during download dataset (#1463) (DongZe Li)\r\n- [bbc7ebc8d]: Correctly handle the lifecycle of graph (#1460) (Siyuan Zhang)\r\n- [d52346279]: Add clean target to MakeFile to clean temporary files create from building (#1459) (Weibin Zeng)\r\n- [708ab4db8]: Delete intermediate files (#1456) (tianliplus)\r\n- [c4d2aefd9]: Bump hadoop-common from 2.10.1 to 3.2.3 in \u002Finteractive_engine (#1450) (dependabot[bot])\r\n- [28ca22997]: Correctly handle the empty dag (#1457) (Siyuan Zhang)\r\n- [632af342c]: Release the jupyter image in CI workflow (#1453) (DongZe Li)\r\n- [ea9193174]: Fix build wheel fail on mac (#1452) (Weibin Zeng)\r\n- [2cdeb8ec3]: Add data caching for networkx to improve the graph report performance (#1369) (Weibin Zeng)\r\n- [332ca48e4]: Add version check to coordinator & client, fixes #1435 (#1441) (wuyueandrew)\r\n- [9e2d77d83]: Fixes compilation failure in cdlp\u003CArrowFlattenFragment> and sssp_path\u003CArrowFlattenFragment> (#1447) (DongZe Li)\r\n- [46b30e450]: Add a lock to protect the coordinator to avoid data race condtions. (#1445) (Tao He)\r\n- [8af17dfb3]: Shrink gs-lib package to less than 100MB (#1440) (DongZe Li)","2022-05-06T12:35:29",{"id":274,"version":275,"summary_zh":276,"released_at":277},222627,"v0.12.0","The GraphScope v0.12.0 release is a major update on many aspects of the project including backend engines, APIs, and system stability. It introduces an [intermediate representation (IR) layer](https:\u002F\u002Fgithub.com\u002Falibaba\u002FGraphScope\u002Fissues\u002F1377) into the graph interactive engine (GIE) GAIA, to decouple query languages from query execution engines. Meanwhile, this release supports Giraph APIs to allow Giraph apps running on the Graph Analytics Engine (GAE) of GraphScope.\r\n\r\nWe highlight the following improvements included in this release:\r\n\r\n**1. Introduce IR layer into GAIA:**\r\n- A completely redesigned IR layer to decouple the query language dependency, and further for query optimizations.\r\n- Define the supported Gremlin's grammar via Antlr.\r\n- Support `match` step in Gremlin, for graph pattern matching.\r\n\r\n**2. Add Giraph APIs to GAE:**\r\n- Support to load graphs with Giraph Formats, e.g.,  `graph = sess.load_from(vertices=\"p2p-31.v\", vformat=\"giraph:com.example.vformat\",edges=\"p2p-31.e\", eformat=\"giraph:com.example.vformat\")`\r\n- Support Giraph APIs on GraphScope, and all algorithms implemented towards the original Giraph APIs can run on GraphScope without modifications. For example, to load Giraph app SSSP, users can just invoke `giraph_sssp = load_app(algo=\"giraph:com.alibaba.graphscope.example.giraph.SSSP\")`\r\n- Users now can add jars by `sess.add_lib` interface. \r\n\r\n**3. Bug Fixes or other enhancements:**\r\n- Correct the lifecycle management of loaded graphs within a session.\r\n- Make the graphlearn and tensorflow related logs more user-friendly.\r\n- Fix `readwrite` failed on GraphScope Networkx module.\r\n- Enable to connect to the existed ETCD cluster in GraphScope.\r\n- Support to launch GraphScope on K8s from an inner-pod environment.\r\n\r\nDocker Image\r\n--------------\r\n\r\n```\r\ndocker pull registry.cn-hongkong.aliyuncs.com\u002Fgraphscope\u002Fgraphscope:0.12.0\r\n```\r\n\r\nCommits\r\n---------\r\n- [b0a090082]: Support launch GraphScope on K8s from inner-pod environment (#1434) (DongZe Li)\r\n- [9e4e47f15]: Add offline deployment doc for Helm (#1433) (DongZe Li)\r\n- [477931537]: Migrate cargo rocksdb dependency to 0.18.0 version (#1430) (Zichao Zhang)\r\n- [2e74e3c47]: Split the builtin application distribution to 'gs-apps' package (#1429) (DongZe Li)\r\n- [47b0d42d2]: Support string tensor for tensor context (#1425) (Weibin Zeng)\r\n- [1068628fe]: Upgrade the version of databind, fixes the dependent bot warnings. (#1424) (Tao He)\r\n- [ab774812e]: Upgrade the required black version. (#1422) (Tao He)\r\n- [92c4b155e]: Attempt backoff and retry during handle GRPC error (#1421) (DongZe Li)\r\n- [2de6b7e93]: Bump commons-io from 2.6 to 2.7 in \u002Fresearch\u002Fquery_service\u002Fir\u002Fcompiler (#1417) (dependabot[bot])\r\n- [edb2493e4]: Retry 3 times and then report failure during HeartBeat process (#1419) (DongZe Li)\r\n- [93ef1b56c]: Try to fixes nightly CI on macOS by packaging 'string_view' into wheel package (#1420) (DongZe Li)\r\n- [9d2c1e775]: Bump jackson-databind from 2.11.1 to 2.13.2.1 in \u002Finteractive_engine (#1415) (dependabot[bot])\r\n- [64c77c13c]: Add networkx tutorial and fixed vineyard version (#1412) (DongZe Li)\r\n- [27400d1f1]: Bump protobuf-java in \u002Fresearch\u002Fquery_service\u002Fir\u002Fcompiler (#1416) (dependabot[bot])\r\n- [7d2f92c93]: Introducing IR query service (#1407) (BingqingLyu)\r\n- [88e767069]: [BugFix] Fix analytical engine can't not compile with NETWORKX=OFF (#1410) (Weibin Zeng)\r\n- [ed6546da0]: Push if condition down to steps to allow it be checkable. (#1404) (Tao He)\r\n- [07cb0dff7]: Remove unused dependencies (#1403) (Zhang Lei)\r\n- [bf6998587]: Fix networkx forward nightly ci (#1387) (Weibin Zeng)\r\n- [0191dd62e]: Add dummy CI worflows to allow all status checkable. (#1402) (Tao He)\r\n- [f5928a344]: Giraph on GraphScope implementation (#1386) (Zhang Lei)\r\n- [e851014bc]: Merge lastest version of pegasus (#1376) (Neng Li)\r\n- [0bf6686d9]: Upgrade vineyard to v0.3.21. (#1389) (Tao He)\r\n- [3b520cab0]: Remove gaia from GraphScope for code refactor (#1388) (shirly121)\r\n- [91f4248c7]: Add role and rolebinding for graphscope charts (#1382) (DongZe Li)\r\n- [c921cd622]: Try to upgrade tinkerpop version to 3.5.1 in maxgraph (#1349) (shirly121)\r\n- [a314bbbe6]: Revert \"Giraph on GraphScope (#1362)\"  (#1385) (Tao He)\r\n- [c3903d5ee]: Refactor `DynamicFragment` with `CSREdgecutFragmentBase` and `MutableCSR` (#1328) (Weibin Zeng)\r\n- [0a9cda988]: Bump protobuf-java from 3.18.0 to 3.18.2 in \u002Finteractive_engine (#1381) (dependabot[bot])\r\n- [83ebed579]: Upgrade proto to 3.18.0 && grpc to 1.42.1 (#1149) (shirly121)\r\n- [ee81be7d6]: Bump zookeeper from 3.4.5 to 3.4.14 in \u002Fanalytical_engine\u002Fjava (#1372) (dependabot[bot])\r\n- [1dbc3735e]: Giraph on GraphScope (#1362) (Zhang Lei)\r\n- [4d8390aba]: Disable noisy log inside gremlin-python, and fixes the hard-coded DEBUG. (#1368) (Tao He)\r\n- [2c56d49f3]: Enable to connect to the existed ETCD cluster in GraphScope (#1359) (wuyueandrew)\r\n- [5ea7c0de7]: [Bug fix] Fix readwrite test failed on graphscope.nx (#1365) (Weibin Zeng)\r\n- [c72da15fe]:","2022-04-02T04:47:21"]