本文整理汇总了PHP中SMWExporter::getOWLPropertyType方法的典型用法代码示例。如果您正苦于以下问题:PHP SMWExporter::getOWLPropertyType方法的具体用法?PHP SMWExporter::getOWLPropertyType怎么用?PHP SMWExporter::getOWLPropertyType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SMWExporter
的用法示例。
在下文中一共展示了SMWExporter::getOWLPropertyType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: doMapSomeProperty
private function doMapSomeProperty(SomeProperty $description, &$exact)
{
$result = new ExpData(new ExpResource(''));
$result->addPropertyObjectValue($this->exporter->getSpecialNsResource('rdf', 'type'), new ExpData($this->exporter->getSpecialNsResource('owl', 'Restriction')));
$property = $description->getProperty();
if ($property->isInverse()) {
$property = new DIProperty($property->getKey());
}
$result->addPropertyObjectValue($this->exporter->getSpecialNsResource('owl', 'onProperty'), new ExpData($this->exporter->getResourceElementForProperty($property)));
$subdata = $this->getExpDataFromDescription($description->getDescription(), $exact);
if ($description->getDescription() instanceof ValueDescription && $description->getDescription()->getComparator() === SMW_CMP_EQ) {
$result->addPropertyObjectValue($this->exporter->getSpecialNsResource('owl', 'hasValue'), $subdata);
} else {
if ($subdata === false) {
$owltype = $this->exporter->getOWLPropertyType($description->getProperty()->findPropertyTypeID());
if ($owltype == 'ObjectProperty') {
$subdata = new ExpData($this->exporter->getSpecialNsResource('owl', 'Thing'));
} elseif ($owltype == 'DatatypeProperty') {
$subdata = new ExpData($this->exporter->getSpecialNsResource('rdfs', 'Literal'));
} else {
// no restrictions at all with annotation properties ...
return new ExpData($this->exporter->getSpecialNsResource('owl', 'Thing'));
}
}
$result->addPropertyObjectValue($this->exporter->getSpecialNsResource('owl', 'someValuesFrom'), $subdata);
}
return $result;
}
示例2: descriptionToExpData
public function descriptionToExpData($desc, &$exact)
{
if ($desc instanceof SMWConjunction || $desc instanceof SMWDisjunction) {
$result = new SMWExpData(new SMWExpResource(''));
$result->addPropertyObjectValue(SMWExporter::getSpecialNsResource('rdf', 'type'), new SMWExpData(SMWExporter::getSpecialNsResource('owl', 'Class')));
$elements = array();
foreach ($desc->getDescriptions() as $subdesc) {
$element = $this->descriptionToExpData($subdesc, $exact);
if ($element === false) {
$element = new SMWExpData(SMWExporter::getSpecialNsResource('owl', 'Thing'));
}
$elements[] = $element;
}
$prop = $desc instanceof SMWConjunction ? 'intersectionOf' : 'unionOf';
$result->addPropertyObjectValue(SMWExporter::getSpecialNsResource('owl', $prop), SMWExpData::makeCollection($elements));
} elseif ($desc instanceof SMWClassDescription) {
if (count($desc->getCategories()) == 1) {
// single category
$result = new SMWExpData(SMWExporter::getResourceElement(end($desc->getCategories())));
} else {
// disjunction of categories
$result = new SMWExpData(new SMWExpResource(''));
$elements = array();
foreach ($desc->getCategories() as $cat) {
$elements[] = new SMWExpData(SMWExporter::getResourceElement($cat));
}
$result->addPropertyObjectValue(SMWExporter::getSpecialNsResource('owl', 'unionOf'), SMWExpData::makeCollection($elements));
}
$result->addPropertyObjectValue(SMWExporter::getSpecialNsResource('rdf', 'type'), new SMWExpData(SMWExporter::getSpecialNsResource('owl', 'Class')));
} elseif ($desc instanceof SMWConceptDescription) {
$result = new SMWExpData(SMWExporter::getResourceElement($desc->getConcept()));
} elseif ($desc instanceof SMWSomeProperty) {
$result = new SMWExpData(new SMWExpResource(''));
$result->addPropertyObjectValue(SMWExporter::getSpecialNsResource('rdf', 'type'), new SMWExpData(SMWExporter::getSpecialNsResource('owl', 'Restriction')));
$result->addPropertyObjectValue(SMWExporter::getSpecialNsResource('owl', 'onProperty'), new SMWExpData(SMWExporter::getResourceElement($desc->getProperty())));
$subdata = $this->descriptionToExpData($desc->getDescription(), $exact);
if ($desc->getDescription() instanceof SMWValueDescription && $desc->getDescription()->getComparator() == SMW_CMP_EQ) {
$result->addPropertyObjectValue(SMWExporter::getSpecialNsResource('owl', 'hasValue'), $subdata);
} else {
if ($subdata === false) {
$owltype = SMWExporter::getOWLPropertyType($desc->getProperty()->getPropertyTypeID());
if ($owltype == 'ObjectProperty') {
$subdata = new SMWExpData(SMWExporter::getSpecialNsResource('owl', 'Thing'));
} elseif ($owltype == 'DatatypeProperty') {
$subdata = new SMWExpData(SMWExporter::getSpecialNsResource('rdfs', 'Literal'));
} else {
// no restrictions at all with annotation properties ...
return new SMWExpData(SMWExporter::getSpecialNsResource('owl', 'Thing'));
}
}
$result->addPropertyObjectValue(SMWExporter::getSpecialNsResource('owl', 'someValuesFrom'), $subdata);
}
} elseif ($desc instanceof SMWValueDescription) {
if ($desc->getComparator() == SMW_CMP_EQ) {
$result = SMWExporter::getDataItemExpElement($desc->getDataItem());
} else {
// alas, OWL cannot represent <= and >= ...
$exact = false;
$result = false;
}
} elseif ($desc instanceof SMWThingDescription) {
$result = false;
} else {
$result = false;
$exact = false;
}
return $result;
}