public function getAnnotations($p_array) { global $wgServer, $wgScript, $smwgWebserviceUser, $smwgWebservicePassword, $smwgDeployVersion; $client = TSConnection::getConnector(); $client->connect(); try { global $smwgTripleStoreGraph; $title = str_replace($wgServer . $wgScript, '', $p_array[0]); if ($title[0] == '/') { $title = substr($title, 1); } $title = Title::newFromURL($title); $instanceURI = TSHelper::getUriFromTitle($title); // actually limit and offset is not used $limit = isset($p_array[1]) && is_numeric($p_array[1]) ? $p_array[1] : 500; $partition = isset($p_array[2]) && is_numeric($p_array[2]) ? $p_array[2] : 0; $offset = $partition * $limit; $metadata = isset($p_array[3]) ? $p_array[3] : false; $metadataRequest = $metadata != false ? "|metadata={$metadata}" : ""; $response = $client->query("SELECT ?p ?o WHERE { <{$instanceURI}> ?p ?o. }", "limit={$limit}|offset={$offset}{$metadataRequest}"); $annotations = array(); $this->parseAnnotations($response, $annotations); } catch (Exception $e) { return "Internal error: " . $e->getMessage(); } return SMWOntologyBrowserXMLGenerator::encapsulateAsAnnotationList($annotations, Title::newFromText("dummy")); }