Przeglądaj źródła

Merge branch '6.x-1.x' of git.drupal.org:sandbox/spficklin/1337878 into 6.x-1.x

Lacey Sanderson 12 lat temu
rodzic
commit
9a06d23ba4
43 zmienionych plików z 6621 dodań i 89 usunięć
  1. 1 0
      README.txt
  2. 1 1
      tripal_analysis/tripal_analysis.info
  3. 25 8
      tripal_analysis/tripal_analysis.install
  4. 2 0
      tripal_analysis/tripal_analysis.module
  5. 1 1
      tripal_bulk_loader/tripal_bulk_loader.info
  6. 1 1
      tripal_contact/tripal_contact.info
  7. 24 8
      tripal_core/api/tripal_core_chado.api.inc
  8. 53 0
      tripal_core/api/tripal_core_misc.api.inc
  9. 30 7
      tripal_core/includes/jobs.php
  10. 1 1
      tripal_core/tripal_core.info
  11. 1 0
      tripal_core/tripal_core.module
  12. 82 22
      tripal_cv/includes/obo_loader.inc
  13. 2 2
      tripal_cv/includes/tripal_cv_admin.inc
  14. 1 1
      tripal_cv/tripal_cv.info
  15. 1 1
      tripal_db/tripal_db.info
  16. 126 4
      tripal_feature/api/tripal_feature.api.inc
  17. 51 21
      tripal_feature/includes/gff_loader.inc
  18. 1 1
      tripal_feature/tripal_feature.info
  19. 1 1
      tripal_feature/tripal_feature.module
  20. 1 1
      tripal_featuremap/tripal_featuremap.info
  21. 1 1
      tripal_genetic/tripal_genetic.info
  22. 1 1
      tripal_library/tripal_library.info
  23. 1 1
      tripal_natural_diversity/tripal_natural_diversity.info
  24. 1 1
      tripal_organism/tripal_organism.info
  25. 1 1
      tripal_phenotype/tripal_phenotype.info
  26. 1 1
      tripal_project/tripal_project.info
  27. 1 0
      tripal_project/tripal_project.module
  28. 199 0
      tripal_pub/api/tripal_pub.api.inc
  29. 61 0
      tripal_pub/e_utilities.pl
  30. 809 0
      tripal_pub/includes/pubmed.inc
  31. 312 0
      tripal_pub/includes/remote_search.inc
  32. 119 0
      tripal_pub/includes/tripal_pub.admin.inc
  33. 2687 0
      tripal_pub/publication.obo
  34. 64 0
      tripal_pub/theme/tripal_pub_admin.tpl.php
  35. 436 0
      tripal_pub/tpub.obo
  36. 45 0
      tripal_pub/tripal_pub.drush.inc
  37. 9 0
      tripal_pub/tripal_pub.info
  38. 105 0
      tripal_pub/tripal_pub.install
  39. 1277 0
      tripal_pub/tripal_pub.module
  40. 71 0
      tripal_pub/tripal_pub.views.inc
  41. 1 1
      tripal_stock/tripal_stock.info
  42. 1 1
      tripal_views/tripal_views.info
  43. 12 0
      tripal_views/views/handlers/chado_views_handler_filter_string.inc

+ 1 - 0
README.txt

@@ -75,6 +75,7 @@ such as an active mailing list can be found on the Tripal website
 (http://tripal.sourceforge.net).
 
 For more information, see the recent publication:
+
 Stephen P. Ficklin, Lacey-Anne Sanderson, Chun-Huai Cheng, Margaret 
 Staton, Taein Lee, Il-Hyung Cho, Sook Jung, Kirstin E Bett, Dorrie 
 Main. Tripal: a construction Toolkit for Online Genome Databases. 

+ 1 - 1
tripal_analysis/tripal_analysis.info

@@ -3,7 +3,7 @@ description = A module that controls the display of all analysis sub-modules. Th
 core = 6.x
 project = tripal_analysis
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = tripal_core
 dependencies[] = tripal_db
 dependencies[] = tripal_cv

+ 25 - 8
tripal_analysis/tripal_analysis.install

@@ -15,9 +15,18 @@ function tripal_analysis_install() {
   // Use schema API to create database table.
   drupal_install_schema('tripal_analysis');
 
-  // Create analysisfeatureprop table in chado. This cannot be accomplished
-  // by calling drupal_install_schema because it's not in the drupal db. This
-  // table is used to store Blast xml and Interpro html/goterms
+  // we may need the analysisfeatureprop table if it doesn't already exist
+  tripal_analysis_create_analysisfeatureprop();
+  
+  // add cvterms
+  tripal_analysis_add_cvterms();
+}
+/*
+ * 
+ */
+function tripal_analysis_create_analysisfeatureprop(){
+  // Create analysisfeatureprop table in chado.  This is needed for Chado 
+  // version 1.11, the table exists in Chado 1.2. 
   if (!db_table_exists('analysisfeatureprop')) {
     $sql = "CREATE TABLE analysisfeatureprop (".
             "  analysisfeatureprop_id SERIAL PRIMARY KEY, ".
@@ -30,9 +39,14 @@ function tripal_analysis_install() {
             "  CONSTRAINT analysisfeature_id_type_id_rank UNIQUE(analysisfeature_id, type_id, rank)".
             ")";
     chado_query($sql);
-  }
-
-  // add some cvterms
+  } 
+}
+/*
+ * 
+ */
+function tripal_analysis_add_cvterms(){
+  
+  // add analysis_type
   $term = array(
     'name' => 'analysis_type', 
     'def' => 'The type of analysis was performed. This value is automatically set by '.
@@ -40,18 +54,21 @@ function tripal_analysis_install() {
              '(e.g. tripal_analysis_blast, tripal_analysis_go).'
   );
   tripal_cv_add_cvterm($term, 'tripal', 0, 1, 'tripal');
+  
+  // add analysis_date
   $term = array(
     'name' => 'analysis_date', 
     'def' => 'The date that an analysis was performed.'
   );
   tripal_cv_add_cvterm($term, 'tripal', 0, 1, 'tripal');
+  
+  // add analysis_short_name
   $term = array(
     'name' => 'analysis_short_name', 
     'def' => 'A computer legible (no spaces or special characters) abbreviation for the analysis.'
   );     
-  tripal_cv_add_cvterm($term, 'tripal', 0, 1 , 'tripal');
+  tripal_cv_add_cvterm($term, 'tripal', 0, 1 , 'tripal'); 
 }
-
 /**
  * Implementation of hook_uninstall().
  */

+ 2 - 0
tripal_analysis/tripal_analysis.module

@@ -16,6 +16,8 @@
 
 require('api/tripal_analysis.api.inc');
 require('includes/tripal_analysis_privacy.inc');
+require('includes/tripal_analysis.admin.inc');
+
 
 
 /**

+ 1 - 1
tripal_bulk_loader/tripal_bulk_loader.info

@@ -3,5 +3,5 @@ description = A module for uploading tab-delimit data into GMOD chado database u
 core = 6.x
 project = tripal_bulk_loader
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = tripal_core

+ 1 - 1
tripal_contact/tripal_contact.info

@@ -3,6 +3,6 @@ description = A module for interfacing the GMOD chado database with Drupal, prov
 core = 6.x
 project = tripal_contact
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = tripal_core
 dependencies[] = tripal_cv

+ 24 - 8
tripal_core/api/tripal_core_chado.api.inc

@@ -2602,7 +2602,7 @@ function tripal_core_get_property($basetable, $record_id, $property, $cv_name) {
 
   // construct the array of values to be selected
   $values = array(
-  $fkcol => $record_id,
+    $fkcol => $record_id,
     'type_id' => array(
       'cv_id' => array(
         'name' => $cv_name,
@@ -2612,7 +2612,9 @@ function tripal_core_get_property($basetable, $record_id, $property, $cv_name) {
     ),
   );
   $results = tripal_core_generate_chado_var($basetable . 'prop', $values);
-  $results = tripal_core_expand_chado_vars($results, 'field', $basetable . 'prop.value');
+  if ($results) {
+    $results = tripal_core_expand_chado_vars($results, 'field', $basetable . 'prop.value');
+  }
 
   return $results;
 }
@@ -2680,26 +2682,40 @@ $cv_name, $value, $update_if_present = 0) {
     array('!prop_name' => $property), WATCHDOG_ERROR);
   }
 
-
+  // make sure the cvterm exists.  Otherwise we'll get an error with
+  // prepared statements not matching
+  $values = array(
+    'cv_id' => array(
+      'name' => $cv_name,
+    ),
+    'name' => $property,    
+  );
+  $options = array('statement_name' => 'sel_cvterm_cv');
+  $term = tripal_core_chado_select('cvterm', array('cvterm_id'), $values, $options);  
+  if(!$term or count($term) == 0) {
+    return FALSE;
+  }
+  
   // get the foreign key for this property table
   $table_desc = tripal_core_get_chado_table_schema($basetable . 'prop');
   $fkcol = key($table_desc['foreign keys'][$basetable]['columns']);
 
   // construct the array of values to be inserted
   $values = array(
-  $fkcol => $record_id,
+    $fkcol => $record_id,
     'type_id' => array(
       'cv_id' => array(
         'name' => $cv_name,
-  ),
+      ),
       'name' => $property,
-      'is_obsolete' => 0
-  ),
+    ),
     'value' => $value,
     'rank' => $rank,
   );
 
-  return tripal_core_chado_insert($basetable . 'prop', $values);
+  $options = array('statement_name' => 'ins_' . $basetable . 'prop_' . substr($fkcol, 0, 2) . 'tyvara');
+  $result = tripal_core_chado_insert($basetable . 'prop', $values, $options);
+  return $result;
 }
 
 /**

+ 53 - 0
tripal_core/api/tripal_core_misc.api.inc

@@ -0,0 +1,53 @@
+<?php 
+/**
+ * This function implements a pager, similar to a pager for a database query
+ * using a non query.  Rather than pass a query as in pager_query function, a 
+ * callback function should recieve as it's first argument an array of the 
+ * argumetns passed to this function. The second argument should be the 
+ * number of results to retreive, and the third argument should be the the
+ * element index (same as with pager_query) function.  The callback function
+ * should always return an array. If no values are available then an empty 
+ * array should be returned.
+ * 
+ * @param $func
+ *  The name of the callback function used to retrieve the results. The
+ *  callback function should have three arguments: first, an array of values
+ *  passed into the tripal_pager_callback; second, the start index of
+ *  the paged values; third, the number of records to include.
+ * @param limit
+ *  The number of records to include in the paged results
+ * @param element
+ *  A unique integer ID if more than one pager exists on a page.  if multiple
+ *  types of pagers (e.g. pager_query, chado_pager_query) are on the same
+ *  page then this parameter should be unique amongst them all.
+ * @param cfunc
+ *  The name of the callback function used to specify the total results. The
+ *  callback f unction should receive one argument: an array of values that
+ *  are passed into the tripal_pager_callbck function. 
+ */
+function tripal_pager_callback($func, $limit = 9, $element = 0, $cfunc) {
+  
+  global $pager_page_array, $pager_total, $pager_total_items;
+  $page = isset($_GET['page']) ? $_GET['page'] : '';
+  
+  // Substitute in query arguments.
+  $args = func_get_args();
+  $args = array_slice($args, 4);
+  // Alternative syntax for '...'
+  if (isset($args[0]) && is_array($args[0])) {
+    $args = $args[0];
+  }
+
+  $count = $cfunc($args);  
+  
+  // Convert comma-separated $page to an array, used by other functions.
+  $pager_page_array = explode(',', $page);
+
+  // We calculate the total of pages as ceil(items / limit).
+  $pager_total_items[$element] = $count;
+  $pager_total[$element] = ceil($pager_total_items[$element] / $limit);
+  $pager_page_array[$element] = max(0, min((int)$pager_page_array[$element], ((int)$pager_total[$element]) - 1));
+  
+  // retrieve the results using the specified callback.
+  return $func($args, $pager_page_array[$element] * $limit, $limit);
+}

+ 30 - 7
tripal_core/includes/jobs.php

@@ -15,9 +15,13 @@ function tripal_jobs_report_form($form, &$form_state = NULL) {
 
   // set the default values
   $default_status = $form_state['values']['job_status'];
+  $default_job_name = $form_state['values']['job_name'];
 
   if (!$default_status) {
-    $default_status = $_SESSION['tripal_job_status_filter'];
+    $default_status = $_SESSION['tripal_job_filter']['job_status'];    
+  }
+  if (!$default_job_name) {
+    $default_job_name = $_SESSION['tripal_job_filter']['job_name'];
   }
 
   $form['job_status'] = array(
@@ -33,6 +37,12 @@ function tripal_jobs_report_form($form, &$form_state = NULL) {
 	    'Error'     => 'Error',
 	  ),
   );
+  $form['job_name'] = array(
+    '#type'          => 'textfield',
+    '#title'         => t('Filter by Job Name'),
+    '#description'   => t('The jobs will be filtered if text provided is contained in the job name'),
+    '#default_value' => $default_job_name,        
+  );
 
   $form['submit'] = array(
     '#type'         => 'submit',
@@ -45,8 +55,12 @@ function tripal_jobs_report_form($form, &$form_state = NULL) {
  * @ingroup tripal_core
  */
 function tripal_jobs_report_form_submit($form, &$form_state = NULL) {
+  
   $job_status = $form_state['values']['job_status'];
-  $_SESSION['tripal_job_status_filter'] = $job_status;
+  $job_name = $form_state['values']['job_name'];
+  
+  $_SESSION['tripal_job_filter']['job_status'] = $job_status;
+  $_SESSION['tripal_job_filter']['job_name'] = $job_name;
 }
 /**
  * Returns the Tripal Job Report
@@ -62,7 +76,8 @@ function tripal_jobs_report() {
   // change the status of jobs that have errored out
   tripal_jobs_check_running();
 
-	$jobs_status_filter = $_SESSION['tripal_job_status_filter'];
+	$job_status = $_SESSION['tripal_job_filter']['job_status'];
+	$job_name = $_SESSION['tripal_job_filter']['job_name'];
 
   $sql = "
     SELECT
@@ -70,13 +85,21 @@ function tripal_jobs_report() {
       TJ.status as job_status, TJ,submit_date,TJ.start_time,
       TJ.end_time,TJ.priority,U.name as username
     FROM {tripal_jobs} TJ
-      INNER JOIN {users} U on TJ.uid = U.uid ";
-  if ($jobs_status_filter) {
-    $sql .= "WHERE TJ.status = '%s' ";
+      INNER JOIN {users} U on TJ.uid = U.uid 
+    WHERE 1=1 
+  ";
+  $args = array();
+  if ($job_status) {
+    $sql .= "AND TJ.status = '%s' ";
+    $args[] = $job_status;
+  }
+  if ($job_name) {
+    $sql .= "AND TJ.job_name like '%%%s%%'";
+    $args[] = $job_name;
   }
   $sql .= "ORDER BY job_id DESC";
 
-  $jobs = pager_query($sql, 25, 0, "SELECT count(*) FROM ($sql) as t1", $jobs_status_filter);
+  $jobs = pager_query($sql, 25, 0, "SELECT count(*) FROM ($sql) as t1", $args);
   $header = array(
     'Job ID',
     'User',

+ 1 - 1
tripal_core/tripal_core.info

@@ -3,5 +3,5 @@ description = The core module for the Tripal package that integrates Drupal and
 core = 6.x
 project = tripal_core
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 

+ 1 - 0
tripal_core/tripal_core.module

@@ -44,6 +44,7 @@ require_once "api/tripal_core_ahah.api.inc";
 require_once "api/tripal_core_custom_tables.api.inc";
 require_once "api/tripal_core_jobs.api.inc";
 require_once "api/tripal_core_mviews.api.inc";
+require_once "api/tripal_core_misc.api.inc";
 require_once "includes/jobs.php";
 require_once "includes/mviews.php";
 require_once "includes/custom_tables.php";

+ 82 - 22
tripal_cv/includes/obo_loader.inc

@@ -222,7 +222,7 @@ function tripal_cv_load_obo_v1_2_file($obo_name, $file, $jobid = NULL, $is_new =
   if ($is_new) {
     tripal_cv_load_obo_add_ref($obo_name, $file);
   }
-  print "Ontology Sucessfully loaded!\n";
+  print "\nOntology Sucessfully loaded!\n";
 
   // update the cvtermpath table
   tripal_cv_load_update_cvtermpath($newcvs, $jobid);
@@ -348,19 +348,12 @@ function tripal_cv_load_obo_v1_2($file, $jobid = NULL, &$newcvs) {
   $newcvs[$header['default-namespace'][0]] = $defaultcv->cv_id;
 
   // add any typedefs to the vocabulary first
-  $sql = "
-    SELECT * FROM tripal_obo_temp
-    WHERE type = 'Typedef' 
-  ";
-  $typedefs = chado_query($sql);
-  while ($typedef = db_fetch_object($typedefs)) {
-    $term = unserialize(base64_decode($typedef->stanza));
-    tripal_cv_obo_process_term($term, $defaultcv->name, 1, $newcvs, $default_db);
-  }
+  print "\nStep 2: Loading type defs...\n"; 
+  tripal_cv_obo_load_typedefs($defaultcv, $newcvs, $default_db, $jobid);
 
   // next add terms to the vocabulary
-  print "\nStep 2: Loading terms...\n";  
-  if (!tripal_cv_obo_process_terms($defaultcv->name, $jobid, $newcvs, $default_db)) {
+  print "\nStep 3: Loading terms...\n";  
+  if (!tripal_cv_obo_process_terms($defaultcv, $jobid, $newcvs, $default_db)) {
     tripal_cv_obo_quiterror('Cannot add terms from this ontology');
   }
 
@@ -380,6 +373,58 @@ function tripal_cv_obo_quiterror($message) {
 
 }
 
+/*
+ * 
+ */
+function tripal_cv_obo_load_typedefs($defaultcv, $newcvs, $default_db, $jobid){
+  $sql = "
+    SELECT * 
+    FROM tripal_obo_temp
+    WHERE type = 'Typedef' 
+  ";
+  $typedefs = chado_query($sql);
+  
+    $sql = "
+    SELECT count(*) as num_terms
+    FROM tripal_obo_temp
+    WHERE type = 'Typedef'     
+  "; 
+  $result = db_fetch_object(chado_query($sql));
+  $count = $result->num_terms;
+  
+  // calculate the interval for updates
+  $interval = intval($count * 0.0001);
+  if ($interval < 1) {
+    $interval = 1;
+  }
+  $i = 0;
+  while ($typedef = db_fetch_object($typedefs)) {
+    $term = unserialize(base64_decode($typedef->stanza));
+    
+    // update the job status every interval
+    if ($jobid and $i % $interval == 0) {
+      $complete = ($i / $count) * 33.33333333;
+      tripal_job_set_progress($jobid, intval($complete + 33.33333333)); 
+      printf("%d of %d records. (%0.2f%%) Memory: %s bytes\r", $i, $count, $complete * 3, number_format(memory_get_usage()));                                                             
+    } 
+    
+    tripal_cv_obo_process_term($term, $defaultcv->name, 1, $newcvs, $default_db);
+    
+    $i++;
+  }
+    // set the final status
+  if ($jobid) {
+    if ($count > 0) {
+      $complete = ($i / $count) * 33.33333333;
+    }
+    else {
+      $complete = 33.33333333;
+    }
+    tripal_job_set_progress($jobid, intval($complete + 33.33333333)); 
+    printf("%d of %d records. (%0.2f%%) Memory: %s bytes\r", $i, $count, $complete * 3, number_format(memory_get_usage()));
+  }  
+  return 1;
+}
 /**
  *
  * @ingroup tripal_obo_loader
@@ -391,11 +436,18 @@ function tripal_cv_obo_process_terms($defaultcv, $jobid = NULL, &$newcvs, $defau
   // iterate through each term from the OBO file and add it
   $sql = "
     SELECT * FROM tripal_obo_temp
-    WHERE type = 'Term' 
+    WHERE type = 'Term'
     ORDER BY id
   ";
   $terms = chado_query($sql);
-  $count = pg_num_rows($terms);
+  
+  $sql = "
+    SELECT count(*) as num_terms
+    FROM tripal_obo_temp
+    WHERE type = 'Term'     
+  "; 
+  $result = db_fetch_object(chado_query($sql));
+  $count = $result->num_terms;
   
   // calculate the interval for updates
   $interval = intval($count * 0.0001);
@@ -407,13 +459,13 @@ function tripal_cv_obo_process_terms($defaultcv, $jobid = NULL, &$newcvs, $defau
     
     // update the job status every interval
     if ($jobid and $i % $interval == 0) {
-      $complete = ($i / $count) * 50;
-      tripal_job_set_progress($jobid + 50, intval($complete)); 
-      printf("%d of %d records. (%0.2f%%) Memory: %s bytes\r", $i, $count, $complete * 2, number_format(memory_get_usage()));                                                             
+      $complete = ($i / $count) * 33.33333333;
+      tripal_job_set_progress($jobid, intval($complete + 66.666666)); 
+      printf("%d of %d records. (%0.2f%%) Memory: %s bytes\r", $i, $count, $complete * 3, number_format(memory_get_usage()));                                                             
     }                                 
     
     // add/update this term
-    if (!tripal_cv_obo_process_term($term, $defaultcv, 0, $newcvs, $default_db)) {
+    if (!tripal_cv_obo_process_term($term, $defaultcv->name, 0, $newcvs, $default_db)) {
       tripal_cv_obo_quiterror("Failed to process terms from the ontology");
     }
 
@@ -422,9 +474,14 @@ function tripal_cv_obo_process_terms($defaultcv, $jobid = NULL, &$newcvs, $defau
   
   // set the final status
   if ($jobid) {
-    $complete = ($i / $count) * 50;
-    tripal_job_set_progress($jobid + 50, intval($complete)); 
-    printf("%d of %d records. (%0.2f%%) Memory: %s bytes\r", $i, $count, $complete * 2, number_format(memory_get_usage()));
+    if ($count > 0) {
+      $complete = ($i / $count) * 33.33333333;
+    }
+    else {
+      $complete = 33.33333333;
+    }
+    tripal_job_set_progress($jobid, intval($complete + 66.666666)); 
+    printf("%d of %d records. (%0.2f%%) Memory: %s bytes\r", $i, $count, $complete * 3, number_format(memory_get_usage()));
   }                                                             
   
   return 1;
@@ -810,7 +867,7 @@ function tripal_cv_obo_parse($obo_file, &$header, $jobid) {
     if ($jobid and $intv_read >= $interval) {            
       $percent = sprintf("%.2f", ($num_read / $filesize) * 100);
       print "Parsing Line $line_num (" . $percent . "%). Memory: " . number_format(memory_get_usage()) . " bytes.\r";
-      tripal_job_set_progress($jobid, intval(($num_read / $filesize) * 50));
+      tripal_job_set_progress($jobid, intval(($num_read / $filesize) * 33.33333333));
       $intv_read = 0;      
     }
     
@@ -895,6 +952,9 @@ function tripal_cv_obo_parse($obo_file, &$header, $jobid) {
       watchdog('T_obo_loader', "ERROR: Cannot insert stanza into temporary table.", array(), 'error');
       exit;
     }
+    $percent = sprintf("%.2f", ($num_read / $filesize) * 100);
+    print "Parsing Line $line_num (" . $percent . "%). Memory: " . number_format(memory_get_usage()) . " bytes.\r";
+    tripal_job_set_progress($jobid, intval(($num_read / $filesize) * 33.33333333));
   }
   return $default_db;
 }

+ 2 - 2
tripal_cv/includes/tripal_cv_admin.inc

@@ -7,7 +7,7 @@
  */
 function tripal_cv_edit_page() {
   $output .= drupal_get_form('tripal_cv_select_form');
-  $output .= '<div id="db-edit-div">Please select a vocabulary above to view or edit</div>';
+  $output .= '<div id="cv-edit-div">Please select a vocabulary above to view or edit</div>';
 
   return $output;
 }
@@ -37,7 +37,7 @@ function tripal_cv_select_form() {
     '#options' => $cvs,
     '#ahah' => array(
       'path' => 'admin/tripal/tripal_cv/cv/edit/js',
-      'wrapper' => 'db-edit-div',
+      'wrapper' => 'cv-edit-div',
       'effect' => 'fade',
       'event' => 'change',
       'method' => 'replace',

+ 1 - 1
tripal_cv/tripal_cv.info

@@ -3,6 +3,6 @@ description = The controlled vocabulary module for the Tripal package that integ
 core = 6.x
 project = tripal_cv
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = tripal_core
 dependencies[] = tripal_db

+ 1 - 1
tripal_db/tripal_db.info

@@ -3,5 +3,5 @@ description = The database module for the Tripal package that integrates Drupal
 core = 6.x
 project = tripal_db
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = tripal_core

+ 126 - 4
tripal_feature/api/tripal_feature.api.inc

@@ -87,8 +87,7 @@ function tripal_feature_analysis_get_property($analysis_id = NULL, $feature_id =
  * @ingroup tripal_feature_api
  */
 function tripal_feature_analysis_insert_property($analysis_id = NULL, $feature_id = NUll,
-  $analysisfeature_id = NULL, $property, $value, $update_if_present = 0,
-  $cv_name = 'tripal') {
+  $analysisfeature_id = NULL, $property, $value, $update_if_present = 0, $cv_name = 'tripal') {
 
   // check that the incoming arguments are correct
   if (($analysis_id and !$feature_id) or
@@ -107,8 +106,15 @@ function tripal_feature_analysis_insert_property($analysis_id = NULL, $feature_i
   }
 
   // insert the property.
-  return tripal_core_insert_property('analysisfeature', $analysisfeature_id,
+  $success = tripal_core_insert_property('analysisfeature', $analysisfeature_id,
     $property, $cv_name, $value, $update_if_present);
+  if (!$success) {
+     watchdog('tripal_feature',
+      'tripal_feature_analysis_insert_property: Failed to insert analysis feature property',
+       array(), WATCHDOG_WARNING);  
+     return FALSE;
+  }
+  return $success;
 }
 
 /**
@@ -928,4 +934,120 @@ function tripal_feature_get_feature_relationships($feature) {
     }
   }
   return $relationships;
-} 
+} 
+
+/*
+ * This function adds an entry to the feature_dbxref table.
+  *
+ * @param $feature_id
+ *   The numeric feature_if of the feature 
+ * @param $dbname
+ *   The name of the database to which the term belongs
+ * @param accession
+ *   The accession of the term   
+ *    
+ * @return
+ *   TRUE on success. FALSE on failure.
+ *
+ * @ingroup tripal_feature_api
+ */
+function tripal_feature_add_dbxref($feature_id, $dbname, $accession) {
+   
+  // make sure the db exists. If it doesn't, then add it
+  $values = array('name' => $dbname);
+  $options = array('statement_name' => 'sel_db_na');
+  $db = tripal_core_chado_select('db', array('db_id'), $values, $options);
+  if (!$db or count($db) == 0) {    
+    $options = array('statement_name' => 'ins_db_na');
+    $success = tripal_core_chado_insert('db', $values, $options);
+      if (!$success) {
+      watchdog('tripal_feature', 'tripal_feature_add_dbxref: The feature dbxref entry for feature, %feature_id, ". 
+        "could not be added because the database, %dbname, does not exist and cannot be added.', 
+        array('%feature_id' => $feature_id, '%dbname' => $dbname), WATCHDOG_WARNING);
+      return FALSE;
+    }
+  }
+  
+  // first make sure that the record doesn't already exist
+  $values = array(
+    'dbxref_id' => array(
+      'accession' => $accession,
+      'db_id' => array(
+        'name' => $dbname
+      ),
+    ),
+    'feature_id' => $feature_id,
+  );
+  $options = array('statement_name' => 'sel_featuredbxref_dbfe');
+  $xref = tripal_core_chado_select('feature_dbxref', array('feature_dbxref_id'), $values, $options);
+  if (count($xref) == 0) {    
+    // if the record doesn't exist then add it.
+    $options = array('statement_name' => 'ins_featuredbxref_dbfe');
+    $success = tripal_core_chado_insert('feature_dbxref', $values, $options);
+    if (!$success) {
+      watchdog('tripal_feature', 'tripal_feature_add_dbxref: The feature dbxref entry for feature, %feature_id, '. 
+        'could not be added: %db:%accession.', array('%feature_id' => $feature_id, '%db' => $dbname, 
+        '%accession' => $accession), WATCHDOG_WARNING);
+      return FALSE;
+    }
+  }
+  return TRUE;
+}
+
+/*
+ * This function adds an entry to the feature_cvterm table.
+  *
+ * @param $feature_id
+ *   The numeric feature_if of the feature 
+ * @param $cvname
+ *   The name of the controlled vocabulary to which the term belongs
+ * @param cvterm
+ *   The name of the cvterm  
+ *    
+ * @return
+ *   TRUE on success. FALSE on failure.
+ *
+ * @ingroup tripal_feature_api
+ */
+function tripal_feature_add_cvterm($feature_id, $cvname, $cvterm) {
+   
+  // make sure the cv exists. If it doesn't, then add it
+  $values = array('name' => $cvname);
+  $options = array('statement_name' => 'sel_cv_na');
+  $cv = tripal_core_chado_select('cv', array('cv_id'), $values, $options);
+  if (!$cv or count($cv) == 0) {    
+    $options = array('statement_name' => 'ins_cv_na');
+    $success = tripal_core_chado_insert('cv', $values, $options);
+      if (!$success) {
+      watchdog('tripal_feature', 'tripal_feature_add_cvterm: The feature cvterm entry for feature, %feature_id, ". 
+        "could not be added because the CV, %cvname, does not exist and cannot be added.', 
+        array('%feature_id' => $feature_id, '%cvname' => $cvname), WATCHDOG_WARNING);
+      return FALSE;
+    }
+  }
+  
+  // first make sure that the record doesn't already exist
+  $values = array(
+    'cvterm_id' => array(
+      'name' => $cvterm,
+      'cv_id' => array(
+        'name' => $cvname
+      ),
+    ),
+    'feature_id' => $feature_id,
+    'pub_id' => 1,
+  );
+  $options = array('statement_name' => 'sel_featuredcvterm_cvfepu');
+  $xref = tripal_core_chado_select('feature_cvterm', array('feature_cvterm_id'), $values, $options);
+  if (count($xref) == 0) {    
+    // if the record doesn't exist then add it.
+    $options = array('statement_name' => 'ins_featurecvterm_cvfepu');
+    $success = tripal_core_chado_insert('feature_cvterm', $values, $options);
+    if (!$success) {
+      watchdog('tripal_feature', 'tripal_feature_add_cvterm: The feature cvterm entry for feature, %feature_id, '. 
+        'could not be added: %cvterm.', array('%feature_id' => $feature_id, '%cvterm' => $cvterm), WATCHDOG_WARNING);
+      return FALSE;
+    }
+  }
+  return TRUE;
+}

+ 51 - 21
tripal_feature/includes/gff_loader.inc

@@ -579,8 +579,11 @@ function tripal_feature_load_gff3($gff_file, $organism_id, $analysis_id,
         $attr_name = $attr_uniquename;  
       }
       // if the row has a parent then generate a uniquename using the parent name
+      // add the date to the name in the event there are more than one child with
+      // the same parent.
       elseif (array_key_exists('Parent', $tags)) {
-        $attr_uniquename = $tags['Parent'][0] . "-$type-$landmark:$fmin..$fmax";
+        $date = getdate();
+        $attr_uniquename = $tags['Parent'][0] . "-$type-$landmark-" . $date[0] . ":$fmin..$fmax";
         $attr_name = $attr_uniquename;
       }
       // generate a unique name based on the date, type and location
@@ -592,35 +595,62 @@ function tripal_feature_load_gff3($gff_file, $organism_id, $analysis_id,
       }      
     }
 
-    // if a name is not specified then use the unique name
+    // if a name is not specified then use the unique name as the name
     if (strcmp($attr_name, '')==0) {
       $attr_name = $attr_uniquename;
     }
 
-    // if an ID attribute is not specified then use the attribute name and
-    // hope for the best
+    // if an ID attribute is not specified then use the attribute name plus the date
     if (!$attr_uniquename) {
-      $attr_uniquename = $attr_name;
+      $date = getdate();
+      $attr_uniquename = $attr_name . '-' . $date[0];
     }
 
-    // make sure the landmark sequence exists in the database.  We don't
-    // know the type of the landmark so we'll hope that it's unique across
-    // all types. If not we'll error out.  This test is only necessary if
-    // if the landmark and the uniquename are different.  If they are the same
-    // then this is the information for the landmark
-    if (!$remove and strcmp($landmark, $attr_uniquename) != 0 ) {
+    // make sure the landmark sequence exists in the database.  If the user 
+    // has not specified a landmark type (and it's not requiredin the GFF foramt)
+    // then We don't know the type of the landmark so we'll hope that it's unique across
+    // all types for the orgnaism. Only do this test if the landmark and the feature are
+    // different.
+    if (!$remove and !(strcmp($landmark, $attr_uniquename) == 0 or strcmp($landmark, $attr_name) == 0)) {
       $select = array(
-         'organism_id' => $organism_id,
-         'uniquename'  => $landmark,
-      );
+        'organism_id' => $organism_id,
+        'uniquename'  => $landmark,
+      );      
       $columns = array('count(*) as num_landmarks');
-      $options = array('statement_name' => 'sel_feature_numland');      
-      $count = tripal_core_chado_select('feature', $columns, $select, $options);   
-      if (!$count or count($count) == 0 or $count[0]->num_landmarks == 0) {
-        watchdog('T_gff3_loader', "The landmark '%landmark' cannot be found for this organism (" . $organism->genus . " " . $organism->species . ") " .
-              "Please add the landmark and then retry the import of this GFF3 ".
-              "file", array('%landmark' => $landmark), WATCHDOG_ERROR);
-        return '';
+      $options = array('statement_name' => 'sel_feature_numland');
+      if ($landmark_type) {
+        $select['type_id'] = array(
+          'name' => $landmark_type,
+        );
+        $options = array('statement_name' => 'sel_feature_numlandty');
+      }      
+      $count = tripal_core_chado_select('feature', $columns, $select, $options);        
+      if (!$count or count($count) == 0 or $count[0]->num_landmarks == 0) {        
+        // now look for the landmark using the name rather than uniquename.
+        $select = array(
+          'organism_id' => $organism_id,
+          'name'  => $landmark,
+        );
+        $columns = array('count(*) as num_landmarks');
+        $options = array('statement_name' => 'sel_feature_numlandna');              
+        if ($landmark_type) {
+          $select['type_id'] = array(
+            'name' => $landmark_type,
+          );
+          $options = array('statement_name' => 'sel_feature_numlandnaty');
+        }
+        $count = tripal_core_chado_select('feature', $columns, $select, $options); 
+        if (!$count or count($count) == 0 or $count[0]->num_landmarks == 0) {
+          watchdog('T_gff3_loader', "The landmark '%landmark' cannot be found for this organism (%species) " .
+                "Please add the landmark and then retry the import of this GFF3 ".
+                "file", array('%landmark' => $landmark, '%species' => $organism->genus . " " . $organism->species), WATCHDOG_ERROR);
+          return '';
+        }
+        elseif($count[0]->num_landmarks > 1) {
+          watchdog('T_gff3_loader', "The landmark '%landmark' has more than one entry for this organism (%species) " .
+                "Cannot continue", array('%landmark' => $landmark, '%species' => $organism->genus . " " . $organism->species), WATCHDOG_ERROR);
+          return '';  
+        }
 
       }
       if ($count[0]->num_landmarks > 1) {

+ 1 - 1
tripal_feature/tripal_feature.info

@@ -3,7 +3,7 @@ description = A module for interfacing the GMOD chado database with Drupal, prov
 core = 6.x
 project = tripal_feature
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = search
 dependencies[] = path
 dependencies[] = tripal_core

+ 1 - 1
tripal_feature/tripal_feature.module

@@ -2293,7 +2293,7 @@ function tripal_feature_match_features_page($id) {
   // if we have more than one match then generate the table, otherwise, redirect
   // to the matched feature
   if ($num_matches == 1) {
-    drupal_goto(url("node/". $curr_match->nid));
+    drupal_goto(url("node/" . $curr_match->nid));
   }
   if ($num_matches == 0) {
     return "<p>No features matched the given name '$id'</p>";

+ 1 - 1
tripal_featuremap/tripal_featuremap.info

@@ -3,7 +3,7 @@ description = A module for interfacing the GMOD chado database with Drupal, prov
 core = 6.x
 project = tripal_featuremap
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = tripal_core
 dependencies[] = tripal_organism
 dependencies[] = tripal_feature

+ 1 - 1
tripal_genetic/tripal_genetic.info

@@ -3,7 +3,7 @@ description = A module for interfacing the GMOD chado database with Drupal, prov
 core = 6.x
 project = tripal_genetic
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = tripal_core
 dependencies[] = tripal_cv
 dependencies[] = tripal_feature

+ 1 - 1
tripal_library/tripal_library.info

@@ -3,7 +3,7 @@ description = A module for interfacing the GMOD chado database with Drupal, prov
 core = 6.x
 project = tripal_library
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = tripal_core
 dependencies[] = tripal_organism
 dependencies[] = search

+ 1 - 1
tripal_natural_diversity/tripal_natural_diversity.info

@@ -3,7 +3,7 @@ description = A module for interfacing the GMOD chado database with Drupal, prov
 core = 6.x
 project = tripal_natural_diversity
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = tripal_core
 dependencies[] = tripal_cv
 dependencies[] = tripal_db

+ 1 - 1
tripal_organism/tripal_organism.info

@@ -3,7 +3,7 @@ description = A module for interfacing the GMOD chado database with Drupal, prov
 core = 6.x
 project = tripal_organism
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = tripal_core
 dependencies[] = search
 dependencies[] = path

+ 1 - 1
tripal_phenotype/tripal_phenotype.info

@@ -3,7 +3,7 @@ description = A module for interfacing the GMOD chado database with Drupal, prov
 core = 6.x
 project = tripal_phenotype
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = tripal_core
 dependencies[] = tripal_cv
 dependencies[] = tripal_feature

+ 1 - 1
tripal_project/tripal_project.info

@@ -3,6 +3,6 @@ description = A module for interfacing the GMOD chado database with Drupal, prov
 core = 6.x
 project = tripal_project
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = tripal_core
 dependencies[] = tripal_cv

+ 1 - 0
tripal_project/tripal_project.module

@@ -39,6 +39,7 @@ function tripal_project_views_api() {
 function tripal_project_menu() {
   $items[ 'admin/tripal/tripal_project' ]= array(
     'title' => 'Projects',
+    'description' => ('A module for interfacing the GMOD chado database with Drupal, providing viewing of projects'),
     'page callback' => 'theme',
     'page arguments' => array('tripal_project_admin'),
     'access arguments' => array('adminster tripal projects'),

+ 199 - 0
tripal_pub/api/tripal_pub.api.inc

@@ -0,0 +1,199 @@
+<?php
+/**
+ * @file
+ * The Tripal Pub API
+ * 
+ * @defgroup tripal_pub_api Publication Module API
+ * @ingroup tripal_api 
+ */
+ 
+/*  
+ * Retrieves a list of publications as an associated array where
+ *  keys correspond directly with Tripal Pub CV terms.
+ *  
+ * @param remote_db
+ *    The name of the remote publication database to query. Valid values
+ *    include: 'pubmed'.
+ * @param search_array
+ *    An associate array containing the search criteria. The following key 
+ *    are expected
+ *      'num_criteria':  Specifies the number of criteria present in the search array
+ *      'days':          The number of days to include in the search starting from today
+ *      'criteria':      An associate array containing the search critiera. There should
+ *                       be no less than 'num_criteria' elements in this array.
+ *                       
+ *    The following keys are expected in the 'criteria' array
+ *      'search_terms':  A list of terms to search on, separated by spaces.
+ *      'scope':         The fields to search in the remote database. Valid values
+ *                       include: 'title', 'abstract', 'author' and 'any'
+ *      'operation':     The logical operation to use for this criteria. Valid
+ *                       values include: 'AND', 'OR' and 'NOT'.
+ * @param $num_to_retrieve
+ *    The number of records to retrieve.  In cases with large numbers of 
+ *    records to retrieve, the remote database may limit the size of each
+ *    retrieval.  
+ * @param $pager_id
+ *    Optional.  This function uses the 'tripal_pager_callback' function
+ *    to page a set of results.  This is helpful when generating results to
+ *    be view online.  The pager works identical to the pager_query function
+ *    of drupal. Simply provide a unique integer value for this argument.  Each
+ *    form on a single page should have a unique $pager_id.
+ * @param $page
+ *    Optional.  If this function is called on the command-line where the 
+ *    page for the pager cannot be set using the $_GET variable, use this
+ *    argument to specify the page to retrieve. 
+ *    
+ * @return
+ *   Returns an array of pubs where each element is
+ *   an associative array where the keys are Tripal Pub CV terms.  
+ * 
+ * @ingroup tripal_pub_api
+ */
+function tripal_pub_get_remote_search_results($remote_db, $search_array, 
+  $num_to_retrieve, $pager_id = 0, $page = 0) {
+   
+  // construct the callback function using the remote database name
+  $callback = 'tripal_pub_remote_search_' . strtolower($remote_db);
+
+  // manually set the $_GET['page'] parameter to trick the pager
+  // into giving us the requested page
+  if (is_numeric($page) and $page > 0) {
+    $_GET['page'] = $page;
+  }  
+  
+  // now call the callback function to get the rsults
+  $pubs = array();
+  if (function_exists($callback)) {
+    $pubs = call_user_func($callback, $search_array, $num_to_retrieve, $pager_id);
+  }    
+  
+  return $pubs;  
+}
+/*
+ * @ingroup tripal_pub_api
+ */
+function tripal_pub_import_publications() {
+  $num_to_retrieve = 10;
+  $pager_id = 0;
+  $page = 1;
+  $num_pubs = 0;
+  
+  // get all of the loaders
+  $sql = "SELECT * FROM {tripal_pub_import} WHERE disabled = 0";
+  $results = db_query($sql);
+  while ($import = db_fetch_object($results)) {
+     $criteria = unserialize($import->criteria); 
+     $remote_db = $criteria['remote_db'];
+     print_r($search_array);
+     do {       
+       // retrieve the pubs for this page
+       $pubs = tripal_pub_get_remote_search_results($remote_db, $criteria, $num_to_retrieve, $pager_id, $page);
+       // now add the publications
+       foreach ($pubs as $pub) {
+               
+         $p = tripal_pub_add_publication($pub);
+         $pub_id = $p->pub_id;                    
+         
+         // check to see if the pub_dbxref record already exist
+         $values = array(
+           'dbxref_id' => array(
+             'accession' => $pub['pub_accession'],
+             'db_id' => array(
+                'name' => $pub['pub_database'],
+             ),
+           ), 
+           'pub_id' => $pub_id,
+         );
+         $options = array('statement_name' => 'sel_pubdbxref_db');
+         $results = tripal_core_chado_select('pub_dbxref', array('*'), $values, $options);
+         
+         // if the pub_dbxref record doesn't exist then we need to add the associate
+         if(count($results) == 0) {
+           
+           // make sure our database already exists
+           $db = tripal_db_add_db($pub['pub_database']);
+           
+           // get the database cross-reference
+           $values = array(
+             'accession' => $pub['pub_accession'],
+             'db_id' => $db->db_id,
+           );
+           $options = array('statement_name' => 'sel_dbxref_acdb');
+           $results = tripal_core_chado_select('dbxref', array('dbxref_id'), $values, $options);
+           // if the accession doesn't exist then add it
+           if(count($results) == 0){
+             $dbxref = tripal_db_add_dbxref($db->db_id, $pub['pub_accession']);          
+           }
+           else {
+             $dbxref = $results[0];
+           }
+           
+         }
+         else {
+           $pub_dbxref = $results[0];
+         }
+         
+
+         print $num_pubs . ".  " . $pub['pub_database'] . ' ' . $pub['pub_accession'] . "\n";                 
+         $num_pubs++;
+       }       
+       $page++;
+     } 
+     while (count($pubs) > 0);    
+  }
+}
+/*
+ * 
+ */
+function tripal_pub_add_publication($pub_details) {
+  
+   // check to see if the publication already exists
+   $pub_id = 0;
+   $values = array(
+     'title' => $pub['title'],
+     'pyear' => $pub['pyear'],
+   );
+   $options = array('statement_name' => 'pub_tipy');
+   $results = tripal_core_chado_select('pub', array('*'), $values, $options);
+   
+   // if the publication exists then return the record
+   if(count($results) == 1) {
+      return $results[0];   
+   }
+   if(count($results) > 1) {
+     watchdog('tripal_pub', "The publication with the same title is present multiple times. Cannot ".
+       "determine which to use.  Title: %title", array('%title' => $pub_details['title']), WATCHDOG_ERROR);     
+     return FALSE;          
+   }
+  
+   // if the publication does not exist then create it.      
+   $values = array(
+    'title' => $pub_details['title'],
+    'volume' => $pub_details['volume'],
+    'series_name' => $pub_details['journal_name'],
+    'issue' => $pub_details['issue'],
+    'pyear' => $pub_details['year'],
+    'pages' => $pub_details['pages'],
+    'uniquename' => $pub_details['citation'],
+    'type_id' => array(
+      'name' => 'XXXX',
+      'cv_id' => array(
+        'name' => 'tripal_pub',
+      ),
+    ),     
+  );  
+  $options = array('statment_name' => 'ins_pub_tivoseispypaunty');
+  $pub = tripal_core_chado_insert('pub', $values, $options);
+  if ($pub) {
+    watchdog('tripal_pub', "Cannot insert the publication with title: %title", array('%title' => $pub_details['title']), WATCHDOG_ERROR);
+    return FALSE;   
+  }
+ 
+  
+  // now add in any other items that remain as properties of the publication
+  foreach ($pub_details as $key => $value) {
+    
+  }
+  
+  return $pub;
+}

+ 61 - 0
tripal_pub/e_utilities.pl

@@ -0,0 +1,61 @@
+#!/usr/bin/perl -w
+# ---------------------------------------------------------------------------
+# Define library for the 'get' function used in the next section.
+# $utils contains route for the utilities.
+# $db, $query, and $report may be supplied by the user when prompted; 
+# if not answered, default values, will be assigned as shown below.
+
+use LWP::Simple;
+use utf8;
+
+my $utils = "http://www.ncbi.nlm.nih.gov/entrez/eutils";
+
+my $db     = "Pubmed";
+my $query  = $ARGV[0];
+my $report = $ARGV[1];
+
+# ---------------------------------------------------------------------------
+# $esearch contÁins the PATH & parameters for the ESearch call
+# $esearch_result containts the result of the ESearch call
+# the results are displayed Ánd parsed into variables 
+# $Count, $QueryKey, and $WebEnv for later use and then displayed.
+
+my $esearch = "$utils/esearch.fcgi?" .
+              "db=$db&retmax=1&usehistory=y&term=";
+
+my $esearch_result = get($esearch . $query);
+
+
+
+$esearch_result =~ 
+  m|<Count>(\d+)</Count>.*<QueryKey>(\d+)</QueryKey>.*<WebEnv>(\S+)</WebEnv>|s;
+
+my $Count    = $1;
+my $QueryKey = $2;
+my $WebEnv   = $3;
+
+# ---------------------------------------------------------------------------
+# this area defines a loop which will display $retmax citation results from 
+# Efetch each time the the Enter Key is pressed, after a prompt.
+
+my $retstart;
+my $retmax=3;
+
+for($retstart = 0; $retstart < $Count; $retstart += $retmax) {
+  my $efetch = "$utils/efetch.fcgi?" .
+               "rettype=$report&retmode=text&retstart=$retstart&retmax=$retmax&" .
+               "db=$db&query_key=$QueryKey&WebEnv=$WebEnv";
+	
+  #print "\nEF_QUERY=$efetch\n";     
+
+
+  my $efetch_result = get($efetch);
+
+	#open( $fh, '>', \$efetch_result);
+
+  
+  print $efetch_result;
+    
+  #print binmode($fh, ":utf8");
+  
+}

+ 809 - 0
tripal_pub/includes/pubmed.inc

@@ -0,0 +1,809 @@
+<?php 
+/**
+ * @file
+ * Tripal Pub PubMed Interface
+ *
+ * @defgroup tripal_pub_pubmed PubMed Interface
+ * @ingroup tripal_pub
+ */
+
+/**
+ *
+ */
+function tripal_pub_remote_search_pubmed($search_array, $num_to_retrieve, $pager_id) {
+  
+  // convert the terms list provicded by the caller into a string with words
+  // separated by a '+' symbol.
+  $num_criteria = $search_array['num_criteria'];
+  $days = $search_array['days'];
+
+  $search_str = '';
+  for ($i = 0; $i <= $num_criteria; $i++) {
+    $search_terms = $search_array['criteria'][$i]['search_terms'];
+    $scope = $search_array['criteria'][$i]['scope'];
+    $op = $search_array['criteria'][$i]['operation'];
+    
+    if ($op) {
+      $search_str .= "$op";
+    }
+    
+    $search_str .= '(';
+    $search_str .= implode("+", preg_split('/\s+/', trim($search_terms)));
+    if($scope == 'title') {
+      $search_str .= '[Title]';
+    }    
+    elseif($scope == 'author') {
+      $search_str .= '[Author]';
+    }    
+    elseif($scope == 'abstract') {
+      $search_str .= '[Title/Abstract]';
+    }
+    $search_str .= ')'; 
+  }  
+  $search_array['limit'] = $num_to_retrieve;
+  $search_array['search_terms'] = $search_str;
+
+  // we want to get the list of pubs using the search terms but using a Drupal style pager
+  $pubs = tripal_pager_callback('tripal_pub_remote_search_pubmed_range',  
+    $num_to_retrieve, $pager_id, 'tripal_pub_remote_search_pubmed_count', $search_array);
+ 
+  return $pubs;
+}
+
+/*
+ * This function is used as the callback function when used with the
+ * tripal_pager_callback function.  This function returns a count of
+ * the dataset to be paged.
+ */
+function tripal_pub_remote_search_pubmed_count($search_array) {
+  $terms = $search_array['search_terms'];
+  $days = $search_array['days'];
+  $limit = $search_array['limit'];
+  
+  $results = tripal_pub_remote_search_pubmed_search_init($terms, $limit, $days);
+  $_SESSION['tripal_pub_pubmed_query'][$terms]['Count'] = $results['Count'];
+  $_SESSION['tripal_pub_pubmed_query'][$terms]['WebEnv'] = $results['WebEnv'];
+  $_SESSION['tripal_pub_pubmed_query'][$terms]['QueryKey'] = $results['QueryKey'];
+  
+  return $results['Count'];
+
+}
+
+/*
+ * This function is used as the callback function when used with the
+ * tripal_pager_callback function.  This function returns the results
+ * within the specified range
+ */
+function tripal_pub_remote_search_pubmed_range($search_array, $start = 0, $limit = 10) {
+  $terms = $search_array['search_terms'];
+  $days = $search_array['days'];
+  $limit = $search_array['limit'];
+  
+  // get the query_key and the web_env from the previous count query.
+  $query_key = $_SESSION['tripal_pub_pubmed_query'][$terms]['QueryKey'];
+  $web_env = $_SESSION['tripal_pub_pubmed_query'][$terms]['WebEnv'];
+  
+  // if this function has been called without calling the count function
+  // then we need to do the query.
+  if (!$query_key) {
+    $results = tripal_pub_remote_search_pubmed_search_init($terms, $limit, $days);
+    $_SESSION['tripal_pub_pubmed_query']['WebEnv'] = $results['WebEnv'];
+    $_SESSION['tripal_pub_pubmed_query']['QueryKey'] = $results['QueryKey']; 
+    $query_key =  $results['QueryKey'];
+    $web_env = $results['WebEnv'];
+  }
+
+  // now get the list of PMIDs from the previous search
+  $pmids_txt = tripal_pub_remote_search_pubmed_fetch($query_key, $web_env, 'uilist', 'text', $start, $limit);  
+  
+  // iterate through each PMID and get the publication record. This requires a new search and new fetch
+  $pmids = explode("\n", trim($pmids_txt));
+  $pubs = array();
+  foreach ($pmids as $pmid) {
+    // now retrieve the individual record
+    $pub_xml = tripal_pub_remote_search_pubmed_fetch($query_key, $web_env, 'null', 'xml', 0, 1, array('id' => $pmid));
+    $pub = tripal_pub_remote_search_pubmed_parse_pubxml($pub_xml);
+    $pubs[] = $pub;    
+  } 
+  return $pubs;
+}
+
+/*
+ * 
+ */
+function tripal_pub_remote_search_pubmed_search_init($terms, $retmax, $days = 0){
+   
+  // do a search for a single result so that we can establish a history, and get
+  // the number of records. Once we have the number of records we can retrieve
+  // those requested in the range.
+  $query_url = "http://www.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=Pubmed&retmax=$retmax&usehistory=y&term=$terms";
+  if($days) {
+    $query_url .= "&reldate=$days&datetype=edat";
+  }
+  //dpm($query_url);
+  $rfh = fopen($query_url, "r");
+  if (!$rfh) {
+    drupal_set_message('Could not perform Pubmed query. Cannot connect to Entrez.', 'error');
+    return 0;    
+  }
+  
+  // retrieve the XML results
+  $query_xml = '';
+  while (!feof($rfh)) {
+    $query_xml .= fread($rfh, 255);
+  }
+  fclose($rfh);
+  //dpm("<pre>$query_xml</pre>");
+  $xml = new XMLReader();
+  $xml->xml($query_xml);
+  
+  // iterate though the child nodes of the <eSearchResult> tag and get the count, history and query_id
+  $result = array();
+  while ($xml->read()) {
+    $element = $xml->name;
+  
+    if ($xml->nodeType == XMLReader::END_ELEMENT and $element == 'WebEnv') {
+      // we've read as much as we need. If we go too much further our counts 
+      // will get messed up by other 'Count' elements.  so we're done.
+      break;
+    }
+    if ($xml->nodeType == XMLReader::ELEMENT) {
+      
+      switch ($element) {
+        case 'Count':
+          $xml->read();
+          $result['Count'] = $xml->value;
+          break;        
+        case 'WebEnv':
+          $xml->read();
+          $result['WebEnv'] = $xml->value;
+          break;
+        case 'QueryKey':
+          $xml->read();
+          $result['QueryKey'] = $xml->value;
+          break;
+      }
+    }
+  }  
+  return $result;
+}
+
+/*
+ * 
+ */
+function tripal_pub_remote_search_pubmed_fetch($query_key, $web_env, $rettype = 'null', 
+  $retmod = 'null', $start = 0, $limit = 10, $args = array()){
+
+  // repeat the search performed previously (using WebEnv & QueryKey) to retrieve
+  // the PMID's within the range specied.  The PMIDs will be returned as a text list
+  $fetch_url = "http://www.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?rettype=$rettype&retmode=$retmod&retstart=$start&retmax=$limit&db=Pubmed&query_key=$query_key&WebEnv=$web_env";
+  //dpm($fetch_url);
+  foreach ($args as $key => $value) {
+    if(is_array($value)) {
+      $fetch_url .= "&$key=";
+      foreach ($value as $item) {
+        $fetch_url .= "$item,";
+      }
+      $fetch_url = substr($fetch_url, 0, -1); // remove trailing comma  
+    }
+    else {
+      $fetch_url .= "&$key=$value";
+    }
+  }
+  
+  $rfh = fopen($fetch_url, "r");
+  if (!$rfh) {
+    drupal_set_message('Could not perform Pubmed query. Cannot connect to Entrez.', 'error');
+    return '';    
+  }
+  $results = '';
+  if($rfh) {
+    while (!feof($rfh)) {
+      $results .= fread($rfh, 255);
+    }  
+    fclose($rfh);
+  }
+  
+  return $results;
+}
+
+/*
+ * This function parses the XML containing details of a publication and
+ * converts it into an associative array of where keys are Tripal Pub 
+ * ontology terms and the values are extracted from the XML. The
+ * XML should contain only a single publication record.  
+ * 
+ * Information about the valid elements in the PubMed XML can be found here:
+ * http://www.nlm.nih.gov/bsd/licensee/elements_descriptions.html
+ * 
+ * Information about PubMed's citation format can be found here
+ * http://www.nlm.nih.gov/bsd/policy/cit_format.html
+ */
+function tripal_pub_remote_search_pubmed_parse_pubxml($pub_xml) {
+  $pub = array();
+  
+  if (!$pub_xml) {
+    return $pub;
+  }
+  
+  // read the XML and iterate through it.
+  $xml = new XMLReader();
+  $xml->xml($pub_xml);
+  while ($xml->read()) {    
+    $element = $xml->name;    
+    if ($xml->nodeType == XMLReader::ELEMENT) {
+      
+      switch ($element) {
+        case 'PMID':
+          $xml->read(); // get the value for this element
+          $pub['pub_accession'] = $xml->value;
+          $pub['pub_database'] = 'PMID';
+          break;        
+        case 'Article':
+          $pub_model = $xml->getAttribute('PubModel');
+          $pub['publication_model'] = $pub_model;
+          tripal_pub_remote_search_pubmed_parse_article($xml, $pub);
+          break;
+        case 'MedlineJournalInfo':
+          tripal_pub_remote_search_pubmed_parse_medline_journal_info($xml, $pub);
+          break;
+        case 'ChemicalList':
+          // TODO: handle this
+          break;
+        case 'SupplMeshList':
+          // TODO: meant for protocol list
+          break;
+        case 'CitationSubset':
+          // TODO: not sure this is needed.         
+          break;
+        case 'CommentsCorrections':
+          // TODO: handle this
+          break;
+        case 'GeneSymbolList':
+          // TODO: handle this
+          break;
+        case 'MeshHeadingList':
+          // TODO: Medical subject headings
+          break;
+        case 'NumberOfReferences':
+          // TODO: not sure we should keep this as it changes frequently.
+          break;
+        case 'PersonalNameSubjectList':
+          // TODO: for works about an individual or with biographical note/obituary.
+          break;
+        case 'OtherID':
+          // TODO: ID's from another NLM partner.
+          break;
+        case 'OtherAbstract':
+          // TODO: when the journal does not contain an abstract for the publication.
+          break;
+        case 'KeywordList':
+          // TODO: handle this
+          break;
+        case 'InvestigatorList':
+          // TODO: personal names of individuals who are not authors (can be used with collection)
+          break;
+        case 'GeneralNote':
+          // TODO: handle this
+          break;
+        case 'DeleteCitation':
+          // TODO: need to know how to handle this
+          break;          
+        default:
+          break;
+      }
+    }
+  }
+  $pub['citation'] = $pub['author_list'] . 
+    '. <a href="http://www.ncbi.nlm.nih.gov/pubmed/' . $pub['pub_accession'] . '" target="_blank">' . $pub['title'] .  '</a> ' .
+    $pub['journal_iso_abbreviation']. '. ' . $pub['publication_date'];
+  if ($pub['volume'] or $pub['issue']) {
+    $pub['citation'] .= '; ';  
+  }
+  if ($pub['volume']) {
+    $pub['citation'] .= $pub['volume'];
+  }
+  if ($pub['issue']) {
+    $pub['citation'] .= '(' . $pub['issue'] . ')';
+  }
+  if ($pub['pages']) {
+    $pub['citation'] .= ':' . $pub['pages'];
+  }
+  $pub['citation'] .= '. PubMed PMID: ' . $pub['pub_accession']; 
+  
+  $pub['xml'] = $pub_xml;
+  return $pub;
+}
+
+/*
+ * 
+ */
+function tripal_pub_remote_search_pubmed_parse_medline_journal_info($xml, &$pub) {
+  while ($xml->read()) {
+    // get this element name
+    $element = $xml->name;     
+        
+    // if we're at the </Article> element then we're done with the article...
+    if ($xml->nodeType == XMLReader::END_ELEMENT and $element == 'MedlineJournalInfo') {
+      return;  
+    }
+    if ($xml->nodeType == XMLReader::ELEMENT) { 
+      switch ($element) {
+        case 'Country':
+          // the place of publication of the journal
+          $xml->read();
+          $pub['journal_country'] = $xml->value;
+          break;
+        case 'MedlineTA':
+          // TODO: not sure how this is different from ISOAbbreviation
+          break;
+        case 'NlmUniqueID':
+          // TODO: the journal's unique ID in medline
+          break;
+        case 'ISSNLinking':
+          // TODO: not sure how this is different from ISSN
+          break;  
+        default:
+          break;
+      }
+    }
+  }
+}
+
+/*
+ * 
+ */
+function tripal_pub_remote_search_pubmed_parse_article($xml, &$pub) {
+    
+  while ($xml->read()) {
+    // get this element name
+    $element = $xml->name;     
+        
+    // if we're at the </Article> element then we're done with the article...
+    if ($xml->nodeType == XMLReader::END_ELEMENT and $element == 'Article') {
+      return;  
+    }
+    if ($xml->nodeType == XMLReader::ELEMENT) {    
+      switch ($element) {
+        case 'Journal':
+          tripal_pub_remote_search_pubmed_parse_journal($xml, $pub);
+          break;
+        case 'ArticleTitle':
+          $xml->read();
+          $pub['title'] = $xml->value;
+          break;
+        case 'Abstract':
+          tripal_pub_remote_search_pubmed_parse_abstract($xml, $pub);
+          break;
+        case 'Pagination':
+          tripal_pub_remote_search_pubmed_parse_pagination($xml, $pub);
+          break;  
+        case 'ELocationID':
+          $type = $xml->getAttribute('EIdType');
+          $valid = $xml->getAttribute('ValidYN');
+          $xml->read();
+          $elocation = $xml->value;
+          if ($type == 'doi' and $valid == 'Y') {
+            $pub['DOI'] = $elocation;
+          }
+          if ($type == 'pii' and $valid == 'Y') {
+            $pub['PII'] = $elocation;
+          }
+          $pub['elocation'] = $elocation;
+          break;        
+        case 'Affiliation':
+          // the affiliation tag at this level is meant solely for the first author
+          $xml->read();
+          $pub['authors'][0]['affiliation'] = $xml->value;
+          break;
+        case 'AuthorList':
+          $complete = $xml->getAttribute('CompleteYN');
+          tripal_pub_remote_search_pubmed_parse_authorlist($xml, $pub);
+          break;
+        case 'InvestigatorList':
+          // TODO: perhaps handle this one day.  The investigator list is to list the names of people who 
+          // are members of a collective or corporate group that is an author in the paper. 
+          break;
+        case 'Language':
+          $xml->read();
+          $lang_abbr = $xml->value;
+          // there may be multiple languages so we store these in an array
+          $pub['language'][] = tripal_pub_remote_search_get_language($lang_abbr);
+          $pub['language_abbr'][] = $lang_abbr;
+          break;
+        case 'DataBankList':
+          // TODO: handle this case
+          break;
+        case 'GrantList':
+          // TODO: handle this case
+          break;
+        case 'PublicationTypeList':
+          tripal_pub_remote_search_pubmed_parse_publication_type($xml, $pub);
+          break;
+        case 'VernacularTitle':
+          $xml->read();
+          $pub['vernacular_title'][] = $xml->value;;
+          break;
+        case 'ArticleDate': 
+          // TODO: figure out what to do with this element. We already have the
+          // published date in the <PubDate> field, but this date should be in numeric
+          // form and may have more information.         
+          break;
+        default:
+          break;     
+      }
+    }
+  }
+}
+/*
+ * A full list of publication types can be found here:
+ * http://www.nlm.nih.gov/mesh/pubtypes.html.
+ * 
+ * The Tripal Pub ontology doesn't yet have terms for all of the 
+ * publication types so we store the value in the 'publication_type' term.
+ */
+function tripal_pub_remote_search_pubmed_parse_publication_type($xml, &$pub) {
+  
+  while ($xml->read()) {
+    $element = $xml->name;    
+      
+    if ($xml->nodeType == XMLReader::END_ELEMENT and $element == 'PublicationTypeList') {
+      // we've reached the </PublicationTypeList> element so we're done.
+      return;
+    }
+    if ($xml->nodeType == XMLReader::ELEMENT) {
+      switch ($element) {
+        case 'PublicationType':  
+          $xml->read();          
+          $pub['publication_type'][] = $xml->value;
+          break;          
+        default:
+          break;
+      }
+    }
+  }  
+}
+/*
+ * 
+ */
+function tripal_pub_remote_search_pubmed_parse_abstract($xml, &$pub) {
+  $abstract = '';
+  
+  while ($xml->read()) {
+    $element = $xml->name;
+      
+    if ($xml->nodeType == XMLReader::END_ELEMENT and $element == 'Abstract') {
+      // we've reached the </Abstract> element so return   
+      $pub['abstract'] = $abstract;        
+      return;
+    }
+    // the abstract text can be just a singe paragraph or be broken into multiple
+    // abstract texts for structured abstracts.  Here we will just combine then 
+    // into a single element in the order that they arrive in HTML format
+    if ($xml->nodeType == XMLReader::ELEMENT) {
+      switch ($element) {
+        case 'AbstractText':
+          $label = $xml->getAttribute('Label');
+          $xml->read();
+          if ($label) {
+            $pub['structured_abstract_part'][][$label] = $xml->value;
+            $abstract .= "<p><b>$label</b></br>" . $xml->value . '</p>';
+          }
+          else {
+            $abstract .= '<p>' . $xml->value . '</p>';
+          }
+          break;
+        case 'CopyrightInformation':
+          $xml->read();
+          $pub['copyright'] = $xml->value;
+          break;          
+        default:
+          break;
+      }
+    }
+  }
+}
+/*
+ * 
+ */
+function tripal_pub_remote_search_pubmed_parse_pagination($xml, &$pub) {
+  while ($xml->read()) {
+    $element = $xml->name;
+      
+    if ($xml->nodeType == XMLReader::END_ELEMENT and $element == 'Pagination') {
+      // we've reached the </Pagination> element so we're done.
+      return;
+    }
+    if ($xml->nodeType == XMLReader::ELEMENT) {
+      switch ($element) {
+        case 'MedlinePgn':  
+          $xml->read();
+          if(trim($xml->value)) {
+            $pub['pages'] = $xml->value;
+          }
+          break;          
+        default:
+          break;
+      }
+    }
+  }
+}
+/*
+ * 
+ */
+function tripal_pub_remote_search_pubmed_parse_journal($xml, &$pub) {
+  
+  while ($xml->read()) {
+    $element = $xml->name;
+      
+    if ($xml->nodeType == XMLReader::END_ELEMENT and $element == 'Journal') {
+      return;
+    }
+    if ($xml->nodeType == XMLReader::ELEMENT) {
+      switch ($element) {
+        case 'ISSN':  
+          $issn_type = $xml->getAttribute('IssnType');          
+          $xml->read();
+          $issn = $xml->value;
+          $pub['ISSN'] = $issn;
+          if ($issn_type == 'Electronic') {            
+            $pub['eISSN'] = $issn;  
+          }
+          if ($issn_type == 'Print') {            
+            $pub['pISSN'] = $issn;  
+          }                 
+          break;
+        case 'JournalIssue':   
+          // valid values of cited_medium are 'Internet' and 'Print'
+          $cited_medium = $xml->getAttribute('CitedMedium');                    
+          tripal_pub_remote_search_pubmed_parse_journal_issue($xml, $pub);       
+          break;        
+        case 'Title': 
+          $xml->read();
+          $pub['journal_name'] = $xml->value;          
+          break;
+        case 'ISOAbbreviation': 
+          $xml->read();
+          $pub['journal_iso_abbreviation'] = $xml->value;         
+          break;
+        default:
+          break;
+      }
+    }
+  }
+}
+/*
+ * 
+ */
+function tripal_pub_remote_search_pubmed_parse_journal_issue($xml, &$pub) {
+  
+  while ($xml->read()) {
+    $element = $xml->name;
+      
+    if ($xml->nodeType == XMLReader::END_ELEMENT and $element == 'JournalIssue'){
+      // if we're at the </JournalIssue> element then we're done 
+      return;
+    }
+    if ($xml->nodeType == XMLReader::ELEMENT) {
+      switch ($element) {
+        case 'Volume': 
+          $xml->read();
+          $pub['volume'] = $xml->value;         
+          break;
+        case 'Issue':
+          $xml->read();
+          $pub['issue'] = $xml->value;           
+          break;
+        case 'PubDate':
+          $date = tripal_pub_remote_search_pubmed_parse_date($xml, 'PubDate');
+          $year = $date['year'];
+          $month = $date['month'];
+          $day = $date['day']; 
+          $medline = $date['medline'];
+           
+          $pub['year'] = $year;            
+          if ($month and $day and $year) {
+            $pub['publication_date'] = "$year $month $day";
+          }
+          elseif ($month and !$day and $year) {
+            $pub['publication_date'] = "$year $month";
+          }
+          elseif (!$month and !$day and $year) {
+            $pub['publication_date'] = $year;
+          } 
+          elseif ($medline) {
+            $pub['publication_date'] = $medline;
+          }
+          else {
+            $pub['publication_date'] = "Date Unknown";
+          }             
+          break;
+        default:
+          break;
+      }
+    }
+  }  
+}
+
+/*
+ * 
+ */
+function tripal_pub_remote_search_pubmed_parse_date ($xml, $element_name) {
+  $date = array();
+  
+  while ($xml->read()) {
+    $element = $xml->name;
+      
+    if ($xml->nodeType == XMLReader::END_ELEMENT and $element == $element_name){
+      // if we're at the </$element_name> then we're done 
+      return $date;
+    }
+    if ($xml->nodeType == XMLReader::ELEMENT) {           
+      switch ($element) {
+        case 'Year':
+          $xml->read(); 
+          $date['year'] = $xml->value;         
+          break;
+        case 'Month':
+          $xml->read(); 
+          $month = 
+          $date['month'] = $xml->value;          
+          break;
+        case 'Day':
+          $xml->read(); 
+          $date['day'] = $xml->value;          
+          break;
+        case 'MedlineDate':
+          // the medline date is when the date cannot be broken into distinct month day year.
+          $xml->read(); 
+          $date['medline'] = $xml->value;          
+          break;
+        default:
+          break;
+      }    
+    }
+  } 
+}
+/*
+ * 
+ */
+function tripal_pub_remote_search_pubmed_parse_authorlist($xml, &$pub) {
+  $num_authors = 0;
+  
+  while ($xml->read()) {
+    $element = $xml->name;
+      
+    if ($xml->nodeType == XMLReader::END_ELEMENT){
+      // if we're at the </AuthorList> element then we're done with the article...
+      if($element == 'AuthorList') {
+        // build the author list before returning
+        $author_list = '';
+        foreach ($pub['authors'] as $author) {
+          if ($author['valid'] == 'N') {
+            // skip non-valid entries.  A non-valid entry should have 
+            // a corresponding corrected entry so we can saftely skip it.
+            continue;
+          }
+          if ($author['collective']) {
+            $author_list .= $author['collective'] . ', ';
+          }
+          else {
+            $author_list .= $author['surname'] . ' ' . $author['first_initials'] . ', '; 
+          }             
+        }
+        $author_list = substr($author_list, 0, -2);
+        $pub['author_list'] = $author_list;
+        return;
+      }
+      // if we're at the end </Author> element then we're done with the author and we can
+      // start a new one.
+      if($element == 'Author') {
+        $num_authors++;
+      }  
+    }
+    if ($xml->nodeType == XMLReader::ELEMENT) {
+      switch ($element) {
+        case 'Author':
+          $valid = $xml->getAttribute('ValidYN');
+          $pub['authors'][$num_authors]['valid'] = $valid;          
+          break;
+        case 'LastName':  
+          $xml->read(); 
+          $pub['authors'][$num_authors]['surname'] = $xml->value;         
+          break;
+        case 'ForeName': 
+          $xml->read(); 
+          $pub['authors'][$num_authors]['given_name'] = $xml->value;          
+          break;
+        case 'Initials': 
+          $xml->read(); 
+          $pub['authors'][$num_authors]['first_initials'] = $xml->value;          
+          break;
+        case 'Suffix': 
+          $xml->read(); 
+          $pub['authors'][$num_authors]['suffix'] = $xml->value;          
+          break;
+        case 'CollectiveName': 
+          $xml->read(); 
+          $pub['authors'][$num_authors]['collective'] = $xml->value;          
+          break;
+        case 'Identifier': 
+          // according to the specification, this element is not yet used.                  
+          break;
+        default:
+          break;
+      }
+    }
+  }
+}
+
+/*
+ * Language abbreviations were obtained here: 
+ * http://www.nlm.nih.gov/bsd/language_table.html
+ */
+function tripal_pub_remote_search_get_language($lang_abbr) {
+  $languages = array(
+    'afr' => 'Afrikaans',
+    'alb' => 'Albanian',
+    'amh' => 'Amharic',
+    'ara' => 'Arabic',
+    'arm' => 'Armenian',
+    'aze' => 'Azerbaijani',
+    'ben' => 'Bengali',
+    'bos' => 'Bosnian',
+    'bul' => 'Bulgarian',
+    'cat' => 'Catalan',
+    'chi' => 'Chinese',
+    'cze' => 'Czech',
+    'dan' => 'Danish',
+    'dut' => 'Dutch',
+    'eng' => 'English',
+    'epo' => 'Esperanto',
+    'est' => 'Estonian',
+    'fin' => 'Finnish',
+    'fre' => 'French',
+    'geo' => 'Georgian',
+    'ger' => 'German',
+    'gla' => 'Scottish Gaelic',
+    'gre' => 'Greek, Modern',
+    'heb' => 'Hebrew',
+    'hin' => 'Hindi',
+    'hrv' => 'Croatian',
+    'hun' => 'Hungarian',
+    'ice' => 'Icelandic',
+    'ind' => 'Indonesian',
+    'ita' => 'Italian',
+    'jpn' => 'Japanese',
+    'kin' => 'Kinyarwanda',
+    'kor' => 'Korean',
+    'lat' => 'Latin',
+    'lav' => 'Latvian',
+    'lit' => 'Lithuanian',
+    'mac' => 'Macedonian',
+    'mal' => 'Malayalam',
+    'mao' => 'Maori',
+    'may' => 'Malay',
+    'mul' => 'Multiple languages',
+    'nor' => 'Norwegian',
+    'per' => 'Persian',
+    'pol' => 'Polish',
+    'por' => 'Portuguese',
+    'pus' => 'Pushto',
+    'rum' => 'Romanian, Rumanian, Moldovan',
+    'rus' => 'Russian',
+    'san' => 'Sanskrit',
+    'slo' => 'Slovak',
+    'slv' => 'Slovenian',
+    'spa' => 'Spanish',
+    'srp' => 'Serbian',
+    'swe' => 'Swedish',
+    'tha' => 'Thai',
+    'tur' => 'Turkish',
+    'ukr' => 'Ukrainian',
+    'und' => 'Undetermined',
+    'urd' => 'Urdu',
+    'vie' => 'Vietnamese',
+    'wel' => 'Welsh',
+  );
+  return $languages[$lang_abbr];
+}

+ 312 - 0
tripal_pub/includes/remote_search.inc

@@ -0,0 +1,312 @@
+<?php
+
+/*
+ * 
+ */
+function tripal_pub_remote_search_page() {
+  global $pager_total, $pager_total_items;
+  
+  $pager_id = 0;
+  $limit = 10;
+  
+  // generate the search form 
+  $form = drupal_get_form('tripal_pub_remote_search_form');
+  $output = $form;
+
+  // retrieve any results
+  $remote_db = $_SESSION['tripal_pub_search']['remote_db'];
+  $num_criteria = $_SESSION['tripal_pub_search']['num_criteria'];
+  $days = $_SESSION['tripal_pub_search']['days'];
+ 
+  $search_array = array();
+  $search_array['remote_db'] = $remote_db;
+  $search_array['num_criteria'] = $num_criteria;
+  $search_array['days'] = $days; 
+  for ($i = 0; $i <= $num_criteria; $i++) {
+    $search_array['criteria'][$i]['search_terms'] = $_SESSION['tripal_pub_search']['criteria'][$i]['search_terms'];
+    $search_array['criteria'][$i]['scope'] = $_SESSION['tripal_pub_search']['criteria'][$i]['scope'];  
+    $search_array['criteria'][$i]['operation'] = $_SESSION['tripal_pub_search']['criteria'][$i]['operation'];
+  }
+  
+    
+  if ($_SESSION['tripal_pub_search']['perform_search']) {
+    // get the list of publications from the remote database using the search criteria.  
+    $pubs = tripal_pub_get_remote_search_results($remote_db, $search_array, $limit, $pager_id);
+  
+    // generate the pager
+    $total_pages = $pager_total[$pager_id];
+    $total_items = $pager_total_items[$pager_id];
+    $page = isset($_GET['page']) ? $_GET['page'] : '0';
+    $pager = theme('pager');
+    
+    // iterate through the results and construct the table displaying the publications
+    $rows = array();
+    $i = $page * $limit + 1;
+    if (count($pubs) > 0) {
+      foreach ($pubs as $pub) {
+        $rows[] = array(number_format($i), $pub['citation']);
+        $i++;
+      }
+    }
+    $headers = array('', 'Citation');
+    $table = theme('table', $headers, $rows);   
+  
+    // join all to form the results
+    $output .= "<br><p><b>Found " . number_format($total_items) .  
+      ". Page " . ($page + 1) . " of $total_pages. " .
+      " Results</b></br>" . $table . '</p>' . $pager;    
+  }
+  return $output;
+}
+/*
+ * 
+ */
+function theme_tripal_pub_remote_search_form($form) {
+  $rows = array();
+  foreach ($form['criteria'] as $i => $element) {
+    if(is_numeric($i)) {
+      $rows[] = array(  
+        array('data' => drupal_render($element["operation-$i"]), 'width' => '10%'),    
+        array('data' => drupal_render($element["scope-$i"]), 'width' => '10%'),
+        drupal_render($element["search_terms-$i"]),
+        array('data' => drupal_render($element["add-$i"]) . drupal_render($element["remove-$i"]), 'width' => '5%'),
+      );
+    }
+  } 
+  $headers = array('Operation','Scope', 'Search Terms', '');
+  
+  $markup  = '<div id="pub-search-form-row1">';
+  $markup .= '  <div id="pub-search-form-col1">' . drupal_render($form['loader_name']) . '</div>';
+  $markup .= '  <div id="pub-search-form-col2">' . drupal_render($form['remote_db']) . '</div>';
+  $markup .= '  <div id="pub-search-form-col3">' . drupal_render($form['days']) . '</div>';
+  $markup .= '</div>';
+  $markup .= theme('table', $headers, $rows);
+  
+  $form['criteria'] = array(
+    '#type' => 'markup',
+    '#value' =>  $markup,
+    '#weight' => -10,
+  );
+  return drupal_render($form);
+}
+/**
+ * Purpose: Provides the form to search pubmed
+ *
+  * @ingroup tripal_pub
+ */
+function tripal_pub_remote_search_form(&$form_state = NULL) {
+  tripal_core_ahah_init_form();
+
+  // set default values.  First use what is in the form_state['values'] array. If nothing there then use the session variable.
+  $remote_db = $form_state['values']['remote_db'] ? $form_state['values']['remote_db'] : $_SESSION['tripal_pub_search']['remote_db'];
+  $days = $form_state['values']['days'] ? $form_state['values']['days'] : $_SESSION['tripal_pub_search']['days']; 
+  $num_criteria = $form_state['values']['num_criteria'] ? $form_state['values']['num_criteria'] : $_SESSION['tripal_pub_search']['num_criteria'];
+  $loader_name = $form_state['values']['loader_name'] ? $form_state['values']['loader_name'] : $_SESSION['tripal_pub_search']['loader_name'];
+  
+  // change the number of criteria based on form_state post data.
+  if (!$num_criteria) {
+    $num_criteria = 0;
+  }
+  if($form_state['post']["add-$num_criteria"]) {    
+    $num_criteria++;
+  }
+  if($form_state['post']["remove-$num_criteria"]) {    
+    $num_criteria--;
+  }
+  
+  $form['loader_name'] = array(
+    '#type'          => 'textfield',
+    '#title'         => t('Loader Name'),
+    '#description'   => t('Please provide a name for this loader setup..'),
+    '#default_value' => $loader_name,
+    '#required'      => TRUE,
+  );
+   
+  $remote_dbs = array('Pubmed' => 'Pubmed');
+  $form['remote_db'] = array(
+    '#title' => t('Remote Database'),
+    '#type' => 'select',
+    '#options' => $remote_dbs,
+    '#default_value' => $remote_db,
+  );
+
+  $form['num_criteria']= array(
+    '#type'          => 'hidden',
+    '#default_value' => $num_criteria,
+  );
+  
+  $form['days'] = array(
+    '#type'          => 'textfield',
+    '#title'         => t('Days'),
+    '#description'   => t('The number of days <br>from today to search.'),
+    '#default_value' => $days,
+    '#size'          => 5,
+  );
+  
+  for($i = 0; $i <= $num_criteria; $i++) {
+    $search_terms = $form_state['values']["search_terms-$i"] ? $form_state['values']["search_terms-$i"] : $_SESSION['tripal_pub_search']['criteria'][$i]['search_terms'];
+    $scope = $form_state['values']["scope-$i"] ? $form_state['values']["scope-$i"] : $_SESSION['tripal_pub_search']['criteria'][$i]['scope'];
+    $operation = $form_state['values']["operation-$i"] ? $form_state['values']["operation-$i"] : $_SESSION['tripal_pub_search']['criteria'][$i]['operation'];
+    
+    // default to searching the title and abstract
+    if (!$scope) {
+      $scope = 'abstract';
+    }
+  
+    $form['criteria'][$i]["search_terms-$i"] = array(
+      '#type'          => 'textfield',
+      '#description'   => t('Please provide a list of words, separated by spaces for searching.'),
+      '#default_value' => $search_terms,
+      '#required'      => TRUE,
+    );
+    $form['criteria'][$i]["scope-$i"] = array(
+      '#type'          => 'select',
+      '#description'   => t('Please select the fields to search for this term.'),
+      '#options'       => array(
+        'any'      => 'Any Field',
+        'title'    => 'Title',
+        'abstract' => 'Title/Abstract',
+        'author'   => 'Author'),
+      '#default_value' => $scope,
+    );    
+    
+    if ($i > 0) {
+      $form['criteria'][$i]["operation-$i"] = array(
+        '#type'          => 'select',
+        '#options'       => array(
+          'AND' => 'AND',
+          'OR'  => 'OR',
+          'NOT' => 'NOT'),
+        '#default_value' => $operation,
+      );
+    }
+    if ($i == $num_criteria) {    
+      if($i > 0) {
+        $form['criteria'][$i]["remove-$i"] = array(
+          '#type'         => 'image_button',
+          '#value'        => t('Remove'),
+          '#src'          => drupal_get_path('theme', 'tripal') . '/images/minus.png',
+          '#ahah' => array(
+            'path'    => "admin/tripal/tripal_pub/import_setup/criteria/minus/$i",
+            'wrapper' => 'tripal-pub-remote-search-form',
+            'event'   => 'click',
+            'method'  => 'replace',
+          ), 
+          '#attributes' => array('onClick' => 'return false;'),
+        );
+      }
+      $form['criteria'][$i]["add-$i"] = array(
+        '#type'         => 'image_button',      
+        '#value'        => t('Add'),
+        '#src'          => drupal_get_path('theme', 'tripal') . '/images/add.png',
+        '#ahah' => array(
+          'path'    => "admin/tripal/tripal_pub/import_setup/criteria/add/$i",
+          'wrapper' => 'tripal-pub-remote-search-form',
+          'event'   => 'click',
+          'method'  => 'replace',          
+        ),   
+        '#attributes' => array('onClick' => 'return false;'),
+      );
+    }
+  }
+  
+  $form['test'] = array(
+    '#type'         => 'submit',
+    '#value'        => t('Test Criteria'),
+  );
+  $form['save'] = array(
+    '#type'         => 'submit',
+    '#value'        => t('Save Criteria'),
+  );
+
+  return $form;
+}
+
+/**
+ *
+ */
+function tripal_pub_remote_search_form_validate($form, &$form_state) {
+  $num_criteria = $form_state['values']['num_criteria'];
+  $remote_db =  $form_state['values']["remote_db"];
+  $days =  trim($form_state['values']["days"]);
+  $loader_name =  trim($form_state['values']["loader_name"]);
+
+  for ($i = 0; $i <= $num_criteria; $i++) {            
+    $search_terms =  trim($form_state['values']["search_terms-$i"]);
+    $scope =  $form_state['values']["scope-$i"];
+    $operation =  $form_state['values']["operation-$i"];
+    
+    if ($days and !is_numeric($days) or preg_match('/\./', $days)) {
+      form_set_error("days-$i", "Please enter a numeric, non decimal value, for the number of days.");
+    }
+  }
+}
+
+/**
+ *
+ */
+function tripal_pub_remote_search_form_submit($form, &$form_state) {
+   
+  $num_criteria = $form_state['values']['num_criteria'];
+  $remote_db =  $form_state['values']["remote_db"];
+  $days =  trim($form_state['values']["days"]);
+  $loader_name =  trim($form_state['values']["loader_name"]);
+    
+  $_SESSION['tripal_pub_search']['remote_db'] = $remote_db;
+  $_SESSION['tripal_pub_search']['days'] = $days;
+  $_SESSION['tripal_pub_search']['num_criteria'] = $num_criteria;
+  $_SESSION['tripal_pub_search']['loader_name'] = $loader_name;
+  unset($_SESSION['tripal_pub_search']['criteria']);
+  for ($i = 0; $i <= $num_criteria; $i++) {
+    $search_terms =  trim($form_state['values']["search_terms-$i"]);
+    $scope =  $form_state['values']["scope-$i"];
+    $operation =  $form_state['values']["operation-$i"];
+    
+    $_SESSION['tripal_pub_search']['criteria'][$i] = array(
+      'search_terms' => $search_terms,
+      'scope' => $scope,
+      'operation' => $operation
+    );
+  }   
+
+  if ($form_state['values']['op'] == 'Test Criteria') {
+    $_SESSION['tripal_pub_search']['perform_search'] = 1;
+  }
+  if ($form_state['values']['op'] == 'Save Criteria') {
+    unset($_SESSION['tripal_pub_search']['perform_search']);
+    $record = array(
+      'name' => $loader_name,
+      'criteria' => serialize($_SESSION['tripal_pub_search']),
+    );
+    if(drupal_write_record('tripal_pub_import', $record)){
+      drupal_set_message('Publication import settings saved');
+    }
+    else {
+      drupal_set_message('Could not save publication import settings', 'error');
+    }
+  }  
+}
+
+/*
+ * AHAH callback
+ */
+function tripal_pub_remote_search_page_update_criteria($action, $i) {
+  $status = TRUE;
+
+  // prepare and render the form
+  $form = tripal_core_ahah_prepare_form();   
+  $data = theme('tripal_pub_remote_search_form', $form);  
+
+  // bind javascript events to the new objects that will be returned 
+  // so that AHAH enabled elements will work.
+  $settings = tripal_core_ahah_bind_events();
+
+  // return the updated JSON
+  drupal_json(
+    array(
+      'status'   => $status, 
+      'data'     => $data,
+      'settings' => $settings,
+    )  
+  );
+}

+ 119 - 0
tripal_pub/includes/tripal_pub.admin.inc

@@ -0,0 +1,119 @@
+<?php
+/**
+ * Implementation of tripal_pub_form().
+ *
+ *  This form takes the following information:A Publication Title,Volume title,Volume,Series Name,
+ *  Issue,Publication Year,Pages where the Article is located, Miniref,Type-Id, if the article is Obsolete,
+ *  Publishing company,Pubplication Place and a Uniquename for the the instance. It then puts the
+ *  infromation into the Chado_project database table based on its 'pub_id'.
+ *
+ *
+ *  @return $form
+ *    An array of menu items '$form'
+ *
+ */
+function tripal_pub_configuration_form() {
+
+  $cv_options = tripal_cv_get_cv_options();
+
+  //Creating Fieldset for multiple fields in form
+  $form['node_form'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Create/Edit Publication Settings'),
+  );
+
+  $form['node_form']['tripal_pub_types_cv'] = array(
+    '#type' => 'select',
+    '#title' => t('Controlled Vocabularies'),
+    '#options' => $cv_options,
+    '#default_value' => variable_get('tripal_pub_types_cv', 0),
+    '#description' => 'Set the controlled vocabulary to pull publication type options from. Terms in this vocabulary will be available is the Publication Type select box on both the create and edit pages.',
+  );
+
+  $form['pubmed'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Create Nodes via PubMed Search'),
+  );
+
+  $form['pubmed']['description'] = array(
+    '#type' => 'item',
+    '#value' => 'Publication nodes are created based on the results of a PubMed publication search using '
+      .'the keywords entered below. No content is created until the sync is clicked below and the registered tripal job is '
+      .'run. This script attempts to only load new publications (ones which don\'t already have nodes from a previous search) '
+      .'by comparing the pub_id thus if a publication is added manually which also appears in the pubmed search it will likely '
+      .'get added twice.'
+  );
+
+  //define form elements for the node's title and body.
+  $form['pubmed']['unique_name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Search Keywords'),
+    '#description' => t('Specific search terms. Must be seperated by a single space.'),
+    '#required' => FALSE,
+    '#default_value' => variable_get('unique_name', NULL)
+  );
+
+  //define form elements for the node's title and body.
+  /**
+  $form['set']['time_interval'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Time Search Interval (Minutes)'),
+    '#description'=>t(' The “Search Interval” set here determines when a drupal cron job should
+    schedule a tripal job. As such, in reality the time until publications are sync’d is “Search Interval”
+    + time remaining until drupal cron is run + time between drupal cron run and next tripal jobs run'),
+    '#required' => FALSE,
+    '#default_value' => variable_get('time_interval', NULL)
+  );
+  */
+
+  $form['pubmed']['sync_info'] = array(
+      '#type' => 'submit',
+      '#title' => t('Sync Publications Jobs'),
+      '#value' => t('Sync'),
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#weight' => 10,
+    '#value' => t('Save Configuration')
+  );
+
+  return $form;
+
+}
+
+
+/*
+ * Pub Configuration-Form
+ * This form submit uses variable_set to set the vocabularies that are used, as well as the
+ * unique_name and time interval that was entered by the user. If the user selects the option
+ * to Sync Publicatin Jobs, the 'tripal_add_job' function is called, and a tripal job
+ * will be added.
+ *
+ * @param $form
+ *    -The submitted form containing the user entered infromation
+ * @param $form_state
+ *    -Is the state of the form: i.e what button was pressed, what infromation was entered,etc.
+ *    The key is the 'values'
+ */
+function tripal_pub_configuration_form_submit($form, $form_state) {
+
+    global $user;    //needed to make the current users details available so access of user id is available
+
+    if ($form_state['values']['op'] == t('Save Configuration')) {
+
+        variable_set('tripal_pub_types_cv', $form_state['values']['tripal_pub_types_cv']);
+        variable_set('unique_name', $form_state['values']['unique_name'] );
+
+    }
+
+    //adding a tripal job if the user selects to Sync the Publications
+    if ($form_state['values']['op'] == t('Sync')) {
+
+        variable_set('unique_name', $form_state['values']['unique_name'] );
+        $job_args = array($form_state['values']['unique_name']);
+        $job_id = tripal_add_job('Search & Load PubMed Publications', 'tripal_pub', 'tripal_pub_search_load_pubmed_publications', $job_args, $user->uid);
+
+    }
+
+}

+ 2687 - 0
tripal_pub/publication.obo

@@ -0,0 +1,2687 @@
+format-version: 1.2
+idspace: BIRN_ImagePhenotype http://ccdb.ucsd.edu/SAO/DPO/1.0/ImagePhenotype.owl ""
+idspace: BIRN_PDPO http://ccdb.ucsd.edu/PDPhenotypeOntology/1.0# ""
+idspace: BIRN_PDStage http://ccdb.ucsd.edu/PDStageOntology/1.0/ ""
+idspace: BIRN_SA http://ccdb.ucsd.edu/smart_atlas_ontology/sa.owl# ""
+idspace: NDPO http://ccdb.ucsd.edu/SAO/Disease/1.0/NDPO.owl# ""
+idspace: PKB http://ccdb.ucsd.edu/PKB/1.0/PKB.owl# ""
+idspace: SAO_HumanDPO http://ccdb.ucsd.edu/SAO/HumanDPO.owl# ""
+idspace: bfo http://www.ifomis.org/bfo/1.1# ""
+idspace: bfo1_0 http://www.ifomis.org/bfo/1.0# ""
+idspace: biopax1 http://www.biopax.org/release/biopax-level1.owl# ""
+idspace: birnlex_anatomy http://purl.org/nbirn/birnlex/ontology/BIRNLex-Anatomy.owl# ""
+idspace: birnlex_disease http://purl.org/nbirn/birnlex/ontology/BIRNLex-Disease.owl# ""
+idspace: birnlex_tax http://purl.org/nbirn/birnlex/ontology/BIRNLex-OrganismalTaxonomy.owl# ""
+idspace: c http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/cluster# ""
+idspace: daml http://www.daml.org/2001/03/daml+oil# ""
+idspace: dc http://purl.org/dc/elements/1.1/ ""
+idspace: dcterms http://purl.org/dc/terms/ ""
+idspace: eor http://dublincore.org/2000/03/13/eor# ""
+idspace: galen http://www.co-ode.org/ontologies/galen# ""
+idspace: mged http://mged.sourceforge.net/ontologies/MGEDOntology.owl# ""
+idspace: oban http://www.berkeleybop.org/ontologies/oban/alpha# ""
+idspace: obd http://www.bioontology.org/obd/obd-ontology# ""
+idspace: oboInOwl http://www.geneontology.org/formats/oboInOwl# ""
+idspace: owl http://www.w3.org/2002/07/owl# ""
+idspace: p http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/party# ""
+idspace: propreo http://lsdis.cs.uga.edu/projects/glycomics/propreo# ""
+idspace: r http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/region# ""
+idspace: rdf http://www.w3.org/1999/02/22-rdf-syntax-ns# ""
+idspace: rdfs http://www.w3.org/2000/01/rdf-schema# ""
+idspace: reactome http://www.reactome.org/biopax# ""
+idspace: sao http://ccdb.ucsd.edu/SAO/1.2# ""
+idspace: serql http://www.openrdf.org/schema/serql# ""
+idspace: skos http://www.w3.org/2004/02/skos/core# ""
+idspace: snap http://www.ifomis.org/bfo/1.1/snap# ""
+idspace: snap1_0 http://www.ifomis.org/bfo/1.0/snap# ""
+idspace: span http://www.ifomis.org/bfo/1.1/span# ""
+idspace: span1_0 http://www.ifomis.org/bfo/1.0/span# ""
+idspace: xsd http://www.w3.org/2001/XMLSchema# ""
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#A-General_Literature
+name: General Literature
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm  ! Index term
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#A_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#A-General_Literature  ! General Literature
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#A_1-Introductory_And_Survey
+name: Introductory And Survey
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#A-General_Literature  ! General Literature
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#A_2-Reference
+name: Reference
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#A-General_Literature  ! General Literature
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#A_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#A-General_Literature  ! General Literature
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Activity
+name: Activity
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Event  ! Event
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Conference  ! Conference
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Meeting  ! Meeting
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Workshop  ! Workshop
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Anthology
+name: Anthology
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Biography  ! Biography
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Monograph  ! Monograph
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Article
+name: Article
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Journal  ! Journal
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Magazine  ! Magazine
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Newsletter  ! Newsletter
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Paper  ! Paper
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Poster  ! Poster
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Proceedings  ! Proceedings
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#TechnicalReport  ! Technical report
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Thesis  ! Thesis
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Transaction  ! Transaction
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Author
+name: Author
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: p:Person 
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B-Hardware
+name: Hardware
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm  ! Index term
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B-Hardware  ! Hardware
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1-Control_Structures_And_Microprogramming
+name: Control Structures And Microprogramming
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B-Hardware  ! Hardware
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1-Control_Structures_And_Microprogramming  ! Control Structures And Microprogramming
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1_1-Control_Design_Styles
+name: Control Design Styles
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1-Control_Structures_And_Microprogramming  ! Control Structures And Microprogramming
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1_2-Control_Structure_Performance_Analysis_And_Design_Aids
+name: Control Structure Performance Analysis And Design Aids
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1-Control_Structures_And_Microprogramming  ! Control Structures And Microprogramming
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1_3-Control_Structure_Reliability__Testing__And_Fault-tolerance
+name: Control Structure Reliability, Testing, And Fault-tolerance**
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1-Control_Structures_And_Microprogramming  ! Control Structures And Microprogramming
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1_4-Microprogram_Design_Aids
+name: Microprogram Design Aids
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1-Control_Structures_And_Microprogramming  ! Control Structures And Microprogramming
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1_5-Microcode_Applications
+name: Microcode Applications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1-Control_Structures_And_Microprogramming  ! Control Structures And Microprogramming
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_1-Control_Structures_And_Microprogramming  ! Control Structures And Microprogramming
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_2-Arithmetic_And_Logic_Structures
+name: Arithmetic And Logic Structures
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B-Hardware  ! Hardware
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_2_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_2-Arithmetic_And_Logic_Structures  ! Arithmetic And Logic Structures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_2_1-Design_Styles
+name: Design Styles
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_2-Arithmetic_And_Logic_Structures  ! Arithmetic And Logic Structures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_2_2-Performance_Analysis_And_Design_Aids
+name: Performance Analysis And Design Aids**
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_2-Arithmetic_And_Logic_Structures  ! Arithmetic And Logic Structures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_2_3-Reliability__Testing__And_Fault-tolerance
+name: Reliability, Testing, And Fault-tolerance**
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_2-Arithmetic_And_Logic_Structures  ! Arithmetic And Logic Structures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_2_4-High-speed_Arithmetic
+name: High-speed Arithmetic
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_2-Arithmetic_And_Logic_Structures  ! Arithmetic And Logic Structures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_2_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_2-Arithmetic_And_Logic_Structures  ! Arithmetic And Logic Structures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_3-Memory_Structures
+name: Memory Structures
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B-Hardware  ! Hardware
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_3_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_3-Memory_Structures  ! Memory Structures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_3_1-Semiconductor_Memories
+name: Semiconductor Memories
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_3-Memory_Structures  ! Memory Structures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_3_2-Design_Styles
+name: Design Styles
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_3-Memory_Structures  ! Memory Structures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_3_3-Performance_Analysis_And_Design_Aids
+name: Performance Analysis And Design Aids**
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_3-Memory_Structures  ! Memory Structures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_3_4-Reliability__Testing__And_Fault-tolerance
+name: Reliability, Testing, And Fault-tolerance**
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_3-Memory_Structures  ! Memory Structures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_3_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_3-Memory_Structures  ! Memory Structures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4-Input-output_And_Data_Communications
+name: Input/output And Data Communications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B-Hardware  ! Hardware
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4-Input-output_And_Data_Communications  ! Input/output And Data Communications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4_1-Data_Communications_Devices
+name: Data Communications Devices
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4-Input-output_And_Data_Communications  ! Input/output And Data Communications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4_2-Input-output_Devices
+name: Input/output Devices
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4-Input-output_And_Data_Communications  ! Input/output And Data Communications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4_3-Interconnections
+name: Interconnections (subsystems)
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4-Input-output_And_Data_Communications  ! Input/output And Data Communications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4_4-Performance_Analysis_And_Design_Aids
+name: Performance Analysis And Design Aids**
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4-Input-output_And_Data_Communications  ! Input/output And Data Communications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4_5-Reliability__Testing__And_Fault-tolerance
+name: Reliability, Testing, And Fault-tolerance**
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4-Input-output_And_Data_Communications  ! Input/output And Data Communications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_4-Input-output_And_Data_Communications  ! Input/output And Data Communications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_5-Register-transfer-level_Implementation
+name: Register-transfer-level Implementation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B-Hardware  ! Hardware
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_5_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_5-Register-transfer-level_Implementation  ! Register-transfer-level Implementation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_5_1-Design
+name: Design
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_5-Register-transfer-level_Implementation  ! Register-transfer-level Implementation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_5_2-Design_Aids
+name: Design Aids
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_5-Register-transfer-level_Implementation  ! Register-transfer-level Implementation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_5_3-Reliability_And_Testing
+name: Reliability And Testing**
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_5-Register-transfer-level_Implementation  ! Register-transfer-level Implementation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_5_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_5-Register-transfer-level_Implementation  ! Register-transfer-level Implementation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_6-Logic_Design
+name: Logic Design
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B-Hardware  ! Hardware
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_6_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_6-Logic_Design  ! Logic Design
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_6_1-Design_Styles
+name: Design Styles
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_6-Logic_Design  ! Logic Design
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_6_2-Reliability_And_Testing
+name: Reliability And Testing**
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_6-Logic_Design  ! Logic Design
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_6_3-Design_Aids
+name: Design Aids
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_6-Logic_Design  ! Logic Design
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_6_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_6-Logic_Design  ! Logic Design
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_7-Integrated_Circuits
+name: Integrated Circuits
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B-Hardware  ! Hardware
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_7_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_7-Integrated_Circuits  ! Integrated Circuits
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_7_1-Types_And_Design_Styles
+name: Types And Design Styles
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_7-Integrated_Circuits  ! Integrated Circuits
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_7_2-Design_Aids
+name: Design Aids
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_7-Integrated_Circuits  ! Integrated Circuits
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_7_3-Reliability_And_Testing
+name: Reliability And Testing**
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_7-Integrated_Circuits  ! Integrated Circuits
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_7_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_7-Integrated_Circuits  ! Integrated Circuits
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_8-Performance_And_Reliability
+name: Performance And Reliability
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B-Hardware  ! Hardware
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_8_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_8-Performance_And_Reliability  ! Performance And Reliability
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_8_1-Reliability__Testing__And_Fault-tolerance
+name: Reliability, Testing, And Fault-tolerance
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_8-Performance_And_Reliability  ! Performance And Reliability
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_8_2-Performance_Analysis_And_Design_Aids
+name: Performance Analysis And Design Aids
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_8-Performance_And_Reliability  ! Performance And Reliability
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_8_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_8-Performance_And_Reliability  ! Performance And Reliability
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#B-Hardware  ! Hardware
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Biography
+name: Biography
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Anthology  ! Anthology
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Monograph  ! Monograph
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book
+name: Book
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Article  ! Article
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Journal  ! Journal
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Magazine  ! Magazine
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Newsletter  ! Newsletter
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Paper  ! Paper
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Poster  ! Poster
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Proceedings  ! Proceedings
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#TechnicalReport  ! Technical report
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Thesis  ! Thesis
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Transaction  ! Transaction
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C-Computer_Systems_Organization
+name: Computer Systems Organization
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm  ! Index term
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C-Computer_Systems_Organization  ! Computer Systems Organization
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_1-Processor_Architectures
+name: Processor Architectures
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C-Computer_Systems_Organization  ! Computer Systems Organization
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_1_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_1-Processor_Architectures  ! Processor Architectures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_1_1-Single_Data_Stream_Architectures
+name: Single Data Stream Architectures
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_1-Processor_Architectures  ! Processor Architectures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_1_2-Multiple_Data_Stream_Architectures
+name: Multiple Data Stream Architectures (multiprocessors)
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_1-Processor_Architectures  ! Processor Architectures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_1_3-Other_Architecture_Styles
+name: Other Architecture Styles
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_1-Processor_Architectures  ! Processor Architectures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_1_4-Parallel_Architectures
+name: Parallel Architectures
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_1-Processor_Architectures  ! Processor Architectures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_1_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_1-Processor_Architectures  ! Processor Architectures
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2-Computer-communication_Networks
+name: Computer-communication Networks
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C-Computer_Systems_Organization  ! Computer Systems Organization
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2-Computer-communication_Networks  ! Computer-communication Networks
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2_1-Network_Architecture_And_Design
+name: Network Architecture And Design
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2-Computer-communication_Networks  ! Computer-communication Networks
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2_2-Network_Protocols
+name: Network Protocols
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2-Computer-communication_Networks  ! Computer-communication Networks
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2_3-Network_Operations
+name: Network Operations
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2-Computer-communication_Networks  ! Computer-communication Networks
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2_4-Distributed_Systems
+name: Distributed Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2-Computer-communication_Networks  ! Computer-communication Networks
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2_5-Local_And_Wide-area_Networks
+name: Local And Wide-area Networks
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2-Computer-communication_Networks  ! Computer-communication Networks
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2_6-Internetworking
+name: Internetworking
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2-Computer-communication_Networks  ! Computer-communication Networks
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_2-Computer-communication_Networks  ! Computer-communication Networks
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_3-Special-purpose_And_Application-based_Systems
+name: Special-purpose And Application-based Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C-Computer_Systems_Organization  ! Computer Systems Organization
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_4-Performance_Of_Systems
+name: Performance Of Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C-Computer_Systems_Organization  ! Computer Systems Organization
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5-Computer_System_Implementation
+name: Computer System Implementation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C-Computer_Systems_Organization  ! Computer Systems Organization
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5-Computer_System_Implementation  ! Computer System Implementation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5_1-Large_And_Medium_Computers
+name: Large And Medium (\"mainframe\") Computers
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5-Computer_System_Implementation  ! Computer System Implementation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5_2-Minicomputers
+name: Minicomputers**
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5-Computer_System_Implementation  ! Computer System Implementation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5_3-Microcomputers
+name: Microcomputers
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5-Computer_System_Implementation  ! Computer System Implementation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5_4-Vlsi_Systems
+name: Vlsi Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5-Computer_System_Implementation  ! Computer System Implementation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5_5-Servers
+name: Servers
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5-Computer_System_Implementation  ! Computer System Implementation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_5-Computer_System_Implementation  ! Computer System Implementation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#C-Computer_Systems_Organization  ! Computer Systems Organization
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Conference
+name: Conference
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Event  ! Event
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Activity  ! Activity
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Meeting  ! Meeting
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Workshop  ! Workshop
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#ConferencePaper
+name: Conference paper
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Paper  ! Paper
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#WorkshopPaper  ! Workshop paper
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D-Software
+name: Software
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm  ! Index term
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D-Software  ! Software
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1-Programming_Techniques
+name: Programming Techniques
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D-Software  ! Software
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1-Programming_Techniques  ! Programming Techniques
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1_1-Applicative_Programming
+name: Applicative (functional) Programming
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1-Programming_Techniques  ! Programming Techniques
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1_2-Automatic_Programming
+name: Automatic Programming
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1-Programming_Techniques  ! Programming Techniques
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1_3-Concurrent_Programming
+name: Concurrent Programming
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1-Programming_Techniques  ! Programming Techniques
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1_4-Sequential_Programming
+name: Sequential Programming
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1-Programming_Techniques  ! Programming Techniques
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1_5-Object-oriented_Programming
+name: Object-oriented Programming
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1-Programming_Techniques  ! Programming Techniques
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1_6-Logic_Programming
+name: Logic Programming
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1-Programming_Techniques  ! Programming Techniques
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1_7-Visual_Programming
+name: Visual Programming
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1-Programming_Techniques  ! Programming Techniques
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_1-Programming_Techniques  ! Programming Techniques
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2-Software_Engineering
+name: Software Engineering
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D-Software  ! Software
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2-Software_Engineering  ! Software Engineering
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2_1-Requirements-specifications
+name: Requirements/specifications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2-Software_Engineering  ! Software Engineering
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2_2-Design_Tools_And_Techniques
+name: Design Tools And Techniques
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2-Software_Engineering  ! Software Engineering
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2_3-Coding_Tools_And_Techniques
+name: Coding Tools And Techniques
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2-Software_Engineering  ! Software Engineering
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2_4-Software-program_Verification
+name: Software/program Verification
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2-Software_Engineering  ! Software Engineering
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2_5-Testing_And_Debugging
+name: Testing And Debugging
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2-Software_Engineering  ! Software Engineering
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2_6-Programming_Environments
+name: Programming Environments
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2-Software_Engineering  ! Software Engineering
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2_7-Distribution__Maintenance__And_Enhancement
+name: Distribution, Maintenance, And Enhancement
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2-Software_Engineering  ! Software Engineering
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2_8-Metrics
+name: Metrics
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2-Software_Engineering  ! Software Engineering
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2_9-Management
+name: Management
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2-Software_Engineering  ! Software Engineering
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_2-Software_Engineering  ! Software Engineering
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_3-Programming_Languages
+name: Programming Languages
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D-Software  ! Software
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_3_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_3-Programming_Languages  ! Programming Languages
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_3_1-Formal_Definitions_And_Theory
+name: Formal Definitions And Theory
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_3-Programming_Languages  ! Programming Languages
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_3_2-Language_Classifications
+name: Language Classifications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_3-Programming_Languages  ! Programming Languages
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_3_3-Language_Constructs_And_Features
+name: Language Constructs And Features
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_3-Programming_Languages  ! Programming Languages
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_3_4-Processors
+name: Processors
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_3-Programming_Languages  ! Programming Languages
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_3_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_3-Programming_Languages  ! Programming Languages
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4-Operating_Systems
+name: Operating Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D-Software  ! Software
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4-Operating_Systems  ! Operating Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4_1-Process_Management
+name: Process Management
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4-Operating_Systems  ! Operating Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4_2-Storage_Management
+name: Storage Management
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4-Operating_Systems  ! Operating Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4_3-File_Systems_Management
+name: File Systems Management
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4-Operating_Systems  ! Operating Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4_4-Communications_Management
+name: Communications Management
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4-Operating_Systems  ! Operating Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4_5-Reliability
+name: Reliability
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4-Operating_Systems  ! Operating Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4_6-Security_And_Protection
+name: Security And Protection
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4-Operating_Systems  ! Operating Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4_7-Organization_And_Design
+name: Organization And Design
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4-Operating_Systems  ! Operating Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4_8-Performance
+name: Performance
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4-Operating_Systems  ! Operating Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4_9-Systems_Programs_And_Utilities
+name: Systems Programs And Utilities
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4-Operating_Systems  ! Operating Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_4-Operating_Systems  ! Operating Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#D-Software  ! Software
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E-Data
+name: Data
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm  ! Index term
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E-Data  ! Data
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E_1-Data_Structures
+name: Data Structures
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E-Data  ! Data
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E_2-Data_Storage_Representations
+name: Data Storage Representations
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E-Data  ! Data
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E_3-Data_Encryption
+name: Data Encryption
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E-Data  ! Data
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E_4-Coding_And_Information_Theory
+name: Coding And Information Theory
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E-Data  ! Data
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E_5-Files
+name: Files
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E-Data  ! Data
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#E-Data  ! Data
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Editor
+name: Editor
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: p:Person 
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Event
+name: Event
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F-Theory_Of_Computation
+name: Theory Of Computation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm  ! Index term
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F-Theory_Of_Computation  ! Theory Of Computation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_1-Computation_By_Abstract_Devices
+name: Computation By Abstract Devices
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F-Theory_Of_Computation  ! Theory Of Computation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_1_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_1-Computation_By_Abstract_Devices  ! Computation By Abstract Devices
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_1_1-Models_Of_Computation
+name: Models Of Computation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_1-Computation_By_Abstract_Devices  ! Computation By Abstract Devices
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_1_2-Modes_Of_Computation
+name: Modes Of Computation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_1-Computation_By_Abstract_Devices  ! Computation By Abstract Devices
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_1_3-Complexity_Measures_And_Classes
+name: Complexity Measures And Classes
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_1-Computation_By_Abstract_Devices  ! Computation By Abstract Devices
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_1_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_1-Computation_By_Abstract_Devices  ! Computation By Abstract Devices
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_2-Analysis_Of_Algorithms_And_Problem_Complexity
+name: Analysis Of Algorithms And Problem Complexity
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F-Theory_Of_Computation  ! Theory Of Computation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_2_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_2-Analysis_Of_Algorithms_And_Problem_Complexity  ! Analysis Of Algorithms And Problem Complexity
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_2_1-Numerical_Algorithms_And_Problems
+name: Numerical Algorithms And Problems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_2-Analysis_Of_Algorithms_And_Problem_Complexity  ! Analysis Of Algorithms And Problem Complexity
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_2_2-Nonnumerical_Algorithms_And_Problems
+name: Nonnumerical Algorithms And Problems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_2-Analysis_Of_Algorithms_And_Problem_Complexity  ! Analysis Of Algorithms And Problem Complexity
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_2_3-Tradeoffs_Among_Complexity_Measures
+name: Tradeoffs Among Complexity Measures
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_2-Analysis_Of_Algorithms_And_Problem_Complexity  ! Analysis Of Algorithms And Problem Complexity
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_2_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_2-Analysis_Of_Algorithms_And_Problem_Complexity  ! Analysis Of Algorithms And Problem Complexity
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_3-Logics_And_Meanings_Of_Programs
+name: Logics And Meanings Of Programs
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F-Theory_Of_Computation  ! Theory Of Computation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_3_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_3-Logics_And_Meanings_Of_Programs  ! Logics And Meanings Of Programs
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_3_1-Specifying_And_Verifying_And_Reasoning_About_Programs
+name: Specifying And Verifying And Reasoning About Programs
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_3-Logics_And_Meanings_Of_Programs  ! Logics And Meanings Of Programs
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_3_2-Semantics_Of_Programming_Languages
+name: Semantics Of Programming Languages
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_3-Logics_And_Meanings_Of_Programs  ! Logics And Meanings Of Programs
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_3_3-Studies_Of_Program_Constructs
+name: Studies Of Program Constructs
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_3-Logics_And_Meanings_Of_Programs  ! Logics And Meanings Of Programs
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_3_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_3-Logics_And_Meanings_Of_Programs  ! Logics And Meanings Of Programs
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_4-Mathematical_Logic_And_Formal_Languages
+name: Mathematical Logic And Formal Languages
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F-Theory_Of_Computation  ! Theory Of Computation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_4_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_4-Mathematical_Logic_And_Formal_Languages  ! Mathematical Logic And Formal Languages
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_4_1-Mathematical_Logic
+name: Mathematical Logic
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_4-Mathematical_Logic_And_Formal_Languages  ! Mathematical Logic And Formal Languages
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_4_2-Grammars_And_Other_Rewriting_Systems
+name: Grammars And Other Rewriting Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_4-Mathematical_Logic_And_Formal_Languages  ! Mathematical Logic And Formal Languages
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_4_3-Formal_Languages
+name: Formal Languages
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_4-Mathematical_Logic_And_Formal_Languages  ! Mathematical Logic And Formal Languages
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_4_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_4-Mathematical_Logic_And_Formal_Languages  ! Mathematical Logic And Formal Languages
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#F-Theory_Of_Computation  ! Theory Of Computation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G-Mathematics_Of_Computing
+name: Mathematics Of Computing
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm  ! Index term
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G-Mathematics_Of_Computing  ! Mathematics Of Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1-Numerical_Analysis
+name: Numerical Analysis
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G-Mathematics_Of_Computing  ! Mathematics Of Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1-Numerical_Analysis  ! Numerical Analysis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1_1-Interpolation
+name: Interpolation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1-Numerical_Analysis  ! Numerical Analysis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1_2-Approximation
+name: Approximation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1-Numerical_Analysis  ! Numerical Analysis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1_3-Numerical_Linear_Algebra
+name: Numerical Linear Algebra
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1-Numerical_Analysis  ! Numerical Analysis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1_4-Quadrature_And_Numerical_Differentiation
+name: Quadrature And Numerical Differentiation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1-Numerical_Analysis  ! Numerical Analysis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1_5-Roots_Of_Nonlinear_Equations
+name: Roots Of Nonlinear Equations
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1-Numerical_Analysis  ! Numerical Analysis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1_6-Optimization
+name: Optimization
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1-Numerical_Analysis  ! Numerical Analysis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1_7-Ordinary_Differential_Equations
+name: Ordinary Differential Equations
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1-Numerical_Analysis  ! Numerical Analysis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1_8-Partial_Differential_Equations
+name: Partial Differential Equations
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1-Numerical_Analysis  ! Numerical Analysis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1_9-Integral_Equations
+name: Integral Equations
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1-Numerical_Analysis  ! Numerical Analysis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_1-Numerical_Analysis  ! Numerical Analysis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_2-Discrete_Mathematics
+name: Discrete Mathematics
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G-Mathematics_Of_Computing  ! Mathematics Of Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_2_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_2-Discrete_Mathematics  ! Discrete Mathematics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_2_1-Combinatorics
+name: Combinatorics
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_2-Discrete_Mathematics  ! Discrete Mathematics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_2_2-Graph_Theory
+name: Graph Theory
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_2-Discrete_Mathematics  ! Discrete Mathematics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_2_3-Applications
+name: Applications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_2-Discrete_Mathematics  ! Discrete Mathematics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_2_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_2-Discrete_Mathematics  ! Discrete Mathematics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_3-Probability_And_Statistics
+name: Probability And Statistics
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G-Mathematics_Of_Computing  ! Mathematics Of Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_4-Mathematical_Software
+name: Mathematical Software
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G-Mathematics_Of_Computing  ! Mathematics Of Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#G-Mathematics_Of_Computing  ! Mathematics Of Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H-Information_Systems
+name: Information Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm  ! Index term
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H-Information_Systems  ! Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_1-Models_And_Principles
+name: Models And Principles
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H-Information_Systems  ! Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_1_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_1-Models_And_Principles  ! Models And Principles
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_1_1-Systems_And_Information_Theory
+name: Systems And Information Theory
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_1-Models_And_Principles  ! Models And Principles
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_1_2-User-machine_Systems
+name: User/machine Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_1-Models_And_Principles  ! Models And Principles
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_1_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_1-Models_And_Principles  ! Models And Principles
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2-Database_Management
+name: Database Management
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H-Information_Systems  ! Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2-Database_Management  ! Database Management
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2_1-Logical_Design
+name: Logical Design
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2-Database_Management  ! Database Management
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2_2-Physical_Design
+name: Physical Design
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2-Database_Management  ! Database Management
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2_3-Languages
+name: Languages
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2-Database_Management  ! Database Management
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2_4-Systems
+name: Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2-Database_Management  ! Database Management
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2_5-Heterogeneous_Databases
+name: Heterogeneous Databases
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2-Database_Management  ! Database Management
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2_6-Database_Machines
+name: Database Machines
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2-Database_Management  ! Database Management
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2_7-Database_Administration
+name: Database Administration
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2-Database_Management  ! Database Management
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2_8-Database_Applications
+name: Database Applications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2-Database_Management  ! Database Management
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_2-Database_Management  ! Database Management
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3-Information_Storage_And_Retrieval
+name: Information Storage And Retrieval
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H-Information_Systems  ! Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3-Information_Storage_And_Retrieval  ! Information Storage And Retrieval
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3_1-Content_Analysis_And_Indexing
+name: Content Analysis And Indexing
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3-Information_Storage_And_Retrieval  ! Information Storage And Retrieval
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3_2-Information_Storage
+name: Information Storage
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3-Information_Storage_And_Retrieval  ! Information Storage And Retrieval
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3_3-Information_Search_And_Retrieval
+name: Information Search And Retrieval
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3-Information_Storage_And_Retrieval  ! Information Storage And Retrieval
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3_4-Systems_And_Software
+name: Systems And Software
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3-Information_Storage_And_Retrieval  ! Information Storage And Retrieval
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3_5-On-line_Information_Services
+name: On-line Information Services
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3-Information_Storage_And_Retrieval  ! Information Storage And Retrieval
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3_6-Library_Automation
+name: Library Automation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3-Information_Storage_And_Retrieval  ! Information Storage And Retrieval
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3_7-Digital_Libraries
+name: Digital Libraries
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3-Information_Storage_And_Retrieval  ! Information Storage And Retrieval
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_3-Information_Storage_And_Retrieval  ! Information Storage And Retrieval
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_4-Information_Systems_Applications
+name: Information Systems Applications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H-Information_Systems  ! Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_4_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_4-Information_Systems_Applications  ! Information Systems Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_4_1-Office_Automation
+name: Office Automation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_4-Information_Systems_Applications  ! Information Systems Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_4_2-Types_Of_Systems
+name: Types Of Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_4-Information_Systems_Applications  ! Information Systems Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_4_3-Communications_Applications
+name: Communications Applications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_4-Information_Systems_Applications  ! Information Systems Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_4_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_4-Information_Systems_Applications  ! Information Systems Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5-Information_Interfaces_And_Presentation
+name: Information Interfaces And Presentation (i.7)
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H-Information_Systems  ! Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5-Information_Interfaces_And_Presentation  ! Information Interfaces And Presentation (i.7)
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5_1-Multimedia_Information_Systems
+name: Multimedia Information Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5-Information_Interfaces_And_Presentation  ! Information Interfaces And Presentation (i.7)
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5_2-User_Interfaces
+name: User Interfaces (d.2.2, H.1.2, I.3.6)
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5-Information_Interfaces_And_Presentation  ! Information Interfaces And Presentation (i.7)
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5_3-Group_And_Organization_Interfaces
+name: Group And Organization Interfaces
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5-Information_Interfaces_And_Presentation  ! Information Interfaces And Presentation (i.7)
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5_4-Hypertext-hypermedia
+name: Hypertext/hypermedia
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5-Information_Interfaces_And_Presentation  ! Information Interfaces And Presentation (i.7)
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5_5-Sound_And_Music_Computing
+name: Sound And Music Computing
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5-Information_Interfaces_And_Presentation  ! Information Interfaces And Presentation (i.7)
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_5-Information_Interfaces_And_Presentation  ! Information Interfaces And Presentation (i.7)
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#H-Information_Systems  ! Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I-Computing_Methodologies
+name: Computing Methodologies
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm  ! Index term
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I-Computing_Methodologies  ! Computing Methodologies
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_1-Symbolic_And_Algebraic_Manipulation
+name: Symbolic And Algebraic Manipulation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I-Computing_Methodologies  ! Computing Methodologies
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_1_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_1-Symbolic_And_Algebraic_Manipulation  ! Symbolic And Algebraic Manipulation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_1_1-Expressions_And_Their_Representation
+name: Expressions And Their Representation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_1-Symbolic_And_Algebraic_Manipulation  ! Symbolic And Algebraic Manipulation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_1_2-Algorithms
+name: Algorithms
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_1-Symbolic_And_Algebraic_Manipulation  ! Symbolic And Algebraic Manipulation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_1_3-Languages_And_Systems
+name: Languages And Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_1-Symbolic_And_Algebraic_Manipulation  ! Symbolic And Algebraic Manipulation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_1_4-Applications
+name: Applications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_1-Symbolic_And_Algebraic_Manipulation  ! Symbolic And Algebraic Manipulation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_1_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_1-Symbolic_And_Algebraic_Manipulation  ! Symbolic And Algebraic Manipulation
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2-Artificial_Intelligence
+name: Artificial Intelligence
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I-Computing_Methodologies  ! Computing Methodologies
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2-Artificial_Intelligence  ! Artificial Intelligence
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2_1-Applications_And_Expert_Systems
+name: Applications And Expert Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2-Artificial_Intelligence  ! Artificial Intelligence
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2_2-Automatic_Programming
+name: Automatic Programming
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2-Artificial_Intelligence  ! Artificial Intelligence
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2_3-Deduction_And_Theorem_Proving
+name: Deduction And Theorem Proving
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2-Artificial_Intelligence  ! Artificial Intelligence
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2_4-Knowledge_Representation_Formalisms_And_Methods
+name: Knowledge Representation Formalisms And Methods
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2-Artificial_Intelligence  ! Artificial Intelligence
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2_5-Programming_Languages_And_Software
+name: Programming Languages And Software
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2-Artificial_Intelligence  ! Artificial Intelligence
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2_6-Learning
+name: Learning
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2-Artificial_Intelligence  ! Artificial Intelligence
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2_7-Natural_Language_Processing
+name: Natural Language Processing
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2-Artificial_Intelligence  ! Artificial Intelligence
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2_8-Problem_Solving__Control_Methods__And_Search
+name: Problem Solving, Control Methods, And Search
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2-Artificial_Intelligence  ! Artificial Intelligence
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2_9-Robotics
+name: Robotics
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2-Artificial_Intelligence  ! Artificial Intelligence
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_2-Artificial_Intelligence  ! Artificial Intelligence
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3-Computer_Graphics
+name: Computer Graphics
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I-Computing_Methodologies  ! Computing Methodologies
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3-Computer_Graphics  ! Computer Graphics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3_1-Hardware_Architecture
+name: Hardware Architecture
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3-Computer_Graphics  ! Computer Graphics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3_2-Graphics_Systems
+name: Graphics Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3-Computer_Graphics  ! Computer Graphics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3_3-Picture-image_Generation
+name: Picture/image Generation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3-Computer_Graphics  ! Computer Graphics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3_4-Graphics_Utilities
+name: Graphics Utilities
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3-Computer_Graphics  ! Computer Graphics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3_5-Computational_Geometry_And_Object_Modeling
+name: Computational Geometry And Object Modeling
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3-Computer_Graphics  ! Computer Graphics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3_6-Methodology_And_Techniques
+name: Methodology And Techniques
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3-Computer_Graphics  ! Computer Graphics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3_7-Three-dimensional_Graphics_And_Realism
+name: Three-dimensional Graphics And Realism
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3-Computer_Graphics  ! Computer Graphics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3_8-Applications
+name: Applications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3-Computer_Graphics  ! Computer Graphics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_3-Computer_Graphics  ! Computer Graphics
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4-Image_Processing_And_Computer_Vision
+name: Image Processing And Computer Vision
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I-Computing_Methodologies  ! Computing Methodologies
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4-Image_Processing_And_Computer_Vision  ! Image Processing And Computer Vision
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4_1-Digitization_And_Image_Capture
+name: Digitization And Image Capture
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4-Image_Processing_And_Computer_Vision  ! Image Processing And Computer Vision
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4_2-Compression
+name: Compression (coding)
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4-Image_Processing_And_Computer_Vision  ! Image Processing And Computer Vision
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4_3-Enhancement
+name: Enhancement
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4-Image_Processing_And_Computer_Vision  ! Image Processing And Computer Vision
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4_4-Restoration
+name: Restoration
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4-Image_Processing_And_Computer_Vision  ! Image Processing And Computer Vision
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4_5-Reconstruction
+name: Reconstruction
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4-Image_Processing_And_Computer_Vision  ! Image Processing And Computer Vision
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4_6-Segmentation
+name: Segmentation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4-Image_Processing_And_Computer_Vision  ! Image Processing And Computer Vision
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4_7-Feature_Measurement
+name: Feature Measurement
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4-Image_Processing_And_Computer_Vision  ! Image Processing And Computer Vision
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4_8-Scene_Analysis
+name: Scene Analysis
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4-Image_Processing_And_Computer_Vision  ! Image Processing And Computer Vision
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4_9-Applications
+name: Applications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4-Image_Processing_And_Computer_Vision  ! Image Processing And Computer Vision
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_4-Image_Processing_And_Computer_Vision  ! Image Processing And Computer Vision
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5-Pattern_Recognition
+name: Pattern Recognition
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I-Computing_Methodologies  ! Computing Methodologies
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5-Pattern_Recognition  ! Pattern Recognition
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5_1-Models
+name: Models
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5-Pattern_Recognition  ! Pattern Recognition
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5_2-Design_Methodology
+name: Design Methodology
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5-Pattern_Recognition  ! Pattern Recognition
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5_3-Clustering
+name: Clustering
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5-Pattern_Recognition  ! Pattern Recognition
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5_4-Applications
+name: Applications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5-Pattern_Recognition  ! Pattern Recognition
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5_5-Implementation
+name: Implementation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5-Pattern_Recognition  ! Pattern Recognition
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_5-Pattern_Recognition  ! Pattern Recognition
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6-Simulation_And_Modeling
+name: Simulation And Modeling
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I-Computing_Methodologies  ! Computing Methodologies
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6-Simulation_And_Modeling  ! Simulation And Modeling
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6_1-Simulation_Theory
+name: Simulation Theory
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6-Simulation_And_Modeling  ! Simulation And Modeling
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6_2-Simulation_Languages
+name: Simulation Languages
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6-Simulation_And_Modeling  ! Simulation And Modeling
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6_3-Applications
+name: Applications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6-Simulation_And_Modeling  ! Simulation And Modeling
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6_4-Model_Validation_And_Analysis
+name: Model Validation And Analysis
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6-Simulation_And_Modeling  ! Simulation And Modeling
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6_5-Model_Development
+name: Model Development
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6-Simulation_And_Modeling  ! Simulation And Modeling
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6_6-Simulation_Output_Analysis
+name: Simulation Output Analysis
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6-Simulation_And_Modeling  ! Simulation And Modeling
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6_7-Simulation_Support_Systems
+name: Simulation Support Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6-Simulation_And_Modeling  ! Simulation And Modeling
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6_8-Types_Of_Simulation
+name: Types Of Simulation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6-Simulation_And_Modeling  ! Simulation And Modeling
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_6-Simulation_And_Modeling  ! Simulation And Modeling
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7-Document_And_Text_Processing
+name: Document And Text Processing
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I-Computing_Methodologies  ! Computing Methodologies
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7-Document_And_Text_Processing  ! Document And Text Processing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7_1-Document_And_Text_Editing
+name: Document And Text Editing
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7-Document_And_Text_Processing  ! Document And Text Processing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7_2-Document_Preparation
+name: Document Preparation
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7-Document_And_Text_Processing  ! Document And Text Processing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7_3-Index_Generation
+name: Index Generation**
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7-Document_And_Text_Processing  ! Document And Text Processing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7_4-Electronic_Publishing
+name: Electronic Publishing
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7-Document_And_Text_Processing  ! Document And Text Processing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7_5-Document_Capture
+name: Document Capture
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7-Document_And_Text_Processing  ! Document And Text Processing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_7-Document_And_Text_Processing  ! Document And Text Processing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#I-Computing_Methodologies  ! Computing Methodologies
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm
+name: Index term
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J-Computer_Applications
+name: Computer Applications
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm  ! Index term
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J-Computer_Applications  ! Computer Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J_1-Administrative_Data_Processing
+name: Administrative Data Processing
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J-Computer_Applications  ! Computer Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J_2-Physical_Sciences_And_Engineering
+name: Physical Sciences And Engineering
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J-Computer_Applications  ! Computer Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J_3-Life_And_Medical_Sciences
+name: Life And Medical Sciences
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J-Computer_Applications  ! Computer Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J_4-Social_And_Behavioral_Sciences
+name: Social And Behavioral Sciences
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J-Computer_Applications  ! Computer Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J_5-Arts_And_Humanities
+name: Arts And Humanities
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J-Computer_Applications  ! Computer Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J_6-Computer-aided_Engineering
+name: Computer-aided Engineering
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J-Computer_Applications  ! Computer Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J_7-Computers_In_Other_Systems
+name: Computers In Other Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J-Computer_Applications  ! Computer Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#J-Computer_Applications  ! Computer Applications
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Journal
+name: Journal
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Article  ! Article
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Magazine  ! Magazine
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Newsletter  ! Newsletter
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Paper  ! Paper
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Poster  ! Poster
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Proceedings  ! Proceedings
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#TechnicalReport  ! Technical report
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Thesis  ! Thesis
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Transaction  ! Transaction
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K-Computing_Milieux
+name: Computing Milieux
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm  ! Index term
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K-Computing_Milieux  ! Computing Milieux
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_1-The_Computer_Industry
+name: The Computer Industry
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K-Computing_Milieux  ! Computing Milieux
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_2-History_Of_Computing
+name: History Of Computing
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K-Computing_Milieux  ! Computing Milieux
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_3-Computers_And_Education
+name: Computers And Education
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K-Computing_Milieux  ! Computing Milieux
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_3_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_3-Computers_And_Education  ! Computers And Education
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_3_1-Computer_Uses_In_Education
+name: Computer Uses In Education
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_3-Computers_And_Education  ! Computers And Education
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_3_2-Computer_And_Information_Science_Education
+name: Computer And Information Science Education
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_3-Computers_And_Education  ! Computers And Education
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_3_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_3-Computers_And_Education  ! Computers And Education
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_4-Computers_And_Society
+name: Computers And Society
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K-Computing_Milieux  ! Computing Milieux
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_4_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_4-Computers_And_Society  ! Computers And Society
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_4_1-Public_Policy_Issues
+name: Public Policy Issues
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_4-Computers_And_Society  ! Computers And Society
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_4_2-Social_Issues
+name: Social Issues
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_4-Computers_And_Society  ! Computers And Society
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_4_3-Organizational_Impacts
+name: Organizational Impacts
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_4-Computers_And_Society  ! Computers And Society
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_4_4-Electronic_Commerce
+name: Electronic Commerce
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_4-Computers_And_Society  ! Computers And Society
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_4_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_4-Computers_And_Society  ! Computers And Society
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_5-Legal_Aspects_Of_Computing
+name: Legal Aspects Of Computing
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K-Computing_Milieux  ! Computing Milieux
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_5_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_5-Legal_Aspects_Of_Computing  ! Legal Aspects Of Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_5_1-Hardware-software_Protection
+name: Hardware/software Protection
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_5-Legal_Aspects_Of_Computing  ! Legal Aspects Of Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_5_2-Governmental_Issues
+name: Governmental Issues
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_5-Legal_Aspects_Of_Computing  ! Legal Aspects Of Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_5_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_5-Legal_Aspects_Of_Computing  ! Legal Aspects Of Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6-Management_Of_Computing_And_Information_Systems
+name: Management Of Computing And Information Systems
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K-Computing_Milieux  ! Computing Milieux
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6-Management_Of_Computing_And_Information_Systems  ! Management Of Computing And Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6_1-Project_And_People_Management
+name: Project And People Management
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6-Management_Of_Computing_And_Information_Systems  ! Management Of Computing And Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6_2-Installation_Management
+name: Installation Management
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6-Management_Of_Computing_And_Information_Systems  ! Management Of Computing And Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6_3-Software_Management
+name: Software Management
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6-Management_Of_Computing_And_Information_Systems  ! Management Of Computing And Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6_4-System_Management
+name: System Management
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6-Management_Of_Computing_And_Information_Systems  ! Management Of Computing And Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6_5-Security_And_Protection
+name: Security And Protection (d.4.6, K.4.2)
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6-Management_Of_Computing_And_Information_Systems  ! Management Of Computing And Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_6-Management_Of_Computing_And_Information_Systems  ! Management Of Computing And Information Systems
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_7-The_Computing_Profession
+name: The Computing Profession
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K-Computing_Milieux  ! Computing Milieux
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_7_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_7-The_Computing_Profession  ! The Computing Profession
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_7_1-Occupations
+name: Occupations
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_7-The_Computing_Profession  ! The Computing Profession
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_7_2-Organizations
+name: Organizations
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_7-The_Computing_Profession  ! The Computing Profession
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_7_3-Testing__Certification__And_Licensing
+name: Testing, Certification, And Licensing
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_7-The_Computing_Profession  ! The Computing Profession
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_7_4-Professional_Ethics
+name: Professional Ethics
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_7-The_Computing_Profession  ! The Computing Profession
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_7_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_7-The_Computing_Profession  ! The Computing Profession
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_8-Personal_Computing
+name: Personal Computing
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K-Computing_Milieux  ! Computing Milieux
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_8_0-General
+name: General
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_8-Personal_Computing  ! Personal Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_8_1-Application_Packages
+name: Application Packages
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_8-Personal_Computing  ! Personal Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_8_2-Hardware
+name: Hardware
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_8-Personal_Computing  ! Personal Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_8_3-Management-maintenance
+name: Management/maintenance
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_8-Personal_Computing  ! Personal Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_8_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_8-Personal_Computing  ! Personal Computing
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K_m-Miscellaneous
+name: Miscellaneous
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#K-Computing_Milieux  ! Computing Milieux
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Keyword
+name: Keyword
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Magazine
+name: Magazine
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Article  ! Article
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Journal  ! Journal
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Newsletter  ! Newsletter
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Paper  ! Paper
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Poster  ! Poster
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Proceedings  ! Proceedings
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#TechnicalReport  ! Technical report
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Thesis  ! Thesis
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Transaction  ! Transaction
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#MasterThesis
+name: Master thesis
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Thesis  ! Thesis
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#PhDThesis  ! PhD thesis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Meeting
+name: Meeting
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Event  ! Event
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Activity  ! Activity
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Conference  ! Conference
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Workshop  ! Workshop
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Monograph
+name: Monograph
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Anthology  ! Anthology
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Biography  ! Biography
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Newsletter
+name: Newsletter
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Article  ! Article
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Journal  ! Journal
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Magazine  ! Magazine
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Paper  ! Paper
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Poster  ! Poster
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Proceedings  ! Proceedings
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#TechnicalReport  ! Technical report
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Thesis  ! Thesis
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Transaction  ! Transaction
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Paper
+name: Paper
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Article  ! Article
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Journal  ! Journal
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Magazine  ! Magazine
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Newsletter  ! Newsletter
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Poster  ! Poster
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Proceedings  ! Proceedings
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#TechnicalReport  ! Technical report
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Thesis  ! Thesis
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Transaction  ! Transaction
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#PhDThesis
+name: PhD thesis
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Thesis  ! Thesis
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#MasterThesis  ! Master thesis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Poster
+name: Poster
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Article  ! Article
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Journal  ! Journal
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Magazine  ! Magazine
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Newsletter  ! Newsletter
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Paper  ! Paper
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Proceedings  ! Proceedings
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#TechnicalReport  ! Technical report
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Thesis  ! Thesis
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Transaction  ! Transaction
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Proceedings
+name: Proceedings
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Article  ! Article
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Journal  ! Journal
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Magazine  ! Magazine
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Newsletter  ! Newsletter
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Paper  ! Paper
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Poster  ! Poster
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#TechnicalReport  ! Technical report
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Thesis  ! Thesis
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Transaction  ! Transaction
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Project
+name: Project
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication
+name: Publication
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publisher
+name: Publisher
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: p:Organization 
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#TechnicalReport
+name: Technical report
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Article  ! Article
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Journal  ! Journal
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Magazine  ! Magazine
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Newsletter  ! Newsletter
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Paper  ! Paper
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Poster  ! Poster
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Proceedings  ! Proceedings
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Thesis  ! Thesis
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Transaction  ! Transaction
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Thesis
+name: Thesis
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Article  ! Article
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Journal  ! Journal
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Magazine  ! Magazine
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Newsletter  ! Newsletter
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Paper  ! Paper
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Poster  ! Poster
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Proceedings  ! Proceedings
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#TechnicalReport  ! Technical report
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Transaction  ! Transaction
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Transaction
+name: Transaction
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Article  ! Article
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Journal  ! Journal
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Magazine  ! Magazine
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Newsletter  ! Newsletter
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Paper  ! Paper
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Poster  ! Poster
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Proceedings  ! Proceedings
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#TechnicalReport  ! Technical report
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Thesis  ! Thesis
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Workshop
+name: Workshop
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Event  ! Event
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Activity  ! Activity
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Conference  ! Conference
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Meeting  ! Meeting
+
+[Term]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#WorkshopPaper
+name: Workshop paper
+namespace: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#
+is_a: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Paper  ! Paper
+disjoint_from: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#ConferencePaper  ! Conference paper
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#abstract
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: xsd:string 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#contains
+domain: __/home/obo/galaxy_dist/database/files/000/dataset_219.dat#__Description8 
+range: __/home/obo/galaxy_dist/database/files/000/dataset_219.dat#__Description9 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#day
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: xsd:int 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#describesProject
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Project  ! Project
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#endDate
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Event  ! Event
+range: xsd:date 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#firstPage
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: xsd:string 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#hasEditor
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Journal  ! Journal
+range: p:Person 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#hasKeyword
+domain: __/home/obo/galaxy_dist/database/files/000/dataset_219.dat#__Description5 
+range: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Keyword  ! Keyword
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#hasTopic
+domain: __/home/obo/galaxy_dist/database/files/000/dataset_219.dat#__Description11 
+range: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm  ! Index term
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isAuthorOf
+domain: p:Person 
+range: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isChairAt
+domain: p:Person 
+range: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Event  ! Event
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isCollaboratorOf
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Author  ! Author
+range: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Author  ! Author
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isDescribedBy
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Project  ! Project
+range: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isEditorOf
+domain: p:Person 
+range: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Journal  ! Journal
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isKeywordOf
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Keyword  ! Keyword
+range: __/home/obo/galaxy_dist/database/files/000/dataset_219.dat#__Description4 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isOrganizerOf
+domain: p:Organization 
+range: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Event  ! Event
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isPartOf
+domain: __/home/obo/galaxy_dist/database/files/000/dataset_219.dat#__Description6 
+range: __/home/obo/galaxy_dist/database/files/000/dataset_219.dat#__Description7 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isPublishedBy
+domain: __/home/obo/galaxy_dist/database/files/000/dataset_219.dat#__Description13 
+range: p:Organization 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isPublisherOf
+domain: p:Organization 
+range: __/home/obo/galaxy_dist/database/files/000/dataset_219.dat#__Description12 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isReferencedBy
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isRelatedTo
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Event  ! Event
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isTopicOf
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#IndexTerm  ! Index term
+range: __/home/obo/galaxy_dist/database/files/000/dataset_219.dat#__Description10 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isWrittenBy
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: p:Person 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#isbn
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Book  ! Book
+range: xsd:string 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#lastPage
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: xsd:string 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#month
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: xsd:int 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#number
+domain: __/home/obo/galaxy_dist/database/files/000/dataset_219.dat#__Description15 
+range: xsd:string 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#references
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#similarPublication
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#source
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: xsd:string 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#startDate
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Event  ! Event
+range: xsd:date 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#takesPlaceAt
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Event  ! Event
+range: p:Address 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#title
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: xsd:string 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#volume
+domain: __/home/obo/galaxy_dist/database/files/000/dataset_219.dat#__Description16 
+range: xsd:int 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#web
+domain: __/home/obo/galaxy_dist/database/files/000/dataset_219.dat#__Description14 
+range: xsd:string 
+
+[Typedef]
+id: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#year
+domain: http://mapekus.fiit.stuba.sk/mapekus/ontologies/v0.2/publication#Publication  ! Publication
+range: xsd:int 
+

+ 64 - 0
tripal_pub/theme/tripal_pub_admin.tpl.php

@@ -0,0 +1,64 @@
+<br /><h3>Tripal Publication Administrative Tools Quick Links</h3>
+<ul>
+<li><?php print l('Configuration', 'admin/tripal/tripal_pub/configuration') ?></li>
+</ul>
+
+<h3>Module Description:</h3>
+<p>The Tripal Publication Module provides the functionality for adding, editing, deleting and
+accessing academic publications, entered by the user.This module also allows a time limited search,
+specified by the user, which searches the PubMed extracts and saves acedemic puplications.
+ </p>
+<h3>Setup Instructions:</h3>
+<ol>
+<li><p><b>Set Permissions</b>: The publication module supports the Drupal user permissions interface for
+               controlling access to publlication content and functions. These permissions include viewing,
+               creating, editing or administering of
+               publication content. The default is that only the original site administrator has these
+               permissions.  You can <a href="<?php print url('admin/user/roles') ?>">add roles</a> for classifying users,
+               <a href="<?php print url('admin/user/user') ?>">assign users to roles</a> and
+               <a href="<?php print url('admin/user/permissions') ?>">assign permissions</a> for the publication content to
+               those roles.  For a simple setup, allow anonymous users access to view publication content and
+               allow the site administrator all other permissions.</p></li>
+<li><p><b>Set Publication Type Controlled Vocabulary</b>: The select list for setting the publication 
+                type is controlled be a controlled vocabulary (cv)
+                <ul><li>Before you can add any publications you need 
+                to create/load this cv. There is a limited cv included in this module. To use it, you need to 
+                load it using the <a href="<?php print url('admin/tripal/tripal_cv/obo_loader') ?>">OBO Loader included with Tripal</a>.</li>
+                <li>After the controlled vocabulary is loaded you need to set it to be used for the publication 
+                module. To do this, go to <a href="<?php print url('admin/tripal/tripal_pub/configuration') ?>">Publication->Configuration</a>, select it in the controlled vocabulary '
+                select list and click save configuration.</p></li></ul>
+
+</ol>
+<h3>Features of this Module:</h3>
+<ul>
+<li><p><b>Configuration (Search For Academic Publications):</b>  The search capability implemented in
+  this module allows a user to search, by remote connection , the PubMEd database for articles
+  that relate to key search words, chosen by the user.The "search keys" are used to search through
+  Publication titles and when one of the key words is matched in a title, the recognized article will
+  be saved to the database.
+
+      <ul>
+
+      <li><b>Choose a Controlled Vocabulary:</b>The controlled vocabulary list is a set of terms
+
+      <li><b>Set Search Key Words:</b>The search keywords, are the user entered key terms, in which
+      the publications in the PubMed database can be recognized by. The user may enter any number
+      of search terms, as by adding more search terms, the search will limit the results to those
+      in which all of the search terms appear in the publication title.
+
+      <li><b>Set a time search interval:</b>The search term interval represents a pre-set ammount
+      of time for the search. The time search interval must be entered in minutes. This allows
+      the module to automatically search the PubMed database in a predetermined time interval.
+    </ul>
+  </p></li>
+
+<li><b>Creating a Publication:</b>
+
+<p>To <b>Create,update/delete a given property of a publication</b>:When Creating a Publication
+  it is neccessary to enter the requried fields in the form. These are marked with an astrix and
+  if they are not entered upon completion a warning will be issued and the user is forced to fill
+  in these entries. The author field, requires a given/surname/suffix to be entered. To add the
+  author to the publication, the add author button is to be pushed. The user is able to add as
+  many authors to the publication as needed.
+  </p>
+

+ 436 - 0
tripal_pub/tpub.obo

@@ -0,0 +1,436 @@
+format-version: 1.2
+date: 22:03:2013 17:53
+saved-by: ficklin
+auto-generated-by: OBO-Edit 2.1-beta18
+default-namespace: tripal_pub
+
+[Term]
+id: TPUB:0000001
+name: publication_dbxref
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000002
+name: publication
+
+[Term]
+id: TPUB:0000003
+name: citation
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000004
+name: book
+is_a: TPUB:0000015 ! publication_type
+
+[Term]
+id: TPUB:0000005
+name: pub_accession
+relationship: part_of TPUB:0000001 ! publication_dbxref
+
+[Term]
+id: TPUB:0000006
+name: collective
+comment: Used when an author is a collective of individuals rather than a person.
+is_a: TPUB:0000015 ! publication_type
+relationship: part_of TPUB:0000016 ! author
+
+[Term]
+id: TPUB:0000007
+name: masters_thesis
+relationship: part_of TPUB:0000006 ! collective
+
+[Term]
+id: TPUB:0000008
+name: PhD_thesis
+comment: PhD thesis or dissertation.
+relationship: part_of TPUB:0000006 ! collective
+
+[Term]
+id: TPUB:0000009
+name: pub_database
+relationship: part_of TPUB:0000001 ! publication_dbxref
+
+[Term]
+id: TPUB:0000010
+name: received_date
+is_a: TPUB:0000046 ! publication_date
+
+[Term]
+id: TPUB:0000011
+name: conference_name
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000012
+name: book_chapter
+is_a: TPUB:0000015 ! publication_type
+
+[Term]
+id: TPUB:0000013
+name: unknown_type
+is_a: TPUB:0000015 ! publication_type
+
+[Term]
+id: TPUB:0000014
+name: web_page
+is_a: TPUB:0000015 ! publication_type
+
+[Term]
+id: TPUB:0000015
+name: publication_type
+relationship: part_of TPUB:0000002 ! publication
+
+[Term]
+id: TPUB:0000016
+name: author
+relationship: part_of TPUB:0000002 ! publication
+
+[Term]
+id: TPUB:0000017
+name: first_initials
+comment: The first initials for the author including the initial for the first name and any middle names (not the initial for the last name).
+relationship: part_of TPUB:0000016 ! author
+
+[Term]
+id: TPUB:0000018
+name: surname
+synonym: "family_name" EXACT []
+synonym: "last_name" EXACT []
+relationship: part_of TPUB:0000016 ! author
+
+[Term]
+id: TPUB:0000019
+name: given_name
+synonym: "first_name" EXACT []
+relationship: part_of TPUB:0000016 ! author
+
+[Term]
+id: TPUB:0000020
+name: middle_names
+comment: One or more middle names for this person.
+relationship: part_of TPUB:0000016 ! author
+
+[Term]
+id: TPUB:0000021
+name: middle_initials
+comment: The middle initials for this person excluding the initial for the given name and the surname.
+relationship: part_of TPUB:0000016 ! author
+
+[Term]
+id: TPUB:0000022
+name: affiliation
+relationship: part_of TPUB:0000016 ! author
+
+[Term]
+id: TPUB:0000023
+name: department
+comment: The department of an institution or organization.
+relationship: part_of TPUB:0000022 ! affiliation
+
+[Term]
+id: TPUB:0000024
+name: institution
+relationship: part_of TPUB:0000022 ! affiliation
+
+[Term]
+id: TPUB:0000025
+name: organization
+comment: A generic term for any organization.
+relationship: part_of TPUB:0000022 ! affiliation
+
+[Term]
+id: TPUB:0000026
+name: address
+relationship: part_of TPUB:0000016 ! author
+
+[Term]
+id: TPUB:0000027
+name: address_line1
+relationship: part_of TPUB:0000026 ! address
+
+[Term]
+id: TPUB:0000028
+name: address_line2
+relationship: part_of TPUB:0000026 ! address
+
+[Term]
+id: TPUB:0000029
+name: address_line3
+relationship: part_of TPUB:0000026 ! address
+
+[Term]
+id: TPUB:0000030
+name: city
+relationship: part_of TPUB:0000026 ! address
+
+[Term]
+id: TPUB:0000031
+name: state
+relationship: part_of TPUB:0000026 ! address
+
+[Term]
+id: TPUB:0000032
+name: province
+relationship: part_of TPUB:0000026 ! address
+
+[Term]
+id: TPUB:0000033
+name: country
+relationship: part_of TPUB:0000026 ! address
+
+[Term]
+id: TPUB:0000034
+name: postal_code
+relationship: part_of TPUB:0000026 ! address
+
+[Term]
+id: TPUB:0000035
+name: epub_date
+is_a: TPUB:0000046 ! publication_date
+
+[Term]
+id: TPUB:0000036
+name: accepted_date
+is_a: TPUB:0000046 ! publication_date
+
+[Term]
+id: TPUB:0000037
+name: publication_details
+relationship: part_of TPUB:0000002 ! publication
+
+[Term]
+id: TPUB:0000038
+name: journal_ISO_abbreviation
+relationship: part_of TPUB:0000037 ! publication_details
+created_by: stephen
+creation_date: 2013-03-20T07:02:18Z
+
+[Term]
+id: TPUB:0000039
+name: title
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000040
+name: journal
+is_a: TPUB:0000015 ! publication_type
+
+[Term]
+id: TPUB:0000041
+name: patent
+is_a: TPUB:0000015 ! publication_type
+
+[Term]
+id: TPUB:0000042
+name: volume
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000043
+name: issue
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000044
+name: pages
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000045
+name: start_page
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000046
+name: publication_date
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000047
+name: authors
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000048
+name: ISSN
+comment: International Standard Serial Number (ISSN) is an eight-character value that uniquely identifies a periodicals in print or other media. There are two sub categories of ISSN: print, p-ISSN and electronic e-ISSN.
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000049
+name: DOI
+comment: Digital Object Identifier.
+is_a: TPUB:0000080 ! elocation
+
+[Term]
+id: TPUB:0000050
+name: abstract
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000051
+name: comments
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000052
+name: URL
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000053
+name: file_attachment
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000059
+name: year
+relationship: part_of TPUB:0000046 ! publication_date
+
+[Term]
+id: TPUB:0000064
+name: language
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000065
+name: keywords
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000066
+name: original_title
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000067
+name: alias
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000068
+name: journal_code
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000069
+name: pISSN
+is_a: TPUB:0000048 ! ISSN
+
+[Term]
+id: TPUB:0000070
+name: conference_proceedings
+comment: A generic term for any article, talk, workshop or poster that is part of a conference proceedings.
+is_a: TPUB:0000015 ! publication_type
+
+[Term]
+id: TPUB:0000071
+name: journal_article
+is_a: TPUB:0000015 ! publication_type
+
+[Term]
+id: TPUB:0000072
+name: eISSN
+is_a: TPUB:0000048 ! ISSN
+
+[Term]
+id: TPUB:0000073
+name: proceedings_talk
+is_a: TPUB:0000070 ! conference_proceedings
+
+[Term]
+id: TPUB:0000074
+name: proceedings_article
+is_a: TPUB:0000070 ! conference_proceedings
+
+[Term]
+id: TPUB:0000075
+name: journal_name
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000076
+name: proceedings_poster
+is_a: TPUB:0000070 ! conference_proceedings
+
+[Term]
+id: TPUB:0000077
+name: conference_year
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000078
+name: proceedings_computer_demo
+is_a: TPUB:0000070 ! conference_proceedings
+
+[Term]
+id: TPUB:0000079
+name: vernacular_title
+comment: The title of a publication in its original foreign language.
+relationship: part_of TPUB:0000037 ! publication_details
+creation_date: 2013-03-22T05:35:02Z
+
+[Term]
+id: TPUB:0000080
+name: elocation
+comment: Provides an electronic location for the items. This includes Digital Object Identifiers (DOI) or Publisher Item Identifiers (PII).
+relationship: part_of TPUB:0000037 ! publication_details
+creation_date: 2013-03-22T05:36:24Z
+
+[Term]
+id: TPUB:0000081
+name: publication_model
+comment: This term is used to identify the medium/media in which the item is published. There are four possible values which are the same as used by: print, print-electronic, electronic,  electronic-print.  Further explanation:  "print", the journal is published in print format only; "print-electronic",  the journal is published in both print and electronic format; "electronic", the journal is published in electronic format only; "electronic-print", the journal is published first in electronic format followed by print.
+relationship: part_of TPUB:0000037 ! publication_details
+creation_date: 2013-03-22T02:37:00Z
+
+[Term]
+id: TPUB:0000082
+name: PII
+comment: Publisher Item Identifier.
+is_a: TPUB:0000081 ! publication_model
+
+[Term]
+id: TPUB:0000083
+name: structured_abstract_part
+comment: A subset of an abstract.  For example, abstracts that have section headers such as 'Purpose', 'Results', etc., each of these sections would be an individual part of a structured abstract.
+relationship: part_of TPUB:0000050 ! abstract
+
+[Term]
+id: TPUB:0000084
+name: copyright
+comment: Information regarding the copyright of the publication.
+relationship: part_of TPUB:0000037 ! publication_details
+
+[Term]
+id: TPUB:0000085
+name: suffix
+comment: Name suffix such as 2nd, 3rd, Jr, Sr., etc.
+relationship: part_of TPUB:0000016 ! author
+creation_date: 2013-03-22T04:10:15Z
+
+[Term]
+id: TPUB:0000087
+name: language_abbr
+comment: An abbreviation for a language (e.g. 3 letters)
+is_a: TPUB:0000064 ! language
+
+[Term]
+id: TPUB:0000100
+name: journal_country
+comment: The country where the journal was published.
+relationship: part_of TPUB:0000037 ! publication_details
+created_by: ficklin
+creation_date: 2013-03-22T05:52:57Z
+
+[Typedef]
+id: is_a
+name: is_a
+is_transitive: true
+
+[Typedef]
+id: part_of
+name: part_of
+is_transitive: true
+

+ 45 - 0
tripal_pub/tripal_pub.drush.inc

@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * @file
+ * Contains function relating to drush-integration of this module.
+ */
+
+/**
+ * Describes each drush command implemented by the module
+ *
+ * @return
+ *   The first line of description when executing the help for a given command
+ */
+function tripal_pub_drush_help($command) {
+  switch ($command) {
+    case 'drush:tripal-pub-import':
+      return dt('Imports publications from remote databases using saved configuration settings.');
+  }
+}
+
+/**
+ * Registers a drush command and constructs the full help for that command
+ *
+ * @return
+ *   And array of command descriptions
+ */
+function tripal_pub_drush_command() {
+  $items = array();
+  $items['tripal-pub-import'] = array(
+    'description' => dt('Imports publications from remote databases using saved configuration settings.'),
+    'examples' => array(
+      'Standard example' => 'drush tripal-pub-import',
+    ),
+    'aliases' => array('trp-pubs'),
+  );
+  return $items;
+}
+
+/**
+ * Imports publications into Chado
+ *
+ */
+function drush_tripal_pub_import() {
+  tripal_pub_import_publications();
+}

+ 9 - 0
tripal_pub/tripal_pub.info

@@ -0,0 +1,9 @@
+name = Tripal Publication
+description = A module for interfacing the GMOD chado database with Drupal, providing viewing of publications
+core = 6.x
+project = tripal_pub
+package = Tripal
+version = 6.x-1.0-fix1
+dependencies[] = tripal_core
+dependencies[] = tripal_cv
+dependencies[] = tripal_db

+ 105 - 0
tripal_pub/tripal_pub.install

@@ -0,0 +1,105 @@
+<?php
+
+/**
+ * @file
+ * This file contains all the functions which describe and implement drupal database tables
+ * needed by this module. This module was developed by Chad N.A. Krilow and Lacey-Anne Sanderson,
+ * University of Saskatchewan.
+ *
+ * The project manamgenet module allows you to sync data in a chado/Tripal instance with
+ * multiple project/mysql instances as well as manage and create such project instances
+ */
+
+
+/**
+ * Implementation of hook_install().
+ */
+function tripal_pub_install() {
+  
+  // create the module's data directory
+  tripal_create_moddir('tripal_pub');
+
+  // install the tripal_oub
+  drupal_install_schema('tripal_pub');
+  
+  // add any cvterms we need for this module
+  tripal_pub_add_cvterms();  
+}
+
+
+/*
+ * 
+ * 
+ */
+function tripal_pub_add_cvterms(){
+  
+  tripal_cv_add_cvterm(array('name' => 'abstract', 'def' => 'Publication abstract'), 
+    'tripal_pub', 0, 1, 'tripal');    
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function tripal_pub_uninstall() {
+  //Remove tables
+  drupal_uninstall_schema('tripal_pub');
+
+}
+
+
+/**
+ * Implementation of hook_schema().
+ */
+function tripal_pub_schema() {
+  
+  $schema['chado_pub'] = array(
+    'fields' => array(
+      'vid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+      'nid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+      'pub_id' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+      'sync_date' => array('type' => 'int', 'not null' => FALSE, 'description' => 'UNIX integer sync date/time'),
+    ),
+    'indexes' => array(
+      'pub_id' => array('pub_id')
+    ),
+    'unique keys' => array(
+      'nid_vid' => array('nid', 'vid'),
+      'vid' => array('vid')
+    ),
+    'primary key' => array('nid'),
+  );
+  $schema['tripal_pub_import'] = array(
+    'fields' => array(
+      'pub_import_id' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+      'name' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE),
+      'criteria' => array('type' => 'text', 'size' => 'normal', 'not null' => TRUE, 'description' => 'Contains a serialized PHP array containing the search criteria'),
+      'disabled'  => array('type' => 'int', 'unsigned' => TRUE, 'not NULL' => TRUE, 'default' => 0),      
+    ),
+    'primary key' => array('pub_import_id'),
+    'indexes' => array(
+      'name' => array('name')
+    ),
+  );
+       
+  return $schema;
+}
+
+
+
+/**
+ * Implementation of hook_requirements(). 
+ */
+function tripal_pub_requirements($phase) {
+  $requirements = array();
+  if ($phase == 'install') {
+    // make sure chado is installed
+    if (!tripal_core_is_chado_installed()) {
+      $requirements ['tripal_pub'] = array(
+        'title' => "tripal_pub",
+        'value' => "ERROR: Chado most be installed before this module can be enabled",
+        'severity' => REQUIREMENT_ERROR,
+      );
+    }
+  }
+  return $requirements;
+}

+ 1277 - 0
tripal_pub/tripal_pub.module

@@ -0,0 +1,1277 @@
+<?php
+
+require_once "api/tripal_pub.api.inc";
+require_once "includes/tripal_pub.admin.inc";
+require_once "includes/pubmed.inc";
+require_once "includes/remote_search.inc";
+
+/**
+ * @file
+ *
+ * The Tripal Publication module allows you to search the PubMed databse for academic articles,
+ * that relate to user specified tpoic\s. As well, it allows management of publications so that
+ * a user can enter specified details regarding a desired publication. This allows all of the important
+ * information that is unique to a Academic Publication to be stored for access.
+ */
+
+
+/**
+ *
+ * @ingroup tripal_pub
+ */
+function tripal_pub_init() {
+  drupal_add_js(drupal_get_path('theme', 'tripal') . '/js/tripal_pub.js');
+  drupal_add_css(drupal_get_path('theme', 'tripal') . '/css/tripal_pub.css');
+}
+
+
+/**
+ * Implementation of hook_tripal_pub_node_info().
+ *
+ * This node_info, is a simple node that describes the functionallity of the module.
+ *
+ */
+function tripal_pub_node_info() {
+
+  return array(
+    'chado_pub' => array(
+      'name' => t('Publication'),
+      'module' => 'chado_pub',
+      'description' => t('A module for interfacing the GMOD chado database with Drupal, providing viewing of publications'),
+      'title_label' => t('Article Title'),
+      'body_label' => t('Abstract'),
+      'has_title' => TRUE,
+      'has_body' => FALSE,
+    ),
+  );
+}
+
+/**
+ * Tripal-Publication-Menu
+ *
+ * Implemets hook_menu(): Adds menu items for the tripal_pub module menu. This section
+ * gives the outline for the main menu of the Tripal-Publication module
+ *
+ * @return
+ *   An array of menu items that is visible within the Drupal Menu, returned as soon
+ *   as the program is ran
+ */
+function tripal_pub_menu() {
+
+  $items = array();
+
+  $items[ 'admin/tripal/tripal_pub' ]= array(
+    'title' => 'Publications',
+    'description' => ('A module for interfacing the GMOD chado database with Drupal, providing viewing of publications'),
+    'page callback' => 'theme',
+    'page arguments' => array('tripal_pub_admin'),
+    'access arguments' => array('administer tripal pubs'),
+    'type' => MENU_NORMAL_ITEM
+  );
+ 
+  $items['admin/tripal/tripal_pub/configuration'] = array(
+    'title' => 'Configuration',
+    'description' => 'Configuration for this module',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('tripal_pub_configuration_form'),
+    'access arguments' => array('administer tripal pubs'),
+    'type' => MENU_NORMAL_ITEM  
+  );
+
+  $items['admin/tripal/tripal_pub/import_setup'] = array(
+    'title' => t('Pub Loader Setup'),
+    'description' => t('Finds publications using remote publication databases (e.g. PubMed).'),
+    'page callback' => 'tripal_pub_remote_search_page',
+    'access arguments' => array('administer tripal pubs'),
+    'type ' => MENU_CALLBACK,
+  );
+  
+  $items['admin/tripal/tripal_pub/import_setup/criteria/%/%'] = array(
+    'page callback' => 'tripal_pub_remote_search_page_update_criteria',
+    'page arguments' => array(5, 6),
+    'access arguments' => array('administer tripal pubs'),    
+    'type ' => MENU_CALLBACK,
+  );
+  
+  // Automatically generate checkboxes.
+  $items['node/add/tripal_pub/ahah_authors'] = array(
+    'title' => 'Add Additional Authors',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('author_addition_fields_ahah_callback'),
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK,
+    'weight' => 2,
+  );
+
+  $items['tripal_pub/js/%'] = array(
+    'page callback' => 'tripal_pub_js',
+    'page arguments' => array(2),
+    'access arguments' => array('access content'),
+    'type ' => MENU_CALLBACK,
+  );
+
+  return $items;
+}
+
+
+/**
+ * Implements hook_theme(): Register themeing functions for this module
+ *
+ *
+ * @return
+ *   An array of themeing functions to register
+ *
+ */
+function tripal_pub_theme() {
+
+  return array(
+    'tripal_pub_author_table' => array(
+      'arguments' => array('form' => NULL),
+    ),
+    'publication_author' => array(
+      'arguments' => array('element' => NULL)
+    ),
+    'publication_author' => array(
+      'arguments' => array('element' => NULL)
+    ),
+    'tripal_pub_remote_search_form' => array(
+       'arguments' => array('form'),
+    ),
+    'tripal_pub_admin' => array(
+      'template' => 'tripal_pub_admin',  
+      'arguments' =>  array(NULL),  
+      'path' => drupal_get_path('module', 'tripal_pub') . '/theme' 
+    ),
+  );
+}
+
+/**
+ * Implement hook_perm().
+ */
+function tripal_pub_perm() {
+  return array(
+    'access chado_pub content',
+    'create chado_pub content',
+    'delete chado_pub content',
+    'edit chado_pub content',
+    'administer tripal pubs',
+  );
+}
+
+
+/**
+ * Implement hook_access().
+ *
+ * This hook allows node modules to limit access to the node types they define.
+ *
+ *  @param $op
+ *  The operation to be performed
+ *
+ *  @param $node
+ *  The node on which the operation is to be performed, or, if it does not yet exist, the
+ *  type of node to be created
+ *
+ *  @param $account
+ *  A user object representing the user for whom the operation is to be performed
+ *
+ *  @return
+ *  TRUE
+ *
+ */
+function chado_pub_access($op, $node, $account ) {
+  if ($op == 'create') {
+    if (!user_access('create chado_pub content', $account)) {
+      return FALSE;
+      }
+  }
+
+  if ($op == 'update') {
+    if (!user_access('edit chado_pub content', $account)) {
+      return FALSE;
+    }
+  }
+  if ($op == 'delete') {
+    if (!user_access('delete chado_pub content', $account)) {
+      return FALSE;
+    }
+  }
+  if ($op == 'view') {
+    if (!user_access('access chado_pub content', $account)) {
+      return FALSE;
+    }
+  }
+  return NULL;
+}
+
+
+/**
+ * Implementation of tripal_pub_form().
+ *
+ *
+ *
+ *  @parm &$node
+ *    The node that is created when the database is initialized
+ *
+ *  @parm $form_state
+ *    The state of the form, that has the user entered information that is neccessary for, setting
+ *    up the database tables for the publication
+ *
+ *  @return $form
+ *    The information that was enterd allong with
+ *
+ */
+function chado_pub_form(&$node, $form_state) {
+
+  $type = node_get_types('type', $node);
+
+  // Article Title.
+  $form['title'] = array(
+    '#type' => 'textfield',
+    '#title' => check_plain($type->title_label),
+    '#default_value' => $node->title,
+    '#required' => TRUE,
+    '#weight' => 0,
+  );
+
+  // Abstract
+  $form['abstract'] = array(
+    '#title' => 'Abstract',
+    '#type' => 'textarea',
+    '#default_value' => isset($node->abstract) ? $node->abstract : ''
+  );
+
+  $form['pub_id'] = array(
+    '#type' => 'hidden',
+    '#value' => (isset($node->pub_id)) ? $node->pub_id->pub_id : NULL ,
+  );
+
+  $form['uniquename'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Unique Name'),
+    '#required' => TRUE,
+    '#description' => 'A unique name/identifier for this publication. If this article exists in pubmed, entering the pubmed ID here will ensure duplicate publication pages are not created.',
+    '#default_value' => isset($node->pub_id->uniquename) ? $node->pub_id->uniquename : ''
+  );
+
+  $values= array(
+    'cv_id' => variable_get('tripal_pub_types_cv', NULL),
+  );
+
+  //population select list with 'cvterm' names
+  $result = tripal_core_chado_select('cvterm', array('cvterm_id', 'name'), $values);
+
+  foreach ($result as $value) {
+    $newArray[$value->cvterm_id]=$value->name;     //options for the select list
+  }
+
+  $form['type_id'] = array(
+    '#type' => 'select',
+    '#title' => t('Publication Type'),
+    '#options' => $newArray,
+    '#required' => TRUE,
+    '#default_value' => isset($node->pub_id->type_id) ? $node->pub_id->type_id : ''
+  );
+
+  $form['author_wrapper'] = array(
+    '#tree' => FALSE,
+    '#prefix' => '<div class="clear-block" id="author-wrapper">',
+    '#suffix' => '</div>',
+  );
+
+  // Get number of authors
+  $author_count = empty($node->authors) ? 0 : count($node->authors);
+
+  // If a new author added, add to list and update the author count.
+  if (isset($form_state['new_author'])) {
+
+    if (!isset($node->authors)) {
+      $node->authors = array();
+    }
+
+    $node->authors = array_merge($node->authors, array($form_state['new_author']));
+    $author_count++;
+
+  }
+
+  // If a author removed, remove from list and update the author count.
+  $remove_delta = -1;
+
+  if (!empty($form_state['remove_delta'])) {
+
+      $remove_delta = $form_state['remove_delta'] - 1;
+
+      unset($node->authors[$remove_delta]);
+
+      // Re-number the values.
+      $node->authors = array_values($node->authors);
+
+      $author_count--;
+
+  }
+
+  // Container to display existing authors.
+  $form['author_wrapper']['authors'] = array(
+    '#prefix' => '<div id="publication-authors">',
+    '#suffix' => '</div>',
+    '#theme' => 'tripal_pub_author_table',
+  );
+
+  if (!isset($node->authors)) {
+
+    if (isset($node->new_author['new_author_name'])) {
+
+      $node->authors = array();
+
+      $node->authors[]['author_name'] = $node->new_author['new_author_name'];
+
+    }
+
+  }
+
+  //Add the existing authors to the form.
+  for ($delta = 0; $delta < $author_count; $delta++) {
+
+      $author = isset($node->authors[$delta]['author_name']) ? $node->authors[$delta] : array();
+
+      $form['author_wrapper']['authors'][$delta] = tripal_pub_author_display_form($delta, $author);
+
+  }
+
+
+  if (isset($form_state['values']['edit_author'])) {
+
+      // Add new authors
+      $form['author_wrapper']['edit_author'] = array(
+        '#type' => 'fieldset',
+        '#title' => t('Current Publication Authors'),
+        '#tree' => FALSE,
+      );
+
+      // Define the form fields for the new author
+      $form['author_wrapper']['edit_author']['edit_author'] = array(
+        '#tree' => TRUE,
+        //'#default_value'=> '',
+        //'#theme' => 'author_add_author_form',
+      );
+
+      $form['author_wrapper']['edit_author']['edit_author']['delta'] = array(
+        '#type' => 'hidden',
+        '#value' => $form_state['values']['edit_author']['delta']
+      );
+
+      $form['author_wrapper']['edit_author']['edit_author']['edit_author_name'] = array(
+        '#type' => 'publication_author',
+        '#title' => t('Contributing Authors'),
+        '#default_value' => array(
+            'givennames' => $form_state['values']['edit_author']['author_name']['givennames'],
+            'surname' => $form_state['values']['edit_author']['author_name']['surname'],
+            'suffix' => $form_state['values']['edit_author']['author_name']['suffix'],
+          ),
+        '#weight' => 1,
+      );
+
+      // We name our button 'author_more' to avoid conflicts with other modules using
+      // AHAH-enabled buttons with the id 'more'.
+      $form['author_wrapper']['edit_author']['author_save'] = array(
+        '#type' => 'submit',
+        '#value' => t('Save Author'),
+        '#weight' => 0,
+        '#submit' => array('tripal_pub_edit_author_submit'),
+        '#ahah' => array(
+          'path' => 'tripal_pub/js/0',
+          'wrapper' => 'author-wrapper',
+          'method' => 'replace',
+          'effect' => 'fade',
+        ),
+      );
+  }
+  else{
+
+      // Add new authors
+      $form['author_wrapper']['add_author'] = array(
+        '#type' => 'fieldset',
+        '#title' => t('Publication Authors'),
+        '#tree' => FALSE,
+      );
+
+      // Define the form fields for the new author
+      $form['author_wrapper']['add_author']['new_author'] = array(
+        '#tree' => TRUE,
+        //'#default_value'=> '',
+        '#theme' => 'author_add_author_form',
+      );
+
+      $form['author_wrapper']['add_author']['new_author']['new_author_name'] = array(
+        '#type' => 'publication_author',
+        '#title' => t('Contributing Authors'),
+        '#default_value' => '',
+        '#weight' => 1,
+      );
+
+      // We name our button 'author_more' to avoid conflicts with other modules using
+      // AHAH-enabled buttons with the id 'more'.
+      $form['author_wrapper']['add_author']['author_more'] = array(
+        '#type' => 'submit',
+        '#value' => t('Add Author'),
+        '#weight' => 0,
+        '#submit' => array('tripal_pub_add_author_submit'),
+        '#ahah' => array(
+          'path' => 'tripal_pub/js/0',
+          'wrapper' => 'author-wrapper',
+          'method' => 'replace',
+          'effect' => 'fade',
+        ),
+      );
+
+  }
+
+  $form['volumetitle'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Volume Title'),
+    '#description' => t('Title of part if one of a series.'),
+    '#default_value' => isset($node->pub_id->volumetitle) ? $node->pub_id->volumetitle : ''
+  );
+
+  $form['volume'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Volume'),
+    '#default_value' => isset($node->pub_id->volume) ? $node->pub_id->volume : ''
+  );
+
+  $form['series_name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Series Name'),
+    '#default_value' => isset($node->pub_id->series_name) ? $node->pub_id->series_name : ''
+  );
+
+  $form['issue'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Issue'),
+    '#default_value' => isset($node->pub_id->issue) ? $node->pub_id->issue : ''
+  );
+
+  $form['pyear'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Publication Year'),
+    '#default_value' => isset($node->pub_id->pyear) ? $node->pub_id->pyear : ''
+  );
+
+  $form['pages'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Pages'),
+    '#description' => t('Page number range[s], e.g. 457--459, viii + 664pp, lv--lvii.'),
+    '#default_value' => isset($node->pub_id->pages) ? $node->pub_id->pages : ''
+  );
+
+  $form['miniref'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Mini-Ref'),
+    '#required' => FALSE,
+    '#default_value' => isset($node->pub_id->miniref) ? $node->pub_id->miniref : ''
+  );
+
+  $form['is_obsolete'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Is Obsolete?(Check for Yes)'),
+    '#required' => TRUE,
+    '#default_value' => isset($node->pub_id->is_obsolete) ? $node->pub_id->is_obsolete : FALSE
+  );
+
+  $form['publisher'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Publisher Name'),
+    '#required' => FALSE,
+    '#default_value' => isset($node->pub_id->publisher) ? $node->pub_id->publisher : ''
+  );
+
+  $form['pubplace'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Place of Publication'),
+    '#required' => FALSE,
+    '#default_value' => isset($node->pub_id->pubplace) ? $node->pub_id->pubplace  : ''
+  );
+
+  return $form;
+
+}
+
+
+/**
+ * Implementation of tripal_pub_insert().
+ *
+ * This function inserts user entered information pertaining to the Publication instance into the
+ * 'pubauthor', 'pubprop', 'chado_pub', 'pub' talble of the database.
+ *
+ *  @parm $node
+ *    Then node which contains the information stored within the node-ID
+ *
+ *
+ */
+function chado_pub_insert($node) {
+
+  $values =  array(
+    'title' => $node->title,
+    'volumetitle' => $node->volumetitle,
+    'volume' => $node->volume,
+    'series_name' => $node->series_name,
+    'issue' => $node->issue,
+    'pyear' => $node->pyear,
+    'pages' => $node->pages,
+    'miniref' => $node->miniref,
+    'type_id' => $node->type_id,
+    'is_obsolete' => $node->is_obsolete,
+    'publisher' => $node->publisher,
+    'pubplace' => $node->pubplace,
+    'uniquename' => $node->uniquename,
+    'type_id' => $node->type_id
+  );
+
+  //inserts info into chado table
+  $result = tripal_core_chado_insert('pub', $values);
+
+
+  if (isset($result)) {
+
+          //inserts the row of vid,nid,project_id into the chado_pub table
+          db_query("INSERT INTO {chado_pub} (nid, vid, pub_id) VALUES (%d, %d, %d)",
+            $node->nid,
+            $node->vid,
+            $result['pub_id']
+          );
+
+          //Aquiring information for the abstract
+          $abstract_info = tripal_core_chado_select('cvterm', array('cvterm_id'),
+            array('name' => 'abstract', 'cv_id' => array('name' => 'tripal')
+            )
+          );
+
+          //Extracting the type_id
+          $type_id = $abstract_info[0]->cvterm_id;
+
+          //setting the abstract values
+          $abstract = array(
+            'pub_id' => $result['pub_id'],
+            'type_id' => $type_id,
+            'value' => $node->abstract,
+            'rank' => 1
+          );
+
+          //inserts info into chado pubpro table for abstract
+          tripal_core_chado_insert('pubprop', $abstract);
+
+          //counter for loop
+          for ($i=0; $i<=sizeof($node->authors); $i++) {
+
+              if (isset($node->authors[$i]['author_name'] )) {
+
+                $authors = array(
+                  'pub_id' => $result['pub_id'],
+                  'rank' => $i,
+                  'surname' => $node->authors[$i]['author_name']['surname'],
+                  'givennames' => $node->authors[$i]['author_name']['givennames'],
+                  'suffix' => $node->authors[$i]['author_name']['suffix'],
+                );
+
+                  //inserts info into chado pubpro table for abstract
+                  tripal_core_chado_insert('pubauthor', $authors);
+              }
+
+          }
+
+
+          if (!empty($node->new_author['new_author_name']['surname'])) {
+
+              $authors = array(
+                  'pub_id' => $result['pub_id'],
+                  'rank' => $i+1,
+                  'surname' => $node->new_author['new_author_name']['surname'],
+                  'givennames' => $node->new_author['new_author_name']['givennames'],
+                  'suffix' => $node->new_author['new_author_name']['suffix'],
+                );
+
+                  //inserts info into chado pubpro table for abstract
+                  tripal_core_chado_insert('pubauthor', $authors);
+
+          }
+
+
+      }
+      else{
+
+        druapl_set_message('Pub_id was not set, No information has been set.');
+
+    }
+
+}
+
+
+/**
+ * Implementation of tripal_pub_delete().
+ *
+ * This function takes a node and if the delete button has been chosen by the user, the publication
+ * and it's details will be removed.Following,given the node-ID, the instance will be deleted from
+ * the 'chado_pub' table.
+ *
+ *  @parm $node
+ *    Then node which contains the information stored within the node-ID
+ *
+ */
+function chado_pub_delete(&$node) {
+
+  // Matching all revision, by using the node's pub_id.
+  $values =  array(
+    'pub_id' => $node->pub_id->pub_id,
+  );
+
+  //deleting row in chado table
+  tripal_core_chado_delete('pub', $values);
+
+  //deleteing in drupal chado_project table
+  db_query('DELETE FROM {chado_pub} WHERE nid = %d', $node->nid);
+
+}
+
+
+/*
+ *
+ * Implements hook_update
+ *
+ * The purpose of the function is to allow the module to take action when an edited node is being
+ * updated. It updates any name changes to the database tables that werec reated upon registering a Publication.
+ * As well, the database will be changed, so the user changed information will be saved to the database.
+ *
+ * @param $node
+ *   The node being updated
+ *
+ */
+function chado_pub_update($node) {
+
+
+  $values =  array(
+      'title' => $node->title,
+      'volumetitle' => $node->volumetitle,
+      'volume' => $node->volume,
+      'series_name' => $node->series_name,
+      'issue' => $node->issue,
+      'pyear' => $node->pyear,
+      'pages' => $node->pages,
+      'miniref' => $node->miniref,
+      'uniquename' => $node->uniquename,
+      'type_id' => $node->type_id,
+      'is_obsolete' => $node->is_obsolete,
+      'publisher' => $node->publisher,
+      'pubplace' => $node->pubplace,
+      'type_id' => $node->type_id
+    );
+
+  $result = db_fetch_object(db_query('SELECT pub_id FROM {chado_pub} WHERE nid=%d AND vid=%d ', $node->nid, $node->vid));
+
+  //extract pub_id from the chado table for update function
+  $match = array( 'pub_id' => $result->pub_id );
+
+  //$table to be updated, $match is the 'pub_id', $value are the values that are to be updated
+  $update_result = tripal_core_chado_update('pub', $match, $values);
+
+   //Aquiring information for the abstract
+  $abstract_info = tripal_core_chado_select('cvterm', array('cvterm_id'),
+    array('name' => 'abstract', 'cv_id' => array('name' => 'tripal')
+    )
+  );
+
+  //Grabbing the type id of the old abstract
+  $type_id = $abstract_info[0]->cvterm_id;
+
+  //Aquiring information for the abstract
+  $abstract = array(
+    'pub_id' => $result->pub_id,
+    'type_id' => $type_id,
+    'value' => $node->abstract,
+    'rank' => 1
+  );
+
+  //$table to be updated, $match is the 'pub_id', $value are the values that are to be updated
+  tripal_core_chado_update('pubprop', array('pub_id' => $result->pub_id, 'type_id' => $type_id, 'rank' => 1), $abstract);
+
+  //counter for loop
+  for ($i=0; $i<=sizeof($node->authors); $i++) {
+
+      if (isset($node->authors[$i]['author_name'] )) {
+
+          //if new insert
+          if (isset($node->authors[$i]['is_new'])) {
+
+              $authors = array(
+                  'pub_id' => $match['pub_id'],
+                  'rank' => $i+1,
+                  'surname' => $node->authors[$i]['author_name']['surname'],
+                  'givennames' => $node->authors[$i]['author_name']['givennames'],
+                  'suffix' => $node->authors[$i]['author_name']['suffix'],
+              );
+
+              //inserts info into chado pubpro table for abstract
+              tripal_core_chado_insert('pubauthor', $authors);
+
+          }
+          else{
+
+            //update
+            //$table=pubauthor to be updated, $match=author_match is the 'pub_id', $value=author are the values that are to be updated
+            tripal_core_chado_update('pubauthor', array('pub_id' => $match['pub_id'], 'rank' => $node->authors[$i]['author_name']['rank']), $node->authors[$i]['author_name']);
+
+          }
+
+      }
+
+  }
+
+
+}
+
+
+/**
+ * Implementation of tripal_pub_load().
+ *
+ *
+ * @param $node
+ *   The node that is to be accessed from the database
+ *
+ * @return $node
+ *   The node with the information to be loaded into the database
+ *
+ */
+function chado_pub_load($node) {
+
+  $result = db_fetch_object(db_query('SELECT * FROM {chado_pub} WHERE nid=%d AND vid=%d ', $node->nid, $node->vid));
+
+  $values = array(
+    'pub_id' => $result->pub_id,
+  );
+
+
+  if (empty($result->pub_id)) {
+
+    drupal_set_message(t("Unable to find publication"), 'error');
+
+  }
+  else{
+
+    $node->pub = tripal_core_generate_chado_var('pub', $values);
+
+    // add in authors
+    $authors = tripal_core_chado_select(
+      'pubauthor',
+      array('rank', 'surname', 'givennames', 'suffix'),
+      array('pub_id' => $node->pub->pub_id)
+    );
+    foreach ($authors as $author) {
+        $node->pub->authors[$author->rank] = $author;
+    }
+    ksort($node->pub->authors);
+
+  }
+
+  return $node;
+
+}
+
+/**
+ * Submit handler for 'Add Author' button on node form.
+ */
+function tripal_pub_add_author_submit($form, &$form_state) {
+
+    $form_state['remove_delta'] = 0;
+
+    // Set the form to rebuild and run submit handlers.
+    node_form_submit_build_node($form, $form_state);
+
+    // Make the changes we want to the form state.
+    if ($form_state['values']['author_more']) {
+
+      $new_author = array();
+
+      $new_author['author_name'] = $form_state['values']['new_author']['new_author_name'];
+      $new_author['is_new'] = TRUE;
+
+      $form_state['new_author'] = $new_author;
+
+    }
+
+
+
+}
+
+
+/**
+ * Submit handler for 'Edit' button on node form.
+ */
+function tripal_pub_edit_author_submit($form, &$form_state) {
+
+    // remember which author we're editing
+    $delta = $form_state['values']['edit_author']['delta'];
+
+    //add changes author details back
+    $rank = $form_state['values']['authors'][$delta]['author_name']['rank'];
+    $form_state['values']['authors'][$delta]['author_name'] = $form_state['values']['edit_author']['edit_author_name'];
+    $form_state['values']['authors'][$delta]['author_name']['rank'] = $rank;
+
+    //ensures that after they save their changes the edit fieldstate goes away
+    unset($form_state['values']['edit_author']);
+
+    // Set the form to rebuild and run submit handlers.
+    node_form_submit_build_node($form, $form_state);
+
+}
+
+
+/**
+ * Submit handler for 'Edit' button on node form.
+ */
+function tripal_pub_set_edit_author_submit($form, &$form_state) {
+
+  $form_state['remove_delta'] = 0;
+
+  // Make the changes we want to the form state
+  $edit_author = array();
+
+  if (preg_match('/edit_author_(\d+)/', $form_state['clicked_button']['#name'], $matches)) {
+
+
+    $delta = $matches[1];
+
+    $form_state['values']['edit_author'] = $form_state['values']['authors'][$delta];
+
+    $form_state['values']['edit_author']['delta'] = $delta;
+
+  }
+
+  // Set the form to rebuild and run submit handlers.
+  node_form_submit_build_node($form, $form_state);
+
+}
+
+
+/**
+ * Submit handler for 'Remove' button on node form.
+ */
+function tripal_pub_remove_row_submit($form, &$form_state) {
+
+
+  if (preg_match('/remove_author_(\d+)/', $form_state['clicked_button']['#name'], $matches)) {
+
+    $delta = $matches[1];
+
+    $form_state['values']['remove_author'] = $form_state['values']['authors'][$delta];
+
+    $form_state['values']['remove_author']['delta'] = $delta;
+
+  }
+
+  $values =  array(
+    'pub_id' => $form_state['values']['pub_id'],
+    'rank' => $form_state['values']['authors'][$delta]['author_name']['rank']
+
+    );
+
+  //deleting row in chado table
+  tripal_core_chado_delete('pubauthor', $values);
+
+
+  // Set the form to rebuild and run submit handlers.
+  node_form_submit_build_node($form, $form_state);
+
+}
+
+
+/*
+ *
+ *
+ *
+ */
+function tripal_pub_js($delta = 0) {
+
+    $form = tripal_pub_ajax_form_handler($delta);
+
+    // Render the new output.
+    $author_form = $form['author_wrapper']; //was ['author']
+
+    // Prevent duplicate wrappers.
+    unset($author_form['#prefix'], $author_form['#suffix']);
+
+    $output = theme('status_messages') . drupal_render($author_form);
+
+    // AHAH does not know about the "Remove" button.
+    // This causes it not to attach AHAH behaviours to it after modifying the form.
+    // So we need to tell it first.
+    $javascript = drupal_add_js(NULL, NULL);
+
+    if (isset($javascript['setting'])) {
+
+      $output .= '<script type="text/javascript">jQuery.extend(Drupal.settings, '. drupal_to_js(call_user_func_array('array_merge_recursive', $javascript['setting'])) .');</script>';
+
+    }
+
+    // Final rendering callback.
+    drupal_json(array('status' => TRUE, 'data' => $output));
+
+}
+
+
+/**
+ * AJAX form handler.
+ */
+function tripal_pub_ajax_form_handler($delta=0 ) {
+
+    // The form is generated in an include file which we need to include manually.
+    include_once 'modules/node/node.pages.inc';
+
+    $form_state = array('storage' => NULL, 'submitted' => FALSE);
+
+    $form_build_id = filter_xss($_POST['form_build_id']);
+
+    // Get the form from the cache.
+    $form = form_get_cache($form_build_id, $form_state);
+
+    $args = $form['#parameters'];
+
+    $form_id = array_shift($args);
+
+    // We need to process the form, prepare for that by setting a few internals.
+    $form_state['post'] = $form['#post'] = $_POST;
+
+    $form['#programmed'] = $form['#redirect'] = FALSE;
+
+    // Set up our form state variable, needed for removing authors.
+    $form_state['remove_delta'] = $delta;
+
+    // Build, validate and if possible, submit the form.
+    drupal_process_form($form_id, $form, $form_state);
+
+    // If validation fails, force form submission.
+    if (form_get_errors()) {
+
+      form_execute_handlers('submit', $form, $form_state);
+
+    }
+
+    // This call recreates the form relying solely on the form_state that the
+    // drupal_process_form set up.
+    $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id);
+
+    return $form;
+}
+
+
+/*
+ *
+ *
+ */
+function theme_tripal_pub_author_table($form) {
+
+  $rows = array();
+
+  $headers = array(
+    t('Givennames'),
+    t('Surname'),
+    t('Suffix'),
+    '',  // Blank header title for the remove link.
+  );
+
+  foreach (element_children($form) as $key) {
+
+    // No need to print the field title every time.
+    unset(
+      $form[$key]['author_name_text']['#title'],
+      $form[$key]['author_name_text-2']['#title'],
+      $form[$key]['author_name_text-3']['#title'],
+      $form[$key]['remove_author']['#title']
+    );
+
+    // Build the table row.
+    $row = array(
+      'data' => array(
+        array('data' => drupal_render($form[$key]['author_name']) . drupal_render($form[$key]['author_name_text']), 'class' => 'author-name'),
+        array('data' => drupal_render($form[$key]['author_name']) . drupal_render($form[$key]['author_name_text-2']), 'class' => 'author-name'),
+        array('data' => drupal_render($form[$key]['author_name']) . drupal_render($form[$key]['author_name_text-3']), 'class' => 'author-name'),
+        array('data' => drupal_render($form[$key]['edit_author']) . drupal_render($form[$key]['remove_author']), 'class' => 'remove-author'),
+      ),
+    );
+
+    // Add additional attributes to the row, such as a class for this row.
+    if (isset($form[$key]['#attributes'])) {
+
+      $row = array_merge($row, $form[$key]['#attributes']);
+
+    }
+
+    $rows[] = $row;
+
+  }
+
+  //$output = theme('table', $headers, $rows);
+
+  $output .= drupal_render($form);
+
+  return $output;
+
+}
+
+/**
+ *
+ * Helper function to define populated form field elements for publication node form.
+ *
+ */
+function tripal_pub_author_display_form($delta, $author) {
+
+  $form = array(
+    '#tree' => TRUE,
+  );
+
+  // Author Name
+  $form['author_name'] = array(
+    '#type' => 'hidden',
+    '#value' => $author,
+    '#parents' => array('authors', $delta),
+  );
+  $form['author_name_text'] = array(
+    '#type' => 'item',
+    '#title' => t('Givennames'),
+    '#parents' => array('authors', $delta),
+    '#value' => $author['author_name']['givennames'],
+  );
+
+  $form['author_name_text-2'] = array(
+    '#type' => 'item',
+    '#title' => t('Surname'),
+    '#parents' => array('authors', $delta),
+    '#value' => $author['author_name']['surname'],
+  );
+
+  $form['author_name_text-3'] = array(
+    '#type' => 'item',
+    '#title' => t('Suffix'),
+    '#parents' => array('authors', $delta),
+    '#value' => $author['author_name']['suffix'],
+  );
+
+    // Remove button.
+    $form['remove_author'] = array(
+        '#type' => 'submit',
+        '#name' => 'remove_author_' . $delta,
+        '#value' => t('Remove'),
+        '#submit' => array('tripal_pub_remove_row_submit'),
+        '#parents' => array('authors', $delta, 'remove_author'),
+        '#ahah' => array(
+          'path' => 'tripal_pub/js/0',
+          'wrapper' => 'author-wrapper',
+          'method' => 'replace',
+          'effect' => 'fade',
+        ),
+    );
+
+      // Edit Author button
+    $form['edit_author'] = array(
+        '#type' => 'submit',
+        '#name' => 'edit_author_' . $delta,
+        '#value' => t('Edit'),
+        '#submit' => array('tripal_pub_set_edit_author_submit'),
+        '#parents' => array('authors', $delta, 'edit_author'),
+        '#ahah' => array(
+          'path' => 'tripal_pub/js/0',
+          'wrapper' => 'author-wrapper',
+          'method' => 'replace',
+          'effect' => 'fade',
+        ),
+    );
+
+  return $form;
+}
+
+
+/*
+ * This function executes commands periodically. This is called whenever a cron run occurs. This
+ * function uses the time interval that the user has entered. This Publication module, requires
+ * that the program is ran in pre-determined intervals, as desired by the user. By using a time stamp
+ * and comparing the current time and the time that the last time a cron was ran, this program will
+ *  be ran.
+ *
+ *
+ * @TODO: The cron function is not working correctly, not sure why the cron is not working properly.
+ *
+ *
+ *
+ */
+/**
+function tripal_pub_cron(){
+
+      global $user;    //needed to make the current users details available so access of user id is available
+
+      //Aquiring the current time
+      $current_time = time();
+
+      //Aquiring the user entered time interval
+      $user_interval = variable_get('time_interval',NULL);
+
+      //converting the user entered interval into seconds for use with unix time stamp
+      $converted_interval = ($user_interval*60);
+
+      //Accessing database for time stamp from watchdog
+      $cron = db_result(db_query('select timestamp from {watchdog} where type="cron" order by timestamp desc limit 1'));
+
+      //debugging print statement
+      //print($cron);
+
+      //taking variable value & assigning for use
+      $cron_last = variable_get('cron', time());
+
+      $updated_interval = $cron_last - $converted_interval;
+
+      if($current_time >= $updated_interval ){
+
+        tripal_add_job('Search & Load PubMed Publications', 'tripal_pub', 'tripal_pub_search_load_pubmed_publications', $job_args, $user->uid);
+
+      }
+
+}
+  */
+
+
+
+
+//-----------------------------------------------------------------------------
+//  SECTION: Custom form Elements
+//-----------------------------------------------------------------------------
+
+
+/*
+ * This fucnction tells the FAPI(Form-API) that this is a element that will carry a value, contains
+ * arrays of callback function names. Will declare an element will create a reuseable element type.
+ *
+ *  @return
+ *      An associative array with the name of each element type as a key and an
+ *      array of attributes describingthe type as a value
+ */
+function tripal_pub_elements() {
+
+      return array(
+          'publication_author' => array(
+               '#input' => TRUE,
+               '#process' => array('expand_publication_author'),
+               '#element_validate' => array('publication_author_validate'),
+              ),
+      );
+
+}
+
+
+/*
+ *
+ *
+ *
+ */
+function expand_publication_author($element) {
+
+    if (empty($element['#value'])) {
+      $element['#value'] = array(
+              'givennames' => '',
+              'suffix' => '',
+              'surname' => '',
+            );
+
+    }
+
+    $element['#tree'] = TRUE;
+
+    $parents = $element['#parents'];
+
+    $parents[] = 'givennames';
+
+    $element['givennames'] = array(
+    '#type' => 'textfield',
+              '#size' => 10,
+              //'#maxlength' => TRUE,
+              //'#default_value'=> $element['#value']['#given'],
+              '#prefix' => 'Given Name',
+    );
+
+    if ($element['#default_value']) {
+
+      $element['givennames']['#default_value'] = $element['#default_value']['givennames'];
+
+    }
+
+    $parents = $element['#parents'];
+
+    $parents[]= 'surname';
+
+    $element['surname'] = array(
+    '#type' => 'textfield',
+              '#size' => 10,
+              //'#maxlength' => TRUE,
+              //'#default_value'=> $element['#value']['#surname'],
+              '#prefix' => 'Surname',
+    );
+
+    if ($element['#default_value']) {
+
+      $element['surname']['#default_value'] = $element['#default_value']['surname'];
+
+    }
+
+    $parents = $element['#parents'];
+
+    $parents[]= 'suffix';
+
+    $element['suffix'] = array(
+    '#type' => 'textfield',
+              '#size' => 5,
+              //'#maxlength' => TRUE,
+              //'#default_value'=> $element['#value']['#suffix'],
+              '#prefix' => 'suffix',
+    );
+
+    if ($element['#default_value']) {
+
+      $element['suffix']['#default_value'] = $element['#default_value']['suffix'];
+
+    }
+
+  return $element;
+
+}
+
+
+/*
+ *
+ *
+ *
+ */
+function theme_publication_author($element) {
+  return theme('form_element', $element, '<div class="container-inline">' . $element['#children'] . '</div>');
+}
+
+/*
+ *
+ *
+ *
+ */
+function publication_author_validate($element) {
+  if ($element['#required']) {
+    if (trim($element['#value']['givennames']) == '' || trim($element['#value']['suffix']) == '' || trim($element['#value']['surname']) == '' ||
+      !is_string($element['#value']['givennames']) || !is_string($element['#value']['givennames']) || !is_string($element['#value']['surname'])) {
+      form_error($element, t('The Author name is required.'));
+    }
+  }
+}
+
+/*
+ * 
+ */
+
+function tripal_pub_form_alter(&$form, &$form_state, $form_id) {
+  if ($form_id == "tripal_pub_remote_search_form") {    
+    // updating the form through the ahah callback sets the action of
+    // the form to the ahah callback URL. We need to set it back
+    // to the normal form URL
+    $form['#action'] = url("admin/tripal/tripal_pub/import_setup");
+  }
+}

+ 71 - 0
tripal_pub/tripal_pub.views.inc

@@ -0,0 +1,71 @@
+<?php
+
+/**
+ *  @file
+ *  This file contains the basic functions for views integration of
+ *  chado/tripal_pub tables. Supplementary functions can be found in
+ *  ./views/
+ *
+ *  Documentation on views integration can be found at
+ *  http://views2.logrus.com/doc/html/index.html.
+ */
+
+/*************************************************************************
+ * Implements hook_views_data()
+ * Purpose: Describe chado/tripal tables & fields to views
+ *
+ * @return: a data array which follows the structure outlined in the
+ *   views2 documentation for this hook. Essentially, it's an array of table
+ *   definitions keyed by chado/tripal table name. Each table definition
+ *   includes basic details about the table, fields in that table and
+ *   relationships between that table and others (joins)
+ */
+function tripal_pub_views_data()  {
+  $data = array();
+
+  if (module_exists('tripal_views')) {
+    $tables = array(
+      'pub'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename, TRUE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+
+    $tables = array(
+      'pub_dbxref',
+      'pub_relationship',
+      'pubauthor',
+      'pubprop'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename, FALSE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+  }
+
+  return $data;
+}
+
+/*************************************************************************
+ * Implements hook_views_handlers()
+ * Purpose: Register all custom handlers with views
+ *   where a handler describes either "the type of field",
+ *   "how a field should be filtered", "how a field should be sorted"
+ *
+ * @return: An array of handler definitions
+ */
+function tripal_pub_views_handlers() {
+  return array(
+   'info' => array(
+     'path' => drupal_get_path('module', 'tripal_pub') . '/views/handlers',
+    ),
+   'handlers' => array(
+
+    ),
+  );
+}

+ 1 - 1
tripal_stock/tripal_stock.info

@@ -3,6 +3,6 @@ description = A module for interfacing the GMOD chado database with Drupal, prov
 core = 6.x
 project = tripal_stock
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = tripal_core
 dependencies[] = tripal_organism

+ 1 - 1
tripal_views/tripal_views.info

@@ -3,7 +3,7 @@ description = This module provides integration with Drupal Views. Other Tripal m
 core = 6.x
 project = tripal_core
 package = Tripal
-version = 6.x-1.0
+version = 6.x-1.0-fix1
 dependencies[] = views
 dependencies[] = views_data_export
 dependencies[] = tripal_core

+ 12 - 0
tripal_views/views/handlers/chado_views_handler_filter_string.inc

@@ -130,6 +130,18 @@ class chado_views_handler_filter_string extends views_handler_filter_string {
         'method' => 'op_contains',
         'values' => 1,
       ),
+      'starts' => array(
+        'title' => t('Starts with'),
+        'short' => t('begins'),
+        'method' => 'op_starts',
+        'values' => 1,
+      ),
+      'ends' => array(
+         'title' => t('Ends with'),
+         'short' => t('ends'),
+         'method' => 'op_ends',
+         'values' => 1,
+       ),
     );
 
     return $operators;