chromium/components/optimization_guide/proto/page_entities_metadata.proto

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;
option java_package = "org.chromium.components.optimization_guide.proto";
option java_outer_classname = "PageEntitiesMetadataProto";

package optimization_guide.proto;

message Entity {
  // The ID of the entity expected to be present on the page.
  optional string entity_id = 1;

  // The confidence that the entity, as expressed by entity_id, is on the page.
  //
  // It is expected that this score be between 0 and 100, inclusive.
  optional int32 score = 2;
}

message Category {
  // The ID of the category that the page is expected to be about.
  optional string category_id = 1;

  // The confidence that the category, as expressed by category_id, is relevant
  // to the page.
  //
  // It is expected that this score be between 0 and 1, inclusive.
  optional float score = 2;
}

// Optimization metadata associated with providing information about the
// entities on the page.
//
// It is only populated for the PAGE_ENTITIES optimization type.
//
// Note that the meaning of metadata here is in relation to a page load.
message PageEntitiesMetadata {
  // A set of entities that are expected to be present on the page.
  repeated Entity entities = 1;

  // A string representing an alternative title for the page.
  optional string alternative_title = 2;

  // A set of categories that are expected to be present on the page.
  repeated Category categories = 3;
}

// The metadata associated with an |Entity|.
//
// Each |Entity| has some attached metadata about it which may be stored on
// device for later lookup. Notably, this includes it's human-readable name as
// opposed to the opaque entity_id.
message EntityMetadataStorage {
  optional string entity_name = 1;
}