| @@ -3,6 +3,9 @@ | ||
| 3 | 3 | class LabelSkosXL extends DataObject | 
| 4 | 4 |  { | 
| 5 | 5 | |
| 6 | + /** | |
| 7 | + * @param Model $model | |
| 8 | + */ | |
| 6 | 9 | public function __construct($model, $resource) | 
| 7 | 10 |      { | 
| 8 | 11 | parent::__construct($model, $resource); | 
| @@ -124,8 +124,8 @@ | ||
| 124 | 124 | */ | 
| 125 | 125 | public function getEnvLang() | 
| 126 | 126 |      { | 
| 127 | - // get language from locale, same as used by gettext, set by Controller | |
| 128 | -       return substr(getenv("LC_ALL"), 0, 2); // @codeCoverageIgnore | |
| 127 | + // get language from locale, same as used by gettext, set by Controller | |
| 128 | +        return substr(getenv("LC_ALL"), 0, 2); // @codeCoverageIgnore | |
| 129 | 129 | } | 
| 130 | 130 | |
| 131 | 131 | /** | 
| @@ -517,13 +517,13 @@ | ||
| 517 | 517 | |
| 518 | 518 | $defaultPropLabel = $this->model->getDefaultSparql()->queryLabel($longUri, ''); | 
| 519 | 519 | |
| 520 | -					if($envLangLabels) { | |
| 521 | - $proplabel = $envLangLabels[$this->getEnvLang()]; | |
| 520 | +          if($envLangLabels) { | |
| 521 | + $proplabel = $envLangLabels[$this->getEnvLang()]; | |
| 522 | 522 |                      } else { | 
| 523 | -						if($defaultPropLabel) { | |
| 524 | - $proplabel = $defaultPropLabel['']; | |
| 525 | - } | |
| 526 | - } | |
| 523 | +            if($defaultPropLabel) { | |
| 524 | + $proplabel = $defaultPropLabel['']; | |
| 525 | + } | |
| 526 | + } | |
| 527 | 527 | } | 
| 528 | 528 | |
| 529 | 529 | // look for superproperties in the current graph | 
| @@ -74,6 +74,7 @@ discard block | ||
| 74 | 74 | * @param Vocabulary $vocab | 
| 75 | 75 | * @param EasyRdf\Resource $resource | 
| 76 | 76 | * @param EasyRdf\Graph $graph | 
| 77 | + * @param string|null $clang | |
| 77 | 78 | */ | 
| 78 | 79 | public function __construct($model, $vocab, $resource, $graph, $clang) | 
| 79 | 80 |      { | 
| @@ -738,6 +739,7 @@ discard block | ||
| 738 | 739 | |
| 739 | 740 | /** | 
| 740 | 741 | * Gets the groups/arrays the concept belongs to. | 
| 742 | + * @param boolean $includeArrays | |
| 741 | 743 | */ | 
| 742 | 744 |      private function getCollections($includeArrays) { | 
| 743 | 745 | $groups = array(); | 
| @@ -30,14 +30,14 @@ | ||
| 30 | 30 | $url = $baseurl . "$vocid/"; | 
| 31 | 31 |          } else { | 
| 32 | 32 | |
| 33 | -   	        if ($localname !== $uri && $localname === urlencode($localname)) { | |
| 34 | - // the URI can be shortened | |
| 33 | +              if ($localname !== $uri && $localname === urlencode($localname)) { | |
| 34 | + // the URI can be shortened | |
| 35 | 35 | $url = $baseurl . "$vocid/page/$localname"; | 
| 36 | 36 |              } else { | 
| 37 | 37 | // must use full URI | 
| 38 | -   	            $query = http_build_query(array('uri'=>$uri)); | |
| 38 | +                  $query = http_build_query(array('uri'=>$uri)); | |
| 39 | 39 | $url = $baseurl . "$vocid/page/?" . $query; | 
| 40 | - } | |
| 40 | + } | |
| 41 | 41 | } | 
| 42 | 42 | $this->redirect303($url); | 
| 43 | 43 | } | 
| @@ -169,6 +169,8 @@ | ||
| 169 | 169 | |
| 170 | 170 | /** | 
| 171 | 171 | * Return the mapping as a JSKOS-compatible array. | 
| 172 | + * @param string $lang | |
| 173 | + * @param string $hrefLink | |
| 172 | 174 | * @return array | 
| 173 | 175 | */ | 
| 174 | 176 | public function asJskos($queryExVocabs = true, $lang = null, $hrefLink = null) | 
| @@ -266,6 +266,7 @@ discard block | ||
| 266 | 266 | |
| 267 | 267 | /** | 
| 268 | 268 | * Returns skosmos:marcSourcecode value set in config.ttl. | 
| 269 | + * @param string $lang | |
| 269 | 270 | * @return string marcsource name | 
| 270 | 271 | */ | 
| 271 | 272 | public function getMarcSourceCode($lang = null) | 
| @@ -275,7 +276,7 @@ discard block | ||
| 275 | 276 | |
| 276 | 277 | /** | 
| 277 | 278 | * Returns a boolean value set in the config.ttl config. | 
| 278 | - * @return array array of concept class URIs (can be empty) | |
| 279 | + * @return string[] array of concept class URIs (can be empty) | |
| 279 | 280 | */ | 
| 280 | 281 | public function getIndexClasses() | 
| 281 | 282 |      { | 
| @@ -284,7 +285,7 @@ discard block | ||
| 284 | 285 | |
| 285 | 286 | /** | 
| 286 | 287 | * Returns skosmos:externalProperty values set in the config.ttl config. | 
| 287 | - * @return array array of external property URIs (can be empty) | |
| 288 | + * @return string[] array of external property URIs (can be empty) | |
| 288 | 289 | */ | 
| 289 | 290 | public function getExtProperties() | 
| 290 | 291 |      { | 
| @@ -410,6 +411,7 @@ discard block | ||
| 410 | 411 | |
| 411 | 412 | /** | 
| 412 | 413 | * Returns the vocabulary dc:type value(s) with their labels and uris, if set in the vocabulary configuration. | 
| 414 | + * @param string $lang | |
| 413 | 415 | * @return array of objects or an empty array | 
| 414 | 416 | */ | 
| 415 | 417 | public function getTypes($lang = null) | 
| @@ -23,6 +23,7 @@ discard block | ||
| 23 | 23 | |
| 24 | 24 | /** | 
| 25 | 25 | * Initializes the Model object. | 
| 26 | + * @param Model $model | |
| 26 | 27 | */ | 
| 27 | 28 | public function __construct($model) | 
| 28 | 29 |      { | 
| @@ -290,7 +291,7 @@ discard block | ||
| 290 | 291 | * Sends HTTP headers. Simply calls PHP built-in header function. But being | 
| 291 | 292 | * a function here, it can easily be tested/mocked. | 
| 292 | 293 | * | 
| 293 | - * @param $header string header to be sent | |
| 294 | + * @param string $header string header to be sent | |
| 294 | 295 | */ | 
| 295 | 296 | protected function sendHeader($header) | 
| 296 | 297 |      { | 
| @@ -152,7 +152,7 @@ discard block | ||
| 152 | 152 | |
| 153 | 153 | /** | 
| 154 | 154 | * Returns the graph instance | 
| 155 | - * @return object EasyRDF graph instance. | |
| 155 | + * @return string|null EasyRDF graph instance. | |
| 156 | 156 | */ | 
| 157 | 157 |      public function getGraph() { | 
| 158 | 158 | return $this->graph; | 
| @@ -287,6 +287,7 @@ discard block | ||
| 287 | 287 | /** | 
| 288 | 288 | * Counts the number of concepts in a easyRDF graph with a specific language. | 
| 289 | 289 | * @param array $langs Languages to query for | 
| 290 | + * @param string[] $classes | |
| 290 | 291 | * @return Array containing count of concepts for each language and property. | 
| 291 | 292 | */ | 
| 292 | 293 |      public function countLangConcepts($langs, $classes = null) { | 
| @@ -471,7 +472,7 @@ discard block | ||
| 471 | 472 | * Returns information (as a graph) for one or more concept URIs | 
| 472 | 473 | * @param mixed $uris concept URI (string) or array of URIs | 
| 473 | 474 | * @param string|null $arrayClass the URI for thesaurus array class, or null if not used | 
| 474 | - * @param \Vocabulary[]|null $vocabs vocabularies to target | |
| 475 | + * @param Vocabulary[] $vocabs vocabularies to target | |
| 475 | 476 | * @return \EasyRdf\Graph | 
| 476 | 477 | */ | 
| 477 | 478 |      public function queryConceptInfoGraph($uris, $arrayClass = null, $vocabs = array()) { | 
| @@ -487,7 +488,7 @@ discard block | ||
| 487 | 488 | |
| 488 | 489 | /** | 
| 489 | 490 | * Returns information (as an array of Concept objects) for one or more concept URIs | 
| 490 | - * @param mixed $uris concept URI (string) or array of URIs | |
| 491 | + * @param string $uris concept URI (string) or array of URIs | |
| 491 | 492 | * @param string|null $arrayClass the URI for thesaurus array class, or null if not used | 
| 492 | 493 | * @param \Vocabulary[] $vocabs vocabularies to target | 
| 493 | 494 | * @param string|null $clang content language | 
| @@ -705,7 +706,7 @@ discard block | ||
| 705 | 706 | |
| 706 | 707 | /** | 
| 707 | 708 | * Generate a VALUES clause for limiting the targeted graphs. | 
| 708 | - * @param Vocabulary[]|null $vocabs array of Vocabulary objects to target | |
| 709 | + * @param Vocabulary[] $vocabs array of Vocabulary objects to target | |
| 709 | 710 | * @return string VALUES clause, or "" if not necessary to limit | 
| 710 | 711 | */ | 
| 711 | 712 |      protected function formatValuesGraph($vocabs) { | 
| @@ -887,6 +888,7 @@ discard block | ||
| 887 | 888 | * @param string $searchLang language code used for matching labels (null means any language) | 
| 888 | 889 |       * @param string[] $props properties to target e.g. array('skos:prefLabel','skos:altLabel') | 
| 889 | 890 | * @param boolean $unique restrict results to unique concepts (default: false) | 
| 891 | + * @param string $filterGraph | |
| 890 | 892 | * @return string sparql query | 
| 891 | 893 | */ | 
| 892 | 894 | protected function generateConceptSearchQueryInner($term, $lang, $searchLang, $props, $unique, $filterGraph) | 
| @@ -1161,6 +1163,7 @@ discard block | ||
| 1161 | 1163 | /** | 
| 1162 | 1164 | * Generates sparql query clauses used for creating the alphabetical index. | 
| 1163 | 1165 | * @param string $letter the letter (or special class) to search for | 
| 1166 | + * @param string $lang | |
| 1164 | 1167 | * @return array of sparql query clause strings | 
| 1165 | 1168 | */ | 
| 1166 | 1169 |      private function formatFilterConditions($letter, $lang) { | 
| @@ -1328,6 +1331,7 @@ discard block | ||
| 1328 | 1331 | /** | 
| 1329 | 1332 | * Query for the first characters (letter or otherwise) of the labels in the particular language. | 
| 1330 | 1333 | * @param string $lang language | 
| 1334 | + * @param string[] $classes | |
| 1331 | 1335 | * @return array array of characters | 
| 1332 | 1336 | */ | 
| 1333 | 1337 |      public function queryFirstCharacters($lang, $classes = null) { | 
| @@ -1650,7 +1654,7 @@ discard block | ||
| 1650 | 1654 | /** | 
| 1651 | 1655 | * Query a single transitive property of a concept. | 
| 1652 | 1656 | * @param string $uri | 
| 1653 | - * @param array $props the property/properties. | |
| 1657 | + * @param string[] $props the property/properties. | |
| 1654 | 1658 | * @param string $lang | 
| 1655 | 1659 | * @param string $fallbacklang language to use if label is not available in the preferred language | 
| 1656 | 1660 | * @param integer $limit | 
| @@ -65,7 +65,7 @@ discard block | ||
| 65 | 65 | * | 
| 66 | 66 | * @param string $query | 
| 67 | 67 | * @return string | 
| 68 | - */ | |
| 68 | + */ | |
| 69 | 69 | protected function generateQueryPrefixes($query) | 
| 70 | 70 |      { | 
| 71 | 71 | // Check for undefined prefixes | 
| @@ -233,9 +233,9 @@ discard block | ||
| 233 | 233 | $gcl = $this->graphClause; | 
| 234 | 234 |          $classes = ($classes) ? $classes : array('http://www.w3.org/2004/02/skos/core#Concept'); | 
| 235 | 235 | |
| 236 | -	$quote_string = function($val) { return "'$val'"; }; | |
| 237 | - $quoted_values = array_map($quote_string, $langs); | |
| 238 | -	$langFilter = "FILTER(?lang IN (" . implode(',', $quoted_values) . "))"; | |
| 236 | +  $quote_string = function($val) { return "'$val'"; }; | |
| 237 | + $quoted_values = array_map($quote_string, $langs); | |
| 238 | +  $langFilter = "FILTER(?lang IN (" . implode(',', $quoted_values) . "))"; | |
| 239 | 239 | |
| 240 | 240 |          $values = $this->formatValues('?type', $classes, 'uri'); | 
| 241 | 241 |          $valuesProp = $this->formatValues('?prop', $props, null); | 
| @@ -962,7 +962,7 @@ discard block | ||
| 962 | 962 | return $query; | 
| 963 | 963 | } | 
| 964 | 964 | /** | 
| 965 | - * This function can be overwritten in other SPARQL dialects for the possibility of handling the different language clauses | |
| 965 | + * This function can be overwritten in other SPARQL dialects for the possibility of handling the different language clauses | |
| 966 | 966 | * @param string $lang | 
| 967 | 967 | * @return string formatted language clause | 
| 968 | 968 | */ | 
| @@ -1911,7 +1911,7 @@ discard block | ||
| 1911 | 1911 | |
| 1912 | 1912 | /** | 
| 1913 | 1913 | * Generates a sparql query for finding the hierarchy for a concept. | 
| 1914 | - * A concept may be a top concept in multiple schemes, returned as a single whitespace-separated literal. | |
| 1914 | + * A concept may be a top concept in multiple schemes, returned as a single whitespace-separated literal. | |
| 1915 | 1915 | * @param string $uri concept uri. | 
| 1916 | 1916 | * @param string $lang | 
| 1917 | 1917 | * @param string $fallback language to use if label is not available in the preferred language | 
| @@ -1988,10 +1988,10 @@ discard block | ||
| 1988 | 1988 | $ret[$uri]['exact'] = $row->exact->getUri(); | 
| 1989 | 1989 | } | 
| 1990 | 1990 |              if (isset($row->tops)) { | 
| 1991 | -               $topConceptsList=explode(" ", $row->tops->getValue()); | |
| 1992 | - // sort to guarantee an alphabetical ordering of the URI | |
| 1993 | - sort($topConceptsList); | |
| 1994 | - $ret[$uri]['tops'] = $topConceptsList; | |
| 1991 | +                $topConceptsList=explode(" ", $row->tops->getValue()); | |
| 1992 | + // sort to guarantee an alphabetical ordering of the URI | |
| 1993 | + sort($topConceptsList); | |
| 1994 | + $ret[$uri]['tops'] = $topConceptsList; | |
| 1995 | 1995 | } | 
| 1996 | 1996 |              if (isset($row->children)) { | 
| 1997 | 1997 |                  if (!isset($ret[$uri]['narrower'])) { | 
| @@ -575,9 +575,9 @@ discard block | ||
| 575 | 575 | $vocid = $request->getVocab()->getId(); | 
| 576 | 576 |                  return $this->returnError('404', 'Not Found', "No download source URL known for vocabulary $vocid in language $dataLang"); | 
| 577 | 577 | } | 
| 578 | -		} else { | |
| 578 | +    } else { | |
| 579 | 579 |              header("Location: " . $urls[$format]); | 
| 580 | - } | |
| 580 | + } | |
| 581 | 581 | } | 
| 582 | 582 | |
| 583 | 583 |      private function returnDataResults($results, $format) { | 
| @@ -1100,15 +1100,15 @@ discard block | ||
| 1100 | 1100 |          foreach($changeList as $conceptInfo) { | 
| 1101 | 1101 |              if (array_key_exists('date', $conceptInfo)) { | 
| 1102 | 1102 | $simpleChangeList[] = array( 'uri' => $conceptInfo['uri'], | 
| 1103 | - 'prefLabel' => $conceptInfo['prefLabel'], | |
| 1104 | -                                               'date' => $conceptInfo['date']->format("Y-m-d\TH:i:sO") ); | |
| 1103 | + 'prefLabel' => $conceptInfo['prefLabel'], | |
| 1104 | +                                                'date' => $conceptInfo['date']->format("Y-m-d\TH:i:sO") ); | |
| 1105 | 1105 | } | 
| 1106 | 1106 | } | 
| 1107 | 1107 | return $this->returnJson(array_merge_recursive($this->context, | 
| 1108 | 1108 |                                                          array('@context' => array( '@language' => $request->getLang(), | 
| 1109 | - 'prefLabel' => 'skos:prefLabel', | |
| 1110 | - 'xsd' => 'http://www.w3.org/2001/XMLSchema#', | |
| 1111 | - 'date' => array( '@id' => 'http://purl.org/dc/terms/date', '@type' => 'http://www.w3.org/2001/XMLSchema#dateTime') ) | |
| 1109 | + 'prefLabel' => 'skos:prefLabel', | |
| 1110 | + 'xsd' => 'http://www.w3.org/2001/XMLSchema#', | |
| 1111 | + 'date' => array( '@id' => 'http://purl.org/dc/terms/date', '@type' => 'http://www.w3.org/2001/XMLSchema#dateTime') ) | |
| 1112 | 1112 | ), | 
| 1113 | 1113 |                                                          array('changeList' => $simpleChangeList))); | 
| 1114 | 1114 | |
| @@ -97,6 +97,9 @@ discard block | ||
| 97 | 97 | return $this->returnJson($ret); | 
| 98 | 98 | } | 
| 99 | 99 | |
| 100 | + /** | |
| 101 | + * @param Request $request | |
| 102 | + */ | |
| 100 | 103 | private function constructSearchParameters($request) | 
| 101 | 104 |      { | 
| 102 | 105 | $parameters = new ConceptSearchParameters($request, $this->model->getConfig(), true); | 
| @@ -112,6 +115,10 @@ discard block | ||
| 112 | 115 | return $parameters; | 
| 113 | 116 | } | 
| 114 | 117 | |
| 118 | + /** | |
| 119 | + * @param Request $request | |
| 120 | + * @param ConceptSearchParameters $parameters | |
| 121 | + */ | |
| 115 | 122 | private function transformSearchResults($request, $results, $parameters) | 
| 116 | 123 |      { | 
| 117 | 124 | // before serializing to JSON, get rid of the Vocabulary object that came with each resource | 
| @@ -420,6 +427,10 @@ discard block | ||
| 420 | 427 | return $this->returnJson($ret); | 
| 421 | 428 | } | 
| 422 | 429 | |
| 430 | + /** | |
| 431 | + * @param string $label | |
| 432 | + * @param string $lang | |
| 433 | + */ | |
| 423 | 434 | private function findLookupHits($results, $label, $lang) | 
| 424 | 435 |      { | 
| 425 | 436 | $hits = array(); | 
| @@ -481,6 +492,9 @@ discard block | ||
| 481 | 492 | return $hits; | 
| 482 | 493 | } | 
| 483 | 494 | |
| 495 | + /** | |
| 496 | + * @param string $lang | |
| 497 | + */ | |
| 484 | 498 | private function transformLookupResults($lang, $hits) | 
| 485 | 499 |      { | 
| 486 | 500 |          if (sizeof($hits) == 0) { | 
| @@ -555,6 +569,9 @@ discard block | ||
| 555 | 569 | return $this->returnJson($ret); | 
| 556 | 570 | } | 
| 557 | 571 | |
| 572 | + /** | |
| 573 | + * @param Request $request | |
| 574 | + */ | |
| 558 | 575 |      private function redirectToVocabData($request) { | 
| 559 | 576 | $urls = $request->getVocab()->getConfig()->getDataURLs(); | 
| 560 | 577 |          if (sizeof($urls) == 0) { | 
| @@ -580,6 +597,10 @@ discard block | ||
| 580 | 597 | } | 
| 581 | 598 | } | 
| 582 | 599 | |
| 600 | + /** | |
| 601 | + * @param string $results | |
| 602 | + * @param string $format | |
| 603 | + */ | |
| 583 | 604 |      private function returnDataResults($results, $format) { | 
| 584 | 605 |          if ($format == 'application/ld+json' || $format == 'application/json') { | 
| 585 | 606 | // further compact JSON-LD document using a context | 
| @@ -791,6 +812,12 @@ discard block | ||
| 791 | 812 | return $this->returnJson($ret); | 
| 792 | 813 | } | 
| 793 | 814 | |
| 815 | + /** | |
| 816 | + * @param string $uri | |
| 817 | + * @param string $lang | |
| 818 | + * @param string $propname | |
| 819 | + * @param string $propuri | |
| 820 | + */ | |
| 794 | 821 | private function transformPropertyResults($uri, $lang, $objects, $propname, $propuri) | 
| 795 | 822 |      { | 
| 796 | 823 | $results = array(); | 
| @@ -805,6 +832,14 @@ discard block | ||
| 805 | 832 | ); | 
| 806 | 833 | } | 
| 807 | 834 | |
| 835 | + /** | |
| 836 | + * @param string $uri | |
| 837 | + * @param string $lang | |
| 838 | + * @param string $tpropname | |
| 839 | + * @param string $tpropuri | |
| 840 | + * @param string $dpropname | |
| 841 | + * @param string $dpropuri | |
| 842 | + */ | |
| 808 | 843 | private function transformTransitivePropertyResults($uri, $lang, $objects, $tpropname, $tpropuri, $dpropname, $dpropuri) | 
| 809 | 844 |      { | 
| 810 | 845 | $results = array(); | 
| @@ -1095,6 +1130,7 @@ discard block | ||
| 1095 | 1130 | * @param Request $request | 
| 1096 | 1131 | * @param int $offset starting index offset | 
| 1097 | 1132 | * @param int $limit maximum number of concepts to return | 
| 1133 | + * @param string $prop | |
| 1098 | 1134 | * @return object json-ld wrapped list of changed concepts | 
| 1099 | 1135 | */ | 
| 1100 | 1136 | private function changedConcepts($request, $prop, $offset, $limit) |