function getLoadedOntologies($structwsf, $queryExtension = NULL) { $ontologyRead = new OntologyReadQuery($structwsf); $getLoadedOntologiesFunction = new GetLoadedOntologiesFunction(); $getLoadedOntologiesFunction->modeDescriptions(); $ontologyRead->getLoadedOntologies($getLoadedOntologiesFunction)->send($queryExtension !== NULL ? $queryExtension : NULL); if ($ontologyRead->isSuccessful()) { $resultset = $ontologyRead->getResultset()->getResultset(); $ontologies = array('local' => array(), 'reference' => array(), 'admin' => array()); foreach ($resultset['unspecified'] as $uri => $ontology) { $onto = array('uri' => '', 'label' => '', 'modified' => false); $ontologyType = 'local'; if (isset($ontology['http://purl.org/ontology/sco#ontologyType'])) { switch ($ontology['http://purl.org/ontology/sco#ontologyType'][0]['uri']) { case "http://purl.org/ontology/sco#referenceOntology": $ontologyType = 'reference'; break; case "http://purl.org/ontology/sco#administrativeOntology": $ontologyType = 'admin'; break; case "http://purl.org/ontology/sco#localOntology": $ontologyType = 'local'; break; } } $onto['uri'] = $uri; $onto['label'] = $ontology['prefLabel']; if (isset($ontology['http://purl.org/ontology/wsf#ontologyModified'])) { $onto['modified'] = TRUE; } array_push($ontologies[$ontologyType], $onto); } return $ontologies; } else { $debugFile = md5(microtime()) . '.error'; file_put_contents('/tmp/' . $debugFile, var_export($ontologyRead, TRUE)); @cecho('Can\'t get loaded ontologies. ' . $ontologyRead->getStatusMessage() . $ontologyRead->getStatusMessageDescription() . "\nDebug file: /tmp/{$debugFile}\n", 'RED'); exit(1); } }