diff --git a/docs/05_Community_Tutorials/01_To_begin_with_gephi/_category_.json b/docs/05_Community_Tutorials/01_To_begin_with_gephi/_category_.json new file mode 100644 index 0000000..ebb0ec4 --- /dev/null +++ b/docs/05_Community_Tutorials/01_To_begin_with_gephi/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "To Begin with Gephi", + "position": 1 +} diff --git a/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en.md b/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en.md new file mode 100644 index 0000000..86ddffe --- /dev/null +++ b/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en.md @@ -0,0 +1,102 @@ +--- +id: history-en +title: History +last_update: + author: Clément Levallois +sidebar_position: 2 +description: Brief history of Gephi software +--- + + +1. The birth of Gephi {#_1_the_birth_of_gephi} +===================== + +The origin of Gephi lays in [Web Atlas](http://webatlas.fr/wp/), a +project started in 2006 involving [Mathieu Jacomy](https://www.linkedin.com/in/mathieu-jacomy-a38a552a/), who was +interested in the exploration of web-based graphs. + +This was about the same time [Eytan Adar](http://www.cond.org/) was +developing his [GUESS +software](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjljNmDtbrRAhXL6xQKHWDdDRMQFggcMAA&url=http%3A%2F%2Fgraphexploration.cond.org%2Fchi2006%2Fguess-chi2006.pdf&usg=AFQjCNETmuZqHoaZyJSYpSuTGQ87PNSCLA&sig2=ns0z9wqVRIo5riVtHv1QfQ) + +![align=\"center\"](/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en/matthieu-jacomy.jpg) + +In 2007/2008, this project morphed into Gephi, developed by a team of +students at Université Technologique de Compiègne +([UTC](https://www.utc.fr/en.html)). + +[Mathieu Bastian](https://www.linkedin.com/in/mathieubastian/) became +the software architect. + +![The initial Gephi team](/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en/initial-team.png) + +2. The evolution of Gephi {#_2_the_evolution_of_gephi} +========================= + +Gephi has evolved in several major milestones: + +a. version 0.6 (2009) {#_a_version_0_6_2009} +--------------------- + +- the initial public release. Contains already the filter system. + +b. version 0.7 (2010) {#_b_version_0_7_2010} +--------------------- + +- Major overhaul of the graphics interface. + +- Started using OpenGL framework for graphics acceleration. + +- A system of plugin is created. + +c. version 0.8 (2011) {#_c_version_0_8_2011} +--------------------- + +- Introduced dynamic graphs. + +- Many plugins were created for Gephi, and the software started + becoming much popular. + +- Mac computer users had issues installing Gephi on their computers + because of a Java compatibility issue. + +d. version 0.9 (December 2015): {#_d_version_0_9_december_2015} +------------------------------- + +- A graph engine optimized for memory is introduced: Gephi can handle + much larger graphs. + +- The codebase for the project is \"mavenized\", making the code more + modular and easier to maintain. + +- Compatibility issues with Mac OS are solved. + +In 2016, Gephi is translated in French, Spanish, Japanese,  Russian, +Polish, Brazilian Portuguese, Chinese, Czech and German. + +[Eduardo Ramos +Ibáñez](https://www.linkedin.com/in/eduardo-ramos-ib%C3%A1%C3%B1ez-b6231522/) +is the maintainer of the code. + +3. A series of metrics on Gephi's popularity over time {#_3_a_series_of_metrics_on_gephi_8217_s_popularity_over_time} +====================================================== + +a. Cumulative downloads {#_a_cumulative_downloads} +----------------------- + +b. General interest for Gephi and related software in the past 5 years {#_b_general_interest_for_gephi_and_related_software_in_the_past_5_years} +---------------------------------------------------------------------- + +trends.embed.renderExploreWidget(\"TIMESERIES\", +{\"comparisonItem\":\[{\"keyword\":\"gephi\",\"geo\":\"\",\"time\":\"2004-01-01 +2021-09-21\"},{\"keyword\":\"vosviewer\",\"geo\":\"\",\"time\":\"2004-01-01 +2021-09-21\"},{\"keyword\":\"cytoscape\",\"geo\":\"\",\"time\":\"2004-01-01 +2021-09-21\"},{\"keyword\":\"ucinet\",\"geo\":\"\",\"time\":\"2004-01-01 +2021-09-21\"},{\"keyword\":\"nodexl\",\"geo\":\"\",\"time\":\"2004-01-01 +2021-09-21\"}\],\"category\":0,\"property\":\"\"}, +{\"exploreQuery\":\"date=allQ=GEPHI,VOSVIEWER,CYTOSCAPE,UCINET,NODEXL\",\"GUESTPATH\":\"HTTPS://TRENDS.GOOGLE.COM:443/TRENDS/EMBED/\"}) + +c. Academic citations for Gephi (counting only citations to [Bastian et al., 2009](http://www.aaai.org/ocs/index.php/ICWSM/09/paper/download/154/1009)) {#_c_academic_citations_for_gephi_counting_only_citations_to_ulink_url_http_www_aaai_org_ocs_index_php_icwsm_09_paper_download_154_1009_bastian_et_al_2009_ulink} +------------------------------------------------------------------------------------------------------------------------------------------------------- + +![google-scholar-gephi.png](/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en/google-scholar-gephi.png) diff --git a/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en.md b/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en.md new file mode 100644 index 0000000..955a8f4 --- /dev/null +++ b/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en.md @@ -0,0 +1,543 @@ +--- +id: simple-project-form-a-to-z +title: Simple Project from A to Z +sidebar_position: 3 +last_update: + author: Clément Levallois +tags: + - Tutorial + - Quick Start +keywords: + - simple + - quick start + - tutorial + - graph +description: Simple Project with gephi form A to Z +--- + +Description of the project {#_description_of_the_project} +========================== + +This project is for complete beginners to Gephi. It supposes you have +Gephi installed and running on your computer. That is all. + +When finishing this tutorial, you should be able to: + +- be familiar with the vocabulary to discuss networks + +- download a network file for this exercise + +- description of the file / the network + + + +- open a network file + +- read the report after opening a file + +- show the labels of the nodes + +- layout the network + + + +- visualize attributes of the network + +- prettify the network for enhanced readability + +- compute the centrality of the nodes in the network + +- visualize attributes created by Gephi + +- export a visualization as a picture or pdf + +- export a web visualization of the network + +be familiar with the terminology to discuss networks {#_be_familiar_with_the_terminology_to_discuss_networks} +==================================================== + +![terminology for +networks](https://docs.google.com/drawings/d/1h8N-UBY7dO6Q7mXCbPY78ITfJx1Mti9YD2ScnVu4oHA/pub?w=960&h=720) + +download a network file {#_download_a_network_file} +======================= + +[download this zip file](https://seinecle.github.io/gephi-tutorials/resources/miserables_result.zip) and unzip it on +your computer. + +You should find the file `miserables.gexf` in it. + +Save it in a folder you will remember (or create a folder specially for +this small project). + +description of the file / the network {#_description_of_the_file_the_network} +===================================== + +This file contains a network representing \"who appears next to whom\" +in the 19th century novel *Les Misérables* by Victor Hugo[^1]. + +A link between characters A and B means they appeared on the same page +or paragraph in the novel. + +The file name ends with \".gexf\", which just means this is a text file +where the network information is stored (name of the characters, their +relations, etc.), following some conventions. + +open the network in Gephi {#_open_the_network_in_gephi} +========================= + +- open Gephi. On the Welcome screen that appears, click on + `Open Graph File` + +- find `miserables.gexf` on your computer and open it + +![welcome screen](/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/gephi-welcome-screen-open-graph-en.png) + +read the report after opening a file {#_read_the_report_after_opening_a_file} +==================================== + +A report window will open, giving you basic info on the network you +opened: + +![report window](/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/opening-file-report-en.png) + +This tells you that the network comprises 74 characters, connected by +248 links. + +Links are undirected, meaning that if A is connected to B, then it is +the same as B connected to A. + +The report also tells us the graph is not dynamic: it means there is no +evolution or chronology, it won't \"move in time\". + +Click on `OK` to see the graph in Gephi. + +initial view {#_initial_view} +============ + +![initial view when opening a graph](/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view.png) + +This is how the network appears in Gephi. Not very useful! Let's examine +what we have here. + +basic view of Gephi's interface {#_basic_view_of_gephi_8217_s_interface} +=============================== + +![the 3 main screens in +Gephi](https://docs.google.com/drawings/d/1MVPuD8fYe8bEJJJ67heQjrMidA7vyizGc37p4y5LRH8/pub?w=960) + +Gephi has 3 main screens: + +1. Overview: where we can explore the graph visually + +2. Data Laboratory: provides an \"Excel\" table view of the data in + network + +3. Preview: where we polish the visualization before exporting it as a + pictue or pdf + +What we see here is the Overview. + +![Filters and statistics panels in +Gephi](https://docs.google.com/drawings/d/1XwpvulXoyiK3nBbxFiCFisH6_pg9P9us9LnZJvzlDz4/pub?w=960) + +In the Overview, the graph is shown at the center. Around it, several +panels help us fine tune the visualization. + +1. \"Filters\", where we can hide different parts of the network under + a variety of conditions + +2. \"Statistics\", where we can compute metrics on the network + +![Appearance and layout panels in +Gephi](https://docs.google.com/drawings/d/1J4wCFaXwIaRmiiG7t69s8HmhA0hnR0Sp0hwgOFquFdw/pub?w=1439&h=787) + +1. \"Appearance\", where we can change colors and sizes in interesting + ways + +2. \"Layouts\", where we can apply automated procedures to change the + position of the network + +![3 groups of +icons](https://docs.google.com/drawings/d/1IkRBs4doz5fZWovao-yJFBR9hg7RO_BtGJwhUF9yoJk/pub?w=1435&h=774) + +1. A series of icons to add / colorize nodes and links manually, by + clicking on them + +2. Options and sliders to change the size of all nodes, links, or + labels + +3. More options become visible if we click on this **little arrow head + pointing up** + +showing labels of the nodes {#_showing_labels_of_the_nodes} +=========================== + +![showing node +labels](https://docs.google.com/drawings/d/1o-J7Uce1okDdIN_IgvZaH4MdGjn74_ChTlXo-nxS-w4/pub?w=960&h=720) + +layout (\"spatialize\") the network {#_layout_spatialize_the_network} +=================================== + +![selecting the force atlas 2 +layout](https://docs.google.com/drawings/d/1fD_AdsP3SqV5CENMDmMpt6ZLYOAgLsDDYxv2fJr7R6E/pub?w=960&h=720) + +![changing a few parameters and launching the +layout](https://docs.google.com/drawings/d/1TnbclWXKFJiYUOJTHAl2Fyh5j3KgxV5TyLGyN1Gnn7k/pub?w=960&h=720) + +![result of Force Atlas 2 +layout](https://docs.google.com/drawings/d/1RkRn4Q8Ln-C1qJCiuBp2FN51GavaaLlm17QnVOO_av4/pub?w=960&h=720) + +visualize the properties of the nodes {#_visualize_the_properties_of_the_nodes} +===================================== + +A network consists in entities and their relations. This is what we just +visualized. Yet, the properties of these entities remain invisible. + +For instance: the characters in the novel \"Les Misérables\" are male or +female. Are males more likely to be connected to males, or females? Just +looking at the network in Gephi, we can't tell. + +Now, we will see how to make this property (\"Gender\") visible. + +![Switching the view to the data +laboratory](https://docs.google.com/drawings/d/1mDTOUanUkOa0ND8wn3tuwM54pqYXN6RApWkZTxSpEiI/pub?w=954&h=524) + +![We see there is a Gender attribute for each +character.](https://docs.google.com/drawings/d/1wIubWP6KX6oaz3pd7SQYziWR_2hK2KIhH0gAFwn3rEk/pub?w=758&h=431) + +We will color the nodes based on their gender. To do that, we select +`Gender` in the `Appearance` panel: + +![Coloring nodes according to their gender](https://docs.google.com/drawings/d/1VdIaYCfuMAF5Tk3EaCak-Z0M9GsIuPpjxc6RWi0FELs/pub?w=758&h=431) + +The result: + +![After coloring characters according to their gender](/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/appearance-miserables-result.png) + +prettify the network for enhanced readability {#_prettify_the_network_for_enhanced_readability} +============================================= + +There are a number of issues with the result we get: + +1. the network is too big or too small, it is hard to read + +2. the labels of the characters overlap + +3. the size of the labels might be too big / small + +4. the links are sometimes too large + +Let's fix these issues. + +1. Enlarge or shrink the network {#_1_enlarge_or_shrink_the_network} +-------------------------------- + +- either we use the \"scaling\" parameter of the layout, as we have + seen [here](#force-atlas-2-parameters). + +- or the scale is fine, it is just that we need to zoom it or out. Use + the scrolling wheel of your mouse, and right click to move the + network. + +2. Prevent the Labels from overlapping {#_2_prevent_the_labels_from_overlapping} +-------------------------------------- + +In the layout panel, choose \"Label Adjust\" or \"Noverlap\": these +layouts will move the nodes just so that the Labels stop overlapping: + +![Noverlap or Label Adjust will help you](/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/choosing-a-label-adjust-algo-en.png) + +Don't forget to click on \"Run\" to apply these layouts. + +3. Changing the size of the labels {#_3_changing_the_size_of_the_labels} +---------------------------------- + +Open the bottom panel of Gephi by clicking on tiny arrow head (1). Then +select \"nodes\" (2), then move the slider (3). + +![Adjusting label size](https://docs.google.com/drawings/d/13dOYkyzY4dKMIDrSj59NFF5GftZD55eRC26HZ8jn2RM/pub?w=758&h=431) + +1. Adjusting the thickness of the links {#_4_adjusting_the_thickness_of_the_links} +--------------------------------------- + +![Adjusting edge thickness](https://docs.google.com/drawings/d/13Sdd6ss52TgXoG1i4CkaGw3aHap-WWDvpJjosQJSyls/pub?w=758&h=431) + +computing the centrality of the nodes {#_computing_the_centrality_of_the_nodes} +===================================== + +1. Definitions of centrality {#_1_definitions_of_centrality} +---------------------------- + +\"Centrality\" is a very good metrics to first get an idea of a network. +What does centrality mean? Intuitively, we understand that a \"central\" +node will probably sit in the middle of the network. But how to measure +that \"scientifically\", so that we have an objective confirmation of +our visual impression? + +There are several ways, all equally interesting. + +We can measure `degree centrality`. \"Degree\" is the technical term for +\"number of connections that a node has\". + +So, `degree centrality` just means that the most central node is the +node which has the most connections. Simple! + +Another measure is `betweenness centrality`. This one is more tricky. + +- First, you have to imagine what is a `shortest path`. + +- A `path` from node A to node B is a chain of nodes, the road if you + will, that you have to traverse to go from A to B. + +- The `shortest path` from A to B is the quickest road from A to B: + the path that has the smallest number of nodes between A and B. + +- A node which is on many shortest paths is \"between\" many nodes. + And when you realize it, it is a very intuitive sense of what it + means to \"be central\". These nodes have a high + `betweenness centrality`. + +2. Computing betweenness centrality with Gephi {#_2_computing_betweenness_centrality_with_gephi} +---------------------------------------------- + +Gephi computes it for you. Find \"Network diameter\" in the statistics +panel and click \"run\": + +![Computing betweenness centrality](https://docs.google.com/drawings/d/1T66-VP25_nvxCvmnpQWUraCYT3Vxi0oW3f-TBZDtYPM/pub?w=758&h=415) + +This will open a window with parameters (explained in a more advanced +tutorials). Click \"OK\": + +![Parameters for the computation of betweenness centrality](https://docs.google.com/drawings/d/1OmI-MugkNhDR67BR0ns5injN1FoVhm1IjXXzI5Qv4NQ/pub?w=411&h=232) + +A report window opens (also explained in a other tutorials). Close it. + +![Report after the computation of betweenness centrality](https://docs.google.com/drawings/d/1_eS17piFaVKG4cXL1TAxIh4sSL5ubg7_-6AziUrjJl8/pub?w=300) + +Now we can visualize this information. + +visualize attributes created by Gephi {#_visualize_attributes_created_by_gephi} +===================================== + +Gephi has computed for us the betweenness centrality of all nodes. This +remains invisible on the network, however. + +It would be interesting to, say, resize the nodes according to their +centrality: the more central a node, the bigger. This would allow for a +very quick visual appreciation of which nodes are the most central. + +First, let's switch to the data laboratory to see how Gephi stored the +\"betweenness centrality\" of each node: + +![Switching the view to the data laboratory](https://docs.google.com/drawings/d/1mDTOUanUkOa0ND8wn3tuwM54pqYXN6RApWkZTxSpEiI/pub?w=954&h=524) + +When we ran \"Network Diameter\" in the statistics panel, Gephi has +actually computed many kinds of centralities (not just \"betweenness +centrality\"): + +![Different centrality measures visible in the data laboratory](https://docs.google.com/drawings/d/1anoYqTntqA4ZYuS035GQQEDwPwbIr_kk1oQ6wRVfkPM/pub?w=954&h=525) + +To resize the nodes according to the value of their betweenness +centrality, we use the `Appearance` panel: + +> **Caution** +> +> make sure you select the correct options + +![Ranking node sizes by centrality](https://docs.google.com/drawings/d/13XItrvTkrJSQ6MzQTLe7ZugrpxfBJMBi0qzsVbH_JeQ/pub?w=954&h=525) + +![Selecting the minimum and maximum sizes of nodes](https://docs.google.com/drawings/d/1EeA-5wfTuHKc8jQL49afXZb-LQl1Rtss49mE11U8Ako/pub?w=954&h=525) + +![Result of the ranking](/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/ranking-centrality-miserables-3--en.png) + +![Resizing labels to reflect their node\'s size](https://docs.google.com/drawings/d/1G9s36WY2PDpYpUxl0qYgA_ccqLpAoOd6kap8X8QSKog/pub?w=954&h=525) + +![Result of the label resizing](/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/result-label-resizing-en.png) + +exporting a network as a picture {#_exporting_a_network_as_a_picture} +================================ + +1. exporting a screenshot from the Overview (a png image) {#_1_exporting_a_screenshot_from_the_overview_a_png_image} +--------------------------------------------------------- + +![Open the configuration panel for screenshots](https://docs.google.com/drawings/d/13nw3KJL1vHc2zhFr3A5WB3za6GFrzpxQ8kZjujNLIqM/pub?w=954&h=525) + +Select the maximum value for anti-aliasing, and multiply values for +width and height for higher resolution. For example, resolution x 3 is +width = 3072 and height = 2304 + +![The configuration panel for screenshots](/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/configuration-screenshot-en.png) + +2. exporting a pdf or svg picture {#_2_exporting_a_pdf_or_svg_picture} +--------------------------------- + +Let's switch to the preview panel: + +![Switching to the preview panel](https://docs.google.com/drawings/d/1j0dbw5wwOccDoUEFk8XBsCaKi6Ms9bZlqqOM1MgdDog/pub?w=954&h=525) + +The preview panel is dedicated to the preparation of the picture to be +exported as a pdf or svg, which are \"scalable\": in pdf or sv, the +resolution of the graph will remain perfect, even with a strong zoom. +But as you see, it means the network is now looking different than in +the Overview. + +> **Caution** +> +> contrary to the Overview panel, here you need to hit the \"refresh\" +> button after each parameter change. + +![Updating the parameters](https://docs.google.com/drawings/d/1gfeX6T1YzVEPFKgrxRmcL47EbeFnnGTmiBRw35V6VCM/pub?w=954&h=525) + +Here I change just 2 parameters: `Show Labels` and `Font` (which I +reduce to size \"5\"), to get: + +![Result of preview](https://docs.google.com/drawings/d/1Kz34ITT6BecVkgy7S50JO2nX-hywCWnC_kMpJ21TkXo/pub?w=954&h=525) + +Export: just click on the button and select the file format you prefer + +![Export button](https://docs.google.com/drawings/d/1ATho4fb-YqCAPHw4sLa65le7C0kOtNWk7YOYdjd98RA/pub?w=954&h=525) + +3. download the result file {#_3_download_the_result_file} +--------------------------- + +[download this zip file](../resources/miserables_result.zip) if you need +to see the network in its final form. + +export a network as a web visualization {#_export_a_network_as_a_web_visualization} +======================================= + +You can easily create a web-based version of your network. It can be +made public or private. If you choose to make it public, it will be easy +to share - simply send the url. + +The web version makes use of [VOSviewer +online](https://github.com/neesjanvaneck/VOSviewer-Online), which works +best for networks up to \~ 500 nodes (if your networks has more nodes, +it can be hard to read on screen). + +To proceed, simply: + +1. export your graph from Gephi as a .gexf file {#_1_export_your_graph_from_gephi_as_a_gexf_file} +----------------------------------------------- + +> **Warning** +> +> make sure you export a **gexf** file, not a **GEPHI** file! + +In Gephi, do: **File → Export → Graph file...** See an illustration +below: + +![Export gexf file 1](https://docs.google.com/drawings/d/e/2PACX-1vT1Ku1bUqL3EHEn1byCIU1OWGBlbR3ygIdVsJx6lfJ2kGjkuOtao78Wzg7z-NKqgCTVm02kQM0ep1kz/pub?w=617&h=356) + +![Export gexf file 2](https://docs.google.com/drawings/d/e/2PACX-1vS_qt5cta9d7B84CBojpv_F8m-g-l5BMXTuCB5g4daQ6AV87prgSfGAhmPE7oPtkcn0GSSobIRD_GF1/pub?w=566&h=348) + +2. visit nocodefunctions and convert the gexf file to a web visualization {#_2_visit_nocodefunctions_and_convert_the_gexf_file_to_a_web_visualization} +------------------------------------------------------------------------- + +[Nocode functions](https://nocodefunctions.com/) is a web application +that I developed. It provides useful tools to work with networks and +text. It is free, does not need a registration, and is respectful of +your data. + +- Go to [this page on + nocodefunction](https://nocodefunctions.com/networkconverter/network_format_converter.html). + +- Choose option 1 (\"convert a Gephi gexf file to VOSviewer json + format\") + +- If you want to share your visualization, check the box to make it + public + +- Click on \"Convert to VOSviewer json file\" + +You will be directed to a new webpage like the one below: + +![An illustration of the web view of a gexf file](/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/vosviewer_result.png) + +3. public or private web visualization? How to manage {#_3_public_or_private_web_visualization_how_to_manage} +----------------------------------------------------- + +If you have chosen \"public\" at the previous step you can now bookmark +the web page of your network, share it, etc. Otherwise, **the +visualization will be deleted after an hour**. This is to keep the +promise that your data is secure: if you want it private, we simply +don't keep it on the servers. + +What if you want to keep your visualization private, but don't want to +redo all the steps after each hour? + +- in the VOSviewer visualization, save your network as a json file by + clicking on the \"save\" icon: + +![Saving the network to a json file from the VOSviewer online interface](https://docs.google.com/drawings/d/e/2PACX-1vTLGLExFtxC4dVKqPopQZnKJ5UkyZ90LSaVMjoIrOtd-THcxqePRG5vcG_FKxfBrVAnh1GsnoT7nS3F/pub?w=566&h=348) + +Then, you can re-open this file in the web interface whenever you want: + +- Visit [this page by nocode + functions](https://nocodefunctions.com/html/vosviewer/index.html) or + [the official page by VOSviewer online](https://app.vosviewer.com), + and open your network in it: + +![Opening a network in the VOSviewer online interface](https://docs.google.com/drawings/d/e/2PACX-1vT52zSJRDW4hWN150kcMbMJ0HFiXE-tPHvZ0wQ__0bItpYyQUINTLujxXpctv1jpCHMt_stimVB7kHq/pub?w=566&h=348) + +4. More options to share your visualization with VOSviewer online {#_4_more_options_to_share_your_visualization_with_vosviewer_online} +----------------------------------------------------------------- + +[This web page](https://app.vosviewer.com/docs/sharing/linking/) offers +a full view on the other ways you can share a network visualization with +VOSviewer online. + +the end {#_the_end} +======= + +Visit [the Gephi group on +Facebook](https://www.facebook.com/groups/gephi) to get help, + +or visit [the website for more +tutorials](https://seinecle.github.io/gephi-tutorials) + +questions and exercises {#_questions_and_exercises} +======================= + +1. Open the file `miserables.gexf` with a text editor (here is how to + do it on a + [Mac](http://www.dummies.com/computers/macs/how-to-open-and-edit-a-text-file-on-a-mac/), + and on + [Windows](https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/app_notepad.mspx?mfr=true)). + See how the nodes and the links are written in the file. Can you + find the character Javert? + + + +1. Our network of Les Miserables characters was undirected. Can you + think of networks which are directed? + +Imagine how undirected and directed networks differ when computing +centrality, for example. + +1. Force Atlas 2 is a layout which brings together connected nodes, and + spreads out unconnected nodes. We might have nodes with no relation + at all with other nodes (called \"isolated nodes\"). + +How will these isolated nodes move on screen? + +1. When applying the Force Atlas 2 layout, the network moves quickly, + then stabilizes, and then keeps moving a bit. + +Can you guess why this is happening? + +1. In the list of layouts, Force Atlas 2 is just one of many options + you can choose. Try \"Fruchterman Reingold\" and \"Yfan Hu\". + +These are layouts which follow the same logic as Force Atlas 2, but with +slight variations. Explore how these algorithms result in similar, yet +specific layouts. + +1. In this tutorial, we defined degree centrality. Can you imagine a + situation when a node with the largest degree centrality will + actually be in the periphery of the network? You can draw a toy + network to help you figure. + +[^1]: D. E. Knuth, The Stanford GraphBase: A Platform for Combinatorial + Computing, Addison-Wesley, Reading, MA (1993) diff --git a/docs/05_Community_Tutorials/01_To_begin_with_gephi/what-is-gephi-en.md b/docs/05_Community_Tutorials/01_To_begin_with_gephi/what-is-gephi-en.md new file mode 100644 index 0000000..d7faa9c --- /dev/null +++ b/docs/05_Community_Tutorials/01_To_begin_with_gephi/what-is-gephi-en.md @@ -0,0 +1,88 @@ +--- +id: what-is-gephi +title: What is Gephi +last_update: + author: Clément Levallois +sidebar_position: 1 +description: What is gephi ? +--- +the leading desktop software to visualize networks on Linux, Windows and Apple computers {#_the_leading_desktop_software_to_visualize_networks_on_linux_windows_and_apple_computers} +======================================================================================== + +- more than 2 million downloads, + +- used by analysts, academics, journalists, + +- stable on Windows, Mac and Linux, + +- in continuous development + +open source & free (including for commercial purposes) {#_open_source_amp_free_including_for_commercial_purposes} +====================================================== + +Gephi adopts a licencing model which makes it free to use, sell, or +include the source code of Gephi in larger applications. + +Developers who modify the Gephi code base are required to make these +changes public, to benefit the community. + +\"Photoshop^TM^ for graphs\" {#_photoshop_superscript_tm_superscript_for_graphs} +============================ + +- for networks of all types (social, semantic, biological, etc.) + +- attributes and properties of the network are made visible: not just + the [topology](http://www.webopedia.com/quick_ref/topologies.asp) of + the network. + +- Gephi provides functions to explore the network: pan, filter, zoom, + colorize, label, etc. + +- measures and metrics can be computed, and then rendered visually. + +committed to quality and performance {#_committed_to_quality_and_performance} +==================================== + +- Gephi won a [Duke Award in + 2010](http://www.oracle.com/technetwork/articles/java/dukeschoicewinners-171159.html). + Duke awards \"recognize and honor extreme innovation in the world of + Java technology\". + +- Gephi evolved importantly since 2006 to adopt new, best performing + techs for the visualization of very large graphs on the desktop + +- The code base of Gephi is maintained with the best standards to + insure a [a stable application, ease of maintainance and modularity + / extensibility](https://gephi.wordpress.com/tag/code/). + +modular and extensible {#_modular_and_extensible} +====================== + +- Gephi is \"cut\" in a large number of modules, each providing a + specific function. This makes it easier to maintain and evolve the + software, by working on independent parts. + +- Since version 0.9 the [\"graph + store\"](https://gephi.wordpress.com/2015/12/04/gephi-boosts-its-performance-with-new-graphstore-core/) + of Gephi has become a completely independent module: it can be + reused by another software. + +- Anybody can create new modules for Gephi! [They are called + \"plugins\"](https://gephi.org/plugins/#/). They integrate with + Gephi seamlessly. + +created, maintained and documented by volunteers, for the community. {#_created_maintained_and_documented_by_volunteers_for_the_community} +==================================================================== + +- Gephi itself is open source and free + +- The [Gephi Consortium](https://consortium.gephi.org) was created to + ensure Gephi will remain so + +- The [original contributors and their + followers](https://github.com/gephi/gephi/graphs/contributors) are + volunteers + +- The support to users through [forums](http://forum-gephi.org), + [discussion groups](https://www.facebook.com/groups/gephi) and + [documents](https://gephi.org/users/) is provided for free. diff --git a/docs/05_Community_Tutorials/02_Key_use_cases/_category_.json b/docs/05_Community_Tutorials/02_Key_use_cases/_category_.json new file mode 100644 index 0000000..8f58292 --- /dev/null +++ b/docs/05_Community_Tutorials/02_Key_use_cases/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Key use cases", + "position": 2 +} diff --git a/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en.md b/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en.md new file mode 100644 index 0000000..e32f069 --- /dev/null +++ b/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en.md @@ -0,0 +1,205 @@ +--- +id: importing-csv-data-in-gephi-en +title: Importing csv data in Gephi +last_update: + author: Clément Levallois +sidebar_position: 1 +description: Importing csv data in Gephi +tags: + - CSV + - Import +--- + +Importing an existing network file {#_importing_an_existing_network_file} +================================== + +Gephi handles the import of network files in a variety of formats: + +![file formats supported by Gephi. Source: gephi.org](/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/network-formats-gephi-import-en.png) + +To import any of these files, just choose the `File -> Open` menu + +Importing nodes with labels and their relations: simplest version {#_importing_nodes_with_labels_and_their_relations_simplest_version} +================================================================= + +(looking for the complete, full featured csv import version? [skip to here](#full-csv-version).) + +The easiest is probably to just have a text file like this one: + + Source,Target + Jeremy,Jennifer + Valerian,Jeremy + +- This line is mandatory. Don't put a space between the comma and + \"Target\" + +Just write this in a text editor and save it as a file `example.txt` + +To import this file in Gephi, go to `File->Import Spreadsheet`. Then in +the window: + +![Importing nodes with labels and their relations](https://docs.google.com/drawings/d/10G-ww5yaxlUme5h1wAcfK9AdqY8dNnurfFYZotljhPs/pub?w=644&h=520) + +In this window, make sure the box \"Create missing nodes\" is checked: + +![Second screen](https://docs.google.com/drawings/d/1CnsxD6sjfXokhHxaZR6P_jJ2mNEtKBiTh_iB4EA3sjE/pub?w=644&h=520) + +Let's look again at the simple text file we used: + + Source,Target + Jeremy,Jennifer + Valerian,Jeremy + +There are 2 issues and several missing features, listed below: + +1. labels containing commas in them will not work. {#_1_labels_containing_commas_in_them_will_not_work} +-------------------------------------------------- + +Imagine our characters have first names and last names separated by a +comma: + +Dubois, Jeremy + +Rodriguez, Valerian + +This will look like: + + Source,Target + Dubois, Jeremy,Jeremy,Jennifer + Rodriguez, Valerian,Dubois, Jeremy + +Note that we have 3 commas per line, instead of one! In this mess, Gephi +will not detect where the node labels start and end. The import will +break. + +The proper solution is to put node labels inside **double quotes**: + + Source,Target + "Dubois, Jeremy","Jeremy,Jennifer" + "Rodriguez, Valerian","Dubois, Jeremy" + +Be careful to use these straight \" \" double quotes, not the curvy +ones: " " which French keyboards sometimes have. + +2. labels containing double quotes \" \" in them will not work. {#_2_labels_containing_double_quotes_in_them_will_not_work} +--------------------------------------------------------------- + +Example: let's imagine that one of our characters has a middle name: +Jeremy \"Danger\" Dubois. Our text file will look like: + + Source,Target + "Dubois, Jeremy "Danger"","Jeremy,Jennifer" + "Rodriguez, Valerian","Dubois, Jeremy "Danger"" + +These extra \" \" will make the Gephi import break: + +![The import bugs - the middle name has disappeared](/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/import-spreadsheet-4-en.png) + +The solution consists in **adding an extra double quote in front of the +double quotes**. Our text file will look like: + + Source,Target + "Dubois, Jeremy ""Danger""","Jeremy,Jennifer" + "Rodriguez, Valerian","Dubois, Jeremy ""Danger""" + +This time, Gephi imports the network correctly: + +![Importing node labels containing double quotes](/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/import-spreadsheet-3-en.png) + +Importing more than labels: nodes and edges attributes {#_importing_more_than_labels_nodes_and_edges_attributes} +====================================================== + +To import attributes we will need to proceed differently. + +We need 2 text files: one for the list of nodes, one for the list of +relations (edges) + +An example file with a list of nodes: + + Id,Label,Date of Birth,Place of Birth,Years of experience,Rating + 3,"Dubois, Jeremy ""Danger""",17/09/1980,"Paris",8,9.27 + 1,"Jeremy,Jennifer",25/03/1978,"Tampa",8,4.34 + 45,"Rodriguez, Valerian",30/04/1985,"Berlin",5,6.66 + +- Nodes **must** have at least an Id and a Label. Don't put spaces + after the commas + +An example file with a list of edges: + + Source,Target,Weight,Type,Where first met + 1,45,3,"undirected",London + +- Edges **must** have at least a Source and Target. Other fields are + optional. + +- \"undirected\", the alternative is \"directed\". Directed edges have + arrow heads. + +Let's import the list of nodes first. `File -> Import Spreadsheet` + +![Importing a list of nodes with attributes](https://docs.google.com/drawings/d/15GXuO-ucoucMw4OvyckAHrg5UDThMO0hkFB924yFtm0/pub?w=951&h=537) + +in the next screen, we must be careful with a couple of things: + +![The attributes of the nodes](https://docs.google.com/drawings/d/1K2WPeei2RYxIB8neTeXB9xWTqY8egvkVh80nj4FEIWg/pub?w=653&h=531) + +Then we can import the file with the list of relations. +`File -> Import Spreadsheet` + +![Importing a list of edges with attributes](https://docs.google.com/drawings/d/1KSE9pCnJ61Wvqf7moB_VLUMOTQVOTqRqwUjOHac7_SE/pub?w=595&h=375) + +![The attributes of the +edges](https://docs.google.com/drawings/d/1PTWwhnWkb-blXN-Yx-wQuYoohqTZejNPnADNdfcG-_k/pub?w=506&h=356) + +Memo card {#_memo_card} +========= + +Nodes + +- header must be at least `Id,Label` + +Edges + +- header must be at least `Source,Target` + +- To have an attribute for the \"thickness\" or \"strength\" of a + relation, this attribute must be called \"Weight\". + +- Want arrows on your links? Add an attribute \"Type\", with value + \"Directed\" + +- Don't wan't arrows? Add an attribute \"Type\", with value + \"Undirected\" + +Types of attributes: which to choose? + +![Kinds of attributes](/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/import-spreadsheet-9-en.png) + +- Textual attribute: `String`. Nodes sharing the same textual value + can be colored the same, or filtered together... + +- Numerical attribute: `Integer`, `Double` or `Float`. Nodes can be + resized according to their value, or colorized in a gradient. + Filters can be applied based on the range of values. + +- Boolean attribute: just a `true` or `false` value. Useful for + filtering out some nodes which are true or false on some parameter. + +- Other types of attributes: not needed for the moment. + +(to be continued) {#_to_be_continued} +================= + +More tutorials on importing data to Gephi {#_more_tutorials_on_importing_data_to_gephi} +========================================= + +- [The Gephi wiki on importing csv](https://github.com/gephi/gephi/wiki/Import-CSV-Data) + +- [Video \"How to import a CSV into Gephi\" by Jen Golbeck](https://www.youtube.com/watch?v=3Im7vNRA2ns) + +the end {#_the_end} +======= + +Visit [the Gephi group on Facebook](https://www.facebook.com/groups/gephi) to get help, + +or visit [the website for more tutorials](https://seinecle.github.io/gephi-tutorials) diff --git a/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en.md b/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en.md new file mode 100644 index 0000000..a1bb7eb --- /dev/null +++ b/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en.md @@ -0,0 +1,386 @@ +--- +id: using-filters +title: Using Filter +last_update: + author: Clément Levallois +sidebar_position: 2 +description: Using Filter +tags: + - Filter +--- + +download a network file for practice {#_download_a_network_file_for_practice} +==================================== + +[download this zip file](https://seinecle.github.io/gephi-tutorials/resources/miserables.zip) and unzip it on +your computer. + +or use this direct link: [Here](https://tinyurl.com/gephi-tuto-3) + +You should find the file `miserables.gexf` in it. Save it in a folder +you will remember (or create a folder specially for this small project). + +This file contains a network representing \"who appears next to whom\" +in the 19th century novel *Les Misérables* by Victor Hugo[^1]. + +A link between characters A and B means they appeared on the same page +or paragraph in the novel. + +The file name ends with \".gexf\", which just means this is a text file +where the network information is stored (name of the characters, their +relations, etc.), following some conventions. + +open the network in Gephi {#_open_the_network_in_gephi} +========================= + +- open Gephi. On the Welcome screen that appears, click on + `Open Graph File` + +- find `miserables.gexf` on your computer and open it + +![welcome screen](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/gephi-welcome-screen-open-graph-en.png) + +A report window will open, giving you basic info on the network you +opened: + +![report window](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/opening-file-report-en.png) + +This tells you that the network comprises 74 characters, connected by +248 links. + +Links are undirected, meaning that if A is connected to B, then it is +the same as B connected to A. + +The report also tells us the graph is not dynamic: it means there is no +evolution or chronology, it won't \"move in time\". + +Click on `OK` to see the graph in Gephi. + +![The network we will use](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/result_miserables.png) + +getting a sense of the attributes in the data laboratory {#_getting_a_sense_of_the_attributes_in_the_data_laboratory} +======================================================== + +We can switch to the data laboratory to see the underlying data: + +![Switching to the data laboratory](https://docs.google.com/drawings/d/15SISc0_m4w99GUxZcbrln1183dRqBYNK0EpG2OOBbVU/pub?w=954&h=524) + +We see that the nodes of the network have many attributes. In +particular, each have a Gender and a measure of how central they are: + +![Nodes attributes.](https://docs.google.com/drawings/d/1O0NSM6ijhib5pKxCHKmSjffp3m7FuYaChLSCm35xChU/pub?w=954&h=525) + +This is the list of edges (relations) in the network. Notice that they +have a \"weight\" (a \"strength\"). + +![align=\"center\"](https://docs.google.com/drawings/d/1y1SfMHZ3_4lOlI2t6WBC170T9HpVLXb_UYVLnVr_BWY/pub?w=954&h=524) + +discovering the filter panel {#_discovering_the_filter_panel} +============================ + +In the overview, make sure the Filter panel is displayed: + +![Making the Filter panel visible.](https://docs.google.com/drawings/d/1wyvNAmiHtyB1oegpKHAGvL8ZERChASzU-mWSQBWCeKE/pub?w=954&h=524) + +How the Filter panel works: + +![Workflow of filters](https://docs.google.com/drawings/d/1paf2P-xNCcTlW5CMN8FicrRcoF3sTKHCLrFbksVhCC4/pub?w=749&h=790) + +An example: hiding edges with weight lower than 2 + +![How to use filters.](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-edge-weight-en.gif) + +When you are finished using a filter in the zone, right click on it and +select \"remove\". + +combining 2 filters {#_combining_2_filters} +=================== + +One filter is applied AFTER this other: + +**The first filter to be applied is NESTED (placed inside) the second +one as a \"subfilter\"** + +Which filter should be placed inside which? Let's look at different +examples: + +1. Case when the placement of filters makes no difference {#_1_case_when_the_placement_of_filters_makes_no_difference} +--------------------------------------------------------- + +Goal: Keeping on screen only the female characters which have a tie (an +edge, a relation) of at least strength 2. + +→ place the filter \"edge weight\" inside the filter \"Gender\": + +![Filter on the Gender attribute](https://docs.google.com/drawings/d/1TixDBp9-RQTYHioDEV4gbo0BN6cWWzKt8fkXl9So3Ds/pub?w=886&h=462) + +![Filter on edge weight](https://docs.google.com/drawings/d/1EtqSByLSNOrGCW3nvlrTW7Oci8IBYQP2koZB1v4XTu0/pub?w=1015&h=695) + +![Keeping only female characters with at least 2 ties](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-edge-weight-gender-partition-en.gif) + +In this case, it was equivalent to: + +- nest the \"Gender\" filter inside the \"Edge weight\" filter + +or + +- nest the \"Edge weight\" filter inside the \"Gender\" Filter + +→ The result was the same (the network on screen is identical in both +cases) + +2. Case when the placement of filters makes a difference {#_2_case_when_the_placement_of_filters_makes_a_difference} +-------------------------------------------------------- + +Here, we want to visualize: + +- only the nodes which have **less than** 10 relations \<1\> + +- and among these, only those which form the \"main island\" of the + network (we want to hide small detached groups of nodes) \<2\> + + - in technical terms, nodes with a `degree` of less than 10. + + - in technical terms, we are looking for the `giant component` + +![Filter on degree](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-degree-range-1-en.png) + +![Filter on giant component](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-giant-component-1-en.png) + +We will see that the placement on the filters in the zone will make a +difference. + +First, let us place the filter on giant component **inside** the filter +on degree: + +![Filters in one configuration](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-order-1-en.png) + +In this first case, + +- only the giant component of the network was made visible. + +→ Since the network was just one big connected \"island\" to start with, +it did not change a thing. + +- then, all characters with more than 10 relations where hidden + +→ this hides nodes which were connecting with many others, so that we +end up with many groups, disconnected from each others. + +Now instead, placing the filter degree **inside** the filter on giant +component: + +![Same filters in another configuration](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-order-2-en.png) + +In this second case, + +- starting from the complete network, all characters with more than 10 + relations where deleted. + +→ this created a network made of many disconnected groups of nodes + +- then the giant component filter is applied, + +→ which had for effect to hide small groups, to keep in view only the +biggest group of connected nodes. + +> **Warning** +> +> In summary: be careful how you apply several filters at once, this +> might have an effect on the logic of filtering. + +filter operators {#_filter_operators} +================ + +1. The MASK operator {#_1_the_mask_operator} +-------------------- + +Imagine you are interested in the female characters of the novel \"Les +Miserables\". + +- you are interested in female characters and the relations among them + +- you are interested in the relations between female characters and + male characters + +- you are **not** interested in the relations between male characters + +How to display this? + +The MASK operator applied on the gender partition filter enables you to: + +- show all characters + +- relations between female characters + +- *and relations between male and female characters* + +- *but masking male-male relations* + +![Using the MASK operator](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/operator-mask-1-en.png) + +It is also possible to hide / show only some of the directed relations +between the visible graph and the filtered out graph: + +![Parameters of the MASK operator](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/operator-mask-2-en.png) + +2. The UNION operator {#_2_the_union_operator} +--------------------- + +Imagine you are interested in the characters with names starting with +\"L\" or \"J\" in \"Les Miserables\". + +How to display only these characters? + +We will need to apply filters on the `Label` of the nodes, which +contains the names of the characters. + +However, looking at the \"catalogue\" of filters, we see no filter on +`Label`. The reason is that `Label` is an internal property of nodes, +inaccessible to filters. + +So we must first copy the Labels of the nodes in a new attribute, which +we will be able to apply a filter on. + +Let's switch to the data laboratory and add this attribute: + +![Adding a column for Names](https://docs.google.com/drawings/d/1j3B2ahLGqEYBGDqDyBcVOj8-Xp1oJGER8AnIudCvuZM/pub?w=1136&h=646) + +![Copying to this new column](https://docs.google.com/drawings/d/1zYQs7U_Vlf8KfZcI4Btr0fo1JgQcrLjrkx5a8Jt_eV4/pub?w=1136&h=646) + +We now have an attribute called \"Name\" that we can find in the +Filters: + +![New filter available](https://docs.google.com/drawings/d/17zSqYMEEe5K34mWssyWpPRbRffX42U5eHjY5vvtfMuc/pub?w=1031&h=627) + +This is how the filter on Name and its parameters look like in the zone: + +![Name Filter](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-name-1-en.png) + +To recall, we want to show only the characters which name start with +\"L\" or \"J\". Let's start with the \"L\" characters. + +We need to find the names which match the pattern **`Start with an L`**. +The way to describe a pattern in text is called a \"regular +expression\". + +Said differently, *a regular expressions (also called \"regex\") is a +convenient way to express a pattern we search for in a text*. + +Regular expressions can become very sophisticated. But here, we need +just a simple one: + +``` {.regex} +L.* +``` + +Let's examine what the L, the dot and the star mean. + +- the letter \"L\" means we want names starting with this first letter + +- . the dot means: any character + +- \* the star means: the previous character, repeated any time. + +So: \"select nodes which have a name starting with L, followed by any +character, in any number\" + +Please note that you need to check the box \"regex\": + +![Using a regular expression in a filter](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-name-2-en.png) + +When the filter is applied, only the characters wit a name starting with +L will be displayed: + +![Using a regular expression in a filter](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-name-3-en.png) + +How to filter characters with a name starting with the letter \"L\" or +\"J\"? + +We could rely on a more complex regular expression to do this: + +``` {.regex} +[LJ].* +``` + +Meaning: \"select nodes which have a name starting with L or J, followed +by any characters\" + +But we can also rely on 2 filters: one for L, one for J. Nesting one +inside another would not work, it would mean: + +\"show nodes which start with an L, and among them, only those which +start with a J\" + +→ no node can meet this condition, so they would all be invisible. + +Instead, we should use the **`UNION`** operator that can be found here: + +![The UNION operator in filters](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-union-1-en.png) + +Drag it to the zone, and then drag inside it twice the +`Attributes -> Equal -> Name` filter: + +![The UNION operator and 2 subfilters](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-union-2-en.png) + +In the settings of the first Name filter, put the regular expression: + +``` {.regex} +L.* +``` + +In the second Name filter, put: + +``` {.regex} +J.* +``` + +(make sure the \"regex\" box is checked in both cases) + +As a result, the nodes selected by both filters are added up in the +display: + +![The UNION operator and 2 subfilters](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-union-3-en.png) + +3. The NOT operator {#_3_the_not_operator} +------------------- + +The NOT operator flips the result of a filter: what was hidden becomes +visible and vice and versa. + +Example: if we want to display all characters except for those returned +by a UNION on 2 Name filters on L and J initials: + +![The NOT nodes operator - 1](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-not-3-en.png) + +Same effect, but applying the NOT operator on single filter using a +regex on L or J: + +![The NOT nodes operator - 2](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-not-1-en.png) + +Same effect again, achieved without using the NOT operator. In regular +expressions the \^ sign inside square brackets means \"NOT\": + +``` {.regex} +[^LJ].* +``` + +![Achieving a NOT effect with regex](/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-not-2-en.png) + +Tutorials about regular expressions: + +- [https://regexone.com/](http://www.regular-expressions.info/quickstart.html) + +- [](http://www.themacroscope.org/?page_id=643) + +And a web page where you can test your regular expressions: +[](http://regexpal.com) + +more tutorials on using filters in Gephi {#_more_tutorials_on_using_filters_in_gephi} +======================================== + +- [Video on using filters by Jen Golbeck](https://www.youtube.com/watch?v=UrrWA_t1rjc) + + +[^1]: D. E. Knuth, The Stanford GraphBase: A Platform for Combinatorial + Computing, Addison-Wesley, Reading, MA (1993) diff --git a/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en.md b/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en.md new file mode 100644 index 0000000..7a1a4cb --- /dev/null +++ b/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en.md @@ -0,0 +1,494 @@ +--- +id: working-with-text-en +title: Working with Text +last_update: + author: Clément Levallois +sidebar_position: 3 +description: Working with Text +tags: + - Text +--- + +Presentation of this tutorial {#_presentation_of_this_tutorial} +============================= + +This tutorial explains how to draw \"semantic networks\" like this one: + +![a semantic network](/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/gephi-result-1-en.png) + +We call \"semantic network\" a visualization where textual items (words, +expressions) are connected to each others, like above. + +We will see in turn: + +- why are semantic networks interesting + +- how to create a semantic network + +- tips and tricks to visualize semantic networks in the best possible + way in Gephi + +Why semantic networks? {#_why_semantic_networks} +====================== + +A text, or many texts, can be hard to summarize. + +Drawing a semantic network highlights what are the most frequent terms, +how they relate to each other, and reveal the different groups or +\"clusters\" they form. + +Often, a cluster of terms characterizes a topic. Hence, converting a +text into a semantic network helps detecting topics in the text, from +micro-topics to the general themes discussed in the documents. + +Semantic networks are regular networks, where: + +- nodes are words (\"USA\") or groups of words (\"United States of + America\") + +- relations are, usually, signifying co-occurrences: two words are + connected if they appear in the same document, or in the same + paragraph, or same sentence... you decide. + +It means that if you have a textual network, you can visualize it with +Gephi just like any other network. + +Yet, not everything is the same, and this tutorial provides tips and +tricks on why textual data can be a bit different than other data. + +Choosing what a \"term\" is in a semantic network {#_choosing_what_a_term_is_in_a_semantic_network} +================================================= + +The starting point can be: a term is a single word. So in this sentence, +we would have 7 terms: + + My sister lives in the United States (7 words -> 7 terms) + +This means that each single term is a meaningful semantic unit. + +This approach is simple but not great. Look again at the sentence: + + My sister lives in the United States + +1. `My`, `in`, `the` are frequent terms which have no special + significance: they should probably be discarded + +2. `United` and `States` are meaningful separately, but here they + should probably be considered together: `United States` + +3. `lives` is the conjugated form of the verb `to live`. In a network, + it would make sense to regroup `live`, `lives` and `lived` as one + single node. + +Analysts, facing each of these issues, have imagined several solutions: + +1. Removing \"stopwords\" {#_1_removing_stopwords} +------------------------- + +To remove these little terms without informational value, the most basic +approach is to keep a list of them, and remove any word from the text +which belongs to this list. + +You can find a list of these useless terms in many languages, called +\"stopwords\", [on this website](http://www.ranks.nl/stopwords/). + +2. Considering \"n-grams\" {#_2_considering_n_grams} +-------------------------- + +So, `United States` should probably be a meaningful unit, not just +`United` and `States`. Because `United States` is composed of 2 terms, +it is called a \"bi-gram\". + +Trigrams are interesting as well obviously (eg, `chocolate ice cream`). + +People often stop there, but quadrigrams can be meaningful as well, if +less frequent: `United States of America`, +`functional magnetic resonance imaging`, `The New York Times`, etc. + +Many tools exist to extract n-grams from texts, for example [these +programs which are under a free +license](http://homepages.inf.ed.ac.uk/lzhang10/ngram.html). + +2 bis. Considering \"noun phrases\" {#_2_bis_considering_noun_phrases} +----------------------------------- + +Another approach to go beyond single word terms (`United`, `States`) +takes a different approach than n-grams. It says: + + "delete all in the text except for groups of words made of nouns and adjectives, ending by a noun" + +→ (these are called, a bit improperly, \"noun phrases\") + +Take `United States`: it is a noun (`States`) preceded by an adjective +(`United`). It will be considered as a valid term. + +This approach is interesting (implemented for example in the software +[Vosviewer](http://www.vosviewer.com)), but it has drawbacks: + +- you need to detect adjectives and nouns in your text. This is + language dependent (French put adjectives after nouns, for + instance), and the processing is slow for large corpora. + +- what about verbs, and noun phrases comprising non adjectives, such + as \"United States **of** America\"? These are not going to be + included in the network. + +3. Stemming and lemmatization {#_3_stemming_and_lemmatization} +----------------------------- + +`live`, `lives`, `lived`: in a semantic network, it is probably useless +to have 3 nodes, one for each of these 3 forms of the same root. + +- Stemming consists in chopping the end of the words, so that here, we + would have only `live`. + +- Lemmatization is the same, but in a more subtle way: it takes + grammar into account. So, \"good\" and better\" would be reduced to + \"good\" because there is the same basic semantic unit behind these + two words, even if their lettering differ completely. + +A tool performing lemmatization is [TextGrid](https://textgrid.de/en/). +It has many functions for textual analysis, and lemmatization [is explained there](https://wiki.de.dariah.eu/display/TextGrid/The+Lemmatizer+Tool). + +Should we represent all terms in a semantic network? {#_should_we_represent_all_terms_in_a_semantic_network} +==================================================== + +We have seen that some words are more interesting than others in a +corpus: + +- stopwords should be removed, + +- some varieties of words (`lived`, `lives`) could be grouped together + (`live`). + +- sequences of words (`baby phone`) can be added because they mean + more than their words taken separately (`baby`, `phone`) + +Once this is done, we have transformed the text into plenty of words to +represent. Should they all be included in the network? + +Imagine we have a word appearing just once, in a single footnote of a +text long of 2,000 pages. Should this word appear? Probably not. + +Which rule to apply to keep or leave out a word? + +1. Start with: how many words can fit in your visualization? {#_1_start_with_how_many_words_can_fit_in_your_visualization} +------------------------------------------------------------ + +A starting point can be the number of words you would like to see on a +visualization. **A ball park figure is 300 words max**: + +- it already fills in all the space of a computer screen. + +- 300 words provides enough information to allow micro-topics of a + text to be distinguished + +More words can be crammed in a visualization, but in this case the +viewer would have to take time zooming in and out, panning to explore +the visualization. The viewer transforms into an analyst, instead of a +regular reader. + +2. Representing only the most frequent terms {#_2_representing_only_the_most_frequent_terms} +-------------------------------------------- + +If \~ 300 words would fit in the visualization of the network, and the +text you start with contains 5,000 different words: which 300 words +should be selected? + +To visualize the semantic network **for a long, single text** the +straightforward approach consists in picking the 300 most frequent words +(or n-grams, see above). + +In the case of a collection of texts to visualize (several documents +instead of one), two possibilities: + +1. Either you also take the most frequent terms across these documents, + like before + +2. Or you can apply a more subtle rule called \"tf-idf\", detailed + below. + +The idea with tf-idf is that terms which appear in all documents are not +interesting, because they are so ubiquitous. + +Example: you retrieve all the webpages mentioning the word `Gephi`, and +then want to visualize the semantic network of the texts contained in +these webpages. + +→ by definition, all these webpages will mention Gephi, so Gephi will +probably be the most frequent term. + +→ so your network will end up with a node \"Gephi\" connected to many +other terms, but you actually knew that. Boring. + +→ terms used in all web pages are less interesting to you than terms +which are used frequently, but not uniformly accross webpages. + +Applying the tf-idf correction will highlight terms which are frequently +used within some texts, but not used in many texts. + +(to go further, here is a webpage giving a simple example: +[](http://www.tfidf.com/)) + +So, should you visualize the most frequent words in your corpus, or the +words which rank highest according to tf-idf? + +Both are interesting, as they show a different info. I'd suggest that +the simple frequency count is easier to interpret. + +tf-idf can be left for specialists of the textual data under +consideration, after they have been presented with the simple frequency +count version. + +Computing connections (edges) in the network {#_computing_connections_edges_in_the_network} +============================================ + +We now have extracted the most interesting / meaningful terms from the +text. How to decide which connections make sense between them? + +1. Co-occurrences {#_1_co_occurrences} +----------------- + +Connections between terms are usually drawn from co-occurrences: two +terms will be connected if they appear next to each other in some +pre-defined unit of text: + +- in the same sentence + +- in the same paragraph + +- in the same document (if the corpus is made of several documents) + +(note on vocabulary: in the following, we will call this a \"unit of +text\"). + +For example, in bibliometrics (the study of the publications produced by +scientists), this could give: + +- collect **abstracts** (short summaries) of all scientific articles + discussing \"nano-technologies\". + +- so, abstracts are our units of text here. + +- two terms will be connected if they frequently appear **in the same + abstracts**. + +2. What \"weight\" for the edges? {#_2_what_weight_for_the_edges} +--------------------------------- + +An edge between two terms will have: + +- weight of \"1\" if these two terms co-occur in just one unit of + text. + +- weight of \"2\" if they co-occur in two units of text. + +- etc... + +The logic is simple, and yet there are some refinements to discuss. It +will be up to you to decide what's preferable: + +### If 2 terms appear several times **in a given unit of text**, should their co-occurences be counted several times? {#binary-counting} + +An example to clarify. Let's imagine that we are interested in webpages +discussing nanotechnology. We want to draw the semantic network of the +vocabulary used in these web pages. + +A co-occurrence is: when 2 terms are used on the same web page. + +Among the pages we collected, there is the Wikipedia page discussing +nanotechnology: + +> Nanotechnology (\"nanotech\") is manipulation of matter on an atomic, +> molecular, and supramolecular scale. The earliest, widespread +> description of nanotechnology referred to the particular technological +> goal of precisely manipulating atoms and molecules for fabrication of +> macroscale products, also now referred to as molecular nanotechnology +> +> --- [Wikipedia](https://en.wikipedia.org/wiki/Nanotechnology) + +The question is: + +- should I count only **one** co-occurrence between `molecular` and + `nanotechnology`, because it happened on this one web page? This is + called **binary counting** + +- or should I consider that `molecular` appears twice on this page, + and `nanotechnology` three times, so **multiple** co-occurrences + between these 2 terms should be counted, just on this page already? + This is called **full counting** + +There is no exact response, and you can experiment with both +possibilities. + +### If two terms are very frequent, is their co-occurrence really of interest? {#_if_two_terms_are_very_frequent_is_their_co_occurrence_really_of_interest} + +Example: + +Chun-Yuen Teng, Yu-Ru Lin and Lada Adamic have studied (using Gephi!) +[the pairing of ingredients in cooking recipes](https://arxiv.org/abs/1111.3919). + +So, in their study the unit of text was the \"recipe\", and the terms in +the semantic network where ingredients in all these recipes. + +Just because they are so common, some ingredients (like `flour`, +`sugar`, `salt`) are bound to appear more frequently in the same recipes +(to co-occur), than infrequent ingredients. + +The authors of this study chose to highlight **complementary +ingredients**: some ingredients appear often used together in the same +recipes, *even if they are ingredients which are quite rarely used*. + +\"Complementary\" here means that these ingredients have some +interesting relationship: when one is used, the other \"must\" be used +as well. + +If we just count co-occurrences, this special relationship between +infrequent complementary ingredients will be lost: by definition, 2 +infrequent ingredients can't co-occurr often. + +To fix this, a solution consists in comparing how many times the 2 +ingredients co-occur, with how frequent they are in all recipes: + +→ ingredients co-occurring *each and every time they are used* will have +a large edge weight, + +→ ingredients co-occuring many times, *but also appearing many times in +different recipes*, will get a low edge weight. + +A simple formula does this operation. For ingredients A and B: + + weight of edge between A and B = + nb of recipes where A & B co-occur + divided by + (total nb of recipes where A appear x total nb of recipes where B appear) + +Logs are often added to this formula, which is called \"Pointwise mutual +information\": + +PMI = log + +p(A + +p(A /(p(A) p(B))) + +We now have nodes and their relations: a semantic network. Let's see now +how to visualize it in Gephi. + +Visualizing semantic networks with Gephi {#_visualizing_semantic_networks_with_gephi} +======================================== + +1. Creating a semantic network by yourself {#_1_creating_a_semantic_network_by_yourself} +------------------------------------------ + +You can convert any text into a network with +[Cowo](https://nocodefunctions.com/cowo/semantic_networks_tool.html), an +online tool on the Nocodefunctions webapp \[disclaimer: I created Cowo and Nocodefunctions\]. + +2. Or, download a dataset for this tutorial {#_2_or_download_a_dataset_for_this_tutorial} +------------------------------------------- + +We need a dataset to practice. This is a semantic network of 250 terms +and 19,613 relations: + +[download this zip file](../resources/semantic-networks/pubmed_abstracts_network.zip) and +unzip it on your computer. + +The network was built from the short summaries (\"abstracts\") of 1484 +research articles from the PubMed database of scientific reports, +retrieved by conducting this query: + +\"social neuroscience\" OR \"neuroeco\*\" OR \"decision neuroscience\" + +→ The query can be seen at [online here](https://www.ncbi.nlm.nih.gov/pubmed?term=(%22social%20neuroscience%22%20OR%20%22neuroeco*%22%20OR%20%22decision%20neuroscience%22)). +(it comprises more than 1484 results, because some articles have no +abstract). + +We used [Cowo](https://github.com/seinecle/Cowo) to create the network +from these 1484 short pieces of text, based on co-occurrences. + +- Open the file inside the zip (`pubmed_abstracts_network.gml`) in + Gephi: + +![First view of the network](/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-import-1-en.png) + +Several steps will make this network intelligible + +3. Managing labels size and colors {#_3_managing_labels_size_and_colors} +---------------------------------- + +a. Showing the labels of the nodes: + +![showing node labels](https://docs.google.com/drawings/d/1o-J7Uce1okDdIN_IgvZaH4MdGjn74_ChTlXo-nxS-w4/pub?w=960&h=720) + +a. Making the edges (relations) invisible, because they clutter the + view + +![hiding edges](https://docs.google.com/drawings/d/1EZuk_b2plau6HzFNkkB64Mep0I0xq5l5sJhnIsOpSMM/pub?w=1440&h=1080) + +a. Reducing node size to the minimum (0.5) because we just need labels + +![Making nodes disappear](/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-resize-nodes1-en.png) + +a. Detect communities with the \"modularity\" function in the + statistics panel + + see tutorial 'simple project from A to Z' for this step + + + +a. Give a different color to each community + +→ each group of terms, distinguished by a color, will represent a topic. + +![Coloring nodes - first step](/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-coloring-communities-1-en.png) + +a. We then need to assign this node color to their labels: + +![Coloring nodes - second step](https://docs.google.com/drawings/d/1fAyeO4K9cv-HV4AM0YrL8yQXw8hKxqWX-1K1GlwogN0/pub?w=1440&h=1080) + +4. Tuning the spatialization {#_4_tuning_the_spatialization} +---------------------------- + +a. Spatializing the network with Force Atlas 2 will place related terms + next to each other, because they co-occur: + +Some parameters have been modified: + +![Spatializing the network](/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-spatializing-1-en.png) + +a. The network so far: + +![The network - colored and spatialized](/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-spatializing-2-en.png) + +a. Apply 2 more layouts to enhance readability: + + - \"Expansion\" to spread nodes (just select it and click on Run a + couple of times) + + - \"Label Adjust\" to move labels around so that they don't + overlap + +![Spreading labels](/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-spatializing-3-en.png) + +5. Exporting an image of the network {#_5_exporting_an_image_of_the_network} +------------------------------------ + +a. Switching to the preview panel + + - A number of parameters must be modified (to show Labels, hide + edges, etc.) + +![The preview panel](/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-preview-1-en.png) + +The network is now ready to be exported to pdf, png or svg file formats. + +More tutorials on working with semantic networks {#_more_tutorials_on_working_with_semantic_networks} +================================================ + +Other software / web apps to visualize texts as networks: + +- [](https://textexture.com/) or its new version + [](https://infranodus.com/) + +- [](https://www.vosviewer.com/) diff --git a/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/_category_.json b/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/_category_.json new file mode 100644 index 0000000..639addf --- /dev/null +++ b/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "How to use Plugins", + "position": 3 +} diff --git a/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en.md b/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en.md new file mode 100644 index 0000000..fa9b9cb --- /dev/null +++ b/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en.md @@ -0,0 +1,192 @@ +--- +id: cooccurrences-computer-en +title: Co-occurrences Network +last_update: + author: Clément Levallois +sidebar_position: 3 +description: Co-occurrences Network +tags: + - Plugin +--- + +# Creating a network from a table of cooccurring items + +## Upgrade: this plugin is now available as a web app! + +I have transfered the plugin to a free web application, which makes it easier to access. +Visit the [Network builder page](https://nocodefunctions.com/gaze/network_builder_tool.html) on [Nocodefunctions](https://nocodefunctions.com). + +You will be able to generate the file of a network (.gexf) and open it in Gephi. + + +## Presentation of the plugin + +This plugin is created by [Clement Levallois](https://www.clementlevallois.net). + +It converts a spreadsheet or a csv file into a network. + +This plugin enables you to: + + +* Start from a data table in Excel or csv format +* In the data table, each row describes an "occurrence" (of an event, a purchase, a relation, etc.) + +* In columns A, B, C, D, we have the entities involved: column A for persons, column B for what they bought, etc. +* Connections will be created between entities, when they appear in the same occurrence (so, when they are on thee same row) +* Occurrences can have dates, multiple instances of an entity can be listed in a given column. + +### 1. The input + +![An Excel file](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/excel-1-en.png) + +### 2. The output + +![Resulting network](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/gephi-result-1-en.png) + +## Installing the plugin +![Choose the menu Tools then Plugins](https://docs.google.com/drawings/d/1dgcXEC-nrQQtLvEtSLCrzKXfAdi2Hy1jCslyf2ky20A/pub?w=956&h=530) + +![Click on the tab Available Plugins](https://docs.google.com/drawings/d/1u4LqlnQby5DQVmq4csZ6f7sq_Z33F33UqtBZ43eh4pc/pub?w=645&h=406) + +![Install the plugin Convert Excel and Csv files and restart Gephi](https://docs.google.com/drawings/d/e/2PACX-1vTnoukHFo6s3wgxOrtmHz_hVPf4JXcyyKIIvuXvhClULnyOIYUQcEsC-FaZNyBZBaMGv0696wk7GBhQ/pub?w=833&h=543) + +## Opening the plugin + +![Open the plugin via the menu File - Import](https://docs.google.com/drawings/d/1fAwFegXKYpBjfcNYmlrTsoadheVfPEqAg8kEeoEl1Ag/pub?w=1423&h=851) + +## Using the plugin + +### 2nd panel + +![Select a file](https://docs.google.com/drawings/d/1hO9PddUbSc_XUyZFmaX1Zs6-AoX-yE9npZZjWdEo8KU/pub?w=1321&h=907) + +![A file without headers](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/excel-2-en.png) + +![A file with headers](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/excel-1-en.png) + +To describe the next screens of the plugin, we will take the example of *the Excel file just shown*, with headers. + +### 3rd panel + +![Which entities should be the nodes?](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/plugin-panels-1-en.png) + +What does this panel mean? + +If you look back at the Excel file, you see that we have "Clients" and their "Purchases". + + +-> This means we can build 2 different types of networks, depending on our needs: + +1. A network showing clients and products, with relations representing purchases from a client to a product. + + + +[graphviz, client-to-product, png] +```dot +graph g { + rankdir="LR"; + client -- product [ label="purchased" ] +} +``` + + +To create this kind of networks, choose "Client" in the upper window, and "Purchases" in the lower window of the plugin screen. + + +1. Or a network where 2 products are connected, if one client puchased them together. + + +[graphviz, product-to-product, png] +``` +graph g { + rankdir="LR"; + a -- b [label=" purchased together"] + a [label="product 1"]; + b [label="product 2"]; +} +``` + + +To create this kind of networks, choose "Purchases" in the upper [underline] *and* lower windows of the plugin screen. + +### 4th panel + +![Choosing which delimiter is used](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/subfield-delimiter-en.png) + +This 3rd panel asks: in our Excel file, how are different items separated in a given cell? +In our example, we have used commas: the lists of products purchased are comma-separated: + +![Commas shown in red](https://docs.google.com/drawings/d/1tRw85HuODUSCD7e48UX_F7fUB5XWGJ7hVzNFnr6oWQI/pub?w=656&h=377) + +### 5th panel + +This panel allows you to specify whether the relations are dynamic in time, or not. + +In this case, you need an extra column (column C), where a date is shown. We don't cover this case here. + +(read the tutorials on dynamic networks for a starter) + +### 6th panel + +![Options panel](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/panel-6-1-en.png) + + "Create links between Purchases agents and links between Purchase agents" + +-> If you chose a Product <--> Product kind of network in panel 3, then of course you are interested in links between products. *Check the box*. + + +-> But if you chose a Client <--> Product kind of network in panel 3, what you need is less obvious. + +Let's take the example of client I, who purchased a table and some chairs: + +1. Checking the box will create a network where: + + +[graphviz, inner-links-included, png] +``` +graph g { + rankdir="LR"; + a -- b [label=" purchased"] + a -- c [label=" purchased"] + b -- c [label=" co-purchased"] + + a [label="client I"]; + b [label="table"]; + c [label="chairs"]; + +} +``` + + +1. *Not* checking the box will create a network where: + + +[graphviz, inner-links-excluded, png] +``` +graph g { + rankdir="LR"; + a -- b [label=" purchased"] + a -- c [label=" purchased"] + + a [label="client I"]; + b [label="table"]; + c [label="chairs"]; + +} +``` + + + "Remove duplicates" + +-> Check this option if your Excel or csv file has duplicate rows that you'd like to be removed + + + "Remove self-loops" + +If a Client has purchased tables twice, so that we have "table, table" in a cell: this would create a link from table to table (a *self loop*). + +-> Check this option if you'd like self loops to be removed. + +### 7th panel + +This panel recaps all the settings. Click on finish to create the network. diff --git a/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en.md b/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en.md new file mode 100644 index 0000000..4504da7 --- /dev/null +++ b/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en.md @@ -0,0 +1,244 @@ +--- +id: k-partite-bi-partite-graph-en +title: The Multimode Networks Transformations plugin +last_update: + author: Matthieu Totet +sidebar_position: 3 +description: The Multimode Networks Transformations plugin +tags: + - Plugin + - K-partite + - Bi-partite + - Multimode +--- +The Multimode Networks Transformations plugin allows you transform a +k-partite graph into a mono-partite graph. + +Official page of the plugin: +[](https://gephi.org/plugins//plugin/semantic) + +Plugin Author: [Jaroslav Kuchar](https://github.com/jaroslav-kuchar) + +Plugin sources: +[](https://github.com/totetmatt/gephi-plugins/tree/multimode-network) + +Licensed under: GNU GENERAL PUBLIC LICENSE + +K-partite, Bipartite ... What is it ? {#_k_partite_bipartite_what_is_it} +===================================== + +Most of the time, when you create a graph, all the nodes are +representing the same « kind » of object. + +- In a Social Network: Persons + +- In a Route Network: Bus Stops, Airports, Stations etc... + +- In a Geographical Network: Countries + +But sometimes, you will encounter graphs that will have 2, 3 or multiple +« kinds » of nodes where the links are almost exclusively going from one +type to the other. These graphs are called **Multipartite Graphs** : + +- If you have **2** kinds of nodes, it's a **Bi**partite Graph (or + **2**-partite) + + - Example : Social Network : Persons \< - \> Companies + +- If you have **3** kinds of nodes it's a**3**-partite Graph + + - Example : Movie Network : Actors \< - \> Movies \< - \> Movie + Companies + + + +- If you have **k** kinds of nodes it's a **k**-partite Graph + +If you want a proper scientific definition, you can check the +[Wikipedia](https://en.wikipedia.org/wiki/Multipartite_graph) page about +the subject. + +The Dataset {#_the_dataset} +=========== + +We will use a well known data set : The Cac 40 Administrators +relationship from +[www.citoyennumerique.fr.](http://www.citoyennumerique.fr/?tag=cac40) + +The files for Gephi are accessible here : [Gexf +files](:../../resources/k-partite-bi-partite.zip) + +The tutorial will be based on the **SimpleGraph**, but you also have +access to the **FullGraph** to play with. + +The CAC 40 represents the 40 most valuable company on the french stock +market. A **company** has several **administrators** and nothing prevent +an **administrator** to be in multiple **companies**. So the graph is +build such as **companies** are sources of edges and targets are the +**administrators**. + +This is a typical bi-partite graph. If you look on the data, part of the +node has a property type **Administrator** and the other part has a +property type **Company**. + +![Cac 40 bipartite graph](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-simple-graph.png) + +We can get quick observations: + +- Filtering by InDegree, we can check that Michel Pebereau and + Jean-Martin Folz are in **5 companies** at the same time. + +- Filtering by OutDegree, we can check that St-Gobain and Total have + **8 administrators** that are in other companies. + +But that could be done without graph, an ordered list on excel would +have done the job. + +How to deal with multipartite graphs ? {#_how_to_deal_with_multipartite_graphs} +====================================== + +Having a k-partite graph makes somehow the graph unfriendly to read. +Usually, the metrics will be difficult to interpret, and generating a +good visualisation from it won't be trivial. + +One method here is to **reduce** the **bi-partite** graph into a +**mono-partite** graph. + +- By reducing, we will « lose » information but we gain in + **readability** and **synthesis**, + +- that's part of the work in data visualisation to see at which level + we + +- want to go and how to deal with this trade of information. This will + +- mostly be driven by the question you want to answer. + +The principle of the reduction is to consider a type of **nodes** as +**edges** and build a new graph based on this rule. In our example we +have 2 ways to go: + +- Either we decide that the nodes of type « Company » are the edges. + It will generate a \"**graph** of **Persons**\" + +- Either we decide that the nodes of type « Person » are the edges. It + will generate a \"**graph** of **Company**\" + + + +- Here both graphs generated makes « sense » (network of + +- entities) but it might appear that in some other case, one of the + generated graphs won't really be *interesting*. + +- That's part of your work to judge this aspect. + +Now, how to perform the transformation? + +Using a Plugin {#_using_a_plugin} +============== + +The easiest way is to use the [Multimode Network Transformation +plugin](https://marketplace.gephi.org/plugin/multimode-networks-transformations-2/). +The plugin is available on the Gephi app market and in the plugin +manager in Gephi. + +![Plugin Install](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-install-plugin.png) + +When it's installed, you should be able to see or display the +**Multimode Network Transformation** tab. + +Then, load the graph and: + +- Click on **Load Attributes** and select **Type** on **Attribute + Type.** + +- For left matrix select **Administrator -- Company** and right matrix + **Company -- Adminstrator** + +- Enable **Remove Edges** and**Remove Nodes**, and Click\*\* Run + + + +- The plugin will modify directly the graph on the current workspace. + If you want to keep the original graph, be sure + +- you have copied your workspace. + +![MultiPartite\_Gephi](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-config.png) + +The plugins will actually to transform each relation like: + +(Administrator)**←**(Company)**→**(Administrator) + +to + +(Administrator)**←\[**Nb of Common Companies**\]→**(Administrator) + +Now you should have a graph with only administrators on the graph +preview. + +![Tuto\_Multi\_P2P](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-simple-p2p.png) + +To generate the relation between companies, replay the same steps from +the original graph (duplicate the workspace0 again) and in the +**Multimode Network Transformation** use : + +- Left Matrix : Company -- Administrator + +- Right Matrix : Administrator -- Company + +![MultiPartite\_Gephi\_2](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-config-2.png) + +![Tuto\_Multi\_C2C](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-simple-c2c.png) + +With the 2 new graphs, and playing with the weighted degree of the +nodes, we are able to see some particularities: + +- The maximum of **common administrator** between company is **3**: + Bouygues and Alstom with Olivier Bouygues, Patrick Kron, Georges + Chodron de Courcel + +- **Half of the companies** are sharing at least 2 administrators. + +- The maximum of **common company** between person is **3**: Gerard + Lamarche and Paul Demaray Jr see each other in Total, GDF Suez and + Lafarge SA. + +- From all administrators that are in at least 2 companies,**1/3 of + them are at least in the *same* 2 companies**. + +Theses statements could have been deduced from the original graph, but +now, the information is more visible and accessible, especially if you +want to share it to a large public. + +- The next steps are now mostly to look at graphs, and summarize all + +- the particularities into some kind of output (poster, interactive + graph, + +- newspaper etc...) + +Limitations {#_limitations} +=========== + +The plugin works quite well, but sometimes it has some limitation on +large graphs. Or sometimes you may want to reduce your graph and have a +custom metric computed. Then the only alternative to that is to use a +script that will generate the graph for you. + +Benefits {#_benefits} +======== + +Multipartite graphs are complex to analyse, but synthesizing them to +lower partite graphs gives you a better vision and insights about your +data. + +The end {#_the_end} +======= + +Visit [the Gephi group on +Facebook](https://www.facebook.com/groups/gephi) to get help, + +or visit [the website for more +tutorials](https://seinecle.github.io/gephi-tutorials) diff --git a/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en.md b/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en.md new file mode 100644 index 0000000..eb021f7 --- /dev/null +++ b/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en.md @@ -0,0 +1,200 @@ +--- +id: semantic-web-importer-en +title: Semantic Web Importer +last_update: + author: Matthieu Totet +sidebar_position: 3 +description: Semantic Web Importer +tags: + - Plugin + - Semantic + - RDF + - Sparql +--- + +The Semantic Web Importer plugin allows you to query a SPARQL endpoint +and represent the result as a graph in Gephi. + +Official page of the plugin: + + +Plugin Author: [Erwan Demairy](https://github.com/ErwanDemairy) + +Plugin sources: +[git://scm.gforge.inria.fr/segviz-public/gephi-plugins.git](https://scm.gforge.inria.fr/anonscm/git/segviz-public/gephi-plugins.git/) + +Licensed under: +[Cecill-C](http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html) + +Introduction to concepts {#_introduction_to_concepts} +======================== + +RDF stands for [Resource Description +Framework](https://en.wikipedia.org/wiki/Resource_Description_Framework) +. It is a way to represent information of all kinds. It is now a +specification and since 1995 people are working on RDF and all subjects +related to information representation for automatic system. + +RDF can be considered as the « Grand Father » of graph representation. + +The idea is very simple, all information can be represented as a triplet +: + +- `(subject, predicate, object)` + +To query such a dataset, a query language has been developed: +[SPARQL](https://en.wikipedia.org/wiki/SPARQL) + +The SPARQL format is close to SQL format and tries to be as close as +possible to a natural language. + +[DBpedia](http://dbpedia.org) is the RDF version of Wikipedia. It is an +open datastore that tries to gather and offers in RDF format all +information that you can find in wikipedia or other knowledge service. + +DBPedia is very interesting because it preformats concepts and makes +them available for automatic processes or complex queries across +concepts. + +You can query it through a web interface or via any RDF toolkit : + +\[[http://dbpedia.org/sparql\](http://dbpedia.org/sparql](http://dbpedia.org/sparql](http://dbpedia.org/sparql)) + +``` {.SQL} +select * +where +{ + ?predicate ?object. +} +``` + +Quickstart {#_quickstart} +========== + +The result of a SPARQL can be a table as we could do it with SQL, but +you can also build a graph based on your query. The Semantic Web Plugin +uses this feature to draw the result of your query into Gephi. + +First, we need to install Semantic web import. You can find and install +this plugin in the menu Tools → Plugins of Gephi. + +When installed, go to the Semantic Web Import tab. + +In the **Driver** tab, choose **Remote - REST endpoint** and put +**http://dbpedia.org/sparql** and **EndPoint URL**. + +> **Important** +> +> Press **Enter** after typing the URL endpoint so the url is getting +> validated and used. + +![Setup endpoint](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en/setup_1.png) + +Go to **Query** tab, remove the dummy query and put this one: + +``` {.SQL} +CONSTRUCT{ + ?person "person". + ?movie "movie". + ?movie ?person . +} +WHERE +{ + ?movie a . + ?movie ?rel1 . + ?movie ?rel2 ?person. + ?person a . +} +``` + +Finally, click on **Run** + +![SPARQL Query](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en/setup_2.png) + +Go back to the Graph preview and you should see a graph. Use the layout +tab to get a more intuitive rendering. + +![result](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en/result_1.png) + +Details {#_details} +======= + +CONSTRUCT block {#_construct_block} +--------------- + +The `CONSTRUCT` block define the new graph to build from the query. +That's the description of your data the plugin will interpet to build +the graph. + +What is the syntax for this `CONSTRUCT` block : + +- `?a ?b` + +→ Will create the node `?a` with the property `nodeProperty` equal to +`?b`. + +- `?a ( or ?c) ?b` + +→ will create a link between `?a` and `?b` with label `` + +### WHERE block {#_where_block} + +The `WHERE` block define the data to match based on the query typed in : + +- `?movie a .` + +→ Get all subject which is a ``. The +`a` is actually a SPARQL special word for ``. So it's exactly +equal to `?movie ` + +- `?movie ?rel1 .` + +→ Match all subjects which have any predicate where the object is +`` + +- `?movie ?rel2 ?person.` + +→ Match any triplet + +- `?person a .` + +→ Match the subject `?person` if it's a +``. + +In other words, match the variable `?movie` to any entity that is a +`Film` and that has at least 1 triplet where `Leonardo` is an object. +Match also all `?person` that is a `Person`. + +The result in our case is actually a bi-modal graph with Movies and +Persons shared with Leonardo Dicaprio. + +Tips to go further {#_tips_to_go_further} +================== + +What is interesting with this method is the way to query the data, and +the fact that it is easily extensible to other subjects just by changing +few things in the query. We can think about Music Band and Player +relationships, the traditionnal Persons to Companies, or more +originally, all the common places where your favorites movies where +shot, etc. The limit is your imagination to graph. + +On our example, you can run multiple time the same query and change +which person you want to « expand », it will automatically create the +global network of all your research. It will also maybe give you some +insight on which new movies to watch tonight 😉 + +But keep in mind that you are heavily dependent on Dbpedia data quality +(or other RDF entrypoint), which can alterate a lot you research. + +If you want more refined queries, you will have to learn SPARQL and RDF +in more details. There are a lot of tutorials around the web that will +help you to master SPARQL. + +The end {#_the_end} +======= + +Visit [the Gephi group on +Facebook](https://www.facebook.com/groups/gephi) to get help, + +or visit [the website for more +tutorials](https://seinecle.github.io/gephi-tutorials) diff --git a/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en.md b/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en.md new file mode 100644 index 0000000..32811f9 --- /dev/null +++ b/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en.md @@ -0,0 +1,126 @@ +--- +id: similarity-computer-en +title: Similarity +last_update: + author: Clément Levallois +sidebar_position: 3 +description: Similarity +tags: + - Plugin +--- +I have transfered the plugin to a free web application, which makes it +easier to access. Visit the [\"network builderpage\"](https://nocodefunctions.com/gaze/network_builder_tool.html) on +[Nocodefunctions](https://nocodefunctions.com). + +You will be able to generate the file of a network (.gexf) and open it +in Gephi. + +Presentation of the plugin {#_presentation_of_the_plugin} +========================== + +This plugin is created by [Clement +Levallois](https://www.clementlevallois.net). + +It converts a spreadsheet or a csv file into a network. + +This plugin enables you to: + +- Start from a data table in Excel or csv format + +- In the data table, nodes are the entities listed in column A + +- Nodes\' attributes must be listed in columns B, C, D, etc. + +- Connections will be created between nodes, when they have identical + attributes. + +- Attributes can have values, stored in columns right next to the + attribute. + +1. The input {#_1_the_input} +------------ + +![An Excel file](https://docs.google.com/drawings/d/1TkShesrj6PsObLdj3fCMLScxTXJgopxTEICPv8CPd4Y/pub?w=840&h=887) + +1. The output {#_2_the_output} +------------- + +![Resulting network](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/result.png) + +Installing the plugin {#_installing_the_plugin} +===================== + +![Choose the menu Tools then Plugins](https://docs.google.com/drawings/d/1dgcXEC-nrQQtLvEtSLCrzKXfAdi2Hy1jCslyf2ky20A/pub?w=956&h=530) + +![Click on the tab Available Plugins](https://docs.google.com/drawings/d/1u4LqlnQby5DQVmq4csZ6f7sq_Z33F33UqtBZ43eh4pc/pub?w=645&h=406) + +![Install the plugin Similarity Computer then restart Gephi](https://docs.google.com/drawings/d/18hovYg9G5ek39rILj-aRlEpaWnN6doQeg15iX6lU0aY/pub?w=833&h=543) + +Opening the plugin {#_opening_the_plugin} +================== + +![Open the plugin via the menu File - Import](https://docs.google.com/drawings/d/1eu5O9KiGDAXJSkQuXHYq37T8vSvlZCPMgjwpa4C4Bh4/pub?w=1423&h=851) + +Using the plugin {#_using_the_plugin} +================ + +First panel {#_first_panel} +----------- + +![Select a file](https://docs.google.com/drawings/d/1T1MfrbkD-0JXU0gJittis1SzC6oTS3TzN2NqwkKtRVE/pub?w=1412&h=920) + +![A file without headers](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/file-without-header-en.png) + +![A file with headers](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/file-with-header-en.png) + +Second panel {#_second_panel} +------------ + +![Parameter for weight](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-4-en.png) + +Third panel {#_third_panel} +----------- + +![Confirmation panel](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-5-en.png) + +How is the similarity computed, exactly? {#_how_is_the_similarity_computed_exactly} +======================================== + +We use the cosine similarity. Sounds complicated, but it is not. [Check here](http://stackoverflow.com/questions/1746501/can-someone-give-an-example-of-cosine-similarity-in-a-very-simple-graphical-wa). + +The source code for the cosine calculation is in this +[file](https://github.com/gephi/gephi-plugins/blob/master-forge/modules/SimilarityComputer/src/main/java/net/clementlevallois/computer/CosineCalculation.java), +at [this place](https://github.com/gephi/gephi-plugins/blob/master-forge/modules/SimilarityComputer/src/main/java/net/clementlevallois/computer/CosineCalculation.java#L110). + +FAQ / special notes on the plugin {#_faq_special_notes_on_the_plugin} +================================= + +1. Excel files should be .xlsx, not .xls {#_1_excel_files_should_be_xlsx_not_xls} +---------------------------------------- + +Because they represent two slightly different files formats, and the +plugin supports only .xlsx + +2. csv files are ok. {#_2_csv_files_are_ok} +-------------------- + +If you select a [csv file](http://www.computerhope.com/issues/ch001356.htm), you will be +asked to indicate the field delimiter and optionally the text delimiter. + +![When a csv file is selected](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-6-en.png) + +3. You can't use numerical values in the attributes {#_3_you_can_8217_t_use_numerical_values_in_the_attributes} +--------------------------------------------------- + +![Age is a numerical attribute](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/numerical-attributes-en.png) + +This is too bad. If there is enough demand for it I'll add this feature, +which is not trivial. + +4. Each entity should appear only on one line {#_4_each_entity_should_appear_only_on_one_line} +--------------------------------------------- + +![An entity appearing twice](/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-7-en.png) + +David appears on lines 2 and 5 (because he made two purchases). Only the +latest line where David appears (line 5) will be taken into account. \ No newline at end of file diff --git a/docs/05_Community_Tutorials/04_Dynamic_networks/_category_.json b/docs/05_Community_Tutorials/04_Dynamic_networks/_category_.json new file mode 100644 index 0000000..e2b6d00 --- /dev/null +++ b/docs/05_Community_Tutorials/04_Dynamic_networks/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Dynamic Network", + "position": 4 +} diff --git a/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic.md b/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic.md new file mode 100644 index 0000000..5e87848 --- /dev/null +++ b/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic.md @@ -0,0 +1,149 @@ +--- +id: converting-a-network-with-dates-into-dynamic +title: Converting a network with dates into Dynamic +last_update: + author: Clément Levallois +sidebar_position: 2 +description: Converting a network with dates into Dynamic +tags: + - Plugin + - Dynamic +--- + +Goals of this tutorial {#_goals_of_this_tutorial} +====================== + +- We take a normal network, where nodes have attributes which can + serve as time indication (a date, a number...) + +- We convert this network into a dynamic network: nodes will appear + and disappear according to their attributes. + +download a network file for practice {#_download_a_network_file_for_practice} +==================================== + +[download this zip file](../../resources/miserables-with-dates.zip) and +unzip it on your computer. + +or use this direct link: [](https://tinyurl.com/gephi-tuto-4) + +You should find the file `miserables-with-dates.gexf` in the zip file. +Save it in a folder you will remember (or create a folder specially for +this small project). + +This file contains a network representing \"who appears next to whom\" +in the 19th century novel *Les Misérables* by Victor Hugo[^1]. + +A link between characters A and B means they appeared on the same page +or paragraph in the novel. + +The file name ends with \".gexf\", which just means this is a text file +where the network information is stored (name of the characters, their +relations, etc.), following some conventions. + +This file has been modified to add some dates to each character in the +novel: + +- a \"start date\", which is a day (example: 22/09/1835). This is the + date when the character **enters** the action in the novel + +- an \"end date\", also a day (example: 22/09/1840). This is the date + when the character **leaves** the action in the novel + +- a \"peak moment\". This is a number (example: 14263). This is an + instant when the character is at the center of the plot. This number + has no historical meaning, this is just a chronological moment in + time. + +NOTE + +: Values for start date, end date and peak moment have no real + significance in the novel. They are made up for this exercise. + +open the network in Gephi {#_open_the_network_in_gephi} +========================= + +- open Gephi. On the Welcome screen that appears, click on + `Open Graph File` + +- find `miserables-with-dates.gexf` on your computer and open it + +![welcome screen](/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/gephi-welcome-screen-open-graph-en.png) + +A report window will open, giving you basic info on the network you +opened: + +![report window](/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/opening-file-report-en.png) + +This tells you that the network comprises 74 characters, connected by +248 links. + +Links are undirected, meaning that if A is connected to B, then it is +the same as B connected to A. + +The report also tells us the graph is not dynamic: it means there is no +evolution or chronology, it won't \"move in time\". + +Click on `OK` to see the graph in Gephi. + +![The network we will use](/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/result_miserables.png) + +getting a sense of the attributes in the data laboratory {#_getting_a_sense_of_the_attributes_in_the_data_laboratory} +======================================================== + +We can switch to the data laboratory to see the underlying data: + +![Switching to the data laboratory](https://docs.google.com/drawings/d/15SISc0_m4w99GUxZcbrln1183dRqBYNK0EpG2OOBbVU/pub?w=954&h=524) + +![Zoom on three attributes representing time](https://docs.google.com/drawings/d/1kDpiarI7R8Z8a7nEsVlD34lCOYPxLAUJqPmsm08IwR8/pub?w=1439&h=754) + +The nodes (characters) of the network have attributes (start date, end +date, peak moment) which can make this graph dynamic - but it is not +yet. + +A couple of steps are needed to enable the dynamic features, and here a +choice must be made: + +Do we prefer to have... + +1. ... nodes appearing on screen at their start date, and staying on + screen for ever after? + +2. ... nodes appearing on screen at their start date, and leaving the + screen at their end date? + +3. ... nodes being representedsimply by their \"peak moment\" (a + number), without reference to chronological dates? + +We will present these 3 possibilities. + +1. dynamic nodes with a start date {#_1_dynamic_nodes_with_a_start_date} +---------------------------------- + +![Merge columns](https://docs.google.com/drawings/d/1bCWm0LPCJ-DWF3oR7szSA_fsd_ExMjJBjqLUBIzsyUs/pub?w=1439&h=754) + +![Set up the parameters - 1](https://docs.google.com/drawings/d/1O-C4kdb2gW8dABzUXxPDTzn0afr0YEqujGfRtVaSO80/pub?w=1438&h=657) + +![Result](https://docs.google.com/drawings/d/1GsZ9WLLSCV7yddr9PEjGQhPLBb_nMC_g-4-zs-7jus4/pub?w=1431&h=847) + +Let's switch back to the Overview to see the graph and how it evolves in +time. + +IMPORTANT + +: We are going to use the timeline to play the animation. The timeline + has many features which are explained in a specific tutorial. + +![Animating the dynamic network](/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/moving-timeline-miserables-1-en.gif) + +to be continued {#_to_be_continued} +=============== + +more tutorials on dynamic networks with Gephi {#_more_tutorials_on_dynamic_networks_with_gephi} +============================================= + +- [The wiki on gephi.org](https://github.com/gephi/gephi/wiki/Import-Dynamic-Data) + + +[^1]: D. E. Knuth, The Stanford GraphBase: A Platform for Combinatorial + Computing, Addison-Wesley, Reading, MA (1993) diff --git a/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network.md b/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network.md new file mode 100644 index 0000000..52b9a38 --- /dev/null +++ b/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network.md @@ -0,0 +1,166 @@ +--- +id: creating-a-simple-dynamic-network +title: Creating a simple dynamic network +last_update: + author: Clément Levallois +sidebar_position: 1 +description: Creating a simple dynamic network +tags: + - Plugin + - Dynamic +--- +1. Goals of this tutorial {#_1_goals_of_this_tutorial} +========================= + +- We are going to create one very simple **non dynamic** network + (network \"A\"). + +- then we will create a modified version of it (network \"B\"). + +- in both files, we need to modify a single line. + +- finally, we will merge networks A and B, forming a new **dynamic** + network evolving from version A to B. + +> **Note** +> +> The creation of the 2 networks is not a mandatory step: you can use +> your own network files, as long as they are in gexf file format. In +> this case, [skip to here](#merging). +> +> We create the networks in this tutorial to provide the most simple and +> clear case. + +2. Open a new project in Gephi {#_2_open_a_new_project_in_gephi} +============================== + +- open Gephi. On the Welcome screen that appears, click on + `New Project` + +![Open a new project](https://docs.google.com/drawings/d/1rmxB95Ew8TxaoMRERnhhaSJTT3yuhLc6VEdBRLduAag/pub?w=926&h=534) + +3. creating network \"A\" {#_3_creating_network_a} +========================= + +Our project is empty. We can use a simple click-and-point tool to create +a network: + +![Icon for node creation](https://docs.google.com/drawings/d/1qg4oSWoP9kfH75ucPquEz5oADG50729keLngKZxs0-o/pub?w=926&h=534) + +![A few nodes have been created](https://docs.google.com/drawings/d/14Lyj2kYXbnCqQpAJW2OWtJnf88KVKyJtzmxaPNTWTDc/pub?w=639&h=533) + +When you have created a couple of nodes, click again on the pencil icon +to stop the node creation. + +Export the network as a file and call it \"network A\": + +![Exporting the network](https://docs.google.com/drawings/d/1683F5TX0MYbrNofycNIDq3TM6tcdeqQhMydnb-nrnoQ/pub?w=654&h=296) + +![Choosing the gexf file format](https://docs.google.com/drawings/d/1WiD3tIgNY13pJMnqkeyc9wECX-eSlwlwJ4fZy7fX0pM/pub?w=682&h=314) + +Clicking on \"Save\" saves the file in the folder you chose. You are +back to the view on your graph. + +4. Creating network \"B\" {#_4_creating_network_b} +========================= + +Now, click on the \"Edge pencil\", just below the \"Node pencil we have +used (careful, the icons are identical!) + +![Choosing the gexf file format](https://docs.google.com/drawings/d/1N5ouRs4GXZcUG9NKPrfc9XP-BsT6uPWYYgp__RCHO14/pub?w=926&h=534) + +Create one edge, or a couple of edges, in this way. + +Clicking again on the pencil stops the edge creation by mouse clicks. + +Then export the network **in the same folder** where we put the previous +file (`File -> Export -> Graph File ...`) + +**This time, name the file *network B.gexf* and remember to choose the +`gexf` file format just like we did before.** + +5. Modifying just one line in the files network A.gexf and network B.gexf {#_5_modifying_just_one_line_in_the_files_network_a_gexf_and_network_b_gexf} +========================================================================= + +From your computer, open network A.gexf with a text editor (don't use +Microsoft Word!): + +(here is how to do it on a +[Mac](http://www.dummies.com/computers/macs/how-to-open-and-edit-a-text-file-on-a-mac/), +and on [Windows](https://www.lifewire.com/txt-text-file-4150707)). + +![The network file opened](https://docs.google.com/drawings/d/1UFJT918n8SUgWUD2KoEVCc6k2-G75QqoetWGirzhcIg/pub?w=1440&h=1080) + +Delete and replace this line by this one: + +``` {.xml} + +``` + +See `timestamp="1"` ? It means this will be the first \"time slice\" of +your dynamic network. + +Save the file. + +Repeat the steps for network B.gexf: + +- open the file in a text editor, + +- find the line `` + +- replace it by: + +``` {.xml} + +``` + +(see that we have **`timestamp="2"`** here: this is going to be the +second time slice!) + +- save the file. + +6. Merging network \"A\" and \"B\" into a dynamic network {#_6_merging_network_a_and_b_into_a_dynamic_network} +========================================================= + +We will use the 2 files network A.gexf and network B.gexf that we have +created. + +First, let's close the project we have in Gephi, without saving: + +![Closing the current project](https://docs.google.com/drawings/d/1urvovovyXAsGIb-yycOHKl3qRtsL8klaVbnzpjThQ60/pub?w=1440&h=1080) + +Then click on `File -> Open` and navigate to the folder where network +A.gexf and network B.gexf are located: + +![Opening files](https://docs.google.com/drawings/d/1Qah_hVAi7LXwnwuhCjLgHUlAqL4qHxUQ38PRKrPbJ_A/pub?w=1417&h=938) + +![Opening 2 files at once](https://docs.google.com/drawings/d/1ZU4uqyz7C9bXMNFd46XF5H_F8W2n0wdvcyrg5QyhQkI/pub?w=1372&h=857) + +Opening the files display a report window: + +![Import report window](https://docs.google.com/drawings/d/1QAxYTCY38JJa8RyeMEu22u3-L65L3K-Y2Kd1FDslwB8/pub?w=1443&h=1014) + +7. Enabling the timeline {#_7_enabling_the_timeline} +======================== + +You should see this button, click on it (if not: something went wrong. +Retrace your steps) + +![Enable the timeline](https://docs.google.com/drawings/d/134kQ8NnjB5W-tqv_xsK8EvEUDezkAxAeLFoxogSh64s/pub?w=1433&h=815) + +Click and slide the right side border of the timeline **to the left**. +You should see the edge disappear: + +![Sliding the timeline](https://docs.google.com/drawings/d/1dGRD8i7Nsjujdsiearl1ls6v31KXwAA3x28cs4WQhhQ/pub?w=1316&h=748) + +We created a dynamic network. It needs to be animated precisely with the +timeline, dynamic attributes should be explored, as well as dynamic +layouts. + +These features will be explained in the coming tutorials on dynamic +networks with Gephi. + +8. More tutorials on dynamic networks with Gephi {#_8_more_tutorials_on_dynamic_networks_with_gephi} +================================================ + +- [The wiki on gephi.org](https://github.com/gephi/gephi/wiki/Import-Dynamic-Data) diff --git a/docs/05_Community_Tutorials/05_Gephi_for_developers/_category_.json b/docs/05_Community_Tutorials/05_Gephi_for_developers/_category_.json new file mode 100644 index 0000000..2f7b829 --- /dev/null +++ b/docs/05_Community_Tutorials/05_Gephi_for_developers/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Gephi for Developers", + "position": 5 +} diff --git a/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source.md b/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source.md new file mode 100644 index 0000000..b868a53 --- /dev/null +++ b/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source.md @@ -0,0 +1,194 @@ +--- +id: working-from-the-source +title: Working from the source +last_update: + author: Clément Levallois +sidebar_position: 1 +description: Working from the source +tags: + - Plugin + - Development +--- +This tutorial explains how to get and modify Gephi's source code, and +build Gephi from it. + +![The obligatory meme](/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/use-the-source.jpg) + +We will: + +- download the source code + +- run Gephi from the source + +- modify Gephi's openGL visualization engine + +- run Gephi in this modified version + +The modified version of Gephi that we will implement will have for +effect to add circles around nodes communities. + +This project originates from [Susie Lu's creation](https://twitter.com/DataToViz/status/828840269072080896). + +We should get something like: + + + +For this tutorial you will need: + +- some knowledge of Java. + +- NetBeans installed ([up to date instructions here](https://dl.dropboxusercontent.com/u/28091845/coursera/codapps/session%201/module%201%20-%20installing%20NetBeans%20ans%20Codename%20One%20on%20a%20PC.pdf)). + Eclipse, IntelliJ or any other code editor won't do. + +- a good internet connection since we will download a lot of small + dependencies. + +- no Github account is necessary (if you have one, fork Gephi before + doing all the steps below). + +Downloading the source code {#_downloading_the_source_code} +=========================== + +1. Open NetBeans. + +2. In NetBeans, go to `Team -> Git -> Clone` + +(can't find this menu in NetBeans? read an alternative just below) + +![Cloning the gephi source](/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-0-en.png) + +NOTE + +: if you already have projects opened in NetBeans, the menu Team → Git + → Clone is replaced by: + + Team -> Remote -> Clone + +![Cloning the gephi source](https://docs.google.com/drawings/d/1sdB37hWIug2nzacQxsxqVOmzK_bVF7zpn_2rkgmEWSU/pub?w=1262&h=999) + +- For `Repository URL`, put the address of the Gephi repository on + Github, which is: + + + +- for `Clone into`, select a folder on your disk. No need to create a + new folder inside, the cloning process will do it. + +- Github User and password can be left empty + +- Then click on `Next` + +![Select Master and click next](/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-2-en.png) + +![Leave as it is and click on Finish](/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-3-en.png) + +At this step, NetBeans starts downloading the source code of Gephi - not +all of it. Should take a couple of minutes, then: + +![Click on Open Project](/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-4-en.png) + +Select (highlight in blue) the line mentioning Gephi, and click on +\"Open\" + +![Click on Open Project](/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-5-en.png) + +You should now see Gephi as a project on the left in NetBeans: + +![Gephi project](/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/netbeans-gephi-source-1-en.png) + +Right click on the project and select \"Build with dependencies\". This +will download all the rest of the source, which can take roughly 5 to 20 +minutes. + +![Building the project](/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/netbeans-gephi-source-2-en.png) + +Running Gephi from source {#_running_gephi_from_source} +========================= + +When the build is complete, expand the folder \"Modules\" of the Gephi +project, and double click on \"gephi-app\": + +![Opening the gephi-app submodule](/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/netbeans-gephi-source-3-en.png) + +This opens a new project on the left of NetBeans, called \"gephi-app\". +This is a submodule of Gephi, dedicated to managing its launch. + +![Launching Gephi](https://docs.google.com/drawings/d/1VS_oa0Fp9d-hygBJESrshVGfd5H9eSx1C50eZNSIUu0/pub?w=986&h=840) + +And Gephi launches! + +Now that we know how to run Gephi from source, we can modify the source +and see how it goes. + +Modifying Gephi's openGL visualization engine {#_modifying_gephi_8217_s_opengl_visualization_engine} +============================================= + +We are going to add circles which will enclose groups of nodes (aka +communities). In three steps: + +1. Open the `VisualizationImpl` module + +2. Create simple classes for the circles + +3. Add some code in the class which manages the display in OpenGL, so + that circles get created + +1. Open the `VisualizationImpl` module {#_1_open_the_literal_visualizationimpl_literal_module} +-------------------------------------- + +In the gephi project, in the folder Modules, double click on the +`VisualizationImpl` module: + +![Opening VisualizationImpl](/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/enclosing-circles-1-en.png) + +2. Create simple classes for the circles {#_2_create_simple_classes_for_the_circles} +---------------------------------------- + +Create a new package and add 3 classes in it: `Circle.java`, +`Point.java`, `SmallestEnclosingCircle.java`. + +(I merely adapted these classes from [this +website](https://www.nayuki.io/page/smallest-enclosing-circle)) + +![Three classes](/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/enclosing-circles-2-en.png) + +The code of these classes [can be found here](https://github.com/seinecle/gephi/tree/enclosing-circles-opengl/modules/VisualizationImpl/src/main/java/net/clementlevallois/enclosingcircles). + +3. Add the circle creation logic to the class managing the OpenGL display {#_3_add_the_circle_creation_logic_to_the_class_managing_the_opengl_display} +------------------------------------------------------------------------- + +Open the package `org.gephi.visualization.opengl`, and inside open +`CompatibilityEngine.java`: + +![opening CompatibilityEngine.java](https://docs.google.com/drawings/d/1XYIZ2iQPOPjhshbh2CGjMv03teW0QCVfdoqy0urn1wI/pub?w=976&h=652) + +No need to understand most of the code in this class. + +But we see that starting at [line 194](https://github.com/seinecle/gephi/blob/enclosing-circles-opengl/modules/VisualizationImpl/src/main/java/org/gephi/visualization/opengl/CompatibilityEngine.java#L194), +a loop on nodes starts: + +We will put nodes in a map (declared above, at [line 155](https://github.com/seinecle/gephi/blob/enclosing-circles-opengl/modules/VisualizationImpl/src/main/java/org/gephi/visualization/opengl/CompatibilityEngine.java#L155)) +where: + +- keys are the name of the cluster nodes belong too, + +- values are the Set of Nodes corresponding to the cluster. + +(yes, this implies the nodes must have an attribute called \"Modularity +Class\" showing the cluster they belong to) + +The code you should add to assign nodes to clusters in the map is in +[lines 197-203](https://github.com/seinecle/gephi/blob/enclosing-circles-opengl/modules/VisualizationImpl/src/main/java/org/gephi/visualization/opengl/CompatibilityEngine.java#L197) + +Then, [lines 210-245](https://github.com/seinecle/gephi/blob/enclosing-circles-opengl/modules/VisualizationImpl/src/main/java/org/gephi/visualization/opengl/CompatibilityEngine.java#L210) +iterate on the map, and create the circles around clusters. + +The logic of the circle creation in OpenGL can be understood rather +easily, by copying and modyfying the code used just above for the +creation of nodes, and by looking at the online documentation on [how to create shapes in OpenGL](http://www.openglprojects.in/2014/03/draw-circle-opengl.html#gsc.tab=0). + +That's it. Now just run Gephi from source as we did before. From Gephi, +open a network where nodes have a \"Modularity Class\" attribute, and +Gephi will draw circles around nodes from the same clusters: + + \ No newline at end of file diff --git a/docs/05_Community_Tutorials/_category_.json b/docs/05_Community_Tutorials/_category_.json new file mode 100644 index 0000000..72da2ae --- /dev/null +++ b/docs/05_Community_Tutorials/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Community Tutorial", + "position": 5 +} diff --git a/docusaurus.config.js b/docusaurus.config.js index c3f528a..6f7fe2e 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -39,6 +39,8 @@ const config = { // Remove this to remove the "edit this page" links. editUrl: 'https://github.com/gephi/gephi-documentation/docs', + showLastUpdateAuthor: true, + showLastUpdateTime: true, }, theme: { customCss: require.resolve('./src/css/custom.css'), diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en/google-scholar-gephi.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en/google-scholar-gephi.png new file mode 100644 index 0000000..bbbc44f Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en/google-scholar-gephi.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en/initial-team.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en/initial-team.png new file mode 100644 index 0000000..fc87dcc Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en/initial-team.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en/matthieu-jacomy.jpg b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en/matthieu-jacomy.jpg new file mode 100644 index 0000000..1d70590 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/history-en/matthieu-jacomy.jpg differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/appearance-miserables-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/appearance-miserables-en.png new file mode 100644 index 0000000..3a4fe96 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/appearance-miserables-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/appearance-miserables-result.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/appearance-miserables-result.png new file mode 100644 index 0000000..32d12c6 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/appearance-miserables-result.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/changing-edge-thickness.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/changing-edge-thickness.png new file mode 100644 index 0000000..154cfa4 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/changing-edge-thickness.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/changing-size-labels-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/changing-size-labels-en.png new file mode 100644 index 0000000..05532a1 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/changing-size-labels-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/choosing-a-label-adjust-algo-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/choosing-a-label-adjust-algo-en.png new file mode 100644 index 0000000..2586b73 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/choosing-a-label-adjust-algo-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/computing-betweenness-centrality-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/computing-betweenness-centrality-en.png new file mode 100644 index 0000000..3d2d62f Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/computing-betweenness-centrality-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/computing-betweenness-centrality-parameters-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/computing-betweenness-centrality-parameters-en.png new file mode 100644 index 0000000..73e3577 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/computing-betweenness-centrality-parameters-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/computing-betweenness-centrality-report-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/computing-betweenness-centrality-report-en.png new file mode 100644 index 0000000..13766e9 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/computing-betweenness-centrality-report-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/configuration-screenshot-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/configuration-screenshot-en.png new file mode 100644 index 0000000..04ff344 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/configuration-screenshot-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/data-laboratory-miserables-centrality-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/data-laboratory-miserables-centrality-en.png new file mode 100644 index 0000000..f63c46a Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/data-laboratory-miserables-centrality-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/data-laboratory-miserables-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/data-laboratory-miserables-en.png new file mode 100644 index 0000000..9f8c60e Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/data-laboratory-miserables-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/export-to-gexf-1.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/export-to-gexf-1.png new file mode 100644 index 0000000..758dbd1 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/export-to-gexf-1.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/export-to-gexf-2.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/export-to-gexf-2.png new file mode 100644 index 0000000..2b0e134 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/export-to-gexf-2.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/force-atlas2-few-parameters-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/force-atlas2-few-parameters-en.png new file mode 100644 index 0000000..b3a363a Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/force-atlas2-few-parameters-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/force-atlas2-result.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/force-atlas2-result.png new file mode 100644 index 0000000..0a9c501 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/force-atlas2-result.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/gephi-welcome-screen-open-graph-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/gephi-welcome-screen-open-graph-en.png new file mode 100644 index 0000000..67835a9 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/gephi-welcome-screen-open-graph-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/miserables-preview-result.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/miserables-preview-result.png new file mode 100644 index 0000000..501d8f1 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/miserables-preview-result.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/opening-file-report-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/opening-file-report-en.png new file mode 100644 index 0000000..0b69bb3 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/opening-file-report-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/preview-export-button-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/preview-export-button-en.png new file mode 100644 index 0000000..04cf583 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/preview-export-button-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/preview-panel-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/preview-panel-en.png new file mode 100644 index 0000000..2e0704d Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/preview-panel-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view-1-3-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view-1-3-en.png new file mode 100644 index 0000000..e6af3eb Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view-1-3-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view-4-5-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view-4-5-en.png new file mode 100644 index 0000000..c9fa851 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view-4-5-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view-6-7-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view-6-7-en.png new file mode 100644 index 0000000..29f5987 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view-6-7-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view-8-10-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view-8-10-en.png new file mode 100644 index 0000000..1dcc648 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view-8-10-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view.png new file mode 100644 index 0000000..6fa24cb Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/project-initial-view.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/ranking-centrality-miserables-1-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/ranking-centrality-miserables-1-en.png new file mode 100644 index 0000000..3d1add2 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/ranking-centrality-miserables-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/ranking-centrality-miserables-2-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/ranking-centrality-miserables-2-en.png new file mode 100644 index 0000000..4eab0ec Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/ranking-centrality-miserables-2-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/ranking-centrality-miserables-3--en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/ranking-centrality-miserables-3--en.png new file mode 100644 index 0000000..cf5353a Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/ranking-centrality-miserables-3--en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/resizing-labels-to-node-size.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/resizing-labels-to-node-size.png new file mode 100644 index 0000000..ab0639a Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/resizing-labels-to-node-size.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/result-label-resizing-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/result-label-resizing-en.png new file mode 100644 index 0000000..8ac726f Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/result-label-resizing-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/screenshot-from-overview-1.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/screenshot-from-overview-1.png new file mode 100644 index 0000000..800ecf3 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/screenshot-from-overview-1.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/select-force-atlas2-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/select-force-atlas2-en.png new file mode 100644 index 0000000..c8e4e20 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/select-force-atlas2-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/showing-labels.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/showing-labels.png new file mode 100644 index 0000000..592c7e8 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/showing-labels.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/switching-to-data-laboratory-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/switching-to-data-laboratory-en.png new file mode 100644 index 0000000..6bf94cd Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/switching-to-data-laboratory-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/switching-to-preview-panel-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/switching-to-preview-panel-en.png new file mode 100644 index 0000000..f7651f3 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/switching-to-preview-panel-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/terminology-en.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/terminology-en.png new file mode 100644 index 0000000..c3e2d91 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/terminology-en.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/vosviewer-open.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/vosviewer-open.png new file mode 100644 index 0000000..da7d73e Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/vosviewer-open.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/vosviewer-save.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/vosviewer-save.png new file mode 100644 index 0000000..5c34e77 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/vosviewer-save.png differ diff --git a/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/vosviewer_result.png b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/vosviewer_result.png new file mode 100644 index 0000000..c9b65c6 Binary files /dev/null and b/static/docs/05_Community_Tutorials/01_To_begin_with_gephi/simple-project-from-a-to-z-en/vosviewer_result.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/Importing-a-list-of-edges-with-attributes.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/Importing-a-list-of-edges-with-attributes.png new file mode 100644 index 0000000..5768ce1 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/Importing-a-list-of-edges-with-attributes.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/Importing-a-list-of-nodes-with-attributes.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/Importing-a-list-of-nodes-with-attributes.png new file mode 100644 index 0000000..23adef4 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/Importing-a-list-of-nodes-with-attributes.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/Importing-nodes-with-labels-and-their-relations.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/Importing-nodes-with-labels-and-their-relations.png new file mode 100644 index 0000000..19c634c Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/Importing-nodes-with-labels-and-their-relations.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/Second-screen.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/Second-screen.png new file mode 100644 index 0000000..b16d7ae Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/Second-screen.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/The-attributes-of-the-edges.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/The-attributes-of-the-edges.png new file mode 100644 index 0000000..061d7a3 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/The-attributes-of-the-edges.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/The-attributes-of-the-nodes.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/The-attributes-of-the-nodes.png new file mode 100644 index 0000000..91dc075 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/The-attributes-of-the-nodes.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/import-spreadsheet-3-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/import-spreadsheet-3-en.png new file mode 100644 index 0000000..7f52218 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/import-spreadsheet-3-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/import-spreadsheet-4-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/import-spreadsheet-4-en.png new file mode 100644 index 0000000..832f22b Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/import-spreadsheet-4-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/import-spreadsheet-9-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/import-spreadsheet-9-en.png new file mode 100644 index 0000000..c900cfe Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/import-spreadsheet-9-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/network-formats-gephi-import-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/network-formats-gephi-import-en.png new file mode 100644 index 0000000..51813ad Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/importing-csv-data-in-gephi-en/network-formats-gephi-import-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Adding-a-column-for-Names.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Adding-a-column-for-Names.png new file mode 100644 index 0000000..2989120 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Adding-a-column-for-Names.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Copying-to-this-new-column.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Copying-to-this-new-column.png new file mode 100644 index 0000000..9c322ac Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Copying-to-this-new-column.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Edges-attributes..png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Edges-attributes..png new file mode 100644 index 0000000..50967d5 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Edges-attributes..png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Filter-on-edge-weight.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Filter-on-edge-weight.png new file mode 100644 index 0000000..2caf975 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Filter-on-edge-weight.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Filter-on-the-Gender-attribute.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Filter-on-the-Gender-attribute.png new file mode 100644 index 0000000..36dec6f Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Filter-on-the-Gender-attribute.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Making-the-Filter-panel-visible..png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Making-the-Filter-panel-visible..png new file mode 100644 index 0000000..05ed8a1 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Making-the-Filter-panel-visible..png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/New-filter-available.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/New-filter-available.png new file mode 100644 index 0000000..357fbe5 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/New-filter-available.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Nodes-attributes..png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Nodes-attributes..png new file mode 100644 index 0000000..95bd842 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Nodes-attributes..png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Switching-to-the-data-laboratory.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Switching-to-the-data-laboratory.png new file mode 100644 index 0000000..2f95aa4 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Switching-to-the-data-laboratory.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Workflow-of-filters.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Workflow-of-filters.png new file mode 100644 index 0000000..e9b4bde Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/Workflow-of-filters.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-degree-range-1-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-degree-range-1-en.png new file mode 100644 index 0000000..05aaf9a Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-degree-range-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-edge-weight-en.gif b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-edge-weight-en.gif new file mode 100644 index 0000000..000fd4f Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-edge-weight-en.gif differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-edge-weight-gender-partition-en.gif b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-edge-weight-gender-partition-en.gif new file mode 100644 index 0000000..c20fba1 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-edge-weight-gender-partition-en.gif differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-giant-component-1-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-giant-component-1-en.png new file mode 100644 index 0000000..3934f74 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-giant-component-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-name-1-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-name-1-en.png new file mode 100644 index 0000000..a4b8e57 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-name-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-name-2-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-name-2-en.png new file mode 100644 index 0000000..048215c Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-name-2-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-name-3-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-name-3-en.png new file mode 100644 index 0000000..1bd5004 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-name-3-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-not-1-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-not-1-en.png new file mode 100644 index 0000000..b9c4cdd Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-not-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-not-2-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-not-2-en.png new file mode 100644 index 0000000..0cd2769 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-not-2-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-not-3-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-not-3-en.png new file mode 100644 index 0000000..92c8603 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-not-3-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-union-1-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-union-1-en.png new file mode 100644 index 0000000..b8f5060 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-union-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-union-2-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-union-2-en.png new file mode 100644 index 0000000..6e2ed6e Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-union-2-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-union-3-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-union-3-en.png new file mode 100644 index 0000000..9938be2 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-operator-union-3-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-order-1-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-order-1-en.png new file mode 100644 index 0000000..d6a65ca Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-order-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-order-2-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-order-2-en.png new file mode 100644 index 0000000..ee3202d Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/filter-order-2-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/gephi-welcome-screen-open-graph-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/gephi-welcome-screen-open-graph-en.png new file mode 100644 index 0000000..67835a9 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/gephi-welcome-screen-open-graph-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/opening-file-report-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/opening-file-report-en.png new file mode 100644 index 0000000..0b69bb3 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/opening-file-report-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/operator-mask-1-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/operator-mask-1-en.png new file mode 100644 index 0000000..c8cd302 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/operator-mask-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/operator-mask-2-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/operator-mask-2-en.png new file mode 100644 index 0000000..66192eb Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/operator-mask-2-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/result_miserables.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/result_miserables.png new file mode 100644 index 0000000..b277856 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/using-filters-en/result_miserables.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/Coloring-nodes---second-step.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/Coloring-nodes---second-step.png new file mode 100644 index 0000000..a8c400e Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/Coloring-nodes---second-step.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/gephi-result-1-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/gephi-result-1-en.png new file mode 100644 index 0000000..bd999cf Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/gephi-result-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/hiding-edges.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/hiding-edges.png new file mode 100644 index 0000000..5e71e0c Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/hiding-edges.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-coloring-communities-1-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-coloring-communities-1-en.png new file mode 100644 index 0000000..1bf9678 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-coloring-communities-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-import-1-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-import-1-en.png new file mode 100644 index 0000000..88e6be5 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-import-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-preview-1-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-preview-1-en.png new file mode 100644 index 0000000..350ac1c Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-preview-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-resize-nodes1-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-resize-nodes1-en.png new file mode 100644 index 0000000..d5408b7 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-resize-nodes1-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-spatializing-1-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-spatializing-1-en.png new file mode 100644 index 0000000..f99388b Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-spatializing-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-spatializing-2-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-spatializing-2-en.png new file mode 100644 index 0000000..7609a32 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-spatializing-2-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-spatializing-3-en.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-spatializing-3-en.png new file mode 100644 index 0000000..8ed0098 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/semantic-spatializing-3-en.png differ diff --git a/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/showing-node-labels.png b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/showing-node-labels.png new file mode 100644 index 0000000..592c7e8 Binary files /dev/null and b/static/docs/05_Community_Tutorials/02_Key_use_cases/working-with-text-en/showing-node-labels.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Choose-the-menu-Tools-then-Plugins.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Choose-the-menu-Tools-then-Plugins.png new file mode 100644 index 0000000..6c39d7a Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Choose-the-menu-Tools-then-Plugins.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Click-on-the-tab-Available-Plugins.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Click-on-the-tab-Available-Plugins.png new file mode 100644 index 0000000..edcf3e7 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Click-on-the-tab-Available-Plugins.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Install-the-plugin-Convert-Excel-and-Csv-files-and-restart-Gephi.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Install-the-plugin-Convert-Excel-and-Csv-files-and-restart-Gephi.png new file mode 100644 index 0000000..982b7fc Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Install-the-plugin-Convert-Excel-and-Csv-files-and-restart-Gephi.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Open-the-plugin-via-the-menu-File---Import.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Open-the-plugin-via-the-menu-File---Import.png new file mode 100644 index 0000000..41ed063 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Open-the-plugin-via-the-menu-File---Import.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Select-a-file.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Select-a-file.png new file mode 100644 index 0000000..aa48927 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/Select-a-file.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/commas-shown-in-red.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/commas-shown-in-red.png new file mode 100644 index 0000000..64b5d8b Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/commas-shown-in-red.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/excel-1-en.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/excel-1-en.png new file mode 100644 index 0000000..c248992 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/excel-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/excel-2-en.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/excel-2-en.png new file mode 100644 index 0000000..9a6a88a Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/excel-2-en.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/gephi-result-1-en.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/gephi-result-1-en.png new file mode 100644 index 0000000..bd999cf Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/gephi-result-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/inner-links-excluded.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/inner-links-excluded.png new file mode 100644 index 0000000..ca1d2f9 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/inner-links-excluded.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/inner-links-included.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/inner-links-included.png new file mode 100644 index 0000000..261eb2f Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/inner-links-included.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/panel-6-1-en.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/panel-6-1-en.png new file mode 100644 index 0000000..1741e91 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/panel-6-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/plugin-panels-1-en.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/plugin-panels-1-en.png new file mode 100644 index 0000000..b1b3a3e Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/plugin-panels-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/subfield-delimiter-en.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/subfield-delimiter-en.png new file mode 100644 index 0000000..49cbeaf Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/cooccurrences-computer-en/subfield-delimiter-en.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-config-2.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-config-2.png new file mode 100644 index 0000000..1c23ee4 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-config-2.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-config.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-config.png new file mode 100644 index 0000000..531ec45 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-config.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-install-plugin.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-install-plugin.png new file mode 100644 index 0000000..6f6722a Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-install-plugin.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-simple-c2c.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-simple-c2c.png new file mode 100644 index 0000000..09dcd2a Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-simple-c2c.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-simple-graph.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-simple-graph.png new file mode 100644 index 0000000..9562e82 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-simple-graph.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-simple-p2p.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-simple-p2p.png new file mode 100644 index 0000000..be3aba6 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/k-partite-bi-partite-graph-en/k-partite-simple-p2p.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en/result_1.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en/result_1.png new file mode 100644 index 0000000..b4cd588 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en/result_1.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en/setup_1.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en/setup_1.png new file mode 100644 index 0000000..a565a26 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en/setup_1.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en/setup_2.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en/setup_2.png new file mode 100644 index 0000000..330a09e Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/semantic-web-importer-en/setup_2.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/An-Excel-file.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/An-Excel-file.png new file mode 100644 index 0000000..e485b09 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/An-Excel-file.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Choose-the-menu-Tools-then-Plugins.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Choose-the-menu-Tools-then-Plugins.png new file mode 100644 index 0000000..6c39d7a Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Choose-the-menu-Tools-then-Plugins.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Click-on-the-tab-Available-Plugins.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Click-on-the-tab-Available-Plugins.png new file mode 100644 index 0000000..edcf3e7 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Click-on-the-tab-Available-Plugins.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Install-the-plugin-Similarity-Computer-then-restart-Gephi.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Install-the-plugin-Similarity-Computer-then-restart-Gephi.png new file mode 100644 index 0000000..158440e Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Install-the-plugin-Similarity-Computer-then-restart-Gephi.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Open-the-plugin-via-the-menu-File---Import.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Open-the-plugin-via-the-menu-File---Import.png new file mode 100644 index 0000000..41ed063 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Open-the-plugin-via-the-menu-File---Import.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Select-a-file.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Select-a-file.png new file mode 100644 index 0000000..aa48927 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/Select-a-file.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/file-with-header-en.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/file-with-header-en.png new file mode 100644 index 0000000..27b237e Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/file-with-header-en.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/file-without-header-en.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/file-without-header-en.png new file mode 100644 index 0000000..5fc6f5f Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/file-without-header-en.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/numerical-attributes-en.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/numerical-attributes-en.png new file mode 100644 index 0000000..bf3af12 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/numerical-attributes-en.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-4-en.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-4-en.png new file mode 100644 index 0000000..48d7feb Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-4-en.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-5-en.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-5-en.png new file mode 100644 index 0000000..6ae664e Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-5-en.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-6-en.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-6-en.png new file mode 100644 index 0000000..5506f32 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-6-en.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-7-en.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-7-en.png new file mode 100644 index 0000000..00e93e8 Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/plugin-7-en.png differ diff --git a/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/result.png b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/result.png new file mode 100644 index 0000000..637b8ae Binary files /dev/null and b/static/docs/05_Community_Tutorials/03_Learn_how_to_use_plugins_for_Gephi/similarity-computer-en/result.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Merge-columns.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Merge-columns.png new file mode 100644 index 0000000..f17fb0a Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Merge-columns.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Result.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Result.png new file mode 100644 index 0000000..62b7a59 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Result.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Set-up-the-parameters---1.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Set-up-the-parameters---1.png new file mode 100644 index 0000000..4905656 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Set-up-the-parameters---1.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Switching-to-the-data-laboratory.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Switching-to-the-data-laboratory.png new file mode 100644 index 0000000..2f95aa4 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Switching-to-the-data-laboratory.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Zoom-on-three-attributes-representing-time.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Zoom-on-three-attributes-representing-time.png new file mode 100644 index 0000000..802cd26 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/Zoom-on-three-attributes-representing-time.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/gephi-welcome-screen-open-graph-en.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/gephi-welcome-screen-open-graph-en.png new file mode 100644 index 0000000..67835a9 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/gephi-welcome-screen-open-graph-en.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/moving-timeline-miserables-1-en.gif b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/moving-timeline-miserables-1-en.gif new file mode 100644 index 0000000..85dec23 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/moving-timeline-miserables-1-en.gif differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/opening-file-report-en.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/opening-file-report-en.png new file mode 100644 index 0000000..0b69bb3 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/opening-file-report-en.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/result_miserables.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/result_miserables.png new file mode 100644 index 0000000..b277856 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/converting-a-network-with-dates-into-dynamic/result_miserables.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/A-few-nodes-have-been-created.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/A-few-nodes-have-been-created.png new file mode 100644 index 0000000..c82b501 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/A-few-nodes-have-been-created.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Choosing-the-gexf-file-format.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Choosing-the-gexf-file-format.png new file mode 100644 index 0000000..d4697a1 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Choosing-the-gexf-file-format.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Closing-the-current-project.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Closing-the-current-project.png new file mode 100644 index 0000000..d409a68 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Closing-the-current-project.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Enable-the-timeline.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Enable-the-timeline.png new file mode 100644 index 0000000..5495445 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Enable-the-timeline.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Exporting-the-network.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Exporting-the-network.png new file mode 100644 index 0000000..94c0f3e Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Exporting-the-network.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Icon-for-node-creation.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Icon-for-node-creation.png new file mode 100644 index 0000000..6c654a2 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Icon-for-node-creation.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Import-report-window.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Import-report-window.png new file mode 100644 index 0000000..a6aadf5 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Import-report-window.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Open-a-new-project.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Open-a-new-project.png new file mode 100644 index 0000000..dcfbb02 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Open-a-new-project.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Opening-2-files-at-once.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Opening-2-files-at-once.png new file mode 100644 index 0000000..3dffa60 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Opening-2-files-at-once.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Opening-files.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Opening-files.png new file mode 100644 index 0000000..8fac8fb Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Opening-files.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Sliding-the-timeline.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Sliding-the-timeline.png new file mode 100644 index 0000000..3142d85 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/Sliding-the-timeline.png differ diff --git a/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/The-network-file-opened.png b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/The-network-file-opened.png new file mode 100644 index 0000000..f9bed67 Binary files /dev/null and b/static/docs/05_Community_Tutorials/04_Dynamic_networks/creating-a-simple-dynamic-network/The-network-file-opened.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/Cloning-the-gephi-source.png b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/Cloning-the-gephi-source.png new file mode 100644 index 0000000..3b038cc Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/Cloning-the-gephi-source.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/Launching-Gephi.png b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/Launching-Gephi.png new file mode 100644 index 0000000..bc00d05 Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/Launching-Gephi.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/enclosing-circles-1-en.png b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/enclosing-circles-1-en.png new file mode 100644 index 0000000..d804abb Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/enclosing-circles-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/enclosing-circles-2-en.png b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/enclosing-circles-2-en.png new file mode 100644 index 0000000..edaf7bf Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/enclosing-circles-2-en.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-0-en.png b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-0-en.png new file mode 100644 index 0000000..ac36d69 Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-0-en.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-2-en.png b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-2-en.png new file mode 100644 index 0000000..98d3c3a Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-2-en.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-3-en.png b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-3-en.png new file mode 100644 index 0000000..dc0086b Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-3-en.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-4-en.png b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-4-en.png new file mode 100644 index 0000000..6b3a041 Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-4-en.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-5-en.png b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-5-en.png new file mode 100644 index 0000000..a07f21f Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/git-clone-gephi-5-en.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/netbeans-gephi-source-1-en.png b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/netbeans-gephi-source-1-en.png new file mode 100644 index 0000000..fe15a5b Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/netbeans-gephi-source-1-en.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/netbeans-gephi-source-2-en.png b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/netbeans-gephi-source-2-en.png new file mode 100644 index 0000000..81c188e Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/netbeans-gephi-source-2-en.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/netbeans-gephi-source-3-en.png b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/netbeans-gephi-source-3-en.png new file mode 100644 index 0000000..dec4546 Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/netbeans-gephi-source-3-en.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/opening-CompatibilityEngine.java.png b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/opening-CompatibilityEngine.java.png new file mode 100644 index 0000000..feaf178 Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/opening-CompatibilityEngine.java.png differ diff --git a/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/use-the-source.jpg b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/use-the-source.jpg new file mode 100644 index 0000000..46b7e75 Binary files /dev/null and b/static/docs/05_Community_Tutorials/05_Gephi_for_developers/working-from-the-source/use-the-source.jpg differ