Ejemplo n.º 1
0
/**
 * 
 *
 * @param string $class_id class id
 * @param string $ontology_property_name ontology property name
 * @param string $ontology_property_label ontology property label
 * @param string $range ontology property range
 * @return ontology property id
 */
function createOntologyProperty($class_id, $ontology_property_name, $ontology_property_label, $range)
{
    global $datatype_ranges;
    global $parser_types;
    global $overall_classes;
    if ($ontology_property_name == "") {
        if ($ontology_property_label != "") {
            $ontology_property_name = getCamelCasePropertyNameFromLabel($ontology_property_label);
        } else {
            echo __LINE__ . " This should never happen!";
        }
    }
    if (strpos($range, ",") !== false) {
        die(__LINE__ . ", in range");
    }
    // Object or Datatype Property?
    if (in_array(strtolower($range), $datatype_ranges)) {
        $range_type = "datatype";
        $range = strtolower($range);
    } elseif (in_array(strtolower($range), $parser_types)) {
        $range_type = "datatype";
        // TODO: New Parser Type Rule
        // FIXME FIXME FIXME: $property_name is not defined
        $template_property_parser[$property_name] = strtolower($range);
        if (strtolower($range) == "unit") {
            echo "{$class_id}.{$ontology_property_name} - We can't handle split properties with Units at the moment.";
        }
    } else {
        if ($range == "object") {
            $range = "Thing";
        }
        $range = str_replace(" ", "", $range);
        if (in_array($range, $overall_classes)) {
            $range_type = "object";
        } else {
            echo "[WARNING] Unknown range for {$class_id}.{$ontology_property_name}: {$range}\n";
        }
    }
    // Insert new class property and range into DB
    if (!($ontology_property_id = getOntologyPropertyId($class_id, $ontology_property_name))) {
        if ($range_type == "datatype") {
            $ontology_property_id = createOntologyDatatypePropertyAndGetId($class_id, $ontology_property_name, $range_type, $range, $ontology_property_label);
        } else {
            $ontology_property_id = createOntologyObjectPropertyAndGetId($class_id, $ontology_property_name, $range_type, $range, $ontology_property_label);
        }
    }
    if ($ontology_property_id) {
        if ($range_type == "datatype") {
            // datatype property
            // FIXME FIXME FIXME: $one_property is not defined.
            $query = "INSERT INTO parser_type_rule (class_property_id, parser_type, unit_type) VALUES ('" . $ontology_property_id . "', '" . $template_property_parser[$one_property] . "', NULL)";
            mysqlQuery($query, __LINE__);
        }
    } else {
        die(__LINE__ . " [DIE] error");
    }
    return $ontology_property_id;
}
Ejemplo n.º 2
0
         $type = "datatype";
     } else {
         if (in_array($type, $unit_types)) {
             $unit_range = $type;
             $type = "string";
         } else {
             if (in_array(str_replace(" ", "", $type), $overall_classes)) {
                 $type = "object";
             } else {
                 echo "[DIE - MERGE] Unknown range for {$class_name}.{$label}: {$type}\n";
                 die;
             }
         }
     }
 }
 $ontology_property_id = createOntologyDatatypePropertyAndGetId($class_id, getCamelCasePropertyNameFromLabel($label), $type, $datatype_range, $label);
 if (in_array($unit_range, $unit_types)) {
     $strSQL = "INSERT INTO parser_type_rule (class_property_id, parser_type, unit_type) VALUES ('" . $ontology_property_id . "', '" . $type . "', '" . $unit_range . "')";
     if (!mysql_query($strSQL)) {
         die(mysql_error() . " - query: " . $strSQL);
     }
 }
 $template_property_ids = array();
 $i = 0;
 foreach ($merge_parts["name"] as $names) {
     // 3. create template property
     $template_property_id = insertTemplatePropertyAndGetId($template_id, $name);
     if ($exact_type[$i] != "") {
         $strSQL = "INSERT INTO template_parser_type_rule (template_property_id, unit_exact_type) VALUES ('" . $template_property_id . "', '" . $exact_type[$i] . "')";
         if (!mysql_query($strSQL)) {
             //die(mysql_error() . " - query: ".$strSQL);