/* This program has been developed by students from the bachelor Computer Science at Utrecht University within the Software Project course. © Copyright Utrecht University (Department of Information and Computing Sciences) */ package entityv2 /* IncomingQueryJSON describes the query coming into the service in JSON format */ type IncomingQueryJSON struct { DatabaseName string `json:"databaseName"` Limit int `json:"limit"` Return []string `json:"return"` Query []QueryStruct `json:"query"` Logic interface{} `json:"logic"` // Entities []QueryEntityStruct `json:"entities"` // Relations []QueryRelationStruct `json:"relations"` // GroupBys []QueryGroupByStruct `json:"groupBys"` MachineLearning []QueryMLStruct `json:"machineLearning"` // Modifiers []QueryModifierStruct // Prefix string } /* QueryMLStruct holds info for machinelearning */ type QueryMLStruct struct { Type string Parameters []string } type QueryStruct struct { ID string `json:"id"` Node NodeStruct `json:"node"` } type NodeStruct struct { Label string `json:"label"` ID string `json:"id"` // Logic []LogicStruct `json:"logic"` Filter []FilterStruct `json:"filter"` Relation RelationStruct `json:"relation"` SubQuery *QueryStruct `json:"subquery"` Export []ExportNodeStruct `json:"export"` } type ExportNodeStruct struct { ID string `json:"id"` Attribute string `json:"attribute"` } type FilterStruct struct { Attribute string `json:"attribute"` Operation string `json:"operation"` Value string `json:"value"` } type RelationStruct struct { Label string `json:"label"` ID string `json:"id"` Depth QuerySearchDepthStruct `json:"depth"` Direction string `json:"direction"` Node *NodeStruct `json:"node"` } /* QuerySearchDepthStruct holds the range of traversals for the relation */ type QuerySearchDepthStruct struct { Min int `json:"min"` Max int `json:"max"` } // // Logic Structs! // type LogicStruct struct { Attribute string `json:"attribute"` Operation string `json:"operation"` ID string `json:"id"` }