Skip to content

pdonorio/irods2graph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data objects mapped to Graph DB

Project for EUDAT (http://eudat.eu/) - Work Package 9.2. Experimenting with graph databases on connecting entities across the different services.

### Models Instance related to B2Safe service

DataObject{Location:'irods://host:port/ZONE/path'} - [:IS_LOCATED_IN] -> Zone DataObject - [:STORED_IN] -> Resource - [:IS_AVAILABLE_IN] -> Zone DataObject - [:IS_OWNED_BY] -> Person DataObject - [:BELONGS_TO] -> Collection [:INSIDE] -> Collection [:IS_PLACED_IN] -> Zone Note: Path is computable from Collections walking DataObject - [:DESCRIBED_BY] -> MetaData Collection - [:DESCRIBED_BY] -> MetaData Resource - [:DESCRIBED_BY] -> MetaData DataObject - [:UNIQUELY_IDENTIFIED_BY] -> PID{EudatChecksum:'xyz'} Note: PID is also a Metadata attribute (PID: x/y-z-w) but since Checksum is its property it is better handled as a node DataObject - [:IS_REPLICA_OF{PPID, ROR}] -> DataObject Note: PPID = PID of replicated object, computable by query Note: ROR is the ancestor, the first element. Should be computable. Note: Replica relation is preferable a node instead of property { Replica: 0/1 } # To be added as model/properties: # - checksum timestamp (integrity) # - ACL 

These models are mapped as objects inside the python project using the neomodel OGM library

Get started

Initial setup to launch docker containers

cd containers ./restart # A working client shell will open ./app.py -h # Show usage of the main app 

Now you can choose between a local connection or remote.

Local environment (irods + graphdb + client on the same test machine, e.g. laptop)

bash bootstrap.sh # You will be prompted for irods password. It's 'mytest' 

There will be a first random data creation and insert. It will be followed by conversion to graph. At this point you may open http://localhost/ to use ipython notebooks.

Remote environment (irods server is with real data in production)

Edit 'irodsgraph/bootstrap.sh' to verify if irods data are correct. Then:

bash bootstrap.sh remote # You will be prompted for your real irods password. ./app.py convert --elements=10 # Port 10 elements from your irods server to the local graph db. 

At this point you may:

N.B. localhost may be your server IP (e.g. if you use docker with virtualbox)

About

EUDAT (http://eudat.eu/) Work Package 9.2: experimenting with graph database on entities across the various services

Resources

License

Stars

Watchers

Forks

Packages

No packages published