A DataView offers a filtered and/or formatted view on a DataSet. One can subscribe on changes in a DataView, and easily get filtered or formatted data without having to specify filters and field types all the time.
The following example shows how to use a DataView.
// create a DataSet
var data = new vis.DataSet();
data.add([
  {id: 1, text: 'item 1', date: new Date(2013, 6, 20), group: 1, first: true},
  {id: 2, text: 'item 2', date: '2013-06-23', group: 2},
  {id: 3, text: 'item 3', date: '2013-06-25', group: 2},
  {id: 4, text: 'item 4'}
]);
// create a DataView
// the view will only contain items having a property group with value 1,
// and will only output fields id, text, and date.
var view = new vis.DataView(data, {
  filter: function (item) {
    return (item.group == 1);
  },
  fields: ['id', 'text', 'date']
});
// subscribe to any change in the DataView
view.on('*', function (event, properties, senderId) {
  console.log('event', event, properties);
});
// update an item in the data set
data.update({id: 2, group: 1});
// get all ids in the view
var ids = view.getIds();
console.log('ids', ids); // will output [1, 2]
// get all items in the view
var items = view.get();
A DataView can be constructed as:
var data = new vis.DataView(dataset, options)
where:
dataset is a DataSet or DataView.
  options is an object which can
    contain the following properties. Note that these properties
    are exactly the same as the properties available in methods
    DataSet.get and DataView.get.
    | Name | Type | Description | 
|---|---|---|
| convert | Object.<String, String> | An object containing field names as key, and data types as value. By default, the type of the properties of an item are left unchanged. When a field type is specified, this field in the items will be converted to the specified type. This can be used for example to convert ISO strings containing a date to a JavaScript Date object, or convert strings to numbers or vice versa. The available data types are listed in section Data Types. | 
| fields | String[ ] | An array with field names.
          By default, all properties of the items are emitted.
          When fieldsis defined, only the properties
          whose name is specified infieldswill be included
          in the returned items. | 
| filter | function | Items can be filtered on specific properties by providing a filter function. A filter function is executed for each of the items in the DataSet, and is called with the item as parameter. The function must return a boolean. All items for which the filter function returns true will be emitted. See also section Data Filtering. | 
  Data of the DataView can be retrieved using the method get.
var items = view.get();
Data of a DataView can be filtered and formatted again, in exactly the same way as in a DataSet. See sections Data Filtering and Data Formatting for more information.
var items = view.get({
  fields: ['id', 'score'],
  filter: function (item) {
    return (item.score > 50);
  }
});
One can subscribe on changes in the DataView. Subscription works exactly the same as for DataSets. See the documentation on subscriptions in a DataSet for more information.
// create a DataSet and a view on the data set
var data = new vis.DataSet();
var view = new vis.DataView({
  filter: function (item) {
    return (item.group == 2);
  }
});
// subscribe to any change in the DataView
view.on('*', function (event, properties, senderId) {
  console.log('event:', event, 'properties:', properties, 'senderId:', senderId);
});
// add, update, and remove data in the DataSet...
All code and data is processed and rendered in the browser. No data is sent to any server.