$RELATIONS_EXCLUSION_RULES[] = array("SUBJECT" => "*", "VERB" => "وجعلناها", "OBJECT" => "*");
 $RELATIONS_EXCLUSION_RULES[] = array("SUBJECT" => "*", "VERB" => "جعلناه", "OBJECT" => "*");
 $RELATIONS_EXCLUSION_RULES[] = array("SUBJECT" => "*", "VERB" => "جعلناها", "OBJECT" => "*");
 $RELATIONS_EXCLUSION_RULES[] = array("SUBJECT" => "*", "VERB" => "وجعلناه", "OBJECT" => "*");
 $RELATIONS_EXCLUSION_RULES[] = array("SUBJECT" => "*", "VERB" => "جعلناك", "OBJECT" => "*");
 $RELATIONS_EXCLUSION_RULES[] = array("SUBJECT" => "*", "VERB" => "فجعلناهن", "OBJECT" => "*");
 $RELATIONS_EXCLUSION_RULES[] = array("SUBJECT" => "*", "VERB" => "جعل", "OBJECT" => "*");
 $RELATIONS_EXCLUSION_RULES[] = array("SUBJECT" => "*", "VERB" => "تجعلونه", "OBJECT" => "*");
 $RELATIONS_EXCLUSION_RULES[] = array("SUBJECT" => "*", "VERB" => "جعلناكم", "OBJECT" => "*");
 //object vague
 $RELATIONS_EXCLUSION_RULES[] = array("SUBJECT" => "*", "VERB" => "*", "OBJECT" => "بعض");
 //preprint_r($excludedRelationsFromFileArr);
 foreach ($excludedRelationsFromFileArr as $relationTripleText => $dummy) {
     $subject = convertConceptIDtoGraphLabel($relationTripleArr[0]);
     $verb = $relationTripleArr[1];
     $object = convertConceptIDtoGraphLabel($relationTripleArr[2]);
     $relationTripleArr = explode(",", $relationTripleText);
     $RELATIONS_EXCLUSION_RULES[] = array("SUBJECT" => $subject, "VERB" => $verb, "OBJECT" => $object);
 }
 //preprint_r($RELATIONS_EXCLUSION_RULES);
 $filteredRelationsArr = array();
 foreach ($relationsArr as $hash => $relationArr) {
     $relationsType = $relationArr['TYPE'];
     $subject = $relationArr['SUBJECT'];
     $object = $relationArr['OBJECT'];
     $verbSimple = $relationArr['VERB'];
     if ($subject == $object) {
         $relationsRemoved++;
         continue;
     }
     echoN("{$subject}|{$object}|" . isset($excludedConceptsArr[$subject]));
示例#2
0
function ontologyToD3TreemapHierarchical($MODEL_QA_ONTOLOGY, $minFreq = 0, $lang)
{
    global $lang;
    $alreadyInLevel1 = array();
    $treeRootObj = array();
    $treeRootObj["name"] = "قرآن";
    if ($lang == "EN") {
        $treeRootObj["name"] = "Quran";
    }
    $treeRootObj["children"] = array();
    /** SHOULD BE ZERO BASED FOR D3 TO WORK - o.target.weight = NULL**/
    $nodeSerialNumber = 0;
    $qaOntologyConceptsIterator = getAPCIterator("ALL\\/MODEL_QA_ONTOLOGY\\/CONCEPTS\\/.*");
    foreach ($qaOntologyConceptsIterator as $conceptsCursor) {
        $conceptNameID = getEntryKeyFromAPCKey($conceptsCursor['key']);
        $conceptArr = $conceptsCursor['value'];
        $conceptLabelAR = $conceptArr['label_ar'];
        $conceptLabelEN = $conceptArr['label_en'];
        $conceptFrequency = $conceptArr['frequency'];
        $conceptWeight = $conceptArr['weight'];
        $type = $conceptArr['type'];
        if ($conceptFrequency < $minFreq) {
            continue;
        }
        //ONLY CLASSES (CLUSTERS)
        if ($type == "class") {
            $alreadyInLevel1[$conceptNameID] = 1;
            //echoN($conceptLabelAR);
            //echoN($conceptNameID);
            if ($lang == "EN") {
                $conceptNameClean = convertConceptIDtoGraphLabel($conceptLabelEN);
            } else {
                $conceptNameClean = convertConceptIDtoGraphLabel($conceptLabelAR);
            }
            /*= array("id"=>$nodeSerialNumber++,"word"=>$conceptLabelAR,
            	 "size"=>$conceptWeight,"x"=>rand($startLocationXMin,$startLocationXMax),
            			"y"=>rand($startLocationYMin,$startLocationYMax));*/
            $treeRootObj["children"][] = array("name" => $conceptNameClean, "size" => $conceptFrequency, "children" => getTreeNodeChildren($MODEL_QA_ONTOLOGY, $conceptNameID, $minFreq, $lang, 1, $alreadyInLevel1));
        }
    }
    /*
    	foreach($MODEL_QA_ONTOLOGY['RELATIONS'] as $index => $relArr)
    	{
    
    		$subject = $relArr['subject'];
    		$verbAR = $relArr['verb'];
    		$verbEN = $relArr['VERB_TRANSLATION_EN'];
    		$verbUthmani = $relArr['verb_uthmani'];
    		$relFreq = $relArr['frequency'];
    		$object = $relArr['object'];
    			
    
    		//$treeRootObj[$subject]["children"][]["name"]=$object;
    
    		$objectConceptArr = $MODEL_QA_ONTOLOGY['CONCEPTS'][$object];
    
    			
    		$index = search2DArrayForValue($currentArr,$subject);
    
    
    		$isObjectIncludedBefore = search2DArrayForValue($currentArr[$index]["children"],$object);
    
    		if ( $isObjectIncludedBefore===false)
    		{
    			//$currentArr[$index]["children"][] = array("name"=>$object,"size"=>$objectConceptArr['frequency'],"children"=>array());
    		}
    
    	}*/
    //echoN(count($treeRootObj["children"]));
    return $treeRootObj;
}
示例#3
0
$nodeSerialNumber = 0;
$clusterSerialNumber = 0;
addChildrenToCluster($clusteredArr, $treeRootNodeObj, $clusterSerialNumber, $nodeSerialNumber, 1, $handledBefore);
//preprint_r($handledBefore);
//preprint_r($clusteredArr);exit;
//$graphNodesJSON = json_encode($graphObj['nodes']);
//$graphLinksJSON = json_encode($graphObj['links']);
//echoN($treeRootNodeJSON);
//echoN($graphNodesJSON);
//echoN($graphLinksJSON);
//exit;
$qaRelationsArr = getModelEntryFromMemory("ALL", "MODEL_QA_ONTOLOGY", "RELATIONS", "");
$filteredClusteredArr = array();
$index = 0;
foreach ($clusteredArr as $index => $clusterArrItem) {
    $conceptName = strtolower(convertConceptIDtoGraphLabel($clusterArrItem['word']));
    //$conceptNameAR  = $MODEL_QA_ONTOLOGY['CONCEPTS_EN_AR_NAME_MAP'][$conceptName];
    $conceptNameAR = getModelEntryFromMemory("ALL", "MODEL_QA_ONTOLOGY", "CONCEPTS_EN_AR_NAME_MAP", $conceptName);
    // if not in index (then not qurana or word in quran)
    // and does not have subclasses // then ignore
    if (!wordOrPhraseIsInIndex($lang, $conceptName) && !conceptHasSubclasses($qaRelationsArr, $conceptNameAR)) {
        //echoN($conceptName);
        continue;
    }
    $index++;
    $filteredClusteredArr[] = $clusterArrItem;
}
//preprint_r($clusteredArr);
//echoN(count($clusteredArr));
$clusteredArrJSON = json_encode($filteredClusteredArr);
?>