Skip to content

Commit

Permalink
Add explicit support for ICONS in MRS vanilla rendering
Browse files Browse the repository at this point in the history
  • Loading branch information
ned2 committed Aug 12, 2018
1 parent 4454802 commit 3810e49
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions viz/mrs.js
Expand Up @@ -25,6 +25,7 @@ function MRS(parentElement, mrsData){
drawFeatValPair(container, 'INDEX', mrsData.index);
drawFeatValPair(container, 'RELS', mrsData.relations);
drawFeatValPair(container, 'HCONS', mrsData.constraints);
drawFeatValPair(container, 'ICONS', mrsData.constraints);
drawSquareBrackets(mrs, XGAP);

// transform the MRS to take into account the square brackets drawn at
Expand Down Expand Up @@ -62,11 +63,22 @@ function MRS(parentElement, mrsData){
var featVal = group.plain(value).move(FEATNAMEXGAP, CURRENTY).attr(attrs);
} else if (Object.prototype.toString.call(value) === '[object Array]'){
// value is a list
if (name == 'RELS')
if (name == 'RELS') {
var itemFunc = relFeatStruct;
else if (name == 'HCONS')
} else if (name == 'HCONS') {
// filter out ICONS values from the constraints list
var value = value.filter(constraint => constraint.high != null);
var itemFunc = hconsFeatStruct;
} else if (name == 'ICONS') {
// filter out HCONS values from the constraints list
var value = value.filter(constraint => constraint.high == null);
var itemFunc = iconsFeatStruct;
}

if (value.length == 0)
// no constraints needed to render
return null;

var featText = group.plain(name);
var list = drawList(group, value, itemFunc);
var firstLine = list.select('g').first();
Expand Down Expand Up @@ -101,6 +113,15 @@ function MRS(parentElement, mrsData){
drawFeatValPair(parent, 'LARG', hcon.low);
}

function iconsFeatStruct(parent, icon) {
drawFeatStructType(parent, icon.relation);
Object.keys(icon).forEach(function(key,index) {
if (key == 'relation')
return;
drawFeatValPair(parent, key.toUpperCase(), icon[key]);
});
}

function drawList(parent, itemsData, itemFunc) {
// The list may need to be broken up into multiple lines
var lines = [];
Expand Down

0 comments on commit 3810e49

Please sign in to comment.