function getSupClassAndProperty($ontology_uri, &$results, $tmp_iri) { global $ns_rdf, $ns_rdfs, $ns_owl, $num_queries, $processed_iris, $included_iris, $parent_included_iris; $querystring = "\r\nPREFIX rdf: <{$ns_rdf}>\r\nPREFIX rdfs: <{$ns_rdfs}>\r\nPREFIX owl: <{$ns_owl}>\r\n\r\nSELECT DISTINCT *\r\n\r\nFROM <{$ontology_uri}>\r\n\t\r\nWHERE { \r\n\t{\r\n\t\t<{$tmp_iri}> rdfs:subClassOf ?s .\r\n\t\t?s rdfs:label ?o\r\n\t}\r\n\tUNION\r\n\t{\r\n\t\t<{$tmp_iri}> owl:equivalentClass ?s1 .\r\n\t\t?s1 owl:intersectionOf ?s2 .\r\n\t\t?s2 rdf:first ?s .\r\n\t\t?s rdfs:label ?o\r\n\t}\r\n\tUNION\r\n\t{\r\n\t\t<{$tmp_iri}> rdfs:subPropertyOf ?s .\r\n\t\t?s rdfs:label ?o\r\n\t}\r\n\tUNION\r\n\t{\r\n\t\t<{$tmp_iri}> owl:equivalentProperty ?s1 .\r\n\t\t?s1 owl:intersectionOf ?s2 .\r\n\t\t?s2 rdf:first ?s .\r\n\t\t?s rdfs:label ?o\r\n\t}\r\n}"; //print("\n\n<!--\n$querystring\n-->\n\n"); $tmp_results = json_query($querystring); $num_queries++; if (!empty($tmp_results)) { $tmp_iri = $tmp_results[0]['s']; if (!isset($processed_iris[$tmp_iri]) && !isset($included_iris[$tmp_iri]) && !iriImported($tmp_iri)) { $results[$tmp_iri] = $tmp_results[0]['o']; if (!isset($parent_included_iris[$tmp_iri])) { getSupClassAndProperty($ontology_uri, $results, $tmp_iri); } } } }
} else { //process term URIs to be imported and get super classes/properties. $lines = preg_split('/[\\r\\n]+/', trim($term_iris)); foreach ($lines as $line) { if (strpos($line, '#') === 0) { //ignore comments } else { if (strpos($line, ' #') !== false) { $line = trim(substr($line, 0, strpos($line, ' #'))); } $import_term = trim($line); $terms_to_keep[$import_term] = 1; if (!isset($processed_iris[$import_term]) && !isset($included_iris[$import_term])) { $results = array($import_term => 'NA'); if (!isset($parent_included_iris[$import_term])) { getSupClassAndProperty($ontology_uri, $results, $import_term); //error_log("!!!\n", 3, '/tmp/error.log'); foreach ($results as $term_iri => $term_label) { if (!isset($processed_iris[$term_iri])) { $unprocessed_iris[$term_iri] = $term_label; } } } else { if (!isset($processed_iris[$import_term])) { $unprocessed_iris[$import_term] = 'NA'; } } } } } }