Project

General

Profile

1
package eu.dnetlib.data.proto;
2

    
3
import "Kind.proto";
4
import "FieldType.proto";
5

    
6
// for DNGFentity
7
import "Type.proto";
8
import "Datasource.proto";
9
import "Organization.proto";
10
import "Person.proto";
11
import "Project.proto";
12
import "Publication.proto";
13
import "Dataset.proto";
14

    
15
// for DNGFRel
16
import "RelType.proto";
17
import "Rels.proto";
18

    
19
option java_package = "eu.dnetlib.data.proto";
20
option java_outer_classname = "DNGFProtos";
21

    
22
message DNGF {
23
  required Kind kind = 1;
24

    
25
  optional DNGFEntity entity = 2;
26
  optional DNGFRel rel = 3;
27

    
28
  optional DataInfo dataInfo = 4;
29

    
30
  // used to mark the last update time of this object
31
  optional sfixed64 lastupdatetimestamp = 5;
32
}
33

    
34
message DNGFEntity {
35

    
36
  extensions 100 to 199;
37

    
38
  required Type type = 1;
39
  required string id = 12;
40

    
41
  repeated string originalId = 8;
42
  repeated KeyValue collectedfrom = 9;
43

    
44
  repeated StructuredProperty pid = 10;
45
  optional string dateofcollection = 11;
46
  optional string dateoftransformation = 13;
47

    
48
  /* Any relation that we want to bundle together with this entity.
49
   It's intended to be used only in temporary values in map/red jobs (sequence files, ...)
50
   and never persisted values stored in  HBase. */
51
  repeated DNGFRel cachedRel = 2;
52

    
53
  optional Datasource datasource = 3;
54
  optional Organization organization = 4;
55
  optional Person person = 5;
56
  optional Project project = 6;
57
  optional Publication publication = 7;
58
  optional Dataset dataset = 14;
59

    
60
  repeated DNGFEntity children = 16;
61

    
62
  repeated ExtraInfo extraInfo = 15;
63

    
64
  optional OAIProvenance oaiprovenance = 17;
65
}
66

    
67

    
68
message DNGFRel {
69
  required RelType relType = 1;
70
  required SubRelType subRelType = 19;
71
  required string relClass = 20;	// one among the SubRel names, e.g. Provision.RelName.isProvidedBy
72

    
73
  required string source = 2;
74
  required string target = 3;
75

    
76
  /* if true then is a "child" */
77
  required bool child = 4;
78

    
79
  optional DNGFEntity cachedTarget = 5;
80

    
81
  // Datamodel rels
82
  optional DatasourceOrganization datasourceOrganization = 6;
83
  optional PersonPublication personPublication = 7;
84
  optional PersonDataset personDataset = 8;
85

    
86
  optional ProjectOrganization projectOrganization = 9;
87
  optional ProjectPerson projectPerson = 18;
88
  optional PublicationOrganization publicationOrganization = 10;
89

    
90
  optional PublicationProject publicationProject = 11;
91
  optional DatasetProject datasetProject = 12;
92

    
93
  optional PersonPerson personPerson = 15;
94
  optional PublicationPublication publicationPublication = 16;
95
  optional DatasetDataset datasetDataset = 22;
96
  optional PublicationDataset publicationDataset = 24;
97

    
98
  optional OrganizationOrganization organizationOrganization = 17;
99
  repeated KeyValue collectedfrom = 25;
100

    
101
}
(3-3/15)