/** This function modifies the $endpoint_arr and adds each of the statistics found here https://github.com/bio2rdf/bio2rdf-scripts/wiki/Bio2RDF-Dataset-Metrics to the array **/ function retrieveStatistics(&$endpoint_arr) { if (count($endpoint_arr)) { foreach ($endpoint_arr as $name => $details) { $endpoint_url = $details["endpoint_url"]; $graph_uri = $details["graph_uri"]; if (strlen($endpoint_url) != 0 && strlen($graph_uri) != 0) { //now retrieve each of the stats //numOfTriples $numOfTriplesJson = trim(@file_get_contents(q1($endpoint_url, $graph_uri))); $endpoint_arr[$name]["triples"] = getNumOfTriples($numOfTriplesJson); //numOfSubjects $numOfSubjectsJson = trim(@file_get_contents(q2($endpoint_url, $graph_uri))); $endpoint_arr[$name]["unique_subjects"] = getNumOfSubjects($numOfSubjectsJson); //numOfPredicates $numOfPredicatesJson = trim(@file_get_contents(q3($endpoint_url, $graph_uri))); $endpoint_arr[$name]["unique_predicates"] = getNumOfPredicates($numOfPredicatesJson); //numOfUniqueObjects $numOfObjectsJson = trim(@file_get_contents(q4($endpoint_url, $graph_uri))); $endpoint_arr[$name]["unique_objects"] = getNumOfObjects($numOfObjectsJson); //numOfTypes $numOfTypesJson = trim(@file_get_contents(q5($endpoint_url, $graph_uri))); $endpoint_arr[$name]["unique_types"] = getNumOfTypes($numOfTypesJson); //unique predicate-object links and their frequencies $numOfPredObjectFreqsJson = trim(@file_get_contents(q6($endpoint_url, $graph_uri))); $endpoint_arr[$name]["predicate_object_links"] = getPredObjFreq($numOfPredObjectFreqsJson); //unique predicate-literal links and their frequencies $numOfUniquePredicateLiteralLinksandFreqsJson = trim(@file_get_contents(q7($endpoint_url, $graph_uri))); $endpoint_arr[$name]["predicate_literals"] = getPredLitLinks($numOfUniquePredicateLiteralLinksandFreqsJson); //unique subject-predicate-unique object links and their frequencies $numOfSubjectPredicateUniqueObjectJson = trim(@file_get_contents(q8($endpoint_url, $graph_uri))); $endpoint_arr[$name]["subject_count_predicate_object_count"] = getSubPredObjLinks($numOfSubjectPredicateUniqueObjectJson); //unique subject-predicate-unique literal links and their frequencies $numOfSubjectPredUniqueLitJson = trim(@file_get_contents(q9($endpoint_url, $graph_uri))); $endpoint_arr[$name]["subject_count_predicate_literal_count"] = getSubPredLitLinks($numOfSubjectPredUniqueLitJson); //unique subject type-predicate-object type links and their frequencies $numOfSubjectTypePredicateObjectJson = trim(@file_get_contents(q10($endpoint_url, $graph_uri))); $endpoint_arr[$name]["subject_type_predicate_object_type"] = getSubTypePredObjType($numOfSubjectTypePredicateObjectJson); } } } return $endpoint_arr; }
<?php // It might possible to reduce the loop conditions down further function q9($number) { for ($c = 2; $c < $number; ++$c) { $max = $number - $c; for ($b = 1; $b < $max; ++$b) { $a = $number - $b - $c; if ($a * $a + $b * $b === $c * $c) { return $a * $b * $c; } } } } echo q9(1000);
/** This function modifies the $endpoint_arr and adds each of the statistics found here https://github.com/bio2rdf/bio2rdf-scripts/wiki/Bio2RDF-Dataset-Metrics to the array **/ function retrieveStatistics(&$endpoint_arr) { $warn = ""; if (count($endpoint_arr)) { foreach ($endpoint_arr as $name => $details) { $endpoint_url = $details["endpoint_url"]; $graph_uri = $details["graph_uri"]; if (strlen($endpoint_url) != 0 && strlen($graph_uri) != 0) { //now retrieve each of the stats //nsns counts $nsnsJSON = trim(@file_get_contents(nsQ($endpoint_url, $graph_uri))); $endpoint_arr[$name]["nsnscounts"] = getNSNSCounts($nsnsJSON); //numOfTriples $numOfTriplesJson = trim(@file_get_contents(q1($endpoint_url, $graph_uri))); $endpoint_arr[$name]["triples"] = getNumOfTriples($numOfTriplesJson); //get the date $dateJson = trim(@file_get_contents(getDatasetDateQuery($endpoint_url))); $endpoint_arr[$name]['date'] = getDate2($dateJson); //numOfSubjects $numOfSubjectsJson = trim(@file_get_contents(q2($endpoint_url, $graph_uri))); $endpoint_arr[$name]["unique_subjects"] = getNumOfSubjects($numOfSubjectsJson); //numOfPredicates $numOfPredicatesJson = trim(@file_get_contents(q3($endpoint_url, $graph_uri))); $endpoint_arr[$name]["unique_predicates"] = getNumOfPredicates($numOfPredicatesJson); //numOfUniqueObjects $numOfObjectsJson = trim(@file_get_contents(q4($endpoint_url, $graph_uri))); $endpoint_arr[$name]["unique_objects"] = getNumOfObjects($numOfObjectsJson); //numOfTypes $numOfTypesJson = trim(@file_get_contents(q5($endpoint_url, $graph_uri))); $endpoint_arr[$name]["unique_types"] = getNumOfTypes($numOfTypesJson); //unique predicate-object links and their frequencies $numOfPredObjectFreqsJson = trim(@file_get_contents(q6($endpoint_url, $graph_uri))); $endpoint_arr[$name]["predicate_object_links"] = getPredObjFreq($numOfPredObjectFreqsJson); //unique predicate-literal links and their frequencies $numOfUniquePredicateLiteralLinksandFreqsJson = trim(@file_get_contents(q7($endpoint_url, $graph_uri))); $endpoint_arr[$name]["predicate_literals"] = getPredLitLinks($numOfUniquePredicateLiteralLinksandFreqsJson); //unique subject-predicate-unique object links and their frequencies $numOfSubjectPredicateUniqueObjectJson = trim(@file_get_contents(q8($endpoint_url, $graph_uri))); $endpoint_arr[$name]["subject_count_predicate_object_count"] = getSubPredObjLinks($numOfSubjectPredicateUniqueObjectJson); //unique subject-predicate-unique literal links and their frequencies $numOfSubjectPredUniqueLitJson = trim(@file_get_contents(q9($endpoint_url, $graph_uri))); $endpoint_arr[$name]["subject_count_predicate_literal_count"] = getSubPredLitLinks($numOfSubjectPredUniqueLitJson); //unique subject type-predicate-object type links and their frequencies $numOfSubjectTypePredicateObjectJson = trim(@file_get_contents(q10($endpoint_url, $graph_uri))); $endpoint_arr[$name]["subject_type_predicate_object_type"] = getSubTypePredObjType($numOfSubjectTypePredicateObjectJson); } else { $warn .= "WARNING :: Endpoint " . $name . " does not have all of required information! (missing either the endpoint or graph uri!)!\n"; } } if (strlen($warn)) { echo $warn; } } return $endpoint_arr; }