public function getContents() { $query = new Erfurt_Sparql_SimpleQuery(); $results = false; $similars = array(); $typesArr = array(); $types = $this->_getTypes(); $url = new OntoWiki_Url(array('route' => 'properties'), array('r')); $listUrl = new OntoWiki_Url(array('route' => 'instances'), array()); $titleHelper = new OntoWiki_Model_TitleHelper($this->_owApp->selectedModel); $titleHelper->addResources($types); foreach ($types as $typeUri) { if (!array_key_exists($typeUri, $typesArr)) { $typesArr[$typeUri] = $typeUri; } $query->resetInstance()->setProloguePart('SELECT DISTINCT ?uri')->setWherePart('WHERE { ?uri a <' . $typeUri . '> . FILTER (!sameTerm(?uri, <' . (string) $this->_owApp->selectedResource . '>)) FILTER (isURI(?uri)) }')->setLimit(OW_SHOW_MAX + 1); if ($instances = $this->_owApp->selectedModel->sparqlQuery($query)) { $results = true; $url->setParam('r', $typeUri, true); // create properties url for the class $typesArr[$typeUri] = array('uri' => $typeUri, 'url' => (string) $url, 'title' => $titleHelper->getTitle($typeUri, $this->_lang), 'has_more' => false); // has_more is used for the dots if (count($instances) > OW_SHOW_MAX) { $typesArr[$typeUri]['has_more'] = true; $instances = array_splice($instances, 0, OW_SHOW_MAX); } $instTitleHelper = new OntoWiki_Model_TitleHelper($this->_owApp->selectedModel); $instTitleHelper->addResources($instances, 'uri'); $conf['filter'][0] = array('mode' => 'rdfsclass', 'rdfsclass' => $typeUri, 'action' => 'add'); // the list url is used for the context menu link $listUrl->setParam('instancesconfig', json_encode($conf), true); $listUrl->setParam('init', true, true); $typesArr[$typeUri]['listUrl'] = (string) $listUrl; foreach ($instances as $row) { $instanceUri = $row['uri']; // set URL $url->setParam('r', $instanceUri, true); if (!array_key_exists($typeUri, $similars)) { $similars[$typeUri] = array(); } // add instance $similars[$typeUri][$instanceUri] = array('uri' => $instanceUri, 'title' => $instTitleHelper->getTitle($instanceUri, $this->_lang), 'url' => (string) $url); } } } $this->view->types = $typesArr; $this->view->similars = $similars; if (!$results) { $this->view->message = 'No matches.'; } return $this->render('similarinstances'); }
/** * Returns the content for the model list. */ public function getContents() { $models = array(); $selectedModel = $this->_owApp->selectedModel ? $this->_owApp->selectedModel->getModelIri() : null; $lang = $this->_config->languages->locale; $titleHelper = new OntoWiki_Model_TitleHelper(); $titleHelper->addResources(array_keys($this->graphUris)); $useGraphUriAsLink = false; if (isset($this->_privateConfig->useGraphUriAsLink) && (bool) $this->_privateConfig->useGraphUriAsLink) { $useGraphUriAsLink = true; } foreach ($this->graphUris as $graphUri => $true) { $linkUrl = $this->_config->urlBase . 'model/select/?m=' . urlencode($graphUri); if ($useGraphUriAsLink) { if (isset($this->_config->vhosts)) { $vHostsArray = $this->_config->vhosts->toArray(); foreach ($vHostsArray as $vHostUri) { if (strpos($graphUri, $vHostUri) !== false) { // match $linkUrl = $graphUri; break; } } } } $temp = array(); $temp['url'] = $linkUrl; $temp['graphUri'] = $graphUri; $temp['selected'] = $selectedModel == $graphUri ? 'selected' : ''; // use URI if no title exists $label = $titleHelper->getTitle($graphUri, $lang); $temp['label'] = !empty($label) ? $label : $graphUri; $temp['backendName'] = $true; $models[] = $temp; } $content = $this->render('modellist', $models, 'models'); return $content; }
/** * @desc get the titles for a given array of resources * * @param string modelIri * @param array resources * * @return array An associative array of resources and their titles */ public function getTitles($modelIri, $resources) { // ["http://pfarrerbuch.comiles.eu/sachsen/"] $resources = json_decode($resources); $model = $this->_store->getModel($modelIri); $titleHelper = new OntoWiki_Model_TitleHelper($model, $this->_store); $titleHelper->addResources($resources); $titles = array(); foreach ($resources as $resourceUri) { $titles[$resourceUri] = $titleHelper->getTitle($resourceUri); } return $titles; }
/** * Displays all preoperties and values for a resource, denoted by parameter */ public function propertiesAction() { $this->_addLastModifiedHeader(); $store = $this->_owApp->erfurt->getStore(); $graph = $this->_owApp->selectedModel; $resource = $this->_owApp->selectedResource; $navigation = $this->_owApp->navigation; $translate = $this->_owApp->translate; // add export formats to resource menu $resourceMenu = OntoWiki_Menu_Registry::getInstance()->getMenu('resource'); $menu = new OntoWiki_Menu(); $menu->setEntry('Resource', $resourceMenu); $event = new Erfurt_Event('onCreateMenu'); $event->menu = $resourceMenu; $event->resource = $this->_owApp->selectedResource; $event->model = $this->_owApp->selectedModel; $event->trigger(); $event = new Erfurt_Event('onPropertiesAction'); $event->uri = (string) $resource; $event->graph = $this->_owApp->selectedModel->getModelUri(); $event->trigger(); // Give plugins a chance to add entries to the menu $this->view->placeholder('main.window.menu')->set($menu->toArray(false, true)); $title = $resource->getTitle($this->_config->languages->locale) ? $resource->getTitle($this->_config->languages->locale) : OntoWiki_Utils::contractNamespace((string) $resource); $windowTitle = sprintf($translate->_('Properties of %1$s'), $title); $this->view->placeholder('main.window.title')->set($windowTitle); if (!empty($resource)) { $event = new Erfurt_Event('onPreTabsContentAction'); $event->uri = (string) $resource; $result = $event->trigger(); if ($result) { $this->view->preTabsContent = $result; } $event = new Erfurt_Event('onPrePropertiesContentAction'); $event->uri = (string) $resource; $result = $event->trigger(); if ($result) { $this->view->prePropertiesContent = $result; } $model = new OntoWiki_Model_Resource($store, $graph, (string) $resource); $values = $model->getValues(); $predicates = $model->getPredicates(); // new trigger onPropertiesActionData to work with data (reorder with plugin) $event = new Erfurt_Event('onPropertiesActionData'); $event->uri = (string) $resource; $event->predicates = $predicates; $event->values = $values; $result = $event->trigger(); if ($result) { $predicates = $event->predicates; $values = $event->values; } $titleHelper = new OntoWiki_Model_TitleHelper($graph); // add graphs $graphs = array_keys($predicates); $titleHelper->addResources($graphs); // set RDFa widgets update info for editable graphs and other graph info $graphInfo = array(); $editableFlags = array(); foreach ($graphs as $g) { $graphInfo[$g] = $titleHelper->getTitle($g, $this->_config->languages->locale); if ($this->_erfurt->getAc()->isModelAllowed('edit', $g)) { $editableFlags[$g] = true; $this->view->placeholder('update')->append(array('sourceGraph' => $g, 'queryEndpoint' => $this->_config->urlBase . 'sparql/', 'updateEndpoint' => $this->_config->urlBase . 'update/')); } else { $editableFlags[$g] = false; } } $this->view->graphs = $graphInfo; $this->view->editableFlags = $editableFlags; $this->view->values = $values; $this->view->predicates = $predicates; $this->view->resourceUri = (string) $resource; $this->view->graphUri = $graph->getModelIri(); $this->view->graphBaseUri = $graph->getBaseIri(); $this->view->editable = false; // use $this->editableFlags[$graph] now // prepare namespaces $namespacePrefixes = $graph->getNamespacePrefixes(); $graphBase = $graph->getBaseUri(); if (!array_key_exists(OntoWiki_Utils::DEFAULT_BASE, $namespacePrefixes)) { $namespacePrefixes[OntoWiki_Utils::DEFAULT_BASE] = $graphBase; } $this->view->namespacePrefixes = $namespacePrefixes; } $toolbar = $this->_owApp->toolbar; // show only if not forwarded and if model is writeable // TODO: why is isEditable not false here? if ($this->_request->getParam('action') == 'properties' && $graph->isEditable() && $this->_owApp->erfurt->getAc()->isModelAllowed('edit', $this->_owApp->selectedModel)) { // TODO: check acl $toolbar->appendButton(OntoWiki_Toolbar::EDIT, array('name' => 'Edit Properties', 'title' => 'SHIFT + ALT + e')); $toolbar->appendButton(OntoWiki_Toolbar::EDITADD, array('name' => 'Clone', 'class' => 'clone-resource', 'title' => 'SHIFT + ALT + l')); // ->appendButton(OntoWiki_Toolbar::EDITADD, array('name' => 'Add Property', 'class' => 'property-add')); $params = array('name' => 'Delete', 'url' => $this->_config->urlBase . 'resource/delete/?r=' . urlencode((string) $resource)); $toolbar->appendButton(OntoWiki_Toolbar::SEPARATOR); $toolbar->appendButton(OntoWiki_Toolbar::DELETE, $params); $toolbar->prependButton(OntoWiki_Toolbar::SEPARATOR); $toolbar->prependButton(OntoWiki_Toolbar::ADD, array('name' => 'Add Property', '+class' => 'property-add', 'title' => 'SHIFT + ALT + a')); $toolbar->prependButton(OntoWiki_Toolbar::SEPARATOR); $toolbar->prependButton(OntoWiki_Toolbar::CANCEL, array('+class' => 'hidden', 'title' => 'SHIFT + ALT + c')); $toolbar->prependButton(OntoWiki_Toolbar::SAVE, array('+class' => 'hidden', 'title' => 'SHIFT + ALT + s')); } // let plug-ins add buttons $toolbarEvent = new Erfurt_Event('onCreateToolbar'); $toolbarEvent->resource = (string) $resource; $toolbarEvent->graph = (string) $graph; $toolbarEvent->toolbar = $toolbar; $eventResult = $toolbarEvent->trigger(); if ($eventResult instanceof OntoWiki_Toolbar) { $toolbar = $eventResult; } // add toolbar $this->view->placeholder('main.window.toolbar')->set($toolbar); //show modules $this->addModuleContext('main.window.properties'); }
/** * get titles and build link-urls (for a sparql result of the resource query) * * @param array $resources an array of resource uris * * @return array */ public function convertResources($resources) { // add titles first, seperatly $uris = array(); foreach ($resources as $resource) { $uris[] = $resource['value']; } $this->_titleHelper->addResources($uris); //$lang = OntoWiki::getInstance()->getConfig()->languages->locale; $resourceResults = array(); foreach ($resources as $resource) { $thisResource = $resource; $thisResource['uri'] = $resource['value']; // the URL to view this resource in detail $url = new OntoWiki_Url(array('controller' => 'resource', 'action' => 'properties'), array()); $url->r = $resource['value']; $thisResource['url'] = (string) $url; // title $thisResource['title'] = $this->_titleHelper->getTitle($resource['value']); $resourceResults[] = $thisResource; } return $resourceResults; }
public function getContents() { $url = new OntoWiki_Url(array('route' => 'properties')); if (!empty($this->_subjects)) { $instances = array(); $instancesTitleHelper = new OntoWiki_Model_TitleHelper($this->_owApp->selectedModel); $instancesTitleHelper->addResources($this->_subjects, 'resourceUri'); foreach ($this->_subjects as $instance) { $instanceUri = $instance['resourceUri']; if (!array_key_exists($instanceUri, $instances)) { // URL $url->setParam('r', $instanceUri, true); $instances[$instanceUri] = array('uri' => $instanceUri, 'title' => $instancesTitleHelper->getTitle($instanceUri, $this->_lang), 'url' => (string) $url); } } $this->view->instances = $instances; } if (!empty($this->_objects)) { $objects = array(); $objectTitleHelper = new OntoWiki_Model_TitleHelper($this->_owApp->selectedModel); $objectTitleHelper->addResources($this->_objects, 'resourceUri'); foreach ($this->_objects as $object) { $objectUri = $object['resourceUri']; if (!array_key_exists($objectUri, $objects)) { // URL $url->setParam('r', $objectUri, true); $objects[$objectUri] = array('uri' => $objectUri, 'title' => $objectTitleHelper->getTitle($objectUri, $this->_lang), 'url' => (string) $url); } } $this->view->objects = $objects; } $url = new OntoWiki_Url(array('controller' => 'resource', 'action' => 'instances')); $url->setParam('instancesconfig', json_encode(array('filter' => array(array('id' => 'propertyUsage', 'action' => 'add', 'mode' => 'query', 'query' => (string) $this->_subjectQuery))))); $url->setParam('init', true); $this->view->subjectListLink = (string) $url; $url->setParam('instancesconfig', json_encode(array('filter' => array(array('id' => 'propertyUsage', 'action' => 'add', 'mode' => 'query', 'query' => (string) $this->_objectQuery))))); $this->view->objectListLink = (string) $url; if (empty($this->_subjects) && empty($this->_objects)) { $this->view->message = 'No matches.'; } // render data into template return $this->render('usage'); }
public function getContents() { $titleHelper = new OntoWiki_Model_TitleHelper($this->_owApp->selectedModel); $query = new Erfurt_Sparql_SimpleQuery(); $results = false; $_predicates = $this->_predicates; $properties = array(); $instances = array(); $url = new OntoWiki_Url(array('route' => 'properties'), array('r')); $titleHelper->addResources($_predicates, 'uri'); foreach ($_predicates as $predicate) { $predicateUri = $predicate['uri']; $url->setParam('r', $predicateUri, true); // create properties url for the relation $properties[$predicateUri]['uri'] = $predicateUri; $properties[$predicateUri]['url'] = (string) $url; $properties[$predicateUri]['title'] = $titleHelper->getTitle($predicateUri, $this->_lang); $query->resetInstance()->setProloguePart('SELECT DISTINCT ?uri')->setWherePart('WHERE { ?uri <' . $predicateUri . '> <' . (string) $this->_owApp->selectedResource . '> . FILTER (isURI(?uri)) }')->setLimit(OW_SHOW_MAX + 1); if ($subjects = $this->_owApp->selectedModel->sparqlQuery($query)) { $results = true; // has_more is used for the dots if (count($subjects) > OW_SHOW_MAX) { $properties[$predicateUri]['has_more'] = true; $subjects = array_splice($subjects, 0, OW_SHOW_MAX); } else { $properties[$predicateUri]['has_more'] = false; } $subjectTitleHelper = new OntoWiki_Model_TitleHelper($this->_owApp->selectedModel); $subjectTitleHelper->addResources($subjects, 'uri'); foreach ($subjects as $subject) { $subjectUri = $subject['uri']; $subject['title'] = $subjectTitleHelper->getTitle($subjectUri, $this->_lang); // set URL $url->setParam('r', $subjectUri, true); $subject['url'] = (string) $url; if (array_key_exists($predicateUri, $instances)) { if (!array_key_exists($subjectUri, $instances[$predicateUri])) { $instances[$predicateUri][$subjectUri] = $subject; } } else { $instances[$predicateUri] = array($subjectUri => $subject); } } } } $this->view->resource = $this->_owApp->selectedResource; $this->view->properties = $properties; $this->view->instances = $instances; if (!$results) { $this->view->message = 'No matches.'; } return $this->render('linkinghere'); }
/** * Searches for properties in the local database. * * @param array $termsArray * @param string $modelUri * @param int $limit * * @return array */ private function _searchLocalPropertiesOnly(array $termsArray, $modelUri, $limit) { require_once 'Erfurt/Sparql/SimpleQuery.php'; $query = new Erfurt_Sparql_SimpleQuery(); $query->setProloguePart('SELECT DISTINCT ?uri ?o'); if (null !== $modelUri) { $query->addFrom($modelUri); } $where = '{ { ?uri ?p ?o . ?uri <' . EF_RDF_TYPE . '> ?o2 . FILTER ( sameTerm(?o2, <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property>) || sameTerm(?o2, <http://www.w3.org/2002/07/owl#DatatypeProperty>) || sameTerm(?o2, <http://www.w3.org/2002/07/owl#ObjectProperty>) ) FILTER (('; $uriRegexFilter = array(); foreach ($termsArray as $t) { $uriRegexFilter[] = 'regex(str(?uri), "' . $t . '", "i")'; } $where .= implode(' && ', $uriRegexFilter) . ') || (isLiteral(?o) && '; $oRegexFilter = array(); foreach ($termsArray as $t) { $oRegexFilter[] = 'regex(?o, "' . $t . '", "i")'; } $where .= implode(' && ', $oRegexFilter) . ')) } UNION {'; $where .= '?s ?uri ?o . FILTER ('; $where .= implode(' && ', $uriRegexFilter) . ') } }'; $query->setWherePart($where); $query->setOrderClause('?uri'); $query->setLimit($limit); $store = Erfurt_App::getInstance()->getStore(); $queryResult = $store->sparqlQuery($query, array('result_format' => 'extended')); $tempResult = array(); foreach ($queryResult['results']['bindings'] as $row) { if ($row['o']['type'] === 'literal') { $weight = $this->_getWeight($termsArray, $row['uri']['value'], $row['o']['value']); } else { $weight = $this->_getWeight($termsArray, $row['uri']['value']); } if (isset($tempResult[$row['uri']['value']])) { if ($weight > $tempResult[$row['uri']['value']]) { $tempResult[$row['uri']['value']] = $weight; } } else { $tempResult[$row['uri']['value']] = $weight; } } arsort($tempResult); require_once 'OntoWiki/Model/TitleHelper.php'; require_once 'OntoWiki/Utils.php'; if (null !== $modelUri) { $model = $store->getModel($modelUri, false); $titleHelper = new OntoWiki_Model_TitleHelper($model); } else { $titleHelper = new OntoWiki_Model_TitleHelper(); } $titleHelper->addResources(array_keys($tempResult)); $translate = $this->_owApp->translate; $result = array(); foreach ($tempResult as $uri => $w) { $title = $titleHelper->getTitle($uri); if (null !== $title) { $result[$uri] = str_replace('|', 'Ι', $title) . '|' . $uri . '|' . $translate->_('Local Search'); } else { $result[$uri] = OntoWiki_Utils::compactUri($uri) . $uri . '|' . $translate->_('Local Search'); } } return $result; }
/** * JSON output of the RDFauthor init config, which is a RDF/JSON Model * without objects where the user should be able to add data * * get/post parameters: * mode - class, resource or clone * class: prop list based on one class' resources * resource: prop list based on one resource * clone: prop list and values based on one resource (with new uri) * edit: prop list and values based on one resource * uri - parameter for mode (class uri, resource uri) */ public function rdfauthorinitAction() { // service controller needs no view renderer $this->_helper->viewRenderer->setNoRender(); // disable layout for Ajax requests $this->_helper->layout()->disableLayout(); $store = OntoWiki::getInstance()->erfurt->getStore(); $response = $this->getResponse(); $model = $this->_owApp->selectedModel; if (isset($this->_request->m)) { $model = $store->getModel($this->_request->m); } if (empty($model)) { throw new OntoWiki_Exception('Missing parameter m (model) and no selected model in session!'); } if (isset($this->_request->uri) && Zend_Uri::check($this->_request->uri)) { $parameter = $this->_request->uri; } else { throw new OntoWiki_Exception('Missing or invalid parameter uri (clone uri) !'); } if (isset($this->_request->mode)) { $workingMode = $this->_request->mode; } else { $workingMode = 'resource'; } if ($workingMode != 'edit') { $resourceUri = $model->getBaseUri() . 'newResource/' . md5(date('F j, Y, g:i:s:u a')); } else { $resourceUri = $parameter; } if ($workingMode == 'class') { $properties = $model->sparqlQuery('SELECT DISTINCT ?uri ?value { ?s ?uri ?value. ?s a <' . $parameter . '>. } LIMIT 20 ', array('result_format' => 'extended')); } elseif ($workingMode == 'clone') { // FIXME: more than one values of a property are not supported right now // FIXME: Literals are not supported right now $properties = $model->sparqlQuery('SELECT ?uri ?value { <' . $parameter . '> ?uri ?value. #FILTER (isUri(?value)) } LIMIT 20 ', array('result_format' => 'extended')); } elseif ($workingMode == 'edit') { $properties = $model->sparqlQuery('SELECT ?uri ?value { <' . $parameter . '> ?uri ?value. } LIMIT 20 ', array('result_format' => 'extended')); } else { // resource $properties = $model->sparqlQuery('SELECT DISTINCT ?uri ?value { <' . $parameter . '> ?uri ?value. } LIMIT 20 ', array('result_format' => 'extended')); } // empty object to hold data $output = new stdClass(); $newProperties = new stdClass(); $properties = $properties['results']['bindings']; // feed title helper w/ URIs $titleHelper = new OntoWiki_Model_TitleHelper($model); $titleHelper->addResources($properties, 'uri'); if (!empty($properties)) { foreach ($properties as $property) { $currentUri = $property['uri']['value']; $currentValue = $property['value']['value']; $currentType = $property['value']['type']; $value = new stdClass(); if ($currentType == 'literal' || $currentType == 'typed-literal') { if (isset($property['value']['datatype'])) { $value->datatype = $property['value']['datatype']; } else { if (isset($property['value']['xml:lang'])) { $value->lang = $property['value']['xml:lang']; } } /* not in RDFauthor 0.8 else { // plain literal --> rdfQuery needs extra quotes $currentValue = '"' . $currentValue . '"'; } */ } // return title from titleHelper $value->title = $titleHelper->getTitle($currentUri); if ($currentUri == EF_RDF_TYPE) { switch ($workingMode) { case 'resource': /* fallthrough */ /* fallthrough */ case 'clone': $value->value = $currentValue; break; case 'edit': $value->value = $currentValue; break; case 'class': $value->value = $parameter; break; } $value->type = $currentType; } else { // $currentUri != EF_RDF_TYPE if ($workingMode == 'clone' || $workingMode == 'edit') { $value->value = $currentValue; $value->type = $currentType; } if ($workingMode == 'class') { $value->value = ''; $value->type = $currentType; } } // deal with multiple values of a property if (isset($newProperties->{$currentUri})) { $tempProperty = $newProperties->{$currentUri}; $tempProperty[] = $value; $newProperties->{$currentUri} = $tempProperty; } else { $newProperties->{$currentUri} = array($value); } } // foreach $output->{$resourceUri} = $newProperties; } else { // empty sparql results -> start with a plain resource if ($workingMode == 'class') { // for classes, add the rdf:type property $value = new stdClass(); $value->value = $parameter; $value->type = 'uri'; $value->hidden = true; $uri = EF_RDF_TYPE; $newProperties->{$uri} = array($value); } $value = new stdClass(); $value->type = 'literal'; $value->title = 'label'; $uri = EF_RDFS_LABEL; $newProperties->{$uri} = array($value); $output->{$resourceUri} = $newProperties; } // send the response $response->setHeader('Content-Type', 'application/json'); $response->setBody(json_encode($output)); }
public function infoAction() { OntoWiki::getInstance()->getNavigation()->disableNavigation(); $this->_owApp->selectedResource = new OntoWiki_Resource($this->_request->getParam('m'), $this->_owApp->selectedModel); $store = $this->_owApp->erfurt->getStore(); $graph = $this->_owApp->selectedModel; $resource = $this->_owApp->selectedResource; //$navigation = $this->_owApp->navigation; $translate = $this->_owApp->translate; $event = new Erfurt_Event('onPropertiesAction'); $event->uri = (string) $resource; $event->graph = (string) $resource; $event->trigger(); $windowTitle = $translate->_('Model info'); $this->view->placeholder('main.window.title')->set($windowTitle); $title = $resource->getTitle($this->_owApp->getConfig()->languages->locale); $this->view->modelTitle = $title ? $title : OntoWiki_Utils::contractNamespace((string) $resource); $resourcesUrl = new OntoWiki_Url(array('route' => 'instances'), array()); $resourcesUrl->init = true; $this->view->resourcesUrl = (string) $resourcesUrl; if (!empty($resource)) { $model = new OntoWiki_Model_Resource($store, $graph, (string) $resource); $values = $model->getValues(); $predicates = $model->getPredicates(); $titleHelper = new OntoWiki_Model_TitleHelper($graph); $graphs = array_keys($predicates); $titleHelper->addResources($graphs); $graphInfo = array(); $editableFlags = array(); foreach ($graphs as $g) { $graphInfo[$g] = $titleHelper->getTitle($g, $this->_config->languages->locale); $editableFlags[$g] = false; } $this->view->graphs = $graphInfo; $this->view->resourceIri = (string) $resource; $this->view->graphIri = $graph->getModelIri(); $this->view->values = $values; $this->view->predicates = $predicates; $this->view->graphBaseIri = $graph->getBaseIri(); $this->view->namespacePrefixes = $graph->getNamespacePrefixes(); $this->view->editableFlags = $editableFlags; if (!is_array($this->view->namespacePrefixes)) { $this->view->namespacePrefixes = array(); } if (!array_key_exists(OntoWiki_Utils::DEFAULT_BASE, $this->view->namespacePrefixes)) { $this->view->namespacePrefixes[OntoWiki_Utils::DEFAULT_BASE] = $graph->getBaseIri(); } $infoUris = $this->_config->descriptionHelper->properties; //echo (string)$resource; if (count($values) > 0) { $query = 'ASK FROM <' . (string) $resource . '>' . ' WHERE {' . ' <' . (string) $resource . '> a <http://xmlns.com/foaf/0.1/PersonalProfileDocument>' . ' }'; $q = Erfurt_Sparql_SimpleQuery::initWithString($query); if ($this->_owApp->extensionManager->isExtensionActive('foafprofileviewer') && $store->sparqlAsk($q) === true) { $this->view->showFoafLink = true; $this->view->foafLink = $this->_config->urlBase . 'foafprofileviewer/display'; } } $this->view->infoPredicates = array(); foreach ($infoUris as $infoUri) { if (isset($predicates[(string) $graph]) && array_key_exists($infoUri, $predicates[(string) $graph])) { $this->view->infoPredicates[$infoUri] = $predicates[(string) $graph][$infoUri]; } } } $this->addModuleContext('main.window.modelinfo'); }