The app can be tested by simply opening explorerjs.html and providing a graph in `json` or `gexf` format (see exemples in the `data/` dir.)
#### Basic integration policy
#### Input file setup and advanced usage
ProjectExplorer allows 4 main ways of input :
-**localfile**: a local file from the client machine
-**serverfile**: a static file from the remote server
-**servermenu**: a list of static files from the remote server
-**api**: a dataset from a remote server API
To set up the desired mode, you need to change the (`TW.conf.sourcemode`) value in settings_explorerjs.js or add `sourcemode=xxx` as a URL argument.
See [the developer's manual](https://github.com/moma/ProjectExplorer/blob/master/00.DOCUMENTATION/C-advanced/developer_manual.md) for more information.
#### Integration policy
As a client-side lib, **tinawebJS can entirely reside in the `static` directory of your app**.
For the rest of the exemples we assume you cloned the code in a directory called `path/to/yourapp/static/ProjectExplorer`
...
...
@@ -68,22 +79,3 @@ There are two exceptions are:
- while part of the distribution, they are **standalone micro-servers**
- they contain their own readme as to how to run them on a server
- once they are configured or run, the communication between them and the main tinaweb client module happens via XHR requests: therefore they can actually reside in any convenient place for your deployment.
#### Advanced usage
cf. developer_manual.md
#### old TODO update
- "JS Mode": TinawebJS est utilisé juste a niveau Javascript (HTML+CSS+JS), sans aide des modules php/python. C'est la version standalone, ça veut dire "lecture d'un fichier GEXF ou JSON".
- "JS+PHP Mode": Quand il y a des GEXF|JSON et en plus une BD en sqlite en format CorText (manager.cortext.net). En ce mode on dois declarer une db.json avec l'info necessaire.
Expected type is `"CortextDB"` and you should fill the tables to search in.
```json
"reldbs":{
"CortextDB":{
"file":"$$relpath/to/some.db",
"qtable":"$$tableNameToSearchIn",
"template":"cortext_with_link"
}
}
```
###### => for twitter queries
Expected type is `"twitter"` and no additional conf is needed (POSS for the future: add twitter query context, ex: "Présidentielles 2017 AND (query)").
```json
"reldbs":{
"twitter":{}
}
```
###### Real life examples
```json
"data/gargistex":{
"first":"shale_and_ice.gexf",
"graphs":{
"shale_and_ice.gexf":{
"node0":{
"name":"terms",
"reldbtype":"csv",
"reldbfile":"shale_and_ice.csv",
"reldbqcols":["title","abstract"]
"graphs":{
"model_calibration.gexf":{
"node0":{
"name":"terms",
"reldbs":{
"csv":{
"file":"model_calibration.csv",
"qcols":["title"],
"template":"bib_details"
},
"twitter":{}
}
}
}
}
},
"data/test":{
"first":"mini_for_csv.gexf",
"graphs":{
"mini_for_csv.gexf":{
"node0":{
"name":"terms",
"reldbs":{
"csv":{
"file":"mini_for_csv.csv",
"qcols":["title","keywords","text"],
"template":"bib_details"
},
"twitter":{}
}
},
"model_calibration.gexf":{
"node0":{
"name":"terms",
"reldbtype":"csv",
"reldbfile":"model_calibration.csv",
"reldbqcols":["title","abstract"]
"node1":{
"name":"authors",
"reldbs":{
"csv":{
"file":"mini_for_csv.csv",
"qcols":["author"],
"template":"bib_details"
}
}
}
}
}
}
```
###### => for CortextDB SQL tables
Expected type is `"CortextDB"` and you should fill the table to search in.
```json
"reldbtype":"CortextDB",
"reldbqtable":[]
```
In the last exemple, we have two nodetypes:
- node0 allows both CSV and twitter relatedDocs tabs.
This is a stub for a future documentation for developers.
#### About settings
- system-wide settings are in `settings_explorerjs.js`
- source-by-source settings (nodetypes, relatedDocs APIs) are in `db.json`
## Graph input choices
...
...
@@ -13,7 +16,7 @@ Tina allows 3 main ways of input :
The `sourcemode` value is by default the one in settings_explorerjs.js (`TW.conf.sourcemode`), unless an url argument of the same name is present.
The `serverfile` option has an extended version called `servermenu`. It opens a list of files called`db.json` on the server, providing a menu to choose from it.
The `serverfile` option has an extended version called `servermenu`. It opens the list of files from`db.json` on the server, providing a menu to choose from it.
The detailed implementation of these choices can be found in the function `syncRemoteGraphData()` in main.js.
...
...
@@ -32,7 +35,8 @@ This will still evolve but the main steps for any graph initialization messily u
4.[`main.js`] mainStartGraph() function runs all the rest
2. calls [`sigmaUtils`] where the function `FillGraph()` was a central point for filtering and preparing properties but now with 2 and 3 it just creates a filtered copy of the nodes and edges of the current active types to a new structure that groups them together (POSSIBLE remove this extra step)
3. back in [`main.js`], finally all sigma settings (user + defaults) are merged and we initialize the sigma instance (`new sigma` etc.)
3. back in [`main.js`], finally all sigma settings (user + defaults) are merged and we initialize the sigma instance (`new sigma` etc.)
at this point, any additional conf located in db.json is used for nodeTypes and relatedDocsTypes
4. finally a call to [`TinawebJS`] initializes the action listeners and this phase should crucially initialize items that need the sigma instance (because they may depend the displayed categories, the number of displayed nodes, etc)
This work is lead by the Complex Systems Institute of Paris Ile-de-France (ISC-PIF, http://iscpif.fr) and the Centre D'analyse et de Mathématiques Sociale, both CNRS entities.
### Presentation
HOMEPAGE
http://tinasoft.eu/
Thank you for using ProjectExplorer/TinawebJS.
SOURCE CODE REPOSITORY
This work is lead by the Complex Systems Institute of Paris Ile-de-France ([ISCPIF](http://iscpif.fr)) and the [Centre d'Analyse et de Mathématique Sociales](http://cams.ehess.fr/), both [CNRS](http://www.cnrs.fr/) entities.
https://github.com/moma/explorerjs
###### Source code repository
https://github.com/moma/ProjectExplorer
AUTHORS
###### Authors
- Researchers and engineers of the ISC-PIF
David Chavalarias <daviddotchavalariasatiscpif...fr>
Samuel Castillo
Researchers and engineers of the [ISCPIF/CNRS - UPS 3611](http://iscpif.fr)
- Dr. David Chavalarias
- Samuel Castillo
- Romain Loth
Aknowledgments
You can contact the authors by email (<firstname.lastname@iscpif.fr>).
Former Tina developpers (java based software from which tinawebJS is adapted)
elias showk <elishowk_at-nonutc.fr>
julian bilcke <julian.bilcke_at-iscpif.fr>
###### Acknowledgements
- TinawebJS is build on top of Alexis Jacomy and Guillaume Plique's [sigmaJS](http://sigmajs.org)
- This work is the continuation of the TINA project, an European Union FP7 project - FP7-ICT-2009-C
- Former Tina developpers (java based software from which tinawebJS is adapted)
-[Elias Showk](https://github.com/elishowk)
-[Julian Bilcke](https://github.com/jbilcke)
TinawebJS is build on Alexis Jacomy's sigmaJS (http://sigmajs.org)
This work is the continuation of the TINA project, an European Union FP7 project - FP7-ICT-2009-C
REQUIREMENTS
WEB BROWSER compatible with javascript : we recommend Chrome/Chromium or Firefox
### Usage
HOW TO USE:
ProjectExplorer is a versatile app that can be used as standalone or as a client library. The documentation concerning the different setup cases is being updated after a major refactoring and will grow in time.
- Put a mono or bipartite gexf, e.g.: Somemap.gexf, inside "data/" folder.
Here are the main points.
- And then see it in your http://localhost/../../explorerjs.html?file=data/Somemap.gexf
###### Getting started
In the simplest setup, just clone the repository and open explorerjs.html in a modern browser.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
Once you have this webserver running and some source data files, you may also configure a "sources list":
- it will be shown as a **menu** to select graphs in the interface
- it allows to define associated **node types** for each source
- it allows to define associated **search backends** for each source
- to use this, follow the guidelines in the **[Servermenu HOWTO](https://github.com/moma/ProjectExplorer/blob/master/00.DOCUMENTATION/A-Introduction/servermenu_config.md)**
the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
###### Integration in a larger app
To integrate ProjectExplorer in a larger web application, you may have several locations with subdirectories defined on your server. In this case, you'll need to use the provided path modification tool (see this [integration procedure example](https://github.com/moma/ProjectExplorer/tree/master/00.DOCUMENTATION/A-Introduction#integration-policy))
###### Advanced settings
For more information about other ProjectExplorer's settings (settings file, input modes, attribute processing options), please refer to the [developer's manual](https://github.com/moma/ProjectExplorer/blob/master/00.DOCUMENTATION/C-advanced/developer_manual.md).
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
### Copyright and license
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/gpl.html>.
Copyright (c) 2013-2017 **ISCPIF** --
**CAMS** -- **Centre National de la Recherche Scientifique**
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/gpl.html.