package eu.dnetlib.data.proto; import "Kind.proto"; import "FieldType.proto"; // for DNGFentity import "Type.proto"; import "Datasource.proto"; import "Organization.proto"; import "Person.proto"; import "Project.proto"; import "Publication.proto"; import "Dataset.proto"; option java_package = "eu.dnetlib.data.proto"; option java_outer_classname = "DNGFProtos"; message DNGF { required Kind kind = 1; optional DNGFEntity entity = 2; optional DNGFRel rel = 3; optional DataInfo dataInfo = 4; // used to mark the last update time of this object optional sfixed64 lastupdatetimestamp = 5; } message DNGFEntity { extensions 100 to 199; required Type type = 1; required string id = 12; repeated string originalId = 8; repeated KeyValue collectedfrom = 9; repeated StructuredProperty pid = 10; optional string dateofcollection = 11; optional string dateoftransformation = 13; /* Any relation that we want to bundle together with this entity. It's intended to be used only in temporary values in map/red jobs (sequence files, ...) and never persisted values stored in HBase. */ repeated DNGFRel cachedRel = 2; optional Datasource datasource = 3; optional Organization organization = 4; optional Person person = 5; optional Project project = 6; optional Publication publication = 7; optional Dataset dataset = 14; repeated DNGFEntity children = 16; repeated ExtraInfo extraInfo = 15; optional OAIProvenance oaiprovenance = 17; } message DNGFRel { extensions 100 to 199; required Qualifier relType = 1; required Type sourceType = 2; required Type targetType = 3; required string source = 4; required string target = 5; /* if true then is a "child" */ required bool child = 6; optional DNGFEntity cachedTarget = 7; repeated KeyValue collectedfrom = 8; }