示例#1
0
 public function testAddDescription()
 {
     $ns = Localizer::getInstance()->getNamespaceTextById(NS_CATEGORY);
     $instance = new ClassDescription(new DIWikiPage('Foo', NS_CATEGORY));
     $instance->addDescription(new ClassDescription(new DIWikiPage('Bar', NS_CATEGORY)));
     $this->assertEquals("[[{$ns}:Foo||Bar]]", $instance->getQueryString());
     $this->assertEquals(" <q>[[{$ns}:Foo||Bar]]</q> ", $instance->getQueryString(true));
 }
 private function searchForResultsThatCompareEqualToClassOf($categoryName)
 {
     $propertyValue = new PropertyValue('__pro');
     $propertyValue->setDataItem(new DIProperty('_INST'));
     $description = new ClassDescription(new DIWikiPage($categoryName, NS_CATEGORY, ''));
     $description->addPrintRequest(new PrintRequest(PrintRequest::PRINT_PROP, null, $propertyValue));
     $query = new Query($description, false, false);
     $query->querymode = Query::MODE_INSTANCES;
     return $this->getStore()->getQueryResult($query);
 }
 public function prune(&$maxsize, &$maxdepth, &$log)
 {
     if ($maxsize >= $this->getSize()) {
         $maxsize = $maxsize - $this->getSize();
         return $this;
     } elseif ($maxsize <= 0) {
         $log[] = $this->getQueryString();
         $result = new ThingDescription();
     } else {
         $result = new ClassDescription(array_slice($this->m_diWikiPages, 0, $maxsize));
         $rest = new ClassDescription(array_slice($this->m_diWikiPages, $maxsize));
         $log[] = $rest->getQueryString();
         $maxsize = 0;
     }
     $result->setPrintRequests($this->getPrintRequests());
     return $result;
 }
 private function doMapClassDescription(ClassDescription $description, &$exact)
 {
     if (count($description->getCategories()) == 1) {
         // single category
         $categories = $description->getCategories();
         $result = new ExpData($this->exporter->getResourceElementForWikiPage(end($categories)));
     } else {
         // disjunction of categories
         $result = new ExpData(new ExpResource(''));
         $elements = array();
         foreach ($description->getCategories() as $cat) {
             $elements[] = new ExpData($this->exporter->getResourceElementForWikiPage($cat));
         }
         $result->addPropertyObjectValue($this->exporter->getSpecialNsResource('owl', 'unionOf'), ExpData::makeCollection($elements));
     }
     $result->addPropertyObjectValue($this->exporter->getSpecialNsResource('rdf', 'type'), new ExpData($this->exporter->getSpecialNsResource('owl', 'Class')));
     return $result;
 }