Ontology

DataBase.py - defines the data base interface

Copyright CUED Dialogue Systems Group 2015 - 2017

Note

Called by utils.Settings to load database into global variable db

See also

CUED Imports/Dependencies:

import utils.ContextLogger


class ontology.DataBase.DataBaseINTERFACE

DATA BASE HOLDERS must implement these methods

entity_by_features(constraints)

Retrieves from database all entities matching the given constraints.

Parameters

constraints – features. Dict {slot:value, …} or List [(slot, op, value), …] (NB. the tuples in the list are actually a dact instances)

Returns

(list) all entities (each a dict) matching the given features.

query_entity_property(entity, slot, value)

This method is needed just because we only pass entity name around at present – would be better to pass entity id around and retireive name when needed - as could wuickly access properties rather than searching … TODO

ontology.DataBase.get_dist(c1, c2)

Utility function for calculating the distance between 2 points on Earth.

Parameters
  • c1 (2-tuple floats) – latitude,longitude

  • c2 (2-tuple floats) – latitude,longitude

Returns

(float) distance

FlatOntologyManager.py - Domain class and Multidomain API

Copyright CUED Dialogue Systems Group 2015 - 2017

Controls Access to the ontology files.

See also

CUED Imports/Dependencies:

import utils.Settings
import utils.ContextLogger
import ontology.OntologyUtils


class ontology.FlatOntologyManager.FlatDomainOntology(domainString, rootIn=None)

Utilities for ontology queries

constraintsCanBeDiscriminated(constraints)

Checks if the given constraints list returns a list of values which can be discriminated between - i.e. there is a question which we could ask which would give differences between the values.

getRandomValueForSlot(slot, nodontcare=False, notthese=[], conditional_values=[])
Parameters
  • slot (str) – None

  • nodontcare (bool) – None

  • notthese (list) – None

getSlotsToExpress(slot, value)
Parameters
  • slot

  • value

Returns

List of slot names that should be conveyed for the given abstract slot-value pair.

getValidRequestSlotsForTask()
Parameters

None

Returns

(list) with user requestable goal slot strings

Todo

should be extended to cover arbitrary domains and ontologies

getValidSlotsForTask()
Parameters

None

Returns

(list) with goal slot strings

get_sample_prob(candidate, conditional_values)

Sets a prob distribution over the values in candidate (which could be slots, or values with a slot) - assigns larger probabilities to things within the conditional_values list

Parameters
  • candidate (list) – of strings

  • conditional_values (list) – of strings

Returns

numpy vector with prob distribution

class ontology.FlatOntologyManager.FlatOntologyManager

A singleton class that is used system wide (single instance created in Ontology.py–>globalOntology) Provides access to all available domains ontologies and databases.

constraintsCanBeDiscriminated(domainString, constraints)

Checks if the given constraints list returns a list of values which can be discriminated between - i.e. there is a question which we could ask which would give differences between the values.

ensure_domain_ontology_loaded(domainString)
getRandomValueForSlot(dstring, slot, nodontcare=False, notthese=[], conditional_values=[])

Randomly select a slot value for the given slot slot.

get_discourseAct(dstring)

NB no copy

get_informable_slots(dstring)

NB no copy

get_informable_slots_and_values(dstring)

NOTE: not using copy.copy() since when used, it is only looped over, not modified

get_method(dstring)

NB no copy

get_ontology(dstring)

Note: not using copy.copy() – object assumed not to change

get_sorted_system_requestable_slots(dstring, mode='entity')

NB no copy

is_value_in_slot(dstring, value, slot)

Ontology.py - Provides system wide access to ontology

Copyright CUED Dialogue Systems Group 2015 - 2017

See also

CUED Imports/Dependencies:

import ontology.FlatOntologyManager
import ontology.OntologyUtils


ontology.Ontology.init_global_ontology()

Should be called ONCE by hubs [texthub, simulate, dialogueserver] (and Tasks when creating) – Then holds the ontology that is used and accessible system wide. Note that the class FlatOntologyManager(object) is a singleton.

ontology.Ontology.init_global_ontology_cer()

Should be called ONCE by hubs [texthub, simulate, dialogueserver] (and Tasks when creating) – Then holds the ontology that is used and accessible system wide. Note that the class FlatOntologyManager(object) is a singleton.

OntologyUtils.py - paths and rules for ontology

Copyright CUED Dialogue Systems Group 2015 - 2017

Warning

content partly hard-coded (paths, dicts, etc.)

See also

CUED Imports/Dependencies:

import utils.Settings
import utils.ContextLogger


ontology.OntologyUtils.get_database_path(domainString)

Required function just to handle repository root location varying if running on grid machines etc

ontology.OntologyUtils.get_domains_group(domains)

domains has (needs to have) been checked to be in [‘camtourist’,’sftourist’,’electronics’,’all’]:

ontology.OntologyUtils.get_ontology_path(domainString)

Required function just to handle repository root location varying if running on grid machines etc :rtype: object