This is an automated email from the ASF dual-hosted git repository.

jgemignani pushed a commit to branch PG12
in repository https://gitbox.apache.org/repos/asf/age.git


The following commit(s) were added to refs/heads/PG12 by this push:
     new c042b320 Update README.md (#705)
c042b320 is described below

commit c042b320311d8784d35712b4e42c2fe7f114fd38
Author: jbiz805 <[email protected]>
AuthorDate: Thu Feb 23 10:46:04 2023 +0900

    Update README.md (#705)
    
    Updated overall readme starting from What is Apache AGE.
---
 README.md | 270 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 235 insertions(+), 35 deletions(-)

diff --git a/README.md b/README.md
index 63689293..5521d399 100644
--- a/README.md
+++ b/README.md
@@ -55,64 +55,263 @@
 
 <br>
 
-Apache AGE is a PostgreSQL Extension that provides graph database 
functionality. AGE is an acronym for A Graph Extension, and is inspired by 
Bitnine's fork of PostgreSQL 10, AgensGraph, which is a multi-model database. 
The goal of the project is to create single storage that can handle both 
relational and graph model data so that users can use standard ANSI SQL along 
with openCypher, the Graph query language.
 
-A graph consists of a set of vertices (also called nodes) and edges, where 
each individual vertex and edge possesses a map of properties. A vertex is the 
basic object of a graph, that can exist independently of everything else in the 
graph. An edge creates a directed connection between two vertices. A graph 
database is simply composed of vertices and edges. This type of database is 
useful when the meaning is in the relationships between the data. Relational 
databases can easily handle di [...]
+<h2><img height="30" src="/img/AGE.png">&nbsp;&nbsp;What is Apache AGE?</h2>
+
+[Apache AGE](https://age.apache.org/#) is an extension for PostgreSQL that 
enables users to leverage a graph database on top of the existing relational 
databases. AGE is an acronym for A Graph Extension and is inspired by Bitnine's 
AgensGraph, a multi-model database fork of PostgreSQL. The basic principle of 
the project is to create a single storage that handles both the relational and 
graph data model so that the users can use the standard ANSI SQL along with 
openCypher, one of the most [...]
+</br>
+</br>
+</br>
+
+<p align="center">
+<img src="/img/age-01.png" width="80%" height="80%">
+</p>
+
+</br>
+
+Since AGE is based on the powerful PostgreSQL RDBMS, it is robust and fully 
featured. AGE is optimized for handling complex connected graph data. It 
provides plenty of robust databases features essential to the database 
environment, including ACID transactions, multi-version concurrency control 
(MVCC), stored procedure, triggers, constraints, sophisticated monitoring, and 
a flexible data model (JSON). Users with a relational background who require 
graph data analytics can use this extens [...]
+
+There is a strong need for cohesive, easy-to-implement multi-model databases. 
As an extension of PostgreSQL, AGE supports all the functionalities and 
features of PostgreSQL while also offering a graph model to boot.
+
+
+<h2><img height="30" src="/img/tick.svg">&nbsp;&nbsp;Overview</h2>
+
+Apache AGE is : 
+
+- **Powerful**: adds graph database support to the already popular PostgreSQL 
database: PostgreSQL is used by organizations including Apple, Spotify, and 
NASA.
+- **Flexible**: allows you to perform openCypher queries, which makes complex 
queries much easier to write. It also enables multiple graphs at the same time.
+- **Intelligent**: allows you to perform graph queries that are the basis for 
many next-level web services such as fraud detection, master data management, 
product recommendations, identity and relationship management, experience 
personalization, knowledge management, and more.
+
+<h2><img height="30" src="/img/features.svg">&nbsp;&nbsp;Features</h2>
+</br>
+</br>
+
+<p align="center">
+<img src="/img/age-03.png" width="80%" height="80%">
+</p>
+</br>
+
+- **Cypher Query**: supports graph query language
+- **Hybrid Querying**: enables SQL and/or Cypher
+- **Querying**: enables multiple graphs
+- **Hierarchical**: graph label organization
+- **Property Indexes**: on both vertices(nodes) and edges
+- **Full PostgreSQL**: supports PG features
+
 
-Apache AGE is:
 
-Powerful -- AGE adds graph database support to the already popular PostgreSQL 
database: PostgreSQL is used by organizations including Apple, Spotify, and 
NASA.
-Flexible -- AGE allows you to perform openCypher queries, which make complex 
queries much easier to write.
-Intelligent -- AGE allows you to perform graph queries that are the basis for 
many next level web services such as fraud & intrusion detection, master data 
management, product recommendations, identity and relationship management, 
experience personalization, knowledge management and more.
+<h2><img height="30" 
src="/img/documentation.svg">&nbsp;&nbsp;Documentation</h2>
 
-## Overview
+Refer to our latest [Apache AGE 
documentation](https://age.apache.org/age-manual/master/index.html) to learn 
about installation, features, built-in functions, and  Cypher queries.
 
-**This README file is for the Apache AGE PostgreSQL 12 release**
 
-- **Apache AGE is currently being developed for the PostgreSQL 11 and 12 
releases** and will support all the future releases of PostgreSQL.
-- Apache AGE supports the openCypher graph query language.
-- Apache AGE enables querying multiple graphs at the same time.
-- Apache AGE will be enhanced with an aim to support all of the key features 
of AgensGraph (PostgreSQL fork extended with graph DB functionality).
 
-## Latest happenings
+<h2><img height="30" 
src="/img/installation.svg">&nbsp;&nbsp;Pre-Installation</h2>
 
-- Latest Apache AGE for PG 12 release, [Apache AGE 1.1.1 
(https://github.com/apache/age/releases/tag/PG12/v1.1.1-rc0).
-- The latest Apache AGE documentation is now available at 
[here](https://age.apache.org/docs/master/index.html).
-- The roadmap - [Apache AGE website](http://age.apache.org/).
-- Send all your comments and inquiries to the user mailing list, 
[email protected].
+Install the following essential libraries according to each OS. Building AGE 
from the source depends on the following Linux libraries (Ubuntu package names 
shown below):
 
-## Installation
+- **CentOS**
+```bash
+yum install gcc glibc glib-common readline readline-devel zlib zlib-devel flex 
bison
+```
+- **Fedora**
+```bash
+dnf install gcc glibc bison flex readline readline-devel zlib zlib-devel
+```
+- **Ubuntu**
+```bash
+sudo apt-get install build-essential libreadline-dev zlib1g-dev flex bison
+```
 
-- [Use a docker image - official ver.](https://hub.docker.com/r/apache/age)
-- [Installing from source](https://age.apache.org/#)
+<h2><img height="30" src="/img/installation.svg">&nbsp;&nbsp;Installation</h2>
 
-## Graph visualization tool for AGE
+Apache AGE is intended to be simple to install and run. It can be installed 
with Docker and other traditional ways. 
 
-Apache AGE Viewer is a subproject of the Apache AGE project:  
<https://github.com/apache/age-viewer>
+<h4><a><img width="20" src="/img/pg.svg"></a>
+&nbsp;Install PosgtreSQL
+</h4>
+
+You will need to install an AGE compatible version of Postgres<a>, for now AGE 
supports Postgres 11 and 12. Supporting the latest versions is on AGE roadmap. 
+     
+<h4>
+&nbsp;Install From Package Manager
+</h4>
+
+You can use a <a href="https://www.postgresql.org/download/";>package 
management </a> that your OS provides to download AGE.
+
+<br>
 
-- This is a visualization tool.
-After AGE Extension Installation
-You can use this tool to use the visualization features.
-- Follow the instructions on the link to run it.
-Under Connect to Database , select database type as "Apache AGE"
+```bash
+sudo apt install postgresql 
+
+```
+<h4>
+&nbsp;Install From Source Code
+</h4>
+
+You can <a href="https://www.postgresql.org/ftp/source/";> download the 
Postgres </a> source code and install your own instance of Postgres. You can 
read instructions on how to install from source code for different versions on 
the <a href="https://www.postgresql.org/docs/11/installation.html";>official 
Postgres Website.</a>
+
+
+
+<h4><img width="20" src="/img/tux.svg"><img width="20" src="/img/apple.svg"> 
&nbsp;Install AGE on Linux and MacOS
+</h4>
+
+Clone the <a href="https://github.com/apache/age";>github repository</a> or 
download the<a href="https://github.com/apache/age/releases";>download an 
official release.
+</a>
+Run the pg_config utility and check the version of PostgreSQL. Currently, only 
PostgreSQL versions 11 & 12 are supported. If you have any other version of 
Postgres, you will need to install PostgreSQL version 11 & 12.
+<br>
+    
+```bash
+pg_config
+```
+Run the following command in the source code directory of Apache AGE to build 
and install the extension.  
+     
+```bash
+make install
+```
+     
+If the path to your Postgres installation is not in the PATH variable, add the 
path in the arguments:
+```bash
+make PG_CONFIG=/path/to/postgres/bin/pg_config install
+```
 
-## Documentation
 
-Here is the link to the latest [Apache AGE 
documentation](https://age.apache.org/docs/master/index.html).
-You can learn about how to install Apache AGE, its features and built-in 
functions and how to use various Cypher queries.
+<h4></a><img width="30" src="/img/docker.svg"></a>
+&nbsp;Run using Docker
+</h4>
+
+<h5> Get the docker image </h5>
+
+```bash
+docker pull apache/age
+
+```
+<h5> Create AGE docker container </h5>
+
+```bash
+docker run \
+    --name age  \
+    -p 5455:5432 \
+    -e POSTGRES_USER=postgresUser \
+    -e POSTGRES_PASSWORD=postgresPW \
+    -e POSTGRES_DB=postgresDB \
+    -d \
+    apache/age
+```
+
+
+
+<h2><img height="20" src="/img/contents.svg">&nbsp;&nbsp;Post Installation</h2>
+
+For every connection of AGE you start, you will need to load the AGE extension.
+
+```bash
+CREATE EXTENSION age;
+```
+```bash
+LOAD 'age';
+```
+```bash
+SET search_path = ag_catalog, "$user", public;
+```
+
+
+
+<h2><img height="20" src="/img/contents.svg">&nbsp;&nbsp;Quick Start</h2>
+
+To create a graph, use the create_graph function located in the ag_catalog 
namespace.
+
+```bash
+SELECT create_graph('graph_name');
+```
+
+To create a single vertex, use the CREATE clause. 
+
+```bash
+SELECT * 
+FROM cypher('graph_name', $$
+    CREATE (n)
+$$) as (v agtype);
+```
+
+
+To create a single vertex with the label, use the CREATE clause. 
+
+```bash
+SELECT * 
+FROM cypher('graph_name', $$
+    CREATE (:label)
+$$) as (v agtype);
+```
+
+To query the graph, you can use the MATCH clause.  
+
+```bash
+SELECT * FROM cypher('graph_name', $$
+MATCH (v)
+RETURN v
+$$) as (v agtype);
+```
+
+You can use the following to create an edge, for example, between two nodes. 
+
+```bash
+SELECT * 
+FROM cypher('graph_name', $$
+    MATCH (a:label), (b:label)
+    WHERE a.property = 'Node A' AND b.property = 'Node B'
+    CREATE (a)-[e:RELTYPE]->(b)
+    RETURN e
+$$) as (e agtype);
+```
+
+
+To create an edge and set properties.
+
+```bash
+SELECT * 
+FROM cypher('graph_name', $$
+    MATCH (a:label), (b:label)
+    WHERE a.property = 'Node A' AND b.property = 'Node B'
+    CREATE (a)-[e:RELTYPE {property:a.property + '<->' + b.property}]->(b)
+    RETURN e
+$$) as (e agtype);
+```
+
+Example 
+
+```bash
+SELECT * 
+FROM cypher('graph_name', $$
+    MATCH (a:Person), (b:Person)
+    WHERE a.name = 'Node A' AND b.name = 'Node B'
+    CREATE (a)-[e:RELTYPE {name:a.name + '<->' + b.name}]->(b)
+    RETURN e
+$$) as (e agtype);
+```
+
+
+
+<h2><img height="20" src="/img/gettingstarted.svg">&nbsp;&nbsp;Language 
Specific Drivers</h2>
+
+Starting with Apache AGE is very simple. You can easily select your platform 
and incorporate the relevant SDK into your code.
+</br>
+</br>
+
+<p align="center">
+<img src="/img/age-02.png" width="80%" height="80%">
+</p>
 
-## Language Specific Drivers
 
-### Built-in
+<h4>Built-in</h4>
 
 - [Go driver](./drivers/golang)
 - [Java driver](./drivers/jdbc)
 - [NodeJs driver](./drivers/nodejs)
 - [Python driver](./drivers/python)
 
-### Community
+<h4>Community-driven Driver</h4>
 
-- [Apache AGE Python Driver](https://github.com/rhizome-ai/apache-age-python)
 - [Apache AGE Rust Driver](https://github.com/Dzordzu/rust-apache-age.git)
 
 
@@ -157,4 +356,5 @@ You can also get help from these videos.
 <h2><img height="20" src="/img/community.svg">&nbsp;&nbsp;Contributing</h2>
 
 You can improve ongoing efforts or initiate new ones by sending pull requests 
to [this repository](https://github.com/apache/age).
-Also, you can learn from the code review process, how to merge pull requests, 
and from code style compliance to documentation, by visiting the [Apache AGE 
official site - Developer Guidelines](https://age.apache.org/#codereview).
+Also, you can learn from the code review process, how to merge pull requests, 
and from code style compliance to documentation by visiting the [Apache AGE 
official site - Developer 
Guidelines](https://age.apache.org/contribution/guide).
+Send all your comments and inquiries to the user mailing list, 
[email protected].

Reply via email to