Beispiel #1
0
# ultimately, we'll set up a process function that executes the following code
# automatically when the configuration note is posted. for now, we will do this
# manually.

# get the already-posted configuration note

papers = client.get_notes(
    invitation=configuration_note_params['content']['paper_invitation'])
paper_metadata = client.get_notes(
    invitation=configuration_note_params['content']['metadata_invitation'])
match_group = client.get_group(
    id=configuration_note_params['content']['match_group'])
reviewer_configuration = configuration_note_params['content']['configuration']

new_assignments_by_forum = openreview_matcher.match(reviewer_configuration,
                                                    papers=papers,
                                                    metadata=paper_metadata,
                                                    group=match_group)


def create_assignment_note(forum, label):
    return openreview.Note(
        **{
            'forum':
            forum,
            'invitation':
            configuration_note_params['content']['assignment_invitation'],
            'readers': [
                'auai.org/UAI/2018', 'auai.org/UAI/2018/Program_Chairs',
                'auai.org/UAI/2018/Program_Committee',
                'auai.org/UAI/2018/Senior_Program_Committee'
            ],
Beispiel #2
0
    a.forum: a
    for a in assignments if a.content['label'] == 'reviewers'
}

new_constraints = {}

for forum, assignment in r1_assignments_by_forum.iteritems():
    new_constraints[forum] = {}
    for entry in assignment.content['assignedGroups']:
        new_constraints[forum][entry['userId']] = 10.0

config_notes = [
    c for c in client.get_notes(
        invitation='auai.org/UAI/2018/-/Assignment_Configuration')
    if c.content['label'] == label
]
if config_notes:
    config_note = openreview.Note(
        **dict(config_note[0].to_json(), **configuration_note_params))
else:
    config_note = openreview.Note(**configuration_note_params)
config_note.content['constraints'] = new_constraints
posted_config = client.post_note(config_note)

assignments = openreview_matcher.match(client, posted_config,
                                       openreview_matcher.Solver)

for n in assignments:
    print("posting assignment for ", n.forum)
    client.post_note(n)
        },
        'constraints': {},
        'paper_invitation': 'cv-foundation.org/ECCV/2018/Conference/-/Submission',
        'metadata_invitation': args.metadata_inv,
        'assignment_invitation': 'cv-foundation.org/ECCV/2018/Conference/-/Paper_Assignment',
        'match_group': 'cv-foundation.org/ECCV/2018/Conference/Area_Chairs',
        'status': 'complete' # 'queued', 'processing', 'complete' or 'error'
    }
})

append_assignments = {}
if args.append:
    append_label = args.append
    existing_assignments = openreview.tools.get_all_notes(client, config_note.content['assignment_invitation'])
    append_assignments = {a.forum: a for a in existing_assignments if a.content['label'] == append_label}
    config_note, assignments = openreview_matcher.match(client, config_note, post=False)
    assignments_by_forum = {a.forum: a for a in assignments}
    papers_by_forum = {n.forum: n for n in openreview.tools.get_all_notes(client, config_note.content['paper_invitation'])}
    for forum, append_assignment in append_assignments.iteritems():
        if forum in papers_by_forum:
            print(forum)
            assignment = assignments_by_forum[forum]
            assignment.content['assignedGroups'] = append_assignment.content['assignedGroups'] + assignment.content['assignedGroups']
            posted_note = client.post_note(assignment)

    client.post_note(config_note)
else:
    openreview_matcher.match(client, config_note)


Beispiel #4
0
    'content': {
        'label': label,
        'configuration': {
            'minusers': 1,
            'maxusers': 1,
            'minpapers': 1,
            'maxpapers': 10,
            'alternates': 5,
            'weights': {
                'tpms_score': 1,
                'conflict_score': 1,
                'bid_score': 1
            }
        },
        'constraints': {},
        'paper_invitation': 'auai.org/UAI/2018/-/Blind_Submission',
        'metadata_invitation': 'auai.org/UAI/2018/-/Paper_Metadata',
        'assignment_invitation': 'auai.org/UAI/2018/-/Paper_Assignment',
        'match_group': 'auai.org/UAI/2018/Senior_Program_Committee',
        'status': 'complete' # 'queued', 'processing', 'complete' or 'error'
    }
}

configuration_note, assignments = openreview_matcher.match(client, configuration_note_params)

posted_config = client.post_note(configuration_note)

for n in assignments:
    print "posting assignment for ", n.forum
    client.post_note(n)
Beispiel #5
0
        ],
        'writers': ['cv-foundation.org/ECCV/2018/Conference'],
        'signatures': ['cv-foundation.org/ECCV/2018/Conference'],
        'content': {
            'label': args.label,
            'configuration': {
                'minusers': 3,
                'maxusers': 3,
                'minpapers': 0,
                'maxpapers': 8,
                'alternates': 5,
                'weights': {
                    'tpmsScore': 1.0,
                    'acRecommendation': 3.0
                }
            },
            'constraints': {},
            'paper_invitation':
            'cv-foundation.org/ECCV/2018/Conference/-/Submission',
            'metadata_invitation':
            'cv-foundation.org/ECCV/2018/Conference/Reviewers/-/Paper_Metadata',
            'assignment_invitation':
            'cv-foundation.org/ECCV/2018/Conference/-/Paper_Assignment',
            'match_group': 'cv-foundation.org/ECCV/2018/Conference/Reviewers',
            'status':
            'complete'  # 'queued', 'processing', 'complete' or 'error'
        }
    })

assignments = openreview_matcher.match(client, config_note)