/** * Translate data from rdf mapping to rdf nodes * * @return array */ protected function getRdfFromData() { $rdfNodes = array(); $rdfMapping = $this->getRdfMapping(); foreach ($this->data as $docField => $docValue) { $fieldName = explode('@', $docField); $fieldName = $fieldName[0]; if (strpos($docField, '@') !== false && in_array($fieldName, $rdfMapping['languageFields'])) { $rdfNodes = array_merge($rdfNodes, OpenSKOS_Rdf_Parser::createLanguageField($docField, $docValue)); } else { if (in_array($docField, $rdfMapping['resourceFields'])) { $rdfNodes = array_merge($rdfNodes, OpenSKOS_Rdf_Parser::createResourceField($docField, $docValue)); } else { if (in_array($docField, $rdfMapping['dctermsDateFields'])) { if ($docField == 'dcterms_dateAccepted' && (empty($docValue) || empty($docValue[0]))) { continue; } $rdfNodes = array_merge($rdfNodes, OpenSKOS_Rdf_Parser::createDcTermsField($docField, $docValue)); } else { if (in_array($docField, $rdfMapping['simpleSkosFields'])) { $rdfNodes = array_merge($rdfNodes, OpenSKOS_Rdf_Parser::createSimpleSkosField($docField, $docValue)); } else { if (in_array($docField, $rdfMapping['openskosFields'])) { $rdfNodes = array_merge($rdfNodes, OpenSKOS_Rdf_Parser::createSimpleOpenskosField($docField, $docValue)); } } } } } } return $rdfNodes; }