function addMetadata($data, &$Config, $types, $facets, $namespaces) { $datasetUri = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME']) . '/'; $documentUri = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $documentUri = array_shift(explode('?', $documentUri)); if ($query = getQuery()) { $documentUri .= '?' . $query; } if (isset($data[$documentUri])) { $documentUri .= '&_output=turtle'; } $DocumentGraph = new Graph($documentUri, $data); $count = 1; foreach ($data as $uri => $props) { $prop = rdf_ns . '_' . $count++; $DocumentGraph->setResource($prop, $uri); } if ($documentUri != $datasetUri) { $DocumentGraph->setResource(void_ns . 'inDataset', $datasetUri); } else { $DocumentGraph->setResource(rdf_ns . 'type', void_ns . 'Dataset'); foreach ($types as $type => $entities) { $classPartition = $DocumentGraph->setResource(void_ns . 'classPartition', $datasetUri . '?rdf:type=' . curie($type)); $classPartition->setResource(void_ns . 'class', $type); $classPartition->setLiteral(void_ns . 'entities', $entities); } foreach ($namespaces as $ns => $n) { $vocabUri = preg_replace('@#$@', '', $ns); $DocumentGraph->setResource(void_ns . 'vocabulary', $vocabUri); } } if (!empty($Config->license)) { $DocumentGraph->setResource(dcterms_ns . 'license', $Config->license); } if (!empty($Config->name)) { $DocumentGraph->setLiteral(dcterms_ns . 'title', $Config->name); } return $DocumentGraph->getIndex(); }