Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions app/imports/custom/vq/client/templates/VQ_DSS_schema.js
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ function applyRelevancePrefixes(relevanceMap) {
dataShapes.schema.diagram.filteredClassList.forEach(cl => {
if (!brpOriginalNames.has(cl.id)) brpOriginalNames.set(cl.id, cl.display_name);
const r = relevanceMap.get(cl.id);
cl.display_name = (r !== undefined ? `R${r.toFixed(3)} - ` : '') + brpOriginalNames.get(cl.id);
cl.display_name = (r !== undefined ? `R${r.toFixed(4)} - ` : '') + brpOriginalNames.get(cl.id);
});
}

Expand Down Expand Up @@ -1040,11 +1040,11 @@ Template.VQ_DSS_schema.events({
const [fragmentClasses, rank] = await runFragmentAlgorithm(fragAlgorithm, fragEdgeWeightContext, mainClasses, fragSize, undefined, brpConfig);

// Update list of chosen classes
_.each(dataShapes.schema.diagram.filteredClassList, function(cl) {
if ( fragmentClasses.includes(cl.id)) cl.sel = 1;
else cl.sel = 0;
});
makeClassLists();
_.each(dataShapes.schema.diagram.filteredClassList, function(cl) {
if ( fragmentClasses.includes(cl.id)) cl.sel = 1;
else cl.sel = 0;
});
makeClassLists();
if (fragAlgorithm === "brp") sortAndApplyBRPRelevance(rank);
},
'click #calculateRelevance': async function() {
Expand Down Expand Up @@ -1310,6 +1310,13 @@ Template.VQ_DSS_schema.events({
Template.VQ_DSS_schema.Properties.set((stdPropSelectedBackup || []).filter(matches));
Template.VQ_DSS_schema.RestProperties.set((stdPropRestBackup || []).filter(matches));
},
'mousedown #selectedClasses option, mousedown #restClasses option': function(e) {
const id = Number(e.currentTarget.value);
if (brpCentralityData && brpCentralityData.cpcListSimple){
const classObj = brpCentralityData.cpcListSimple.get(id);
console.log("Class obj for", id, " is ", classObj);
}
},
// Suppress native multi-select highlight so only our gray edit-mode highlight is visible.
'mousedown #selectedProperties option, mousedown #restProperties option': function(e) {
if (fragmentStdPropEditing.get()) e.preventDefault();
Expand Down
18 changes: 11 additions & 7 deletions app/imports/custom/vq/client/templates/fragments.js
Original file line number Diff line number Diff line change
Expand Up @@ -168,11 +168,10 @@ async function getAdjFromCP(weightByCPCsum, useBothClasses) {
// a neighbor with both standard and user-defined properties is counted in both.
export async function getCPCAdjSimple(standardProperties = null, edgesInTriples = true, cntTransform = null, useInstanceCount = false) {
const CPCs = await dataShapes.callServerFunction("xx_getCPCInfo", {main: {}});
console.log("Returned CPCs from DSS");
const getProp = buildPropMetaGetter();
const isStandardProperty = makeIsStandardProperty(standardProperties);
const cpcPropIds = [...new Set(CPCs.data.map(r => r.property_id))];
console.log("getCPCAdjSimple: standardProperties =", standardProperties, "| sample CPC property_ids =", cpcPropIds.slice(0, 10), "| std matches =", standardProperties ? cpcPropIds.filter(id => standardProperties.map(Number).includes(Number(id))).length : "all (null)");
console.log("getCPCAdjSimple: standardProperties =", standardProperties, "| std matches =", standardProperties ? cpcPropIds.filter(id => standardProperties.map(Number).includes(Number(id))) : "all (null)");

let classSizes = null;
if (useInstanceCount) {
Expand Down Expand Up @@ -667,14 +666,19 @@ export async function computeBRPRelevance(mainClasses, config = {}, rawAdj = und
if (mainClasses.includes(classId)) {
obj.centralityMeasure = mainClassBoost;
} else {
const propTerm =
(maxStandardRels > 0 ? (obj.standardRelCount * propWeightStandart) / maxStandardRels : 0) +
(maxUserDefinedRels > 0 ? (obj.userDefinedRelCount * propWeightUserDefined) / maxUserDefinedRels : 0);
const standardPropTerm = maxStandardRels > 0 ? (obj.standardRelCount * propWeightStandart) / maxStandardRels : 0;
const userDefinedPropTerm = maxUserDefinedRels > 0 ? (obj.userDefinedRelCount * propWeightUserDefined) / maxUserDefinedRels : 0;
const propTerm = standardPropTerm + userDefinedPropTerm;
obj.propTerms = {standardPropTerm: standardPropTerm, userDefinedPropTerm: userDefinedPropTerm, sum: propTerm};

const divisor = totalInstances > 0
? (totalInstances - (obj.instanceCount ?? 0))
: (cpcListSimple.size - 1);
obj.centralityMeasure =
((classWeightIncoming * obj.inCount) + (classWeightOutgoing * obj.outCount)) * propTerm / divisor;
obj.centralityDivisor = divisor;

const classTerm = (classWeightIncoming * obj.inCount) + (classWeightOutgoing * obj.outCount);
obj.classTerm = classTerm;
obj.centralityMeasure = classTerm * propTerm / divisor;
}
});

Expand Down
Loading