-------------------------- --- INSTALLATION-LOG --- -------------------------- Version: 1.0 Date: 04-MAR-2011 Author: Ibrahim Elsayed This document is the installation log of the packaged dataspace-based infrastructure on a virtual machine. -------------------------- --- SYSTEM INFORMATION --- -------------------------- OS: Linux Ubuntu 10.10 User: user PW: password Admin PW: password Root PW: password ---------------- - INTRODUCTION - ---------------- The outputs of Task 3.1 "Package dataspace-based infrastructure as a VM image" are documented within this report. In particular, the tests including their results on software components of a virtual machine are described. Software versions and settings (e.g. db and server configurations, usernames, passwords) as installed on the virtual machine are documented as well. An installation log is provided at the end of this document. The information provided in this report should be seen as an input for the gap analysis to be done within Task 3.2. --------------------------------- - INSTALLED SOFTWARE COMPONENTS - --------------------------------- - iRODS 2.4.1 - iRODS 2.5 - JOSEKI 3.4.3 - SPARQL-ADERIS - PROTEGE 4.1 BETA - jSPACE 1.1 --------------------- - TESTS AND RESULTS - --------------------- - iRODS 2.4.1 - iRODS 2.5 - JOSEKI 3.4.3 - SPARQL-ADERIS - PROTEGE 4.1 BETA - jSPACE 1.1 iRODS - ------- iRODS version 2.4.1 and 2.5 where tested with the following clients. Details about the configuration and username/passwords as well as the commands on how to start and stop each version of the iRODS Server can be found in the INSTALLATION-LOG part of this report. a) i-Commands Client - several i-Commands are tested, see the installation log below. More information on the i-commands client including a comprehensive tutorial is available online at: http://www.irods.org/index.php/Tutorial b) iRODS Web Browser Client-Since the virtual machine is(was)not accessible from outside the iRODS Web Browser was installed local and is integrated into the Apache web-server running on locally. It can be accessed at: http://localhost/rodsweb c) Java Client using Jargon the Java API for iRODS. A client that accessed the iRODS Server is implemented and tested. Source code is available in the SVN at: /trunk/TestIRODS/ - JOSEKI - ---------- The Joseki RDF server is set up and tested with sample queries and different output formats. Details on how to start and configure Joseki on the virtual machine can be found in the installation log below. Once started with the default configuration the server will running at: http://localhost:2020/ - SPARQL-ADERIS - ----------------- SPARQL-ADERIS is tested within jSpace, see Section jSPACE and the installation log, respectively. - PROTEGE - ----------- Protege is tested with multiple OWL ontologies as follows: a) Ontologies from the TONES repository b) e-Science Life Cycle Ontology (version 3.0) Details on how to start and use protege with the above mentioned ontologies can be found in the installation below. - jSPACE - ---------- jSpace is tested with a local RDF Store and a global RDF Store. The global store represents the collection of multiple distributed RDF-Stores. Therefore multiple RDF Stores where set up as SPARQL enpoints to be accessible by the SPARQL-ADERIS distributed SPARQL query processing component that is integrated in jSpace. A real data set from the Austrian Grid project was distributed across multiple RDF Stores to test jSpace with a global RDF Store. jSpace is tested with several sample SPARQL queries on top of that real test data. More information on this test data in given in the next Section. Technical details e.g. how to start jSpace and submit queries, etc can be found in the installation log below. - TEST DATA - ------------- The test data available from the Austrian Grid project includes a description of three real breath gas analysis studies. It was collected from breath researchers using forms. These forms were then used to create individuals and properties of the e-Science life cycle ontology using the individual editor embedded in the Protege software. The results are three life cycle resources based on real breath gas analysis studies. These life cycle resources where inserted into the local RDF store using jSPACE. The test data is also available as SPARQL Endpoint via the JOSEKI RDF Server. Below is a list of available SPARQL endpoints set up to access the above described test data (Life Cycle Resources) from the Austrian Grid Project. ----------------------------------------------------------------------------------------- |No | Location | URL | LCR No| ----------------------------------------------------------------------------------------- |1 | Vienna | http://lela.gridlab.univie.ac.at:2021/sparql.html | LCR1 | |2 | Dornbirn | http://fz-ppe.uclv.net:2030/sparql.html | LCR2 | |3 | Tsukuba | http://db02.hpcc.jp:2020/sparql | LCR3 | ----------------------------------------------------------------------------------------- SPARQL endpoints hosting test data (No 3 currently down) -------------------------------------------------------- ------------------- INSTALLATION-LOG ------------------- -------------------------------------------------------- - PREPARATIONS - ---------------- Java 6 SDK (1.6.0.24 is installed) JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.24 MySQL DB (XAMPP 1.7.4 is installed) all commands to install and configure XAMPP on Ubuntu are available in the following how-to that was used: http://www.devshed.com/c/a/Administration/How-to-Install-XAMPP-on-Ubuntu-Linux/ XAMPP 1.7.4 includes: PHP 5.3.5 Apache 2.2.17 /username: lampp password: password MySQL 5.5.8 /username: root password: password phpMyAdmin 3.3.9 /username: root/pma password: password FTP username: nobody password: password Start XAMPP (as root): /opt/lampp/lampp restart install subversion: apt-get install subversion ---------------------------- - iRODS 2.4.1 INSTALLATION - ---------------------------- iRODS directory: /home/user/development/iRODS/ Command to install iRODS: irodssetup Include additional promts for advanced settings: no Build an iRODS server: yes Make this Server ICAT-Enabled: yes iRODS zone name: abaZone iRODS login name: rods Password: rods Download and build a new Postgres DBMS: yes New Postgres directory: ../postgres New database login name: ibrahim Password: pgdbpw PostgreSQL version: postgresql-9.0.0 ODBC version: unixODBC-2.2.12 Include GSI: no Save configuration (irods.config): yes ---irods configuration in config/irods.config--- $DATABASE_TYPE = 'postgres'; $DATABASE_ODBC_TYPE = 'unix'; $DATABASE_EXCLUSIVE_TO_IRODS = '1'; $DATABASE_HOME = '/home/user/development/postgres/pgsql'; $DATABASE_LIB = ''; $DATABASE_HOST = 'ubuntu'; $DATABASE_PORT = '5432'; $DATABASE_ADMIN_PASSWORD = 'pgdbpw'; $DATABASE_ADMIN_NAME = 'ibrahim'; $IRODS_HOME = '/home/user/development/iRODS'; $IRODS_PORT = '1247'; $SVR_PORT_RANGE_START = ''; $SVR_PORT_RANGE_END = ''; $IRODS_ADMIN_NAME = 'rods'; $IRODS_ADMIN_PASSWORD = 'rods'; $IRODS_ICAT_HOST = ''; $DB_NAME = 'ICAT'; $RESOURCE_NAME = 'demoResc'; $RESOURCE_DIR = '/home/user/development/iRODS/Vault'; $ZONE_NAME = 'abaZone'; $DB_KEY = '123'; $GSI_AUTH = '0'; $GLOBUS_LOCATION = ''; $GSI_INSTALL_TYPE = ''; ---irods configuration in config/irods.config--- ------------- - iRODS 2.5 - ------------- iRODS 2.5 directory: /home/user/development/iRODS-2.5/ Command to install iRODS: irodssetup Include additional promts for advanced settings: no Build an iRODS server: yes Make this Server ICAT-Enabled: yes iRODS zone name: abaZone iRODS login name: rods Password: password Download and build a new Postgres DBMS: yes New Postgres directory: ../postgres-9.0.3 New database login name: ibrahim Password: password PostgreSQL version: postgresql-9.0.3 ODBC version: unixODBC-2.2.12 Include GSI: no Save configuration (irods.config): yes ---irods 2.5 configuration in config/irods.config--- $DATABASE_TYPE = 'postgres'; $DATABASE_ODBC_TYPE = 'unix'; $DATABASE_EXCLUSIVE_TO_IRODS = '1'; $DATABASE_HOME = '/home/user/development/postgres-9.0.3/pgsql'; $DATABASE_LIB = ''; $DATABASE_HOST = 'ubuntu'; $DATABASE_PORT = '5432'; $DATABASE_ADMIN_PASSWORD = 'password'; $DATABASE_ADMIN_NAME = 'ibrahim'; $IRODS_HOME = '/home/user/development/iRODS-2.5'; $IRODS_PORT = '1247'; $SVR_PORT_RANGE_START = ''; $SVR_PORT_RANGE_END = ''; $IRODS_ADMIN_NAME = 'rods'; $IRODS_ADMIN_PASSWORD = 'password'; $IRODS_ICAT_HOST = ''; $DB_NAME = 'ICAT'; $RESOURCE_NAME = 'demoResc'; $RESOURCE_DIR = '/home/user/development/iRODS-2.5/Vault'; $ZONE_NAME = 'abaZone'; $DB_KEY = '123'; $GSI_AUTH = '0'; $GLOBUS_LOCATION = ''; $GSI_INSTALL_TYPE = ''; ---irods 2.5 configuration in config/irods.config--- -------------- - Test iRODS - -------------- a) start iRODS Server: ---------------------- cd into iRODS directory: ./irodsctl start b) test i-commands client: -------------------------- After installation completed successfully update the PATH: PATH=/Users/ibrahim/development/iRODS/clients/icommands/bin:$PATH establish a session to use the i-commands client: iinit Enter your current iRODS password: rods imiscsvrinfo --> display info about the iRODS server ils ls > testfile --> create a testfile with ls input iput testfile --> insert the testfile iput /home/user/development/data/testfile2 --> insert another testfile ils -l --> show files in iRODS including the replica number, resource on which it is stored, the size and date, as well as a flag and the name. ils -L --> shows also the physical path of the files in the iRODS storage resource. Files are saved/replicated in /home/user/development/iRODS/Vault/home/rods/ iget -f testfile --> copies the file into iRODS root directory (overwrites local copy) iquest --> SQL-like command syntax for iCAT queries iquest "select sum(DATA_SIZE), RESC_NAME where COLL_NAME like '/abaZone/home/rods%'" --> returns data size and resource name iexit --> log out c) set up iRODS Web Browser Client ---------------------------------- svn checkout http://extrods.googlecode.com/svn/trunk/ extrods-read-only symbolic link under Apache's htdocs directory pointing to this web directory: cd /opt/lampp/htdocs ln -s /home/user/development/iRODS/extrods-read-only/clients/web rodsweb make sure htaccess-per-directory and symbalic-link is allowed in Apache's config file in --> Options Indexes FollowSymLinks MultiViews --> AllowOverride All /opt/lampp/etc/httpd.conf Change owner of extrods folder: sudo chown -R user:user extrods-read-only extract extjs.zip and rename the folder to extjs rename extrods-read-only to extrods update symbolic link: cd /opt/lampp/htdocs ln -s /home/user/development/iRODS/extrods/clients/web rodsweb then go to: http://localhost/rodsweb Host/IP: localhost Port: 1247 username: rods Password: rods d) Use Jargon - Java API for iRODS (2.4.1) ------------------------------------------ to get jargon download jargon2.0.5.jar from: http://code.google.com/p/extrods/downloads/list create Java project in eclipse and add jargon to the java Build path. add iRODSTestClient.java from the SVN to the project. Run iRODSTestClient.java to test the client. add IRODSMetaDataTest.java from the SVN to the project. Run IRODSMetaDataTest.java to test the meta data functions with the iRODS server. ---------------- - Joseki-3.4.3 - ---------------- Download Joseki-3.4.3.zip from: http://sourceforge.net/projects/joseki/files/Joseki-SPARQL/Joseki-3.4.3/joseki-3.4.3.zip/download Unzip to: /home/user/development/Joseki make the scripts executable: chmod u+x bin/* Set the JOSEKIROOT environment variable to /home/user/development/Joseki in the environment file: sudo nano /etc/environment ---------------------------------- - Test Joseki-3.4.3 installation - ---------------------------------- a) Start Joseki Server: ----------------------- cd $JOSEKIROOT execute: bin/rdfserver b) Test Joseki Server: ---------------------- Go to: http://localhost:2020/query.html 1) in the top box type in the following Select query: -----query begin------------------------------------ PREFIX books: PREFIX dc: SELECT ?book ?title WHERE { ?book dc:title ?title } -----query end-------------------------------------- Select an output format Click on "Get Results" Result: Query results in the selected output format 2) in the bottom box type in the following Construct query: -----query begin------------------------------------ PREFIX dc: CONSTRUCT { $book dc:title $title } WHERE { $book dc:title $title } -----query end-------------------------------------- Click on "Get Results" Result: an RDF graph with the query results ------------------------ - Protege_4.1_beta.218 - ------------------------ Provides full support of OWL 2.0 Download Zip archive from: http://protege.stanford.edu/download/protege/4.1/zip/?C=M;O=D Extract to: /home/user/development/Protege_4.1_beta ------------------------------------------ - Test Protege_4.1_beta.218 installation - ------------------------------------------ a) start Protege: ----------------- cd into Protege directory: cd into /home/user/development/Protege_4.1_beta execute the command in run.sh: java -Xmx500M -Xms250M \ -Dlog4j.configuration=file:log4j.xml \ -DentityExpansionLimit=100000000 \ -Dfile.encoding=UTF-8 \ -classpath bin/felix.jar:bin/ProtegeLauncher.jar \ org.protege.osgi.framework.Launcher b) test Protege with Ontology from the TONES repository: -------------------------------------------------------- e.g. the family ontology OWLViz requires that Graphiz (www.Graphiz.org) is installed and the path to the DOT application is set properly (in options). c) test Protege with the e-Science life cycle Ontology: ------------------------------------------------------- 1) Start Protege as in a) 2) Select "Open OWL ontology from URI" 3) type in the URI: http://www.gridminer.org/e-sciencelifecycle/lifecycleontology_v3.0.owl 4) Explore the ontology using Protege ----------------- - SPARQL-ADERIS - ----------------- There is no need to install SPARQl-ADERIS as a standalone tool or to use the SPARQL-ADERIS GUI, because the SPARQL-ADERIS API is invoked in jSpace and will be used within jSpace to query multiple RDF Stores. --------------------------- - jSpace-1.0 installation - --------------------------- Unzip jSpace-1.0.zip into /home/development/jSpace-1.0 setup local RDF store for jSpace: Start MySQL database (xampp): sudo /opt/lampp/lampp start create a new database named "lifecycle" in MySQL using phpMyAdmin in xampp cd into jSpace directory: cd /home/development/jSpace-1.0 execute setup: ant setup jSpace Configuration is currently hard-coded and can be find in the file jSpaceSetup.java in the org.gridminer.jspace.config package ---RDF-Store Settings---------------------------- DB_URL = "jdbc:mysql://localhost:3306/lifecycle"; DB_USER = "root"; DB_PASSWD = "password"; DB = "MySQL"; DB_DRIVER = "com.mysql.jdbc.Driver"; Source = "http://www.gridminer.org/e-sciencelifecycle/lifecycleontology_v3.0_LCR1.owl" ------------------------------------------------- Results: A local RDF Store is set up and data (the e-science life cycle ontology including individuals and properties) is being loaded into the RDF store. ---------------------------- - Test jSpace installation - ---------------------------- a) start e-Science life cycle composer: --------------------------------------- cd into jSpace directory: cd /home/development/jSpace-1.0 ant compose b) test e-Science life cycle composer: --------------------------------------- Fill out the forms in each tab then click on OK. open a Web browser and got to: file:///home/user/development/jSpace-1.0/LCR234.xml to see the created life cycle resource in XML file format. Results: A file is being created in XML format to represent a complete life cycle resource (LCR). Either this file could be parsed or data is taken directly from the GUI in order to create the individuals and properties of the e-Science life cycle ontology. Alternatively the protege individual editor could be used as was done with the test data from the Austrian Grid project. c) start jSpace Search&Query Panel: ----------------------------------- cd into jSpace directory: cd /home/development/jSpace-1.0 ant search d) test jSpace Search&Query Panel with a the local RDF Store: ------------------------------------------------------------- cd into jSpace directory: cd /home/development/jSpace-1.0 ant search go to File/Config and check the configuration for the local RDF Store: it should be the following: --------------------------------------------- DB URL: jdbc:mysql://localhost:3306/lifecycle DB TYPE: MySQL DB USER: root DB PASSWORD: password DB DRIVER: com.mysql.jdbc.Driver -------------------------------------------- Close the configuration window Select the SPARQL tab Type in a Sparql Query or choose one of the predefined queries by clicking on the buttons in the right bottom corner of the GUI. Select the Local RDF Store Chose an output format Click on SUBMIT to submit the query Go to the BROWSE tab to see the results, alternatively you can click on |Open in System Editor to open the file with the results in the system editor e) test jSpace Search&Query Panel with multiple (global) RDF Stores: ------------------------------------------------------------------- To test the jSpace Search&Query Panel with multiple RDF Stores (that is the global RDF Store), we need first to set up multiple RDF Stores. Since SPARQl-ADERIS is used as adaptive SPARQL query processor and it requires each RDF store to be available as SPARQL Endpoint we define some RDF Stores as SPARQL Endpoints using Joseki. cd to the Joseki root directory: cd $JOSEKIROOT vienna.ttl is the Joseki configuration file for a SPARQl Endpoint. It is configured to access the dataset lco1.nt in the directory abadata in the memory model. To change the dataset change find the following in the vienna.ttl config file: ----------------------------------------------------------------- _:vienna rdf:type ja:RDFDataset ; rdfs:label "Live Cycle Ontology" ; ja:defaultGraph [ a ja:MemoryModel ; rdfs:label "LCO" ; ja:content [ ja:externalContent ] ] ; . ----------------------------------------------------------------- lco1.nt represent a single life cycle resource as individuals and properties of the e-Science life cycle. The data was collected in the Austrian Grid project and is described below. The folder abadata contains also lco2.nt and lco3.nt, which are just different life cycle resources. Start the Joseki server with that config file to set up the SPARQL-Endpoint, which is then running on this host. bin/rdfserver --port 2010 vienna.ttl Equally we set up 2 other SPARQL Endpoints on the same host but on different ports to have multiple RDF Stores: bin/rdfserver --port 2020 vienna2.ttl bin/rdfserver --port 2030 vienna3.ttl Now, once the three RDF Stores are up and running as Sparql Endpoints we can query them using the embedded SPARQL-ADERIS Sparql Query processor in jSpace. Start the jSpace Search&Query Panel: cd into jSpace root directory: cd /home/user/development/jSpace-1.0 ant search check the configuration for the global RDF store in File/Config Point to the three set up Sparql endpoint. Alternatively any Sparql endpoint from the list below can be selected. Close the config window. Go to the Sparql tab. Select Global RDF Store, choose an output format and a query from the predefined queries (or type in another query) and click in SUBMIT. Results are shown in the BROWSE tab and a file is generated with the result-set from the query. sample SPARQL queries --------------------- In the following there is a list of some sample queries that were executed on the local and global RDF stores hosting the test data from the Austrian Grid project. These queries can be dropped into the jSpace Search&Query panel by clicking on the small buttons in the predefined queries area of the jSpace Search&Query GUI. Test Query1: -------------------------------------------------------------------- PREFIX owl: SELECT ?lifeCycle ?goalSpecification ?dataPreparation ?taskSelection WHERE { ?lifeCycle owl:hasGoalSpecification ?goalSpecification. ?lifeCycle owl:hasTaskSelection ?taskSelection. ?lifeCycle owl:hasDataPreparation ?dataPreparation. } --------------------------------------------------------------------- Test Query2: ----------------------------------------------------- PREFIX owl: SELECT ?s ?p ?o WHERE { ?s ?p ?o } ----------------------------------------------------- Test Query3: ----------------------------------------------------- PREFIX owl: SELECT ?s ?p WHERE { ?s ?p owl:i.elsayed } ----------------------------------------------------- Test Query4: --------------------------------------------------------------- PREFIX owl: SELECT ?lifeCycle ?goalSpecification ?p ?o WHERE { ?lifeCycle owl:hasGoalSpecification ?goalSpecification. ?lifeCycle ?p ?o. } --------------------------------------------------------------- Test Query5: ----------------------------------------------------- PREFIX owl: SELECT ?member ?p ?o WHERE { owl:researchGroup_1 owl:hasMembers ?member. ?member ?p ?o } ----------------------------------------------------- Test Query6: ------------------------------------------------------------------------------ PREFIX owl: SELECT ?lifeCycle ?goalSpecification ?dataPreparation ?taskSelection ?metadata WHERE { ?lifeCycle owl:hasGoalSpecification ?goalSpecification. ?lifeCycle owl:hasTaskSelection ?taskSelection. ?lifeCycle owl:hasDataPreparation ?dataPreparation. ?goalSpecification owl:hasMetadata ?metadata. ?metadata owl:keywords ?. } ------------------------------------------------------------------------------- ---end-of-instaltion-log---